@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.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:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.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:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.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:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.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:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-vietnamese-700-normal-D6euyNzi.woff2)format("woff2"),url(/assets/barlow-vietnamese-700-normal-4Jt4k04K.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:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-latin-ext-700-normal-BLuWmldJ.woff2)format("woff2"),url(/assets/barlow-latin-ext-700-normal-CctuGmmz.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:Barlow;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-latin-700-normal-A9pxMQ4z.woff2)format("woff2"),url(/assets/barlow-latin-700-normal-__SGTsZ1.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/big-shoulders-display-vietnamese-300-normal-DcWnOgWX.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-300-normal-fw3vFFA7.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/big-shoulders-display-latin-ext-300-normal-BgF4IcZm.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-300-normal-Crf3ccB_.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/big-shoulders-display-latin-300-normal-hQH_9fah.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-300-normal-BSrkVrqh.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-vietnamese-700-normal-DCH5bIkD.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-700-normal-D5dmK5Ek.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-latin-ext-700-normal-C8xZtiKd.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-700-normal-D98SaizC.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/big-shoulders-display-latin-700-normal-KM2fueoL.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-700-normal-CMi6UoP4.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-vietnamese-900-normal-B_uE6zXf.woff2)format("woff2"),url(/assets/big-shoulders-display-vietnamese-900-normal-BKSkdzuv.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-latin-ext-900-normal-HMld4L9H.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-ext-900-normal-DkuviPcI.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:Big Shoulders Display;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/big-shoulders-display-latin-900-normal-CW8trzgu.woff2)format("woff2"),url(/assets/big-shoulders-display-latin-900-normal-DMT-1gsg.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{--panel:#d9ddd2;--panel-2:#cbd1c3;--panel-3:#e8ebe2;--ink:#1c2620;--ink-2:#4a564e;--rule:#aab3a2;--bakelite:#2a2521;--bakelite-2:#3d3630;--on-bakelite:#efe9dc;--dial-bg:#1d1813;--amber:#ffb547;--amber-soft:#ffd79a;--amber-dim:#8a5d1f;--go:#2f8a41;--stop:#c43d28;--focus:#1f5fbf;--series:#9a6a23;--display:"Big Shoulders Display", "Barlow", system-ui, sans-serif;--body:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--r-sm:6px;--r-md:10px;--r-lg:16px;--shadow-raised:0 1px 0 #ffffff8c inset, 0 1px 2px #1c262040;--shadow-recess:0 1px 3px #1c262040 inset, 0 -1px 0 #fff6 inset;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--panel:#242a25;--panel-2:#1c211d;--panel-3:#2e352f;--ink:#dfe5d8;--ink-2:#a2ad9e;--rule:#414a42;--bakelite:#d9d2c3;--bakelite-2:#c3bba9;--on-bakelite:#1f1b17;--dial-bg:#14100c;--go:#5cc26d;--stop:#ef6a52;--focus:#7fb0ff;--series:#c2801f;--shadow-raised:0 1px 0 #ffffff0d inset, 0 1px 3px #00000080;--shadow-recess:0 2px 4px #00000080 inset;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--panel);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");margin:0;font-size:17px;line-height:1.5}h1,h2,h3{font-family:var(--display);letter-spacing:.01em;margin:0 0 .4em;font-weight:900;line-height:1.05}h1{font-size:clamp(2.2rem,5vw,3.2rem)}h2{font-size:1.75rem}h3{font-size:1.3rem;font-weight:700}p{max-width:68ch;margin:0 0 .8em}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button,a,summary,label{touch-action:manipulation}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--ink-2)}.small{font-size:.88rem}.shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.rail{height:100vh;padding:22px 14px 22px max(14px, env(safe-area-inset-left));background:var(--panel-2);border-right:1px solid var(--rule);flex-direction:column;gap:4px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:baseline;gap:10px;padding:0 10px 18px;text-decoration:none;display:flex}.brand-name{font-family:var(--display);letter-spacing:.02em;font-size:1.9rem;font-weight:900}.brand-code{font-family:var(--display);color:var(--amber-dim);letter-spacing:.05em;font-weight:900}.nav-link{border-radius:var(--r-md);color:var(--ink-2);align-items:center;gap:12px;padding:9px 12px;font-weight:600;text-decoration:none;display:flex}@media (hover:hover){.nav-link:hover{color:var(--ink);background:var(--panel)}}.nav-link[aria-current=page]{color:var(--ink);background:var(--panel-3);box-shadow:var(--shadow-raised)}.nav-lamp{background:var(--rule);border-radius:50%;flex:none;width:9px;height:9px}.nav-link[aria-current=page] .nav-lamp{background:var(--amber);box-shadow:0 0 8px var(--amber)}.rail-foot{border-top:1px solid var(--rule);color:var(--ink-2);margin-top:auto;padding:12px 10px 0;font-size:.9rem}.main{padding:32px max(clamp(16px, 4vw, 48px), env(safe-area-inset-right)) 96px clamp(16px, 4vw, 48px);width:100%;max-width:1080px}.topbar,.tabbar{display:none}@media (width<=820px){.shell{grid-template-columns:1fr;align-content:start}.rail{display:none}.topbar{padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));background:var(--panel-2);border-bottom:1px solid var(--rule);z-index:20;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar .brand{padding:0}.topbar .brand-name{font-size:1.5rem}.topbar-actions{gap:4px;display:flex}.main{padding:20px max(16px, env(safe-area-inset-right)) 110px max(16px, env(safe-area-inset-left))}.tabbar{z-index:20;background:var(--panel-2);border-top:1px solid var(--rule);padding:6px max(4px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(4px, env(safe-area-inset-left));grid-template-columns:repeat(6,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar .nav-link{text-align:center;flex-direction:column;justify-content:center;gap:4px;padding:6px 1px;font-size:.72rem;line-height:1.15}}.btn{border-radius:var(--r-md);border:1px solid var(--rule);background:var(--panel-3);min-height:44px;box-shadow:var(--shadow-raised);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:600;text-decoration:none;transition:transform 60ms,background-color .12s;display:inline-flex}@media (hover:hover){.btn:hover{background:var(--panel)}}.btn:active{box-shadow:var(--shadow-recess);transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--bakelite);border-color:var(--bakelite);color:var(--on-bakelite)}@media (hover:hover){.btn-primary:hover{background:var(--bakelite-2)}}.btn-primary .kbd{color:var(--ink)}.btn-big{border-radius:var(--r-lg);min-height:56px;padding:0 30px;font-size:1.1rem}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}@media (hover:hover){.btn-ghost:hover{background:var(--panel-2)}}.btn-ghost[aria-pressed=true]{background:var(--panel-3);border-color:var(--rule);box-shadow:var(--shadow-raised)}.btn-icon{width:44px;padding:0}.btn-compact{min-height:36px;padding:0 10px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stack{gap:16px;display:grid}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.seg{border-radius:var(--r-md);background:var(--panel-2);width:fit-content;max-width:100%;box-shadow:var(--shadow-recess);flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.seg button{min-height:38px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 14px;font-weight:600}.seg button[aria-pressed=true]{background:var(--panel-3);color:var(--ink);box-shadow:var(--shadow-raised)}.field{align-content:start;gap:6px;display:grid}.field-label{font-size:.95rem;font-weight:600}.field-hint{color:var(--ink-2);font-size:.85rem}.field-row{align-items:center;gap:12px;display:flex}.field-value{font-family:var(--display);text-align:right;font-variant-numeric:tabular-nums;min-width:3.2ch;font-size:1.35rem;font-weight:700}input[type=range]{accent-color:var(--bakelite);flex:1;min-height:32px}.text-input{border-radius:var(--r-md);border:1px solid var(--rule);background:var(--panel-3);width:100%;min-height:48px;box-shadow:var(--shadow-recess);letter-spacing:.08em;text-transform:uppercase;padding:10px 14px;font-size:1.1rem}textarea.text-input{resize:vertical;min-height:120px;line-height:1.6}.panel{background:var(--panel-3);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-raised);padding:20px}.panel-flat{border:1px solid var(--rule);border-radius:var(--r-lg);padding:20px}.section{margin-top:36px}.section>h2{margin-bottom:14px}.dial{background:radial-gradient(120% 90% at 50% 0%, #ffb5471f, transparent 60%), var(--dial-bg);color:var(--amber);border-radius:var(--r-lg);border:3px solid var(--bakelite);padding:22px 24px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff14,inset 0 10px 30px -12px #0000008c,0 2px #ffffff59}@media (prefers-color-scheme:dark){.dial{border-color:#0c0a08;box-shadow:inset 0 0 0 1px #ffffff0f,inset 0 10px 30px -12px #000}}.dial:after{content:"";pointer-events:none;background:linear-gradient(#ffffff0f,#0000 38%);position:absolute;inset:0}.dial-label{color:var(--amber-dim);letter-spacing:.04em;font-size:.9rem;font-weight:600}.dial-text{font-family:var(--display);text-shadow:0 0 6px #ffb547a6,0 0 18px #ff8c1e59;font-weight:300}.dial-stats{flex-wrap:wrap;gap:28px;display:flex}.dial-stat b{font-family:var(--display);color:var(--amber-soft);font-variant-numeric:tabular-nums;text-shadow:0 0 10px #ffb54773;font-size:2rem;font-weight:700;line-height:1;display:block}.dial-stat span{color:var(--amber-dim);font-size:.85rem;font-weight:600}.nixie{font-family:var(--display);color:#ffcf8a;text-shadow:0 0 4px #ff9a2e,0 0 14px #ff7a18,0 0 36px #ff6e1499;font-weight:300;line-height:1}.nixie-off{color:#ffb54721;text-shadow:none}.nixie-bad{color:#ffb4a4;text-shadow:0 0 6px #ff4d2e,0 0 20px #ff3c1e99}.lamp{vertical-align:middle;background:#3a322b;border-radius:50%;width:12px;height:12px;display:inline-block;box-shadow:inset 0 1px 2px #0009}.lamp.on-go{background:#7ef08e;box-shadow:0 0 10px #46d35c}.lamp.on-stop{background:#ff8a70;box-shadow:0 0 10px #ff4d2e}.lamp.on-amber{background:var(--amber);box-shadow:0 0 10px var(--amber)}.today-head{grid-template-columns:1fr auto;align-items:end;gap:24px;margin-bottom:24px;display:grid}@media (width<=700px){.today-head{grid-template-columns:1fr}}.plan{gap:10px;display:grid}.plan-step{border-radius:var(--r-md);border:1px solid var(--rule);background:var(--panel-3);box-shadow:var(--shadow-raised);grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:grid}@media (hover:hover){.plan-step:hover{border-color:var(--ink-2)}}.plan-step[data-done=true]{box-shadow:none;background:0 0}.plan-step[data-done=true] .plan-title{text-decoration:line-through;-webkit-text-decoration-color:var(--ink-2);text-decoration-color:var(--ink-2);color:var(--ink-2)}.plan-num{width:40px;height:40px;font-family:var(--display);background:var(--bakelite);color:var(--on-bakelite);border-radius:50%;place-items:center;font-size:1.2rem;font-weight:900;display:grid}.plan-step[data-done=true] .plan-num{background:var(--go);color:#fff}.plan-title{font-size:1.05rem;font-weight:700}.plan-desc{color:var(--ink-2);font-size:.92rem}.plan-time{font-family:var(--display);color:var(--ink-2);font-size:1.15rem;font-weight:700}.cards-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.charboard{grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px;display:grid}.chartile{aspect-ratio:1;font-family:var(--display);border:1px solid var(--rule);background:var(--panel-3);cursor:pointer;border-radius:8px;place-items:center;padding:0;font-size:1.35rem;font-weight:700;display:grid;position:relative;overflow:hidden}.chartile .fill{background:color-mix(in oklab, var(--amber) 55%, transparent);position:absolute;bottom:0;left:0;right:0}.chartile span{position:relative}.chartile[data-m=locked]{color:var(--rule);cursor:default;background:0 0;border-style:dashed}.chartile[data-m=mastered]{background:var(--dial-bg);color:var(--amber);border-color:var(--amber-dim);text-shadow:0 0 8px #ff962899}.chartile[data-m=mastered] .fill{display:none}.chartile[data-next=true]{outline:2px dashed var(--amber-dim);outline-offset:2px}.legend{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin-top:10px;font-size:.85rem;display:flex}.legend i{vertical-align:-1px;border:1px solid var(--rule);border-radius:3px;width:12px;height:12px;margin-right:6px;display:inline-block}.drill-dial{grid-template-rows:auto 1fr auto;min-height:330px;display:grid}.drill-center{text-align:center;place-items:center;padding:8px 0;display:grid}.drill-glyph{font-size:clamp(7rem,22vw,11rem)}@media (width<=820px){.drill-dial{min-height:240px}.paddle{min-height:96px}}.drill-hint{color:var(--amber-dim);min-height:1.5em;font-weight:600}.combo{font-family:var(--display);color:var(--amber);font-size:1.4rem;font-weight:900}.rt-bar{background:#ffb54726;border-radius:3px;height:6px;overflow:hidden}.rt-bar>div{background:var(--amber);height:100%;box-shadow:0 0 8px var(--amber)}.keypad{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin-top:16px;display:grid}.keypad button{border-radius:var(--r-md);border:1px solid var(--rule);background:var(--panel-3);min-height:52px;box-shadow:var(--shadow-raised);font-family:var(--display);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:0;font-size:1.4rem;font-weight:700}.keypad button:active,.keypad button[data-down]{box-shadow:var(--shadow-recess);background:var(--panel-2);transform:translateY(1px)}.keypad button:disabled{opacity:.45;cursor:default}@media (width<=820px){.keypad{grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px}.keypad button{min-height:48px;font-size:1.3rem}}@media (width<=820px) and (height<=700px){.keypad button{min-height:44px}}.copyline{font-family:var(--display);letter-spacing:.08em;word-break:break-word;font-size:1.6rem;font-weight:700;line-height:1.6}.op-ok{color:var(--ink)}.op-sub,.op-miss{color:var(--stop);text-underline-offset:6px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.op-extra{color:var(--ink-2);text-decoration:line-through}.op-miss{opacity:.8}.paddles{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;grid-template-columns:1fr 1fr;gap:12px;display:grid}.paddle{border-radius:var(--r-lg);background:var(--bakelite);min-height:120px;color:var(--on-bakelite);font-family:var(--display);cursor:pointer;box-shadow:0 4px 0 color-mix(in oklab, var(--bakelite) 70%, #000), var(--shadow-raised);touch-action:none;border:0;place-content:center;justify-items:center;gap:2px;font-size:1.6rem;font-weight:900;display:grid}.paddle[data-down=true]{background:var(--bakelite-2);transform:translateY(3px);box-shadow:0 1px #000}.paddle-straight{grid-column:1/-1}.paddle small{font-family:var(--body);opacity:.6;font-size:.8rem;font-weight:600}.keybinds{gap:8px;display:grid}.keybind-row{grid-template-columns:7.5em 1fr;align-items:center;gap:10px;display:grid}@media (width<=520px){.keybind-row{grid-template-columns:1fr;gap:4px}}.keybind-action{font-weight:600}.keybind-keys{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.keychip{border:1px solid var(--rule);background:var(--panel-3);min-height:32px;box-shadow:0 1px 0 var(--rule);border-radius:7px;align-items:center;gap:2px;padding:0 2px 0 10px;font-size:.9rem;font-weight:600;display:inline-flex}.keychip button{width:26px;height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:5px;font-size:1.05rem;line-height:1}@media (hover:hover){.keychip button:hover{background:var(--panel-2);color:var(--stop)}}.keychip-add{border:1px dashed var(--ink-2);min-height:32px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:7px;padding:0 12px;font-size:.9rem;font-weight:600}@media (hover:hover){.keychip-add:hover{color:var(--ink);border-color:var(--ink)}}.keychip-add.is-capturing{border-style:solid;border-color:var(--amber-dim);color:var(--ink);background:color-mix(in oklab, var(--amber) 22%, transparent)}.timeline{width:100%;height:90px;display:block}.metrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.metric{border-radius:var(--r-md);border:1px solid var(--rule);padding:12px 14px}.metric b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;line-height:1.1;display:block}.metric span{color:var(--ink-2);font-size:.85rem}.metric[data-ok=false] b{color:var(--stop)}.metric[data-ok=true] b{color:var(--go)}.game-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;display:grid}.game-card{border-radius:var(--r-lg);border:1px solid var(--rule);background:var(--panel-3);box-shadow:var(--shadow-raised);grid-template-rows:150px auto;text-decoration:none;display:grid;overflow:hidden}@media (hover:hover){.game-card:hover{border-color:var(--ink-2)}}.game-art{background:var(--dial-bg);place-items:center;display:grid;overflow:hidden}.game-body{padding:16px 18px 18px}.game-body h3{margin-bottom:4px}.game-best{font-family:var(--display);color:var(--amber-dim);font-weight:700}.storm-run{gap:14px;display:grid}.storm-field{border-radius:var(--r-lg);border:3px solid var(--bakelite);-webkit-user-select:none;user-select:none;background:#120d09;grid-template-rows:auto minmax(0,1fr);height:min(66vh,600px);min-height:300px;display:grid;position:relative;overflow:hidden}@media (prefers-color-scheme:dark){.storm-field{border-color:#0c0a08}}.storm-hud{border-bottom:1px solid #ffb5471f;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px 6px 14px;display:flex}.storm-readout{min-width:0;color:var(--amber-dim);flex-wrap:wrap;align-items:baseline;column-gap:14px;font-size:.9rem;font-weight:600;display:flex}.storm-readout b{font-family:var(--display);color:var(--amber);font-variant-numeric:tabular-nums;text-shadow:0 0 8px #ff962880;font-size:1.6rem}.storm-combo{font-family:var(--display);color:var(--amber);font-size:1.05rem;font-weight:900}.storm-controls{flex:none;align-items:center;gap:6px;display:flex}.storm-shields{gap:5px;margin-right:6px;display:inline-flex}.storm-btn{min-width:40px;height:40px;color:var(--amber);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffb54714;border:1px solid #ffb54740;border-radius:10px;justify-content:center;align-items:center;gap:3px;padding:0 8px;font-size:.9rem;font-weight:700;display:inline-flex}@media (hover:hover){.storm-btn:hover{background:#ffb54729}}.storm-btn:disabled{opacity:.35;cursor:default}.storm-btn svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.storm-btn svg .fill{fill:currentColor;stroke:none}.storm-sky{min-height:0;position:relative}.storm-sky canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.storm-paused{text-align:center;background:#0a070566;place-content:center;gap:14px;padding:16px;display:grid;position:absolute;inset:0}.storm-paused h2{color:var(--amber);text-shadow:0 0 20px #ff8a1e;margin:0;font-size:3rem}.pileup-log{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.pileup-log th,.pileup-log td{text-align:left;border-bottom:1px solid var(--rule);padding:6px 8px}.pileup-log th{color:var(--ink-2);font-size:.88rem;font-weight:600}.chart{width:100%;height:auto;display:block}.chart-caption{color:var(--ink-2);margin-top:6px;font-size:.85rem}.chart-caption i{border-top:1px dashed var(--ink-2);vertical-align:middle;width:18px;margin-right:6px;display:inline-block}.chart-tip{border-radius:var(--r-sm);background:var(--panel-3);border:1px solid var(--rule);white-space:nowrap;pointer-events:none;padding:4px 10px;font-size:.85rem;position:absolute;top:0;transform:translate(-50%,-100%);box-shadow:0 4px 12px #00000026}.badges{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.badge{border-radius:var(--r-md);border:1px dashed var(--rule);color:var(--ink-2);grid-template-columns:48px 1fr;align-items:center;gap:10px;padding:10px;display:grid}.badge-icon{width:48px;height:48px;font-family:var(--display);background:var(--panel-2);color:var(--rule);border-radius:50%;place-items:center;font-weight:900;display:grid}.badge[data-earned=true]{color:var(--ink);background:var(--panel-3);border-style:solid}.badge[data-earned=true] .badge-icon{background:var(--bakelite);color:var(--amber);box-shadow:0 0 0 3px var(--amber-dim)}.badge b{font-size:.95rem;display:block}.badge small{font-size:.8rem;line-height:1.3;display:block}.toasts{z-index:50;gap:10px;display:grid;position:fixed;bottom:20px;right:20px}@media (width<=820px){.toasts{left:16px;right:16px;bottom:calc(90px + env(safe-area-inset-bottom))}}.toast{border-radius:var(--r-md);background:var(--dial-bg);color:var(--amber-soft);border:2px solid var(--bakelite);align-items:center;gap:12px;padding:12px 16px;animation:.28s ease-out toast-in;display:flex;box-shadow:0 10px 30px #0000004d}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}}.overlay{z-index:60;background:#14100c99;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:var(--r-lg);border:1px solid var(--rule);width:min(560px,100%);max-height:calc(100dvh - 32px);padding:24px;overflow:auto;box-shadow:0 30px 80px #0006}.kbd{border:1px solid var(--rule);background:var(--panel-3);box-shadow:0 1px 0 var(--rule);border-radius:5px;padding:1px 7px;font-size:.85em;font-weight:600;display:inline-block}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.rooms{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.room-card{border-radius:var(--r-lg);border:1px solid var(--rule);background:var(--panel-3);box-shadow:var(--shadow-raised);padding:16px 18px;text-decoration:none;display:block}@media (hover:hover){.room-card:hover{border-color:var(--ink-2)}}.room-count{font-family:var(--display);align-items:center;gap:6px;font-size:1.2rem;font-weight:700;display:inline-flex}.room-calls{flex-wrap:wrap;align-items:center;gap:6px;min-height:28px;display:flex}.callchip{background:var(--bakelite);color:var(--on-bakelite);font-family:var(--display);letter-spacing:.04em;border-radius:6px;padding:2px 9px;font-weight:700}.stations{flex-wrap:wrap;align-items:center;gap:8px;min-height:36px;display:flex}.station{border:1px solid var(--rule);background:var(--panel-3);font-family:var(--display);letter-spacing:.04em;border-radius:8px;align-items:center;gap:8px;padding:5px 12px;font-size:1.1rem;font-weight:700;display:inline-flex}.station small{font-family:var(--body);color:var(--ink-2);letter-spacing:0;font-size:.75rem;font-weight:600}.air-log{padding-bottom:16px}.air-lines{scrollbar-width:thin;align-content:start;gap:6px;min-height:140px;max-height:min(46vh,380px);margin-top:10px;display:grid;overflow-y:auto}.air-line{grid-template-columns:7.5em 1fr;align-items:baseline;gap:12px;display:grid}@media (width<=520px){.air-line{grid-template-columns:1fr;gap:0}}.air-call{color:var(--amber-dim);letter-spacing:.05em;font-size:.9rem;font-weight:700}.air-line[data-mine=true] .air-call{color:#9fb8a4}.air-text{font-family:var(--display);letter-spacing:.08em;color:var(--amber-soft);text-shadow:0 0 6px #ffb54766;word-break:break-word;font-size:1.35rem;font-weight:300}.air-line[data-mine=true] .air-text{color:#d7e6da;text-shadow:none}.air-text.is-hidden{filter:blur(7px);cursor:pointer;-webkit-user-select:none;user-select:none}.latency-warn{border-radius:var(--r-md);border:1px solid color-mix(in oklab, var(--stop) 45%, transparent);background:color-mix(in oklab, var(--stop) 10%, transparent);margin:0;padding:10px 12px}@media (hover:none) and (pointer:coarse){.btn .kbd,.keys-only{display:none}}@media (pointer:coarse){.keychip{min-height:40px}.keychip button{width:38px;height:38px}.keychip-add{min-height:40px}input[type=checkbox],input[type=radio]{flex:none;width:22px;height:22px;margin:0}:is(label:has(>input[type=checkbox]),label:has(>input[type=radio])){min-height:44px}summary{margin-block:-10px;padding-block:10px}.back-link{margin:-12px 0;padding:12px 16px 12px 0;display:inline-block}.storm-btn{min-width:44px;height:44px}.btn-compact,.seg button,input[type=range]{min-height:44px}}@media (width<=820px) and (pointer:coarse){.shell:has(:is(input:not([type=checkbox],[type=radio],[type=range]),textarea):focus) :is(.tabbar,.topbar,.session-head){display:none}.shell:has(.text-input:focus) .drill-dial{min-height:0}}@media (width<=820px){.dial{padding:16px 18px}.pileup-keys{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pileup-keys .btn{padding:0 10px}.pileup-keys .btn-ghost{grid-column:1/-1}.air-room>.air-bot{order:1}.air-room>.air-extra{order:2}}@media (width<=820px),(height<=500px) and (pointer:coarse){.focus-mode{--pad-t:max(10px, env(safe-area-inset-top));--pad-b:max(10px, env(safe-area-inset-bottom));--focus-h:calc(100vh - var(--pad-t) - var(--pad-b))}@supports (height:100dvh){.focus-mode{--focus-h:calc(100dvh - var(--pad-t) - var(--pad-b))}}.focus-mode body{overscroll-behavior:none}.focus-mode .shell{grid-template-columns:1fr;min-height:0}.focus-mode .rail,.focus-mode .topbar,.focus-mode .tabbar,.focus-mode .session-head{display:none}.focus-mode .main{max-width:none;padding:var(--pad-t) max(12px, env(safe-area-inset-right)) var(--pad-b) max(12px, env(safe-area-inset-left))}.focus-mode .toasts{bottom:calc(16px + env(safe-area-inset-bottom))}.focus-mode .storm-run{height:var(--focus-h);flex-direction:column;gap:10px;display:flex}.focus-mode .storm-field{flex:1 1 0;height:auto;min-height:180px}.focus-mode .storm-run .keypad{flex:none;margin-top:0}.focus-mode .drill-run{height:var(--focus-h);flex-direction:column;gap:10px;display:flex}.focus-mode .drill-run .drill-dial{flex:1 1 0;min-height:170px;padding:14px 16px}.focus-mode .drill-run .drill-center{padding:0;container-type:size}.focus-mode .drill-run .drill-glyph{font-size:clamp(3rem,80cqh - 2.5rem,11rem)}.focus-mode .drill-run .drill-controls{flex-wrap:nowrap;flex:none;gap:6px}.focus-mode .drill-run .drill-controls .btn{padding:0 12px}.focus-mode .drill-run .keypad{flex:none;margin-top:0}}@media (height<=500px) and (pointer:coarse) and (orientation:landscape){.focus-mode .storm-run{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr minmax(220px,46%);display:grid}.focus-mode .storm-field{min-height:0}.focus-mode .drill-run{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr minmax(220px,48%);display:grid}.focus-mode .drill-run .drill-dial{min-height:0}.focus-mode .drill-run .drill-controls{grid-area:2/1}.focus-mode .storm-run .keypad,.focus-mode .drill-run .keypad{grid-area:1/2/-1;align-content:start;overflow-y:auto}.focus-mode .keypad{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:5px}.focus-mode .keypad button{min-height:42px;font-size:1.2rem}}
