.site-header{z-index:50;height:var(--nav);background:var(--bg);border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0}.site-header__inner{align-items:center;gap:var(--s-3);height:100%;padding:0 var(--s-4);display:flex}.site-header__logo{transition:opacity var(--m-out) var(--ease);align-items:center;display:inline-flex}.site-header__logo:hover{opacity:.8}.site-header__search{flex:1;max-width:520px;display:none}.site-header__actions{align-items:center;gap:var(--s-1);margin-left:auto;display:flex}@media (min-width:700px){.site-header__search{display:block}.site-header__inner{gap:var(--s-5)}}@media (min-width:800px){.site-header__inner{padding:0 var(--gut)}.site-header__logo{width:calc(var(--side) - var(--s-2))}}.side-nav__inner{top:calc(var(--nav) + var(--s-6));gap:var(--s-5);flex-direction:column;display:flex;position:sticky}.side-nav__list{flex-direction:column;gap:2px;display:flex}.side-nav__heading{font-size:var(--t-label);color:var(--muted);padding:0 var(--s-3);margin-top:var(--s-2);font-weight:500}.side-nav__item{align-items:center;gap:var(--s-3);color:var(--muted);height:40px;padding:0 var(--s-3);border-radius:var(--r-sm);transition:color var(--m-out) var(--ease);font-size:15px;font-weight:500;display:flex}.side-nav__icon{width:18px;color:var(--muted);transition:color var(--m-out) var(--ease);justify-content:center;display:inline-flex}.side-nav__item:hover,.side-nav__item:hover .side-nav__icon{color:var(--ink);transition-duration:var(--m-in)}.side-nav__item.is-active{color:var(--ink);font-weight:600}.side-nav__item.is-active .side-nav__icon{color:var(--ink)}.side-nav__item--muted{color:var(--muted)}.tab-bar{z-index:50;height:calc(var(--tabbar) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.tab-bar__item{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:500;display:flex}.tab-bar__item .ph-duotone{width:22px;transition:transform var(--m-out) var(--ease);font-size:22px}.tab-bar__item:active .ph-duotone{transition-duration:var(--m-press);transform:scale(.9)}.tab-bar__item.is-active{color:var(--ink)}.tab-bar.has-slider .slider__pill{box-shadow:inset 0 2px 0 var(--ink);background:0 0;border-radius:0}@media (min-width:800px){.tab-bar{display:none}}.post-list{flex-direction:column;display:flex}.post-item{gap:var(--s-3);padding:var(--s-4) var(--s-1);border-bottom:1px solid var(--line);transition:background var(--m-out) var(--ease);grid-template-columns:minmax(0,1fr) auto;display:grid}.post-item:first-child{border-top:1px solid var(--line)}.post-item:hover{background:var(--hover);transition-duration:var(--m-in)}.post-item__heading{font:inherit;letter-spacing:normal}.post-item__body{flex-direction:column;gap:6px;min-width:0;display:flex}.post-item__title{font-size:var(--t-body);color:var(--ink);width:fit-content;transition:background-size var(--m-out) var(--ease);background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;font-weight:600;line-height:1.4}.post-item__title:hover{background-size:100% 1px;transition-duration:.26s}.post-meta{align-items:center;gap:var(--s-1) var(--s-3);font-size:var(--t-small);color:var(--muted);flex-wrap:wrap;min-height:20px;display:flex}.post-meta a:hover{color:var(--ink)}.post-item__excerpt{font-size:var(--t-small);color:var(--ink-2)}.post-item__stats{align-items:flex-end;gap:var(--s-1);font-size:var(--t-small);color:var(--muted);white-space:nowrap;flex-direction:column;display:flex}@media (min-width:640px){.post-item{gap:var(--s-4);padding:var(--s-4) var(--s-2)}.post-item__title{font-size:var(--t-lead);line-height:1.35}}.post-kind{font-size:var(--t-label);color:var(--muted);font-weight:500}.post-kind--question{color:var(--accent)}.post-kind--notice{color:var(--yellow)}.article{gap:var(--s-4);padding-bottom:var(--s-5);border-bottom:1px solid var(--line);flex-direction:column;display:flex}.article h1{font-size:28px}.comments{padding-top:var(--s-5)}.comment{gap:var(--s-3);padding:var(--s-3) 0;grid-template-columns:32px minmax(0,1fr);display:grid}.comment__body{font-size:var(--t-body)}.comment__children{padding-left:var(--s-3);border-left:2px solid var(--line);margin-left:44px}.comment__actions{align-items:center;gap:var(--s-3);font-size:var(--t-label);color:var(--muted);margin-top:var(--s-1);display:flex}.comment__actions button{align-items:center;gap:var(--s-1);display:inline-flex}.comment__actions button:hover{color:var(--ink)}.link-card{gap:var(--s-4);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);margin-top:var(--s-3);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.link-card__thumb{aspect-ratio:16/9;object-fit:cover;background:var(--surface-2);border-radius:6px;width:128px}.link-card__title{color:var(--ink);font-weight:600;font-size:var(--t-small)}.link-card__desc{font-size:var(--t-small);color:var(--ink-2);margin-top:2px}.link-card__meta{gap:var(--s-3);font-size:var(--t-label);color:var(--muted);margin-top:var(--s-2);align-items:center;display:flex}.repo-viewer{gap:var(--s-4);grid-template-columns:240px minmax(0,1fr);min-height:480px;max-height:70vh;display:grid}.repo-viewer__tree{font-size:var(--t-small);overflow:auto}.repo-viewer__tree button{align-items:center;gap:var(--s-2);width:100%;height:32px;padding:0 var(--s-2);text-align:left;color:var(--ink-2);border-radius:6px;display:flex}.repo-viewer__tree button:hover{background:var(--hover);color:var(--ink)}.repo-viewer__tree button.is-active{background:var(--surface-2);color:var(--ink)}.repo-viewer__content{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-4);overflow:auto}.repo-viewer__content pre{white-space:pre;margin:0;font-size:13px;line-height:1.6}.video-embed{aspect-ratio:16/9;border-radius:var(--r-md);background:var(--surface);margin-top:var(--s-3);overflow:hidden}.video-embed iframe{border:0;width:100%;height:100%}.profile__head{flex-direction:column;display:flex}.profile__body{padding:0 var(--s-2) var(--s-4);gap:var(--s-5);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;display:flex}.profile__body .avatar--xl{box-shadow:0 0 0 4px var(--bg);margin-top:-48px}.profile__section{gap:var(--s-3);flex-direction:column;display:flex}.hack-phases{display:flex}.hack-phases li{align-items:center;gap:var(--s-2);font-size:var(--t-label);color:var(--muted-2);flex-direction:column;flex:1;font-weight:500;display:flex;position:relative}.hack-phases li:before{content:"";background:var(--surface-3);width:100%;height:2px;position:absolute;top:5px;left:-50%}.hack-phases li:first-child:before{display:none}.hack-phases li.is-done:before,.hack-phases li.is-now:before{background:var(--ink-2)}.hack-phases__dot{background:var(--surface-3);z-index:1;border-radius:50%;width:12px;height:12px;position:relative}.hack-phases li.is-done .hack-phases__dot{background:var(--ink-2)}.hack-phases li.is-now .hack-phases__dot{background:var(--ink);transform:scale(1.25)}.hack-phases li.is-now{color:var(--ink)}.hack-phases li.is-done{color:var(--ink-2)}.job-item{gap:var(--s-4);padding:var(--s-4) var(--s-2);border-bottom:1px solid var(--line);transition:background var(--m-in) var(--ease);grid-template-columns:48px minmax(0,1fr) auto;align-items:center;display:grid}.job-item:first-child{border-top:1px solid var(--line)}.job-item:hover{background:var(--hover)}.chat{gap:var(--s-5);grid-template-columns:minmax(0,1fr);display:grid}.chat__main{height:calc(100svh - var(--nav) - var(--tabbar) - 120px)}@media (min-width:900px){.chat{height:calc(100vh - var(--nav) - var(--s-6) - var(--s-6));grid-template-columns:minmax(0,1fr) 300px;min-height:480px}.chat__main{height:auto}}.chat__main{flex-direction:column;min-width:0;min-height:0;display:flex}.chat__log{padding:0 var(--s-2) var(--s-3);flex-direction:column;flex:1;gap:2px;display:flex;overflow:auto}.chat__empty{color:var(--muted);font-size:var(--t-small);justify-content:center;align-items:center;margin:auto;display:flex}.chat__day{color:var(--muted);padding:var(--s-4) 0 var(--s-2);justify-content:center;font-size:12px;display:flex}.chat__main{position:relative}.chat-msg{gap:var(--s-3);padding:var(--s-1) var(--s-2);margin:0 calc(var(--s-2) * -1);border-radius:var(--r-sm);transition:background-color var(--m-in) var(--ease);grid-template-columns:32px minmax(0,1fr);display:grid;position:relative}.chat-msg:hover,.chat-msg.is-picked,.chat-msg:focus-within{background:var(--hover)}.chat-msg.is-glow{background:var(--surface-2)}.chat-msg.is-editing{background:var(--surface)}.chat-msg--cont{padding-top:0}.chat-msg--cont .avatar{visibility:hidden;height:0}.chat-msg__main{flex-direction:column;gap:2px;min-width:0;display:flex}.chat-msg__head{align-items:baseline;gap:var(--s-2);font-size:var(--t-small);display:flex}.chat-msg__head b{color:var(--ink)}.chat-msg__head time{color:var(--muted);font-size:12px}.chat-msg__body{font-size:var(--t-body);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.chat-msg__body a{color:var(--accent);text-decoration:underline}.chat-msg__edited{margin-left:var(--s-2);color:var(--muted-2);white-space:nowrap;font-size:12px}.chat-msg__quote{align-items:center;gap:var(--s-2);max-width:100%;padding:2px var(--s-2);border-left:2px solid var(--line-2);font-size:var(--t-label);color:var(--muted);text-align:left;cursor:pointer;transition:color var(--m-in) var(--ease);margin:2px 0;display:flex}.chat-msg__quote b{color:var(--ink-2);flex:none;font-weight:600}.chat-msg__quote:hover{color:var(--ink-2)}.chat-msg__fwd{align-items:center;gap:var(--s-1);color:var(--muted);font-size:12px;display:flex}.chat-msg__actions{top:-14px;right:var(--s-2);z-index:2;border-radius:var(--r-sm);background:var(--surface-2);box-shadow:var(--shadow-menu);opacity:0;pointer-events:none;transition:opacity var(--m-in) var(--ease), transform var(--m-out) var(--ease);gap:2px;padding:2px;display:flex;position:absolute;transform:translate(6px)}.chat-msg:hover .chat-msg__actions,.chat-msg.is-picked .chat-msg__actions,.chat-msg:focus-within .chat-msg__actions{opacity:1;pointer-events:auto;transform:none}.chat-msg__actions button{width:30px;height:28px;color:var(--muted);transition:color var(--m-in) var(--ease), background-color var(--m-in) var(--ease), transform var(--m-press) var(--ease);border-radius:6px;place-items:center;font-size:16px;display:grid}.chat-msg__actions button:hover{color:var(--ink);background:var(--surface-3)}.chat-msg__actions button:active{transform:scale(.92)}.chat-msg__actions button.is-danger:hover{color:var(--red)}.chat-msg:first-child .chat-msg__actions{top:2px}.chat-msg__edit{gap:var(--s-2);padding:var(--s-1) 0;flex-direction:column;display:flex}.chat-msg__edit textarea{resize:none;min-height:44px}.chat-msg__edit-actions{gap:var(--s-2);justify-content:flex-end;display:flex}.chat-msg__files{gap:var(--s-2);margin-top:var(--s-1);flex-direction:column;display:flex}.chat-media{display:flex}.chat-media--grid{gap:var(--s-1);grid-template-columns:repeat(2,minmax(0,160px));display:grid}.chat-media__item{border-radius:var(--r-md);background:var(--surface-2);max-width:100%;max-height:360px;display:block;overflow:hidden}.chat-media__item img{object-fit:cover;width:100%;height:100%;transition:transform var(--m-out) var(--ease);display:block}.chat-media__item:hover img{transform:scale(1.02)}.chat-media:not(.chat-media--grid) .chat-media__item{width:min(360px,100%)}.chat-media--grid .chat-media__item{aspect-ratio:1}.chat-file{align-items:center;gap:var(--s-3);min-width:0;padding:var(--s-2);border-radius:var(--r-md);background:var(--surface-2);transition:background-color var(--m-in) var(--ease);display:flex}.chat-file--sent{max-width:360px}.chat-file--sent:hover{background:var(--surface-3)}.chat-file__thumb{border-radius:var(--r-sm);object-fit:cover;flex:none;width:40px;height:40px}.chat-file__thumb--icon{background:var(--surface-3);color:var(--ink-2);place-items:center;font-size:20px;display:grid}.chat-file__meta{flex-direction:column;flex:1;min-width:0;display:flex}.chat-file__name{font-size:var(--t-small);color:var(--ink)}.chat-file__size{color:var(--muted);font-size:12px}.chat-file__get{color:var(--muted);transition:transform var(--m-out) var(--ease), color var(--m-in) var(--ease)}.chat-file--sent:hover .chat-file__get{color:var(--ink);transform:translateY(2px)}.chat__composer{gap:var(--s-2);padding-top:var(--s-3);flex-direction:column;display:flex}.chat__reply{align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-1) var(--s-1) var(--s-3);border-radius:var(--r-sm);background:var(--surface);font-size:var(--t-label);color:var(--muted);animation:chat-rise var(--m-out) var(--ease);display:flex}.chat__reply b{color:var(--ink-2)}.chat__pending{gap:var(--s-2);padding-bottom:2px;display:flex;overflow-x:auto}.chat__pending .chat-file{width:200px;padding-right:var(--s-6);animation:chat-rise var(--m-out) var(--ease);flex:none;position:relative}.chat__pending .chat-file.is-loading .chat-file__thumb{opacity:.45}.chat__pending .chat-file.is-loading:after{content:"";left:var(--s-2);right:var(--s-2);background:linear-gradient(90deg, transparent, var(--ink-2), transparent);background-repeat:no-repeat;background-size:50% 100%;border-radius:2px;height:2px;animation:1s linear infinite chat-load;position:absolute;bottom:3px}.chat__pending .chat-file.is-failed{background:var(--red-soft)}.chat-file__remove{top:50%;right:var(--s-2);width:22px;height:22px;color:var(--muted);transition:color var(--m-in) var(--ease), background-color var(--m-in) var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;transform:translateY(-50%)}.chat-file__remove:hover{color:var(--ink);background:var(--surface-3)}.chat__input{gap:var(--s-2);align-items:flex-end;display:flex}.chat__input textarea{resize:none;min-height:44px;max-height:160px}.chat__attach,.chat__send{height:44px}.chat__attach{flex:none;width:44px;font-size:20px}.chat__drop{z-index:5;justify-content:center;align-items:center;gap:var(--s-2);border-radius:var(--r-md);background:var(--scrim);color:var(--ink);font-size:var(--t-body);pointer-events:none;animation:chat-fade var(--m-in) var(--ease);font-weight:600;display:flex;position:absolute;inset:0}.chat__drop .ph-duotone{font-size:24px}@keyframes chat-rise{0%{opacity:0;transform:translateY(4px)}}@keyframes chat-fade{0%{opacity:0}}@keyframes chat-load{0%{background-position:-100% 0}to{background-position:200% 0}}@media (prefers-reduced-motion:reduce){.chat__reply,.chat__pending .chat-file,.chat__drop{animation:none}}.forward{gap:var(--s-3);flex-direction:column;display:flex}.forward__preview{gap:var(--s-2);min-width:0;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--t-small);color:var(--muted);margin:0;display:flex}.forward__preview b{color:var(--ink);flex:none}.forward__list{flex-direction:column;gap:2px;max-height:360px;display:flex;overflow:auto}.forward__item{align-items:center;gap:var(--s-3);min-height:48px;padding:0 var(--s-2);border-radius:var(--r-sm);transition:background-color var(--m-in) var(--ease);display:flex}.forward__item:hover{background:var(--hover)}.forward__item b{font-size:var(--t-small);color:var(--ink);font-weight:500}.chat__rooms{gap:var(--s-4);flex-direction:column;display:flex;overflow:auto}@media (min-width:900px){.chat__rooms{padding-left:var(--s-4);border-left:1px solid var(--line)}}.chat__group{flex-direction:column;gap:2px;display:flex}.chat__group-head{min-height:32px;padding:0 var(--s-3);justify-content:space-between;align-items:center;display:flex}.chat-room{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);min-height:52px;display:flex}.chat-room b{font-size:var(--t-small);color:var(--ink);font-weight:500}.chat-room.is-active b{font-weight:600}.chat-room .u-caption{font-size:12px}.chat-room__icon{border-radius:var(--r-sm);background:var(--surface-2);width:26px;height:26px;color:var(--ink-2);flex:none;place-items:center;display:grid}.chat__dm-field{width:0;transition:width var(--t-slide) var(--ease-slide);display:inline-grid;overflow:hidden}.chat__dm-field.is-open{width:140px}.helper-notice{z-index:60;right:var(--s-4);left:var(--s-4);bottom:calc(var(--tabbar) + env(safe-area-inset-bottom) + var(--s-3));gap:var(--s-3);padding:var(--s-4);background:var(--surface-2);border-radius:var(--r-md);box-shadow:var(--shadow-menu);animation:helper-notice-in var(--m-panel) var(--ease) both;grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid;position:fixed}.helper-notice__icon{border-radius:var(--r-sm);background:var(--surface-3);width:36px;height:36px;color:var(--ink);place-items:center;font-size:18px;display:grid}.helper-notice__text{flex-direction:column;gap:2px;min-width:0;display:flex}.helper-notice__title{font-size:var(--t-small);color:var(--ink);font-weight:600}.helper-notice__sub{font-size:var(--t-label);color:var(--muted)}.helper-notice__actions{gap:var(--s-2);grid-column:1/-1;justify-content:flex-end;display:flex}@media (min-width:560px){.helper-notice{width:360px;left:auto}}@media (min-width:800px){.helper-notice{right:var(--s-5);bottom:var(--s-5)}}@keyframes helper-notice-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.helper-notice{animation:none}}.helper-link{max-width:420px;margin:var(--s-7) auto;padding:var(--s-6);align-items:center;gap:var(--s-3);text-align:center;flex-direction:column;display:flex}.helper-link__icon{border-radius:var(--r-md);background:var(--surface-2);width:56px;height:56px;color:var(--ink);place-items:center;font-size:28px;display:grid}.helper-link__title{font-size:var(--t-h2)}.helper-link__machine{font-size:var(--t-small);color:var(--muted)}.helper-link__go{margin-top:var(--s-3);min-width:160px}.helper-download{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.helper-download__text{gap:var(--s-1);flex-direction:column;flex:240px;display:flex}.helper-download__steps{font-size:var(--t-small);color:var(--muted)}.ch-card{align-items:center;gap:var(--s-5);padding:var(--s-4) var(--s-5);border-radius:var(--r-md);background:var(--surface);transition:background var(--m-in) var(--ease);display:flex}.ch-card:hover{background:var(--surface-2)}.ch-card--empty{justify-content:space-between}.ch-card__stats{gap:var(--s-6);flex-wrap:wrap;display:flex}.ch-grade{color:#111;border-radius:16px;flex:none;place-items:center;width:56px;height:56px;font-size:30px;font-weight:700;display:grid}.ch-grade--unknown{background:var(--surface-3);color:var(--muted)}.ch-level{vertical-align:middle;place-items:center;width:32px;height:32px;line-height:1;display:inline-grid;position:relative}.ch-level svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ch-level__label{justify-items:center;display:grid;position:relative}.ch-level small{opacity:.7;font-size:7px;font-weight:600}.ch-level b{font-size:12px;font-weight:700}.ch-level b,.ch-level small{color:inherit;font-size:inherit}.ch-level small{font-size:7px}.ch-level b{font-size:12px}.ch-card .stat>b{align-items:center;min-height:30px;display:flex}.profile__badges{margin-top:var(--s-3)}.dialog.promo{max-width:480px;padding:0;overflow:hidden}.promo__banner{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.promo__body{padding:var(--s-5);gap:var(--s-4);display:grid}.promo__title{letter-spacing:-.02em;text-align:center;margin:0;font-size:20px;font-weight:700}.promo__acts{gap:var(--s-2);grid-template-columns:1fr 1fr;display:grid}.promo__acts .btn{justify-content:center;height:44px}
