.empty-state{gap:var(--space-3);padding:var(--space-6) var(--space-4);display:grid}.empty-state__title{font-size:var(--text-2xl)}.empty-state__body{color:var(--color-text-muted);max-width:40ch}.empty-state__badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);justify-self:start}.vlist{overscroll-behavior:contain;contain:strict;position:relative;overflow-y:auto}.vlist__inner{width:100%;position:relative}.vlist__row{position:absolute;left:0;right:0}.vlist__inner{margin:0;padding:0;list-style:none}.timer__scramble{gap:var(--space-2);display:grid}.timer__scramble-text{font-size:var(--text-lg);line-height:var(--leading-normal);word-spacing:.2em;overflow-wrap:anywhere;min-height:4.65em}.scramble-net{aspect-ratio:12.6/9.5;width:168px;height:auto;display:block}.scramble-net--empty{aspect-ratio:12.6/9.5;width:168px}.timer__area{place-items:center;gap:var(--space-2);min-height:40vh;padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface);border:var(--border-width) solid var(--color-border);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:pointer;display:grid}.timer-display{justify-items:center;gap:var(--space-1);display:grid}.timer-display__time{font-family:var(--font-mono);font-size:var(--text-timer);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1}.timer-display__sub{min-height:1.5em;color:var(--color-text-muted);font-size:var(--text-sm)}.timer-display--holding .timer-display__time{color:var(--color-danger)}.timer-display--ready .timer-display__time{color:var(--color-success)}.timer__hint{text-align:center;min-height:1.5em}.timer__typing .input{min-width:12ch;font-size:var(--text-xl);flex:1}.timer-settings>summary{list-style:none}.timer-settings>summary::-webkit-details-marker{display:none}.timer-settings[open]>.card{margin-top:var(--space-2)}.solve-row{align-items:center;gap:var(--space-3);width:100%;height:100%;padding:0 var(--space-2);border:none;border-bottom:var(--border-width) solid var(--color-border);text-align:left;cursor:pointer;background:0 0;grid-template-columns:4ch 1fr 1fr;display:grid}.solve-row:hover{background:var(--color-surface-2)}.solve-row__avg{text-align:right}.timer--focus .timer__chrome{visibility:hidden}.timer--focus .timer__area{background:0 0;border-color:#0000}:root[data-focus=timer] .shell__nav{visibility:hidden}.dialog{border:var(--border-width) solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(92vw,460px);color:var(--color-text);padding:0}.dialog::backdrop{background:#0006}.dialog__body{gap:var(--space-3);padding:var(--space-5);display:grid}.dialog__time{font-size:var(--text-2xl);font-weight:var(--weight-bold)}.timer__sessions{gap:var(--space-2);flex-basis:100%;grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:600px){.timer__sessions{grid-template-columns:minmax(0,1fr) auto;align-items:center}}.timer__sessions .select{width:100%}.shell{min-height:100dvh}.shell__main{max-width:var(--content-max);padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + var(--space-4));outline:none;margin-inline:auto}.shell__nav{z-index:var(--z-nav);background:var(--color-surface);border-top:var(--border-width) solid var(--color-border);padding-bottom:env(safe-area-inset-bottom);position:fixed;inset:auto 0 0}.shell__brand{display:none}.shell__tabs{height:var(--tabbar-height);grid-template-columns:repeat(5,1fr);margin:0;padding:0;list-style:none;display:grid}.shell__tab{height:100%;min-height:var(--tap-min);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);transition:color var(--duration-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.shell__tab:hover{color:var(--color-text)}.shell__tab[aria-current=page]{color:var(--color-nav-active);font-weight:var(--weight-semibold)}.shell__icon{flex:none}@media (min-width:900px){.shell{grid-template-columns:var(--sidebar-width) 1fr;display:grid}.shell__main{width:100%;padding:var(--space-6) var(--space-8)}.shell__nav{border-top:none;border-right:var(--border-width) solid var(--color-border);height:100dvh;padding:var(--space-6) var(--space-3);position:sticky;inset:0 auto auto 0}.shell__brand{padding:0 var(--space-3) var(--space-6);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.01em;display:block}.shell__tabs{gap:var(--space-1);flex-direction:column;height:auto;display:flex}.shell__tab{justify-content:flex-start;gap:var(--space-3);padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--text-md);flex-direction:row}.shell__tab:hover,.shell__tab[aria-current=page]{background:var(--color-surface-2)}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-bg:#f5f7fb;--color-surface:#fff;--color-surface-2:#eaeef7;--color-grid:#dce3f2;--color-text:#1a2140;--color-text-muted:#555e7a;--color-border:#d5dcec;--color-primary:#2b3a8c;--color-on-primary:#fff;--color-accent:#6b3fa0;--color-on-accent:#fff;--color-success:#1f7a4d;--color-danger:#b42335;--color-focus:#2b3a8c;--color-nav-active:var(--color-accent);--cube-white:#fff;--cube-yellow:#ffd500;--cube-red:#c41e3a;--cube-orange:#ff5800;--cube-blue:#0051ba;--cube-green:#009e60;--cube-unset:#8a8f98;--cube-plastic:#1b1d22;--font-display:"Lexend", "Be Vietnam Pro", system-ui, sans-serif;--font-sans:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-timer:clamp(3.5rem, 18vw, 8rem);--leading-tight:1.25;--leading-normal:1.55;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--border-width:1px;--shadow-1:0 1px 2px #1c23330f, 0 1px 1px #1c23330a;--tap-min:44px;--tabbar-height:64px;--sidebar-width:240px;--content-max:720px;--duration-fast:.12s;--duration-base:.2s;--ease-out:cubic-bezier(.2, .8, .2, 1);--z-nav:10}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--color-bg:#0f1424;--color-surface:#161c30;--color-surface-2:#1e2640;--color-grid:#2a3352;--color-text:#e6e9f5;--color-text-muted:#a0a8c3;--color-border:#2a3352;--color-primary:#aeb9f5;--color-on-primary:#0f1424;--color-accent:#c4a6f0;--color-on-accent:#0f1424;--color-success:#5fd39a;--color-danger:#ff7a85;--color-focus:#aeb9f5;--shadow-1:none}}:root[data-theme=dark]{--color-bg:#0f1424;--color-surface:#161c30;--color-surface-2:#1e2640;--color-grid:#2a3352;--color-text:#e6e9f5;--color-text-muted:#a0a8c3;--color-border:#2a3352;--color-primary:#aeb9f5;--color-on-primary:#0f1424;--color-accent:#c4a6f0;--color-on-accent:#0f1424;--color-success:#5fd39a;--color-danger:#ff7a85;--color-focus:#aeb9f5;--shadow-1:none}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);line-height:var(--leading-tight);font-weight:var(--weight-semibold);text-wrap:balance}a{color:inherit}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--space-2);top:var(--space-2);z-index:calc(var(--z-nav) + 1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:none}.screen{gap:var(--space-6);padding:var(--space-6) var(--space-4);display:grid}.screen__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.screen__title{font-size:var(--text-2xl)}.screen__back{align-items:center;gap:var(--space-1);min-height:var(--tap-min);color:var(--color-text-muted);font-size:var(--text-sm);text-decoration:none;display:inline-flex}.section{gap:var(--space-3);display:grid}.section__title{font-size:var(--text-lg)}.muted{color:var(--color-text-muted)}.small{font-size:var(--text-sm)}.card{gap:var(--space-3);padding:var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-1);display:grid}.row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.row--between{justify-content:space-between}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-4);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-surface-2)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:hover{background:var(--color-primary);filter:brightness(1.08)}.btn--danger{color:var(--color-danger)}.btn--small{min-height:36px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn--ghost{background:0 0;border-color:#0000}.chip{min-height:36px;padding:0 var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;align-items:center;display:inline-flex}.chip[aria-pressed=true],.chip[aria-selected=true]{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-on-accent)}.field{gap:var(--space-1);font-size:var(--text-sm);display:grid}.input,.select{min-height:var(--tap-min);padding:0 var(--space-3);border:var(--border-width) solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit}.list{margin:0;padding:0;list-style:none;display:grid}.list>li{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--tap-min);padding:var(--space-2) 0;border-bottom:var(--border-width) solid var(--color-border);display:flex}.list>li:last-child{border-bottom:none}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.notice{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-2);font-size:var(--text-sm)}.notice--danger{color:var(--color-danger)}.stat-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid}.stat{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--color-surface-2);gap:2px;display:grid}.stat__label{color:var(--color-text-muted);font-size:var(--text-xs)}.stat__value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold)}.fieldset{align-items:center;gap:var(--space-2);border:none;flex-wrap:wrap;min-width:0;margin:0;padding:0;display:flex}.fieldset>legend:not(.sr-only){float:left;width:100%;margin-bottom:var(--space-1);padding:0}output.notice{display:block}.tile{color:inherit;gap:var(--space-1);text-decoration:none}a.tile:hover{border-color:var(--color-accent)}.tile--soon{opacity:.75}.badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);justify-self:start}
