/* Nerulio 2.0 platform pages (channels, posts, community front) — design of record: the v3
   "channel" mockups. Dense board layout: 1180px desktop grid (830 main + 330 wiki), single column
   under 1000px, two-line board rows under 640px. */
/* v4 (2026-09-29, owner pick "라임 · 화이트 기본"): lime #c6f24e is a fill (buttons, the logo, the active
   tab bar) with dark text on it; text accents use the deep olive --brand. White unless the reader turns on
   dark mode (src/platform/theme.js stores the choice and sets data-theme="dark"). */
:root{
 --radius-sm:4px;--radius-md:6px;--radius-lg:8px;
 --bg:#f5f6f2;--card:#fff;--line:#e2e5dc;--line2:#eef0ea;--ink:#15171a;--ink2:#40464e;--mute:#646b74;--mute2:#6b727b;
 --brand:#3d6608;--brand-soft:#eef6d6;--accent:#c6f24e;--on-accent:#15171a;--accent-line:#a9cf45;--hot:#c4411d;--live:#e5484d;
 --ok:#166534;--ok-bg:#dcfce7;--warn:#a14a04;--warn-bg:#fef3c7;--bad:#b42828;--bad-bg:#fdecec;--est:#3346a6;--est-bg:#f3f5ff;
 --t-ai:#fff1e6;--t-ai-ink:#b4520a;--t-games:#e6f5ec;--t-games-ink:#17683a;--t-hw:#fff6d6;--t-hw-ink:#835c00;--t-studio:#eaf0ff;--t-studio-ink:#2f56c9;--t-sub:#f2ecff;--t-sub-ink:#6a3fcf;
 --bot-bg:#fffcf6;--news-bg:#fff1e6;--news-ink:#b4520a;--vio-bg:#f1eefe;--vio-ink:#5b3fc4;--soon-bg:#fdeef4;--soon-ink:#b0245e;--gold:#e3b75c;--gold-line:#e3c27f;--chip-ink:#5a6577;--partial-bg:#fff1d6;--btn-line:#d6dacf;
 --page:#fff;--rail:#eceee8;--panel:#fff;--hover:#f1f3ed;--soft:#f1f2ee;--scrim:rgba(21,23,26,.42);
 color-scheme:light;
}
:root[data-theme="dark"]{
 --bg:#111318;--card:#1a1d23;--line:#262a32;--line2:#20242b;--ink:#e6e8ec;--ink2:#aeb5c1;--mute:#858d9b;--mute2:#7d8594;
 --brand:#c6f24e;--brand-soft:#262d12;--accent-line:#5a6b22;--hot:#ff7a57;
 --ok:#4ade80;--ok-bg:#123020;--warn:#ffb35c;--warn-bg:#3a2410;--bad:#f07474;--bad-bg:#3a1b1b;--est:#9fb0ff;--est-bg:#1c2140;
 --t-ai:#2a1f14;--t-ai-ink:#ffb67a;--t-games:#12291c;--t-games-ink:#6ee7a0;--t-hw:#2a2210;--t-hw-ink:#ffd166;--t-studio:#151e36;--t-studio-ink:#8fb0ff;--t-sub:#241a36;--t-sub-ink:#c4a8ff;
 --bot-bg:#221f17;--news-bg:#2a1f14;--news-ink:#ffb67a;--vio-bg:#241a36;--vio-ink:#c4a8ff;--soon-bg:#3a1f2b;--soon-ink:#f08bb3;--gold:#b98a2e;--gold-line:#6b5626;--chip-ink:#c3cad6;--partial-bg:#33270f;--btn-line:#343945;
 --page:#0f1115;--rail:#0b0c10;--panel:#16181d;--hover:#1d2026;--soft:#23262e;--scrim:rgba(5,6,8,.62);
 color-scheme:dark;
}
*{box-sizing:border-box}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.n2 [hidden]{display:none!important}
body.n2{margin:0;background:var(--bg);font-family:SUIT,system-ui,-apple-system,'Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif;color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.n2 a{color:inherit;text-decoration:none}
.n2 a:hover{text-decoration:underline}
.n2 h1,.n2 h2,.n2 h3{margin:0}
.skip{position:absolute;left:-9999px}.skip:focus{left:8px;top:8px;z-index:9;background:var(--card);padding:6px 10px}
.fine{font-size:12px;color:var(--mute)}
.fine a,.desc a,.alert a{text-decoration:underline}
.pad{padding:10px 12px}

/* shell: icon column + menu column (desktop), top bar, content; under 1100px the menu is a drawer */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.lnav{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--panel);border-right:1px solid var(--line);padding:14px 10px 20px;display:flex;flex-direction:column;gap:2px;font-size:14.5px}
.lnh{display:flex;align-items:center;padding:0 6px 12px}.lnx{display:none}
.brand{display:flex;align-items:center;gap:8px;font-weight:900;font-size:19px;letter-spacing:-.5px;color:var(--ink)}
.n2 .lnav a:hover,.n2 .lnav summary:hover{text-decoration:none;background:var(--hover)}
.ln{height:38px;padding:0 10px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;font-weight:700;color:var(--ink2)}
.ln .lnd{width:8px;height:8px;border-radius:50%;flex:none}.ln.on{background:var(--brand-soft);color:var(--ink)}.ln.on .lnd{background:var(--accent)}
.lsep{height:1px;background:var(--line);margin:8px 4px;flex:none}
.lg summary{list-style:none;cursor:pointer;height:40px;padding:0 10px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:8px;font-weight:900;font-size:15px}
.lg summary::-webkit-details-marker{display:none}
.lg .chev{color:var(--brand);transition:transform .15s;flex:none}.lg[open]>summary .chev{transform:rotate(90deg)}
.lgn{margin-left:auto;font:500 11px/1 'JetBrains Mono',ui-monospace,monospace;color:var(--mute)}
.lg ul{list-style:none;margin:0;padding:2px 0 8px 12px;display:flex;flex-direction:column;gap:1px}
.lg li a{min-height:34px;padding:0 8px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;color:var(--ink2);font-size:14px}
.lg .ic{width:38px;flex:none;font:700 10px/1 'JetBrains Mono',ui-monospace,monospace;color:var(--brand)}
.lg a.all{color:var(--brand);font-weight:700;font-size:13px}
.lg .tile.sm{width:22px;height:22px;border-radius:var(--radius-sm);font-size:10px}
.lch{display:none}
.lnote{padding:10px;margin:8px 0 0}
.col{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:5;height:60px;display:flex;align-items:center;gap:8px;padding:0 20px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .menu{display:none;width:44px;height:44px;margin-left:-10px;align-items:center;justify-content:center;color:var(--ink);flex:none}
.top .brand{display:none}
.hq{flex:1 1 480px;max-width:620px;min-width:0;height:40px;border-radius:var(--radius-md);background:var(--card);border:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--mute)}
.hq:focus-within{outline:2px solid var(--accent-line);outline-offset:1px}
.hq input[type=search]{flex:1;min-width:0;border:0;outline:0;font:inherit;font-size:14px;color:var(--ink);background:transparent}
.qchip{font-size:12px;font-weight:700;background:var(--brand-soft);color:var(--brand);border-radius:4px;padding:2px 2px 2px 6px;white-space:nowrap;max-width:160px;display:inline-flex;align-items:center;flex:none}.qchip .qn{overflow:hidden;text-overflow:ellipsis;min-width:0}
.qx{border:0;background:none;color:inherit;font:inherit;font-size:14px;line-height:1;padding:0 4px;cursor:pointer}
.thm{width:40px;height:40px;flex:none;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--card);color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;margin-left:auto}
.thm .i-sun{display:none}:root[data-theme="dark"] .thm .i-sun{display:block}:root[data-theme="dark"] .thm .i-moon{display:none}
.hn,.hu{display:flex;gap:4px;flex:none}
.hb{height:40px;padding:0 14px;border-radius:var(--radius-md);font-size:14px;font-weight:800;display:inline-flex;align-items:center;color:var(--ink);white-space:nowrap}
.hb.solid{background:var(--accent);color:var(--on-accent)}
.hb.rdr{gap:6px;color:var(--ink2);padding:0 10px}.n2 .hb:hover{text-decoration:none;filter:brightness(.97)}
.chbar{border-bottom:1px solid var(--line);background:var(--panel)}
.cr{display:flex;align-items:center;height:42px;padding:0 10px;overflow-x:auto;scrollbar-width:none}
.cr::-webkit-scrollbar{display:none}
.cr a{height:42px;padding:0 10px;display:inline-flex;align-items:center;gap:4px;font-size:13.5px;font-weight:700;color:var(--ink2);white-space:nowrap}
.cr a.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}
.cr .sep{width:1px;height:16px;background:var(--line);margin:0 6px;flex:none}
.scrim{display:none}
@media (max-width:1000px){
 .app{display:block}
 .lnav{position:fixed;z-index:30;left:0;top:0;bottom:0;height:auto;width:min(318px,86vw);transform:translateX(-102%);transition:transform .2s;box-shadow:0 0 40px rgba(0,0,0,.2)}
 .lnav:target,body.drawer .lnav{transform:none}
 .app:has(.lnav:target)~.scrim,body.drawer .scrim{display:block;position:fixed;inset:0;z-index:25;background:var(--scrim)}
 .lnx{display:inline-flex;margin-left:auto;width:44px;height:44px;align-items:center;justify-content:center;color:var(--ink2)}
 .lch{display:block}
 .top{padding:0 12px;height:56px;gap:4px}
 .top .menu{display:inline-flex}.top .brand{display:flex;font-size:18px}.top .brand svg{width:28px;height:28px}
 .hu{order:6}.hq{order:5;flex:0 0 40px;width:40px;padding:0;justify-content:center;border:0;background:none}
 .hq input,.hq .qchip{display:none}.hq:focus-within{flex:1 1 auto;width:auto;padding:0 10px;border:1px solid var(--line);background:var(--card);justify-content:flex-start}.hq:focus-within input{display:block}
 .thm{margin-left:auto;border:0;background:none}
 .hn{order:5}.hb.rdr span{display:none}.hb.rdr{width:40px;padding:0;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.lnav{transition:none}}
.pg{width:100%;max-width:1040px;padding:16px 20px 40px;display:flex;flex-direction:column;gap:12px;box-sizing:border-box}
.ft{padding:20px 20px 40px;color:var(--mute);font-size:12px}

/* boxes */
.box{background:var(--card);border:1px solid var(--line);border-radius:4px;overflow:hidden;min-width:0}
.box.hl{border-color:var(--gold-line)}.box.hl .bh{background:var(--warn-bg)}
.bh{min-height:38px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:7px 12px;border-bottom:1px solid var(--line2)}
.bh h2{font-size:13.5px;font-weight:800}
.bh .x{margin-left:auto;font-size:12px;font-weight:500;color:var(--mute)}
.bh .x a{color:var(--brand);text-decoration:underline}
.wh{font-size:12.5px;font-weight:800;padding:12px 12px 4px;display:flex;gap:6px;align-items:center}
.empty{margin:0;padding:16px 12px;color:var(--mute);font-size:13px}
.btn{height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--btn-line);background:var(--card);font:inherit;font-size:13px;font-weight:700;color:var(--ink);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.btn.p{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:800}
.n2 .btn:hover{text-decoration:none}
.live{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:#d23c3c}
.live i{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 3px #fde3e3;animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 5px rgba(229,72,77,.12)}}
@media (prefers-reduced-motion:reduce){.live i{animation:none}}
.big{font-size:24px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums;line-height:1.15}
.big.sm{font-size:19px}
.kv{display:flex;flex-direction:column;gap:3px}

/* verification chips */
.st{display:inline-block;font-size:11px;font-weight:700;padding:1px 5px;border-radius:3px;white-space:nowrap;vertical-align:1px;line-height:1.5}
.st.o{background:var(--ink);color:var(--card)}
.st.a{border:1px solid var(--btn-line);color:var(--ink2);background:var(--card)}
.st.c{background:var(--ok-bg);color:var(--ok)}
.st.cm{background:var(--ok-bg);color:var(--ok)}
.st.e{border:1px solid #b9c7ff;color:var(--est);background:var(--est-bg)}
.st.u{border:1px dashed #c07d12;color:var(--warn);background:var(--warn-bg)}
.st.d{background:var(--bad-bg);color:var(--bad)}
.st.new{background:var(--ok-bg);color:var(--ok)}
.st.soon{background:var(--soon-bg);color:var(--soon-ink)}

/* channel header */
.chh{display:flex;align-items:center;gap:14px;padding:12px 16px}
.tile{width:52px;height:52px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;flex:none;background:var(--brand-soft);color:var(--brand)}
.t-ai{background:var(--t-ai);color:var(--t-ai-ink)}.t-games{background:var(--t-games);color:var(--t-games-ink)}.t-hw{background:var(--t-hw);color:var(--t-hw-ink);font-size:15px}.t-studio{background:var(--t-studio);color:var(--t-studio-ink)}.t-sub{background:var(--t-sub);color:var(--t-sub-ink)}
.tile.sm,.rows .tile.sm{width:24px;height:24px;border-radius:var(--radius-sm);font-size:10px;letter-spacing:-.3px}
.chm{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.chn1{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
.chn1 h1{font-size:22px;letter-spacing:-.5px}
.desc{margin:2px 0 0;font-size:13px;color:var(--ink2);max-width:640px}
.cha{display:flex;gap:6px;flex:none}

/* layout */
.cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.mainc,.side{display:flex;flex-direction:column;gap:12px;min-width:0}
.home-intro{padding:24px}.home-kicker{font-size:12px;font-weight:700;color:var(--brand);margin:0 0 10px}
.home-intro h1{font-size:clamp(23px,2.4vw,32px);line-height:1.35;letter-spacing:-.6px;text-wrap:balance}
.home-intro>p:not(.home-kicker){color:var(--ink2);line-height:1.7;margin:14px 0 18px}
.home-actions{display:flex;flex-wrap:wrap;gap:8px}.home-actions .btn{white-space:normal;text-align:center;height:auto;min-height:36px}
.home-workflows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.home-workflows li{padding:16px;border-top:1px solid var(--line);min-width:0;display:flex;flex-direction:column;gap:10px}
.home-workflows li+li{border-left:1px solid var(--line)}.home-workflows h3{font-size:16px;line-height:1.5}
.home-workflows p{color:var(--ink2);font-size:13px;line-height:1.7;margin:0}.home-guide{margin-top:auto;font-size:12px;font-weight:700;color:var(--brand)!important;line-height:1.6}
.home-example figure{margin:0;padding:12px}.home-example img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}
.home-example figcaption{padding:10px 0 2px;font-size:12px;line-height:1.7;color:var(--mute)}.home-example figcaption a{text-decoration:underline}
@media(max-width:700px){.home-intro{padding:18px 16px}.home-workflows{grid-template-columns:1fr}.home-workflows li+li{border-left:0}.home-workflows li{padding:14px 16px}}
.g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.g2.a{grid-template-columns:300px minmax(0,1fr)}
.g2.b{grid-template-columns:minmax(0,1fr) 250px}
.g2.c{grid-template-columns:280px minmax(0,1fr)}
.g2>:only-child{grid-column:1/-1}

/* generic rows */
.rows{list-style:none;margin:0;padding:0}
.rows li{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px;border-bottom:1px solid var(--line2);font-size:13.5px}
.rows li:last-child{border-bottom:0}
.rows .tt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk .tm{font-size:12px;color:var(--mute2);width:40px;flex:none;font-variant-numeric:tabular-nums}
.srow .dot{width:9px;height:9px;border-radius:50%;flex:none}
.dot.unk{background:var(--line)}.dot.ok{background:#22a45d}.dot.warn{background:#e0a106}.dot.bad{background:var(--live)}
.srow a{flex:none}.srow a:first-of-type{flex:1}.srow a.fine{color:var(--mute)}.sv{font-size:12px;color:var(--mute)}.sv.bad{color:var(--warn);font-weight:700}
.alert{display:block;padding:8px 12px;background:var(--warn-bg);font-size:12.5px;border-top:1px solid var(--line2)}
.alert b{color:var(--warn)}
.fine.pad,.box>.fine{display:block;padding:6px 12px 10px}
.ev .dday{font-weight:800;font-size:12px;color:var(--soon-ink);text-align:center;background:var(--soon-bg);border-radius:4px;padding:2px 0;width:52px;flex:none}
.ev .dday.g{color:var(--mute);background:var(--line2)}
.ev .dday.on{color:var(--ok);background:var(--ok-bg)}
.tw{overflow-x:auto}
.mt{width:100%;border-collapse:collapse;font-size:13px}
.mt th{text-align:left;font-size:11.5px;color:var(--mute);font-weight:600;height:30px;padding:0 10px;border-bottom:1px solid var(--line2);background:var(--bg);white-space:nowrap}
.mt td{height:36px;padding:4px 10px;border-bottom:1px solid var(--line2);font-variant-numeric:tabular-nums}
.mt tr:last-child td{border-bottom:0}
.meter{display:flex;align-items:center;gap:8px;font-size:12.5px}
.bar{height:8px;border-radius:4px;background:var(--bg);overflow:hidden;flex:1}
.bar i{display:block;height:100%;background:var(--brand)}.bar i.okc{background:#22a45d}
.vbs{display:flex;gap:6px}
.vb{height:32px;flex:1;min-width:64px;border-radius:var(--radius-sm);border:1px solid var(--btn-line);background:var(--card);font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer}
.vb:disabled{cursor:default;opacity:.85}
.vb.y{color:var(--ok)}.vb.p{color:var(--warn)}.vb.n{color:var(--bad)}
.ro{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line2)}.ro:last-child{border-bottom:0}
.top-line{border-top:1px solid var(--line2);display:flex;flex-direction:column;gap:6px}

/* game */
.upd{display:flex;gap:18px;padding:12px 14px}
.upd .kv{min-width:110px}
.vl{margin:0;padding:0;list-style:none;font-size:13px;display:flex;flex-direction:column;gap:3px;border-left:1px solid var(--line2);padding-left:14px}
.strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:10px 14px;border-top:1px solid var(--gold-line);background:var(--warn-bg)}
.strip .tt{flex:1;min-width:220px;font-size:13.5px}
.strip .vbs .vb{flex:0 0 76px}
.pt{flex-wrap:wrap}
.osv{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.pt .tt{flex:1 1 100%}.pt .tt b{font-weight:800}
.mx{border-collapse:separate;border-spacing:3px;font-size:12.5px;margin:0 8px 8px}
.mx th{font-weight:600;color:var(--mute);padding:0 6px;height:30px;text-align:left;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}
.mx td{min-width:62px;height:30px;text-align:center;border-radius:4px;font-weight:700}
.c-y{background:var(--ok-bg);color:var(--ok)}.c-n{background:var(--bad-bg);color:var(--bad)}.c-u{background:var(--warn-bg);color:var(--warn);outline:1px dashed #d9a54a;outline-offset:-1px}.c-0{background:var(--bg);color:var(--mute2);font-weight:500}.c-p{background:var(--partial-bg);color:var(--warn)}

/* gpu */
.fitg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.fit{display:flex;flex-direction:column;gap:3px;padding:12px;border-right:1px solid var(--line2);min-width:0}
.fit:last-child{border-right:0}
.fit>a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fit b{font-size:15px}
.fy{color:var(--ok)}.fm{color:var(--warn)}.fn{color:var(--bad)}
.method{border-top:1px solid var(--line2);padding:8px 12px;font-size:12.5px;color:var(--ink2)}
.method summary{cursor:pointer;font-weight:700;font-size:12px;color:var(--est)}
.method p{margin:6px 0 0;white-space:pre-line}

/* ip */
.nx{display:flex;flex-direction:column;gap:8px}
.cd{display:flex;gap:6px}
.cd span{display:flex;flex-direction:column;align-items:center;background:var(--ink);color:var(--card);border-radius:var(--radius-sm);padding:6px 10px;min-width:46px}
.cd b{font-size:22px;font-variant-numeric:tabular-nums;line-height:1.1}
.cd small{font-size:11px;opacity:.8}
.goods{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.goods li{display:flex;flex-direction:column;gap:5px;padding:12px;border-right:1px solid var(--line2);font-size:13px;min-width:0}
.goods li:last-child{border-right:0}

/* trending */
.kwb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px}
.kwb b{font-size:13px;margin-right:4px}
.kw{font-size:13px;font-weight:600;padding:4px 10px;border-radius:var(--radius-md);background:var(--brand-soft);color:var(--brand)}

/* board */
.mtabs{display:flex;border-bottom:1px solid var(--line);padding:0 6px;overflow-x:auto;scrollbar-width:none}
.mtabs a{height:42px;padding:0 12px;display:flex;align-items:center;font-size:14px;font-weight:600;color:var(--mute);white-space:nowrap}
.mtabs a.on{color:var(--brand);box-shadow:inset 0 -2px 0 var(--brand)}
.sb{min-height:40px;display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:6px 10px;border-bottom:1px solid var(--line);background:var(--bg)}
.sb a{height:28px;padding:0 10px;border-radius:4px;font-size:13px;font-weight:600;color:var(--mute);display:inline-flex;align-items:center}
.sb a.on{background:var(--ink);color:var(--card)}
.sb .sp{flex:1}
.sb a.best{border:1px solid var(--gold);color:var(--warn);background:var(--warn-bg)}
.sb a.best.on{background:var(--gold);color:#fff}
.newbar{display:block;text-align:center;padding:8px;font-size:13px;font-weight:700;color:var(--brand);background:var(--brand-soft);border-bottom:1px solid var(--line2)}
.plist{list-style:none;margin:0;padding:0}
.pr{display:grid;grid-template-columns:60px minmax(0,1fr) 110px 52px 50px 40px;gap:8px;align-items:center;min-height:37px;padding:4px 12px;border-bottom:1px solid var(--line2);font-size:14px}
.pr.ph{min-height:30px;font-size:12px;color:var(--mute);background:var(--bg)}
.pr.ph .tt{text-align:center}
.pr.bot{background:var(--bot-bg)}
.pr.pin{background:var(--brand-soft)}
.pr.cur{background:var(--warn-bg);font-weight:700}
.no{font-size:12px;color:var(--mute2);text-align:center;font-variant-numeric:tabular-nums}
.pr .tt{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cmt{color:var(--hot);font-weight:700;font-size:13px;margin-left:3px}
.star{color:#c98a00}
.img{color:var(--mute2);font-size:12px}
.num{font-size:12.5px;color:var(--mute);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.nick{font-size:13px;color:var(--ink2);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.nick b{font-size:11px;color:var(--brand);margin-left:2px}
.nick.bot b{color:var(--mute)}
.chn{font-size:12px;color:var(--mute)}
.mh{display:inline-block;font-size:11.5px;font-weight:700;color:var(--chip-ink);background:var(--line2);border-radius:3px;padding:1px 5px;margin-right:5px;vertical-align:1px}
.mh.news{background:var(--news-bg);color:var(--news-ink)}.mh.rep{background:var(--bad-bg);color:var(--bad)}.mh.q{background:var(--brand-soft);color:var(--brand)}.mh.gd{background:var(--ok-bg);color:var(--ok)}.mh.ko,.mh.ben{background:var(--vio-bg);color:var(--vio-ink)}.mh.nt{background:var(--ink);color:var(--card)}
.pager{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px}

/* wiki */
.wbh{border-bottom:2px solid var(--brand)}
.wk{width:100%;border-collapse:collapse;font-size:13px}
.wk th{text-align:left;font-weight:500;color:var(--mute);width:96px;padding:7px 8px 7px 12px;border-bottom:1px solid var(--line2);vertical-align:top}
.wk td{border-bottom:1px solid var(--line2);padding:7px 12px 7px 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.wk td a,.rows a.tt,.links a{color:var(--brand)}
.wk .fine{display:block;margin-top:2px}
.links{display:flex;flex-direction:column;gap:6px;padding:0 12px 12px;font-size:13px}
.links .wh{padding:12px 0 2px}

/* post view */
.crumb{display:flex;align-items:center;gap:10px}
.crumb a.chl{font-weight:800;font-size:16px}
.crumb .sp{flex:1}
.post .ph1{padding:16px 18px 12px;border-bottom:1px solid var(--line2)}
.post h1{font-size:20px;letter-spacing:-.3px;line-height:1.35}
.meta1{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px;font-size:13px;color:var(--mute)}
.meta1 .nick{color:var(--ink)}
.meta1 .sep{color:var(--line)}
.pbody{padding:16px 18px;font-size:15px;line-height:1.7;overflow-wrap:anywhere}
.pbody p{margin:0 0 .9em}
.pbody pre{background:var(--bg);padding:10px;border-radius:4px;overflow-x:auto}
.pbody img{max-width:100%;height:auto}
.facts{border-collapse:collapse;font-size:13.5px;margin:0 18px;border:1px solid var(--line2);border-radius:4px}
.facts th{text-align:left;font-weight:600;color:var(--mute);padding:7px 12px;background:var(--bg);width:110px}
.facts td{padding:7px 12px}
.vstate{margin:0 18px 12px;padding:10px 12px;background:var(--warn-bg);border-radius:4px;font-size:13.5px}
.vote{display:flex;justify-content:center;gap:10px;padding:14px}
.vote button{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:84px;padding:8px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);font:inherit;color:var(--ink);cursor:pointer}
.vote button b{font-size:18px}.vote .up b{color:var(--brand)}
.pact{display:flex;justify-content:flex-end;gap:6px;padding:0 18px 14px}
.cmh{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line2);font-weight:800}
.cmh .srt{margin-left:auto;display:flex;gap:10px;font-size:12.5px;font-weight:600;color:var(--mute)}
.cl{list-style:none;margin:0;padding:0}
.co{padding:10px 14px;border-bottom:1px solid var(--line2)}
.co.re{padding-left:34px;background:var(--bg)}
.co.bestc{background:var(--warn-bg)}
.co .h{display:flex;align-items:center;gap:6px;font-size:13px}
.co .h .fine{margin-left:4px}
.co .op{font-size:11px;font-weight:700;color:var(--brand);border:1px solid var(--brand);border-radius:3px;padding:0 4px}
.co .bb{font-size:11px;font-weight:800;color:#fff;background:#e0a106;border-radius:3px;padding:0 5px}
.co .cb{margin:4px 0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}
.co .cb p{margin:0}
.co .a{display:flex;gap:12px;font-size:12px;color:var(--mute)}
.co.del .cb{color:var(--mute2)}
.cform{display:flex;gap:8px;padding:12px 14px;align-items:flex-end}
.cform textarea{flex:1;min-height:64px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;font:inherit;background:var(--card);color:var(--ink);resize:vertical}

/* community front */
.front{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.lr{display:grid;grid-template-columns:28px minmax(0,1fr) 110px 56px;gap:8px;align-items:center;min-height:38px;padding:4px 12px;border-bottom:1px solid var(--line2);font-size:14px}
.lr:last-child{border-bottom:0}
.lr .tt{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rank{font-weight:800;color:var(--brand);text-align:center;font-size:13px}
.up{font-size:12.5px;color:var(--hot);font-weight:700;text-align:right}
.ftabs{display:flex;gap:2px;margin-left:8px;flex-wrap:wrap}
.ftabs a{font-size:12.5px;font-weight:600;color:var(--mute);padding:2px 8px;border-radius:var(--radius-md)}
.ftabs a.on{background:var(--ink);color:var(--card)}
.front .rows a.tt{color:var(--ink)}
.login{display:flex;flex-direction:column;gap:8px;padding:14px}
.login .btn{justify-content:center}
.toolsg{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 12px;font-size:13px}
.toolsg a{color:var(--brand)}

/* islands */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;z-index:20;max-width:calc(100% - 32px)}
.btn.on{border-color:var(--brand);color:var(--brand)}
.vote button.on{border-color:var(--brand);background:var(--brand-soft)}
.co .a a.on{color:var(--brand);font-weight:700}
.cfw{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}
.replying{margin:0;font-size:12.5px;color:var(--brand)}
.lnk{border:0;background:none;color:var(--mute);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline}
.wform{display:flex;flex-direction:column;gap:12px;padding:16px 18px}
.wform label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--ink2)}
.wform input,.wform select,.wform textarea{font:inherit;font-size:14px;font-weight:400;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 10px}
.wform textarea{min-height:260px;resize:vertical;line-height:1.6}
.wform .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.wform fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:10px;margin:0}
.wform legend{font-size:13px;font-weight:800;padding:0 4px}
.wform .acts{display:flex;justify-content:flex-end;gap:8px}
.needlogin{margin:0;padding:10px 12px;background:var(--warn-bg);border-radius:var(--radius-sm);font-size:13px}
.rules{margin:0;padding:0 0 0 18px;font-size:12.5px;color:var(--mute);line-height:1.6}
.n2 :focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* history + status */
.hist{list-style:none;margin:0;padding:0}
.hd2{font-size:12.5px;font-weight:800;color:var(--mute);padding:10px 12px 4px;background:var(--bg);border-bottom:1px solid var(--line2)}
.sthero{display:flex;gap:14px;align-items:flex-start;padding:16px 18px}
.sthero .dot{width:14px;height:14px;border-radius:50%;flex:none}
.sthero{flex-wrap:wrap}.sthero>.sti{margin-top:2px}
.stq{flex-basis:100%;display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line2)}
.stbig{height:52px;border-radius:var(--radius-md);border:0;background:var(--bad);color:var(--card);font:inherit;font-size:17px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.stbig:disabled{cursor:default;opacity:.9}.stbig.on{background:var(--ok)}
.stsym{display:flex;flex-wrap:wrap;gap:6px}.stsym .vb{flex:1 1 90px}.stq .fine{margin:0}.sthb{min-width:0;flex:1}.sthb .fine{margin:2px 0}.stf{color:var(--ink2)}
.sthero h1{font-size:20px;letter-spacing:-.3px}
.sthero.bad{border-color:var(--bad)}.sthero.warn{border-color:var(--gold-line)}
.sym{flex-wrap:wrap;padding:12px}
.sym .vb{flex:1 1 110px}
.hchart{display:block;width:100%;min-width:480px;height:auto;padding:8px 12px 0}
.hchart .gl{stroke:var(--line2);stroke-width:1}
.hchart .ax{fill:var(--mute);font-size:11px;font-family:inherit}
.hchart .b{fill:var(--brand);opacity:.75}.hchart .b.now{opacity:1}
.hchart .hit{fill:transparent}
.hchart .bar:hover .b{opacity:1}
.hchart .base{stroke:var(--mute);stroke-dasharray:4 4;stroke-width:1.5}
.tm{font-size:12px;color:var(--mute2);width:40px;flex:none;font-variant-numeric:tabular-nums}

.narrow{display:flex;flex-direction:column;gap:12px;max-width:860px;width:100%;margin:0 auto}
.sform{display:flex;gap:8px;align-items:center;padding:12px}
.sform input[type=search]{flex:1;min-width:0;font:inherit;font-size:15px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink)}
.rh{flex-direction:column;align-items:flex-start}

.alertbox{padding:10px 14px;background:var(--warn-bg);border-color:var(--gold-line);font-size:14px}
.specs{display:flex;flex-wrap:wrap;gap:8px 28px;padding:12px 16px}
.spec{display:flex;flex-direction:column;gap:2px;font-size:15px}
.spec code{font-size:13px;background:var(--bg);padding:1px 6px;border-radius:4px}

.tt.unread{font-weight:700}
.tt.unread::before{content:'● ';color:var(--hot);font-size:10px;vertical-align:2px}

.mq{flex-direction:column;align-items:stretch;gap:4px;padding-block:10px}.mq .tt{white-space:normal}.mq p{margin:0}
.mqh{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.mqt{font-size:12px;font-weight:700;color:var(--hot)}
.mqx{color:var(--ink2);font-size:13px;line-height:1.5;white-space:pre-wrap;max-height:6.2em;overflow:hidden;border-left:3px solid var(--line);padding-left:8px}
.mqn{font-size:13px;background:var(--bg);border-radius:4px;padding:4px 8px}.mqa{display:flex;flex-wrap:wrap;gap:6px}

.hubg{list-style:none;margin:0;padding:6px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 10px}
.hubg li{display:flex;align-items:center;gap:8px;min-height:36px;padding:4px 6px;font-size:13.5px;min-width:0}
.hubg .tt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}

.week{list-style:none;margin:0;padding:8px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.week>li{border:1px solid var(--line2);border-radius:4px;padding:8px;min-width:0}
.week>li.today{border-color:var(--brand)}
.week h3{font-size:13px;font-weight:800;margin-bottom:6px}
.week ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.week ul li{display:flex;flex-direction:column}
.week ul .tm{width:auto}
@media (max-width:1000px){.week{grid-template-columns:repeat(2,minmax(0,1fr))}}

.rows li.vtl{flex-direction:column;align-items:flex-start;gap:2px}
.rows li.vtl .tt{flex:none}

.pol ul,.pol ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;line-height:1.6;font-size:14px}

.solved{display:inline-block;font-size:11px;font-weight:800;color:var(--ok);background:var(--ok-bg);border-radius:3px;padding:0 5px;margin-right:5px;vertical-align:1px}
.co .bb.ok{background:var(--ok)}

/* narrow screens */
@media (max-width:1000px){
 .cols,.front{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
 .g2,.g2.a,.g2.b,.g2.c{grid-template-columns:minmax(0,1fr)}
 .fitg,.goods{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fit:nth-child(2n),.goods li:nth-child(2n){border-right:0}
 .fit,.goods li{border-bottom:1px solid var(--line2)}
 .chh{flex-wrap:wrap}
 .cha{width:100%}.cha .btn{flex:1;justify-content:center}
}
@media (max-width:640px){
 .pg{padding:12px 10px 32px}
 .hu .hb.solid{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:36px;padding:0 12px}
 .pr{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"t t t" "a w u";gap:2px 8px;padding:8px 12px}
 .pr .tt{grid-area:t;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
 .pr .nick{grid-area:a;font-size:12px}.pr .w{grid-area:w}.pr .u{grid-area:u}
 .pr .no,.pr .v,.pr .chn,.pr.ph{display:none}
 .lr{grid-template-columns:24px minmax(0,1fr) 44px}.lr .chn{display:none}
 .upd{flex-direction:column;gap:8px}.vl{border-left:0;padding-left:0}
 .facts{margin:0 12px}.pbody,.post .ph1{padding-left:12px;padding-right:12px}
}
.wt{font-size:15px;font-weight:800}
.ftarget{margin:0;padding:12px 18px 0;display:flex;flex-direction:column;gap:2px}.ftarget a{font-weight:700}
.go{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-left:4px solid var(--brand)}.go:hover{text-decoration:none;border-color:var(--brand)}.go b{font-size:15px}
.mr .tm{width:48px}.mr .tt{white-space:normal;min-width:0}.mr .chn{flex:none;max-width:34%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.mdt{border-collapse:collapse;font-size:13.5px;margin:6px 0;font-variant-numeric:tabular-nums}.mdt th,.mdt td{border:1px solid var(--line);padding:5px 10px;text-align:left}.mdt th{background:var(--bg);font-weight:700}.mdt .ar{text-align:right}.mdt .ac{text-align:center}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chips .sp{flex:1}
.chipf{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--line);border-radius:var(--radius-md);padding:3px 10px;font-size:12.5px;color:var(--ink2);background:var(--card)}
.chipf:hover{text-decoration:none;border-color:var(--brand)}.chipf.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chipf.on .fine{color:inherit}
@media (max-width:640px){.mt .nm{display:none}}
.more{padding:6px 16px 10px}.more summary{cursor:pointer;color:var(--brand);font-size:13px;font-weight:700;padding:6px 0}
.cedit{display:flex;flex-wrap:wrap;gap:6px}.cedit textarea{flex:1 1 100%;font:inherit;padding:8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink)}
.prop{padding:4px 16px 12px;border-top:1px solid var(--line2)}.prop summary{cursor:pointer;font-size:12.5px;color:var(--mute);padding:8px 0}.prop .wform{padding:6px 0 0}

.bdg{display:inline-block;min-width:18px;padding:0 5px;border-radius:var(--radius-md);background:var(--hot);color:#fff;font-size:11px;line-height:18px;text-align:center;font-weight:800}
.mqx.full{max-height:none}
.ftabs .on>.fine,.on>.fine{color:inherit}
.ek{display:inline-block;font-size:11px;font-weight:700;color:var(--ink2);background:var(--line2);border-radius:3px;padding:0 5px;margin-right:2px;vertical-align:1px}
.ha{font-size:.6em;font-weight:600;color:var(--mute)}.sthero .sth{margin:2px 0 4px;font-weight:700}
.ph1tags{margin:0 0 4px;display:flex;gap:6px;align-items:center}
@media (max-width:640px){.hchart{min-width:0;padding-inline:4px}}
.mt.vs{width:100%;table-layout:fixed}.mt.vs th,.mt.vs td{white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.mt.vs thead th:first-child,.mt.vs tbody th{width:28%}
/* Provider-branded sign-in buttons (src/signin-brands.js): Google white/#747775 (dark #131314/#8e918f), GitHub #24292f, Discord Blurple #5865f2. */
.sibs{display:flex;flex-direction:column;gap:8px}
.n2 .sib{display:flex;align-items:center;justify-content:center;gap:10px;min-height:42px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:14px;text-decoration:none;box-sizing:border-box}
.n2 .sib:hover{text-decoration:none}.n2 .sib:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.sib-i{flex:none}
.n2 .sib-google{background:#fff;border-color:#747775;color:#1f1f1f}.n2 .sib-google:hover{background:#f2f2f2}
.n2 .sib-github{background:#24292f;color:#fff}.n2 .sib-github:hover{background:#32383f}
.n2 .sib-discord{background:#5865f2;color:#fff}.n2 .sib-discord:hover{background:#4752c4}
.n2 .sib-passkey{width:100%;background:var(--accent);color:var(--on-accent);cursor:pointer;font-family:inherit}.n2 .sib-passkey:hover{filter:brightness(.93)}.n2 .sib-passkey:disabled{opacity:.6;cursor:progress}
dialog.signin .pk-new{margin:10px 0 0;font-size:13px}dialog.signin .pk-new summary{cursor:pointer;color:var(--brand);font-weight:600}
dialog.signin .pk-form{display:flex;flex-direction:column;gap:6px;margin-top:8px}dialog.signin .pk-form input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);min-height:40px}
dialog.signin .pk-form .btn{justify-content:center}dialog.signin .pk-warn,dialog.signin .pk-msg{margin:6px 0 0;font-size:12px;line-height:1.6}dialog.signin .pk-msg{color:var(--down,#c0392b)}dialog.signin .pk-or{margin:12px 0 8px;text-align:center}
:root[data-theme="dark"] .n2 .sib-google{background:#131314;border-color:#8e918f;color:#e3e3e3}:root[data-theme="dark"] .n2 .sib-github{border-color:#3d444d}
/* Sign-in sheet (islands): shown instead of leaving the page when a signed-out reader acts. */
dialog.signin{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);padding:18px;width:min(360px,calc(100vw - 32px));box-sizing:border-box}
dialog.signin::backdrop{background:rgba(10,14,20,.45)}
dialog.signin h2{font-size:16px;margin:0 0 4px}
dialog.signin p{margin:0 0 14px;color:var(--mute);font-size:13px}
dialog.signin .x{margin-top:12px;width:100%;justify-content:center}
/* Authors: anonymous (유동) "ㅇㅇ (a3F9)" muted with a monospace daily ID; members (고정닉) with ✓. */
.nick.anon{color:var(--mute)}.nick.anon .aid{font-size:11px;font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--mute2)}
.meta1 .nick.anon{color:var(--mute)}
.nick.mem{font-weight:600}.nick.mem .ck{font-size:10px;color:var(--ok);margin-left:3px}
/* Writing without an account: nickname + password row under the textarea, notices, the human check. */
.anonf{display:flex;flex-direction:column;gap:6px}
.anonr{display:flex;gap:8px;flex-wrap:wrap}
.wform .anonl,.anonl{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--mute)}
.anonl input{font:inherit;font-size:14px;font-weight:400;width:9.5em;max-width:40vw;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 8px}
.anonn,.anonw{margin:0;font-size:12px;line-height:1.5}
.anonw{color:var(--warn);background:var(--warn-bg);padding:6px 8px;border-radius:var(--radius-sm)}
.cform .anonf{margin-top:2px}
dialog.hc{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);padding:14px;width:min(340px,calc(100vw - 32px));box-sizing:border-box}
dialog.hc::backdrop{background:rgba(10,14,20,.45)}
dialog.hc p{margin:0 0 10px;font-size:13px}
dialog.hc iframe{border:0;width:100%;height:80px;display:block}
dialog.hc .x{margin-top:10px;width:100%;justify-content:center}
dialog.pw{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);padding:16px;width:min(340px,calc(100vw - 32px));box-sizing:border-box}
dialog.pw::backdrop{background:rgba(10,14,20,.45)}
dialog.pw form{display:flex;flex-direction:column;gap:10px}
dialog.pw label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}
dialog.pw input{font:inherit;font-size:15px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 10px;background:var(--card);color:var(--ink)}
dialog.pw .acts{display:flex;justify-content:flex-end;gap:8px}
/* Image picker (write page): previews with progress and remove. */
.imgpick{display:flex;flex-direction:column;gap:8px}
.imgbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.imgbar .btn{cursor:pointer}
.imgs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.imgs li{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg)}
.imgs li img{width:100%;height:100%;object-fit:cover;display:block}
.imgs li .bar{position:absolute;left:0;bottom:0;height:4px;background:var(--brand);transition:width .2s}
.imgs li.err{border-color:var(--bad)}.imgs li .msg{position:absolute;inset:auto 0 0 0;background:var(--bad-bg);color:var(--bad);font-size:11px;padding:3px 4px}
.imgs li .rm{position:absolute;top:4px;right:4px;border:0;border-radius:50%;width:24px;height:24px;background:rgba(10,14,20,.6);color:#fff;font-size:14px;line-height:24px;padding:0;cursor:pointer}
.pbody img{border-radius:var(--radius-sm);display:block;margin:.4em 0}
.mqi{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.mqi img{width:96px;height:96px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);display:block}
/* Channels (docs/n2/CHANNELS.md): 7 channels, 말머리 and 0–3 tags per post. */
.mh.inf{background:var(--est-bg);color:var(--est)}.mh.rv{background:var(--t-sub);color:var(--t-sub-ink)}.mh.buy{background:var(--t-games);color:var(--t-games-ink)}
.tile.ch-ai{background:var(--t-ai);color:var(--t-ai-ink)}.tile.ch-games{background:var(--t-games);color:var(--t-games-ink)}.tile.ch-hw{background:var(--t-hw);color:var(--t-hw-ink);font-size:15px}
.tile.ch-studio{background:var(--t-studio);color:var(--t-studio-ink)}.tile.ch-sub{background:var(--t-sub);color:var(--t-sub-ink)}.tile.ch-free{background:var(--line2);color:var(--ink2)}
.tile.ch-notice{background:var(--ink);color:var(--card)}.tile.ch-patch{background:var(--vio-bg);color:var(--vio-ink)}
.tile.sm{width:24px;height:24px;border-radius:var(--radius-sm);font-size:10px}
.crumb .tile{width:32px;height:32px;border-radius:var(--radius-sm);font-size:12px}
/* channel bar: pinned channels first (islands), 한글패치 모음, 전체 채널 on the right */
.cr .chs{display:contents}
.cr a.pinned::after{content:'';width:5px;height:5px;border-radius:50%;background:var(--brand);margin-left:4px;opacity:.7}
.cr .patch{gap:5px}.cr .patch svg{color:var(--vio-ink)}
.cr .sp{flex:1}
.cr .allch{gap:5px;color:var(--mute)}
/* 전체 채널: a bottom sheet on phones, a dialog on wide screens */
dialog.chsheet{border:0;padding:0;background:var(--card);color:var(--ink);width:min(440px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 64px));border-radius:var(--radius-md);box-shadow:0 12px 40px rgba(10,14,20,.25);overflow:auto;overscroll-behavior:contain}
dialog.chsheet::backdrop{background:rgba(15,20,28,.5)}
.chsheet .grab{display:none;width:40px;height:4px;border-radius:2px;background:var(--line);margin:8px auto 0;position:absolute;left:0;right:0;top:0}
.chsheet .shh{position:sticky;top:0;z-index:1;background:var(--card);display:flex;align-items:center;gap:8px;padding:10px 6px 6px 16px}
.chsheet .shh h2{font-size:17px;flex:1}
.shx{width:44px;height:44px;border:0;background:none;color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer}
.shs{padding:0 14px 10px;position:relative}
.shs input{width:100%;height:44px;border:1px solid var(--line);border-radius:var(--radius-sm);padding:0 12px;font:inherit;font-size:15px;color:var(--ink);background:var(--card)}
.shr{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--card)}
.shr li{border-bottom:1px solid var(--line2)}.shr li:last-child{border-bottom:0}
.shr li>a,.shr li>button{display:flex;align-items:center;gap:4px;width:100%;min-height:40px;padding:0 12px;border:0;background:none;font:inherit;font-size:14px;color:var(--ink);text-align:left;cursor:pointer}
.shr li.fine{padding:10px 12px}
.shg h3{font-size:12.5px;font-weight:700;color:var(--mute);padding:10px 16px 4px}
.shg ul{list-style:none;margin:0;padding:0}
.shg li{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 14px;border-bottom:1px solid var(--line2)}
.shg li .tile{width:32px;height:32px;border-radius:var(--radius-sm);font-size:12px}
.shg li>a{font-size:15px;font-weight:600;flex:1}
.shn{display:flex;flex-direction:column;min-width:0;flex:1}.shn a{font-size:15px;font-weight:600}.shn .fine{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.shg .rtags{padding:6px 14px 10px}
.shf{padding:12px 16px 16px;margin:0}
.pin .p1{display:none}.pin[aria-pressed="true"] .p0{display:none}.pin[aria-pressed="true"] .p1{display:inline}
button.pin{height:36px;min-width:64px;padding:0 10px;border-radius:var(--radius-lg);border:1px solid var(--btn-line);background:var(--card);color:var(--ink2);font:inherit;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;flex:none}
button.pin[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.btn.pin{border-radius:var(--radius-sm);height:34px}.btn.sm{height:28px;padding:0 10px;font-size:12px;min-width:0}
/* board rows: title cell holds the title, the channel and the tags */
.pr .tc{display:flex;align-items:center;gap:6px;min-width:0}
.pr .tc .tt{flex:0 1 auto}
.pr .tc .chn{flex:none}
.rtags{display:inline-flex;gap:4px;flex:none;flex-wrap:wrap}
.rtag{display:inline-flex;align-items:center;height:20px;padding:0 7px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);font-size:11.5px;font-weight:600;color:var(--ink2);white-space:nowrap}
.n2 .rtag:hover{text-decoration:none;border-color:var(--brand);color:var(--brand)}
.rtag.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.tagl{display:flex;flex-wrap:wrap;gap:6px;margin:0}.tagl .rtag{height:26px;padding:0 10px;font-size:12.5px;border-radius:var(--radius-md)}
.pr.nrow .tc{flex-wrap:wrap}.pr.nrow .no .mh{margin:0;background:var(--ink);color:var(--card)}
.nmore{flex:none;font-size:12px}.nmore summary{cursor:pointer;color:var(--brand);list-style:none}.nmore summary::-webkit-details-marker{display:none}
.nmore ul{margin:4px 0 2px;padding-left:16px;font-size:13px}
.pr.brow{min-height:34px;font-size:13px}.pr.brow .tt{color:var(--ink2)}
.unfold{flex:none;font-size:12.5px;font-weight:700;color:var(--brand)}
/* channel head and board filters */
.chead .chn1 h1{font-size:22px}
.tagbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line2)}
.tagbar .tl,.facets .tl{font-size:12px;font-weight:700;color:var(--mute);margin-right:2px}
.tchip{height:28px;padding:0 10px;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--card);color:var(--ink2);font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.n2 .tchip:hover{text-decoration:none;border-color:var(--brand)}
.tchip.on{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.tchip.on .tv{color:inherit}
.tv{font-weight:500;color:var(--mute)}
.tagbar .more{font-size:12.5px;font-weight:700;color:var(--brand);margin-left:4px;padding:0}
.tagon{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:8px 12px;background:var(--brand-soft);border-bottom:1px solid var(--line2);font-size:13px}
.tagon b{color:var(--brand)}.tagon span{color:var(--ink2)}.tagon>a:not(.btn){color:var(--brand);font-weight:700}
.tagon .btn{margin-left:auto;height:28px;padding:0 8px;font-size:12px}
.facets{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line2)}
.fr{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.fr a{height:26px;padding:0 9px;border-radius:var(--radius-md);font-size:12.5px;font-weight:600;color:var(--mute);display:inline-flex;align-items:center}
.fr a.on{background:var(--ink);color:var(--card)}
.tagcard{border-color:var(--brand)}
.acts2{display:flex;gap:6px;margin:0}.acts2 .btn{flex:1;justify-content:center}
.tagh h2{font-size:14px}.tagh .x a{color:var(--brand)}
.tagf{display:flex;align-items:center;flex-wrap:wrap;gap:8px;justify-content:space-between;margin:0;border-top:1px solid var(--line2)}.tagf>a:not(.btn){color:var(--brand);font-weight:700;font-size:13px}
/* write form */
.wsec legend .fine{font-weight:500;margin-left:4px}
.wchip{height:32px;padding:0 12px;border-radius:var(--radius-lg);border:1px solid var(--btn-line);background:var(--card);color:var(--ink2);font:inherit;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}
.n2 .wchip:hover{text-decoration:none;border-color:var(--brand)}
.wchip.on{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}
.wform label.wchip{flex-direction:row;gap:0;font-weight:600;font-size:13px;color:var(--ink2)}
.wchip.r input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.wchip.r:has(input:checked){border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:700}
.wchip.r:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.wchip.r:has(input:disabled){opacity:.55;cursor:default}
.wchip.add{border-style:dashed}.wchip.add .fine{margin-left:2px}.wchip:disabled{opacity:.5;cursor:default}
.wtag{display:inline-flex;align-items:center;gap:2px;height:30px;padding:0 4px 0 12px;border-radius:var(--radius-lg);background:var(--brand-soft);color:var(--brand);font-size:13px;font-weight:700}
.wtag button{border:0;background:none;color:inherit;font:inherit;font-size:16px;line-height:1;width:24px;height:24px;border-radius:var(--radius-md);cursor:pointer}
.tcount{margin-left:6px;font-size:12px;font-weight:700;color:var(--brand)}
.tsearch{position:relative}.tsearch input{width:100%}
.tsug{display:flex;flex-direction:column;gap:6px}
.tprop{border-top:1px dashed var(--line);padding-top:8px}.tprop summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--mute)}
.tprop[open]{display:flex;flex-direction:column;gap:8px}.tprop .btn{align-self:flex-start}
.wfrom{margin:0;padding:10px 18px 0;font-size:13px;color:var(--ink2)}
/* community front */
.fh{font-size:20px;letter-spacing:-.4px}
.fsub{font-size:14px;font-weight:800;color:var(--ink2);margin-top:4px;scroll-margin-top:12px}
.chgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.chbox .bh .tile{width:32px;height:32px;border-radius:var(--radius-sm);font-size:12px}
.chbox .bh h2{font-size:15px}.chbox .bh .x{margin-left:0;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.fl{display:flex;flex-wrap:wrap;gap:2px 10px;padding:8px 12px 4px;font-size:12.5px;color:var(--mute)}
.chbox .rows li{min-height:32px;padding:4px 12px;font-size:13.5px}
.chfoot{display:flex;align-items:center;gap:8px;margin:0;border-top:1px solid var(--line2)}.chfoot .fine{flex:1;min-width:0}.chfoot a{color:var(--brand);font-weight:700;font-size:13px;flex:none}
.nline{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:10px 12px}.nline .tile{width:28px;height:28px;border-radius:var(--radius-sm);font-size:11px}.nline .tt{flex:1 1 200px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.chf{margin:0;padding:8px 12px 0}
.mych li[data-pinned] a::before{content:'📌 ';font-size:11px}
@media (max-width:1000px){.chgrid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
 .cr{height:44px;position:relative}
 .cr a{height:44px;font-size:14px}
 .cr .patch,.cr .sep{display:none}
 .cr .sp{display:none}
 .cr .allch{position:sticky;right:0;margin-left:auto;flex:none;width:48px;justify-content:center;padding:0;border-left:1px solid var(--line);background:var(--card);color:var(--ink2)}
 .cr .allch span{display:none}
 .chbar .w.cr{padding-right:0}
 dialog.chsheet{width:100vw;max-width:100vw;max-height:calc(100dvh - 72px);margin:auto 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}
 .chsheet .grab{display:block}
 .chsheet .shh{padding-top:16px}
 .pr .tc{grid-area:t;flex-wrap:wrap;gap:2px 6px}
 .pr .tc .tt{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1 1 100%}
 .pr .tc .chn{display:inline}
 .pr .rtags{flex-wrap:wrap}
 .tagon .btn{margin-left:0}
 .chead .cha{width:100%}.chead .cha .btn{flex:1;justify-content:center}
 .wchip{height:36px}
 .tagf{flex-direction:column;align-items:stretch}.tagf .btn{justify-content:center}
}
.crumb{flex-wrap:wrap;row-gap:8px}.crumb a.chl{white-space:nowrap}.crumb .rtags{min-width:0}
@media (max-width:640px){.crumb .rtags{order:5;flex:1 1 100%}.crumb .btn{height:32px;padding:0 10px}}
.pr .tc .tt{min-width:min(50%,14em)}.pr .tc .rtags{flex:0 1 auto;min-width:0;overflow:hidden;flex-wrap:nowrap}
.rules.pad{padding:10px 12px 10px 28px;margin:0}
@media (max-width:640px){.pr .tc .tt{min-width:0}.pr .tc .rtags{flex-wrap:wrap;overflow:visible}}
@media (max-width:640px){.tagbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.tagbar::-webkit-scrollbar{display:none}.tagbar>*{flex:none}.pr.brow .tc{flex-wrap:wrap}}
.lr{grid-template-columns:28px minmax(0,1fr) minmax(0,max-content) 56px}
.lrm{display:flex;align-items:center;gap:6px;min-width:0;max-width:260px;overflow:hidden}.lrm .rtag{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}.lrm .chn{flex:none}
@media (max-width:640px){.lr{grid-template-columns:24px minmax(0,1fr) 44px}.lr .lrm{display:none}}

/* portal home: tabs, feed cards, right rail (status · news · schedule · best) */
.feedtabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid var(--line);font-size:14px;font-weight:700}
.feedtabs a{height:42px;padding:0 12px;display:inline-flex;align-items:center;color:var(--mute)}
.feedtabs a.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}.n2 .feedtabs a:hover{text-decoration:none;color:var(--ink)}
.feedtabs .sp{flex:1}.feedtabs .btn.p{height:36px;color:var(--on-accent)}
.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.fc{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:7px}
.fm{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;font-size:12.5px;color:var(--mute);min-width:0}
.fch{display:inline-flex;align-items:center;gap:6px;color:var(--ink)}.fch .tile{width:22px;height:22px;border-radius:var(--radius-sm);font-size:10px}
.fm .nick{font-size:12.5px}.fm .fv{margin-left:auto;font-variant-numeric:tabular-nums}
.fti{font-size:16.5px;font-weight:700;line-height:1.45;letter-spacing:-.2px}.fti a{color:var(--ink)}
.fx{margin:0;font-size:14px;line-height:1.55;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fa{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12.5px;font-weight:700}
.fa .up{height:26px;padding:0 9px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);display:inline-flex;align-items:center;font-variant-numeric:tabular-nums}
.fa .cm{height:26px;padding:0 9px;border-radius:var(--radius-sm);background:var(--soft);color:var(--ink2);display:inline-flex;align-items:center}
.fa .ftag{color:var(--brand)}
.more2{margin:4px 0 0;display:flex;justify-content:center}
.side .box.login{border-radius:var(--radius-md)}
.rrail{display:flex;flex-direction:column;gap:12px;min-width:0}
.rbox{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.rbh{display:flex;align-items:center;gap:8px}.rbh h2{font-size:15px;font-weight:800}.rbh a{margin-left:auto;font-size:12px;font-weight:700;color:var(--brand)}
.svc{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.svr{height:40px;padding:0 10px;border-radius:var(--radius-md);background:var(--soft);display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}
.n2 .svr:hover{text-decoration:none;background:var(--hover)}
.svc .dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--mute)}
.svc .dot.ok{background:#22c55e;box-shadow:0 0 0 3px var(--ok-bg)}.svc .dot.warn{background:#f59e0b;box-shadow:0 0 0 3px var(--warn-bg)}.svc .dot.bad{background:#e5484d;box-shadow:0 0 0 3px var(--bad-bg)}
.svs{margin-left:auto;font-size:12px;font-weight:700;color:var(--mute)}.svs.ok{color:var(--ok)}.svs.warn{color:var(--warn)}.svs.bad{color:var(--bad)}
.rnews,.rev,.rbest{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px}
.rnews li{display:flex;flex-direction:column;gap:1px}.rnews time{font-size:11.5px;color:var(--mute)}.rnews a{font-weight:700;line-height:1.4}
.rev li{display:flex;align-items:center;gap:8px;min-width:0}.rev a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rev .dday{flex:none;font:700 11px/1 'JetBrains Mono',ui-monospace,monospace;color:var(--warn);background:var(--warn-bg);padding:4px 6px;border-radius:4px}
.rbest li{display:flex;gap:10px;min-width:0}.rbest .rk{width:16px;flex:none;font:700 13px/1.4 'JetBrains Mono',ui-monospace,monospace;color:var(--brand)}
.rbest a{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rfoot{margin:0;padding:0 4px;font-size:12px;color:var(--mute);line-height:1.8}
.mstat{display:none;gap:6px;font-size:12.5px}
@media (max-width:1000px){
 .mstat{display:flex}
}
.msc{flex:1 1 0;min-width:0;display:flex;flex-direction:column;border-radius:var(--radius-md);background:var(--card);border:1px solid var(--line);overflow:hidden}
.msc>a:first-child{min-width:0;min-height:42px;padding:4px 8px;display:grid;grid-template-columns:auto 1fr;align-content:center;align-items:center;column-gap:5px;white-space:nowrap}
.msc>a:first-child b,.msc>a:first-child .svs{overflow:hidden;text-overflow:ellipsis}.msc>a:first-child .svs{grid-column:1/3;font-size:11.5px}
.n2 .mstat a:hover{text-decoration:none}.mstat .svs{margin-left:0}
/* the one-tap "안 돼요" beside a service (home status box and the phone strip) */
.svc li{display:flex;gap:6px}.svc .svr{flex:1;min-width:0;gap:8px}.svc .svr b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.svc .svs{white-space:nowrap}
.nb{flex:none;height:40px;padding:0 9px;border-radius:var(--radius-md);border:1px solid var(--btn-line);background:var(--card);color:var(--bad);display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:800;white-space:nowrap;cursor:pointer}
.n2 .nb:hover{text-decoration:none;background:var(--bad-bg)}.nb.on{color:var(--ok);border-color:var(--ok)}
.nb.c{height:30px;padding:0 6px;border:0;border-top:1px solid var(--line2);border-radius:0;justify-content:center;gap:4px;font-size:12px}
.mstat .dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--mute)}.mstat .dot.ok{background:#22c55e}.mstat .dot.warn{background:#f59e0b}.mstat .dot.bad{background:#e5484d}

/* post view (v4): rounded cards, the writer's initial, big vote buttons, the comment box above the thread */
.postv .box{border-radius:var(--radius-md)}
.post .ph1{padding:20px 22px 14px}
.post h1{font-size:23px;line-height:1.35;text-wrap:balance}
.meta1{gap:6px 10px}
.av{width:30px;height:30px;flex:none;border-radius:50%;background:var(--t-games);color:var(--t-games-ink);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:900}
.av.bot{background:var(--news-bg);color:var(--news-ink)}.av.anon{background:var(--soft);color:var(--mute)}
.co .av{width:28px;height:28px;font-size:12px}.co.re .av{width:24px;height:24px;font-size:11px}
.pbody{padding:16px 22px;font-size:16px;line-height:1.75}
.vote{gap:10px;padding:14px 22px 6px}
.vote button{flex-direction:row;gap:8px;min-width:128px;height:48px;justify-content:center;border-radius:var(--radius-md);font-size:15px;font-weight:700;color:var(--ink2)}
.vote button b{font-size:16px;font-variant-numeric:tabular-nums}
.vote .up{border:2px solid var(--accent);background:var(--brand-soft);color:var(--brand)}.vote .up b{color:var(--brand)}
.vote button.on{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.vote button.on b{color:inherit}
.pact{padding:6px 22px 16px}
.cmh{padding:14px 18px;font-size:16px}
.cform{padding:12px 18px;border-bottom:1px solid var(--line2)}
.cform textarea{border-radius:var(--radius-md);padding:10px 12px;min-height:72px}
.co{padding:14px 18px}
.co .h{gap:8px}
.co .h .nick a,.meta1 .nick a{color:inherit;font-weight:700}
.co.re{padding-left:52px;background:transparent;border-left:0;position:relative}
.co.re::before{content:"";position:absolute;left:32px;top:0;bottom:0;width:2px;background:var(--line)}
.co .op{color:var(--on-accent);background:var(--accent);border:0;border-radius:4px;padding:1px 6px}
.co .cb{margin:6px 0;font-size:15px}
.co .a{font-weight:700}.co .a a:first-child{color:var(--brand)}
@media (max-width:1000px){.postv .side{display:none}}
@media (max-width:640px){.post .ph1,.pbody{padding-left:14px;padding-right:14px}.vote{padding:12px 14px 4px}.vote button{flex:1;min-width:0}.co{padding:12px 14px}.co.re{padding-left:36px}.co.re::before{left:20px}}

/* profile */
.prof{border-radius:var(--radius-md)}
.pban{height:84px;background:linear-gradient(120deg,var(--accent),color-mix(in srgb,var(--accent) 30%,var(--card)))}
.pbody2{padding:0 22px 18px;display:flex;flex-direction:column;gap:12px}
.ptop{display:flex;align-items:flex-end;gap:14px;margin-top:-34px;flex-wrap:wrap}
.pav{width:72px;height:72px;flex:none;border-radius:50%;background:var(--t-ai);color:var(--t-ai-ink);border:4px solid var(--card);display:inline-flex;align-items:center;justify-content:center;font-size:28px;font-weight:900}
.pnm{display:flex;flex-direction:column;gap:2px;padding-bottom:4px;min-width:0}.pnm h1{font-size:22px;letter-spacing:-.3px;overflow-wrap:anywhere}
.ptier{margin-left:auto;margin-bottom:6px;font-size:12px;font-weight:800;color:var(--brand);background:var(--brand-soft);padding:4px 10px;border-radius:var(--radius-md)}
.pstat{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pstat div{background:var(--soft);border-radius:var(--radius-md);padding:10px 12px;display:flex;flex-direction:column-reverse;gap:2px}
.pstat dt{font-size:12px;color:var(--mute)}.pstat dd{margin:0;font:700 20px/1.2 'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.ptags{margin:0;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px;font-weight:700}.ptags .ftag{color:var(--brand)}
.pcom .pcb{margin:0;font-size:15px;line-height:1.55}.pcom .fm a{font-weight:700;color:var(--ink2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* icons (platform/render/icons.js): line icons in the text color */
.n2 svg.i{flex:none;display:inline-block;vertical-align:-3px}
.tile .i{width:55%;height:55%;min-width:14px;min-height:14px;max-width:26px;max-height:26px}
.ln .i{color:var(--mute)}.ln.on .i{color:var(--brand)}
.lg .ic{width:26px;display:inline-flex;align-items:center}.lg .ic .i{color:var(--brand)}
.nick .ck,.nick .tb{display:inline-flex;align-items:center;margin-left:3px;vertical-align:-1px}
.nick .ck{color:var(--mute)}.nick .tb{color:var(--mute)}.nick .tb.t-trusted{color:var(--brand)}.nick .tb.t-maintainer{color:var(--hot)}.nick .tb.t-curator{color:var(--vio-ink)}
.nick.bot .tb{color:var(--news-ink)}
.fv,.fa .up,.fa .cm{display:inline-flex;align-items:center;gap:4px}
.fti .star{display:inline-flex;vertical-align:-2px;margin-right:4px;color:#d9a21b}
.feedtabs a{gap:6px}.feedtabs a .i{color:inherit}
.rbh h2{display:flex;align-items:center;gap:7px}.rbh h2 .i{color:var(--brand)}
.sti{display:inline-flex;flex:none;color:var(--mute)}.sti.ok{color:var(--ok)}.sti.warn{color:var(--warn)}.sti.bad{color:var(--bad)}
.vote button .i{flex:none}
.pact .btn .i{color:var(--ink2)}
.post .star{display:inline-flex;align-items:center;gap:3px;color:#b98200;font-weight:800;font-size:12.5px}
@media (max-width:640px){.pact .btn span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.pact .btn{width:40px;justify-content:center;padding:0}}
/* generated avatars: a 5×5 mirrored pattern in one of the tile colors */
.av{background:none;overflow:hidden}.av svg{width:100%;height:100%}.av.bot{background:var(--news-bg);color:var(--news-ink)}
.idc .bg{fill:var(--t-ai)}.idc .fg{fill:var(--t-ai-ink)}
.idc.t1 .bg{fill:var(--t-games)}.idc.t1 .fg{fill:var(--t-games-ink)}.idc.t2 .bg{fill:var(--t-hw)}.idc.t2 .fg{fill:var(--t-hw-ink)}
.idc.t3 .bg{fill:var(--t-studio)}.idc.t3 .fg{fill:var(--t-studio-ink)}.idc.t4 .bg{fill:var(--t-sub)}.idc.t4 .fg{fill:var(--t-sub-ink)}.idc.t5 .bg{fill:var(--brand-soft)}.idc.t5 .fg{fill:var(--brand)}
.pav{background:var(--card);padding:0;overflow:hidden}.pav svg{width:100%;height:100%}
.ptier{display:inline-flex;align-items:center;gap:5px}
/* empty states */
.emptyv{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;text-align:center;color:var(--mute)}.emptyv p{margin:0}
.empty-art{color:var(--line)}
.co .a .cv{display:inline-flex;align-items:center;gap:3px}.co .a .cv b{font-weight:800}
.stn{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.stn .fine{margin:0}
.stna{display:flex;gap:6px;flex-wrap:wrap}
/* the narrowest phones (≤400px): tighter top bar, icon-only 글쓰기 on the feed tabs */
@media (max-width:400px){.top{padding:0 8px;gap:0}.top .brand{font-size:16px;gap:6px}.top .brand svg{width:26px;height:26px}.hu .hb.solid{padding:0 10px;font-size:13px}.feedtabs a{padding:0 9px}.feedtabs .btn.p span{display:none}.feedtabs .btn.p{width:40px;padding:0;justify-content:center}}

/* v5 (2026-09-29, owner: "색 블록 말고 레딧처럼 선으로 구분"): one white page. The menu, the feed, the right
   column, the post and the profile sit on the page itself and are divided by 1px lines — no filled or bordered
   cards. Pills (votes, comments, sort) stay as the only filled shapes. */
body.n2{background:var(--page)}
.top{background:color-mix(in srgb,var(--page) 92%,transparent)}
.hq{background:var(--soft);border-color:transparent;border-radius:var(--radius-md)}
.thm{border-color:transparent;background:none;border-radius:50%}
.hb{border-radius:var(--radius-md)}
/* feed: rows between lines, a soft highlight on hover */
.feed{gap:0}
.feed>li+li{border-top:1px solid var(--line)}
.fc{background:none;border:0;border-radius:var(--radius-md);padding:12px 14px;margin:4px 0}
.fc:hover{background:var(--hover)}
.fti{font-size:17px}
.fa{gap:6px}
.fa .up,.fa .cm{height:32px;padding:0 12px;border-radius:var(--radius-md);background:var(--soft);color:var(--ink)}
.fa .up{color:var(--ink)}
.n2 .fa .cm:hover{text-decoration:none;background:var(--line)}
.fa .ftag{margin-left:4px}
.feedtabs{border-bottom-color:var(--line)}
/* right column: sections one under another, divided by lines */
.rrail{gap:0}
.rbox,.side .box.login{background:none;border:0;border-radius:0;padding:16px 4px;border-bottom:1px solid var(--line)}
.rrail .rbox:first-child{padding-top:4px}
.side{gap:0}
.side .box.login{padding-top:4px}
.svc{gap:2px}
.svr{background:none;padding:0 8px;border-radius:var(--radius-sm)}
.n2 .svr:hover{background:var(--hover)}
.nb{height:32px;border-radius:var(--radius-md);align-self:center}
.rfoot{padding:16px 4px 0}
.msc{border-radius:var(--radius-md);background:none}
/* post: no card, the thread on the page */
.postv .box{background:none;border:0;border-radius:0}
.postv .box+.box{border-top:1px solid var(--line)}
.post .ph1{padding:8px 4px 12px;border-bottom:0}
.pbody{padding:4px 4px 12px}
.vote{padding:4px 4px 6px;gap:8px}
.vote button{height:36px;min-width:0;padding:0 14px;border-radius:var(--radius-md);border:0;background:var(--soft);font-size:13px;color:var(--ink)}
.vote .up{border:0;background:var(--soft);color:var(--ink)}.vote .up b{color:var(--ink)}
.vote button.on{background:var(--accent);color:var(--on-accent)}
.vote button b{font-size:14px}
.pact{padding:6px 4px 16px}
.pact .btn{border-radius:var(--radius-md);border:0;background:var(--soft)}
.cmh{padding:16px 4px 10px;border-bottom:0}
.cform{padding:4px 4px 14px;border-bottom:0}
.cform textarea{border-radius:var(--radius-lg);padding:10px 16px;min-height:44px}
.co{padding:10px 4px;border-bottom:0}
.co.re{padding-left:40px}.co.re::before{left:17px;width:1px}
.postv .plist{border-top:1px solid var(--line)}
@media (max-width:640px){.post .ph1,.pbody,.vote,.pact,.cmh,.cform,.co{padding-left:0;padding-right:0}.co.re{padding-left:32px}.co.re::before{left:13px}}
/* profile */
.prof-page .box{background:none;border:0;border-radius:0}
.prof .pban{border-radius:var(--radius-md)}
.pbody2{padding:0 4px 16px;border-bottom:1px solid var(--line)}
.pstat{gap:0}
.pstat div{background:none;border-radius:0;padding:4px 12px}
.pstat div+div{border-left:1px solid var(--line)}
.pstat div:first-child{padding-left:0}
.prof-page .emptyv{border-top:1px solid var(--line)}
.front .box.emptyv{background:none;border:0}
.mstat{gap:0;padding-bottom:8px;border-bottom:1px solid var(--line)}
.msc{border:0;border-radius:0}.msc+.msc{border-left:1px solid var(--line)}
.nb.c{border-top:0;height:28px}
@media (max-width:1000px){.hq{background:none}.hq:focus-within{background:var(--soft)}}

/* comments v5 (Reddit-style thread): avatar + name · 작성자 · time on one line, body and actions under the
   name, replies nested in their parent with a thread line from the parent's avatar that bends into each
   reply (and into "답글 N개 더 보기"). No lines between comments — the thread line groups them.
   --av avatar size, --ind indent per level; the line sits at the avatar's centre. */
.cl{--av:32px;--ind:40px;display:flex;flex-direction:column;gap:22px;padding:6px 4px 20px}
.cl .co{--tl:var(--line);position:relative;padding:0 0 0 var(--ind);border:0;background:none}
.cl .co:has(>.tl:hover){--tl:var(--mute)}
.cl .co .h{position:relative;min-height:var(--av);display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:12.5px}
.cl .co .h .av{position:absolute;left:calc(-1 * var(--ind));top:0;width:var(--av);height:var(--av)}
.cl .co .h .fine{margin-left:0;font-size:12.5px}.cl .co .dot{color:var(--mute);font-size:10px}
.cl .co .nick{font-weight:700}
.cl .co .op{background:none;border:0;padding:0;color:var(--brand);font-size:12.5px;font-weight:800}
.cl .co .h[data-fold]:not([data-fold=""])::after{content:attr(data-fold);color:var(--mute);font-size:12px}
.cl .co .cb{margin:2px 0 2px;font-size:14.5px;line-height:1.6}
.cbody{position:relative}
.cl .co .a{display:flex;align-items:center;flex-wrap:wrap;gap:2px;margin-left:-8px;font-size:12.5px;font-weight:700;color:var(--mute)}
.cvote{display:inline-flex;align-items:center}
.cvote b{min-width:1.4em;text-align:center;color:var(--ink2);font-weight:800;font-variant-numeric:tabular-nums}
.cl .cv,.cl .ca,.cmore>summary{height:32px;min-width:32px;padding:0 8px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--mute);font-weight:700}
.cl .cv{padding:0;width:32px}
.n2 .cl .cv:hover,.n2 .cl .ca:hover,.cmore>summary:hover{background:var(--soft);color:var(--ink);text-decoration:none}
.cl .cv.on{color:var(--brand)}.cl .cv.dn.on{color:var(--hot)}
.cmore{position:relative}
.cmore>summary{list-style:none;cursor:pointer}.cmore>summary::-webkit-details-marker{display:none}
.cmenu{position:absolute;z-index:6;top:34px;left:0;min-width:150px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 8px 24px rgba(10,14,20,.14);padding:4px;display:flex;flex-direction:column}
.cmenu a,.cmenu .lnk{height:38px;padding:0 10px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink2);text-decoration:none;text-align:left;width:100%}
.n2 .cmenu a:hover,.cmenu .lnk:hover{background:var(--hover);text-decoration:none}
.cmenu [hidden]{display:none}
/* the thread line */
.kids{--ptl:var(--tl);list-style:none;margin:0;padding:0}
.kids>li{position:relative;padding-top:14px}
.cl .co.hk>.cbody::before{content:"";position:absolute;left:calc(var(--av)/2 - var(--ind));top:0;bottom:0;border-left:1px solid var(--tl)}
.cl .kids>li::before{content:"";position:absolute;left:calc(var(--av)/2 - var(--ind));top:0;width:calc(var(--ind) - var(--av)/2 - 4px);height:calc(14px + var(--av)/2);border:0;border-left:1px solid var(--ptl);border-bottom:1px solid var(--ptl);border-bottom-left-radius:12px;background:none}
.cl .kids>li:not(:last-child)::after{content:"";position:absolute;left:calc(var(--av)/2 - var(--ind));top:0;bottom:0;border-left:1px solid var(--ptl)}
.kids>li.more{padding-top:8px}
.cl .kids>li.more::before{height:calc(8px + 16px)}
.kids>li.more .lnk{height:32px;display:inline-flex;align-items:center;gap:8px;margin-left:calc(var(--av)/2 - 16px);text-decoration:none;font-size:13px;font-weight:700;color:var(--mute)}
.kids>li.more .lnk:hover{color:var(--ink)}.kids>li.more .lnk .i{color:var(--ink2)}
/* folding by the line */
.cl .tl{position:absolute;z-index:1;left:0;top:calc(var(--av) + 2px);bottom:0;width:var(--av);border:0;padding:0;background:none;cursor:pointer}
.cl .tl:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px;border-radius:var(--radius-sm)}
.cl .co.fold>.cbody,.cl .co.fold>.kids{display:none}
.cl .co.fold>.tl{top:0;height:var(--av);bottom:auto;border-radius:50%}
.cl .co.fold>.tl::after{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:color-mix(in srgb,var(--page) 70%,transparent);color:var(--ink);font-size:20px;font-weight:600}
.cl .co.miss{display:none}
.cl .co.bestc{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:0}
.cl .co .bb{align-self:center}
/* sort and search */
.csort{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding:4px 4px 10px;font-size:13px;color:var(--mute)}
.csel{position:relative;display:inline-flex;align-items:center;gap:6px}
.csel select{appearance:none;-webkit-appearance:none;border:0;background:none;font:inherit;font-weight:800;color:var(--ink);padding:6px 20px 6px 0;cursor:pointer}
.csel .i{position:absolute;right:0;pointer-events:none;color:var(--ink2)}
.csearch{height:38px;border:1px solid var(--line);border-radius:var(--radius-md);display:inline-flex;align-items:center;gap:8px;padding:0 14px;color:var(--mute)}
.csearch:focus-within{border-color:var(--accent-line)}
.csearch input{border:0;outline:0;background:none;font:inherit;color:var(--ink);width:10em;min-width:0}
/* the composer: one pill until it is used */
.cform{flex-wrap:wrap}
.cform textarea{border-radius:var(--radius-lg)}
.cform.min textarea{flex:none;height:46px;min-height:46px;resize:none;overflow:hidden;border-radius:var(--radius-md);padding:12px 20px;line-height:20px;font-size:15px;cursor:text}
.cform.min .anonf,.cform.min>.btn,.cform.min .replying{display:none}
.cform>.btn.p{border-radius:var(--radius-md);padding:0 18px;height:36px}
.n2 h2.cmh{font-size:16px;font-weight:800}
@media (max-width:640px){
 .cl{--av:26px;--ind:32px;padding-left:0;padding-right:0}
 .cl .ca span{display:none}.cl .ca{padding:0;width:32px}
 .cl .co .cb{font-size:14.5px}
}

/* v6 identity (2026-09-30, owner pick "B 스레드"): the thread — the line that joins a comment to its
   replies — runs down the home feed and bends into each post, and brackets the right column. The same
   curve (radius 14px) everywhere. Selected tabs keep the lime underline. --th thread x. */
:root{--th-c:var(--line);--th-hi:var(--accent-line)}
/* the thread down the feed */
.feed{--th:14px}
.feed>li{position:relative}
.feed>li+li{border-top:0}
.feed>li::before{content:"";position:absolute;left:var(--th);top:0;width:32px;height:calc(4px + 12px + 11px);border-left:1.5px solid var(--th-c);border-bottom:1.5px solid var(--th-c);border-bottom-left-radius:14px}
.feed>li:not(:last-child)::after{content:"";position:absolute;left:var(--th);top:0;bottom:0;border-left:1.5px solid var(--th-c)}
.feed>li:hover::before{border-color:var(--th-hi)}
.feed .fc{margin:4px 0 4px calc(var(--th) + 24px);padding-left:12px}
.pcom.feed>li::before,.pcom.feed>li::after{display:none}.pcom.feed .fc{margin-left:0}
/* the right column in one bracket */
.rrail{position:relative;padding-left:20px}
.rrail::before{content:"";position:absolute;left:0;top:4px;bottom:44px;width:14px;border:1.5px solid var(--th-c);border-right:0;border-radius:var(--radius-md) 0 0 var(--radius-md)}
.rrail .rbox{border-bottom:0}
.rrail .rfoot{padding-left:4px}
.side .box.login{border-bottom:0;padding-left:24px}
@media (max-width:1000px){.rrail{padding-left:0}.rrail::before{display:none}.side .box.login{padding-left:4px}}
@media (max-width:640px){.feed{--th:6px}.feed .fc{margin-left:calc(var(--th) + 20px);padding-left:8px;padding-right:6px}.feed>li::before{width:24px}}

/* v6 · channel, tag, status and radar pages: the same page as the home — no boxes, lines between parts,
   the right column in the thread bracket. */
.chh{background:none;border:0;border-radius:0;border-bottom:1px solid var(--line);padding:6px 4px 16px}
.cols>.mainc>.box,.cols>main>.box,.cols>.side>.box{background:none;border:0;border-radius:0;overflow:visible}
.cols>.mainc>.box+.box{border-top:1px solid var(--line);padding-top:6px}
.cols .bh{border-bottom:0;padding:10px 4px 6px;min-height:0}
.cols .bh h2{font-size:15px}
.mtabs{padding:0}
.mtabs a{color:var(--mute);font-weight:700}
.mtabs a.on{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}
.n2 .mtabs a:hover{text-decoration:none;color:var(--ink)}
.tagbar{padding:12px 0;border-bottom:0}
.sb{background:none;border-bottom:1px solid var(--line);padding:6px 0 10px;gap:6px}
.sb a{height:30px;padding:0 12px;border-radius:var(--radius-md)}
.sb a.best{border-radius:var(--radius-md)}
.newbar{border-radius:var(--radius-md);margin:8px 0;border:0}
.plist .pr{border-bottom:1px solid var(--line2);padding:4px 8px;border-radius:0}
.plist .pr.ph{background:none;border-bottom:1px solid var(--line)}
.plist .pr.pin{background:none}.plist .pr.pin .tt{font-weight:800}
.plist .pr.bot{background:none}
.plist .pr:not(.ph):hover{background:var(--hover)}
.cols .rows li{padding:6px 4px;border-bottom:0}
.cols .pager{padding:14px 0 4px}
/* the right column: the home's thread bracket */
.cols>.side{position:relative;padding-left:20px;gap:6px}
.cols>.side::before{content:"";position:absolute;left:0;top:4px;bottom:8px;width:14px;border:1.5px solid var(--th-c);border-right:0;border-radius:var(--radius-md) 0 0 var(--radius-md)}
.cols>.side>.box.hl .bh{background:none}
@media (max-width:1000px){.cols>.side{padding-left:0;border-top:1px solid var(--line);padding-top:8px}.cols>.side::before{display:none}}
.cols .g2>.box{background:none;border:0;border-radius:0}
.cols .g2{border-bottom:1px solid var(--line);padding-bottom:6px}
.cols .g2>.box+.box{border-left:1px solid var(--line2);padding-left:14px}
@media (max-width:1000px){.cols .g2>.box+.box{border-left:0;padding-left:0;border-top:1px solid var(--line2)}}
.hd2{background:none;border-bottom:1px solid var(--line);padding-left:4px;padding-right:4px}
.cols thead th,.cols tr.th th{background:none;border-bottom:1px solid var(--line)}
/* tag pages: the posts lead; the facts fold under the header (details.tinfo) */
.tinfo{border-bottom:1px solid var(--line)}
.tinfo>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 4px;border-radius:var(--radius-md)}
.tinfo>summary::-webkit-details-marker{display:none}
.tinfo>summary:hover{background:var(--hover)}
.tinfo>summary:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}
.tis{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;min-width:0}.tis .i{color:var(--brand)}.tis b{font-size:15px}
.tio{margin-left:auto;display:inline-flex;color:var(--ink2);transition:transform .15s}
.tinfo[open]>summary .tio{transform:rotate(180deg)}
.tib{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start;padding:6px 0 18px}
.tim,.tiw{min-width:0;display:flex;flex-direction:column;gap:12px}
.tib .box{background:none;border:0;border-radius:0;overflow:visible}
.tib .bh{border-bottom:0;padding:10px 4px 6px;min-height:0}
.tib .g2>.box+.box{border-left:1px solid var(--line2);padding-left:14px}
.tib thead th,.tib tr.th th{background:none;border-bottom:1px solid var(--line)}
.tiw{border-left:1px solid var(--line);padding-left:16px}
@media (max-width:1000px){.tib{grid-template-columns:minmax(0,1fr)}.tiw{border-left:0;padding-left:0;border-top:1px solid var(--line)}.tib .g2>.box+.box{border-left:0;padding-left:0;border-top:1px solid var(--line2)}}
@media (prefers-reduced-motion:reduce){.tio{transition:none}}

/* write page v6 (2026-09-30, "화면이 너무 복잡하다 — 특히 모바일", model: Arca Live): heading with the channel
   folded into one pill, 말머리 in one scrolling row, a borderless title, one editor box (image button on
   its bar, the rules as the empty body's placeholder), tags and the ㅇㅇ fields folded below, one 등록. */
.wbox{background:none;border:0}
.whead{display:flex;align-items:center;gap:10px;padding:8px 4px 12px;border-bottom:1px solid var(--line)}
.whead h1.wt{font-size:18px;font-weight:800}
.wch{position:relative;border:0;padding:0;margin:0}
.wch>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 12px;border-radius:var(--radius-md);background:var(--soft);font-size:14px;color:var(--ink)}
.wch>summary::-webkit-details-marker{display:none}
.wch[open]>summary .i{transform:rotate(180deg)}
.wch>.chips{position:absolute;z-index:8;top:40px;left:0;width:min(320px,80vw);display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:0 10px 30px rgba(10,14,20,.15)}
.wx{margin-left:auto;font-weight:700;color:var(--mute)}
.wbox .wform{padding:12px 4px 20px;gap:12px}
.wform fieldset.wfl{border:0;padding:0}
.wfl .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.wfl .chips::-webkit-scrollbar{display:none}
.wfl .wchip{flex:none}
.wform input.wti{font-size:18px;font-weight:700;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 4px;background:none}
.wform input.wti:focus{outline:0;border-bottom-color:var(--accent-line)}
.wed{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--card)}
.wed:focus-within{border-color:var(--accent-line)}
.wbar{display:flex;align-items:center;gap:4px;min-height:40px;padding:4px 6px;border-bottom:1px solid var(--line2)}
.wbar .imgpick{margin:0;padding:0;border:0}
.wform label.wtool{flex-direction:row;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:var(--radius-sm);color:var(--ink2);font-size:13px;font-weight:600;cursor:pointer}
.wform label.wtool:hover{background:var(--hover)}
.wform .wed textarea{display:block;width:100%;border:0;border-radius:0;min-height:300px;padding:12px;background:none}
.wform .wed textarea:focus{outline:0}
.wed .imgs{padding:0 10px 10px}.wed .imgs:empty{display:none}
.wtags{border:0;padding:0}
.wtags>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;min-height:40px;padding:0 4px;font-size:14px;font-weight:700;color:var(--ink2);border-bottom:1px solid var(--line2)}
.wtags>summary::-webkit-details-marker{display:none}
.wtags>fieldset{border:0;padding:10px 0 0}
.wtags .tsug .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.wtags .tsug .wchip{flex:none}
.wbox .acts{display:flex;align-items:center;gap:8px}
.wbox .acts .sp{flex:1}
.wbox .acts .btn.p{height:42px;padding:0 26px;border-radius:var(--radius-md);font-size:15px}
@media (max-width:640px){
 .wbox .acts{position:sticky;bottom:0;z-index:4;background:var(--page);padding:8px 0 calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
 .wbox .acts .btn.p{flex:1}
 .wform .wed textarea{min-height:240px}
}
/* channel and tag lists on phones: the name and one line of description, small buttons beside them, no
   popular-tag row, and two-line posts (말머리 + title, then writer · time · counts) — no tag chips. */
@media (max-width:640px){
 .chh{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:8px;align-items:center;padding:4px 0 12px}
 .chh>.tile{width:40px;height:40px;border-radius:var(--radius-md)}
 .chh .chn1{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.chh .chn1 h1{font-size:19px}
 .chh .chn1>.fine,.chh .chm>.fine{display:none}
 .chh .desc{margin:2px 0 0;font-size:13px;color:var(--mute);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
 .chh .cha,.chead .cha{grid-column:1/-1;width:auto;display:flex;gap:6px}
 .chh .cha .btn,.chead .cha .btn{flex:0 0 auto;height:32px;padding:0 14px;border-radius:var(--radius-md);font-size:13px}
 .chh .cha .btn.p{flex:1}
 .board .tagbar{display:none}
 .plist .pr .rtags,.plist .pr .tc .rtags{display:none}
 .plist .pr{padding:8px 4px;row-gap:3px}
}
@media (max-width:640px){
 .plist .pr .tc .chn{display:none}
 .cols .kwb{display:none}
 .tagh .x{display:none}
}
.wform fieldset,.wform details{min-width:0;max-width:100%}
.wfl .chips,.wtags .tsug .chips{position:relative}

/* v7 declutter (2026-09-30, "PC·모바일 둘 다 난잡하다"): the channel bar holds the channels only (홈, 전체 베스트
   and 한글패치 모음 are in the menu) with 전체 채널 beside it, never under it; feed cards say channel · time;
   the phone status strip is one line; no schedule or notes in the right column. */
.chbar{display:flex;align-items:stretch}
.chbar>.cr{flex:1;min-width:0}
.chbar>.allch{flex:none;display:inline-flex;align-items:center;gap:6px;padding:0 16px;font-size:13.5px;font-weight:700;color:var(--mute);border-left:1px solid var(--line);white-space:nowrap}
.n2 .chbar>.allch:hover{color:var(--ink);text-decoration:none;background:var(--hover)}
@media (max-width:640px){.chbar>.allch{width:48px;padding:0;justify-content:center;color:var(--ink2)}.chbar>.allch span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
.fm{gap:6px}.fm .dot{color:var(--mute)}
.fti .mh{font-size:12px;vertical-align:2px;margin-right:6px}
.mstat{display:none;align-items:center;gap:4px;padding:0 0 8px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;font-size:13px}
.mstat::-webkit-scrollbar{display:none}
@media (max-width:1000px){.mstat{display:flex}}
.msl{flex:none;display:inline-flex;align-items:center;gap:5px;font-weight:800;color:var(--ink2);padding-right:4px}.msl .i{color:var(--brand)}
.msi{flex:none;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 10px;border-radius:var(--radius-md);background:var(--soft);color:var(--ink)}
.n2 .msi:hover{text-decoration:none;background:var(--line)}
.msi .svs{margin-left:2px;font-size:12px}
.side .box.login b{font-size:14px}
/* 제보 (report) beside a service: a quiet outline button a step away from the status word, so it never
   reads as the service's state; red only on hover. */
.svc .nb{height:30px;padding:0 10px;border-radius:var(--radius-md);color:var(--ink2);border-color:var(--line);font-weight:700;margin-left:6px}
.n2 .svc .nb:hover{color:var(--bad);border-color:var(--bad);background:var(--bad-bg)}
.svc .nb.on{color:var(--ok);border-color:var(--ok)}

/* PC tools use the shared channel header, underline tabs, main/wiki columns and comparison table. */
.hw-tool{width:100%;min-width:0;font-size:15px;line-height:1.6}
.hw-tool fieldset{border:0;padding:0;margin:0;min-width:0}
.hw-tool .hw-heading{margin:0;align-items:center}
.hw-heading .chm{flex:1;min-width:0}.hw-heading .cha{margin-left:auto}
.hw-lead{margin:4px 0 0;color:var(--ink2);font-size:14px;line-height:1.6}
.hw-tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.hw-tabs a{flex:none;font-size:14px;white-space:nowrap;padding:11px 12px}.hw-tabs a:first-child{padding-left:4px}.hw-tabs::-webkit-scrollbar{display:none}
.hw-layout{align-items:start}.hw-layout>.mainc{min-width:0;display:flex;flex-direction:column;gap:16px}
.hw-tool .hw-section{padding:0 4px 14px;margin:0;background:none;border:0;border-radius:0;overflow:visible}
.hw-tool .hw-section+.hw-section{border-top:1px solid var(--line);padding-top:16px}
.hw-section h2{font-size:16px;line-height:1.5;margin:0 0 12px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hw-section h3{font-size:15px;margin:0 0 10px}.hw-section p{margin:8px 0 0}
.hw-tool .hw-help,.hw-tool .fine{color:var(--ink2);font-size:13px;line-height:1.65;font-weight:400}
.hw-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap;min-width:0}
.hw-form label,.hw-price-label,.hw-model-select>label:not(.sr-only){display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;min-width:0}
.hw-model-select>label:not(.sr-only){flex-direction:row;align-items:center}
.hw-tool input,.hw-tool select,.hw-price-label textarea{min-height:42px;padding:8px 10px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font:inherit;font-size:15px;min-width:0;max-width:100%;width:100%;box-sizing:border-box}
.hw-wide{flex:1;min-width:180px}.hw-price-label{margin-top:12px}.hw-price-label textarea{resize:vertical;line-height:1.65;font-family:'JetBrains Mono',monospace}
.hw-form .btn,.hw-actions .btn{height:42px;padding:0 18px;border-radius:var(--radius-md);font-size:14px;white-space:nowrap}
.hw-type-row{display:flex;gap:10px;align-items:end;width:100%}.hw-type-row label{flex:0 1 auto}
.hw-select-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;width:100%}
.hw-model-select{display:flex;flex-direction:column;gap:6px;min-width:0}.hw-model-select select{font-size:14px}
.hw-marker{display:inline-flex;justify-content:center;align-items:center;width:22px;height:22px;border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand);font-size:13px;font-weight:800;flex:none}
.hw-compare-action{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%}
.hw-market-links{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:14px;padding:10px 0;border-bottom:1px solid var(--line2)}
.hw-market-links a{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:15px}.hw-market-links strong{color:var(--brand)}.hw-market-links span{font-size:13px;color:var(--ink2)}
.hw-price-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.hw-price-form .hw-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.hw-price-form select{font-size:14px}
.hw-price-output{border-left:1px solid var(--line);padding-left:20px;min-width:0}.hw-price-output h3{margin:0 0 10px;font-size:14px;color:var(--ink2)}
.hw-empty{color:var(--ink2);font-size:14px;padding:12px 0;line-height:1.7}.hw-actions{display:flex;gap:8px;margin-top:12px}
.hw-stats{display:flex;flex-direction:column;margin:0;gap:0}.hw-stats>div{border-bottom:1px solid var(--line2);padding:10px 0}
.hw-stats dt{font-size:13px;color:var(--ink2)}.hw-stats dd{margin:3px 0 0;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.hw-stats>div:first-child{padding-top:0}.hw-stats>div:first-child dd{font-size:26px;color:var(--brand)}
.hw-verdict{font-size:15px;margin-bottom:12px!important}.hw-verdict strong{color:var(--brand)}
.hw-tool .hw-comparison{table-layout:fixed;width:100%;font-size:15px;border-collapse:collapse}
.hw-comparison .hw-metric{width:110px}.hw-tool .hw-comparison th,.hw-tool .hw-comparison td{padding:10px 12px;vertical-align:middle;text-align:center;border-bottom:1px solid var(--line2);overflow-wrap:anywhere;white-space:normal}
.hw-tool .hw-comparison th:first-child{text-align:left;padding-left:0;color:var(--ink2);font-size:14px;font-weight:600}
.hw-tool .hw-comparison thead th{vertical-align:top;border-bottom:1px solid var(--line);background:none;padding:10px 8px;font-weight:700}
.hw-device-name{display:block;font-size:17px;font-weight:800;line-height:1.45;margin:8px 0;color:var(--ink)}
.hw-photo{margin:10px 0 0;width:100%}.hw-photo img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:#fff;border-radius:4px}
.hw-comparison .hw-photo img{height:112px;aspect-ratio:auto}
.hw-photo figcaption{font-size:12px;color:var(--ink2);font-weight:400;line-height:1.5;margin-top:6px}
.hw-no-photo{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;color:var(--ink2);background:var(--soft);font-size:13px;font-weight:400}
.hw-score{font-size:26px;line-height:1.3;font-variant-numeric:tabular-nums}.hw-comparison small{font-size:12px;color:var(--ink2);font-weight:400}.hw-score-row th small{display:block}
.hw-comparison progress{display:block;width:100%;height:6px;accent-color:var(--brand);margin:8px 0 0}
.hw-text-link{display:inline-block;color:var(--brand)!important;font-size:14px;font-weight:700}.side .hw-text-link{display:block;margin-top:8px}
.hw-details{font-size:13px;color:var(--ink2);margin-top:12px;line-height:1.75}.hw-details>summary{cursor:pointer;font-weight:700;padding:6px 0;color:var(--ink)}.hw-details[open]>summary{margin-bottom:4px}
.hw-details a{text-decoration:underline}.hw-details ul,.hw-guide{padding-left:18px;margin:8px 0}.hw-details li,.hw-guide li{margin-bottom:6px}
.hw-guide{font-size:14px;color:var(--ink2);line-height:1.7}
.hw-meta{margin:0;font-size:13px}.hw-meta>div{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--line2)}.hw-meta dt{color:var(--ink2)}.hw-meta dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.hw-scope{border-left:3px solid var(--accent);padding:4px 0 4px 10px;margin-top:14px!important}
.hw-tool input:focus-visible,.hw-tool select:focus-visible,.hw-tool textarea:focus-visible,.hw-details summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(max-width:1000px){.hw-layout>.side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.hw-layout>.side .hw-section{border-top:0;padding-top:0}}
@media(max-width:640px){
 .hw-tool .hw-heading{grid-template-columns:40px minmax(0,1fr)}.hw-heading .cha{grid-column:2;margin:0}.hw-heading .cha .btn{font-size:13px;height:30px;padding:0;border:0;background:none;color:var(--brand)}
 .hw-lead{font-size:13px}.hw-tabs{gap:0;margin-bottom:12px}.hw-tabs a{font-size:13px;padding:10px 9px}.hw-section h2{font-size:16px}
 .hw-tool .hw-section{padding-left:0;padding-right:0}.hw-tool .hw-help{font-size:13px}
 .hw-select-pair{gap:10px}.hw-model-select input{font-size:14px}.hw-type-row{gap:8px}.hw-type-row .btn{padding:0 14px}.hw-type-row label:nth-child(2){flex:1}
 .hw-form>.hw-wide{flex-basis:calc(100% - 86px)}.hw-form>label:first-child:not(.hw-wide){flex-basis:100%}
 .hw-compare-action .hw-help{font-size:12px}.hw-compare-action .btn{padding:0 20px}
 .hw-price-workspace{grid-template-columns:minmax(0,1fr);gap:20px}.hw-price-output{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}
 .hw-stats>div:not(:first-child){display:flex;justify-content:space-between;align-items:baseline;gap:12px}.hw-stats dd{font-size:15px}.hw-stats>div:not(:first-child) dd{text-align:right}
 .hw-comparison .hw-metric{width:76px}.hw-tool .hw-comparison th,.hw-tool .hw-comparison td{padding:9px 6px;font-size:14px}.hw-tool .hw-comparison th:first-child{font-size:12px}.hw-tool .hw-comparison thead th{padding:8px 4px}
 .hw-device-name{font-size:15px;margin:6px 0}.hw-score{font-size:22px}.hw-photo figcaption{font-size:11px}.hw-comparison .hw-text-link{font-size:13px}.hw-comparison small{font-size:11px}
 .hw-comparison .hw-photo img{height:92px}
 .hw-layout>.side{display:flex;gap:12px}.hw-layout>.side .hw-section+.hw-section{border-top:1px solid var(--line);padding-top:14px}
 [data-island="hardware-value"] .hw-form>label{flex-basis:calc(50% - 5px)!important;flex-grow:1}[data-island="hardware-value"] .hw-form .btn{margin-left:auto}
}

/* Automatically fetched listings use the channel row rhythm. */
.hw-listings{list-style:none;margin:16px 0;padding:0}.hw-listings li{padding:14px 0;border-bottom:1px solid var(--line)}.hw-listings a{display:flex;justify-content:space-between;align-items:start;gap:20px;font-size:15px;line-height:1.6}.hw-listings a span{overflow-wrap:anywhere;min-width:0}.hw-listings a strong{white-space:nowrap;font-size:17px;color:var(--ink)}.hw-listings .hw-help{margin:4px 0 0}@media(max-width:600px){.hw-listings a{flex-direction:column;gap:4px}.hw-listings a strong{font-size:18px}}
/* 대진표 만들기 (/{l}/bracket/): outlined slots joined by bracket lines, a lime edge only on the champion. */
.bk{max-width:1240px;width:100%;min-width:0;margin:0 auto;display:flex;flex-direction:column;gap:12px}.bk-head h1{font-size:24px;margin:0;cursor:default;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.bk-head .tile{cursor:default;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.bk-h2{font-size:16px;margin:0}.bk-setup,.bk-board,.bk-help{padding:16px}.bk-setup .bk-h2{margin-bottom:12px}
.bk fieldset{border:0;padding:0;margin:0;min-width:0}.bk-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--ink2)}
.bk-form input:not([type=radio]),.bk-form textarea{font:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--btn-line);border-radius:var(--radius-sm);padding:9px 10px;min-width:0;box-sizing:border-box}
.bk-form textarea{width:100%;resize:vertical;line-height:1.55;min-height:150px}.bk-form input:focus-visible,.bk-form textarea:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.bk-row{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.bk-title{flex:1 1 240px}.bk-title input{width:100%}
.bk-size{display:flex;border:1px solid var(--btn-line);border-radius:var(--radius-sm);overflow:hidden;height:40px}.bk-form .bk-size label{flex-direction:row;gap:0}.bk-size input{position:absolute;opacity:0;pointer-events:none}
.bk-size span{display:flex;align-items:center;padding:0 14px;height:100%;font-size:13.5px;font-weight:800;color:var(--ink2);cursor:pointer;border-left:1px solid var(--btn-line)}.bk-size label:first-child span{border-left:0}
.bk-size input:checked+span{color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}.bk-size input:focus-visible+span{outline:2px solid var(--brand);outline-offset:-2px}
.bk-count{margin:6px 0 10px;min-height:18px;display:flex;align-items:center;gap:6px}.bk-count.bad{color:var(--hot);font-weight:700}
.bk-actions{display:flex;gap:8px;flex-wrap:wrap}.bk-actions .btn,.bk-tools .btn{height:38px}
.bk-bar{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.bk-bar .bk-h2{font-size:18px;overflow-wrap:anywhere}.bk-status{font-weight:700}
.bk-tools{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.bk-sp{flex:1}.bk-tools .btn:disabled{opacity:.45;cursor:default}
.bk-scroll{contain:inline-size;overflow-x:auto;overflow-y:hidden;padding:4px 0 10px;-webkit-overflow-scrolling:touch}
.bk-scroll.fit{overflow:hidden}.bk-scroll.fit .bk-tree{margin:0}
.bk-tree{--sw:108px;--cw:16px;--mw:128px;--sh:32px;width:max-content;margin:0 auto;transform-origin:top left}
.bk-labels{display:flex;gap:var(--cw);margin-bottom:8px}.bk-l{width:var(--sw);text-align:center;font-size:11.5px;font-weight:800;color:var(--mute);letter-spacing:.02em}.bk-l.c{width:var(--mw)}
.bk-body{display:flex;align-items:center}.bk-n{display:flex;align-items:center}.bk-n.r{flex-direction:row-reverse}.bk-kids{display:flex;flex-direction:column}.bk-leaf{padding:3px 0}
.bk-j{align-self:stretch;width:var(--cw);position:relative;flex:none}
.bk-j::before{content:'';position:absolute;left:0;right:50%;top:25%;bottom:25%;border:1.5px solid var(--btn-line);border-left:0;border-radius:0 6px 6px 0}
.bk-j::after{content:'';position:absolute;left:50%;right:0;top:50%;border-top:1.5px solid var(--btn-line)}
.bk-n.r>.bk-j::before{left:50%;right:0;border:1.5px solid var(--btn-line);border-right:0;border-radius:6px 0 0 6px}.bk-n.r>.bk-j::after{left:0;right:50%}
.bk-j.done::before,.bk-j.done::after{border-color:var(--ink2)}
.bk-s{width:var(--sw);height:var(--sh);flex:none;padding:0 9px;border:1px solid var(--btn-line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font:inherit;font-size:13px;font-weight:700;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background .12s,border-color .12s,color .12s}
.bk-n.r .bk-s{text-align:right}
.bk-s:hover:not(:disabled){border-color:var(--ink2)}.bk-s:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.bk-s:disabled{cursor:default}
.bk-s.ready{border-color:var(--ink2)}.bk-s.won{border-color:var(--ink);font-weight:900}.bk-s.lost{color:var(--mute);border-style:dashed;font-weight:600;text-decoration:line-through;text-decoration-color:var(--mute)}
.bk-s.bye{color:var(--mute);border-style:dashed;font-weight:600}.bk-s.wait{border-style:dashed;background:transparent}
.bk-s.hot{background:var(--ink);color:var(--card);border-color:var(--ink)}.bk-s.spin{color:var(--mute)}.bk-s.land{animation:bk-land .28s ease-out}.bk-s.pop{animation:bk-pop .42s ease-out}
.bk-c{width:var(--mw);margin:0 var(--cw);display:flex;flex-direction:column;align-items:center;gap:8px;flex:none}.bk-cup{color:var(--gold);display:flex}
.bk-s.champ{width:var(--mw);height:calc(var(--sh) + 10px);text-align:center;font-size:15px;font-weight:900;border:1.5px solid var(--btn-line)}.bk-s.champ:not(.wait){border-color:var(--accent-line);box-shadow:inset 0 -3px 0 var(--accent);color:var(--ink)}
.bk-tip{margin:6px 0 0}
@keyframes bk-land{from{transform:translateY(-4px);opacity:.4}to{transform:none;opacity:1}}@keyframes bk-pop{0%{transform:scale(.92)}60%{transform:scale(1.05)}100%{transform:none}}
.bk-board{position:relative}.bk-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bk-confetti i{position:absolute;top:-12px;width:7px;height:11px;border-radius:1px;animation:bk-fall 2.2s cubic-bezier(.2,.6,.4,1) forwards}
@keyframes bk-fall{to{transform:translate(var(--dx),110vh) rotate(var(--rot));opacity:.2}}
.bk-board:fullscreen{background:var(--card);padding:28px 32px;overflow:auto}.bk-board:fullscreen .bk-scroll,.bk-board.max .bk-scroll{overflow:hidden}.bk-board:fullscreen .bk-tip,.bk-board.max .bk-tip{display:none}
.bk-board:fullscreen .bk-bar .bk-h2{font-size:28px}.bk-board:fullscreen .bk-tree,.bk-board.max .bk-tree{margin:0}
.bk-board.max{position:fixed;inset:0;z-index:60;padding:20px;overflow:auto;border-radius:0}
.bk-help details{border-top:1px solid var(--line2);padding:10px 0}.bk-help details:first-of-type{margin-top:8px}.bk-help summary{cursor:pointer;font-weight:800;font-size:14px}.bk-help p{margin:8px 0 0;color:var(--ink2);line-height:1.65;font-size:13.5px}
.bk-ed{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);color:var(--ink);padding:0;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 32px)}.bk-ed::backdrop{background:var(--scrim)}
.bk-ed-in{padding:18px;display:flex;flex-direction:column;gap:10px}.bk-ed h2{font-size:17px;margin:0}.bk-ed .fine{margin:0;line-height:1.55}.bk-ed-mode{align-self:flex-start}.bk-ed-mode label{display:flex}
.bk-ed-list{display:flex;flex-direction:column;border-top:1px solid var(--line2);max-height:52dvh;overflow:auto}.bk-ed-list.off{display:none}
.bk-rr{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line2)}
.bk-rh{font-size:11.5px;font-weight:800;color:var(--mute);padding:8px 0 4px}.bk-rn{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bk-ed select{font:inherit;font-size:13px;color:var(--ink);background:var(--card);border:1px solid var(--btn-line);border-radius:var(--radius-sm);padding:6px 8px;width:100%;min-width:0}.bk-ed select:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.bk-ed-side h3{font-size:12px;font-weight:800;color:var(--mute);margin:12px 0 6px}.bk-ed-g{border-left:1.5px solid var(--btn-line);border-radius:0 0 0 10px;padding:2px 0 6px 10px;margin-bottom:8px}
.bk-ed-m{display:grid;grid-template-columns:52px minmax(0,1fr) 22px minmax(0,1fr);gap:6px;align-items:center;padding:3px 0}.bk-ed-no{font-size:12px;font-weight:700;color:var(--mute)}.bk-ed-vs{font-size:11px;color:var(--mute);text-align:center}
.bk-ed-cue{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:700}.bk-ed-cue label{display:flex;align-items:center;gap:8px;cursor:pointer}.bk-ed-cue input{width:18px;height:18px;margin:0;flex:none;accent-color:var(--brand)}.bk-ed-cue small{font-weight:500;line-height:1.5}.bk-ed-cue[hidden]{display:none}
.bk-cue{touch-action:manipulation}.bk-cue.pop{animation:bk-pop .32s ease-out}
.bk-ed-msg{margin:0;font-size:13px;font-weight:700;color:var(--ink2);min-height:18px}.bk-ed-msg.ok{color:var(--brand)}.bk-ed-msg.bad{color:var(--hot)}
.bk-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:700;z-index:70;max-width:calc(100vw - 32px)}
@media(max-width:640px){.bk-setup,.bk-board,.bk-help{padding:12px}.bk-tree{--sw:92px;--cw:12px;--mw:104px;--sh:30px}.bk-s{font-size:12px;padding:0 6px}.bk-size span{padding:0 11px}.bk-rr{grid-template-columns:minmax(0,1fr) 132px}.bk-ed-m{grid-template-columns:40px minmax(0,1fr) 18px minmax(0,1fr)}.bk-sp,[data-bk-print]{display:none}.bk-tools .btn{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.bk-s{transition:none}.bk-s.land,.bk-s.pop{animation:none}}
@media print{.bk-setup,.bk-help,.bk-tools,.bk-tip,.bk-toast,.bk-ed,.lnav,.top,.chbar,.ft,.bk-head{display:none!important}.bk-board{border:0}.bk-scroll{overflow:visible}.bk-tree{--sw:104px;--cw:14px;--mw:120px}}

.lmore{padding:2px 0 4px 10px}.lmore details.lg{margin-top:2px}.lai{margin:2px 0}
