:root{--ink-950: #07080c;--ink-900: #0b0c11;--ink-850: #0f1016;--ink-800: #14151d;--ink-750: #1a1b25;--ink-700: #23242f;--ink-650: #2c2d3a;--ink-600: #3a3b4a;--ink-500: #515267;--ink-400: #6e6f86;--ink-300: #9a9bb1;--ink-200: #c3c4d4;--ink-100: #e7e7ef;--ink-050: #f5f5f9;--bg: var(--ink-900);--bg-sunken: var(--ink-950);--surface: var(--ink-800);--surface-2: var(--ink-750);--surface-hover: var(--ink-700);--border: var(--ink-700);--border-strong: var(--ink-600);--hairline: color-mix(in oklab, var(--ink-100) 8%, transparent);--text: var(--ink-100);--text-dim: var(--ink-300);--text-faint: var(--ink-400);--status-live: #35d6a4;--status-beta: #c79bff;--status-building: #f3b955;--status-planned: var(--ink-400);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, monospace;--font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, sans-serif;--fs-display: clamp(2.6rem, 1.6rem + 3.2vw, 3.5rem);--fs-h1: 2rem;--fs-h2: 1.5rem;--fs-h3: 1.1875rem;--fs-body-lg: 1.0625rem;--fs-body: .9375rem;--fs-small: .8125rem;--fs-caption: .75rem;--lh-tight: 1.1;--lh-snug: 1.3;--lh-body: 1.55;--fw-regular: 450;--fw-medium: 560;--fw-semibold: 650;--fw-bold: 740;--tracking-tight: -.02em;--tracking-label: .06em;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .45);--shadow-2: 0 6px 20px -6px rgba(0, 0, 0, .55);--shadow-3: 0 20px 50px -16px rgba(0, 0, 0, .65);--dur-fast: .12s;--dur: .2s;--dur-slow: .36s;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.4, .55, 1);--accent: #7c5cff;--accent-2: #21d4c4;--accent-contrast: #ffffff;--accent-link: #b9a8ff;--accent-soft: color-mix(in oklab, var(--accent) 16%, transparent);--accent-line: color-mix(in oklab, var(--accent) 40%, var(--border));--accent-glow: color-mix(in oklab, var(--accent) 45%, transparent)}.theme-chess{--bg: oklch(10% .012 160);--bg-sunken: oklch(7% .01 160);--surface: oklch(14% .01 155);--surface-2: oklch(17% .009 155);--surface-hover: oklch(21% .008 155);--border: oklch(21% .008 155);--border-strong: oklch(32% .007 155);--hairline: color-mix(in oklab, oklch(92% .004 95) 8%, transparent);--text: oklch(92% .004 95);--text-dim: oklch(68% .004 95);--text-faint: oklch(56% .005 155);--accent: oklch(58% .16 155);--accent-2: oklch(68% .12 155);--accent-contrast: oklch(10% .012 160);--accent-link: oklch(72% .1 160);--accent-soft: color-mix(in oklab, var(--accent) 16%, transparent);--accent-line: color-mix(in oklab, var(--accent) 35%, var(--border));--accent-glow: color-mix(in oklab, var(--accent) 40%, transparent);--font-display: "Söhne", "Avenir Next Condensed", "DIN Alternate", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--tracking-display: -.03em;--status-live: oklch(62% .18 155);--status-beta: oklch(65% .12 280);--status-building: oklch(68% .14 75);--board-light: #f0d9b5;--board-dark: #b58863;--board-coord: #7c6a52;--hl-last: #f7ec74;--hl-legal: #6ba368;--hl-check: #c8372d;--hl-selected: #9ec7f0;--cls-best: oklch(62% .18 155);--cls-inaccuracy: oklch(68% .14 75);--cls-mistake: oklch(58% .16 55);--cls-blunder: oklch(48% .2 30);--class-best: var(--cls-best);--class-good: var(--text-dim);--class-inaccuracy: var(--cls-inaccuracy);--class-mistake: var(--cls-mistake);--class-blunder: var(--cls-blunder);--class-brilliant: var(--status-beta);--streak-glow: oklch(72% .15 75);--streak-glow-soft: color-mix(in oklab, oklch(72% .15 75) 12%, transparent);--streak-glow-ring: radial-gradient(circle at 50% 50%, color-mix(in oklab, oklch(72% .15 75) 18%, transparent) 0%, transparent 70%);--xp-color: oklch(65% .16 185);--xp-color-soft: color-mix(in oklab, oklch(65% .16 185) 14%, transparent);--xp-glow: color-mix(in oklab, oklch(65% .16 185) 30%, transparent);--level-accent: oklch(74% .13 80);--level-accent-soft: color-mix(in oklab, oklch(74% .13 80) 12%, transparent);--level-glow: radial-gradient(circle at 50% 50%, color-mix(in oklab, oklch(74% .13 80) 22%, transparent) 0%, transparent 65%);--celebration-glow: radial-gradient(ellipse at 50% 40%, color-mix(in oklab, var(--accent) 14%, transparent) 0%, color-mix(in oklab, oklch(72% .15 75) 6%, transparent) 50%, transparent 75%);--progress-ring-bg: oklch(26% .007 155);--progress-ring-track: oklch(21% .008 155);--achievement-bg: color-mix(in oklab, var(--level-accent) 10%, transparent);--achievement-border: color-mix(in oklab, var(--level-accent) 28%, transparent);--celebrate-pulse: oklch(62% .18 155)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent-link);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}h1,h2,h3{line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);margin:0}.app{display:flex;flex-direction:column;min-height:100%}.appbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:var(--space-3);height:44px;padding:0 var(--space-4);background:color-mix(in oklab,var(--bg) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}@media(min-width:768px){.appbar{padding:0 var(--space-8)}}.brand{display:flex;align-items:center;gap:var(--space-2);flex:0 0 auto}.brand:hover{text-decoration:none}.brand .spine{width:2.5px;height:22px;border-radius:var(--radius-pill);background:linear-gradient(var(--accent),color-mix(in oklab,var(--accent) 35%,transparent));box-shadow:0 0 12px -2px var(--accent-glow)}.brand-text{display:flex;flex-direction:column;line-height:1.05}.brand-text .ey{display:none}.brand-text .nm{font-weight:var(--fw-bold);font-size:var(--fs-small);letter-spacing:var(--tracking-tight);color:var(--text);white-space:nowrap}@media(min-width:1024px){.brand-text .ey{display:block;font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint)}.brand .spine{width:3px;height:30px}}.topnav{display:none}@media(min-width:768px){.topnav{display:flex;align-items:center;gap:2px;margin-left:var(--space-6)}.topnav a{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:36px;height:36px;padding:0;border-radius:var(--radius-md);color:var(--text-faint);font-weight:var(--fw-medium);font-size:var(--fs-small);text-decoration:none;transition:color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.topnav a svg{width:20px;height:20px}.topnav a:hover{color:var(--text);background:var(--surface);text-decoration:none}.topnav a.active{color:var(--accent-2)}.topnav a.active:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:16px;height:2px;border-radius:var(--radius-pill);background:var(--accent)}.topnav a .nav-label{display:none}}@media(min-width:1024px){.topnav a{width:auto;padding:0 var(--space-3);justify-content:flex-start}.topnav a .nav-label{display:inline}}.spacer{flex:1 1 auto}.statuspill{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--text);font-size:var(--fs-small);cursor:pointer;white-space:nowrap;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.statuspill:hover{background:color-mix(in oklab,var(--accent) 22%,transparent)}.statuspill.is-idle{border-color:var(--border);background:var(--surface);color:var(--text-dim)}.statuspill .count{font-family:var(--font-mono);font-weight:var(--fw-semibold)}.statuspill .lbl-full{display:none}@media(min-width:520px){.statuspill .lbl-full{display:inline}}.statuspill .dot-ok{width:7px;height:7px;border-radius:50%;background:var(--status-live);flex:0 0 auto}.spinner{width:13px;height:13px;flex:0 0 auto;border-radius:50%;border:2px solid color-mix(in oklab,var(--accent) 30%,transparent);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.main{flex:1 1 auto;width:100%;max-width:1180px;margin:0 auto;padding:var(--space-8) var(--space-5) var(--space-16)}@media(max-width:767px){.main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}.track{height:6px;border-radius:var(--radius-pill);background:color-mix(in oklab,var(--ink-100) 7%,transparent);overflow:hidden}.track>i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:45;display:flex;padding:var(--space-2) var(--space-2) calc(var(--space-2) + env(safe-area-inset-bottom));background:color-mix(in oklab,var(--bg) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--border)}@media(min-width:768px){.tabbar{display:none}}.tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:var(--space-2) 0;color:var(--text-faint);border-radius:var(--radius-md)}.tab:hover{text-decoration:none}.tab svg{width:22px;height:22px}.tab span{font-size:11px;font-weight:var(--fw-medium)}.tab.active{color:var(--accent-2)}.scrim{position:fixed;inset:0;z-index:60;background:color-mix(in oklab,var(--ink-950) 62%,transparent);opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease-out),visibility var(--dur)}.scrim.open{opacity:1;visibility:visible}.popover{position:fixed;z-index:61;background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-3);display:flex;flex-direction:column;overflow:hidden;top:64px;right:var(--space-8);width:384px;max-width:calc(100vw - var(--space-4) * 2);max-height:min(560px,calc(100vh - 96px));border-radius:var(--radius-lg);transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),visibility var(--dur)}.popover.open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}@media(max-width:640px){.popover{inset:auto 0 0;width:auto;max-width:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:82vh;transform:translateY(12px)}}.pop-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.pop-head h2{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold)}.pop-head .sub{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-faint)}.pop-close{margin-left:auto;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-dim);cursor:pointer}.pop-close svg{width:16px;height:16px}.pop-close:hover{color:var(--text);border-color:var(--accent-line)}.pop-body{overflow-y:auto;padding:var(--space-2) var(--space-3) var(--space-4)}.pop-empty{color:var(--text-dim);font-size:var(--fs-small);padding:var(--space-4) var(--space-2);margin:0}.pop-section{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint);padding:var(--space-4) var(--space-2) var(--space-2)}.job{display:flex;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md)}.job:hover{background:var(--surface-2)}.job .jic{width:34px;height:34px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:color-mix(in oklab,var(--accent) 14%,transparent);color:var(--accent-2);font-size:17px}.job .jic.done{background:color-mix(in oklab,var(--status-live) 18%,transparent);color:var(--status-live)}.job .jic.err{background:color-mix(in oklab,var(--hl-check) 20%,transparent);color:color-mix(in oklab,var(--hl-check) 72%,var(--ink-050))}.job .jic.queued{background:color-mix(in oklab,var(--ink-100) 6%,transparent);color:var(--text-faint)}.job .jbody{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}.job .jtitle{display:flex;align-items:baseline;gap:var(--space-2)}.job .jtitle b{font-weight:var(--fw-medium);font-size:var(--fs-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job .jtitle .pct{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-dim);flex:0 0 auto}.job .jsub{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-faint)}.job.is-done .jsub{color:var(--status-live)}.jcancel{align-self:center;flex:0 0 auto;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-faint);cursor:pointer}.jcancel svg{width:15px;height:15px}.jcancel:hover{color:color-mix(in oklab,var(--hl-check) 72%,var(--ink-050));border-color:var(--border);background:var(--surface)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-1)}.card.compact{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.card.tight{padding:var(--space-3);border-radius:var(--radius-md)}.card.dense{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);gap:var(--space-1)}.grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.hub-card{display:flex;flex-direction:column;gap:var(--space-3);transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.hub-card:hover{transform:translateY(-2px);border-color:var(--accent-line);background:var(--surface-2);text-decoration:none}.hub-glyph{width:36px;height:36px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-2);font-size:19px}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid var(--accent-line);border-radius:var(--radius-md);background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-semibold);transition:filter var(--dur) var(--ease-out)}.btn:hover{filter:brightness(1.08)}.btn.ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.eyebrow{text-transform:uppercase;letter-spacing:var(--tracking-label);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-faint)}.dim{color:var(--text-dim);font-size:var(--fs-caption);line-height:var(--lh-body)}.board-layout{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,var(--board-col, 480px)) minmax(220px,1fr);align-items:start}.two-pane{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:start}@media(max-width:760px){.board-layout,.two-pane{grid-template-columns:1fr}.main{padding:var(--space-6) var(--space-4) calc(76px + env(safe-area-inset-bottom))}}@media(min-width:761px){.board-side{min-height:480px}}.review{max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-2)}@media(min-width:900px){.review{max-width:none;display:grid;grid-template-columns:minmax(0,480px) minmax(280px,1fr);gap:var(--space-4);align-items:start}.review .review-bar{grid-column:1 / -1}.review .cluster{position:sticky;top:72px}}.review-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;background:color-mix(in oklab,var(--bg) 84%,transparent);backdrop-filter:saturate(1.2) blur(8px)}.review-bar .icon-btn{width:40px;height:40px;flex:0 0 auto;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-dim);font-size:20px;cursor:pointer;display:grid;place-items:center;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.review-bar .icon-btn:hover{background:var(--surface-2);color:var(--text)}.review-actions{display:flex;align-items:center;gap:var(--space-1);flex:0 0 auto}.review-actions .icon-btn{width:36px;height:36px;font-size:16px}.review-actions .icon-btn.toggled{background:var(--accent-soft);color:var(--accent-2);border-color:var(--accent-line)}.review-title{flex:1;min-width:0}.review-title .t{font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-title .s{display:block;font-size:var(--fs-caption);color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-pill{flex:0 0 auto;font-size:var(--fs-caption);font-weight:var(--fw-semibold);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);line-height:1.4}.review-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.rs-head{width:100%;border:0;background:transparent;cursor:pointer;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--text);text-align:left}.rs-acc{display:flex;flex-direction:column;line-height:1.1}.rs-acc .who{font-size:var(--fs-caption);color:var(--text-faint)}.rs-acc .val{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-h3);font-variant-numeric:tabular-nums}.rs-sep{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--text-faint);font-size:var(--fs-caption)}.rs-sep .res{font-family:var(--font-mono);color:var(--text);font-weight:var(--fw-semibold);padding:1px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.rs-chev{margin-left:auto;color:var(--text-faint);font-size:13px;transition:transform var(--dur) var(--ease-out)}.review-summary.open .rs-chev{transform:rotate(180deg)}.rs-body{max-height:0;overflow:hidden;transition:max-height var(--dur-slow) var(--ease-in-out)}.review-summary.open .rs-body{max-height:460px}.rs-inner{padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--hairline);display:grid;gap:var(--space-3)}.review-chips{display:flex;gap:var(--space-2);overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.review-chips::-webkit-scrollbar{display:none}.rchip{flex:0 0 auto;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);background:var(--surface);border:1px solid color-mix(in oklab,var(--cls) 40%,var(--border));color:var(--text);transition:transform var(--dur-fast) var(--ease-out)}.rchip:active{transform:scale(.97)}.rchip.active{background:color-mix(in oklab,var(--cls) 18%,var(--surface));box-shadow:0 0 0 1px var(--cls)}.rchip .mk{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-small);color:var(--cls)}.rchip .mv{font-family:var(--font-mono);font-size:var(--fs-small)}.cluster{--cls: var(--text-faint);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-2)}.cluster-board{display:flex;padding:0;align-items:stretch}.cluster .playback-row{border-top:1px solid var(--hairline);margin:0;padding:var(--space-2) var(--space-2)}.context{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--hairline);box-shadow:inset 0 3px 0 -1px var(--cls);background:color-mix(in oklab,var(--cls) 9%,var(--surface))}.ctx-badge{flex:0 0 auto;width:30px;height:30px;border-radius:var(--radius-md);display:grid;place-items:center;background:color-mix(in oklab,var(--cls) 22%,transparent);color:var(--cls);font-family:var(--font-mono);font-weight:var(--fw-bold);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--cls) 55%,transparent)}.ctx-lbl{display:flex;flex-direction:column;line-height:1.05;min-width:0}.ctx-lbl .nm{font-weight:var(--fw-semibold);font-size:var(--fs-small);color:var(--cls)}.ctx-lbl .mv{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text)}.ctx-eval{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.05}.ctx-eval .num{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-h3);font-variant-numeric:tabular-nums}.ctx-eval .sub{font-size:10px;color:var(--text-faint)}.ctx-eval .sub b{color:var(--cls);font-weight:var(--fw-semibold)}.status-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4) var(--space-1);flex-shrink:0;flex-wrap:wrap;min-height:28px}.turn-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.turn-dot.white{background:var(--ink-050);border:1px solid var(--border-strong)}.turn-dot.black{background:#111;border:1px solid var(--ink-400)}.turn-label{font-size:var(--fs-caption);color:var(--text-faint);font-weight:var(--fw-medium)}.class-chip{font-size:var(--fs-caption);font-weight:var(--fw-bold);flex-shrink:0;line-height:1.4}.class-chip.best{color:var(--cls-best)}.class-chip.inaccuracy{color:var(--cls-inaccuracy)}.class-chip.mistake{color:var(--cls-mistake)}.class-chip.blunder{color:var(--cls-blunder)}.move-notation{font-size:var(--fs-body);font-weight:var(--fw-semibold);font-family:var(--font-mono)}.context-bar{height:3px;margin:0 var(--space-4);border-radius:2px;flex-shrink:0}.context-bar.best{background:var(--cls-best)}.context-bar.inaccuracy{background:var(--cls-inaccuracy)}.context-bar.mistake{background:var(--cls-mistake)}.context-bar.blunder{background:var(--cls-blunder)}.playback-row{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);flex-shrink:0}.playback-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);color:var(--text-dim);font-size:14px;border:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.playback-btn:hover{background:var(--surface-2);color:var(--text)}.playback-btn:disabled{opacity:.32;pointer-events:none}.playback-btn.play{width:38px;height:38px;background:var(--accent);color:var(--accent-contrast);border:none;font-size:12px}.playback-btn.play:hover{filter:brightness(1.08)}.playback-btn.edge{width:32px;height:32px;font-size:11px;opacity:.65}.playback-btn.edge:hover{opacity:1}.playback-counter{font-size:var(--fs-caption);font-family:var(--font-mono);color:var(--text-faint);min-width:52px;text-align:center;font-variant-numeric:tabular-nums}.coach-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);font-size:var(--fs-small);color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:border-color var(--dur-fast) var(--ease-out);margin:0 var(--space-4)}.coach-chip:hover{border-color:var(--accent-line)}.coach-chip .coach-avatar{width:18px;height:18px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--accent-contrast);font-weight:var(--fw-bold);flex-shrink:0}.coach-chip .coach-preview{font-size:var(--fs-small);color:var(--text-faint);max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-note{margin:var(--space-1) var(--space-4);padding:var(--space-3);background:var(--surface);border-radius:var(--radius-md);font-size:var(--fs-small);line-height:var(--lh-body);color:var(--text);border:1px solid var(--border);flex-shrink:0}.coach-note .coach-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.coach-note .coach-header .coach-avatar{width:20px;height:20px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--accent-contrast);font-weight:var(--fw-bold);flex-shrink:0}.coach-note .coach-header .coach-name{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text)}.coach-note .coach-header .depth-tag{font-size:10px;color:var(--text-faint);font-family:var(--font-mono);margin-left:auto}.coach-note .better-move{display:inline-flex;align-items:center;gap:3px;padding:1px var(--space-2);background:color-mix(in oklab,var(--cls-best) 12%,transparent);color:var(--cls-best);border-radius:3px;font-family:var(--font-mono);font-size:var(--fs-small);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.better-move:hover{background:color-mix(in oklab,var(--cls-best) 24%,transparent)}.preview-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);margin:0 var(--space-4);border-radius:var(--radius-pill);background:color-mix(in oklab,var(--cls-best) 12%,var(--surface));border:1px solid color-mix(in oklab,var(--cls-best) 30%,transparent);color:var(--cls-best);font-size:var(--fs-small);font-weight:var(--fw-semibold);cursor:pointer;flex-shrink:0}.coach-note .refutation{font-size:var(--fs-caption);color:var(--text-dim);margin-top:var(--space-2);padding-left:var(--space-2);border-left:2px solid var(--border)}.review-nav{display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-2)}.review-nav .nav-btn{cursor:pointer;border:0;height:46px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-2);color:var(--text);font-size:17px;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.review-nav .nav-btn:active{transform:scale(.96)}.review-nav .nav-btn:hover{background:var(--surface-hover)}.review-nav .nav-btn.prev,.review-nav .nav-btn.next{flex:1 1 0}.review-nav .nav-btn.next{background:var(--accent);color:var(--accent-contrast);box-shadow:0 0 0 1px var(--accent-line)}.review-nav .nav-btn.next:hover{filter:brightness(1.06);background:var(--accent)}.review-nav .nav-btn svg{width:18px;height:18px}.ctx-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:3px solid var(--cls, var(--text-faint));background:color-mix(in oklab,var(--cls, var(--text-faint)) 9%,var(--surface))}.ctx-bar .ctx-badge{width:30px;height:30px;border-radius:var(--radius-md);display:grid;place-items:center;background:color-mix(in oklab,var(--cls) 22%,transparent);color:var(--cls);font-family:var(--font-mono);font-weight:var(--fw-bold);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--cls) 55%,transparent)}.ctx-bar .ctx-lbl{display:flex;flex-direction:column;line-height:1.05;min-width:0}.ctx-bar .ctx-lbl .nm{font-weight:var(--fw-semibold);font-size:var(--fs-small);color:var(--cls)}.ctx-bar .ctx-lbl .mv{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text)}.ctx-bar .ctx-eval{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;line-height:1.05}.ctx-bar .ctx-eval .num{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-h3);font-variant-numeric:tabular-nums}.ctx-bar .ctx-eval .sub{font-size:10px;color:var(--text-faint)}.analyzed-dot{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-family:var(--font-mono);color:var(--text-faint)}.analyzed-dot .ad{width:7px;height:7px;border-radius:50%;background:var(--cls, var(--status-live));box-shadow:0 0 0 3px color-mix(in oklab,var(--cls, var(--status-live)) 20%,transparent)}.coach-sheet{position:fixed;bottom:0;left:0;right:0;z-index:70;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-2) var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-3);max-height:52vh;overflow-y:auto}.coach-sheet-handle{width:32px;height:4px;border-radius:var(--radius-pill);background:var(--border-strong);margin:0 auto;flex:0 0 auto}.coach-sheet .coach-note{margin-left:0;border-left:none;background:transparent;padding:0;font-size:var(--fs-body);border-radius:0}.coach-fab{position:fixed;bottom:calc(var(--space-4) + 76px + env(safe-area-inset-bottom));right:var(--space-4);z-index:65;width:44px;height:44px;border-radius:50%;background:var(--accent);color:var(--accent-contrast);border:0;cursor:pointer;display:grid;place-items:center;box-shadow:0 0 0 1px var(--accent-line),0 6px 20px -6px var(--accent-glow);font-size:18px;transition:transform var(--dur-fast) var(--ease-spring)}.coach-fab:active{transform:scale(.94)}.review-nav .nav-btn.edge:hover{background:var(--surface-2);color:var(--text)}.review-nav .nav-btn:disabled{opacity:.32;pointer-events:none}.nav-count{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;line-height:1.05;padding:0 var(--space-2);min-width:84px}.nav-count .mv{font-family:var(--font-mono);font-weight:var(--fw-semibold);font-size:var(--fs-body)}.nav-count .ix{font-size:10px;color:var(--text-faint);font-variant-numeric:tabular-nums}.scroll-hint{display:flex;justify-content:center;padding:8px 0 4px;flex-shrink:0}.scroll-hint .drag-handle{width:32px;height:4px;background:var(--border-strong);border-radius:2px}.review-strip{display:flex;gap:4px;overflow-x:auto;padding:4px 0;scroll-behavior:smooth;scrollbar-width:none}.review-strip::-webkit-scrollbar{display:none}.scell{--cls: var(--text-faint);flex:0 0 auto;cursor:pointer;display:flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-pill);background:color-mix(in oklab,var(--cls) 8%,var(--surface));border:1px solid color-mix(in oklab,var(--cls) 18%,transparent);color:var(--text);font-size:11px;line-height:1;transition:background var(--dur-fast) var(--ease-out)}.scell .mn{font-size:9px;color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0}.scell .sn{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);flex-shrink:0}.scell .cd{width:5px;height:5px;border-radius:999px;background:var(--cls);flex-shrink:0}.scell.book .cd{background:transparent;box-shadow:inset 0 0 0 1px var(--border-strong)}.scell.current{background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}.scell.current .sn{color:var(--text)}.scell.best{background:color-mix(in oklab,var(--cls-best) 10%,var(--surface));border-color:color-mix(in oklab,var(--cls-best) 22%,transparent)}.scell.inaccuracy{background:color-mix(in oklab,var(--cls-inaccuracy) 10%,var(--surface));border-color:color-mix(in oklab,var(--cls-inaccuracy) 22%,transparent)}.scell.mistake{background:color-mix(in oklab,var(--cls-mistake) 10%,var(--surface));border-color:color-mix(in oklab,var(--cls-mistake) 22%,transparent)}.scell.blunder{background:color-mix(in oklab,var(--cls-blunder) 10%,var(--surface));border-color:color-mix(in oklab,var(--cls-blunder) 22%,transparent)}.scell.brilliant{background:color-mix(in oklab,var(--cls-best) 12%,var(--surface));border-color:color-mix(in oklab,var(--cls-best) 26%,transparent)}.scell.inaccuracy .sn{color:var(--cls-inaccuracy)}.scell.mistake .sn{color:var(--cls-mistake)}.scell.blunder .sn{color:var(--cls-blunder)}.engine-foot{display:flex;align-items:center;justify-content:space-between;padding:8px var(--space-4);border-top:1px solid var(--border);margin-top:4px;flex-shrink:0}.engine-foot .engine-info{font-size:10px;color:var(--text-faint);font-family:var(--font-mono)}.engine-foot .engine-status{display:flex;align-items:center;gap:4px}.engine-foot .dot{width:7px;height:7px;border-radius:50%;background:var(--status-live);flex-shrink:0}.engine-foot .status-label{font-size:10px;color:var(--text-faint)}.move-list-section{padding:6px var(--space-4);flex-shrink:0}.move-list-section .section-label{font-size:10px;font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:4px}.move-row{display:flex;align-items:center;padding:5px 0;gap:6px;border-bottom:1px solid var(--hairline);font-size:var(--fs-caption);cursor:pointer}.move-row:hover{background:var(--surface-2);margin:0 calc(-1 * var(--space-3));padding-left:var(--space-3);padding-right:var(--space-3);border-radius:var(--radius-sm)}.move-row .move-num{width:22px;color:var(--text-faint);font-family:var(--font-mono);font-size:11px;flex-shrink:0}.move-row .move-txt{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:var(--fs-small);padding:2px 6px;border-radius:3px;flex:1;min-width:0;color:var(--text-dim);cursor:pointer}.move-row .move-txt.current{background:var(--surface-2);color:var(--text);font-weight:var(--fw-semibold)}.move-row .move-txt .san-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.move-row .move-txt .move-class-indicator{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.move-row .move-txt .mark-text{font-size:10px;line-height:1;flex-shrink:0}.move-row .move-txt .eval-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.move-txt.has-good .eval-dot{background:var(--cls-best)}.move-txt.has-ok .eval-dot{background:var(--cls-inaccuracy)}.move-txt.has-bad .eval-dot{background:var(--cls-mistake)}.drill-enter{animation:drill-in var(--dur) var(--ease-out)}@keyframes drill-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.drill-coach-enter{animation:coach-fade-in var(--dur-slow) var(--ease-out)}@keyframes coach-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.coach-note.why-note{border-left:3px solid var(--accent-line)}.drill-progress{display:flex;gap:4px}.drill-progress .seg{flex:1 1 0;height:4px;border-radius:999px;background:var(--border);transition:background var(--dur) var(--ease-out)}.drill-progress .seg.done{background:var(--accent-line)}.drill-progress .seg.current{background:var(--accent)}.seq-chip{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:999px;background:var(--accent-soft);color:var(--accent-2);font-size:var(--fs-caption);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-label);white-space:nowrap}@media(pointer:coarse){.drill-actions .btn{min-height:44px;padding:var(--space-3) var(--space-5)}}@media(prefers-reduced-motion:reduce){.drill-enter,.drill-coach-enter{animation:none}}.home{display:flex;flex-direction:column;gap:var(--space-10)}.hero{display:flex;flex-direction:column;gap:var(--space-6);align-items:center}@media(min-width:940px){.hero{flex-direction:row;align-items:flex-start;justify-content:center;gap:var(--space-10)}}.boardcol{width:100%;max-width:480px;display:flex;flex-direction:column;gap:var(--space-3)}.board-meta{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint)}.board-meta .opening{color:var(--text-dim);text-transform:none;letter-spacing:0}.console{width:100%;max-width:480px;display:flex;flex-direction:column;gap:var(--space-4)}@media(min-width:940px){.console{width:312px;flex:0 0 312px}}.turnline{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.turnline .side{width:14px;height:14px;border-radius:50%;flex:0 0 auto;background:var(--ink-950);box-shadow:inset 0 0 0 2px var(--ink-600),0 1px #ffffff1f}.turnline .side.white{background:var(--ink-050);box-shadow:inset 0 0 0 1px var(--ink-400)}.turnline .t{display:flex;flex-direction:column;line-height:1.2}.turnline .t strong{font-weight:var(--fw-semibold)}.turnline .t span{font-size:var(--fs-small);color:var(--text-faint)}.turnline .ply{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text-dim)}.linkish{background:none;border:none;cursor:pointer;color:var(--accent-link)}.cta{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border:none;border-radius:var(--radius-lg);background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-bold);font-size:var(--fs-body-lg);cursor:pointer;box-shadow:0 8px 24px -10px var(--accent-glow);transition:background var(--dur) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.cta:hover{background:color-mix(in oklab,var(--accent) 88%,var(--ink-050));transform:translateY(-1px);text-decoration:none}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field>.flabel{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint)}.segmented{display:flex;padding:3px;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.segmented button{flex:1 1 0;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);font-size:var(--fs-small);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.segmented button:hover{color:var(--text)}.segmented button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-semibold)}.ghost{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);font-size:var(--fs-small);font-weight:var(--fw-medium);cursor:pointer;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.ghost:hover{border-color:var(--accent-line);background:var(--surface-hover)}.cards{display:flex;flex-flow:row wrap;gap:var(--space-4)}.homecard{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:var(--space-4)}.card-head{display:flex;align-items:center;gap:var(--space-3)}.hub-glyph.sm{width:30px;height:30px;font-size:16px}.card-head h3{margin:0;font-size:var(--fs-body);font-weight:var(--fw-semibold)}.card-head .meta{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-faint)}.focus{display:flex;flex-direction:column;gap:var(--space-3)}.focusrow{display:flex;flex-direction:column;gap:var(--space-2)}.focusrow .top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.focusrow .top b{font-weight:var(--fw-medium);font-size:var(--fs-small)}.focusrow .top span{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-dim)}.games{display:flex;flex-direction:column}.gamerow{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);text-decoration:none}.gamerow:last-child{border-bottom:none}.gamerow:hover{text-decoration:none}.gamerow .who{display:flex;flex-direction:column;line-height:1.25;min-width:0}.gamerow .who b{font-weight:var(--fw-medium);font-size:var(--fs-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.gamerow .who span{font-size:var(--fs-caption);color:var(--text-faint)}.gamerow .ago{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-faint);flex:0 0 auto}.stats{display:flex;gap:var(--space-3)}.stat{flex:1 1 0;display:flex;flex-direction:column;gap:2px}.stat .n{font-family:var(--font-mono);font-size:var(--fs-h2);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.stat .k{font-size:var(--fs-caption);color:var(--text-faint)}.cardcta{margin-top:auto;display:inline-flex;align-items:center;gap:var(--space-2);padding-top:var(--space-1);font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--accent-link);text-decoration:none}.cardcta svg{width:15px;height:15px}.cardcta:hover{text-decoration:none}.improve{display:flex;flex-direction:column;gap:var(--space-8);max-width:720px;margin:0 auto}.home-stats{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.home-stats .stat{flex:0 0 auto;min-width:70px}.home-stats .stat .n{font-size:var(--fs-body-lg)}.intro{display:flex;flex-direction:column;gap:var(--space-4)}.intro .kicker{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-2)}.intro h1{margin:0;font-size:var(--fs-h1);letter-spacing:var(--tracking-tight);line-height:var(--lh-tight, 1.1)}.intro h1 .hl{color:var(--accent-2)}.intro .lede{margin:0;color:var(--text-dim);font-size:var(--fs-body-lg);max-width:56ch}.intro .cta{align-self:flex-start}.intro .reassure{margin:0;font-size:var(--fs-small)}.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4)}.sec-head h2{margin:0;font-size:var(--fs-h3);font-weight:var(--fw-semibold)}.sec-head .more{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-small);color:var(--accent-link);text-decoration:none}.sec-head .more svg{width:14px;height:14px}.steps{display:flex;flex-direction:column;gap:var(--space-3)}.step{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.step .num{flex:0 0 28px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-soft);color:var(--accent-2);font-weight:var(--fw-bold);font-size:var(--fs-small)}.step .stxt{display:flex;flex-direction:column;gap:2px}.step .stxt b{font-weight:var(--fw-semibold)}.step .stxt span{color:var(--text-dim);font-size:var(--fs-small)}.greet h1{margin:0;font-size:var(--fs-h1);letter-spacing:var(--tracking-tight)}.greet .sub{color:var(--text-faint);font-size:var(--fs-small)}.pending{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--accent-soft);border:1px solid var(--accent-line);flex-wrap:wrap}.pending.is-error{background:color-mix(in oklab,var(--hl-check) 10%,transparent);border-color:color-mix(in oklab,var(--hl-check) 35%,var(--border))}.pending .pcount{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;min-width:44px}.pending .pcount b{font-family:var(--font-mono);font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:1;color:var(--accent-2)}.pending .pcount span{font-size:var(--fs-caption);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--tracking-label)}.pending .pbody{display:flex;flex-direction:column;gap:2px;flex:1 1 200px;min-width:0}.pending .pbody b{font-weight:var(--fw-semibold)}.pending .pbody span{color:var(--text-dim);font-size:var(--fs-small)}.pending .panalyze{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:none;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-semibold);cursor:pointer;transition:background var(--dur) var(--ease-out)}.pending .panalyze:hover{background:color-mix(in oklab,var(--accent) 88%,var(--ink-050))}.gamerow .result{flex:0 0 auto;min-width:38px;text-align:center;font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-dim);padding:2px var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.gamerow .review{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);font-size:var(--fs-small);font-weight:var(--fw-medium);cursor:pointer;text-decoration:none}.gamerow .review:hover{border-color:var(--accent-line);background:var(--surface-hover)}.gamerow .review[disabled]{opacity:.5;cursor:default}.gamerow .review.pendingacc{color:var(--accent-2);border-color:var(--accent-line)}.gamerow .review svg{width:14px;height:14px}.secondary-play{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-decoration:none;color:inherit;transition:border-color var(--dur) var(--ease-out)}.secondary-play:hover{border-color:var(--accent-line);text-decoration:none}.secondary-play .sic{flex:0 0 auto;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-dim)}.secondary-play .stx{display:flex;flex-direction:column;gap:1px}.secondary-play .stx b{font-weight:var(--fw-semibold);font-size:var(--fs-small)}.secondary-play .stx span{color:var(--text-faint);font-size:var(--fs-caption)}.secondary-play>svg:last-child{margin-left:auto;width:16px;height:16px;color:var(--text-faint)}.analysis-head{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.analysis-head.busy{gap:var(--space-3)}.analysis-head.is-error{border-color:color-mix(in oklab,var(--hl-check) 35%,var(--border));background:color-mix(in oklab,var(--hl-check) 8%,transparent)}.analysis-err{flex-basis:100%;color:var(--hl-check);font-size:var(--fs-small)}.acc-pair{display:flex;gap:var(--space-3)}.acc-chip{display:flex;flex-direction:column;align-items:center;min-width:56px}.acc-chip .acc-n{font-family:var(--font-mono);font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:1}.acc-chip .acc-l{font-size:var(--fs-caption);color:var(--text-faint);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lowlight-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid color-mix(in oklab,var(--chip) 45%,var(--border));border-radius:var(--radius-pill);background:color-mix(in oklab,var(--chip) 12%,transparent);color:var(--chip);font-family:var(--font-mono);font-size:var(--fs-caption);cursor:pointer;transition:background var(--dur) var(--ease-out)}.lowlight-chip:hover{background:color-mix(in oklab,var(--chip) 22%,transparent)}.install-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-2);font-size:var(--fs-small);font-weight:var(--fw-semibold);cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease-out)}.install-btn:hover{background:color-mix(in oklab,var(--accent) 26%,transparent)}.install-btn svg{width:16px;height:16px}@media(max-width:420px){.install-btn span{display:none}}.tut-scrim{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:color-mix(in oklab,var(--ink-950) 72%,transparent);backdrop-filter:blur(4px)}.tut-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);padding:var(--space-5);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3)}.tut-top{width:100%;display:flex;align-items:center;justify-content:space-between}.tut-kicker{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-2)}.tut-skip{background:none;border:none;color:var(--text-faint);font-size:var(--fs-small);cursor:pointer;padding:var(--space-1) var(--space-2)}.tut-glyph{width:68px;height:68px;margin-top:var(--space-2);display:flex;align-items:center;justify-content:center;font-size:32px;border-radius:var(--radius-lg);color:var(--accent-2);background:radial-gradient(80% 100% at 50% 0,var(--accent-soft),transparent 75%),var(--surface-2);border:1px solid var(--accent-line)}.tut-title{font-size:var(--fs-h3);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight)}.tut-body{margin:0;color:var(--text-dim);font-size:var(--fs-small);line-height:var(--lh-snug);max-width:32ch}.tut-dots{display:flex;gap:var(--space-2);margin:var(--space-2) 0}.tut-dot{width:7px;height:7px;border-radius:50%;background:var(--border-strong);transition:background var(--dur) var(--ease-out)}.tut-dot.on{background:var(--accent)}.tut-actions{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tut-actions .btn{min-width:96px;justify-content:center}@media(prefers-reduced-motion:reduce){.tut-dot{transition:none}}.lg-scrim{position:fixed;inset:0;z-index:60;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in oklab,var(--ink-950) 62%,transparent);backdrop-filter:blur(3px)}@media(min-width:680px){.lg-scrim{align-items:center;padding:var(--space-8)}}.lg-sheet{width:100%;max-width:440px;max-height:94vh;display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-bottom:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-3)}@media(min-width:680px){.lg-sheet{border-bottom:1px solid var(--border);border-radius:var(--radius-xl)}}.lg-grab{align-self:center;width:36px;height:4px;border-radius:var(--radius-pill);background:var(--ink-600);margin:var(--space-3) 0 var(--space-1)}.lg-head{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-4)}.lg-kicker{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-2)}.lg-title{font-size:var(--fs-h3);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);margin-top:2px}.lg-close{flex:none;width:44px;height:44px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text-dim);font-size:1.1rem;cursor:pointer}.lg-body{overflow-y:auto;padding:0 var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-5)}.lg-sec{font-family:var(--font-mono);font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-faint);margin-bottom:var(--space-2)}.lg-rows{display:flex;flex-direction:column;gap:var(--space-2)}.lg-row{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3)}.lg-mark{flex:none;width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-body-lg);font-weight:var(--fw-bold);color:var(--c);background:color-mix(in oklab,var(--c) 22%,var(--surface));outline:1px solid color-mix(in oklab,var(--c) 45%,transparent)}.lg-txt{flex:1;min-width:0}.lg-txt b{font-weight:var(--fw-semibold);font-size:var(--fs-small)}.lg-d{color:var(--text-dim);font-size:var(--fs-small);line-height:var(--lh-snug)}.lg-eval,.lg-arrow{display:flex;gap:var(--space-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.lg-eval-demo{flex:none;display:flex;gap:var(--space-2);align-items:stretch}.lg-bar{width:16px;height:120px;border-radius:var(--radius-pill);overflow:hidden;background:var(--ink-950);border:1px solid var(--border);display:flex;flex-direction:column;justify-content:flex-end}.lg-bar-w{background:var(--ink-100)}.lg-ticks{display:flex;flex-direction:column;justify-content:space-between;font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-faint);padding:2px 0}.lg-num{font-family:var(--font-mono);font-size:var(--fs-h3);font-weight:var(--fw-bold)}.lg-kv{display:flex;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap}.lg-chip{font-family:var(--font-mono);font-size:var(--fs-caption);padding:4px 9px;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border);color:var(--text-dim)}.lg-foot{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);background:var(--surface)}.install-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.area-card{display:flex;flex-direction:column;gap:var(--space-3)}.area-card .area-glyph{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--accent-soft);color:var(--accent-2);font-size:20px;flex-shrink:0}.area-card .area-progress{display:flex;align-items:center;gap:var(--space-2)}.area-card .area-progress .track{flex:1}.step-track{display:flex;align-items:center;gap:6px}.step-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-caption);font-weight:var(--fw-semibold);font-family:var(--font-mono);border:2px solid var(--border);color:var(--text-faint);background:transparent;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.step-dot.done{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.step-dot.current{border-color:var(--accent);color:var(--accent-2);background:var(--accent-soft)}.step-connector{width:16px;height:2px;background:var(--border);flex-shrink:0}.step-connector.done{background:var(--accent-line)}.puzzle-source{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--fs-caption);font-weight:var(--fw-medium);white-space:nowrap}.puzzle-source.general{background:var(--accent-soft);color:var(--accent-2)}.puzzle-source.custom{background:color-mix(in oklab,var(--status-beta) 18%,transparent);color:var(--status-beta)}.train-cta{display:inline-flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--accent-link);text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out)}.train-cta:hover{background:var(--accent-soft)}.opp-reply{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-small);color:var(--text-dim);animation:coach-fade-in var(--dur-slow) var(--ease-out)}.free-practice-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--hairline)}.free-practice-row:last-child{border-bottom:none}.theme-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.theme-chip{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:var(--fs-caption);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.theme-chip:hover{border-color:var(--accent-line);color:var(--text)}.theme-chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2)}.walkthrough-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-1) 0;flex-shrink:0}.walkthrough-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);border:1px solid var(--border);cursor:pointer;flex-shrink:0;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.walkthrough-nav-btn:hover{background:var(--surface);color:var(--text)}.walkthrough-nav-btn:disabled{opacity:.3;pointer-events:none}.walkthrough-counter{font-size:var(--fs-caption);font-family:var(--font-mono);color:var(--text-faint);min-width:44px;text-align:center;font-variant-numeric:tabular-nums;padding:0 var(--space-1)}.walkthrough-skip{display:inline-flex;align-items:center;gap:3px;align-self:center;padding:var(--space-1) var(--space-2);border:none;background:none;color:var(--accent-link);font-size:var(--fs-caption);font-weight:var(--fw-semibold);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--dur-fast) var(--ease-out)}.walkthrough-skip:hover{background:var(--accent-soft)}.briefing-line{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text-dim);line-height:1.7;padding:var(--space-2) var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}@media(max-width:480px){.tut-actions .btn{min-width:80px;padding:var(--space-2) var(--space-4);font-size:var(--fs-small)}.tut-card{padding:var(--space-4);gap:var(--space-2)}.tut-glyph{width:56px;height:56px;font-size:26px}.tut-title{font-size:var(--fs-h4)}}.drill-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;padding-top:var(--space-1)}.drill-act{display:inline-flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--fs-caption);font-weight:var(--fw-semibold);cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--text-dim);transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);white-space:nowrap;text-decoration:none}.drill-act:hover{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.drill-act:disabled{opacity:.35;pointer-events:none}.drill-act.primary{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent-line)}.drill-act.primary:hover{filter:brightness(1.08)}.drill-act.subtle{border:none;background:none;color:var(--text-faint);padding:var(--space-1) var(--space-2);margin-left:auto}.drill-act.subtle:hover{color:var(--text);background:var(--surface)}.progress-ring-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-ring-svg{transform:rotate(-90deg)}.progress-ring-track{fill:none;stroke:var(--progress-ring-track)}.progress-ring-fill{fill:none;stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .8s var(--ease-in-out)}.progress-ring-fill.xp{stroke:var(--xp-color)}.progress-ring-fill.level{stroke:var(--level-accent)}.progress-ring-fill.streak{stroke:var(--streak-glow)}.progress-ring-fill.complete{stroke:var(--celebrate-pulse);filter:drop-shadow(0 0 6px color-mix(in oklab,var(--celebrate-pulse) 60%,transparent))}.progress-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.progress-ring-center .big{font-size:20px;font-weight:var(--fw-bold);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.progress-ring-center .label{font-size:10px;color:var(--text-dim);font-weight:var(--fw-medium)}.streak-banner{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--streak-glow-soft);border:1px solid color-mix(in oklab,var(--streak-glow) 25%,transparent);position:relative;overflow:hidden}.streak-banner:before{content:"";position:absolute;inset:-20px;background:var(--streak-glow-ring);animation:streak-pulse 2.5s ease-in-out infinite;pointer-events:none}.streak-banner .streak-icon{font-size:14px;position:relative}.streak-banner .streak-label{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--streak-glow);position:relative}.streak-banner .streak-sub{font-size:10px;color:color-mix(in oklab,var(--streak-glow) 70%,var(--text-dim));position:relative}@keyframes streak-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.level-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--level-accent-soft);border:1px solid var(--achievement-border)}.level-badge .level-icon{font-size:14px}.level-badge .level-label{font-size:var(--fs-caption);font-weight:var(--fw-bold);color:var(--level-accent);text-transform:uppercase;letter-spacing:var(--tracking-label)}.level-badge .level-num{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-body);color:var(--level-accent)}.xp-bar-wrap{display:flex;flex-direction:column;gap:var(--space-1)}.xp-bar-header{display:flex;justify-content:space-between;align-items:baseline}.xp-bar-header .level-text{font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--text-dim)}.xp-bar-header .xp-text{font-size:var(--fs-caption);font-family:var(--font-mono);color:var(--text-faint)}.xp-bar{height:4px;border-radius:var(--radius-pill);background:var(--progress-ring-bg);overflow:hidden}.xp-bar-fill{height:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--xp-color),color-mix(in oklab,var(--xp-color) 70%,var(--accent)));transition:width 1s var(--ease-in-out);position:relative}.xp-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);animation:xp-shine 2s ease-in-out infinite}@keyframes xp-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.xp-toast{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--xp-color-soft);border:1px solid color-mix(in oklab,var(--xp-color) 30%,transparent);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--xp-color);animation:xp-toast-in .5s var(--ease-spring) both;white-space:nowrap}.xp-toast .xp-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--xp-color);color:var(--bg);font-size:9px;font-weight:var(--fw-bold)}@keyframes xp-toast-in{0%{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.celebration-check{width:64px;height:64px;border-radius:50%;background:var(--celebrate-pulse);display:flex;align-items:center;justify-content:center;animation:check-pop .5s var(--ease-spring) both;position:relative}.celebration-check.sm{width:48px;height:48px}.celebration-check svg{width:32px;height:32px;color:var(--bg)}.celebration-check.sm svg{width:22px;height:22px}.celebration-check .spark{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--celebrate-pulse);animation:spark-burst .8s var(--ease-out) .2s both}@keyframes check-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}@keyframes spark-burst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--sx, -24px),var(--sy, -28px)) scale(0);opacity:0}}.achievement-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--achievement-bg);border:1px solid var(--achievement-border);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--level-accent);white-space:nowrap}.achievement-chip .medal{font-size:13px}.insight-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--border)}.insight-card .insight-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:15px}.insight-card .insight-body{font-size:var(--fs-small);color:var(--text-dim);line-height:var(--lh-snug)}.insight-card .insight-body strong{color:var(--text);font-weight:var(--fw-semibold)}.roll-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);position:relative;overflow:hidden}.roll-banner:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 30%,var(--streak-glow-soft) 0%,transparent 60%);pointer-events:none}.roll-banner .roll-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:color-mix(in oklab,var(--streak-glow) 16%,transparent);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;position:relative}.roll-banner .roll-text{font-size:var(--fs-small);color:var(--text-dim);line-height:var(--lh-snug);position:relative}.roll-banner .roll-text strong{color:var(--streak-glow);font-weight:var(--fw-semibold)}.btn-shine{position:relative;overflow:hidden}.btn-shine:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.12) 45%,rgba(255,255,255,.18) 50%,rgba(255,255,255,0) 55%);background-size:200% 100%;animation:btn-shine-sweep 3s ease-in-out infinite;pointer-events:none}@keyframes btn-shine-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.slide-up{animation:slide-up .5s var(--ease-out) both}.slide-up.d1{animation-delay:.1s}.slide-up.d2{animation-delay:.2s}.slide-up.d3{animation-delay:.3s}.slide-up.d4{animation-delay:.4s}.slide-up.d5{animation-delay:.5s}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes glow-breathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes ring-complete{0%{stroke-dashoffset:452.39}to{stroke-dashoffset:0}}@keyframes dot-bounce{0%{transform:translateY(0)}40%{transform:translateY(-6px)}to{transform:translateY(0)}}.goal-ring-card{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--border);position:relative;overflow:hidden}.goal-ring-card:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 20% 40%,color-mix(in oklab,var(--accent) 8%,transparent) 0%,transparent 60%);pointer-events:none}.goal-ring-card .goal-ring-wrap{position:relative;width:72px;height:72px;flex-shrink:0}.goal-ring-card .goal-ring-wrap svg{width:72px;height:72px;transform:rotate(-90deg)}.goal-ring-card .goal-ring-wrap .progress-ring-track,.goal-ring-card .goal-ring-wrap .progress-ring-fill{stroke-width:6}.goal-ring-card .goal-ring-center .big{font-size:18px}.goal-ring-card .goal-info{flex:1;min-width:0;position:relative}.goal-ring-card .goal-info h3{font-size:var(--fs-body);font-weight:var(--fw-semibold);margin-bottom:2px}.goal-ring-card .goal-info p{font-size:var(--fs-caption);color:var(--text-dim);line-height:var(--lh-snug)}.coach-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);position:relative}.coach-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.coach-card-header .coach-label{font-size:var(--fs-caption);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:var(--fw-semibold)}.coach-card p{font-size:var(--fs-small);color:var(--text-dim);line-height:var(--lh-snug);margin:0}.coach-card p strong{color:var(--text);font-weight:var(--fw-semibold)}.level-xp-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-4)}.level-xp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.level-xp-header .lvl-compact{display:inline-flex;align-items:center;gap:var(--space-2)}.level-xp-header .lvl-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--level-accent-soft);border:1px solid var(--achievement-border);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:var(--fw-bold)}.level-xp-header .lvl-info .lvl-label{font-size:var(--fs-caption);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:var(--fw-semibold)}.level-xp-header .lvl-info .lvl-name{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--level-accent)}.level-xp-header .xp-next{text-align:right}.level-xp-header .xp-next .xp-val{font-family:var(--font-mono);font-weight:var(--fw-bold);font-size:var(--fs-body);color:var(--xp-color)}.level-xp-header .xp-next .xp-to{font-size:var(--fs-caption);color:var(--text-faint)}.area-pill{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-pill)}.area-pill.tactics{background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--accent-2)}.area-pill.openings{background:color-mix(in oklab,var(--status-beta) 18%,transparent);color:var(--status-beta)}.area-pill.endgame{background:color-mix(in oklab,var(--status-live) 18%,transparent);color:var(--status-live)}.streak-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 10px;border-radius:var(--radius-pill);background:var(--streak-glow-soft);border:1px solid color-mix(in oklab,var(--streak-glow) 25%,transparent);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--streak-glow);position:relative;overflow:hidden}.streak-badge:before{content:"";position:absolute;inset:-20px;background:var(--streak-glow-ring);animation:streak-pulse 2.5s ease-in-out infinite;pointer-events:none}.stats-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-2)}.stat-cell{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:var(--space-3);text-align:center}.stat-cell .stat-val{font-family:var(--font-mono);font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.stat-cell .stat-val.up{color:var(--status-live)}.stat-cell .stat-val.down{color:var(--cls-blunder)}.stat-cell .stat-val.same{color:var(--text-dim)}.stat-cell .stat-label{font-size:var(--fs-caption);color:var(--text-faint);margin-top:2px}.coach-review-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-xl);padding:var(--space-5);position:relative;overflow:hidden}.coach-review-card:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 90% 10%,color-mix(in oklab,var(--accent) 8%,transparent) 0%,transparent 70%);pointer-events:none}.coach-review-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.coach-dot{width:8px;height:8px;border-radius:50%;background:var(--status-live);box-shadow:0 0 6px color-mix(in oklab,var(--status-live) 50%,transparent)}.coach-review-header span{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:var(--fw-semibold);color:var(--text-faint)}.coach-review-card h3{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-semibold);margin-bottom:var(--space-2)}.coach-review-card p{font-size:var(--fs-small);color:var(--text-dim);line-height:var(--lh-snug)}.weakest-callout{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface);border:1px solid var(--hairline);text-decoration:none;color:inherit}.weakest-callout:hover{border-color:var(--accent-line);text-decoration:none}.weakest-callout .phase-icon{width:40px;height:40px;border-radius:var(--radius-md);background:color-mix(in oklab,var(--cls-mistake) 14%,transparent);border:1px solid color-mix(in oklab,var(--cls-mistake) 30%,transparent);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.weakest-info{flex:1;min-width:0}.weakest-info .weak-label{font-size:var(--fs-caption);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:var(--fw-semibold)}.weakest-info .weak-title{font-family:var(--font-display);font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text);margin-top:2px}.weakest-info .weak-stat{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--cls-mistake);margin-top:2px}.weakest-callout .train-chip{flex-shrink:0;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:color-mix(in oklab,var(--cls-mistake) 12%,transparent);border:1px solid color-mix(in oklab,var(--cls-mistake) 30%,transparent);font-size:var(--fs-caption);font-weight:var(--fw-semibold);color:var(--cls-mistake)}.celebration-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-6);max-width:400px;margin:0 auto;padding:var(--space-4) 0;position:relative;overflow:hidden}.celebration-main:before{content:"";position:absolute;inset:0;background:var(--celebration-glow);animation:glow-breathe 3s ease-in-out infinite;pointer-events:none}.solved-ring-section{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);position:relative;z-index:1}.solved-ring-wrap{position:relative;width:160px;height:160px;flex-shrink:0}.solved-ring-svg{width:160px;height:160px;transform:rotate(-90deg)}.solved-ring-track{fill:none;stroke:var(--progress-ring-track);stroke-width:8}.solved-ring-fill{fill:none;stroke:var(--celebrate-pulse);stroke-width:8;stroke-linecap:round;filter:drop-shadow(0 0 14px color-mix(in oklab,var(--celebrate-pulse) 55%,transparent))}.solved-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.solved-label{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-bold);letter-spacing:var(--tracking-display)}.solved-sub{font-size:var(--fs-small);color:var(--text-dim)}.xp-earned{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);position:relative;z-index:1}.xp-earned .xp-amount{font-family:var(--font-mono);font-size:var(--fs-display);font-weight:var(--fw-bold);color:var(--xp-color)}.xp-earned .xp-label{font-family:var(--font-display);font-size:var(--fs-caption);color:var(--text-dim);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:var(--fw-semibold)}.streak-continued{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--streak-glow-soft);border:1px solid color-mix(in oklab,var(--streak-glow) 25%,transparent);position:relative;overflow:hidden;z-index:1}.streak-continued:before{content:"";position:absolute;inset:-20px;background:var(--streak-glow-ring);animation:streak-pulse 2.5s ease-in-out infinite;pointer-events:none}.streak-continued .s-icon{font-size:16px;position:relative}.streak-continued .s-text{font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--streak-glow);position:relative}.coach-footer{text-align:center;font-size:var(--fs-small);color:var(--text-dim);line-height:var(--lh-snug);position:relative;z-index:1}.coach-footer strong{color:var(--text);font-weight:var(--fw-semibold)}.session-stats{display:flex;gap:var(--space-8);position:relative;z-index:1}.session-stat{text-align:center;display:flex;flex-direction:column;align-items:center}.session-stat .stat-val{font-family:var(--font-mono);font-size:var(--fs-h3);font-weight:var(--fw-bold);line-height:var(--lh-tight)}.session-stat .stat-val.good{color:var(--status-live)}.session-stat .stat-label{font-size:var(--fs-caption);color:var(--text-faint);margin-top:2px}.progress-dots-row{display:flex;align-items:center;gap:var(--space-2);position:relative;z-index:1}.progress-dot{width:8px;height:8px;border-radius:50%;background:var(--felt-650, var(--progress-ring-bg));transition:all .3s var(--ease-spring)}.progress-dot.done{background:var(--celebrate-pulse);box-shadow:0 0 6px color-mix(in oklab,var(--celebrate-pulse) 40%,transparent)}.progress-dot.current{width:10px;height:10px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow);animation:dot-bounce .6s var(--ease-spring) both}.session-actions{display:flex;flex-direction:column;gap:var(--space-2);width:100%;max-width:280px}.btn-primary{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-6);border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:var(--fs-body);letter-spacing:var(--tracking-label);border:none;cursor:pointer;position:relative;overflow:hidden;transition:background var(--dur-fast) var(--ease-out);text-decoration:none}.btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.1) 45%,rgba(255,255,255,.15) 50%,rgba(255,255,255,0) 55%);background-size:200% 100%;animation:btn-shine-sweep 3s ease-in-out infinite;pointer-events:none}.btn-primary:hover{background:color-mix(in oklab,var(--accent) 85%,#fff)}.btn-secondary{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--hairline);color:var(--text-dim);font-weight:var(--fw-medium);font-size:var(--fs-small);cursor:pointer;transition:all var(--dur-fast) var(--ease-out);text-decoration:none}.btn-secondary:hover{color:var(--text);border-color:var(--accent-line)}.section-heading{font-family:var(--font-display);font-size:var(--fs-caption);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--tracking-label);font-weight:var(--fw-semibold)}.game-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--hairline);text-decoration:none;color:inherit}.game-row:hover{border-color:var(--accent-line);text-decoration:none}.game-result{width:10px;height:10px;border-radius:50%;flex-shrink:0}.game-result.win{background:var(--status-live)}.game-result.loss{background:var(--cls-blunder)}.game-result.draw{background:var(--text-faint)}.game-info{flex:1;min-width:0}.game-info .game-opponent{font-size:var(--fs-small);font-weight:var(--fw-semibold)}.game-info .game-meta{font-size:var(--fs-caption);color:var(--text-faint);margin-top:1px}.game-rating{font-family:var(--font-mono);font-size:var(--fs-small);font-weight:var(--fw-semibold);flex-shrink:0}.game-rating.up{color:var(--status-live)}.game-rating.down{color:var(--cls-blunder)}.game-rating.same{color:var(--text-dim)}@media(prefers-reduced-motion:reduce){.streak-banner:before,.streak-badge:before,.xp-bar-fill:after,.celebration-check,.celebration-check .spark,.xp-toast,.slide-up,.btn-shine:after,.btn-primary:after,.progress-dot.current,.progress-dot,[class*=glow-breathe],[style*=glow-breathe]{animation:none!important}.progress-ring-fill,.progress-ring-fill.complete,.solved-ring-fill{transition:none}}@media(max-width:480px){.gamerow{padding:var(--space-2) 0;gap:var(--space-2)}.gamerow .result{min-width:32px;font-size:11px;padding:2px var(--space-1)}.gamerow .who b{font-size:var(--fs-caption)}.gamerow .who span{font-size:10px}.gamerow .review{padding:var(--space-1) var(--space-2);font-size:var(--fs-caption)}.improve{gap:var(--space-5)}}@media(pointer:coarse){.drill-actions .drill-act{min-height:40px}}.authflow{max-width:400px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-5)}.authflow .auth-top{display:flex;align-items:center;justify-content:space-between}.authflow .auth-brand{display:inline-flex;align-items:center;gap:var(--space-2)}.authflow .auth-brand .g{color:var(--accent);font-size:18px;line-height:1}.authflow .auth-brand .t{font-size:var(--fs-small);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight)}.authflow .icon-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-faint);width:32px;height:32px;border-radius:var(--radius-pill);font-size:15px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.authflow .icon-btn:hover{color:var(--text);border-color:var(--border-strong)}.authflow .back-btn{appearance:none;border:0;background:transparent;color:var(--text-dim);font-family:inherit;font-size:var(--fs-small);font-weight:var(--fw-medium);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:var(--space-1) 0}.authflow .back-btn:hover{color:var(--text)}.authflow .auth-hero{display:flex;flex-direction:column;gap:var(--space-3)}.authflow .auth-hero.center{align-items:center;text-align:center}.authflow .eyebrow{font-size:var(--fs-caption);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent-2);font-weight:var(--fw-medium)}.authflow .auth-title{font-size:var(--fs-h2);font-weight:var(--fw-bold);letter-spacing:var(--tracking-tight);line-height:var(--lh-snug);margin:0}.authflow .auth-sub{margin:0;color:var(--text-dim);font-size:var(--fs-body)}.authflow .auth-sub b{color:var(--text);font-weight:var(--fw-semibold)}.authflow .form{display:flex;flex-direction:column;gap:var(--space-4)}.authflow .field{display:flex;flex-direction:column;gap:var(--space-2);width:100%}.authflow .field>label{font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--text-dim);display:flex;justify-content:space-between;align-items:baseline}.authflow .control{position:relative;display:flex;align-items:center;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-height:50px;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.authflow .control input{all:unset;flex:1 1 auto;padding:0 var(--space-4);min-height:50px;color:var(--text);font-family:inherit;font-size:var(--fs-body)}.authflow .control input::placeholder{color:var(--text-faint)}.authflow .control:focus-within{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 6%,var(--surface));box-shadow:0 0 0 3px var(--accent-soft)}.authflow .control.is-error{border-color:color-mix(in oklab,var(--hl-check) 70%,var(--border));background:color-mix(in oklab,var(--hl-check) 7%,var(--surface))}.authflow .control.is-ok{border-color:color-mix(in oklab,var(--status-live) 55%,var(--border))}.authflow .control .trail{flex:0 0 auto;display:flex;align-items:center;gap:2px;padding-right:var(--space-2)}.authflow .toggle-pw{appearance:none;border:0;background:transparent;color:var(--text-faint);font-family:inherit;font-size:var(--fs-caption);font-weight:var(--fw-medium);letter-spacing:var(--tracking-label);text-transform:uppercase;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm)}.authflow .toggle-pw:hover{color:var(--text-dim)}.authflow .field-msg{display:flex;align-items:flex-start;gap:6px;font-size:var(--fs-caption);line-height:var(--lh-snug);color:var(--text-faint)}.authflow .field-msg.err{color:color-mix(in oklab,var(--hl-check) 75%,var(--ink-100))}.authflow .strength{display:flex;flex-direction:column;gap:6px}.authflow .strength-bars{display:flex;gap:5px}.authflow .strength-bars span{flex:1 1 0;height:4px;border-radius:var(--radius-pill);background:var(--border-strong)}.authflow .strength[data-level="1"] .strength-bars span:nth-child(1){background:var(--hl-check)}.authflow .strength[data-level="2"] .strength-bars span:nth-child(-n+2){background:var(--status-building)}.authflow .strength[data-level="3"] .strength-bars span:nth-child(-n+3){background:color-mix(in oklab,var(--status-live) 70%,var(--status-building))}.authflow .strength[data-level="4"] .strength-bars span{background:var(--status-live)}.authflow .strength .lbl{font-size:var(--fs-caption);color:var(--text-faint);display:flex;justify-content:space-between}.authflow .strength .lbl b{font-weight:var(--fw-semibold)}.authflow .strength[data-level="1"] .lbl b{color:color-mix(in oklab,var(--hl-check) 75%,var(--ink-100))}.authflow .strength[data-level="2"] .lbl b{color:var(--status-building)}.authflow .strength[data-level="3"] .lbl b{color:color-mix(in oklab,var(--status-live) 80%,var(--ink-100))}.authflow .strength[data-level="4"] .lbl b{color:var(--status-live)}.authflow .banner{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--fs-small);line-height:var(--lh-snug);text-align:left}.authflow .banner.err{background:color-mix(in oklab,var(--hl-check) 10%,transparent);border:1px solid color-mix(in oklab,var(--hl-check) 32%,var(--border));color:color-mix(in oklab,var(--hl-check) 60%,var(--ink-100))}.authflow .privacy{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);font-size:var(--fs-caption);color:var(--text-dim);line-height:var(--lh-snug);text-align:left}.authflow .privacy .lock{color:var(--accent-2);flex:0 0 auto}.authflow .privacy b{color:var(--text);font-weight:var(--fw-semibold)}.authflow .btn{appearance:none;border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:var(--fs-body);font-weight:var(--fw-semibold);min-height:50px;padding:0 var(--space-5);border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;transition:transform var(--dur-fast) var(--ease-out),background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),opacity var(--dur) var(--ease-out)}.authflow .btn:active{transform:translateY(1px)}.authflow .btn-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:0 8px 22px -10px var(--accent-glow)}.authflow .btn-primary:hover{background:color-mix(in oklab,var(--accent) 88%,white)}.authflow .btn-quiet{background:transparent;color:var(--text-faint);min-height:44px;border:0;font-weight:var(--fw-medium)}.authflow .btn-quiet:hover{color:var(--text-dim)}.authflow .btn[disabled]{cursor:default;opacity:.55}.authflow .btn.is-loading{color:transparent!important;pointer-events:none;opacity:.92;position:relative}.authflow .btn.is-loading:after{content:"";position:absolute;width:18px;height:18px;border-radius:999px;border:2px solid color-mix(in oklab,var(--accent-contrast) 35%,transparent);border-top-color:var(--accent-contrast);animation:spin .7s linear infinite}.authflow .alt-line{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--fs-small);color:var(--text-faint)}.authflow .link{appearance:none;border:0;background:transparent;color:var(--accent-link);font-family:inherit;font-size:inherit;font-weight:var(--fw-medium);cursor:pointer;padding:0}.authflow .link:hover{text-decoration:underline}.authflow .link-inline{color:var(--accent-link);cursor:pointer;font-weight:var(--fw-medium)}.authflow .link-inline:hover{text-decoration:underline}.authflow .auth-foot{display:flex;flex-direction:column;gap:var(--space-3)}.authflow .otp{position:relative;display:flex;gap:var(--space-2);justify-content:space-between;width:100%}.authflow .otp .otp-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:text;border:0}.authflow .otp .cell{flex:1 1 0;aspect-ratio:1 / 1.16;min-width:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--fs-h2);font-weight:var(--fw-semibold);color:var(--text);font-variant-numeric:tabular-nums;pointer-events:none;transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.authflow .otp .cell.filled{border-color:var(--accent-line)}.authflow .otp .cell.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:color-mix(in oklab,var(--accent) 6%,var(--surface))}.authflow .otp.is-error .cell{border-color:color-mix(in oklab,var(--hl-check) 60%,var(--border));background:color-mix(in oklab,var(--hl-check) 7%,var(--surface));color:color-mix(in oklab,var(--hl-check) 70%,var(--ink-100));animation:shake .4s var(--ease-out)}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.authflow .resend{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-small);color:var(--text-faint)}.authflow .sent-to{display:inline-flex;align-items:center;gap:var(--space-2);align-self:center;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--fs-small);color:var(--text-dim)}.authflow .sent-to b{color:var(--text);font-weight:var(--fw-semibold)}.authflow .sent-to .ic{color:var(--accent-2)}.authflow .done-mark{width:96px;height:96px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;font-size:44px;color:var(--accent-contrast);background:var(--accent);box-shadow:0 0 0 10px var(--accent-soft),0 10px 40px -8px var(--accent-glow);animation:pop .5s var(--ease-spring)}@keyframes pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.authflow .summary{width:100%;display:flex;flex-direction:column;gap:var(--space-2)}.authflow .summary .ln{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);text-align:left}.authflow .summary .ln .ic{width:30px;height:30px;flex:0 0 30px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-2);display:flex;align-items:center;justify-content:center;font-size:16px}.authflow .summary .ln .tx{flex:1 1 auto;font-size:var(--fs-small);color:var(--text-dim)}.authflow .summary .ln .tx b{color:var(--text);font-weight:var(--fw-semibold)}.authflow .summary .ln .ck{color:var(--status-live)}@media(prefers-reduced-motion:reduce){.authflow .done-mark,.authflow .otp.is-error .cell{animation:none}}.account-chip{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 10%,var(--surface)),var(--surface));border:1px solid var(--accent-line);box-shadow:var(--shadow-2)}.account-chip .ava{width:48px;height:48px;flex:0 0 48px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;font-size:26px;background:radial-gradient(circle at 50% 30%,var(--surface-2),var(--surface));border:1px solid var(--accent-line);color:var(--accent-2)}.account-chip .meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.account-chip .meta .nm{font-size:var(--fs-body);font-weight:var(--fw-semibold);color:var(--text)}.account-chip .meta .em{font-size:var(--fs-caption);color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-chip .sync-pill{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:2px;padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--status-live);background:color-mix(in oklab,var(--status-live) 12%,transparent);border:1px solid color-mix(in oklab,var(--status-live) 30%,var(--border))}.account-chip .sync-pill .blip{width:7px;height:7px;border-radius:999px;background:var(--status-live)}.account-chip .sync-pill.busy{color:var(--accent-2);background:color-mix(in oklab,var(--accent-2) 12%,transparent);border-color:color-mix(in oklab,var(--accent-2) 30%,var(--border))}.account-chip .sync-pill.busy .blip{background:var(--accent-2);animation:sync-blip 1s ease-in-out infinite}@keyframes sync-blip{0%,to{opacity:1}50%{opacity:.35}}.account-chip .sync-pill.bad{color:var(--status-danger, #e5484d);background:color-mix(in oklab,var(--status-danger, #e5484d) 12%,transparent);border-color:color-mix(in oklab,var(--status-danger, #e5484d) 30%,var(--border))}.account-chip .sync-pill.bad .blip{background:var(--status-danger, #e5484d)}.account-clear{justify-self:start;margin-top:2px;padding:0;background:none;border:none;font-size:var(--fs-caption);font-weight:var(--fw-medium);color:var(--text-muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.account-clear:hover{color:var(--status-danger, #e5484d)}.signed-out-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);border:1px dashed var(--border-strong);background:color-mix(in oklab,var(--surface-2) 50%,transparent);text-align:left}.signed-out-card .so-head{display:flex;align-items:center;gap:var(--space-3)}.signed-out-card .so-ic{width:40px;height:40px;flex:0 0 40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--accent-soft);color:var(--accent-2)}.signed-out-card .so-tx b{display:block;font-size:var(--fs-small);font-weight:var(--fw-semibold);color:var(--text)}.signed-out-card .so-tx span{font-size:var(--fs-caption);color:var(--text-faint)}
