*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}html[data-motion=reduced]{scroll-behavior:auto}body{min-height:100vh;font-family:var(--font-ui);font-size:15px;line-height:1.55;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;max-width:100vw}body:before{content:"";position:fixed;inset:-20%;pointer-events:none;z-index:0;background:var(--field);opacity:var(--field-opacity, 1);transition:opacity .7s ease;animation:field-drift 26s ease-in-out infinite alternate}body.is-typing:before{opacity:.3}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.35;background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse 70% 55% at 50% 30%,#000 20%,transparent 100%)}img,svg,canvas{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}ul,ol{list-style:none}[hidden],.hidden{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:16px;z-index:999;padding:10px 16px;background:var(--accent);color:var(--accent-ink);border-radius:var(--r-md);font-weight:600;transition:top var(--t-med)}.skip-link:focus{top:16px}::selection{background:var(--accent-soft);color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}kbd{display:inline-block;padding:1px 6px;border-radius:5px;font-family:var(--font-ui);font-size:.8em;font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line-strong);border-bottom-width:2px;line-height:1.5}:root{--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-display: "Outfit", "Inter", system-ui, sans-serif;--font-read: "Lexend", "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-2xs: .6875rem;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .875rem;--fs-base: .9375rem;--fs-lg: 1.0625rem;--fs-xl: 1.25rem;--fs-2xl: 1.5rem;--fs-3xl: 2rem;--fs-4xl: clamp(2.25rem, 5vw, 3rem);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-7: 32px;--s-8: 44px;--s-9: 64px;--r-xs: 6px;--r-sm: 8px;--r-md: 11px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;--t-fast: .12s cubic-bezier(.22,.61,.36,1);--t-med: .22s cubic-bezier(.22,.61,.36,1);--t-slow: .42s cubic-bezier(.22,.61,.36,1);--ease-out: cubic-bezier(.16,1,.3,1);--spring: cubic-bezier(.34,1.56,.64,1);--words-size: clamp(1.45rem, 2.4vw, 1.95rem);--words-lh: 1.62;--words-weight: 400;--words-font: var(--font-read);--words-lines: 2;--shell: 1240px;--typer-w: 1060px;--rail-w: 160px;--rail-gap: 150px}html[data-reader-size=sm]{--words-size: 1.2rem}html[data-reader-size=md]{--words-size: clamp(1.45rem, 2.4vw, 1.95rem)}html[data-reader-size=lg]{--words-size: clamp(1.7rem, 2.9vw, 2.2rem)}html[data-reader-size=xl]{--words-size: clamp(2rem, 3.4vw, 2.7rem)}html[data-reader-font=sans]{--words-font: var(--font-read)}html[data-reader-font=mono]{--words-font: var(--font-mono);--words-weight: 400}html[data-reader-font=serif]{--words-font: "Iowan Old Style", Palatino, Georgia, serif}html[data-reader-font=system]{--words-font: var(--font-ui)}:root{--caret: #8b8cff;--dot: rgba(255,255,255,.035);--bg: #0a0b10;--surface: #121319;--surface-2: #171922;--surface-3: #1e2029;--text: #eef0f6;--text-2: #c7cbd8;--muted: #8b91a4;--faint: #565c6e;--line: rgba(255,255,255,.07);--line-strong: rgba(255,255,255,.14);--accent: #8b8cff;--accent-2: #b48cff;--accent-ink: #0a0b10;--accent-soft: rgba(139,140,255,.16);--ok: #34d399;--warn: #fbbf24;--err: #f4707d;--field: radial-gradient(900px 520px at 50% -12%, rgba(139,140,255,.18), transparent 62%), radial-gradient(700px 420px at 88% 8%, rgba(180,140,255,.1), transparent 60%), radial-gradient(600px 400px at 8% 70%, rgba(52,211,153,.05), transparent 60%);--sh-sm: 0 1px 2px rgba(0,0,0,.4);--sh-md: 0 8px 24px -8px rgba(0,0,0,.6);--sh-lg: 0 28px 70px -22px rgba(0,0,0,.75);color-scheme:dark}.shell{position:relative;z-index:1;width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--s-5);display:flex;flex-direction:column;min-height:100vh}.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);height:64px;flex-shrink:0;transition:opacity var(--t-slow)}body.is-typing .bar{opacity:.08}body.is-typing.mouse-active .bar{opacity:1}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text)}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:var(--accent-ink);background:linear-gradient(140deg,var(--accent),var(--accent-2));box-shadow:0 6px 18px -8px var(--accent),inset 0 1px #ffffff40;transition:transform var(--t-med) var(--spring)}.brand-mark svg{width:17px;height:17px}.brand:hover .brand-mark{transform:translateY(2px) scale(.96);box-shadow:0 2px 8px -4px var(--accent),inset 0 1px #ffffff40}.brand-word{font-family:var(--font-display);font-size:1.25rem;font-weight:500;letter-spacing:-.03em;color:var(--text-2)}.brand-word b{font-weight:800;color:var(--text)}.bar-nav{display:flex;align-items:center;gap:2px}.bar-btn{position:relative;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.bar-btn svg{width:17px;height:17px}.bar-btn:hover{color:var(--text);background:var(--surface-2)}.bar-btn:active{transform:scale(.96)}.bar-btn--icon{padding:0;width:36px;justify-content:center}.icon-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-md);color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.icon-btn svg{width:17px;height:17px}.icon-btn:hover{color:var(--text);background:var(--surface-2)}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--s-4) 0 var(--s-9);min-height:78vh}.deck{display:flex;flex-direction:column;align-items:center;width:100%;max-width:var(--typer-w);margin-bottom:var(--s-7);transition:opacity var(--t-slow),transform var(--t-slow)}body.is-typing .deck{opacity:0;transform:translateY(-6px);pointer-events:none}body.is-typing.mouse-active .deck{opacity:1;transform:none;pointer-events:auto}.deck-tabs{display:flex;gap:var(--s-1);margin-bottom:-1px;position:relative;z-index:1}.deck-tab{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:12px 12px 0 0;border:1px solid transparent;border-bottom:0;font-size:var(--fs-sm);font-weight:600;color:var(--faint);transition:color var(--t-fast),background var(--t-fast)}.deck-tab svg{width:15px;height:15px}.deck-tab small{min-width:18px;padding:1px 6px;border-radius:99px;font-size:10px;font-weight:700;background:var(--surface-2);color:var(--faint)}.deck-tab:hover{color:var(--text-2)}.deck-tab.is-active{color:var(--text);background:var(--surface);border-color:var(--line)}.deck-tab.is-active svg{color:var(--accent)}.deck-tab.is-active small{background:var(--accent-soft);color:var(--accent)}.ctrl-card{width:100%;border-radius:16px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line);box-shadow:var(--sh-md);backdrop-filter:blur(8px)}.deck-modes{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;padding:8px}.deck-mode{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:10px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);white-space:nowrap;transition:color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}.deck-mode svg{width:15px;height:15px;opacity:.75}.deck-mode:hover{color:var(--text);background:var(--surface-2)}.deck-mode.is-active{color:var(--accent-ink);background:var(--accent);box-shadow:0 6px 16px -8px var(--accent)}.deck-mode.is-active svg{opacity:1}.deck-mode--tool{color:var(--faint)}.deck-divider{width:1px;align-self:stretch;margin:6px;background:var(--line-strong)}.deck-options{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 22px;padding:9px 16px;border-top:1px solid var(--line);min-height:46px}.deck-options.is-empty{display:none}.opt-group{display:inline-flex;align-items:center;gap:8px}.opt-group--end{margin-left:auto}.opt-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);opacity:.8}.opt-set{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:10px;background:var(--surface-2)}.opt-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:8px;font-size:var(--fs-xs);font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;transition:color var(--t-fast),background var(--t-fast)}.opt-chip svg{width:13px;height:13px}.opt-chip kbd{font-size:10px;padding:0 5px}.opt-chip:hover{color:var(--text);background:var(--surface-3)}.opt-chip.is-active{color:var(--text);background:var(--surface);box-shadow:var(--sh-sm),inset 0 0 0 1px var(--line-strong)}.opt-chip--toggle.is-active{color:var(--accent)}.opt-chip--icon{padding:0;width:28px;justify-content:center}.opt-note{padding:0 10px;font-size:var(--fs-xs);color:var(--muted);line-height:28px}.drill-banner{display:flex;align-items:center;gap:var(--s-3);padding:7px 8px 7px 14px;margin:0 0 var(--s-5);border-radius:var(--r-full);font-size:var(--fs-sm);color:var(--accent);background:var(--accent-soft);animation:rise-in var(--t-med) var(--ease-out) both}.drill-banner svg{width:14px;height:14px;flex-shrink:0}.drill-banner b{font-weight:700}.drill-banner-exit{padding:4px 11px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;color:var(--accent-ink);background:var(--accent)}.hud{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-5);width:min(100%,var(--typer-w));min-height:64px;margin-bottom:var(--s-3)}.hud-main{display:flex;align-items:baseline;gap:10px}.hud-value{font-family:var(--font-display);font-size:3.4rem;font-weight:600;line-height:1;letter-spacing:-.045em;color:var(--accent);font-variant-numeric:tabular-nums;transition:color var(--t-med),transform .16s var(--spring)}.hud-value.is-urgent{color:var(--err);animation:pulse-num 1s ease-in-out infinite}.hud-value.is-beat{animation:beat .26s var(--ease-out)}.hud-unit{font-size:var(--fs-sm);font-weight:500;color:var(--faint)}.hud-side{display:flex;gap:var(--s-5);align-items:baseline}.hud-stat{display:flex;align-items:baseline;gap:5px;font-variant-numeric:tabular-nums}.hud-stat b{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600;color:var(--text-2)}.hud-stat i{font-size:var(--fs-xs);font-style:normal;color:var(--faint)}.hud-stat.is-bad b{color:var(--err)}body.is-typing .hud-side{opacity:.75}body.is-typing .hud-unit{opacity:.6}.track{width:min(100%,var(--typer-w));height:2px;border-radius:99px;background:var(--line);overflow:hidden;margin-bottom:var(--s-6);opacity:0;transition:opacity var(--t-med)}body.is-typing .track{opacity:1}.track i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .14s linear}.stage-extra{width:min(100%,var(--typer-w))}.stage-extra:empty{display:none}.surface{width:min(100%,var(--typer-w));position:relative}.typer{position:relative;cursor:text}.typer.is-shaking{animation:shake .28s cubic-bezier(.36,.07,.19,.97)}.typer.is-miss .words{animation:miss-flash .18s ease-out}.words{position:relative;font-family:var(--words-font);font-size:var(--words-size);line-height:var(--words-lh);font-weight:var(--words-weight);letter-spacing:.003em;height:calc(var(--words-size) * var(--words-lh) * var(--words-lines));overflow:hidden;transition:filter var(--t-med),opacity var(--t-med)}.typer:not(.is-focused) .words{filter:blur(4px);opacity:.45}.typer.is-setup .words{filter:none;opacity:1;height:auto;min-height:160px}@supports (overflow: clip){.words{overflow-x:visible;overflow-y:clip}}body.mode-dictation .words{height:calc(var(--words-size) * var(--words-lh) * (max(2,var(--words-lines)) + 1))}body.mode-dictation .line--prev{opacity:.5}@keyframes line-rise{0%{transform:translateY(calc(var(--words-size) * var(--words-lh)))}to{transform:none}}.line{display:flex;flex-wrap:nowrap;height:calc(var(--words-size) * var(--words-lh));align-items:center}.line--next{opacity:.82}.line--far{opacity:.5}.word{display:inline-flex;padding-right:.34em;margin-right:.28em;color:var(--faint);white-space:pre;border-radius:6px;transition:color var(--t-fast)}.word.is-done{color:var(--muted);opacity:.78}.word.is-bad{text-decoration:underline;text-decoration-color:var(--err);text-underline-offset:.22em;text-decoration-thickness:.055em}.word.is-current{color:var(--text)}.word.is-just-ok{animation:word-ok .26s ease-out}.word.is-just-bad{animation:word-bad .3s ease-out}.word.is-onbeat .ch{color:var(--ok)!important}.word.is-offbeat .ch{color:var(--warn)!important}.ch{transition:color 70ms linear}.word.is-current .ch--pending{color:var(--text);opacity:.55}.ch--ok{color:var(--text)}.ch--bad{color:var(--err);text-shadow:0 0 10px color-mix(in srgb,var(--err) 55%,transparent)}.ch--extra{color:color-mix(in srgb,var(--err) 65%,var(--faint));opacity:.7}.word.is-done .ch--ok{color:var(--muted)}.word.is-done .ch--bad{color:var(--err)}body.blind-mode .ch--bad,body.blind-mode .ch--extra{color:var(--text);text-shadow:none}.ch[data-typed]{position:relative}.ch[data-typed]:after{content:attr(data-typed);position:absolute;left:50%;top:78%;transform:translate(-50%);font-size:.45em;line-height:1;color:var(--err);opacity:.85;pointer-events:none}body.hide-extra .ch--extra{display:none}.words.is-tape{display:flex;flex-wrap:nowrap;align-items:center;height:calc(var(--words-size) * var(--words-lh) * 1.15);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 82%,transparent)}.words.is-tape>.line,.words.is-tape>.tape-past{flex:none;display:flex;align-items:center;height:calc(var(--words-size) * var(--words-lh));opacity:1;transform:translate3d(var(--tape-x, 0px),0,0);transition:transform .11s var(--ease-out)}.words.is-tape-jump>.line,.words.is-tape-jump>.tape-past{transition:none}.words.is-tape .caret{transition:height 90ms,opacity var(--t-fast)}.caret{position:absolute;left:0;top:0;width:2.5px;border-radius:2px;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 70%,transparent);pointer-events:none;opacity:0;z-index:2;will-change:transform;transition:transform 70ms var(--ease-out),height 90ms,opacity var(--t-fast)}.caret.is-on{opacity:1}body.is-idle .caret.is-on{animation:caret-blink 1.05s steps(1) infinite}html[data-caret=block] .caret{width:.55em;border-radius:3px;opacity:.3;box-shadow:none}html[data-caret=underline] .caret{width:.55em;height:2.5px!important;margin-top:1.12em;box-shadow:none}.pace{position:absolute;left:0;top:0;width:2px;z-index:1;pointer-events:none;will-change:transform;transition:transform 90ms linear,height 90ms}.pace span{position:absolute;left:-1px;top:0;bottom:0;width:3px;border-radius:2px;background:var(--warn);box-shadow:0 0 14px var(--warn)}.pace span:after{content:"pace";position:absolute;left:6px;top:-1.1em;font-family:var(--font-ui);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--warn)}.pace.is-close span{background:var(--err);box-shadow:0 0 18px var(--err);animation:pulse-num .6s ease-in-out infinite}.pace.is-close span:after{color:var(--err)}.live-wpm{position:absolute;z-index:3;font-family:var(--font-display);font-size:var(--fs-sm);font-weight:700;color:var(--accent);pointer-events:none;transition:left 85ms var(--ease-out),top 105ms var(--ease-out)}.typer-veil{position:absolute;inset:-12px;display:grid;place-items:center;font-size:var(--fs-md);font-weight:500;color:var(--muted);cursor:text;transition:opacity var(--t-med);z-index:4}.typer.is-focused .typer-veil,.typer.is-setup .typer-veil{opacity:0;pointer-events:none}.typer-veil-inner{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:var(--sh-md)}.typer-veil-inner svg{width:15px;height:15px}.setup-notice{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;gap:10px;text-align:center;font-family:var(--font-ui);font-size:var(--fs-base)}.setup-notice strong{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:600}.setup-notice span{color:var(--muted);max-width:46ch;font-size:var(--fs-sm)}body.mode-zen .hud,body.mode-zen .track,body.is-ended .hud,body.is-ended .track,body.is-ended .controls .tip,body.is-ended .restart,body.is-ended .typer,body.is-ended .deck-options{display:none}body.is-ended .deck{margin-bottom:var(--s-5)}.is-entering{animation:rise-in .3s var(--ease-out) both}.surface.is-entering .words{animation:words-in .32s var(--ease-out) both}.word.dict-unheard:not(.is-done){color:transparent;opacity:.35}.word.dict-unheard:not(.is-done) .ch,.word.dict-heard:not(.is-done) .ch,.word.mem-hidden:not(.is-done) .ch{--slot: var(--faint);background:linear-gradient(var(--slot),var(--slot)) center bottom / calc(100% - 3px) 2px no-repeat}.word.dict-heard:not(.is-done):not(.is-current){color:transparent}.word.dict-heard:not(.is-done):not(.is-current) .ch{--slot: var(--accent)}.word.is-current.dict-heard .ch--pending,.word.is-current.dict-unheard .ch--pending{color:transparent;opacity:1;--slot: var(--accent)}.word.is-current.dict-unheard{opacity:1}.word.dict-heard .ch--ok,.word.dict-unheard .ch--ok,.word.mem-hidden .ch--ok{color:var(--text);background:none!important}.word.dict-heard .ch--bad,.word.dict-unheard .ch--bad,.word.mem-hidden .ch--bad{background:none!important}.word.is-done.dict-heard .ch--ok{color:var(--muted)}.word.mem-future{visibility:hidden}.word.mem-past{opacity:.14;filter:blur(.5px);transition:opacity .4s,filter .4s}.word.mem-show{color:var(--text);text-shadow:0 0 18px color-mix(in srgb,var(--accent) 45%,transparent);animation:mem-in .26s var(--ease-out) both}.word.mem-hidden:not(.is-done):not(.is-current){color:transparent}.word.mem-hidden:not(.is-done) .ch{--slot: var(--accent)}.word.mem-hidden.is-current .ch--pending{color:transparent;opacity:1}.typer.is-studying .caret{opacity:0!important}.typer.is-studying .word.is-current .ch--pending{opacity:1}body.mode-memory .words{--words-size: clamp(1.8rem, 3vw, 2.4rem)}body.mode-memory .word.mem-show,body.mode-memory .word.mem-hidden{font-weight:500}.typer.is-round-ok .words{animation:round-ok .6s ease-out}.typer.is-round-bad .words{animation:shake .32s}.mem-bar,.dict-bar,.book-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4);padding:10px 14px;margin-bottom:var(--s-5);border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm);color:var(--muted)}.mem-phase{display:inline-flex;align-items:center;gap:7px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-xs);color:var(--accent)}.mem-phase svg{width:15px;height:15px}.mem-bar--recall .mem-phase{color:var(--ok)}.mem-meter{flex:1;min-width:80px;height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.mem-meter i{display:block;height:100%;width:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:left;animation:mem-drain linear both}.mem-bar--recall .mem-meter{visibility:hidden}.mem-note b{color:var(--text)}.mem-lives{display:inline-flex;gap:5px}.mem-lives i{width:12px;height:12px;border-radius:3px;background:var(--surface-3);transform:rotate(45deg) scale(.85)}.mem-lives i.is-on{background:var(--err);box-shadow:0 0 10px var(--err)}.dict-voice{display:inline-flex;align-items:center;gap:3px;height:20px}.dict-voice i{width:3px;height:5px;border-radius:2px;background:var(--faint);transition:height .12s}.dict-voice.is-on i{background:var(--accent);animation:eq .7s ease-in-out infinite}.dict-voice.is-on i:nth-child(2){animation-delay:-.5s}.dict-voice.is-on i:nth-child(3){animation-delay:-.2s}.dict-voice.is-on i:nth-child(4){animation-delay:-.6s}.dict-voice.is-on i:nth-child(5){animation-delay:-.35s}.dict-status{font-weight:700;color:var(--text)}.dict-ahead{margin-right:auto;color:var(--faint);font-variant-numeric:tabular-nums}.dict-bar.is-waiting{border-color:color-mix(in srgb,var(--warn) 50%,var(--line))}.dict-bar.is-waiting .dict-status{color:var(--warn)}.shelf{padding:var(--s-2) 0;font-family:var(--font-ui)}.shelf-head{text-align:center;margin-bottom:var(--s-5)}.shelf-head strong{display:block;font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;color:var(--text)}.shelf-head span{display:block;max-width:56ch;margin:6px auto 0;font-size:var(--fs-sm);color:var(--muted);line-height:1.5}.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:var(--s-3)}.book{--hue: 265;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:14px 14px 14px 18px;min-height:132px;border-radius:12px;text-align:left;background:linear-gradient(160deg,hsl(var(--hue) 45% 30% / .35),transparent 70%),var(--surface);border:1px solid var(--line);overflow:hidden;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast),box-shadow var(--t-med)}.book:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:hsl(var(--hue) 65% 60%)}.book:hover{transform:translateY(-3px);border-color:hsl(var(--hue) 60% 60% / .6);box-shadow:var(--sh-md)}.book.is-current{border-color:var(--accent)}.book-cover{display:grid;place-items:center;width:30px;height:30px;margin-bottom:6px;border-radius:8px;color:hsl(var(--hue) 70% 72%);background:hsl(var(--hue) 50% 50% / .18)}.book-cover svg{width:16px;height:16px}.book-title{font-family:var(--font-display);font-size:var(--fs-base);font-weight:700;line-height:1.2;color:var(--text)}.book-author{font-size:var(--fs-xs);color:var(--muted)}.book-meta{margin-top:auto;padding-top:6px;font-size:var(--fs-2xs);color:var(--faint)}.book-meta b{color:var(--ok)}.book-progress{width:100%;height:3px;margin-top:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}.book-progress i{display:block;height:100%;background:var(--ok)}.book--upload{background:transparent;border-style:dashed;--hue: 220}.book--upload:before{display:none}.book-bar-title{display:flex;flex-direction:column;line-height:1.25}.book-bar-title b{color:var(--text);font-family:var(--font-display);font-size:var(--fs-base)}.book-bar-title span{font-size:var(--fs-xs);color:var(--faint)}.book-bar-track{flex:1;min-width:80px;height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.book-bar-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width var(--t-med)}.book-bar-pct{font-weight:700;color:var(--text-2);font-variant-numeric:tabular-nums}body.mode-alphabet .words{font-family:var(--font-mono);letter-spacing:.06em}.osk-host{margin-top:var(--s-5);display:flex;justify-content:center;transition:opacity var(--t-med)}body.is-ended .osk-host{display:none}.osk{display:flex;flex-direction:column;gap:5px;align-items:center;user-select:none}.osk-row{display:flex;gap:5px}.osk-key{display:grid;place-items:center;width:38px;height:36px;border-radius:7px;font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;color:var(--faint);background:var(--surface);border:1px solid var(--line);border-bottom-width:3px;transition:transform 80ms,background 80ms,color 80ms,border-color 80ms,box-shadow 80ms}.osk-key--mod{width:62px;color:var(--faint)}.osk-key--space{width:260px}.osk-key[data-finger=lp],.osk-key[data-finger=rp]{--f: 285}.osk-key[data-finger=lr],.osk-key[data-finger=rr]{--f: 215}.osk-key[data-finger=lm],.osk-key[data-finger=rm]{--f: 165}.osk-key[data-finger=li],.osk-key[data-finger=ri]{--f: 40}.osk-key.is-next{color:#fff;background:hsl(var(--f, 240) 60% 48%);border-color:hsl(var(--f, 240) 60% 40%);box-shadow:0 0 16px -2px hsl(var(--f, 240) 70% 55%);transform:translateY(-2px)}.osk-key--space.is-next,.osk-key--shift.is-next{background:var(--accent);border-color:var(--accent);box-shadow:0 0 16px -2px var(--accent);color:var(--accent-ink)}.osk-key.is-hit{background:var(--ok);border-color:var(--ok);color:#062a1a;transform:translateY(2px);border-bottom-width:1px}.osk-key.is-miss{background:var(--err);border-color:var(--err);color:#fff;transform:translateY(2px);border-bottom-width:1px}.rally{padding:var(--s-4) var(--s-5);margin-bottom:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.rally-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-3)}.rally-title{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.rally-title svg{width:14px;height:14px}.rally-meta{font-size:var(--fs-sm);font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.rally-track{display:flex;flex-direction:column;gap:7px}.rally-lane{display:grid;grid-template-columns:minmax(74px,118px) 1fr 40px;align-items:center;gap:var(--s-3);font-size:var(--fs-xs)}.rally-name{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rally-lane.is-player .rally-name{color:var(--accent);font-weight:700}.rally-rail{position:relative;height:8px;border-radius:99px;background:var(--surface-3)}.rally-fill{position:absolute;inset:0 auto 0 0;border-radius:99px;background:color-mix(in srgb,var(--muted) 45%,transparent);transition:width .16s linear}.rally-lane.is-player .rally-fill{background:linear-gradient(90deg,var(--accent),var(--accent-2))}.rally-car{position:absolute;top:50%;translate:-50% -50%;font-size:13px;transition:left .16s linear;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}.rally-wpm{text-align:right;font-variant-numeric:tabular-nums;color:var(--faint);font-weight:600}.rally-lane.is-done .rally-wpm{color:var(--ok)}.marathon-bar{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.marathon-bar>span:first-child{flex:1;height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.marathon-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width var(--t-med)}.marathon-pct{font-size:var(--fs-xs);font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.daily-bar,.dictation-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4);font-size:var(--fs-sm);color:var(--muted)}.daily-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:var(--r-full);font-weight:700;color:var(--accent);background:var(--accent-soft)}.daily-chip svg{width:14px;height:14px}.daily-note b{color:var(--text)}.dictation-note{color:var(--faint)}body.is-typing .daily-bar{opacity:.5}.pregame{padding:var(--s-6);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-lg);animation:sheet-in .3s var(--ease-out) both}.pregame-head{display:flex;align-items:center;gap:var(--s-4);margin-bottom:var(--s-5)}.pregame-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-md);background:linear-gradient(140deg,var(--accent),var(--accent-2));color:var(--accent-ink);box-shadow:0 8px 22px -10px var(--accent)}.pregame-icon svg{width:22px;height:22px}.pregame-title{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;line-height:1.1}.pregame-sub{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:600}.pregame-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-5)}.steps--compact{gap:var(--s-2)}.steps--compact li{padding:var(--s-3) var(--s-4) var(--s-3) var(--s-8);font-size:var(--fs-sm)}.steps--compact li:before{top:var(--s-3)}.controls{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);margin-top:var(--s-6)}.controls-row{display:flex;align-items:center;gap:var(--s-2)}#input{position:absolute;width:1px;height:1px;opacity:0;border:0;padding:0;left:-9999px}body.show-input #input{position:static;width:min(100%,440px);height:auto;opacity:1;left:auto;padding:10px 16px;text-align:center;font-family:var(--words-font);font-size:var(--fs-lg);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line-strong)}.restart{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-full);color:var(--faint);border:1px solid var(--line);transition:color var(--t-fast),background var(--t-fast),transform var(--t-fast),border-color var(--t-fast)}.restart svg{width:17px;height:17px;transition:transform var(--t-med) var(--spring)}.restart:hover{color:var(--text);background:var(--surface-2);border-color:var(--line-strong)}.restart:hover svg{transform:rotate(-180deg)}.restart:active{transform:scale(.93)}body.is-typing .restart{opacity:0;pointer-events:none}.tip{font-size:var(--fs-xs);color:var(--faint);text-align:center;min-height:18px;transition:opacity var(--t-med)}body.is-typing .tip{opacity:0}.results{position:relative;padding:22px 26px 18px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-lg);overflow:hidden auto;outline:none}.results.is-entering{animation:card-in .34s var(--ease-out) both}.results:before{content:"";position:absolute;inset:0;background:radial-gradient(700px 260px at 12% -20%,var(--accent-soft),transparent 70%);pointer-events:none}.results>*{position:relative}.results-loading{display:grid;place-items:center;min-height:220px}.spinner{width:30px;height:30px;border-radius:50%;border:2.5px solid var(--line-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}.results-body{display:flex;flex-direction:column;gap:16px}.res-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);flex-wrap:wrap}.res-title{display:flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:700;letter-spacing:-.02em;line-height:1.15}.res-title svg{width:20px;height:20px}.res-title.is-record{color:var(--warn)}.res-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.res-chip{padding:2px 9px;border-radius:99px;font-size:var(--fs-2xs);font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line)}.res-head-actions{display:flex;align-items:center;gap:4px}.res-act{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.res-act svg{width:15px;height:15px}.res-act:hover,.res-act.is-active{color:var(--text);background:var(--surface-2)}.res-next{flex-shrink:0;margin-left:6px}.res-top{display:grid;grid-template-columns:minmax(230px,280px) 1fr;gap:22px;align-items:stretch}.res-top--solo{grid-template-columns:1fr}.res-hero{display:flex;flex-direction:column;gap:3px;min-width:0}.res-hero-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.12em;color:var(--faint);font-weight:700}.res-hero-value{font-family:var(--font-display);font-size:clamp(3.6rem,7.5vw,5.6rem);font-weight:700;line-height:.92;letter-spacing:-.05em;color:var(--accent);font-variant-numeric:tabular-nums;text-shadow:0 0 40px color-mix(in srgb,var(--accent) 35%,transparent)}.res-hero-tier{font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.res-hero-tier span{color:var(--faint);font-weight:400}.res-delta{display:inline-block;width:fit-content;margin-top:2px;padding:2px 9px;border-radius:99px;font-size:var(--fs-2xs);font-weight:700}.res-delta--up{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.res-delta--down{color:var(--err);background:color-mix(in srgb,var(--err) 12%,transparent)}.res-delta--flat{color:var(--muted);background:var(--surface-2)}.res-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.res-side-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:700}.res-side-value{display:block;font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.res-side-value.is-good{color:var(--ok)}.res-side-value.is-poor{color:var(--err)}.res-percentile{margin-top:10px}.res-pct-line{font-size:var(--fs-xs);color:var(--muted);margin-bottom:5px}.res-pct-line b{color:var(--text);font-weight:700}.res-pct-bar{position:relative;height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}.res-pct-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0;transition:width .9s var(--ease-out)}.res-chart{position:relative;min-width:0;padding:12px 12px 6px;border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line)}.res-chart canvas{width:100%;height:auto}.res-chart.is-replaying canvas,.res-chart.is-replaying .res-chart-legend{visibility:hidden}.res-chart-legend{position:absolute;top:10px;right:14px;display:flex;gap:var(--s-4);font-size:var(--fs-2xs);color:var(--faint);z-index:1}.res-chart-legend span{display:inline-flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot--wpm{background:var(--accent)}.dot--raw{background:var(--muted)}.dot--err{background:var(--err)}.res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.res-cell{padding:10px 8px;background:var(--surface);text-align:center}.res-cell b{display:block;font-family:var(--font-display);font-size:var(--fs-lg);font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.res-cell b .split-ok{color:var(--ok)}.res-cell b .split-bad{color:var(--err)}.res-cell b .split-warn{color:var(--warn)}.res-cell b .split-sep{color:var(--faint);font-weight:300;padding:0 2px}.res-cell i{display:block;font-size:10px;font-style:normal;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-top:1px}.res-insight{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.res-insight-col{padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);min-width:0}.res-insight-title{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-bottom:8px}.res-insight-title svg{width:12px;height:12px}.res-words{display:flex;flex-wrap:wrap;gap:5px;max-height:64px;overflow:hidden}.res-word{display:inline-flex;align-items:baseline;gap:6px;padding:4px 9px;border-radius:7px;background:var(--surface);border:1px solid var(--line);transition:border-color var(--t-fast),transform var(--t-fast)}.res-word span{font-family:var(--words-font);font-size:var(--fs-md);color:var(--text)}.res-word small{font-size:10px;color:var(--faint);font-variant-numeric:tabular-nums}.res-word:hover{border-color:var(--accent);transform:translateY(-1px)}.res-word--bad span{color:var(--err);text-decoration:underline;text-decoration-color:var(--err);text-underline-offset:3px}.res-keys{display:flex;flex-wrap:wrap;gap:5px}.res-key{position:relative;display:grid;place-items:center;width:32px;height:32px;border-radius:7px;font-weight:800;font-size:var(--fs-sm);color:#fff;background:color-mix(in srgb,var(--err) calc(var(--heat, .5) * 70% + 25%),var(--surface-3));border:1px solid var(--line-strong);border-bottom-width:3px;transition:transform var(--t-fast)}.res-key small{position:absolute;bottom:1px;right:3px;font-size:8px;font-weight:600;opacity:.8}.res-key:hover{transform:translateY(-2px)}.res-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.res-nudge{flex:1;min-width:240px;font-size:var(--fs-sm);color:var(--muted);line-height:1.45}.res-xp{display:flex;align-items:center;gap:10px;font-size:var(--fs-xs);color:var(--muted);min-width:220px}.res-xp-level{font-weight:700;color:var(--text-2);white-space:nowrap}.res-xp-bar{flex:1;height:6px;min-width:100px;border-radius:99px;background:var(--surface-3);overflow:hidden}.res-xp-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));width:0;transition:width 1.1s var(--ease-out)}.res-xp b{color:var(--accent);font-weight:700;white-space:nowrap}.results.is-compact{padding:18px 22px 14px}.results.is-compact .results-body{gap:12px}.results.is-compact .res-hero-value{font-size:clamp(3rem,6vw,4.4rem)}.results.is-compact .res-duo{margin-top:6px}.results.is-compact .res-side-value{font-size:var(--fs-xl)}.results.is-compact .res-cell{padding:7px 6px}.results.is-compact .res-words{max-height:30px}.results.is-dense .results-body{gap:10px}.results.is-dense .res-hero-value{font-size:3rem}.results.is-dense .res-percentile,.results.is-dense .res-nudge,.results.is-dense .res-meta{display:none}.results.is-dense .res-insight-col{padding:7px 10px}.results.is-dense .res-insight-title{margin-bottom:5px}.results.is-dense .res-words{max-height:28px}.results.is-tight .res-insight,.results.is-tight .res-unlocks small{display:none}.res-unlocks{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.res-unlocks-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-right:4px}.res-unlock{--tier: var(--accent);display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 6px;border-radius:99px;font-size:var(--fs-xs);color:var(--text-2);background:color-mix(in srgb,var(--tier) 14%,var(--surface-2));border:1px solid color-mix(in srgb,var(--tier) 40%,transparent);animation:cap-pop .42s var(--spring) both}.res-unlock svg{width:14px;height:14px;padding:3px;box-sizing:content-box;border-radius:99px;color:#111;background:var(--tier)}.res-unlock b{font-weight:700}.res-unlock small{color:var(--faint);font-weight:600}.res-unlock:nth-child(3){animation-delay:80ms}.res-unlock:nth-child(4){animation-delay:.16s}.res-unlock:nth-child(5){animation-delay:.24s}.res-unlock--bronze{--tier: #c98b52}.res-unlock--silver{--tier: #cfd6e2}.res-unlock--gold{--tier: #f7d774}.res-unlock--platinum{--tier: #a8e6f5}.res-unlock--diamond{--tier: #d8b4fe}.res-unlock--level{--tier: var(--accent)}.res-unlock--more{color:var(--faint);padding-left:10px}.res-actions{display:flex;flex-wrap:wrap;gap:var(--s-2);justify-content:center}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r-md);font-size:var(--fs-md);font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast),border-color var(--t-fast)}.btn svg{width:15px;height:15px}.btn kbd{margin-left:4px}.btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--line-strong)}.btn:active{transform:scale(.97)}.btn--primary{color:var(--accent-ink);background:var(--accent);border-color:transparent;box-shadow:0 6px 18px -8px var(--accent)}.btn--primary:hover{color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 88%,#fff);border-color:transparent}.btn--primary kbd{background:#0000002e;border-color:#0003;color:inherit}.btn--quiet{background:transparent;border-color:transparent;color:var(--muted)}.btn--quiet:hover{background:var(--surface-2)}.btn--danger{color:var(--err);border-color:color-mix(in srgb,var(--err) 30%,transparent);background:color-mix(in srgb,var(--err) 8%,transparent)}.btn--danger:hover{background:color-mix(in srgb,var(--err) 15%,transparent);color:var(--err)}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.btn-ghost svg{width:14px;height:14px}.btn-ghost:hover{color:var(--text);background:var(--surface-2)}.btn-ghost:disabled{opacity:.4;cursor:default}.btn-primary{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border-radius:var(--r-md);font-size:var(--fs-md);font-weight:600;color:var(--accent-ink);background:var(--accent);box-shadow:0 4px 16px -6px var(--accent);transition:transform var(--t-fast),filter var(--t-fast)}.btn-primary svg{width:15px;height:15px}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:active{transform:scale(.97)}.res-nudge{margin-top:var(--s-4);font-size:var(--fs-sm);color:var(--muted);text-align:center}.res-nudge b{color:var(--text)}.res-nudge button{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}.res-replay{position:absolute;inset:0;z-index:2}.res-replay--solo{position:static}.replay{height:100%;display:flex;flex-direction:column;padding:12px 14px;border-radius:var(--r-lg);background:var(--surface-2);animation:fade-in var(--t-med) both}.replay-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2)}.replay-title{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.replay-title svg{width:13px;height:13px}.replay-clock{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;margin-right:auto}.replay-words{flex:1;min-height:0;font-family:var(--words-font);font-size:1.2rem;line-height:1.65;overflow-y:auto;color:var(--faint)}.rword{display:inline-block;margin-right:.45em;white-space:pre;border-radius:4px;transition:background .12s}.rword i{font-style:normal}.rword i.ok{color:var(--text)}.rword i.bad{color:var(--err)}.rword i.extra{color:var(--err);opacity:.7}.rword.is-active{background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-soft)}.rword.is-ok,.rword.is-ok i.ok{color:var(--muted)}.rword.is-bad{text-decoration:underline;text-decoration-color:var(--err);text-underline-offset:.2em}.setting-row.setting-row--stack{flex-direction:column;align-items:stretch}.sound-lab{padding:14px 0 6px;border-bottom:1px solid var(--line);transition:opacity var(--t-med)}.sound-lab.is-off{opacity:.45}.sound-family{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:start;margin-bottom:10px}.sound-family-label{padding-top:12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px}.profile-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 11px 9px;border-radius:var(--r-md);font-size:var(--fs-xs);font-weight:700;color:var(--muted);background:var(--surface-2);border:1.5px solid var(--line);transition:border-color var(--t-fast),color var(--t-fast),transform var(--t-fast),background var(--t-fast)}.profile-wave{width:100%;height:22px;fill:currentColor;opacity:.55;transition:opacity var(--t-fast)}.profile-card:hover{color:var(--text);transform:translateY(-2px)}.profile-card:hover .profile-wave{opacity:.85}.profile-card.is-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.profile-card.is-active .profile-wave{opacity:1}.profile-card{position:relative;text-align:left}.profile-name{line-height:1.25}.profile-tags{display:flex;flex-wrap:wrap;gap:4px;min-height:14px}.profile-tags i{font-style:normal;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 5px;border-radius:4px;color:var(--faint);background:var(--surface-3)}.profile-card.is-active .profile-tags i{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.profile-card.is-loading:after{content:"";position:absolute;top:9px;right:9px;width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--accent);animation:spin .7s linear infinite}.sound-credit{margin:-4px 0 12px;font-size:var(--fs-2xs);color:var(--faint)}.sound-credit a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}.sound-desc{margin:6px 0 12px;font-size:var(--fs-sm);color:var(--muted);line-height:1.5}.sound-desc b{color:var(--text)}.sound-try{display:flex;gap:8px}.sound-try-input{flex:1;font-family:var(--words-font);font-size:var(--fs-base)}.range-wrap{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-2xs);color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-weight:700}@media (max-width: 640px){.sound-family{grid-template-columns:1fr;gap:4px}.sound-family-label{padding-top:0}.sound-try{flex-direction:column}}.record-preview{font-weight:500;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:var(--s-5);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(10px) saturate(140%);animation:fade-in .16s ease both;overflow-y:auto}.sheet-panel{position:relative;width:min(100%,640px);max-height:min(88vh,900px);overflow-y:auto;padding:var(--s-7);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);animation:sheet-in .28s var(--ease-out) both}.sheet-panel--wide{width:min(100%,1020px)}.sheet-panel--slim{width:min(100%,460px)}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-6)}.sheet-title{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em}.sheet-sub{font-size:var(--fs-sm);color:var(--muted);margin-top:3px;max-width:60ch}.sheet-close{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-md);color:var(--muted);transition:color var(--t-fast),background var(--t-fast);flex-shrink:0}.sheet-close svg{width:18px;height:18px}.sheet-close:hover{color:var(--text);background:var(--surface-2)}.tabs{display:flex;gap:3px;padding:3px;margin-bottom:var(--s-6);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}.tab{flex:1;padding:8px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.tab:hover{color:var(--text)}.tab.is-active{color:var(--text);background:var(--surface);box-shadow:var(--sh-sm)}.panel-section{margin-bottom:var(--s-7)}.panel-section:last-child{margin-bottom:0}.panel-section-head{display:flex;align-items:center;gap:9px;margin-bottom:var(--s-4)}.panel-section-head svg{width:16px;height:16px;color:var(--accent)}.panel-section-title{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em}.panel-section-note{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--s-4)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:0}.setting-label{font-size:var(--fs-md);font-weight:500}.setting-desc{font-size:var(--fs-xs);color:var(--faint);margin-top:1px}.seg-ctl{display:inline-flex;gap:2px;padding:3px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--line)}.seg-btn{padding:5px 11px;border-radius:6px;font-size:var(--fs-xs);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast);white-space:nowrap}.seg-btn:hover{color:var(--text)}.seg-btn.is-active{color:var(--text);background:var(--surface);box-shadow:var(--sh-sm)}.seg-ctl--sm .seg-btn{padding:4px 9px;font-size:var(--fs-2xs)}.switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1}.switch span{position:absolute;inset:0;border-radius:99px;background:var(--surface-3);border:1px solid var(--line-strong);transition:background var(--t-med),border-color var(--t-med)}.switch span:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform var(--t-med) var(--spring),background var(--t-med)}.switch input:checked+span{background:var(--accent);border-color:transparent}.switch input:checked+span:after{transform:translate(18px);background:#fff}.range{width:140px;accent-color:var(--accent)}.field{width:100%;padding:10px 13px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line-strong);color:var(--text);font-size:var(--fs-md);transition:border-color var(--t-fast)}.field:focus{outline:none;border-color:var(--accent)}textarea.field{min-height:160px;resize:vertical;font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.6}.empty-note{padding:var(--s-7) var(--s-5);text-align:center;color:var(--muted);font-size:var(--fs-sm);border:1px dashed var(--line-strong);border-radius:var(--r-md)}.mode-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--s-3);width:100%}.mode-card{position:relative;display:flex;flex-direction:column;gap:5px;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);text-align:left;overflow:hidden;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast),box-shadow var(--t-med)}.mode-card:before{content:"";position:absolute;inset:0;background:radial-gradient(320px 140px at 20% 0%,var(--accent-soft),transparent 70%);opacity:0;transition:opacity var(--t-med)}.mode-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));box-shadow:var(--sh-md)}.mode-card:hover:before{opacity:1}.mode-card.is-active{border-color:var(--accent)}.mode-card.is-active:before{opacity:1}.mode-card>*{position:relative}.mode-card-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);margin-bottom:3px}.mode-card-icon svg{width:17px;height:17px}.mode-card-name{font-size:var(--fs-base);font-weight:700}.mode-card-desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.5}.mode-card-tag{position:absolute;top:var(--s-4);right:var(--s-4);padding:2px 8px;border-radius:99px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--accent-soft);color:var(--accent)}#settingsSheet .sheet-panel{width:min(100%,860px);padding-top:var(--s-6)}.settings-top{position:sticky;top:calc(-1 * var(--s-6));z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin:calc(-1 * var(--s-2)) calc(-1 * var(--s-7)) var(--s-6);padding:var(--s-3) var(--s-7);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.settings-tabs{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}.settings-tab{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.settings-tab svg{width:14px;height:14px}.settings-tab:hover{color:var(--text)}.settings-tab.is-active{color:var(--text);background:var(--surface);box-shadow:var(--sh-sm)}.settings-tab.is-active svg{color:var(--accent)}.settings-search{position:relative;flex:1;min-width:160px}.settings-search svg{position:absolute;left:11px;top:50%;width:15px;height:15px;transform:translateY(-50%);color:var(--faint);pointer-events:none}.settings-search .field{padding:8px 12px 8px 34px;font-size:var(--fs-sm)}.settings-pane-label{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin:var(--s-2) 0 var(--s-3)}.panel-empty{padding:var(--s-6) 0;text-align:center;font-size:var(--fs-sm);color:var(--muted)}.num-pref{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--faint)}.field--num{width:84px;padding:7px 10px;font-variant-numeric:tabular-nums;text-align:right}.theme-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}.theme-now{display:flex;align-items:center;gap:12px}.theme-now b{display:block;font-size:var(--fs-lg);letter-spacing:-.01em}.theme-now-label{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.theme-now-swatch{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:46px;height:46px;border-radius:14px;border:1px solid;box-shadow:var(--sh-sm)}.theme-now-swatch i{width:9px;height:9px;border-radius:50%}.theme-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.theme-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.theme-search{flex:1;min-width:160px;padding:8px 12px;font-size:var(--fs-sm)}.tgallery{max-height:min(46vh,440px);overflow-y:auto;margin:0 -6px var(--s-5);padding:2px 6px}.tgroup+.tgroup{margin-top:var(--s-4)}.tgroup-label{display:block;margin-bottom:7px;font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:7px}.tcard{position:relative;border-radius:12px;background:var(--tc-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc-text) 14%,transparent);transition:transform var(--t-fast),box-shadow var(--t-fast)}.tcard:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tc-text) 26%,transparent),0 8px 20px -10px #00000073}.tcard.is-active{box-shadow:0 0 0 2px var(--tc-main),0 0 0 4px color-mix(in srgb,var(--tc-main) 30%,transparent)}.tcard-pick{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:44px;padding:0 34px 0 13px;border-radius:12px;text-align:left}.tcard-name{font-size:var(--fs-sm);font-weight:600;color:var(--tc-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcard-dots{display:inline-flex;gap:3px;flex-shrink:0}.tcard-dots i{width:8px;height:8px;border-radius:50%;background:var(--tc-main)}.tcard-dots i:nth-child(2){background:var(--tc-alt)}.tcard-dots i:nth-child(3){background:var(--tc-sub)}.tcard-fav{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:24px;height:24px;border-radius:7px;color:var(--tc-sub);opacity:0;transition:opacity var(--t-fast),color var(--t-fast)}.tcard-fav svg{width:13px;height:13px}.tcard:hover .tcard-fav,.tcard-fav.is-on,.tcard-fav:focus-visible{opacity:1}.tcard-fav.is-on{color:var(--tc-main)}.tcard-fav.is-on svg{fill:currentColor}@media (hover: none){.tcard-fav{opacity:.7}}.theme-editor{margin-bottom:var(--s-5);padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line-strong);animation:rise-in var(--t-med) var(--ease-out) both}.theme-editor-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.theme-editor-name{max-width:260px;font-weight:600}.theme-editor-hint{font-size:var(--fs-xs);color:var(--faint)}.theme-editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:var(--s-4)}.swatch-input{display:flex;align-items:center;gap:9px;padding:6px 10px 6px 6px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-xs);font-weight:600;color:var(--text-2);cursor:pointer}.swatch-input input{width:30px;height:30px;padding:0;border:0;border-radius:8px;background:none;cursor:pointer}.swatch-input input::-webkit-color-swatch-wrapper{padding:0}.swatch-input input::-webkit-color-swatch{border:1px solid var(--line-strong);border-radius:8px}.swatch-input input::-moz-color-swatch{border:1px solid var(--line-strong);border-radius:8px}.theme-editor-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.font-preview{margin-bottom:var(--s-4);padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line);font-size:1.45rem;line-height:1.4;color:var(--text)}.font-group+.font-group{margin-top:var(--s-3)}.font-grid{display:flex;flex-wrap:wrap;gap:6px}.font-chip{height:32px;padding:0 12px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);transition:color var(--t-fast),border-color var(--t-fast)}.font-chip:hover{color:var(--text);border-color:var(--line-strong)}.font-chip.is-active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}.fx-card{display:flex;flex-direction:column;gap:7px;padding:6px 6px 9px;border-radius:var(--r-md);background:var(--surface-2);border:1.5px solid var(--line);font-size:var(--fs-xs);font-weight:600;color:var(--text-2);transition:border-color var(--t-fast),transform var(--t-fast)}.fx-card:hover{transform:translateY(-2px);border-color:var(--line-strong)}.fx-card.is-active{border-color:var(--accent);color:var(--accent)}.fx-thumb{height:54px;border-radius:8px;background-color:var(--bg);background-size:cover;position:relative;overflow:hidden}.fx-thumb--aurora{background-image:radial-gradient(60% 80% at 30% 0%,color-mix(in srgb,var(--accent) 45%,transparent),transparent),radial-gradient(50% 70% at 85% 20%,color-mix(in srgb,var(--accent-2) 35%,transparent),transparent)}.fx-thumb--particles{background-image:radial-gradient(circle at 20% 30%,var(--accent) 1.5px,transparent 2px),radial-gradient(circle at 60% 65%,var(--accent-2) 1.5px,transparent 2px),radial-gradient(circle at 80% 25%,var(--text) 1px,transparent 1.5px),radial-gradient(circle at 40% 80%,var(--muted) 1px,transparent 1.5px)}.fx-thumb--starfield{background-image:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 40%),repeating-conic-gradient(from 0deg at 50% 50%,transparent 0deg 8deg,color-mix(in srgb,var(--text) 18%,transparent) 8deg 9deg)}.fx-thumb--grid{background-image:linear-gradient(transparent 55%,color-mix(in srgb,var(--accent) 25%,transparent)),repeating-linear-gradient(90deg,color-mix(in srgb,var(--accent) 40%,transparent) 0 1px,transparent 1px 14px),repeating-linear-gradient(0deg,color-mix(in srgb,var(--accent) 40%,transparent) 0 1px,transparent 1px 10px);background-size:100% 100%,100% 50%,100% 50%;background-position:0 0,0 100%,0 100%;background-repeat:no-repeat}.fx-thumb--waves{background-image:radial-gradient(120% 60% at 50% 120%,color-mix(in srgb,var(--accent) 40%,transparent),transparent 70%),radial-gradient(120% 50% at 30% 130%,color-mix(in srgb,var(--accent-2) 35%,transparent),transparent 70%)}.fx-thumb--bokeh{background-image:radial-gradient(circle at 25% 60%,color-mix(in srgb,var(--accent) 55%,transparent) 0 7px,transparent 9px),radial-gradient(circle at 65% 35%,color-mix(in srgb,var(--accent-2) 45%,transparent) 0 10px,transparent 12px),radial-gradient(circle at 80% 75%,color-mix(in srgb,var(--warn) 40%,transparent) 0 5px,transparent 7px)}.fx-thumb--rain{background-image:repeating-linear-gradient(90deg,transparent 0 9px,color-mix(in srgb,var(--accent) 50%,transparent) 9px 10px,transparent 10px 17px);-webkit-mask-image:linear-gradient(transparent,#000 40%,transparent);mask-image:linear-gradient(transparent,#000 40%,transparent)}@media (max-width: 640px){.settings-top{margin-left:calc(-1 * var(--s-5));margin-right:calc(-1 * var(--s-5));padding:var(--s-3) var(--s-5)}.settings-tab span{display:none}.settings-tab{padding:0 10px}.setting-row{flex-wrap:wrap}.tgrid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}}html[data-caret=outline] .caret{width:.56em;background:transparent;box-shadow:inset 0 0 0 2px var(--caret);border-radius:3px}html[data-caret=off] .caret{visibility:hidden}.caret{background:var(--caret);box-shadow:0 0 12px color-mix(in srgb,var(--caret) 70%,transparent)}html[data-caret=block] .caret{background:var(--caret)}html[data-caret-smooth=off] .caret{transition:opacity var(--t-fast)}html[data-caret-smooth=fast] .caret{transition:transform 45ms linear,height 60ms,opacity var(--t-fast)}html[data-caret-smooth=slow] .caret{transition:transform .15s var(--ease-out),height .12s,opacity var(--t-fast)}html[data-caret-blink=off] body.is-idle .caret.is-on{animation:none}html[data-align=center] .line{justify-content:center}html[data-align=center] .words.is-tape>.line{justify-content:flex-start}body.flip-colors .word{color:var(--text)}body.flip-colors .word.is-done,body.flip-colors .word.is-done .ch--ok{color:var(--faint)}body.flip-colors .word.is-current .ch--pending{color:var(--text);opacity:1}body.flip-colors .word.is-current .ch--ok{color:var(--faint)}body.colorful .ch--ok,body.colorful .word.is-done .ch--ok{color:var(--accent)}body.colorful .word.is-done .ch--ok{opacity:.7}.pace-caret{position:absolute;left:0;top:0;width:2.5px;border-radius:2px;background:var(--muted);opacity:0;z-index:1;pointer-events:none;will-change:transform;transition:transform .1s linear,height 90ms,opacity var(--t-med)}.pace-caret.is-on{opacity:.55}html[data-timer=mini] .hud{min-height:34px;margin-bottom:var(--s-2)}html[data-timer=mini] .hud-value{font-size:1.6rem}html[data-timer=mini] .hud-stat b{font-size:var(--fs-md)}html[data-timer=bar] body.surface-typer .hud,html[data-timer=off] body.surface-typer .hud{visibility:hidden;height:0;min-height:0;margin:0}html[data-timer=bar] .track{height:4px;opacity:1}html[data-timer=off] body.surface-typer .track{visibility:hidden}body.no-focus-mode.is-typing .bar,body.no-focus-mode.is-typing .deck{opacity:1;transform:none;pointer-events:auto}body.no-tips .tip{display:none}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:var(--s-3);margin-bottom:var(--s-6)}.stat-tile{padding:var(--s-4);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}.stat-tile b{display:block;font-size:var(--fs-2xl);font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.15}.stat-tile i{display:block;font-style:normal;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-top:3px}.stat-tile small{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:5px}.stat-tile--accent b{color:var(--accent)}.hm-toolbar{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.hm-legend{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--faint)}.hm-scale{display:flex;width:96px;height:7px;border-radius:99px;overflow:hidden}.hm-scale i{flex:1}.keyboard{display:flex;flex-direction:column;gap:6px;align-items:center;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line)}.kb-row{display:flex;gap:6px}.kb-key{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:700;color:var(--text);background:var(--surface-3);border:1px solid var(--line-strong);cursor:pointer;transition:transform var(--t-fast) var(--spring),box-shadow var(--t-fast),filter var(--t-fast);text-transform:uppercase}.kb-key:hover{transform:translateY(-3px) scale(1.05);box-shadow:var(--sh-md);z-index:2;filter:brightness(1.12)}.kb-key:active{transform:translateY(0) scale(.97)}.kb-key--wide{width:200px}.kb-key--dead{cursor:default;opacity:.45}.kb-key--dead:hover{transform:none;box-shadow:none;filter:none}.kb-key-sub{position:absolute;bottom:3px;right:4px;font-size:8.5px;font-weight:600;opacity:.72;letter-spacing:-.02em}.kb-key.is-worst{animation:key-pulse 1.8s ease-in-out infinite}.kb-key.is-pressed{transform:scale(.9);filter:brightness(1.4)}.hm-hint{font-size:var(--fs-xs);color:var(--faint);text-align:center;margin-top:var(--s-3)}.key-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.key-table th{text-align:left;padding:8px 10px;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:600;border-bottom:1px solid var(--line)}.key-table td{padding:8px 10px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.key-table tr:last-child td{border-bottom:0}.key-table tbody tr{transition:background var(--t-fast);cursor:pointer}.key-table tbody tr:hover{background:var(--surface-2)}.key-table .k-key{font-weight:800;text-transform:uppercase}.key-table .k-bar{width:84px}.key-table .k-bar span{display:block;height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}.key-table .k-bar i{display:block;height:100%;border-radius:99px}.chart-block{margin-bottom:var(--s-5)}.chart-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:600;margin-bottom:8px}.chart-canvas{width:100%;height:150px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}.cal{display:grid;grid-template-columns:repeat(auto-fill,13px);gap:3px}.cal-cell{width:13px;height:13px;border-radius:3px;background:var(--surface-3);transition:transform var(--t-fast)}.cal-cell:hover{transform:scale(1.35)}.record-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.record-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--s-4);align-items:center;padding:11px var(--s-4);background:var(--surface);font-size:var(--fs-sm)}.record-row b{font-weight:600}.record-row .rec-score{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.record-row .rec-date{font-size:var(--fs-xs);color:var(--faint)}.award-meta-sub{font-size:var(--fs-sm);color:var(--muted);margin-bottom:9px}.award-xp-bar{height:8px;border-radius:99px;background:var(--surface-3);overflow:hidden}.award-xp-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .9s var(--ease-out)}.award-filters{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:var(--s-5)}.award-filter{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);transition:all var(--t-fast)}.award-filter svg{width:13px;height:13px}.award-filter:hover{color:var(--text)}.award-filter.is-active{color:var(--accent-ink);background:var(--accent);border-color:transparent}.award-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:var(--s-3)}.award{position:relative;display:grid;grid-template-columns:46px 1fr;gap:var(--s-3);align-items:start;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line);overflow:hidden;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast)}.award:hover{transform:translateY(-2px)}.award.is-locked{opacity:.62}.award-medal{position:relative;display:grid;place-items:center;width:46px;height:46px;border-radius:13px;color:#fff;background:var(--surface-3);flex-shrink:0}.award-medal svg{width:21px;height:21px}.award.is-locked .award-medal{background:var(--surface-3);color:var(--faint)}.award--bronze .award-medal{background:linear-gradient(140deg,#c98b52,#8a5a2b);box-shadow:0 5px 16px -7px #c98b52}.award--silver .award-medal{background:linear-gradient(140deg,#cfd6e2,#8d96a8);box-shadow:0 5px 16px -7px #cfd6e2;color:#23262e}.award--gold .award-medal{background:linear-gradient(140deg,#f7d774,#c99a2e);box-shadow:0 5px 18px -7px #f7d774;color:#3a2c05}.award--platinum .award-medal{background:linear-gradient(140deg,#a8e6f5,#5aa9c9);box-shadow:0 5px 18px -7px #a8e6f5;color:#06283a}.award--diamond .award-medal{background:linear-gradient(140deg,#c4b5fd,#ec4899 60%,#38bdf8);box-shadow:0 6px 22px -7px #c4b5fd;color:#fff}.award.is-locked.award--bronze .award-medal,.award.is-locked.award--silver .award-medal,.award.is-locked.award--gold .award-medal,.award.is-locked.award--platinum .award-medal,.award.is-locked.award--diamond .award-medal{background:var(--surface-3);box-shadow:none;color:var(--faint)}.award:not(.is-locked):after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.14) 50%,transparent 60%);transform:translate(-100%);pointer-events:none}.award:not(.is-locked):hover:after{animation:sheen .9s ease-out}.award-name{font-size:var(--fs-md);font-weight:700;line-height:1.3}.award-desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.45;margin-top:2px}.award-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-top:8px}.award-tier{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}.award--bronze .award-tier{color:#c98b52}.award--silver .award-tier{color:#a9b2c2}.award--gold .award-tier{color:#dfb84c}.award--platinum .award-tier{color:#7cc7de}.award--diamond .award-tier{color:#c4b5fd}.award-xp{font-size:var(--fs-2xs);font-weight:700;color:var(--accent)}.award-prog{margin-top:7px}.award-prog-bar{height:4px;border-radius:99px;background:var(--surface-3);overflow:hidden}.award-prog-bar i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width var(--t-slow) var(--ease-out)}.award-prog-text{font-size:var(--fs-2xs);color:var(--faint);margin-top:3px;font-variant-numeric:tabular-nums}.trainer{display:flex;flex-direction:column;gap:var(--s-5)}.trainer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4)}.trainer-head-actions{display:flex;align-items:center;gap:var(--s-3)}.trainer-title{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em}.trainer-sub{font-size:var(--fs-sm);color:var(--muted);max-width:62ch;margin-top:3px}.trainer-foot{display:flex;flex-direction:column;gap:var(--s-2);align-items:flex-start;padding-top:var(--s-4);border-top:1px solid var(--line)}.trainer-note{font-size:var(--fs-xs);color:var(--faint);max-width:68ch}.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:var(--s-3)}.deck-card{display:flex;flex-direction:column;gap:7px;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line);text-align:left;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast),box-shadow var(--t-med)}.deck-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:var(--sh-md)}.deck-card-top{display:flex;align-items:center;justify-content:space-between}.deck-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent)}.deck-card-icon svg{width:17px;height:17px}.deck-card-level{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}.deck-card-name{font-size:var(--fs-base);font-weight:700}.deck-card-blurb{font-size:var(--fs-xs);color:var(--muted);line-height:1.5;flex:1}.deck-card-meter{display:block;height:4px;border-radius:99px;background:var(--surface-3);overflow:hidden}.deck-card-meter span{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width var(--t-slow)}.deck-card-foot{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-2xs);font-weight:600;color:var(--faint)}.deck-card-foot svg{width:13px;height:13px;transition:transform var(--t-fast)}.deck-card:hover .deck-card-foot svg{transform:translate(3px);color:var(--accent)}.drill-progress{flex:1;display:flex;align-items:center;gap:var(--s-3);max-width:320px}.drill-count{font-size:var(--fs-sm);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.drill-count span{color:var(--faint);font-weight:400}.drill-bar{flex:1;height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}.drill-bar span{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width var(--t-med)}.drill-score{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}.drill-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--s-6);align-items:start}@media (max-width: 860px){.drill-body{grid-template-columns:1fr}}.drill-kicker{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:6px}.drill-task{font-size:clamp(1.25rem,2.6vw,1.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.25;margin-bottom:var(--s-5)}.drill-answer{min-height:74px;margin-bottom:var(--s-4)}.drill-hint{font-size:var(--fs-sm);color:var(--muted);margin-top:10px}.drill-hint--muted{color:var(--faint)}.keycap-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.keycap{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 11px;border-radius:var(--r-sm);font-size:var(--fs-md);font-weight:700;color:var(--text);background:var(--surface-2);border:1px solid var(--line-strong);border-bottom-width:3px;box-shadow:var(--sh-sm)}.keycap--lit{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);animation:cap-pop .32s var(--spring) both}.keycap--masked{color:var(--faint);background:var(--surface-2);border-style:dashed}.keycap-plus{color:var(--faint);font-size:var(--fs-sm)}.keycap-row--tiny .keycap{min-width:26px;height:26px;padding:0 7px;font-size:var(--fs-2xs);border-bottom-width:2px}.mod-strip{display:flex;gap:7px;margin-bottom:var(--s-4);flex-wrap:wrap}.mod-chip{padding:5px 12px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;color:var(--faint);background:var(--surface-2);border:1px solid var(--line);transition:all var(--t-fast)}.mod-chip.is-down{color:var(--accent-ink);background:var(--accent);border-color:transparent;transform:translateY(1px) scale(1.04)}.drill-received{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--faint);margin-bottom:var(--s-3)}.drill-received code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);padding:2px 8px;border-radius:5px;min-width:60px;text-align:center}.drill-feedback{min-height:52px;display:flex;flex-direction:column;gap:4px;margin-bottom:var(--s-4)}.drill-verdict{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-md);font-weight:700}.drill-verdict svg{width:16px;height:16px}.drill-verdict--ok{color:var(--ok)}.drill-verdict--no{color:var(--err)}.drill-verdict--tip{color:var(--warn)}.drill-note{font-size:var(--fs-sm);color:var(--muted)}.drill-note code{font-family:var(--font-mono);font-size:.92em;color:var(--text-2)}.drill-note--idle{color:var(--faint)}.drill-actions{display:flex;gap:var(--s-2)}.drill-sim{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line-strong);box-shadow:var(--sh-md)}.drill-sim-cap{font-size:var(--fs-xs);color:var(--faint);text-align:center;margin-top:9px}.trainer--drill.is-correct .drill-sim{animation:sim-flash .48s ease-out}.trainer--drill.is-wrong .drill-sim{animation:shake .3s cubic-bezier(.36,.07,.19,.97)}.sim-app{position:relative;background:var(--surface-2);font-size:12.5px;min-height:268px;display:flex;flex-direction:column}.sim-titlebar{display:flex;align-items:center;gap:9px;padding:8px 11px;background:var(--surface-3);border-bottom:1px solid var(--line)}.sim-titlebar--tabs{gap:5px}.sim-dots{display:flex;gap:5px}.sim-dots i{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}.sim-dots i:first-child{background:#ff5f57}.sim-dots i:nth-child(2){background:#febc2e}.sim-dots i:nth-child(3){background:#28c840}.sim-tab{position:relative;padding:3px 11px;border-radius:6px;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--surface-2);white-space:nowrap}.sim-tab.is-active{color:var(--text);background:var(--surface)}.sim-tab.is-dirty:after{content:"•";margin-left:6px;color:var(--accent)}.sim-body{display:flex;flex:1;min-height:0}.sim-sidebar{width:108px;padding:9px 8px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px;background:var(--surface-2)}.sim-file{padding:3px 7px;border-radius:5px;font-size:11px;color:var(--muted)}.sim-file.is-active{color:var(--text);background:var(--surface-3)}.sim-code{flex:1;padding:9px 0;font-family:var(--font-mono);line-height:1.75;overflow:hidden}.sim-line{display:flex;gap:10px;padding:0 12px;transition:background var(--t-fast)}.sim-line.is-active{background:color-mix(in srgb,var(--accent) 8%,transparent)}.sim-line.is-match code{background:color-mix(in srgb,var(--warn) 22%,transparent);border-radius:3px}.sim-line.has-cursor:after{content:"";width:2px;background:var(--accent-2);animation:caret-blink 1s steps(1) infinite}.sim-gutter{width:18px;text-align:right;color:var(--faint);font-size:11px;user-select:none;flex-shrink:0}.sim-line code{color:var(--text-2);white-space:pre;font-family:inherit}.sim-sel{background:color-mix(in srgb,var(--accent) 32%,transparent);border-radius:3px;padding:1px 0}.sim-mark.is-bold{font-weight:800}.sim-mark.is-italic{font-style:italic}.sim-mark.is-underline{text-decoration:underline;text-underline-offset:2px}.sim-caret{display:inline-block;width:2px;height:1.05em;background:var(--accent);vertical-align:text-bottom;animation:caret-blink 1s steps(1) infinite}.sim-terminal-strip{margin-top:9px;padding:8px 12px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:11.5px;color:var(--muted);animation:rise-in var(--t-med) var(--ease-out) both}.sim-prompt{color:var(--ok)}.sim-overlay{position:absolute;top:42px;left:50%;translate:-50% 0;width:min(84%,330px);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);overflow:hidden;animation:sheet-in .2s var(--ease-out) both;z-index:5}.sim-overlay-bar{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600}.sim-overlay-bar svg{width:13px;height:13px;color:var(--muted)}.sim-overlay-row{padding:7px 12px;font-size:11.5px;color:var(--muted);border-bottom:1px solid var(--line)}.sim-overlay-row:last-child{border-bottom:0}.sim-toast{position:absolute;bottom:12px;left:50%;translate:-50% 0;padding:6px 14px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--surface-3);border:1px solid var(--line-strong);animation:toast-pop .3s var(--spring) both;z-index:6}.sim-toast--ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.sim-toast--warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.sim-clipboard{position:absolute;top:44px;right:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:99px;font-size:10.5px;font-family:var(--font-mono);color:var(--muted);background:var(--surface-3);border:1px solid var(--line);animation:rise-in var(--t-med) var(--ease-out) both}.sim-clipboard svg{width:11px;height:11px}.sim-urlbar{display:flex;align-items:center;gap:9px;padding:8px 12px;border-bottom:1px solid var(--line)}.sim-urlbar svg{width:14px;height:14px;color:var(--muted);flex-shrink:0}.sim-urlbar svg.is-off{opacity:.3}.sim-urlbar svg.is-on{color:var(--warn);fill:var(--warn)}.sim-urlbar svg.is-spinning{animation:spin .8s linear infinite}.sim-url{flex:1;padding:4px 11px;border-radius:99px;font-size:11.5px;color:var(--muted);background:var(--surface-3)}.sim-page{flex:1;padding:var(--s-4);overflow:hidden}.sim-page-inner{transform:scale(var(--sim-zoom, 1));transform-origin:top left;transition:transform var(--t-med) var(--ease-out)}.sim-page-inner h4{font-size:14px;margin-bottom:6px}.sim-page-inner p{font-size:11.5px;color:var(--muted);line-height:1.6;margin-bottom:6px}.sim-dim{color:var(--faint)!important}.sim-app--browser.is-loading .sim-page{opacity:.4;transition:opacity var(--t-med)}.sim-formula{display:flex;align-items:center;gap:10px;padding:7px 11px;border-bottom:1px solid var(--line);font-size:11.5px;font-family:var(--font-mono)}.sim-cellref{min-width:34px;padding:2px 7px;border-radius:5px;background:var(--surface-3);font-weight:700}.sim-fx{color:var(--faint);font-style:italic}.sim-grid{flex:1;padding:6px;overflow:auto}.sim-row{display:flex}.sim-cell{flex:1;min-width:62px;padding:5px 8px;font-size:11.5px;border:1px solid var(--line);margin:-.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sim-cell--head{flex:0 0 34px;min-width:34px;text-align:center;color:var(--faint);background:var(--surface-3);font-weight:600}.sim-cell--corner{flex:0 0 34px;min-width:34px;background:var(--surface-3)}.sim-cell.is-bold{font-weight:700;color:var(--text)}.sim-cell.is-range{background:color-mix(in srgb,var(--accent) 16%,transparent)}.sim-cell.is-cursor{outline:2px solid var(--accent);outline-offset:-2px;z-index:2;position:relative}.sim-shell{flex:1;padding:11px 13px;font-family:var(--font-mono);font-size:11.5px;line-height:1.75;overflow:hidden}.sim-shell-line{white-space:pre-wrap;word-break:break-all;color:var(--text-2)}.sim-search{color:var(--warn)}.sim-killring{display:inline-flex;align-items:center;gap:6px;margin-top:9px;padding:4px 10px;border-radius:99px;font-size:10.5px;color:var(--muted);background:var(--surface-3)}.sim-killring svg{width:11px;height:11px}.sim-app--desktop{padding:0}.sim-desktop-bg{position:relative;flex:1;min-height:268px;background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 30%,var(--surface-3)),var(--surface-3));padding:14px}.sim-window{position:absolute;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);overflow:hidden;transition:all .34s var(--ease-out)}.sim-window--center{inset:16% 18%}.sim-window--left{inset:6% 51% 6% 4%}.sim-window--right{inset:6% 4% 6% 51%}.sim-window--full{inset:2%}.sim-window--min{inset:96% 44% 1%;opacity:.35}.sim-window-body{padding:11px;font-size:11.5px;color:var(--muted);line-height:1.6}.sim-app--desktop.is-flash .sim-desktop-bg:after{content:"";position:absolute;inset:0;background:#fff;animation:cam-flash .42s ease-out both}.sim-switcher,.sim-emoji,.sim-spotlight,.sim-lock{position:absolute;left:50%;top:50%;translate:-50% -50%;display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:var(--r-md);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line-strong);font-size:12px;color:var(--text-2);animation:sheet-in .2s var(--ease-out) both}.sim-switcher span.is-active{color:var(--accent);font-weight:700}.sim-lock{flex-direction:column;inset:0;translate:0;border-radius:0}.sim-lock svg,.sim-spotlight svg{width:16px;height:16px}.sc-result-hero{text-align:center;padding:var(--s-6) 0}.sc-result-kicker{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.sc-result-score{font-size:clamp(3rem,8vw,4.5rem);font-weight:200;letter-spacing:-.04em;line-height:1.05;color:var(--accent)}.sc-result-score small{font-size:.35em;font-weight:500}.sc-result-grade{font-size:var(--fs-lg);font-weight:600}.sc-result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin-bottom:var(--s-5)}.sc-stat{padding:var(--s-4);background:var(--surface-2);text-align:center}.sc-stat-value{display:block;font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums}.sc-stat-label{display:block;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}.sc-result-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin-bottom:var(--s-5)}.sc-result-row{display:grid;grid-template-columns:18px 1fr auto auto;gap:var(--s-3);align-items:center;padding:9px var(--s-4);background:var(--surface);font-size:var(--fs-sm)}.sc-result-row svg{width:15px;height:15px;color:var(--ok)}.sc-result-row.is-missed svg{color:var(--err)}.sc-result-name{color:var(--text-2)}.sc-result-time{font-size:var(--fs-xs);color:var(--faint);font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.sc-result-actions{display:flex;gap:var(--s-2);justify-content:center}.ref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s-5)}.ref-block-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:700;margin-bottom:var(--s-3)}.ref-block-title svg{width:15px;height:15px;color:var(--accent)}.ref-list{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.ref-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:8px var(--s-3);background:var(--surface-2);font-size:var(--fs-xs)}.ref-name{color:var(--text-2);flex:1;min-width:0}.ref-row .keycap-row--tiny{flex-wrap:nowrap;flex-shrink:0}.ref-row.is-reserved{opacity:.7}.ref-tag{margin-left:6px;padding:1px 6px;border-radius:99px;font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}body.trainer-open{overflow:hidden}.palette{position:fixed;inset:0;z-index:300;display:flex;justify-content:center;align-items:flex-start;padding:14vh var(--s-5) var(--s-5);background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(8px);animation:fade-in .14s ease both}.palette-panel{width:min(100%,580px);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);overflow:hidden;animation:sheet-in .22s var(--ease-out) both}.palette-input{display:flex;align-items:center;gap:11px;padding:var(--s-4);border-bottom:1px solid var(--line)}.palette-input svg{width:17px;height:17px;color:var(--muted)}.palette-input input{flex:1;background:none;border:0;font-size:var(--fs-lg);outline:none}.palette-input input::placeholder{color:var(--faint)}.palette-list{max-height:52vh;overflow-y:auto;padding:var(--s-2)}.palette-item{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:9px var(--s-3);border-radius:var(--r-sm);text-align:left;transition:background var(--t-fast)}.palette-item svg{width:16px;height:16px;color:var(--muted);flex-shrink:0}.palette-item.is-cursor{background:var(--accent-soft)}.palette-item.is-cursor svg{color:var(--accent)}.palette-item-text{flex:1;min-width:0}.palette-item-name{font-size:var(--fs-md);font-weight:600}.palette-item-desc{font-size:var(--fs-xs);color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-group{padding:var(--s-3) var(--s-3) 5px;font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--faint)}.palette-empty{padding:var(--s-6);text-align:center;color:var(--faint);font-size:var(--fs-sm)}.toasts{position:fixed;bottom:var(--s-5);left:50%;translate:-50% 0;z-index:400;display:flex;flex-direction:column;gap:var(--s-2);align-items:center;pointer-events:none}.toast{display:inline-flex;align-items:center;gap:9px;padding:10px 18px;border-radius:var(--r-full);font-size:var(--fs-md);font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:var(--sh-md);animation:toast-pop .32s var(--spring) both;pointer-events:auto}.toast svg{width:16px;height:16px}.toast--ok{color:var(--ok)}.toast--err{color:var(--err)}.toast.is-out{animation:toast-out .26s ease both}.unlock-feed{position:fixed;bottom:var(--s-5);right:var(--s-5);z-index:420;display:flex;flex-direction:column-reverse;gap:var(--s-2);pointer-events:none;width:min(320px,calc(100vw - 32px))}.unlock-feed .unlock-card{width:100%}.unlock-card{position:relative;display:grid;grid-template-columns:54px 1fr auto;gap:var(--s-3);align-items:center;width:min(92vw,372px);padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);overflow:hidden;opacity:0;transform:translate(120%);transition:opacity var(--t-med),transform .48s var(--spring)}.unlock-card.is-in{opacity:1;transform:translate(0)}.unlock-card.is-out{opacity:0;transform:translate(120%);transition:opacity .3s,transform .3s ease-in}.unlock-card-glow{position:absolute;inset:-40% -10% auto;height:160%;background:radial-gradient(closest-side,var(--accent-soft),transparent);animation:glow-drift 3.2s ease-in-out infinite}.unlock-card>*:not(.unlock-card-glow){position:relative}.unlock-card-medal{position:relative;display:grid;place-items:center;width:54px;height:54px;border-radius:15px;color:#fff}.unlock-card-medal svg{width:25px;height:25px;animation:medal-in .64s var(--spring) both}.unlock-card-ring{position:absolute;inset:-5px;border-radius:19px;border:2px solid currentColor;opacity:.35;animation:ring-pulse 1.6s ease-out infinite}.unlock-card--bronze .unlock-card-medal{background:linear-gradient(140deg,#c98b52,#8a5a2b)}.unlock-card--silver .unlock-card-medal{background:linear-gradient(140deg,#cfd6e2,#8d96a8);color:#23262e}.unlock-card--gold .unlock-card-medal{background:linear-gradient(140deg,#f7d774,#c99a2e);color:#3a2c05}.unlock-card--platinum .unlock-card-medal{background:linear-gradient(140deg,#a8e6f5,#5aa9c9);color:#06283a}.unlock-card--diamond .unlock-card-medal{background:linear-gradient(140deg,#c4b5fd,#ec4899 60%,#38bdf8)}.unlock-card--level .unlock-card-medal{background:linear-gradient(140deg,var(--accent),var(--accent-2));color:var(--accent-ink)}.unlock-card-kicker{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.unlock-card-name{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em}.unlock-card-desc{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.unlock-card-xp{font-size:var(--fs-lg);font-weight:800;color:var(--accent);white-space:nowrap}.unlock-card-xp span{font-size:.55em;margin-left:2px;opacity:.7}.confetti{position:fixed;inset:0;z-index:410;pointer-events:none}.ad-slot{margin:0;min-height:0;line-height:0;overflow:hidden}.ad-slot ins{display:block;background:none;border:0}.ad-slot ins[data-ad-status=unfilled],.ad-slot ins:not([data-ad-status]){display:none!important}.ad-slot:has(ins[data-ad-status=filled]){margin:var(--s-9) 0 var(--s-7)}.page{padding-bottom:var(--s-9)}.page-block{margin-bottom:var(--s-9)}.page-block h2{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.025em;margin-bottom:var(--s-3)}.page-lead{font-size:var(--fs-lg);color:var(--muted);max-width:68ch;margin-bottom:var(--s-6);line-height:1.6}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s-4)}.feature{padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast)}.feature:hover{transform:translateY(-3px);border-color:var(--line-strong)}.feature-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent);margin-bottom:var(--s-3)}.feature-icon svg{width:18px;height:18px}.feature h3{font-size:var(--fs-base);font-weight:700;margin-bottom:6px}.feature p{font-size:var(--fs-sm);color:var(--muted);line-height:1.65}.steps{counter-reset:step;display:flex;flex-direction:column;gap:var(--s-3);max-width:76ch}.steps li{counter-increment:step;position:relative;padding:var(--s-4) var(--s-5) var(--s-4) var(--s-8);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-md);color:var(--muted);line-height:1.6}.steps li b{color:var(--text);font-weight:600}.steps li:before{content:counter(step);position:absolute;left:var(--s-4);top:var(--s-4);display:grid;place-items:center;width:22px;height:22px;border-radius:7px;font-size:var(--fs-xs);font-weight:800;color:var(--accent-ink);background:var(--accent)}.bench-table{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.bench-row{display:grid;grid-template-columns:130px 120px 1fr;gap:var(--s-4);padding:11px var(--s-4);font-size:var(--fs-sm);border-bottom:1px solid var(--line);background:var(--surface)}.bench-row:last-child{border-bottom:0}.bench-row--head{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:700;background:var(--surface-2)}.bench-row span:first-child{font-weight:600}.bench-row span:nth-child(2){color:var(--accent);font-weight:600}.bench-row span:last-child{color:var(--muted)}@media (max-width: 680px){.bench-row{grid-template-columns:1fr;gap:3px}.bench-row--head{display:none}}.faq{display:flex;flex-direction:column;gap:var(--s-2);max-width:80ch}.faq-item{border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);overflow:hidden}.faq-item summary{padding:var(--s-4) var(--s-5);font-size:var(--fs-md);font-weight:600;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";font-size:var(--fs-xl);font-weight:300;color:var(--muted);transition:transform var(--t-med)}.faq-item[open] summary:after{transform:rotate(45deg)}.faq-item p{padding:0 var(--s-5) var(--s-4);font-size:var(--fs-sm);color:var(--muted);line-height:1.7}.faq-item p b{color:var(--text-2)}.footer{padding:var(--s-7) 0 var(--s-6);border-top:1px solid var(--line)}.footer-inner{display:flex;flex-wrap:wrap;gap:var(--s-5);align-items:center;justify-content:space-between;margin-bottom:var(--s-4)}.footer-brand{display:flex;align-items:center;gap:var(--s-3)}.footer-name{font-size:var(--fs-md);font-weight:800;letter-spacing:.02em}.footer-tag{font-size:var(--fs-xs);color:var(--faint)}.footer-links{display:flex;flex-wrap:wrap;gap:var(--s-5);font-size:var(--fs-sm);color:var(--muted)}.footer-links a{transition:color var(--t-fast)}.footer-links a:hover{color:var(--accent)}.footer-legal{font-size:var(--fs-xs);color:var(--faint)}.tour{position:fixed;inset:0;z-index:350;display:grid;place-items:center;padding:var(--s-5);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(10px);animation:fade-in .2s ease both}.tour-panel{width:min(100%,520px);padding:var(--s-7);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);text-align:center;animation:sheet-in .3s var(--ease-out) both}.tour-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto var(--s-4);border-radius:var(--r-lg);background:linear-gradient(140deg,var(--accent),var(--accent-2));color:var(--accent-ink);box-shadow:0 10px 30px -10px var(--accent)}.tour-icon svg{width:26px;height:26px}.tour-title{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--s-2)}.tour-body{font-size:var(--fs-md);color:var(--muted);line-height:1.65;margin-bottom:var(--s-5)}.tour-body b{color:var(--text-2)}.tour-dots{display:flex;gap:6px;justify-content:center;margin-bottom:var(--s-5)}.tour-dot{width:6px;height:6px;border-radius:99px;background:var(--surface-3);transition:all var(--t-med)}.tour-dot.is-on{width:20px;background:var(--accent)}.tour-actions{display:flex;gap:var(--s-2);justify-content:center}.doc-shell{position:relative;z-index:1;width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--s-5)}.doc-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-5) 0;border-bottom:1px solid var(--line);margin-bottom:var(--s-8)}.doc-bar-links{display:flex;gap:var(--s-4);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap}.doc-bar-links a{transition:color var(--t-fast)}.doc-bar-links a:hover,.doc-bar-links a[aria-current=page]{color:var(--accent)}.doc-hero{max-width:76ch;margin-bottom:var(--s-9)}.doc-kicker{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:var(--s-3)}.doc-hero h1{font-size:var(--fs-4xl);font-weight:800;letter-spacing:-.035em;line-height:1.08;margin-bottom:var(--s-4)}.doc-hero p{font-size:var(--fs-lg);color:var(--muted);line-height:1.65}.doc{max-width:76ch;padding-bottom:var(--s-9)}.doc h2{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.025em;margin:var(--s-9) 0 var(--s-4)}.doc h2:first-child{margin-top:0}.doc h3{font-size:var(--fs-lg);font-weight:700;margin:var(--s-6) 0 var(--s-2)}.doc p{color:var(--text-2);line-height:1.75;margin-bottom:var(--s-4)}.doc p.lead{font-size:var(--fs-lg);color:var(--muted)}.doc ul,.doc ol{margin:0 0 var(--s-4) var(--s-5);color:var(--text-2);line-height:1.75}.doc ul li{list-style:disc;margin-bottom:var(--s-2)}.doc ol li{list-style:decimal;margin-bottom:var(--s-2)}.doc a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.doc a:hover{text-decoration-thickness:2px}.doc strong{color:var(--text);font-weight:600}.doc hr{border:0;border-top:1px solid var(--line);margin:var(--s-8) 0}.doc dl{margin-bottom:var(--s-5)}.doc dt{font-weight:700;color:var(--text);margin-bottom:4px}.doc dd{color:var(--text-2);margin-bottom:var(--s-4);line-height:1.75}.doc table{width:100%;border-collapse:collapse;margin-bottom:var(--s-5);font-size:var(--fs-sm)}.doc th,.doc td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}.doc th{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:700}.callout{padding:var(--s-4) var(--s-5);margin:var(--s-5) 0;border-radius:var(--r-md);border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface)}.callout p{margin-bottom:0}.callout-title{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--text);margin-bottom:6px}.callout-title svg{width:16px;height:16px;color:var(--accent)}.doc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--s-3);margin-bottom:var(--s-5)}.doc-card{padding:var(--s-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}.doc-card h3{font-size:var(--fs-base);margin:0 0 5px}.doc-card p{font-size:var(--fs-sm);color:var(--muted);margin:0;line-height:1.6}.doc-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-6);border-radius:var(--r-lg);background:linear-gradient(135deg,var(--accent-soft),transparent 70%);border:1px solid var(--line);margin-top:var(--s-8)}.doc-cta h2{margin:0 0 4px;font-size:var(--fs-xl)}.doc-cta p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.doc-inline-toc{padding:var(--s-5);margin-bottom:var(--s-7);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.doc-inline-toc h2{font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin:0 0 var(--s-3)}.doc-inline-toc ol{counter-reset:toc;margin:0}.doc-inline-toc li{counter-increment:toc;list-style:none;margin-bottom:6px}.doc-inline-toc li:before{content:counter(toc) ". ";color:var(--faint);font-variant-numeric:tabular-nums}.doc-inline-toc a{color:var(--text-2);text-decoration:none}.doc-inline-toc a:hover{color:var(--accent)}.callout--warn{border-left-color:var(--warn)}.callout--warn .callout-title{color:var(--warn)}.callout--exercise{border-left-color:var(--ok);background:var(--surface-2)}.callout--exercise h4{font-size:var(--fs-md);font-weight:700;margin-bottom:6px}.callout code,.doc code{font-family:var(--font-mono);font-size:.88em;padding:2px 6px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);color:var(--text-2)}.callout pre,.doc pre{font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.8;padding:var(--s-4);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);overflow-x:auto;margin-bottom:var(--s-4);color:var(--text-2)}.key-diagram{font-family:var(--font-mono);font-size:var(--fs-sm);line-height:2;text-align:center;padding:var(--s-5);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);margin-bottom:var(--s-5);color:var(--text-2);overflow-x:auto;white-space:pre}.finger-l{color:var(--accent);font-weight:700}.finger-r{color:var(--ok);font-weight:700}.doc-toc{position:sticky;top:var(--s-5)}.doc-layout{display:grid;grid-template-columns:1fr;gap:var(--s-8)}@media (min-width: 1020px){.doc-layout{grid-template-columns:minmax(0,1fr) 220px}}.doc-toc-title{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:700;margin-bottom:var(--s-3)}.doc-toc a{display:block;padding:5px 0;font-size:var(--fs-sm);color:var(--muted);transition:color var(--t-fast)}.doc-toc a:hover{color:var(--accent)}@media (max-width: 1019px){.doc-toc{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes sheet-in{0%{opacity:0;transform:translateY(16px) scale(.975)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}@keyframes miss-flash{0%{filter:drop-shadow(0 0 0 transparent)}30%{filter:drop-shadow(0 0 10px color-mix(in srgb,var(--err) 60%,transparent))}to{filter:none}}@keyframes word-ok{0%{color:var(--ok)}to{color:var(--muted)}}@keyframes word-bad{0%,40%{color:var(--err);transform:translateY(-2px)}to{transform:none}}@keyframes beat{0%{transform:scale(1.12)}to{transform:none}}@keyframes pulse-num{0%,to{opacity:1}50%{opacity:.55}}@keyframes ring-throb{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes ring-pulse{0%{transform:scale(1);opacity:.45}to{transform:scale(1.35);opacity:0}}@keyframes key-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--err) 55%,transparent)}50%{box-shadow:0 0 0 7px transparent}}@keyframes toast-pop{0%{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(10px)}}@keyframes medal-in{0%{transform:scale(.2) rotate(-140deg);opacity:0}to{transform:none;opacity:1}}@keyframes glow-drift{0%,to{transform:translate(-12%)}50%{transform:translate(12%)}}@keyframes sheen{to{transform:translate(100%)}}@keyframes cap-pop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08)}to{transform:none;opacity:1}}@keyframes sim-flash{0%{box-shadow:0 0 0 0 var(--accent)}to{box-shadow:0 0 0 10px transparent}}@keyframes cam-flash{0%{opacity:.85}to{opacity:0}}@keyframes flicker{0%,to{opacity:1;transform:none}45%{opacity:.7;transform:scale(1.1) rotate(-4deg)}}@keyframes word-advance{0%{transform:translateY(6px);opacity:.4}to{transform:none;opacity:1}}@keyframes count-up{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}@keyframes card-in{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@keyframes words-in{0%{opacity:0;transform:translateY(10px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}@keyframes mem-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes mem-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes round-ok{0%{filter:drop-shadow(0 0 0 transparent)}40%{filter:drop-shadow(0 0 14px color-mix(in srgb,var(--ok) 60%,transparent))}to{filter:none}}@keyframes eq{0%,to{height:5px}50%{height:18px}}@keyframes field-drift{0%{transform:translate3d(-2%,-1%,0) scale(1)}to{transform:translate3d(2%,1.5%,0) scale(1.06)}}.stagger>*{animation:rise-in .38s var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:20ms}.stagger>*:nth-child(2){animation-delay:60ms}.stagger>*:nth-child(3){animation-delay:.1s}.stagger>*:nth-child(4){animation-delay:.14s}.stagger>*:nth-child(5){animation-delay:.18s}.stagger>*:nth-child(6){animation-delay:.22s}.stagger>*:nth-child(7){animation-delay:.26s}.stagger>*:nth-child(8){animation-delay:.3s}html[data-motion=reduced] *,html[data-motion=reduced] *:before,html[data-motion=reduced] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (max-width: 900px){.shell{padding:0 var(--s-4)}.hud-value{font-size:2.7rem}.res-hero{grid-template-columns:1fr}.res-hero-side{flex-direction:row;justify-content:space-between;text-align:left}.sheet-panel{padding:var(--s-5)}.kb-key{width:34px;height:34px;font-size:var(--fs-xs)}.kb-key--wide{width:150px}.drill-body{grid-template-columns:1fr}.osk-key{width:30px;height:30px;font-size:10px}.osk-key--mod{width:48px}.osk-key--space{width:200px}}@media (max-width: 640px){:root{--words-size: 1.3rem}.bar{height:54px}.bar-btn span{display:none}.bar-btn{padding:0;width:36px;justify-content:center}.stage{padding-top:var(--s-2);min-height:60vh}.deck{margin-bottom:var(--s-5)}.deck-tab{padding:0 12px;height:34px}.deck-tab small{display:none}.deck-mode{height:32px;padding:0 10px;font-size:var(--fs-xs)}.deck-options{gap:8px 14px;padding:8px 10px}.opt-group{flex-wrap:wrap;justify-content:center}.opt-group--end{margin-left:0}.opt-label{display:none}.res-top{grid-template-columns:1fr}.res-head-actions .res-act span{display:none}.shelf-grid{grid-template-columns:repeat(2,1fr)}.hud{flex-direction:column;align-items:center;gap:6px;min-height:54px}.hud-side{gap:var(--s-4)}.results{padding:var(--s-5) var(--s-4)}.res-hero-value{font-size:3.6rem}.res-next{display:none}.award-grid,.deck-grid,.mode-grid{grid-template-columns:1fr}.kb-key{width:29px;height:32px;font-size:11px}.kb-key--wide{width:118px}.kb-key-sub{display:none}.unlock-feed{left:var(--s-3);right:var(--s-3);top:var(--s-3)}.unlock-card{width:100%}.footer-inner{flex-direction:column;align-items:flex-start}.osk-host{display:none}.pregame{padding:var(--s-4)}}@media print{.bar,.deck,.controls,.ad-slot,.footer,.toasts,.sheet-close,.trainer-head-actions,.btn-ghost--back{display:none!important}body,.sheet,.sheet-panel{background:#fff!important;color:#000!important}.sheet{position:static;padding:0;backdrop-filter:none}.sheet-panel{max-height:none;box-shadow:none;border:0;width:100%}.ref-grid{grid-template-columns:repeat(2,1fr)}.ref-row,.ref-list,.keycap{border-color:#ccc!important;background:#fff!important;color:#000!important}a{color:#000!important;text-decoration:none}}.fx-bg,.fx-keys{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.fx-bg{z-index:0;transition:opacity .7s ease}.fx-keys{z-index:60}body.is-typing .fx-bg{opacity:.6}body[data-bg=none]:before{display:none}body[data-bg]:not([data-bg=aurora]):not([data-bg=none]):before{opacity:.45}html[data-motion=reduced] .fx-bg,html[data-motion=reduced] .fx-keys{display:none}.ad-rail{display:none;position:absolute;top:92px;z-index:1;width:var(--rail-w)}.ad-rail--left{left:24px}.ad-rail--right{right:24px}.ad-rail-unit{display:block;width:var(--rail-w);height:600px}.ad-label{display:block;margin-bottom:6px;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;text-align:center;color:var(--faint);visibility:hidden}.ad-rail:has(ins[data-ad-status=filled]) .ad-label,.ad-inline:has(ins[data-ad-status=filled]) .ad-label{visibility:visible}@media (min-width: 1720px){:root{--shell: min(1240px, calc(100vw - 2 * (24px + var(--rail-w) + var(--rail-gap))))}.ad-rail{display:block}}@media (min-width: 2240px){:root{--rail-w: 300px}}.ad-inline{margin:var(--s-8) auto;max-width:100%;text-align:center;min-height:0}.ad-inline ins[data-ad-status=unfilled]{display:none!important}.ad-inline:not(:has(ins[data-ad-status=filled])){margin:0}.page-intro{width:min(100%,var(--typer-w));margin:0 0 var(--s-5);text-align:center;transition:opacity var(--t-slow)}.page-h1{font-family:var(--font-display);font-size:clamp(1.3rem,2.4vw,1.75rem);font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--text)}.page-sub{max-width:70ch;margin:6px auto 0;font-size:var(--fs-sm);color:var(--muted);line-height:1.55}body.is-typing .page-intro,body.is-ended .page-intro{opacity:0;pointer-events:none}body.is-ended .page-intro{display:none}.intro-cta{display:inline-flex;align-items:center;gap:6px;margin-left:6px;padding:3px 11px;border-radius:99px;font-size:var(--fs-xs);font-weight:700;color:var(--accent-ink);background:var(--accent);vertical-align:middle}.intro-cta svg{width:13px;height:13px}.crumbs ol{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;margin-bottom:8px;font-size:var(--fs-xs);color:var(--faint)}.doc-page .crumbs ol{justify-content:flex-start;margin:calc(-1 * var(--s-6)) 0 var(--s-5)}.crumbs li+li:before{content:"/";margin-right:4px;opacity:.6}.crumbs a:hover{color:var(--accent)}.bar-btn--link{text-decoration:none}.bar-sep{width:1px;height:20px;margin:0 6px;background:var(--line-strong)}body.is-ended .surface{width:min(100%,var(--shell))}.results{padding:26px 32px 22px}.res-top{grid-template-columns:minmax(250px,320px) 1fr;gap:28px}.res-grid{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))!important}@media (min-width: 1100px){.res-insight{grid-template-columns:repeat(3,minmax(0,1fr))}}body.surface-stage .surface,body.surface-stage .hud,body.surface-stage .stage-extra,body.surface-stage .track{width:min(100%,var(--shell))}body.surface-stage .track{display:none}.stage-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;padding:var(--s-6);text-align:center;font-size:var(--fs-sm);color:var(--muted)}.stage-pause{position:absolute;inset:0;z-index:40;display:grid;place-items:center;border-radius:var(--r-xl);background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer}.stage-pause-inner{display:grid;justify-items:center;gap:6px;color:var(--muted);font-size:var(--fs-sm)}.stage-pause-inner b{font-family:var(--font-display);font-size:var(--fs-2xl);color:var(--text)}.stage-pause-inner svg{width:30px;height:30px;color:var(--accent)}.hud-stat.is-good b{color:var(--ok)}.opt-group--brief .opt-set{background:none}.opt-group--brief .opt-note{max-width:62ch;white-space:normal;line-height:1.4}.pace.is-ghost span{background:var(--muted);box-shadow:none;opacity:.7}.pace.is-ghost span:after{content:none}.page-copy{max-width:78ch}.page-copy h2{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.025em;margin:var(--s-7) 0 var(--s-3)}.page-copy h2:first-child{margin-top:0}.page-copy h3{font-size:var(--fs-lg);font-weight:700;margin:var(--s-5) 0 var(--s-2)}.page-copy p,.page-copy li{color:var(--text-2);line-height:1.75}.page-copy p{margin-bottom:var(--s-4)}.page-copy ul,.page-copy ol{margin:0 0 var(--s-4) var(--s-5)}.page-copy ul li{list-style:disc;margin-bottom:6px}.page-copy ol li{list-style:decimal;margin-bottom:6px}.page-copy a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.page-copy strong{color:var(--text)}.page-copy table{width:100%;border-collapse:collapse;margin-bottom:var(--s-5);font-size:var(--fs-sm)}.page-copy th,.page-copy td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}.page-copy th{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--faint)}.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--s-3)}.link-grid--compact{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.link-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;align-content:start;column-gap:12px;row-gap:3px;align-items:start;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);text-align:left;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast)}.link-card:hover{transform:translateY(-3px);border-color:var(--line-strong)}.link-card-icon{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-sm);background:var(--accent-soft);color:var(--accent)}.link-card-icon svg{width:18px;height:18px}.link-card-title{font-size:var(--fs-base);font-weight:700;color:var(--text)}.link-card-tag{margin-left:4px;padding:1px 6px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--accent-ink);background:var(--accent);vertical-align:2px}.link-card-text{font-size:var(--fs-sm);color:var(--muted);line-height:1.55}.article-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-4);margin:var(--s-5) 0}.article-grid--tight{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.article-card{display:flex;flex-direction:column;gap:6px;padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);text-decoration:none!important;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast)}.article-card:hover{transform:translateY(-3px);border-color:var(--accent)}.article-card-kicker{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.article-card-title{font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em;color:var(--text);line-height:1.3}.article-card-text{font-size:var(--fs-sm);color:var(--muted);line-height:1.6}.doc-byline{margin-top:var(--s-3);font-size:var(--fs-sm)!important;color:var(--faint)!important}.doc-toc a.is-current{color:var(--accent)}.form-row{margin-bottom:var(--s-4)}.form-row .field{margin-top:6px}.footer{padding:var(--s-8) 0 var(--s-6)}.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-5);margin-bottom:var(--s-7)}.footer-about{max-width:52ch;font-size:var(--fs-sm);color:var(--muted);line-height:1.65}.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s-6);margin-bottom:var(--s-7)}.footer-col-title{margin-bottom:var(--s-3);font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--faint)}.footer-col li{margin-bottom:7px}.footer-col a{font-size:var(--fs-sm);color:var(--muted);transition:color var(--t-fast)}.footer-col a:hover{color:var(--accent)}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-5);border-top:1px solid var(--line)}.footer-privacy{font-size:var(--fs-xs);color:var(--muted);text-decoration:underline;text-underline-offset:3px}.footer-privacy:hover{color:var(--accent)}body.twist-mirror .words .line{transform:scaleX(-1)}body.twist-upside .words{display:flex;flex-direction:column-reverse;justify-content:flex-start}body.twist-upside .words .line{transform:rotate(180deg)}body.twist-read-ahead .word.is-current:has(.ch--ok,.ch--bad) .ch--pending{color:transparent!important;text-shadow:none}body.twist-plus-one .word[data-ahead]:not([data-ahead="1"]){visibility:hidden}body.twist-plus-two .word[data-ahead]:not([data-ahead="1"]):not([data-ahead="2"]){visibility:hidden}body.twist-blur .word[data-ahead="3"]{filter:blur(1.5px)}body.twist-blur .word[data-ahead="4"],body.twist-blur .word[data-ahead="5"]{filter:blur(3px)}body.twist-blur .word[data-ahead]:not([data-ahead="1"]):not([data-ahead="2"]):not([data-ahead="3"]):not([data-ahead="4"]):not([data-ahead="5"]){filter:blur(5px)}body.twist-earthquake .words .ch{display:inline-block;animation:quake .33s steps(3) infinite}body.twist-earthquake .words .ch:nth-child(2n){animation-duration:.27s;animation-delay:-.1s}body.twist-earthquake .words .ch:nth-child(3n){animation-duration:.41s;animation-direction:reverse}body.twist-earthquake .words .ch:nth-child(5n){animation-delay:-.2s}body.twist-earthquake .typer{animation:tremor 5.5s ease-in-out infinite}body.twist-earthquake .word:not(.is-current){display:inline-block;animation:quake .37s steps(3) infinite}body.twist-earthquake .word:not(.is-current):nth-child(2n){animation-duration:.29s;animation-delay:-.15s}body.twist-earthquake .word:not(.is-current):nth-child(3n){animation-duration:.43s;animation-direction:reverse}@keyframes quake{0%{transform:translate(0) rotate(0)}33%{transform:translate(.08em,-.11em) rotate(-5deg)}66%{transform:translate(-.1em,.07em) rotate(4deg)}to{transform:translate(.04em,.1em) rotate(-2deg)}}@keyframes tremor{0%,68%,to{transform:none}70%{transform:translate(-9px,3px) rotate(-.7deg)}72%{transform:translate(10px,-4px) rotate(.9deg)}74%{transform:translate(-8px,4px) rotate(-.6deg)}76%{transform:translate(7px,-2px) rotate(.5deg)}78%{transform:translate(-5px,2px) rotate(-.3deg)}81%{transform:translate(3px,-1px)}84%{transform:none}}body.twist-crt .typer{border-radius:18px;padding:10px 14px;background:color-mix(in srgb,var(--bg) 75%,#000);box-shadow:inset 0 0 60px #0000008c}body.twist-crt .words{text-shadow:0 0 6px color-mix(in srgb,var(--accent) 65%,transparent),0 0 1px currentColor;animation:crt-flicker 3.2s infinite}body.twist-crt .typer:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.18) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}@keyframes crt-flicker{0%,to{opacity:1}47%{opacity:.96}48%{opacity:.9}49%{opacity:1}}html[data-motion=reduced] body.twist-earthquake .words .ch,html[data-motion=reduced] body.twist-earthquake .typer,html[data-motion=reduced] body.twist-earthquake .word{animation:none}html[data-motion=reduced] body.twist-earthquake .word:nth-child(2n){transform:translateY(-.1em) rotate(-3deg)}html[data-motion=reduced] body.twist-earthquake .words .ch:nth-child(2n){transform:translateY(-.12em) rotate(-6deg)}html[data-motion=reduced] body.twist-earthquake .words .ch:nth-child(3n){transform:translateY(.1em) rotate(5deg)}.word.is-fading{animation:word-fade var(--fade-ms, 5.2s) linear forwards;animation-delay:var(--fade-at, 0ms)}@keyframes word-fade{0%,60%{opacity:1}to{opacity:.04}}html[data-motion=reduced] body.twist-crt .words{animation:none}body.surface-stage.is-typing .page-intro,body.surface-stage.is-typing .drill-banner,body.surface-stage .controls .tip{display:none}@media (max-width: 560px){.bar-sep,.bar-btn[data-open=themes],.bar-btn[data-open=awards]{display:none}.bar-nav{gap:0}.bar-btn{padding:0 8px}.page-sub{font-size:var(--fs-xs)}}@media (max-width: 380px){.brand-word{display:none}}.stage{min-height:calc(100svh - 64px);padding:var(--s-2) 0 var(--s-5);justify-content:flex-start}.focus{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s-5) 0 var(--s-4);min-height:0}body.surface-stage .focus{justify-content:flex-start;padding-top:var(--s-4)}.controls{margin-top:auto}.bar-title{flex:1;min-width:0;margin-left:var(--s-4);padding-left:var(--s-4);border-left:1px solid var(--line-strong);font-family:var(--font-ui);font-size:var(--fs-sm);font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}.page-intro{display:none}.page-lead--intro{margin-top:var(--s-8)}.deck{position:relative;margin-bottom:0;max-width:none;width:min(100%,var(--shell));z-index:20}.ctrl-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 10px;width:fit-content;max-width:100%;margin:0 auto;padding:6px;border-radius:16px;background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--line);box-shadow:var(--sh-md);backdrop-filter:blur(8px)}.ctrl-groups{display:inline-flex;gap:2px;padding:3px;border-radius:12px;background:var(--surface-2)}.ctrl-group{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:9px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.ctrl-group svg{width:15px;height:15px}.ctrl-group:hover{color:var(--text)}.ctrl-group.is-active{color:var(--text);background:var(--surface);box-shadow:var(--sh-sm),inset 0 0 0 1px var(--line-strong)}.ctrl-group.is-active svg{color:var(--accent)}.ctrl-group.is-open{color:var(--accent)}.ctrl-mode{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 10px 0 5px;border-radius:11px;font-size:var(--fs-md);font-weight:700;color:var(--accent-ink);background:var(--accent);box-shadow:0 8px 20px -10px var(--accent);transition:transform var(--t-fast),filter var(--t-fast)}.ctrl-mode:hover{filter:brightness(1.06)}.ctrl-mode:active{transform:scale(.97)}.ctrl-mode-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:color-mix(in srgb,var(--accent-ink) 14%,transparent)}.ctrl-mode-icon svg{width:15px;height:15px}.ctrl-mode-caret{width:15px;height:15px;opacity:.8;transition:transform var(--t-med)}.ctrl-mode[aria-expanded=true] .ctrl-mode-caret{transform:rotate(180deg)}.ctrl-bar .deck-options{border:0;padding:0 4px;min-height:0;gap:6px 12px;justify-content:flex-start;flex-wrap:wrap}.ctrl-bar .deck-options.is-empty{display:none}.ctrl-bar .opt-group--end{margin-left:0}.ctrl-bar .opt-label,.ctrl-bar .opt-group--brief{display:none}@media (min-width: 1500px){.ctrl-bar .opt-label{display:inline}}.launcher{position:absolute;left:50%;top:calc(100% + 10px);transform:translate(-50%);width:min(100%,1080px);max-height:min(70svh,640px);overflow-y:auto;border-radius:20px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);animation:launcher-in .22s var(--ease-out) both;overscroll-behavior:contain}@keyframes launcher-in{0%{opacity:0;transform:translate(-50%,-8px) scale(.985)}to{opacity:1;transform:translate(-50%) scale(1)}}html[data-motion=reduced] .launcher{animation:none}.launcher-body{padding:var(--s-4) var(--s-5) var(--s-5)}.launcher-head{position:sticky;top:calc(-1 * var(--s-4));z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin:calc(-1 * var(--s-4)) calc(-1 * var(--s-5)) 0;padding:var(--s-3) var(--s-5);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.launcher-tabs{display:flex;flex-wrap:wrap;gap:2px}.launcher-tab{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:9px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}.launcher-tab svg{width:15px;height:15px}.launcher-tab small{padding:0 6px;border-radius:99px;font-size:10px;font-weight:700;background:var(--surface-2);color:var(--faint)}.launcher-tab:hover,.launcher-tab.is-active{color:var(--text);background:var(--surface-2)}.launcher-tab.is-active svg,.launcher-tab.is-active small{color:var(--accent)}.launcher-close{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--muted)}.launcher-close:hover{color:var(--text);background:var(--surface-2)}.launcher-close svg{width:17px;height:17px}.launcher-sub{display:flex;align-items:center;gap:8px;margin:var(--s-4) 0 var(--s-3);font-size:var(--fs-sm);color:var(--muted)}.launcher-sub svg{width:15px;height:15px;color:var(--accent)}.launcher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.launcher-grid--twists{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.lcard{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr;column-gap:11px;row-gap:2px;align-items:start;height:auto!important;padding:11px 12px;border-radius:13px;text-align:left;white-space:normal!important;background:var(--surface-2);border:1px solid var(--line);transition:transform var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.lcard:hover,.lcard:focus-visible{transform:translateY(-2px);border-color:var(--line-strong);background:var(--surface-3);outline:none}.lcard:focus-visible{box-shadow:0 0 0 2px var(--accent)}.lcard.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));box-shadow:none;color:inherit}.lcard-icon{grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;color:var(--accent);background:var(--accent-soft)}.lcard-icon svg{width:19px;height:19px;opacity:1!important}.lcard.is-active .lcard-icon{color:var(--accent-ink);background:var(--accent)}.lcard-name{display:flex;align-items:center;gap:6px;font-size:var(--fs-md);font-weight:700;color:var(--text)}.lcard-desc{font-size:var(--fs-xs);font-weight:400;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lcard-tag{padding:1px 6px;border-radius:99px;font-size:9.5px;font-weight:800;letter-spacing:.06em;color:var(--accent-ink);background:var(--accent)}.lcard-tag--new{background:var(--ok)}.launcher-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-bottom:var(--s-3)}.ltool{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:13px;text-align:left;background:var(--accent-soft);color:var(--accent);border:1px solid transparent}.ltool:hover,.ltool:focus-visible{border-color:var(--accent);outline:none}.ltool svg{width:20px;height:20px;flex-shrink:0}.ltool span{display:flex;flex-direction:column;font-size:var(--fs-xs);color:var(--muted)}.ltool b{font-size:var(--fs-md);color:var(--text)}.deck-tabs,.ctrl-card{display:none}body.is-typing .deck{opacity:0;pointer-events:none}body.is-typing.mouse-active .deck{opacity:1;pointer-events:auto}.stage{position:relative}body.surface-stage.is-typing .deck{position:absolute;top:var(--s-2);left:50%;width:max-content;max-width:calc(100% - 32px);transform:translate(-50%,-6px)}body.surface-stage.is-typing.mouse-active .deck{transform:translate(-50%)}body.surface-stage.is-typing .ctrl-bar{box-shadow:var(--sh-lg)}body.is-typing.launcher-open .deck,body.is-typing.launcher-open .bar{opacity:1;pointer-events:auto}body.surface-stage.is-typing.launcher-open .deck{transform:translate(-50%)}body.launcher-open .deck,body.surface-stage.is-typing .deck{z-index:60}body.surface-stage.is-typing .launcher{width:min(calc(100vw - 32px),1080px)}body.surface-stage .surface{flex:1;display:flex;flex-direction:column;min-height:0}body.surface-stage .stage-game{flex:1;height:auto!important;min-height:380px;max-height:760px}body.surface-stage.is-idle .stage-game{height:auto!important}body.surface-stage .stage{padding-bottom:var(--s-3)}body.surface-stage:not(.is-ended) .controls{margin:0;height:0;overflow:hidden}body.surface-stage:not(.is-ended) .controls-row,body.surface-stage:not(.is-ended) .controls .tip{display:none}body.is-ended .stage-game,body.is-ended .stage-pause{display:none!important}@media (max-width: 900px){.ctrl-group span{display:none}.ctrl-group{padding:0 10px}}@media (max-width: 720px){.bar{flex-wrap:wrap;height:auto;padding-top:10px;row-gap:4px}.bar-title{order:3;flex-basis:100%;margin:0 0 4px;padding:0;border:0;font-size:var(--fs-xs);text-align:left}.stage{min-height:calc(100svh - 90px)}.ctrl-bar{width:100%}.launcher{width:calc(100vw - 24px);max-height:72svh}.launcher-grid{grid-template-columns:1fr 1fr}.lcard{grid-template-columns:1fr}.lcard-icon{grid-row:auto;width:32px;height:32px}}@media (max-width: 720px){.ctrl-bar,.ctrl-bar .deck-options{justify-content:center}}@media (hover: none){.tip{display:none}}.rally2{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--s-4);padding:10px 14px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.rally2-track{position:relative;display:flex;flex-direction:column;gap:5px;padding-right:26px}.rally2-lane{position:relative;height:16px;--p: 0}.rally2-line{position:absolute;left:0;right:0;top:50%;height:2px;border-radius:2px;background:var(--line-strong)}.rally2-line:after{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--p) * 100%);border-radius:inherit;background:color-mix(in srgb,var(--muted) 55%,transparent)}.rally2-lane.is-player .rally2-line:after{background:linear-gradient(90deg,var(--accent-2),var(--accent))}.rally2-car{position:absolute;top:50%;left:calc(var(--p) * 100%);display:inline-flex;align-items:center;gap:6px;transform:translate(-9px,-50%);transition:left .16s linear;white-space:nowrap}.rally2-dot{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:10px;line-height:1;color:var(--text);background:var(--surface-3);box-shadow:0 0 0 2px var(--surface)}.rally2-lane.is-player .rally2-dot{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 2px var(--surface),0 0 14px color-mix(in srgb,var(--accent) 60%,transparent)}.rally2-lane.is-ghost .rally2-dot{opacity:.7}.rally2-tag{font-size:11px;font-weight:600;color:var(--muted)}.rally2-tag b{margin-left:6px;font-weight:700;color:var(--faint);font-variant-numeric:tabular-nums}.rally2-lane.is-player .rally2-tag{color:var(--accent)}.rally2-lane.is-done .rally2-tag b{color:var(--ok)}.rally2-lane.is-leading .rally2-dot:after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid color-mix(in srgb,var(--warn) 70%,transparent)}.rally2-dot{position:relative}.rally2-flag{position:absolute;right:8px;top:-2px;bottom:-2px;width:8px;border-radius:2px;background:repeating-linear-gradient(0deg,var(--text) 0 4px,transparent 4px 8px),repeating-linear-gradient(90deg,transparent 0 4px,var(--text) 4px 8px);opacity:.55}.rally2-side{display:flex;flex-direction:column;align-items:center;min-width:56px}.rally2-side b{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;line-height:1;color:var(--accent)}.rally2-side span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-top:3px}@media (max-width: 560px){.rally2-tag{display:none}}.rally2-lane.is-late .rally2-car{flex-direction:row-reverse;transform:translate(calc(-100% + 9px),-50%)}.metro,.gauge-strip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-4);padding:10px 16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm);color:var(--muted)}.metro-label,.gauge-label{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.metro-label svg,.gauge-label svg{width:15px;height:15px;color:var(--accent)}.metro-label b{color:var(--text);font-family:var(--font-display);font-size:var(--fs-lg)}.metro-label span{color:var(--faint)}.metro-rate,.gauge-value{white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}.metro-rate b{color:var(--ok)}.metro-track{position:relative;height:22px;border-radius:99px;background:var(--surface-2);overflow:hidden}.metro-zone{position:absolute;top:0;bottom:0;width:16%;background:color-mix(in srgb,var(--accent) 16%,transparent)}.metro-zone--l{left:0;border-radius:99px 0 0 99px}.metro-zone--r{right:0;border-radius:0 99px 99px 0}.metro-zone.is-pulse{animation:metro-pulse .26s var(--ease-out)}@keyframes metro-pulse{0%{background:color-mix(in srgb,var(--accent) 55%,transparent)}}.metro-ball{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px color-mix(in srgb,var(--accent) 70%,transparent);transition:left var(--beat) cubic-bezier(.45,0,.55,1)}.metro-ball.is-right{left:calc(100% - 19px)}.metro.is-hit{border-color:color-mix(in srgb,var(--ok) 60%,transparent)}.metro.is-off{border-color:color-mix(in srgb,var(--warn) 60%,transparent)}html[data-motion=reduced] .metro-ball{transition:none}.gauge{position:relative;height:8px;border-radius:99px;background:var(--surface-2)}.gauge-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .16s linear,background var(--t-med)}.gauge.is-close .gauge-fill{background:linear-gradient(90deg,var(--err),var(--warn))}.gauge.is-record .gauge-fill{background:linear-gradient(90deg,var(--ok),var(--accent))}.gauge-danger{position:absolute;left:0;top:-3px;bottom:-3px;width:20%;border-radius:99px 0 0 99px;background:color-mix(in srgb,var(--err) 14%,transparent)}.gauge-mark{position:absolute;top:-5px;bottom:-5px;width:2px;margin-left:-2px;border-radius:2px;background:var(--warn)}@media (max-width: 560px){.metro-label span,.metro-rate{display:none}.metro,.gauge-strip{grid-template-columns:auto 1fr}.gauge-value{display:none}}.gauge--duel{background:linear-gradient(90deg,color-mix(in srgb,var(--err) 10%,var(--surface-2)),var(--surface-2) 50%,color-mix(in srgb,var(--ok) 10%,var(--surface-2)))}.gauge--duel .gauge-fill{inset:0 auto 0 50%;border-radius:0;background:linear-gradient(90deg,var(--accent-2),var(--ok));transition:left .12s linear,width .12s linear}.gauge--duel.is-behind .gauge-fill{background:linear-gradient(90deg,var(--err),var(--warn))}.gauge-mid{position:absolute;left:50%;top:-5px;bottom:-5px;width:2px;margin-left:-1px;border-radius:2px;background:var(--muted);opacity:.7}.aim-keys{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:28px}.aim-keys.is-new{animation:aim-in .42s var(--ease-out)}@keyframes aim-in{0%{opacity:.3;transform:translateY(3px)}}.aim-key{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:7px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line));border-bottom-width:3px;background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));color:var(--text);font-family:var(--words-font, var(--font-mono));font-size:var(--fs-sm);text-transform:lowercase}.aim-key--pair{border-color:color-mix(in srgb,var(--accent-2) 50%,var(--line));background:color-mix(in srgb,var(--accent-2) 10%,var(--surface-2))}.aim-note{color:var(--faint)}.unlock-strip{display:grid;gap:10px}.ul-row{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}.ul-key{display:inline-grid;place-items:center;width:26px;height:28px;border-radius:6px;font-family:var(--words-font, var(--font-mono));font-size:var(--fs-sm);color:var(--faint);background:var(--surface);border:1px dashed var(--line);opacity:.7}.ul-key.is-on{color:var(--text);border-style:solid;opacity:1;background:var(--surface-2)}.ul-key.is-focus{color:var(--bg);background:var(--accent);border-color:var(--accent);box-shadow:0 0 16px color-mix(in srgb,var(--accent) 55%,transparent);font-weight:700}.unlock-strip .gauge-label b{color:var(--accent);font-family:var(--font-display)}.iv-pills{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;align-items:end;height:34px}.iv-pill{position:relative;height:100%;border-radius:6px;background:var(--surface-2);overflow:hidden}.iv-pill i{position:absolute;left:0;right:0;bottom:0;height:0;background:color-mix(in srgb,var(--accent) 55%,transparent);transition:height .2s var(--ease-out)}.iv-pill.is-done i{background:linear-gradient(0deg,var(--accent-2),var(--accent))}.iv-pill.is-live{box-shadow:inset 0 0 0 1.5px var(--accent)}.iv-pill b{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.typer.is-resting .words{opacity:.28;filter:blur(1.5px);transition:opacity .24s,filter .24s}.typer.is-resting .caret{opacity:0}.typer.is-resting:after{content:"Rest";position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;letter-spacing:.02em;color:var(--accent)}.stage-extra:not(:empty){margin-bottom:var(--s-4)}@media (max-width: 560px){.ul-key{width:22px;height:24px;font-size:12px}.iv-pill b{font-size:10px}}.book-bar-pct small{display:block;margin-top:2px;font-size:11px;font-weight:500;color:var(--faint);white-space:nowrap}.book-bar-pct{text-align:right}.av{--av: 32px;position:relative;display:inline-grid;place-items:center;flex-shrink:0;width:var(--av);height:var(--av);border-radius:50%;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cflag{font-size:.95em;line-height:1;vertical-align:-1px}.bar-btn--board{color:var(--text-2)}.bar-btn--board svg{color:var(--warn)}.bar-nav .bar-btn--icon{width:34px}.acct{display:flex;align-items:center;min-width:96px;justify-content:flex-end;flex-shrink:0;position:relative}.acct-skeleton{width:92px;height:34px;border-radius:var(--r-full);background:var(--surface-2);opacity:.6}.acct-signin{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:600;color:var(--accent-ink);background:var(--accent);box-shadow:0 6px 18px -10px var(--accent);transition:filter var(--t-fast),transform var(--t-fast)}.acct-signin svg{width:15px;height:15px}.acct-signin:hover{filter:brightness(1.08)}.acct-signin:active{transform:scale(.97)}.acct-chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 6px 0 4px;border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--line);transition:border-color var(--t-fast),background var(--t-fast)}.acct-chip:hover,.acct-chip[aria-expanded=true]{border-color:var(--line-strong);background:var(--surface-3)}.acct-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:600;color:var(--text)}.acct-lvl{display:grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border-radius:var(--r-full);font-size:var(--fs-2xs);font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent);background:var(--accent-soft)}.acct-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:300;width:260px;padding:8px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-lg);animation:sheet-in .18s var(--ease-out) both}.acct-menu-head{display:flex;align-items:center;gap:10px;padding:8px 8px 10px}.acct-menu-head b{display:block;font-size:var(--fs-md);color:var(--text)}.acct-menu-head span{font-size:var(--fs-xs);color:var(--muted)}.acct-menu-xp{height:4px;margin:0 8px 8px;border-radius:99px;background:var(--surface-3);overflow:hidden}.acct-menu-xp i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:inherit}.acct-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:500;color:var(--text-2);text-align:left;transition:background var(--t-fast),color var(--t-fast)}.acct-item svg{width:16px;height:16px;color:var(--muted)}.acct-item:hover,.acct-item:focus-visible{background:var(--surface-2);color:var(--text);outline:none}.acct-item--quiet{color:var(--muted);border-top:1px solid var(--line);border-radius:0 0 var(--r-sm) var(--r-sm);margin-top:4px}.doc-bar .acct{margin-left:var(--s-4)}.doc-bar-links{flex:1;justify-content:flex-end}@media (max-width: 1100px){.bar-btn--wide{display:none}}@media (max-width: 860px){.acct-name{display:none}.acct{min-width:0}}@media (max-width: 560px){.bar-btn--link,.acct-lvl{display:none}.acct-chip{padding:0 3px;gap:0}}@media (max-width: 420px){.bar-btn[data-open=stats]{display:none}.bar-btn{width:32px}}@media (max-width: 640px){.acct-signin{padding:0 11px}.acct-signin span{font-size:var(--fs-xs)}.doc-bar{flex-wrap:wrap}.doc-bar-links{order:3;flex-basis:100%;justify-content:flex-start}}.opt-chip--rank svg{color:var(--warn)}.opt-chip--rank.is-on{color:var(--text-2)}.opt-chip--rank.is-off{opacity:.55;cursor:help}.opt-chip--rank.is-off svg{color:var(--faint)}.opt-chip--rank.is-guest{color:var(--accent)}.auth .sheet-head{margin-bottom:var(--s-5)}.auth-perks{display:grid;gap:10px;margin-bottom:var(--s-6)}.auth-perks li{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);color:var(--muted);line-height:1.5}.auth-perks b{color:var(--text);font-weight:600}.auth-perks svg{width:16px;height:16px;margin-top:2px;color:var(--accent);flex-shrink:0}.auth-providers{display:grid;gap:8px;margin-bottom:var(--s-5)}.auth-providers .ol-loading{min-height:46px}.auth-provider{display:flex;align-items:center;justify-content:center;gap:10px;height:46px;border-radius:var(--r-md);font-size:var(--fs-md);font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--line-strong);transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}.auth-provider svg{width:19px;height:19px}.auth-provider:hover{background:var(--surface-3);border-color:var(--accent)}.auth-provider:active{transform:scale(.98)}.auth-provider:disabled{opacity:.6}.auth-label{display:block;margin:var(--s-4) 0 6px;font-size:var(--fs-xs);font-weight:600;color:var(--muted)}.auth-label small{font-weight:500;color:var(--faint)}.auth-email .auth-label{margin-top:0}.auth-row{display:flex;gap:8px}.auth-row .field{flex:1;min-width:0}.auth-row .btn{flex-shrink:0}.auth-note{min-height:1.4em;margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--muted)}.auth-note.is-bad{color:var(--err)}.auth-fine{margin-top:var(--s-4);font-size:var(--fs-xs);color:var(--faint);line-height:1.55}.auth-fine svg{display:inline-block;width:13px;height:13px;margin-right:4px;vertical-align:-2px}.auth-fine a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}.auth-lead{font-size:var(--fs-sm);color:var(--muted);line-height:1.6;margin-bottom:var(--s-4)}.auth-code{display:flex;gap:8px}.field--code{flex:1;font-family:var(--font-mono);font-size:1.4rem;letter-spacing:.4em;text-align:center}.auth .btn-ghost{margin-top:var(--s-3)}.field-prefix{display:flex;align-items:stretch}.field-prefix span{display:grid;place-items:center;padding:0 10px;border:1px solid var(--line-strong);border-right:0;border-radius:var(--r-md) 0 0 var(--r-md);background:var(--surface-3);color:var(--muted);font-weight:600}.field-prefix .field{border-radius:0 var(--r-md) var(--r-md) 0}.field-hint{margin-top:6px;font-size:var(--fs-2xs);color:var(--faint);word-break:break-all}.field-hint span{color:var(--muted)}.field--bio{min-height:0;font-family:var(--font-ui);font-size:var(--fs-md)}select.field{appearance:auto}.acct-form-id{display:grid;grid-template-columns:auto 1fr;gap:var(--s-4);align-items:end}.acct-form-id .auth-label{margin-top:0}.acct-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.acct-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s-4)}.acct-danger{display:flex;justify-content:space-between;gap:8px;margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line)}@media (max-width: 520px){.acct-form-pair{grid-template-columns:1fr}.auth-row{flex-direction:column}}.ol-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px;font-size:var(--fs-sm);color:var(--muted)}.ol-loading .spinner{width:20px;height:20px;border-width:2px}.res-online{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 10px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);animation:fade-in .24s ease both}.res-online[hidden]{display:none}.res-online[data-kind=ranked],.res-online[data-kind=game]{background:linear-gradient(100deg,color-mix(in srgb,var(--warn) 12%,var(--surface-2)),var(--surface-2) 60%);border-color:color-mix(in srgb,var(--warn) 28%,var(--line))}.res-online-icon{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--surface-3);color:var(--muted)}.res-online-icon svg{width:16px;height:16px}.res-online-icon.is-good{color:var(--warn);background:color-mix(in srgb,var(--warn) 16%,transparent)}.res-online-icon.is-warn{color:var(--err);background:color-mix(in srgb,var(--err) 14%,transparent)}.res-online-icon .spinner{width:16px;height:16px;border-width:2px}.res-online-text{flex:1;min-width:0;font-size:var(--fs-md);color:var(--text-2);line-height:1.35}.res-online-text b{color:var(--text);font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:-.01em}.res-online-text small{display:block;font-size:var(--fs-xs);color:var(--muted)}.res-online-pb{color:var(--warn);font-weight:600}.res-online-btn{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;height:32px;padding:0 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:600;color:var(--text-2);background:var(--surface);border:1px solid var(--line-strong);transition:background var(--t-fast),color var(--t-fast)}.res-online-btn svg{width:14px;height:14px}.res-online-btn:hover{color:var(--text);background:var(--surface-3)}.res-online-btn--primary{color:var(--accent-ink);background:var(--accent);border-color:transparent}.res-online-btn--primary:hover{color:var(--accent-ink);background:var(--accent);filter:brightness(1.08)}@media (max-width: 560px){.res-online{flex-wrap:wrap}.res-online-btn{width:100%;justify-content:center}}.lb{display:flex;flex-direction:column;gap:var(--s-4)}.lb-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3)}.lb-day{display:flex;align-items:center;gap:6px}.lb-day .icon-btn:disabled{opacity:.3;cursor:default}.lb-day-label{display:flex;flex-direction:column;align-items:center;min-width:120px;line-height:1.2}.lb-day-label b{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--text)}.lb-day-label small{font-size:var(--fs-2xs);color:var(--faint);font-variant-numeric:tabular-nums}.lb-scope .cflag{margin-right:2px}.lb-body{min-height:260px}.lb-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:var(--s-3);margin:var(--s-2) 0 var(--s-4)}.lb-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;min-width:0}.lb-step--empty{visibility:hidden}.lb-step-who{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;max-width:100%;color:inherit}.lb-step-who:hover .lb-step-name{color:var(--accent)}.lb-medal{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:var(--fs-xs);font-weight:800;color:#1a1406;background:var(--medal, #e7c35a);box-shadow:0 4px 14px -6px var(--medal, #e7c35a)}.lb-step--1{--medal: #f2c94c}.lb-step--2{--medal: #c9d1dc}.lb-step--3{--medal: #d9955b}.lb-step .av{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--medal)}.lb-step-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--text);transition:color var(--t-fast)}.lb-step-user{font-size:var(--fs-2xs);color:var(--faint)}.lb-step-score{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.05;margin-top:4px}.lb-step--1 .lb-step-score{font-size:2.5rem;color:var(--medal)}.lb-step-score small{margin-left:4px;font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:600;color:var(--muted);letter-spacing:0}.lb-step-acc{font-size:var(--fs-xs);color:var(--muted)}.lb-step-plinth{width:100%;margin-top:10px;border-radius:var(--r-md) var(--r-md) 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--medal) 22%,var(--surface-2)),var(--surface-2));border:1px solid color-mix(in srgb,var(--medal) 30%,var(--line));border-bottom:0}.lb-step--1 .lb-step-plinth{height:56px}.lb-step--2 .lb-step-plinth{height:36px}.lb-step--3 .lb-step-plinth{height:22px}.lb-step.is-me .lb-step-name:after{content:" (you)";color:var(--accent);font-weight:600}.lb-list{display:flex;flex-direction:column;gap:2px}.lb-row{display:grid;grid-template-columns:44px minmax(0,1fr) 96px 64px 78px;align-items:center;gap:var(--s-3);min-height:52px;padding:6px 12px;border-radius:var(--r-md);transition:background var(--t-fast)}.lb-row:not(.lb-row--head):hover{background:var(--surface-2)}.lb-row--head{min-height:28px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.lb-row--head span:nth-child(n+3){text-align:right}.lb-row.is-me{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.lb-rank{font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);color:var(--muted);font-variant-numeric:tabular-nums}.lb-who{display:flex;align-items:center;gap:10px;min-width:0;color:inherit}.lb-who:hover .lb-name{color:var(--accent)}.lb-name{display:flex;flex-direction:column;min-width:0;font-weight:600;color:var(--text);line-height:1.25;transition:color var(--t-fast)}.lb-name-main,.lb-name small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-name small{font-size:var(--fs-2xs);font-weight:500;color:var(--faint);overflow:hidden;text-overflow:ellipsis}.lb-score{text-align:right;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.lb-score small{margin-left:3px;font-family:var(--font-ui);font-size:var(--fs-2xs);color:var(--faint);font-weight:600}.lb-acc,.lb-when{text-align:right;font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}.lb-when{font-size:var(--fs-xs);color:var(--faint)}.lb-foot{display:flex;align-items:center;justify-content:center;gap:var(--s-3);margin-top:var(--s-4);font-size:var(--fs-xs);color:var(--faint)}.lb-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-8) var(--s-5);text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:var(--r-lg)}.lb-empty>svg{width:30px;height:30px;color:var(--warn)}.lb-empty b{color:var(--text)}.lb-me{position:sticky;bottom:calc(-1 * var(--s-7));z-index:2}.lb-me:empty{display:none}.lb-me-bar{display:flex;align-items:center;gap:var(--s-3);padding:10px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--surface-3) 92%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line-strong);box-shadow:var(--sh-md)}.lb-me-bar>svg{width:18px;height:18px;color:var(--accent)}.lb-me-text{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text-2)}.lb-me-text b{color:var(--text)}.lb-me-bar .btn{padding:7px 14px;font-size:var(--fs-sm)}@media (max-width: 720px){.lb-row{grid-template-columns:34px minmax(0,1fr) 76px 48px;gap:8px;padding:6px 8px}.lb-when,.lb-row--head span:last-child{display:none}.lb-step-score{font-size:var(--fs-2xl)}.lb-step--1 .lb-step-score{font-size:var(--fs-3xl)}.lb-step-user{display:none}}@media (max-width: 420px){.lb-row{grid-template-columns:28px minmax(0,1fr) 64px}.lb-acc,.lb-row--head span:nth-child(4){display:none}}.ol-page{padding-bottom:var(--s-8)}.ol-hero{max-width:70ch;margin-bottom:var(--s-6)}.ol-hero h1{font-size:var(--fs-4xl);font-weight:800;letter-spacing:-.035em;line-height:1.08;margin-bottom:var(--s-3)}.ol-hero p{font-size:var(--fs-lg);color:var(--muted);line-height:1.6}.lb-page{padding:var(--s-6);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-md)}.lb-page .lb-me{bottom:var(--s-3)}.ol-page-copy{margin-top:var(--s-4)}@media (max-width: 640px){.lb-page{padding:var(--s-4);border-radius:var(--r-lg)}}.pf{display:flex;flex-direction:column;gap:var(--s-6)}.pf-id h1{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.03em;line-height:1.1;overflow-wrap:anywhere}.pf-sub{margin-top:4px;font-size:var(--fs-sm);color:var(--muted)}.pf-bio{margin-top:var(--s-2);color:var(--text-2);max-width:60ch}.pf-kb{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s-2);font-size:var(--fs-xs);color:var(--muted);padding:3px 10px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line)}.pf-kb svg{width:13px;height:13px}.pf-actions{display:flex;gap:8px;align-self:start}.pf-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3)}.pf-tile{padding:14px 16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.pf-tile b{display:block;font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}.pf-tile span{font-size:var(--fs-xs);color:var(--muted)}.pf-section h2{display:flex;align-items:center;gap:9px;margin-bottom:var(--s-3);font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em}.pf-section h2 svg{width:17px;height:17px;color:var(--accent)}.pf-bests{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3)}.pf-best{display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);color:inherit;transition:border-color var(--t-fast),transform var(--t-fast)}a.pf-best:hover{border-color:var(--accent);transform:translateY(-1px)}.pf-best-label{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.pf-best b{font-family:var(--font-display);font-size:2.2rem;font-weight:800;letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums}.pf-best b small{margin-left:4px;font-family:var(--font-ui);font-size:var(--fs-xs);color:var(--muted);font-weight:600;letter-spacing:0}.pf-best-meta{font-size:var(--fs-xs);color:var(--muted)}.pf-best.is-empty b{color:var(--faint)}.pf-chart{padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.pf-chart svg{display:block;max-width:100%;height:auto;overflow:visible}.pf-tick line{stroke:var(--line);stroke-width:1}.pf-tick text,.pf-axis{fill:var(--faint);font-size:11px;font-family:var(--font-ui)}.pf-tick text{text-anchor:end}.pf-series--1{--series: var(--ok)}.pf-series--2{--series: color-mix(in srgb, var(--warn) 45%, var(--err))}.pf-series--3{--series: var(--accent)}.pf-series--4{--series: var(--accent-2)}.pf-series--5{--series: var(--warn)}.pf-line{fill:none;stroke:var(--series);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;opacity:.7}.pf-dot{fill:var(--series);stroke:var(--surface);stroke-width:2}.pf-legend{display:flex;flex-wrap:wrap;gap:var(--s-4);margin-top:var(--s-2);font-size:var(--fs-xs);color:var(--muted)}.pf-legend span{display:inline-flex;align-items:center;gap:6px}.pf-key{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--series)}.pf-games{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.pf-games li{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:10px;padding:10px 14px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);font-size:var(--fs-sm)}.pf-games li b{font-family:var(--font-display);color:var(--text);font-variant-numeric:tabular-nums}.pf-games li small{font-size:var(--fs-2xs);color:var(--faint)}.pf-missing{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-9) var(--s-5);text-align:center;color:var(--muted)}.pf-missing>svg{width:36px;height:36px;color:var(--faint)}.pf-missing h1{font-size:var(--fs-2xl);color:var(--text)}@media (max-width: 860px){.pf-tiles,.pf-bests{grid-template-columns:repeat(2,minmax(0,1fr))}}.live-board[hidden]{display:none}.live-board:empty{margin:0;padding:0;border:0;min-height:1px}.live-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-4)}.live-head h2{margin:0}.live-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4)}.live-col{padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.live-title{display:flex;align-items:center;gap:8px;margin-bottom:var(--s-3);font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.live-title svg{width:14px;height:14px;color:var(--accent)}.live-list{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--s-2)}.live-list li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 4px;border-radius:var(--r-sm)}.live-list li:first-child .live-rank{color:#f2c94c}.live-rank{font-family:var(--font-display);font-weight:700;color:var(--faint);text-align:center}.live-who{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text-2);font-weight:500}.live-who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-who:hover{color:var(--accent)}.live-list b{font-family:var(--font-display);color:var(--text);font-variant-numeric:tabular-nums}.live-list b small{margin-left:3px;font-family:var(--font-ui);font-size:var(--fs-2xs);color:var(--faint);font-weight:600}.live-empty{padding:var(--s-4) 0;font-size:var(--fs-sm);color:var(--muted)}@media (max-width: 720px){.live-cols{grid-template-columns:1fr}}.av{background:var(--surface-3)}.av>.chr{position:absolute;inset:0;width:100%;height:100%}.av--photo img{z-index:1}.chr{display:block;overflow:visible}.chr--live .chr-bob{animation:chr-bob 3.4s ease-in-out infinite;transform-origin:60px 104px}.chr--live .chr-eyes{animation:chr-blink 5.2s infinite;transform-origin:60px 58px;transform-box:view-box}.chr--live .chr-wobble{animation:chr-wobble 2.4s ease-in-out infinite;transform-origin:60px 30px;transform-box:view-box}.chr--live .chr-spin{animation:chr-spin 1.1s linear infinite;transform-origin:60px 6px;transform-box:view-box}.chr--live .chr-flicker{animation:chr-flicker 1.6s ease-in-out infinite;transform-origin:60px 30px;transform-box:view-box}.chr--live .chr-float{animation:chr-float 3s ease-in-out infinite}.chr--live .chr-twinkle{animation:chr-twinkle 2.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.chr--live .chr-d2{animation-delay:.7s}.chr--live .chr-d3{animation-delay:1.4s}.chr--live .chr-rise{animation:chr-rise 3.6s ease-in-out infinite}.chr--live .chr-orbit{animation:chr-orbit 6s linear infinite;transform-origin:60px 64px;transform-box:view-box}.chr--live .chr-scan{animation:chr-scan 1.8s ease-in-out infinite}@keyframes chr-bob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2.5px) scale(1.01,.99)}}@keyframes chr-blink{0%,93%,to{transform:scaleY(1)}95.5%{transform:scaleY(.08)}}@keyframes chr-wobble{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes chr-spin{to{transform:scaleX(-1)}}@keyframes chr-flicker{0%,to{transform:scale(1)}30%{transform:scale(1.04,.95)}60%{transform:scale(.97,1.05)}}@keyframes chr-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes chr-twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}@keyframes chr-rise{0%{transform:translateY(4px);opacity:0}30%,70%{opacity:1}to{transform:translateY(-8px);opacity:0}}@keyframes chr-orbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes chr-scan{0%,to{opacity:.55}50%{opacity:1}}html[data-motion=reduced] .chr--live *{animation:none!important}@media (prefers-reduced-motion: reduce){.chr--live *{animation:none!important}}.lg{display:inline-flex;align-items:center;gap:4px;vertical-align:-2px;color:var(--lg)}.lg svg{width:12px;height:13px;fill:var(--lg);filter:drop-shadow(0 1px 3px color-mix(in srgb,var(--lg) 55%,transparent))}.lg span{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.lg--grandmaster svg,.lg--master svg{animation:lg-shine 2.6s ease-in-out infinite}@keyframes lg-shine{0%,to{filter:drop-shadow(0 1px 3px color-mix(in srgb,var(--lg) 55%,transparent))}50%{filter:drop-shadow(0 0 6px var(--lg))}}.lb-views{display:inline-flex;gap:3px;padding:3px;align-self:flex-start;border-radius:var(--r-full);background:var(--surface-2);border:1px solid var(--line)}.lb-view{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:600;color:var(--muted);transition:color var(--t-fast),background var(--t-fast)}.lb-view svg{width:15px;height:15px}.lb-view:hover{color:var(--text)}.lb-view.is-active{color:var(--accent-ink);background:var(--accent);box-shadow:0 6px 18px -8px var(--accent)}[data-view-body]{display:flex;flex-direction:column;gap:var(--s-4)}.lb-sections{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.lb-sections::-webkit-scrollbar{display:none}.lb-section{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;height:36px;padding:0 14px;border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:600;color:var(--muted);border:1px solid transparent;transition:all var(--t-fast)}.lb-section svg{width:15px;height:15px}.lb-section small{min-width:20px;padding:1px 6px;border-radius:99px;font-size:var(--fs-2xs);background:var(--surface-3);color:var(--faint);text-align:center}.lb-section:hover{color:var(--text);background:var(--surface-2)}.lb-section.is-active{color:var(--text);background:var(--surface-2);border-color:var(--line-strong)}.lb-section.is-active svg{color:var(--accent)}.lb-cards{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.lb-card{display:flex;flex-direction:column;gap:6px;flex:0 0 150px;scroll-snap-align:start;padding:10px 12px;border-radius:var(--r-md);text-align:left;background:var(--surface-2);border:1px solid var(--line);transition:border-color var(--t-fast),transform var(--t-fast),background var(--t-fast)}.lb-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.lb-card.is-active{border-color:var(--accent);background:linear-gradient(160deg,var(--accent-soft),var(--surface-2) 70%);box-shadow:0 8px 22px -14px var(--accent)}.lb-card-top{display:flex;align-items:center;gap:7px;min-width:0}.lb-card-top svg{width:15px;height:15px;flex-shrink:0;color:var(--accent)}.lb-card-name{font-size:var(--fs-sm);font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-card-lead{display:flex;align-items:center;gap:7px;min-height:22px}.lb-card-lead b{font-family:var(--font-display);font-size:var(--fs-md);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-card-lead.is-empty,.lb-card-n{font-size:var(--fs-2xs);color:var(--faint)}.lb-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-3);padding-top:2px}.lb-head h3{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em}.lb-head h3 svg{width:20px;height:20px;color:var(--accent)}.lb-head p{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:var(--fs-xs);color:var(--muted)}.lb-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 7px;border-radius:99px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--surface-3)}.lb-badge svg{width:12px;height:12px}.lb-badge--verified{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.lb-variant{width:auto;min-width:150px;padding:7px 10px;font-size:var(--fs-sm)}.lb-step-chr{position:relative;display:inline-block}.lb-step-chr .lb-medal{position:absolute;right:-4px;bottom:-4px;z-index:3;border:2px solid var(--surface)}.lb-step .av{border-radius:28%;box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--medal),0 14px 30px -14px var(--medal)}.lb-step--1 .lb-step-chr:before{content:"";position:absolute;inset:-18px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--medal) 32%,transparent),transparent);z-index:-1;animation:lb-glow 3.2s ease-in-out infinite}@keyframes lb-glow{0%,to{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}.lb-step-user .lg{margin-left:2px}.lb-row .av{border-radius:30%}.lb-title{color:var(--accent);font-weight:600}.lb-name-main .lg{margin-left:2px}.lb-list--champ .lb-row,.lb-row--head{grid-template-columns:44px minmax(0,1fr) 96px 64px 78px}.lb-empty-art .av{border-radius:28%}.lb-empty{border-style:dashed}.lb-rival{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:2px 10px 2px 3px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-xs);color:var(--muted);vertical-align:middle}.lb-rival .av{border-radius:50%}.lb-rival b{color:var(--warn)}.lb-rival--top{padding-left:8px;color:#f2c94c}.lb-rival--top svg{width:13px;height:13px}.lb-me-bar .av{border-radius:30%}.lb-recent{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border-radius:var(--r-md);background:linear-gradient(90deg,var(--accent-soft),transparent 60%);border:1px solid var(--line)}.lb-recent[hidden]{display:none}.lb-recent-title{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-size:var(--fs-2xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.lb-recent-title svg{width:14px;height:14px;animation:rec-pulse 1.8s ease-in-out infinite}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.35}}.lb-recent-list{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.lb-recent-list::-webkit-scrollbar{display:none}.lb-recent-list a{display:flex;align-items:center;gap:7px;flex-shrink:0;padding:3px 12px 3px 3px;border-radius:99px;background:var(--surface);border:1px solid var(--line);color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap}.lb-recent-list a:hover{border-color:var(--accent)}.lb-recent-list span{display:flex;flex-direction:column;line-height:1.2}.lb-recent-list small{color:var(--faint);font-size:var(--fs-2xs)}.lb-explain{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-sm);color:var(--muted);line-height:1.55}.lb-explain svg{width:18px;height:18px;flex-shrink:0;margin-top:2px;color:#f2c94c}.lb-explain b{color:var(--text)}.lb-nations{display:flex;flex-direction:column;gap:2px}.lb-nation{display:grid;grid-template-columns:44px 40px minmax(0,1fr) auto;align-items:center;gap:var(--s-3);min-height:54px;padding:6px 12px;border-radius:var(--r-md)}.lb-nation:hover{background:var(--surface-2)}.lb-nation.is-me{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.lb-nation:nth-child(1) .lb-rank{color:#f2c94c}.lb-nation:nth-child(2) .lb-rank{color:#c9d1dc}.lb-nation:nth-child(3) .lb-rank{color:#d9955b}.lb-nation-flag .cflag{font-size:1.8rem}.lb-nation .lb-name small a{color:var(--text-2)}@media (max-width: 720px){.lb-list--champ .lb-row,.lb-row--head{grid-template-columns:34px minmax(0,1fr) 76px 48px}.lb-rival{display:flex;margin:6px 0 0;width:fit-content}.lb-card{flex-basis:132px}.lb-view{padding:0 12px}}.locker-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-5);align-items:center;padding:var(--s-4) var(--s-5);margin-bottom:var(--s-4);border-radius:var(--r-xl);background:radial-gradient(120% 140% at 0% 0%,var(--accent-soft),transparent 60%),var(--surface-2);border:1px solid var(--line)}.locker-chr{position:relative;width:112px;height:112px;border-radius:28%;overflow:hidden;box-shadow:0 16px 34px -18px var(--accent),inset 0 0 0 1px #ffffff14;transition:transform var(--t-med)}.locker-chr:hover{transform:translateY(-2px) rotate(-1.5deg)}.locker-chr .chr{width:100%;height:100%}.locker-chr-edit{position:absolute;right:6px;bottom:6px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.locker-chr-edit svg{width:13px;height:13px}.locker-kicker{font-size:var(--fs-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}.locker-stats{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:var(--fs-xs);color:var(--muted)}.locker-stats b{color:var(--text);font-family:var(--font-display);font-size:var(--fs-md)}.locker-views{margin-bottom:var(--s-4)}.locker-views{display:inline-flex}.locker-views .seg-btn{display:inline-flex;align-items:center;gap:7px}.locker-views .seg-btn svg{width:14px;height:14px}.award-filter-n{opacity:.6}.award-pin-note{display:flex;align-items:center;gap:7px;margin:-6px 0 var(--s-4);font-size:var(--fs-xs);color:var(--muted)}.award-pin-note svg{width:13px;height:13px;color:var(--accent)}.award-reward{display:flex;align-items:baseline;gap:6px;margin-top:6px;font-size:var(--fs-2xs);font-weight:600;color:var(--text-2);line-height:1.4}.award-reward svg{width:12px;height:12px;flex-shrink:0;color:var(--accent);align-self:center}.award-reward small{color:var(--faint);font-weight:500}.award-pin{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;color:var(--faint);transition:color var(--t-fast),background var(--t-fast)}.award-pin svg{width:13px;height:13px}.award-pin:hover{color:var(--text);background:var(--surface-3)}.award.is-pinned{border-color:var(--accent);box-shadow:0 10px 24px -16px var(--accent)}.award.is-pinned .award-pin{color:var(--accent)}.award-foot{flex-wrap:nowrap}.award-tier{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.award-xp{margin-left:auto;white-space:nowrap}@media (max-width: 560px){.locker-hero{grid-template-columns:1fr;justify-items:center;text-align:center}.locker-stats{justify-content:center}}.wd{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--s-5);align-items:start}.wd-stage{position:sticky;top:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--s-4);border-radius:var(--r-xl);background:var(--surface-2);border:1px solid var(--line);text-align:center}.wd-preview{position:relative;width:220px;height:220px;border-radius:30%;overflow:hidden;box-shadow:0 22px 44px -22px #0000008c,inset 0 0 0 1px #ffffff14}.wd-preview .chr{width:100%;height:100%}.wd-preview.is-trying{outline:2px dashed var(--warn);outline-offset:4px}.wd-trying{position:absolute;left:50%;top:10px;transform:translate(-50%);display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:99px;font-size:var(--fs-2xs);font-weight:700;color:#1a1406;background:var(--warn)}.wd-trying svg{width:11px;height:11px}.wd-name{margin-top:6px;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:800;letter-spacing:-.02em}.wd-title{font-size:var(--fs-sm);font-weight:600;color:var(--accent)}.wd-muted{color:var(--faint);font-weight:500}.wd-count{width:100%;margin-top:8px;font-size:var(--fs-xs);color:var(--muted)}.wd-count b{color:var(--text)}.wd-bar{display:block;height:6px;margin-top:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.wd-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.wd-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}.wd-actions .btn{padding:7px 12px;font-size:var(--fs-sm)}.wd-lockcard{display:flex;flex-direction:column;gap:3px;width:100%;margin-top:8px;padding:10px 12px;border-radius:var(--r-md);background:color-mix(in srgb,var(--warn) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 35%,var(--line));font-size:var(--fs-sm)}.wd-lockcard b{color:var(--text)}.wd-lockcard span{color:var(--warn);font-weight:600}.wd-lockcard small{color:var(--muted);line-height:1.4}.wd-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.wd-tab{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);transition:all var(--t-fast)}.wd-tab svg{width:13px;height:13px}.wd-tab:hover{color:var(--text)}.wd-tab.is-active{color:var(--accent-ink);background:var(--accent);border-color:transparent}.wd-note{margin-bottom:10px;font-size:var(--fs-xs);color:var(--faint)}.wd-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.wd-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 6px 8px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);transition:transform var(--t-fast),border-color var(--t-fast),box-shadow var(--t-fast)}.wd-tile:hover{transform:translateY(-2px);border-color:var(--line-strong)}.wd-tile.is-on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 10px 22px -14px var(--accent)}.wd-tile.is-on:after{content:"";position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface-2)}.wd-tile-art{display:block;width:84px;height:84px;border-radius:24%;overflow:hidden;background:var(--surface-3)}.wd-tile-art .chr{width:100%;height:100%}.wd-tile-name{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-2xs);font-weight:600;color:var(--text-2);text-align:center}.wd-tile-name svg{width:10px;height:10px}.wd-tile-need{font-size:10px;line-height:1.25;color:var(--faint);text-align:center}.wd-tile.is-locked .wd-tile-art{filter:grayscale(.85) brightness(.75);opacity:.7}.wd-tile.is-locked:hover .wd-tile-art{filter:none;opacity:1}.wd-keys{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px}.wd-key{position:relative;height:44px;border-radius:10px;font-family:var(--font-mono);font-size:var(--fs-md);font-weight:700;color:var(--text);background:var(--surface-2);border:1px solid var(--line);box-shadow:inset 0 -3px #0000002e;transition:transform var(--t-fast),border-color var(--t-fast)}.wd-key:hover{transform:translateY(-1px)}.wd-key:active{transform:translateY(1px);box-shadow:inset 0 -1px #0000002e}.wd-key.is-on{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent-soft),0 0 0 1px var(--accent)}.wd-key.is-locked{color:var(--faint)}.wd-key svg{position:absolute;right:3px;top:3px;width:9px;height:9px}.wd-titles{display:flex;flex-wrap:wrap;gap:6px}.wd-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:600;color:var(--text-2);background:var(--surface-2);border:1px solid var(--line);transition:all var(--t-fast)}.wd-chip:hover{border-color:var(--line-strong)}.wd-chip svg{width:12px;height:12px}.wd-chip small{font-size:var(--fs-2xs);color:var(--faint);font-weight:500}.wd-chip.is-on{color:var(--accent-ink);background:var(--accent);border-color:transparent}.wd-chip.is-locked{color:var(--faint);cursor:help}@media (max-width: 760px){.wd{grid-template-columns:1fr}.wd-stage{position:static}.wd-preview{width:168px;height:168px}}.acct-shortcuts{display:grid;gap:8px;margin-bottom:var(--s-4)}.acct-shortcut{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);text-align:left;background:var(--surface-2);border:1px solid var(--line);transition:border-color var(--t-fast)}.acct-shortcut:hover{border-color:var(--accent)}.acct-shortcut .av{border-radius:28%}.acct-shortcut b{display:block;font-size:var(--fs-md);color:var(--text)}.acct-shortcut small{font-size:var(--fs-xs);color:var(--muted)}.acct-shortcut>svg{width:16px;height:16px;color:var(--faint)}.acct-shortcut-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:28%;background:var(--surface-3);color:var(--accent)}.acct-shortcut-ic svg{width:18px;height:18px}.acct-menu-head .av{border-radius:28%}.acct-chip .av{border-radius:30%}.pv{display:flex;flex-direction:column;gap:var(--s-3)}.pv-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pv-card{position:relative;display:flex;flex-direction:column;gap:3px;padding:14px;border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.pv-card input{position:absolute;opacity:0;pointer-events:none}.pv-card svg{width:18px;height:18px;color:var(--muted);margin-bottom:4px}.pv-card b{color:var(--text)}.pv-card small{font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.pv-card:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pv-card:has(input:checked) svg{color:var(--accent)}.pv-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.pv-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);cursor:pointer}.pv-row b{display:block;font-size:var(--fs-md);color:var(--text)}.pv-row small{font-size:var(--fs-xs);color:var(--muted)}.pv-h{margin-top:var(--s-2);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.pv-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pv-check{display:flex;gap:9px;align-items:flex-start;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--line);cursor:pointer;transition:background var(--t-fast)}.pv-check:hover{background:var(--surface-2)}.pv-check input{margin-top:3px;accent-color:var(--accent)}.pv-check b{display:block;font-size:var(--fs-sm);color:var(--text)}.pv-check small{font-size:var(--fs-2xs);color:var(--muted)}.pv-check:has(input:checked){background:color-mix(in srgb,var(--warn) 8%,transparent);border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}input.switch{appearance:none;flex-shrink:0;width:40px;height:23px;border-radius:99px;background:var(--surface-3);border:1px solid var(--line-strong);position:relative;cursor:pointer;transition:background var(--t-fast)}input.switch:after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--text);transition:transform var(--t-med) var(--spring)}input.switch:checked{background:var(--accent);border-color:transparent}input.switch:checked:after{transform:translate(17px);background:var(--accent-ink)}input.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width: 520px){.pv-choice,.pv-grid{grid-template-columns:1fr}}.res-unlock--gift{--tier: var(--accent);cursor:pointer;border-style:dashed}.res-unlock--gift:hover{border-color:var(--accent)}.unlock-card-gift{margin-top:4px;font-size:var(--fs-2xs);font-weight:700;color:var(--accent)}.pf-title{display:inline-flex;margin-bottom:6px;padding:3px 11px;border-radius:99px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;color:var(--accent-ink);background:linear-gradient(120deg,var(--accent),var(--accent-2))}.pf-id h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;letter-spacing:-.035em;line-height:1.05;overflow-wrap:anywhere}.pf-owner-note{display:flex;align-items:center;gap:8px;padding:9px 13px;border-radius:var(--r-md);font-size:var(--fs-xs);color:var(--muted);background:var(--surface-2);border:1px dashed var(--line-strong)}.pf-owner-note svg{width:14px;height:14px;flex-shrink:0}.pf-private{display:flex;gap:14px;align-items:center;padding:var(--s-6);border-radius:var(--r-xl);background:var(--surface);border:1px dashed var(--line-strong);color:var(--muted)}.pf-private svg{width:26px;height:26px;color:var(--faint)}.pf-private b{color:var(--text);font-size:var(--fs-lg)}.pf-hls{display:flex;flex-wrap:wrap;gap:8px}.pf-hl{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:99px;font-size:var(--fs-sm);color:var(--text-2);background:var(--surface);border:1px solid var(--line)}.pf-hl svg{width:15px;height:15px;color:#f2c94c}.pf-hl b{color:var(--text);font-family:var(--font-display)}.pf-hl--fire svg{color:#ff7a1a}.pf-md{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:99px;font-size:var(--fs-2xs);font-weight:800;color:#1a1406}.pf-md--1{background:#f2c94c}.pf-md--2{background:#c9d1dc}.pf-md--3{background:#d9955b}.pf-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.pf-tile{position:relative;overflow:hidden}.pf-tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--accent),var(--accent-2));opacity:.7}.pf-best{position:relative;overflow:hidden}.pf-best.is-top:after{content:"";position:absolute;top:12px;right:12px;width:10px;height:10px;border-radius:50%;background:var(--medal);box-shadow:0 0 10px var(--medal)}.pf-best.is-top--1,.pf-games li.is-top--1{--medal: #f2c94c}.pf-best.is-top--2,.pf-games li.is-top--2{--medal: #c9d1dc}.pf-best.is-top--3,.pf-games li.is-top--3{--medal: #d9955b}.pf-best.is-top{border-color:color-mix(in srgb,var(--medal) 45%,var(--line))}.pf-best-bar{display:block;height:4px;margin-top:8px;border-radius:99px;background:var(--surface-3);overflow:hidden}.pf-best-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.tc{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;transition:transform var(--t-fast)}.tc:hover{transform:translateY(-2px) scale(1.06)}.tc svg{width:17px;height:17px}.tc--big{width:52px;height:52px;border-radius:15px}.tc--big svg{width:25px;height:25px}.tc--bronze{background:linear-gradient(140deg,#c98b52,#8a5a2b);box-shadow:0 5px 14px -8px #c98b52}.tc--silver{background:linear-gradient(140deg,#cfd6e2,#8d96a8);color:#23262e}.tc--gold{background:linear-gradient(140deg,#f7d774,#c99a2e);color:#3a2c05;box-shadow:0 5px 16px -8px #f7d774}.tc--platinum{background:linear-gradient(140deg,#a8e6f5,#5aa9c9);color:#06283a;box-shadow:0 5px 16px -8px #a8e6f5}.tc--diamond{background:linear-gradient(140deg,#c4b5fd,#ec4899 60%,#38bdf8);box-shadow:0 6px 18px -8px #c4b5fd}.pf-pins{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--s-3);margin-bottom:var(--s-4)}.pf-pin{display:flex;gap:12px;align-items:center;padding:14px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.pf-pin b{display:block;font-size:var(--fs-md);color:var(--text)}.pf-pin span{display:block;font-size:var(--fs-xs);color:var(--muted);line-height:1.4}.pf-pin small{font-size:var(--fs-2xs);color:var(--faint)}.pf-case{padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.pf-case-sum{font-size:var(--fs-sm);color:var(--muted)}.pf-case-sum b{font-family:var(--font-display);font-size:var(--fs-xl);color:var(--text)}.pf-case-bar{display:block;height:6px;margin:8px 0 var(--s-4);border-radius:99px;background:var(--surface-3);overflow:hidden}.pf-case-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#c98b52,#f7d774,#a8e6f5,#c4b5fd)}.pf-case-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:start;padding:6px 0;border-top:1px solid var(--line)}.pf-case-tier{padding-top:8px;font-size:var(--fs-2xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase}.tc-label--bronze{color:#c98b52}.tc-label--silver{color:#a9b2c2}.tc-label--gold{color:#dfb84c}.tc-label--platinum{color:#7cc7de}.tc-label--diamond{color:#c4b5fd}.pf-case-medals{display:flex;flex-wrap:wrap;gap:6px}.pf-cal{padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);overflow-x:auto}.pf-cal-grid{display:grid;grid-template-rows:repeat(7,auto);grid-auto-flow:column;grid-auto-columns:minmax(9px,1fr);gap:3px;min-width:560px}.pf-cal-d{display:block;width:100%;aspect-ratio:1;border-radius:3px;background:var(--surface-3)}.pf-cal-d--1{background:color-mix(in srgb,var(--accent) 30%,var(--surface-3))}.pf-cal-d--2{background:color-mix(in srgb,var(--accent) 55%,var(--surface-3))}.pf-cal-d--3{background:color-mix(in srgb,var(--accent) 80%,var(--surface-3))}.pf-cal-d--4{background:var(--accent);box-shadow:0 0 6px var(--accent-soft)}.pf-cal-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:10px;font-size:var(--fs-xs);color:var(--muted)}.pf-cal-key{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-2xs);color:var(--faint)}.pf-cal-key .pf-cal-d{display:inline-block;width:10px;height:10px}.pf-sub-h{margin:var(--s-4) 0 var(--s-2);font-size:var(--fs-2xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.pf-sub-h:first-of-type{margin-top:0}.pf-section .pf-games{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.pf-games li{display:block;padding:0}.pf-games li a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;row-gap:1px;align-items:center;padding:11px 14px;color:inherit}.pf-games li a>svg{grid-row:1 / 3;width:18px;height:18px;color:var(--accent)}.pf-game-name{font-weight:600;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-games li a b{grid-row:1 / 3;grid-column:3;font-size:var(--fs-lg)}.pf-game-rank{grid-column:2}.pf-games li:hover{border-color:var(--accent)}.pf-games li.is-top{border-color:color-mix(in srgb,var(--medal) 45%,var(--line))}.pf-games li.is-top .pf-game-rank{color:var(--medal);font-weight:700}.pf-missing .chr{border-radius:30%}@media (max-width: 1000px){.pf-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 600px){.pf-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.pf-case-row{grid-template-columns:1fr}}.pf-banner{display:grid;grid-template-columns:minmax(280px,40%) minmax(0,1fr);border-radius:var(--r-xl);overflow:hidden;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--sh-md)}.pf-stage{position:relative;min-height:340px;display:grid;place-items:end center;overflow:hidden;isolation:isolate}.pf-stage>.chr-backdrop{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.pf-stage:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.28)),linear-gradient(90deg,transparent 70%,color-mix(in srgb,var(--surface) 60%,transparent))}.pf-stage-light{position:absolute;left:50%;bottom:8px;width:74%;height:42px;transform:translate(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.34),transparent);filter:blur(2px)}.pf-stage-chr{position:relative;margin-bottom:4px;filter:drop-shadow(0 18px 22px rgba(0,0,0,.35))}.pf-stage-chr .chr{width:min(230px,62vw);height:auto}.pf-stage-chr .av{border-radius:30%;margin-bottom:40px;box-shadow:0 0 0 5px var(--surface)}.pf-stage .pf-ring{position:absolute;top:14px;left:14px}.pf-ring{position:relative;display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(6px);box-shadow:var(--sh-sm)}.pf-ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.pf-ring circle{fill:none;stroke-width:5}.pf-ring-bg{stroke:var(--surface-3)}.pf-ring-fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1s var(--ease-out)}.pf-ring b{font-family:var(--font-display);font-size:1.55rem;font-weight:800;line-height:1;margin-top:10px}.pf-ring small{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.pf-banner .pf-id{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:var(--s-6) var(--s-7) var(--s-6) var(--s-6);min-width:0}.pf-title{align-self:flex-start;margin-bottom:6px;padding:3px 11px;border-radius:99px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.03em;color:var(--accent-ink);background:linear-gradient(120deg,var(--accent),var(--accent-2))}.pf-banner .pf-id h1{font-size:clamp(1.9rem,4vw,2.75rem);font-weight:800;letter-spacing:-.035em;line-height:1.04;overflow-wrap:anywhere}.pf-banner .pf-actions{flex-wrap:wrap;margin-top:var(--s-4)}.pf-banner .pf-actions .btn{padding:8px 14px;font-size:var(--fs-sm)}.pf-trackers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--s-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2)}.pf-tracker{display:flex;flex-direction:column;gap:2px;padding:12px 16px;min-width:0}.pf-tracker+.pf-tracker{border-left:1px solid var(--line)}.pf-tracker-k{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-tracker b{display:flex;align-items:baseline;gap:5px;font-family:var(--font-display);font-size:1.9rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}.pf-tracker b small{font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:600;letter-spacing:0;color:var(--muted)}.pf-tracker--wpm b{color:var(--accent)}.pf-tracker--league b{align-items:center;color:var(--lg);font-size:1.45rem}.pf-tracker--league .lg svg{width:20px;height:22px}.pf-tracker-sub{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-duo{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--s-4);align-items:stretch}.pf-panel{padding:var(--s-5);border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--line);min-width:0}.pf-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap;margin-bottom:var(--s-4)}.pf-panel-head h2{display:flex;align-items:center;gap:9px;font-size:var(--fs-lg);font-weight:700}.pf-panel-head h2 svg{width:17px;height:17px;color:var(--accent)}.pc{--c1: #3a3f4f;--c2: #1d2029;--ink: #f4f1ea;--edge: rgba(255,255,255,.14);position:relative;display:flex;flex-direction:column;align-items:center;padding:18px 16px 16px;border-radius:22px;overflow:hidden;color:var(--ink);background:radial-gradient(120% 70% at 50% 0%,rgba(255,255,255,.16),transparent 60%),linear-gradient(165deg,var(--c1),var(--c2));box-shadow:inset 0 0 0 1px var(--edge),0 24px 40px -26px #0009}.pc:before{content:"";position:absolute;inset:7px;border-radius:16px;border:1px solid var(--edge);pointer-events:none}.pc:after{content:"";position:absolute;inset:-40% -60%;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.14) 50%,transparent 58%);transform:translate(-30%);animation:pc-sheen 7s ease-in-out infinite;pointer-events:none}@keyframes pc-sheen{0%,70%{transform:translate(-35%)}to{transform:translate(35%)}}html[data-motion=reduced] .pc:after{animation:none;display:none}.pc--bronze{--c1: #b07a4d;--c2: #4e3020;--edge: rgba(255,214,170,.28)}.pc--silver{--c1: #c9d1dc;--c2: #5c6575;--ink: #14171d;--edge: rgba(255,255,255,.45)}.pc--gold{--c1: #f2cf6b;--c2: #8a5d12;--ink: #1d1404;--edge: rgba(255,240,190,.5)}.pc--legend{--c1: #7b6cff;--c2: #1b1240;--edge: rgba(200,190,255,.45);background:radial-gradient(120% 70% at 50% 0%,rgba(255,255,255,.18),transparent 60%),conic-gradient(from 210deg at 50% 40%,#ff6bb5,#7b6cff,#38c7ff,#6dffb0,#ffd36b,#ff6bb5)}.pc--legend .pc-art{filter:drop-shadow(0 0 18px rgba(255,255,255,.35))}.pc-top{display:flex;align-self:stretch;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}.pc-ovr{display:flex;flex-direction:column;align-items:center;line-height:1}.pc-ovr b{font-family:var(--font-display);font-size:2.6rem;font-weight:800;letter-spacing:-.04em}.pc-ovr span{font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;opacity:.7;margin-top:2px}.pc-style{text-align:right;max-width:60%}.pc-style b{display:block;font-family:var(--font-display);font-size:var(--fs-lg);font-weight:800;letter-spacing:-.01em}.pc-style span{font-size:var(--fs-2xs);opacity:.72;line-height:1.3}.pc-art{margin-top:-8px;position:relative;z-index:1;filter:drop-shadow(0 12px 14px rgba(0,0,0,.35))}.pc-name{position:relative;z-index:1;margin-top:-4px;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:800;letter-spacing:-.02em;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pc-hex{position:relative;z-index:1;margin:6px 0 4px}.pc-note{position:relative;z-index:1;font-size:10px;line-height:1.4;opacity:.62;text-align:center;max-width:250px}.hx{display:block;overflow:visible}.hx-ring{fill:none;stroke:currentColor;stroke-opacity:.16;stroke-width:1}.hx-ring:first-child{fill:currentColor;fill-opacity:.05;stroke-opacity:.3}.hx-spoke{stroke:currentColor;stroke-opacity:.14}.hx-shape{fill:currentColor;fill-opacity:.28;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.hx-dot{fill:currentColor}.hx-v{font-family:var(--font-display);font-weight:800;font-size:15px;fill:currentColor}.hx-k{font-family:var(--font-ui);font-weight:700;font-size:8.5px;letter-spacing:.14em;fill:currentColor;fill-opacity:.66}.kbp{--b1: #ff6b6b;--b2: #ff9f43;--b3: #ffd166;--b4: #8bd17c;--b5: #3ecf8e}.kb-map{display:block;width:100%;height:auto}.kb-wall{fill:color-mix(in srgb,var(--kc, var(--surface-3)) 62%,#000)}.kb-top{fill:var(--kc, var(--surface-3))}.kb-k text{font-family:var(--font-mono);font-size:11px;font-weight:700;fill:color-mix(in srgb,#14101f 78%,transparent)}.kb-k--none .kb-top,.kb-k--0 .kb-top{fill:var(--surface-2)}.kb-k--none .kb-wall,.kb-k--0 .kb-wall{fill:var(--surface-3)}.kb-k--none text,.kb-k--0 text{fill:var(--faint)}.kb-k--1{--kc: var(--b1)}.kb-k--2{--kc: var(--b2)}.kb-k--3{--kc: var(--b3)}.kb-k--4{--kc: var(--b4)}.kb-k--5{--kc: var(--b5)}.kb-k--space .kb-top{fill:var(--surface-2)}.kb-k--space .kb-wall{fill:var(--surface-3)}.kb-k{transition:opacity var(--t-fast)}.kb-map:hover .kb-k:not(:hover){opacity:.72}.kbp-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;margin-top:var(--s-3);font-size:var(--fs-xs);color:var(--muted)}.kbp-legend{display:inline-flex;align-items:center;gap:4px}.kbp-legend span{margin:0 4px}.kbp-sw{width:16px;height:10px;border-radius:3px}.kbp-sw--1{background:var(--b1)}.kbp-sw--2{background:var(--b2)}.kbp-sw--3{background:var(--b3)}.kbp-sw--4{background:var(--b4)}.kbp-sw--5{background:var(--b5)}.kbp-call{display:flex;flex-wrap:wrap;gap:6px 18px}.kbp-call small{margin-right:6px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.kbp-call kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;margin:0 4px 0 6px;padding:0 4px;border-radius:5px;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--text);background:var(--surface-3);box-shadow:inset 0 -2px #00000040}.kbp-empty{position:relative}.kbp-empty .kb-map{opacity:.45}.kbp-empty p{margin-top:10px;font-size:var(--fs-sm);color:var(--muted)}.pf-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:var(--s-4);border-radius:var(--r-md);overflow:hidden;background:var(--line);border:1px solid var(--line)}.pf-form>div{display:flex;flex-direction:column;gap:1px;padding:10px 12px;background:var(--surface-2);min-width:0}.pf-form span{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-form b{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums}.pf-form b small{margin-left:2px;font-family:var(--font-ui);font-size:var(--fs-2xs);color:var(--muted)}.pf-form>div>small{font-size:var(--fs-2xs);color:var(--faint)}.pf-grades{display:flex;gap:10px;align-items:center}.pf-grade{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-display);font-size:var(--fs-xl);font-weight:700;font-variant-numeric:tabular-nums}.pf-grade i{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 4px;border-radius:6px;font-style:normal;font-size:11px;font-weight:900;letter-spacing:.02em;color:#1a1406}.pf-grade--ss i{background:linear-gradient(135deg,#fff3c4,#f2c14e);box-shadow:0 0 10px #f2c14e73}.pf-grade--s i{background:linear-gradient(135deg,#e7ecf3,#aab5c6)}.pf-grade--a i{background:linear-gradient(135deg,#b9f3d0,#4ade80)}.pf-tile--grades{display:flex;flex-direction:column;justify-content:center;gap:4px}.pf-chart{position:relative}.pf-trend{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;font-family:var(--font-display);font-weight:700;font-size:var(--fs-md)}.pf-trend svg{width:16px;height:16px}.pf-trend small{font-family:var(--font-ui);font-weight:500;font-size:var(--fs-xs);color:var(--faint)}.pf-trend.is-up{color:var(--ok)}.pf-trend.is-down{color:var(--err)}.pf-peak circle{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 3}.pf-peak text{font-family:var(--font-ui);font-size:10.5px;font-weight:700;fill:var(--accent)}@media (max-width: 980px){.pf-banner{grid-template-columns:1fr}.pf-stage{min-height:300px}.pf-banner .pf-id{padding:var(--s-5)}.pf-duo{grid-template-columns:1fr}.pc{max-width:340px;width:100%;justify-self:center}}@media (max-width: 600px){.pf-banner .pf-id{text-align:center;align-items:center}.pf-title{align-self:center}.pf-banner .pf-actions{justify-content:center}.pf-trackers{grid-template-columns:1fr;width:100%;text-align:left}.pf-tracker+.pf-tracker{border-left:0;border-top:1px solid var(--line)}.pf-form{grid-template-columns:repeat(2,minmax(0,1fr))}}.page-block-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-4)}.page-block-head h2{margin-bottom:0}.page-block-more{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);white-space:nowrap}.page-block-more svg{width:15px;height:15px;transition:transform var(--t-fast)}.page-block-more:hover{color:var(--text)}.page-block-more:hover svg{transform:translate(3px)}.page-block-count{margin-left:6px;font-size:var(--fs-md);font-weight:600;color:var(--faint);letter-spacing:0}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s-4)}.game-card{display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);border:1px solid var(--line);color:inherit;transition:transform var(--t-med) var(--ease-out),border-color var(--t-fast),box-shadow var(--t-med)}.game-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 18px 34px -24px #0009}.game-card-shot{position:relative;display:block;aspect-ratio:16 / 9;overflow:hidden;background:linear-gradient(140deg,var(--surface-3),var(--surface-2))}.game-card-shot img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .6s var(--ease-out)}.game-card-shot:after{content:"";position:absolute;inset:0;box-shadow:inset 0 -40px 40px -30px color-mix(in srgb,var(--surface) 70%,transparent);pointer-events:none}.game-card:hover .game-card-shot img{transform:scale(1.04)}.game-card-body{display:flex;flex-direction:column;gap:4px;padding:12px 16px 16px}.game-card-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-base);font-weight:700;color:var(--text)}.game-card-title svg{width:16px;height:16px;color:var(--accent);flex-shrink:0}.game-card-tag{margin-left:auto;padding:1px 7px;border-radius:99px;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--muted);background:var(--surface-3)}.game-card-text{font-size:var(--fs-sm);color:var(--muted);line-height:1.5}@media (max-width: 560px){.game-grid{grid-template-columns:1fr 1fr;gap:var(--s-3)}.game-card-text{display:none}.game-card-body{padding:10px 12px 12px}}.page-copy-wrap.has-aside{display:grid;grid-template-columns:minmax(0,72ch) minmax(220px,280px);justify-content:space-between;gap:var(--s-8);align-items:start}.page-aside{position:sticky;top:88px;display:flex;flex-direction:column;gap:var(--s-3);margin-bottom:var(--s-9)}.page-aside-card{display:flex;flex-direction:column;padding:var(--s-4);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.page-aside-title{margin-bottom:8px;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.page-aside-card>a{padding:5px 0 5px 12px;border-left:2px solid var(--line);font-size:var(--fs-sm);color:var(--muted);transition:color var(--t-fast),border-color var(--t-fast)}.page-aside-card>a:hover{color:var(--text);border-left-color:var(--accent)}.page-aside-keys dl{display:flex;flex-direction:column;gap:9px}.page-aside-keys dl>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.page-aside-keys dt{display:flex;gap:3px;flex-shrink:0}.page-aside-keys dd{font-size:var(--fs-xs);color:var(--muted);text-align:right}.page-aside-keys kbd{display:inline-grid;place-items:center;min-width:24px;height:22px;padding:0 6px;border-radius:6px;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--line-strong);box-shadow:inset 0 -2px 0 var(--line)}@media (max-width: 1000px){.page-copy-wrap.has-aside{grid-template-columns:1fr}.page-aside{display:none}}
