@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-vietnamese-wght-normal.3cbdnbmi1hpzs.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-ext-wght-normal.3cxrhsknk8wrd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/archivo-latin-wght-normal.0inx24hl2eswd.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-ext-wght-normal.1zrieox9119mb.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-cyrillic-wght-normal.2whpih27xg_2r.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-ext-wght-normal.1xlj4-0oa5zql.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-greek-wght-normal.1fxkn-ggzj93z.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-vietnamese-wght-normal.1ahvy37o8m5gt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-ext-wght-normal.2ktx6yqc-sbf1.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/inter-latin-wght-normal.0rpdhg_4ubdtf.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/roboto-mono-cyrillic-ext-400-normal.0ul4r-ksblak1.woff2)format("woff2"),url(../media/roboto-mono-cyrillic-ext-400-normal.0vt8js2myk21t.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/roboto-mono-cyrillic-400-normal.1gj7a2me4o30c.woff2)format("woff2"),url(../media/roboto-mono-cyrillic-400-normal.1pfagt4a63rju.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/roboto-mono-greek-400-normal.1zupg6ykb3jz4.woff2)format("woff2"),url(../media/roboto-mono-greek-400-normal.08p3i8z2ipasx.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/roboto-mono-vietnamese-400-normal.2_anczlp06b-k.woff2)format("woff2"),url(../media/roboto-mono-vietnamese-400-normal.0cnaqmb34c37x.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/roboto-mono-latin-ext-400-normal.0-lk2v0b0jnlh.woff2)format("woff2"),url(../media/roboto-mono-latin-ext-400-normal.3a1a040hkd9pb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/roboto-mono-latin-400-normal.0zyex5vrp4szx.woff2)format("woff2"),url(../media/roboto-mono-latin-400-normal.1d365ibq82k6_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/roboto-mono-cyrillic-ext-500-normal.0hze9uqi6td6m.woff2)format("woff2"),url(../media/roboto-mono-cyrillic-ext-500-normal.3q8qows8krd0p.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/roboto-mono-cyrillic-500-normal.2bq8pv4e196li.woff2)format("woff2"),url(../media/roboto-mono-cyrillic-500-normal.23ihrerdw-mgv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/roboto-mono-greek-500-normal.1ly_ybrw0eudh.woff2)format("woff2"),url(../media/roboto-mono-greek-500-normal.33019r4rs-a2_.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/roboto-mono-vietnamese-500-normal.39yltg5g_3gk9.woff2)format("woff2"),url(../media/roboto-mono-vietnamese-500-normal.0-bcozp2bs9sz.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/roboto-mono-latin-ext-500-normal.2suo-mfes110a.woff2)format("woff2"),url(../media/roboto-mono-latin-ext-500-normal.2fi9tc2-jqz40.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/roboto-mono-latin-500-normal.34fm2-7plak6m.woff2)format("woff2"),url(../media/roboto-mono-latin-500-normal.0jkup_fgbg52m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#0c0c0b;--elev:#141413;--sub:#1a1a18;--hover:#1f1f1d;--line:#262623;--line2:#37372f;--tx:#efeeea;--mut:#a2a099;--fnt:#7a786f;--ac:#c6c1b5;--acd:#827e74;--met-a:#fbfaf6;--met-b:#9c978b;--met-c:#dad5c9;--ok:#8cb295;--warn:#cfae74;--risk:#c98b7c;--glow:198, 193, 181;--disp:"Archivo Variable", "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--body:"Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--r:3px;--ease:cubic-bezier(.16, .84, .32, 1);--t:.18s;--rail:244px;--max:1120px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--tx);font-family:var(--body);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-size:15px;line-height:1.6}::selection{color:var(--met-a);background:#c6c1b538}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:0 0;border:0}:focus-visible{outline:1px solid var(--ac);outline-offset:3px;border-radius:2px}img,svg{display:block}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--tx);color:var(--bg);border-radius:var(--r);padding:8px 12px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.eyebrow,.mono-label{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--fnt);font-size:10.5px;font-weight:500}.h1{font-family:var(--disp);letter-spacing:-.035em;background:linear-gradient(98deg, var(--met-a) 0%, var(--met-b) 34%, var(--met-c) 52%, var(--met-b) 74%, var(--met-a) 100%);color:#0000;background-size:240% 100%;-webkit-background-clip:text;background-clip:text;font-size:clamp(30px,4.2vw,44px);font-weight:600;line-height:1.02;animation:13s ease-in-out infinite sheen}@keyframes sheen{0%,to{background-position:0%}50%{background-position:100%}}.h2{font-family:var(--disp);letter-spacing:-.02em;font-size:20px;font-weight:600;line-height:1.2}.h3{font-family:var(--disp);letter-spacing:-.015em;font-size:16px;font-weight:500;line-height:1.3}.lede{color:var(--mut);max-width:62ch;font-size:16.5px;font-weight:300}.muted{color:var(--mut)}.faint{color:var(--fnt)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.small{font-size:13px}.xs{font-size:12px}.prose p+p{margin-top:10px}.app{grid-template-columns:var(--rail) 1fr;min-height:100dvh;display:grid}.rail{border-right:1px solid var(--line);background:linear-gradient(#14141399,#0c0c0b99);flex-direction:column;gap:22px;height:100dvh;padding:22px 14px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 8px;display:flex}.mark{border:1px solid var(--line2);width:34px;height:34px;font-family:var(--mono);color:var(--ac);letter-spacing:.04em;background:#c6c1b509;border-radius:2px;place-items:center;font-size:11px;font-weight:500;display:grid}.brand-tx .k{font-family:var(--mono);letter-spacing:.19em;text-transform:uppercase;color:var(--fnt);font-size:9.5px;line-height:1;display:block}.brand-tx .v{font-family:var(--disp);letter-spacing:-.02em;margin-top:5px;font-size:15px;font-weight:600;line-height:1.1;display:block}.nav{flex-direction:column;gap:2px;display:flex}.nav-group{margin-top:14px;padding:0 10px 6px}.nav a{border-radius:var(--r);height:36px;color:var(--mut);transition:background var(--t) var(--ease), color var(--t) var(--ease);align-items:center;gap:11px;padding:0 10px;font-size:14px;display:flex;position:relative}.nav a:hover{background:var(--sub);color:var(--tx)}.nav a[aria-current=page]{color:var(--tx);background:var(--sub)}.nav a[aria-current=page]:before{content:"";background:var(--ac);width:1px;position:absolute;top:9px;bottom:9px;left:-14px}.nav svg{stroke-width:1.5px;flex:none;width:16px;height:16px}.nav .count{font-family:var(--mono);color:var(--fnt);margin-left:auto;font-size:10.5px}.rail-foot{gap:10px;margin-top:auto;padding:0 10px;display:grid}.status{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fnt);align-items:center;gap:9px;font-size:10.5px;font-weight:500;display:inline-flex}.dot{background:var(--ok);border-radius:50%;flex:none;width:5px;height:5px;position:relative}.dot:after{content:"";border:1px solid var(--ok);opacity:.35;border-radius:50%;animation:2.6s cubic-bezier(.4,0,.2,1) infinite pulse;position:absolute;inset:-3px}.dot.off{background:var(--fnt)}.dot.off:after{display:none}.dot.warn{background:var(--warn)}.dot.warn:after{border-color:var(--warn)}@keyframes pulse{0%{opacity:.5;transform:scale(.6)}70%{opacity:0;transform:scale(2.1)}to{opacity:0}}.main{min-width:0}.wrap{max-width:var(--max);margin:0 auto;padding:36px clamp(16px,4vw,44px) 96px}.topbar,.bottomnav{display:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.page-head .lede{margin-top:14px}.rule{background:linear-gradient(90deg, var(--line2) 0%, var(--line) 38%, transparent 100%);height:1px;margin:22px 0 30px}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.stack{gap:16px;display:grid}.row{align-items:center;gap:10px;display:flex}.row.wrap-row{flex-wrap:wrap}.between{justify-content:space-between}.grow{flex:auto;min-width:0}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt24{margin-top:24px}.mt32{margin-top:32px}.mt48{margin-top:48px}.panel{border:1px solid var(--line);border-radius:var(--r);background:var(--elev);min-width:0}.panel-h{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.panel-b{padding:18px}.panel.flat{background:0 0}.list>*+*{border-top:1px solid var(--line)}.item{align-items:center;gap:12px;min-height:48px;padding:12px 18px;display:flex}.item.link{transition:background var(--t) var(--ease)}.item.link:hover{background:var(--sub)}.stat{padding:16px 18px}.stat .v{font-family:var(--disp);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:10px;font-size:30px;font-weight:600;line-height:1}.stat .v small{color:var(--fnt);letter-spacing:0;margin-left:4px;font-size:14px;font-weight:500}.stat .s{color:var(--mut);margin-top:8px;font-size:12.5px}.bar{background:var(--line);border-radius:2px;height:2px;overflow:hidden}.bar>i{background:var(--ac);height:100%;transition:width .4s var(--ease);display:block}.bar.ok>i{background:var(--ok)}.bar.warn>i{background:var(--warn)}.bar.risk>i{background:var(--risk)}.bar.thick{height:4px}.chip{border:1px solid var(--line2);height:22px;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut);white-space:nowrap;border-radius:2px;align-items:center;gap:6px;padding:0 8px;font-size:10px;display:inline-flex}.chip.ok{color:var(--ok);border-color:#8cb29559}.chip.warn{color:var(--warn);border-color:#cfae7459}.chip.risk{color:var(--risk);border-color:#c98b7c66}.chip.solid{background:var(--sub)}.btn{border-radius:var(--r);border:1px solid var(--line2);height:36px;color:var(--tx);white-space:nowrap;transition:background var(--t) var(--ease), border-color var(--t) var(--ease), transform .12s var(--ease), opacity var(--t);touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13.5px;font-weight:500;display:inline-flex}.btn:hover{background:var(--sub);border-color:var(--acd)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--tx);color:var(--bg);border-color:var(--tx)}.btn.primary:hover{background:var(--met-c)}.btn.quiet{color:var(--mut);border-color:#0000}.btn.quiet:hover{color:var(--tx);background:var(--sub)}.btn.sm{height:30px;padding:0 10px;font-size:12.5px}.btn.icon{width:36px;padding:0}.btn.sm.icon{width:30px}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn svg{stroke-width:1.6px;width:15px;height:15px}.field{gap:6px;display:grid}.field>span{color:var(--mut);font-size:12.5px}.field .help{color:var(--fnt);font-size:12px}.input,.select,.textarea{background:var(--bg);border:1px solid var(--line2);border-radius:var(--r);width:100%;min-height:40px;transition:border-color var(--t) var(--ease);padding:8px 11px;font-size:14px}.textarea{resize:vertical;min-height:96px;line-height:1.55}.input:hover,.select:hover,.textarea:hover{border-color:var(--acd)}.input:focus,.select:focus,.textarea:focus{border-color:var(--ac);outline:none}.input::placeholder,.textarea::placeholder{color:var(--fnt)}.check{cursor:pointer;align-items:flex-start;gap:11px;min-height:32px;padding:6px 0;display:flex}.check input{opacity:0;pointer-events:none;position:absolute}.check .box{border:1px solid var(--line2);width:16px;height:16px;transition:background var(--t) var(--ease), border-color var(--t) var(--ease);border-radius:2px;flex:none;place-items:center;margin-top:3px;display:grid}.check .box svg{width:11px;height:11px;stroke:var(--bg);stroke-width:2.4px;opacity:0;transition:all var(--t) var(--ease);transform:scale(.6)}.check input:checked+.box{background:var(--ac);border-color:var(--ac)}.check input:checked+.box svg{opacity:1;transform:none}.check input:focus-visible+.box{outline:1px solid var(--ac);outline-offset:3px}.check .lbl{font-size:14px}.check input:checked~.lbl{color:var(--fnt);text-decoration:line-through;-webkit-text-decoration-color:var(--line2);text-decoration-color:var(--line2)}.seg{border:1px solid var(--line2);border-radius:var(--r);flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.seg button{height:28px;color:var(--mut);transition:all var(--t) var(--ease);border-radius:2px;padding:0 10px;font-size:12.5px}.seg button[aria-pressed=true]{background:var(--sub);color:var(--tx)}.seg button:hover{color:var(--tx)}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:22px;display:flex;overflow-x:auto}.tabs button{height:42px;color:var(--mut);white-space:nowrap;transition:color var(--t) var(--ease);font-size:14px;position:relative}.tabs button:hover,.tabs button[aria-selected=true]{color:var(--tx)}.tabs button[aria-selected=true]:after{content:"";background:var(--ac);height:1px;position:absolute;bottom:-1px;left:0;right:0}.pips{gap:3px;display:inline-flex}.pips button{place-items:center;width:18px;height:18px;display:grid}.pips i{border:1px solid var(--line2);width:8px;height:8px;transition:all var(--t);border-radius:50%;display:block}.pips i.on{background:var(--ac);border-color:var(--ac)}.scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;animation:fade .16s var(--ease);background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--elev);border:1px solid var(--line2);border-radius:var(--r);width:min(560px,100%);max-height:88dvh;animation:rise .22s var(--ease);overflow:auto}.dialog.wide{width:min(760px,100%)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.toast-host{z-index:60;gap:8px;display:grid;position:fixed;bottom:20px;right:20px}.toast{background:var(--sub);border:1px solid var(--line2);border-radius:var(--r);max-width:360px;animation:rise .22s var(--ease);padding:12px 14px;font-size:13.5px}.reveal{animation:rise .42s var(--ease) both}.reveal.d1{animation-delay:40ms}.reveal.d2{animation-delay:80ms}.reveal.d3{animation-delay:.12s}.reveal.d4{animation-delay:.16s}.empty{text-align:left;color:var(--mut);padding:28px 18px;font-size:14px}.empty .h3{color:var(--tx);margin-bottom:6px}.kbd{font-family:var(--mono);border:1px solid var(--line2);color:var(--mut);border-radius:2px;padding:1px 5px;font-size:11px}.hairline-x{background:var(--line);height:1px}.drop{border:1px dashed var(--line2);border-radius:var(--r);text-align:center;color:var(--mut);transition:border-color var(--t), background var(--t);padding:26px}.drop.over{border-color:var(--ac);background:#c6c1b50a}.callout{border-left:1px solid var(--ac);color:var(--mut);padding:4px 0 4px 14px;font-size:13.5px}.callout.warn{border-left-color:var(--warn)}.hero{border:1px solid var(--line);border-radius:var(--r);background:var(--elev);padding:26px 26px 22px;position:relative;overflow:hidden}.hero canvas{opacity:.9;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.hero .veil{pointer-events:none;background:linear-gradient(90deg,#141413f5 0%,#141413d1 48%,#14141359 100%);position:absolute;inset:0}.hero>.in{position:relative}.countdown{font-family:var(--disp);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(34px,5vw,52px);font-weight:600;line-height:1}.week-strip{border-top:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.week-strip>div{border-right:1px solid var(--line);min-height:96px;padding:12px 14px}.week-strip>div:last-child{border-right:0}.week-strip .today{background:#c6c1b50a}.term-line{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:3px;display:grid}.term-line>div{border:1px solid var(--line);height:26px;font-family:var(--mono);color:var(--fnt);border-radius:2px;place-items:center;font-size:10.5px;display:grid;position:relative}.term-line>div.past{background:var(--sub);color:var(--mut)}.term-line>div.now{border-color:var(--ac);color:var(--tx)}.term-line>div .mk{background:var(--warn);border-radius:50%;width:5px;height:5px;position:absolute;top:-5px}.term-line>div .mk.ws{background:var(--ac);left:30%}.term-line>div .mk.as{background:var(--risk);right:30%}.cal{border-left:1px solid var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.cal>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;min-height:108px;padding:8px}.cal .dow{min-height:0;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fnt);padding:8px;font-size:10px}.cal .out{background:#00000040}.cal .out .dn{color:var(--line2)}.cal .dn{font-family:var(--mono);color:var(--mut);font-size:11.5px}.cal .is-today .dn{color:var(--bg);background:var(--ac);border-radius:2px;padding:0 5px}.ev{text-align:left;background:var(--sub);border-left:2px solid var(--acd);white-space:nowrap;text-overflow:ellipsis;border-radius:2px;width:100%;margin-top:4px;padding:3px 6px;font-size:11.5px;line-height:1.35;display:block;overflow:hidden}.ev.workshop{border-left-color:var(--ac)}.ev.assessment{border-left-color:var(--risk)}.ev.release{border-left-color:var(--warn)}.ev.study{border-left-color:var(--ok)}.ev.mpe{border-left-color:var(--met-b)}.graph{border-top:1px solid var(--line);background:radial-gradient(80% 70% at 50% 45%,#c6c1b509,#0000 70%);width:100%;height:520px}.graph text{font-family:var(--body);fill:var(--mut);font-size:11px}.graph .n-note circle{fill:var(--bg);stroke:var(--ac)}.graph .n-concept circle{fill:var(--acd)}.graph .hl text{fill:var(--tx)}.graph line{stroke:var(--line2)}.star{grid-template-columns:92px 1fr;gap:6px 14px;font-size:13.5px;display:grid}.star dt{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fnt);padding-top:2px;font-size:10.5px}.level{grid-template-columns:repeat(3,1fr);gap:3px;width:120px;display:grid}.level button{background:var(--line);height:8px;transition:background var(--t);border-radius:1px}.level button.on{background:var(--ac)}.level button.target{box-shadow:inset 0 0 0 1px var(--acd)}@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media (max-width:1023px){.app{grid-template-columns:1fr}.rail{display:none}.topbar{top:env(safe-area-inset-top,0px);z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0c0c0be0;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky}.bottomnav{z-index:30;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));background:#0c0c0bf0;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottomnav a{min-height:48px;color:var(--fnt);justify-items:center;gap:3px;padding:6px 0;font-size:10.5px;display:grid}.bottomnav a[aria-current=page]{color:var(--tx)}.bottomnav svg{stroke-width:1.5px;width:19px;height:19px}.wrap{padding-top:24px;padding-bottom:120px}.g3,.week-strip{grid-template-columns:1fr}.week-strip>div{border-right:0;border-bottom:1px solid var(--line);min-height:0}.toast-host{bottom:86px;left:16px;right:16px}}@media (max-width:640px){.g2{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat .v{font-size:24px}.cal>div{min-height:64px;padding:4px}.cal .ev{height:5px;margin-top:3px;padding:0;font-size:0}.star{grid-template-columns:1fr}.item{padding:12px 14px}.panel-h,.panel-b{padding-left:14px;padding-right:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.h1{animation:none}}
