@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/freechess/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/freechess/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/freechess/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/freechess/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/freechess/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#16181d;--card:#21242b;--panel:#2a2e36;--line-soft:#2f343d;--line:#3d434e;--buff:#4f86f7;--buff-pressed:#3f73e0;--ink:#fff;--ink-muted:#fffc;--ink-line:#ffffff59;--brass:#6f9bff;--text:#eef1f6;--muted:#a3abb7;--muted-dim:#6d7582;--good:#5fd38d;--bad:#ff7a6b;--stamp:#ff7a6b;--star:#ffcb45;--sans:"Nunito Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--serif:var(--sans);--mono:var(--sans);--radius:14px;--lift:0 1px 0 #ffffff0a inset, 0 6px 16px #00000047;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;font-variant-numeric:tabular-nums}body{background:var(--bg);margin:0}h1,h2{font-family:var(--sans);letter-spacing:-.01em;font-weight:800}h2{font-size:19px}section>h2:first-child{margin:0 0 10px;font-size:19px;line-height:1.2}button{border-radius:var(--radius);font-family:var(--sans)}#root{min-height:100svh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;flex-direction:column;display:flex}:root :is(.talk-bubble,.speech-bubble,.scouting-card,.demo-caption,.story-study-page){--buff:#f4f6fa;--ink:#1b1e24;--ink-muted:#5a6270;--ink-line:#c9cfd9;border:none;box-shadow:0 4px 14px #0000004d}:root :is(.talk-bubble,.speech-bubble){font-size:16px}.fc-legends .fc-menu-label span{color:var(--muted-dim);margin-left:6px;font-size:13px;font-weight:600}.fc-legend-row{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;margin:0 -16px;padding:2px 16px 6px;list-style:none;display:flex;overflow-x:auto}.fc-legend-row::-webkit-scrollbar{display:none}.fc-legend-row li{scroll-snap-align:start}.fc-legend-card{width:128px;color:var(--text);font:inherit;cursor:pointer;background:linear-gradient(#2e2a22,#22252b);border:1px solid #5a4a32;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:14px 8px 12px;display:flex}.fc-legend-card strong{margin-top:4px;font-size:15px}.fc-legend-level{color:#e6c98a;font-size:12px;font-weight:800}.fc-legend-dots{gap:3px;margin-top:4px;display:flex}.fc-legend-dots i{background:#4a4233;border-radius:50%;width:8px;height:8px}.fc-legend-dots i.on{background:#e6c98a}.fc-legend-story{color:var(--text);margin:0;line-height:1.5}.fc-journey{flex-direction:column;gap:12px;padding:14px;display:flex}.fc-journey-head{flex-direction:column;gap:2px;margin:0;display:flex}.fc-journey-head span{color:var(--muted);font-size:14px}.fc-journey-steps{grid-template-columns:repeat(8,1fr);gap:4px;margin:0;padding:0;list-style:none;display:grid}.fc-journey-steps li{flex-direction:column;align-items:center;gap:3px;display:flex}.fc-journey-steps li span{background:var(--panel);width:30px;height:30px;color:var(--muted);border-radius:50%;place-items:center;font-size:13px;font-weight:800;display:grid}.fc-journey-steps li small{color:var(--muted-dim);font-variant-numeric:tabular-nums;font-size:10px}.fc-journey-steps li.beaten span{color:#2a2110;background:#e6c98a}.fc-journey-steps li.current span{color:var(--text);box-shadow:0 0 0 2px #e6c98a}.fc-legend-up{background:var(--card);max-width:320px;color:var(--muted);border-radius:14px;margin:10px 0 0;padding:10px 14px;font-weight:700}.fc-legend-up.up{color:#2a2110;background:linear-gradient(135deg,#e6c98a,#c9a35a)}.mg{padding-bottom:calc(96px + env(safe-area-inset-bottom));gap:10px}.mg-players{color:var(--muted);text-align:center;margin:0;font-size:14px}.mg-players strong{color:var(--text)}.mg-note{background:var(--card);border-radius:14px;flex-direction:column;gap:6px;min-height:120px;padding:12px 14px;line-height:1.5;display:flex}.mg-note p{margin:0}.mg-note.stop{box-shadow:inset 0 0 0 2px var(--buff)}.mg-move{align-items:center;gap:8px;display:flex}.mg-eval{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px}.mg-stop-title{color:var(--brass);letter-spacing:.05em;text-transform:uppercase;font-size:13px;font-weight:800}.mg-options{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px;display:grid}.mg-options button{border:2px solid var(--line);background:var(--panel);min-height:48px;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;font-size:17px;font-weight:800}.mg-verdict{color:var(--star);font-weight:800}.mg-verdict.best{color:var(--good)}.mg-controls{position:fixed;bottom:0;left:0;right:0}.mg-controls .mg-next{background:var(--buff);border-color:var(--buff);color:var(--ink);font:inherit;font-weight:800}.mg-done{text-align:center;flex-direction:column;align-items:center;gap:12px;padding-top:24px;display:flex}.mg-lessons{text-align:left;width:100%;padding:14px 16px}.mg-lessons h2{margin:0 0 8px;font-size:17px}.mg-lessons ul{flex-direction:column;gap:8px;margin:0;padding-left:18px;line-height:1.45;display:flex}.fc-master-games .fc-legend-card{text-align:left;align-items:flex-start;width:156px}.mg-card-year{color:#e6c98a;font-size:12px;font-weight:800}.mg-card-theme{color:var(--muted);font-size:12px;line-height:1.35}.mg-plan{background:color-mix(in srgb, #e6c98a 14%, var(--panel));border-radius:12px;flex-direction:column;gap:4px;margin-top:6px;padding:10px 12px;display:flex;box-shadow:inset 3px 0 #e6c98a}.mg-plan-title{color:#e6c98a;letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:800}.mg-stop{background:var(--panel);border-radius:12px;flex-direction:column;gap:6px;margin-top:6px;padding:10px 12px;display:flex}.mg-controls.mg-options{grid-template-columns:repeat(3,1fr);margin-top:0}.mg-controls.mg-options button{border:2px solid var(--buff);font-size:17px;font-weight:800}.mg-modes{grid-template-columns:1fr 1fr;gap:8px;margin-top:6px;display:grid}.mg-modes button{border:2px solid var(--line);background:var(--panel);min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.mg-modes button span{color:var(--muted);font-size:13px;line-height:1.35}.mg-modes button.on{border-color:var(--buff)}.mg-howto{margin:0;font-size:13px}.mg-sees{flex-wrap:wrap;gap:6px;display:flex}.mg-see{border:1px solid var(--line);background:var(--panel);min-height:44px;color:var(--buff);font:inherit;cursor:pointer;border-radius:999px;align-self:flex-start;padding:8px 12px;font-size:14px;font-weight:800}.mg-line-head{margin:0;font-weight:800}.mg-line-moves{flex-wrap:wrap;gap:4px;margin:0;display:flex}.mg-line-moves button{min-height:36px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px 8px;font-weight:700}.mg-line-moves button.on{background:var(--buff);color:var(--ink)}.mg-controls.mg-line-controls{grid-template-columns:2fr 1fr 1fr}.mg-back-game{font:inherit;font-weight:800}.mg-guess.good{box-shadow:inset 3px 0 0 var(--good)}.mg-running{color:#e6c98a;font-weight:800}.mg-controls .mg-showme{font-size:15px}.mg-score{width:100%;padding:14px 16px}.mg-score p{margin:0}.mg-score-value{color:#e6c98a;font-size:36px;font-weight:900}.mg-group-title{color:var(--muted);margin:6px 0 4px;font-size:13px;font-weight:800}.fc-learn .fc-unit-banner{min-height:72px;padding-right:96px;position:relative;overflow:hidden}.fc-unit-art{opacity:.35;pointer-events:none;position:absolute;bottom:-18px;right:-6px;transform:rotate(-12deg)}.fc-unit-banner>strong,.fc-unit-banner>span:not(.fc-unit-art){z-index:1;position:relative}.fc-node{position:relative}.fc-learn .fc-node.locked{background:var(--panel)}.fc-node-tick{background:var(--good);color:#10281a;width:26px;height:26px;box-shadow:0 0 0 3px var(--bg);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:-2px;right:-2px}.fc-path li{position:relative}.fc-path-coach{flex-direction:column;align-items:center;gap:4px;animation:2.4s ease-in-out infinite fc-bob;display:flex;position:absolute;top:-6px}.fc-path-coach.left{right:calc(50% + 50px)}.fc-path-coach.right{left:calc(50% + 50px)}.fc-path-coach-say{color:#16181d;white-space:nowrap;background:#fff;border-radius:10px;padding:4px 10px;font-size:13px;font-weight:800}@keyframes fc-bob{50%{transform:translateY(-4px)}}.fc-hello{background:repeating-conic-gradient(#ffffff12 0 25%, transparent 0 50%) 0 0 / 32px 32px, linear-gradient(135deg, #5b8ff9, #3d6fe0);color:#fff;box-shadow:var(--lift);border-radius:20px;align-items:center;gap:12px;padding:16px;display:flex;position:relative;overflow:hidden}.fc-hello .fc-face{box-shadow:0 0 0 3px #ffffffd9}.fc-hello-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fc-hello-text strong{font-size:20px;line-height:1.2}.fc-hello-text span{opacity:.9;font-size:14px}.fc-hello .fc-ring circle:first-child{stroke:#ffffff4d}.fc-hello .fc-ring text{fill:#fff}.fc-today .fc-goals{margin-top:0}@media (prefers-reduced-motion:reduce){.fc-path-coach{animation:none}}.fc-home .fc-today{padding:6px 16px}.fc-today .fc-goals li:first-child{border-top:none}.fc-hello{flex-direction:column;align-items:stretch}.fc-hello-top{align-items:center;gap:12px;display:flex}.fc-week{border-top:1px solid #fff3;grid-template-columns:repeat(7,1fr);gap:4px;margin:2px 0 0;padding:10px 0 0;list-style:none;display:grid}.fc-week li{flex-direction:column;align-items:center;gap:3px;display:flex}.fc-week-dot{background:#ffffff2e;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.fc-week li.active .fc-week-dot{background:#fff}.fc-week li.today .fc-week-dot{box-shadow:0 0 0 2px #fff}.fc-week li.future .fc-week-dot{background:#ffffff14}.fc-week-label{opacity:.85;font-size:12px;font-weight:800}.fc-head-chips{align-items:center;gap:8px;display:flex}.fc-freeze{background:var(--card);color:#8fd3ff;border-radius:999px;align-items:center;gap:4px;padding:6px 10px;font-weight:800;display:inline-flex}.fc-week li.frozen .fc-week-dot{color:#1f6fa8;background:#bfe6ff}.fc-my-openings .fc-menu-row:disabled{opacity:.7}.board-wrap{box-sizing:border-box;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:10px;width:100%;max-width:520px;margin:0 auto;padding:6px;position:relative;overflow:hidden;box-shadow:0 8px 24px #0000004d}.promotion-backdrop{z-index:10;background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.promotion-picker{background:var(--bg);border-radius:var(--radius);text-align:center;padding:12px 16px 16px}.promotion-picker p{color:var(--muted);margin:0 0 8px;font-size:14px}.promotion-choices{gap:8px;display:flex}.promotion-choices button{border-radius:var(--radius);background:var(--buff);cursor:pointer;border:none;width:64px;height:64px;padding:6px}.promotion-choices button svg{width:100%;height:100%}.board-wrap [data-piece] svg{filter:drop-shadow(0 2px 1.5px #0000004d)}.coach-drill{flex-direction:column;gap:12px;display:flex}.coach-drill-say{border-radius:var(--radius);background:var(--card);align-items:flex-start;gap:10px;margin:0 16px;padding:12px;display:flex}.coach-drill-say p{margin:0;line-height:1.45}.rules-next,.rules-skip{border-radius:var(--radius);min-height:48px;font:inherit;cursor:pointer;margin:0 16px}.rules-next{background:var(--brass);color:var(--ink);border:none;font-weight:600}.rules-skip{border:1px solid var(--line);color:var(--muted);background:0 0}.coach-drill-progress{color:var(--muted);margin:0 16px;font-size:13px}.eval-bar{background:#3a3a3a;flex:0 0 16px;position:relative;overflow:hidden}.eval-bar.player-black{background:#f4f1e8}.eval-fill{background:#f4f1e8;transition:height .4s;position:absolute;bottom:0;left:0;right:0}.eval-bar.player-black .eval-fill{background:#3a3a3a}.eval-label{text-align:center;writing-mode:vertical-rl;padding:3px 0;font-size:9px;font-weight:600;line-height:1;position:absolute;left:0;right:0;transform:rotate(180deg)}.eval-label.at-bottom{bottom:0}.eval-label.at-top{top:0}.player-white .eval-label.at-bottom,.player-black .eval-label.at-top{color:#3a3a3a}.player-white .eval-label.at-top,.player-black .eval-label.at-bottom{color:#f4f1e8}.analysis{box-sizing:border-box;flex-direction:column;gap:10px;min-height:100svh;padding:8px 0 0;display:flex}.analysis-head{align-items:center;gap:6px;padding:0 8px;display:flex}.analysis-head h1{flex:1;margin:0;font-size:20px;font-weight:800}.analysis-back,.analysis-tool{min-width:44px;min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:0 10px;font-weight:700}.analysis-tool{background:var(--card);place-items:center;display:grid}.analysis-tool.primary{background:var(--buff);color:var(--ink)}.analysis-board-row{width:min(100%,560px);margin:0 auto;display:flex}.analysis-board-cell{flex:1;min-width:0}.analysis-lines{background:var(--card);box-sizing:border-box;border-radius:14px;flex-direction:column;gap:4px;min-height:132px;margin:0 8px;padding:6px;display:flex}.analysis-line{min-height:40px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:0 8px;font-size:14px;display:flex}.analysis-line:active{background:var(--panel)}.analysis-score{text-align:center;font-variant-numeric:tabular-nums;border-radius:6px;flex:0 0 52px;padding:3px 0;font-weight:800}.analysis-score.white{color:#1c1c1c;background:#f4f1e8}.analysis-score.black{color:#f4f1e8;background:#3a3a3a}.analysis-pv{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--muted);overflow:hidden}.analysis-note{color:var(--muted);margin:0;padding:8px;font-size:14px;list-style:none}.analysis-moves{flex-wrap:wrap;gap:2px 4px;margin:0;padding:0 12px;list-style:none;display:flex}.analysis-moves button{min-height:32px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 6px;font-size:15px}.analysis-moves button.current{background:var(--panel);font-weight:800}.analysis-controls{z-index:5;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);background:#16181df0;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:auto;display:grid;position:sticky;bottom:0}.analysis-controls button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:48px;color:var(--text);cursor:pointer;place-items:center;display:grid}.analysis-controls button:disabled{opacity:.35}.editor-board{width:min(100%,560px);margin:0 auto}.editor-palette{grid-template-columns:repeat(6,1fr);gap:4px;margin:0 8px;display:grid}.editor-palette button{background:var(--card);cursor:pointer;border:2px solid #0000;border-radius:10px;place-items:center;min-height:48px;display:grid}.editor-palette button.on{border-color:var(--buff);background:var(--panel)}.editor-row{flex-wrap:wrap;gap:6px;margin:0 8px;display:flex}.editor-chip{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--text);font:inherit;cursor:pointer;border-radius:12px;flex:auto;padding:0 12px;font-weight:700}.editor-chip.on{border-color:var(--buff);background:var(--buff);color:var(--ink)}.editor-chip:disabled{opacity:.4}.editor-problem{color:var(--bad);margin:0 12px;font-weight:700}.editor-paste{gap:6px;margin:0 8px 24px;display:flex}.editor-paste input{border:1px solid var(--line);background:var(--card);min-width:0;min-height:44px;color:var(--text);font:inherit;border-radius:12px;flex:1;padding:0 12px;font-size:16px}.editor-paste .editor-chip{flex:none}.analysis-board-cell{position:relative}.draw-layer{z-index:3;touch-action:none;cursor:crosshair;position:absolute;inset:0}.analysis-tool.on{color:#1c1204;background:#f59628}.position-play-who{align-items:center;gap:8px;margin:0 12px;font-weight:800;display:flex}.position-play-who span{color:var(--muted);font-weight:600}.position-play-status{color:var(--muted);margin:0 12px;font-weight:700}.analysis-controls.position-play-controls{grid-template-columns:1fr 1fr}.analysis-controls.position-play-controls button{font:inherit;font-weight:800}.play-from-here{background:var(--card);border-radius:14px;flex-direction:column;gap:10px;margin:0 8px;padding:12px;display:flex}.play-from-here-row{align-items:center;gap:10px;display:flex}.play-from-here-row strong{text-align:center;font-variant-numeric:tabular-nums;flex:1;font-size:22px}.play-from-here-row button{background:var(--panel);width:44px;height:44px;color:var(--text);cursor:pointer;border:none;border-radius:50%;font-size:22px;font-weight:800}.play-from-here .go{background:var(--buff);min-height:46px;color:var(--ink);font:inherit;cursor:pointer;border:none;border-radius:12px;font-weight:800}.analysis-tool.on-blue{background:var(--buff);color:var(--ink)}.analysis-tool:disabled{opacity:.4}.eval-graph{margin:0;padding:0 16px}.eval-graph figcaption{color:var(--muted);margin-bottom:4px;font-size:13px}.eval-graph svg{border-radius:var(--radius);background:var(--card);touch-action:none;cursor:pointer;width:100%;height:auto;display:block}.graph-mid{stroke:var(--line-soft);stroke-width:1px}.graph-area{fill:#e8e4d81f}.graph-line{fill:none;stroke:#e8e4d8;stroke-width:2px;stroke-linejoin:round}.graph-cursor{stroke:#a8a596;stroke-width:1px}.graph-marker{fill:var(--rating);stroke:var(--card);stroke-width:2px}.graph-current{fill:none;stroke:#e8e4d8;stroke-width:2px}.eval-graph figcaption span{opacity:.8;font-size:12px}.eval-graph.compact{padding:0}.eval-graph.compact svg{touch-action:auto;background:var(--panel)}.rating-best{--rating:#5fd38d;--rating-ink:#10281a}.rating-good{--rating:#a9d6b8;--rating-ink:#10281a}.rating-inaccuracy{--rating:#f5c04a;--rating-ink:#2a2110}.rating-mistake{--rating:#ff9a5c;--rating-ink:#2a160f}.rating-blunder{--rating:#ff5d5d;--rating-ink:#fff}.rating-brilliant{--rating:#2fd6c3;--rating-ink:#06231f}.rating-great{--rating:#6f9bff;--rating-ink:#0b1a3a}.rating-book{--rating:#c9a57a;--rating-ink:#2a1d0e}.drill-play,.drill-report{flex-direction:column;gap:10px;display:flex}.drill-head{justify-content:space-between;align-items:baseline;gap:8px;margin:0;display:flex}.drill-head span{color:var(--muted);font-size:13px}.drill-note{background:var(--card);border-radius:14px;align-items:flex-start;gap:10px;padding:12px 14px;line-height:1.45;display:flex}.drill-note p{margin:0}.drill-verdict{margin:0;font-size:24px;font-weight:900}.drill-verdict.passed{color:var(--good)}.drill-verdict.missed{color:var(--star)}.drill-numbers{grid-template-columns:1fr 1fr;gap:8px;display:grid}.drill-numbers .fc-card{flex-direction:column;gap:2px;padding:10px 12px;display:flex}.drill-numbers span{color:var(--muted);font-size:13px}.drill-numbers strong{font-size:24px}.drill-counts{margin:0}.drill-estimate{margin:0;font-size:13px}.drill-builder section h2{margin:14px 0 6px;font-size:15px}.drill-builder{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.drill-play>:not(.board-wrap){margin-left:16px;margin-right:16px}.drill-builder section{flex-direction:column;display:flex}.moment{flex-direction:column;gap:10px;display:flex}.moment p{margin:0;padding:0 16px}.moment-prompt{font-weight:500}.moment-tries{color:var(--muted);font-size:13px}.moment-replay{min-height:44px;color:var(--brass);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px;text-decoration:underline}.moment-verdict{font-weight:600}.moment-verdict.solved{color:var(--good)}.moment-verdict.revealed{color:var(--brass)}.moment-explanation{line-height:1.45}.moment-coach{border-radius:var(--radius);background:var(--card);align-items:flex-start;gap:10px;margin:0 16px;padding:12px;display:flex}.moment .moment-coach p{padding:0}.moment-coach p+p{margin-top:6px}.moment-coach-name{color:var(--brass);font-size:15px;font-style:italic;font-weight:400;font-family:var(--serif);letter-spacing:0}.puzzle{flex-direction:column;gap:8px;display:flex}.puzzle p{margin:0;padding:0 16px}.puzzle-prompt{min-height:24px;font-weight:600}.puzzle-prompt.solved{color:var(--good)}.puzzle-prompt.helped{color:var(--brass)}.puzzle-meta{color:var(--muted);font-size:13px}.move-strip{white-space:nowrap;font-family:var(--mono);color:var(--muted);scrollbar-width:none;gap:12px;margin:0;padding:0 16px;font-size:15px;list-style:none;display:flex;overflow-x:auto}.move-strip::-webkit-scrollbar{display:none}.move-strip.empty{font-family:inherit;font-size:14px;overflow:visible}.move-strip .num{opacity:.7;margin-right:3px}.move-strip li.latest{color:var(--text);font-weight:600}.demo{flex-direction:column;gap:10px;display:flex}.demo-caption{border-radius:var(--radius);background:var(--buff);min-height:72px;color:var(--ink);align-items:flex-start;gap:10px;margin:0 16px;padding:12px 14px;display:flex}.demo-caption strong{font-size:13px}.demo-caption p{margin:2px 0 0;line-height:1.45}.demo-nav{grid-template-columns:1fr 2fr;gap:8px;margin:0 16px;display:grid}.demo-nav button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:48px;color:var(--text);font:inherit;cursor:pointer}.demo-nav button.primary{background:var(--brass);color:var(--ink);border:none;font-weight:600}.demo-nav button:disabled{opacity:.4;cursor:default}.player-strip{align-items:center;gap:8px;min-height:32px;padding:0 16px;font-size:15px;display:flex}.player-dot{border:1px solid #a8a596;border-radius:50%;flex:none;width:12px;height:12px}.player-dot.white{background:#f4f1e8}.player-dot.black{background:#222}.player-name{white-space:nowrap;font-weight:600}.player-rating{color:var(--muted)}.player-captured{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--muted);letter-spacing:-2px;font-size:16px;overflow:hidden}.player-lead{letter-spacing:0;margin-left:6px;font-size:13px}.player-thinking{color:var(--brass);align-items:baseline;gap:3px;margin-left:auto;font-size:13px;display:inline-flex}.think-dots{gap:3px;display:inline-flex}.think-dots i{background:currentColor;border-radius:50%;width:4px;height:4px;animation:1.2s ease-in-out infinite think-pulse}.think-dots i:nth-child(2){animation-delay:.2s}.think-dots i:nth-child(3){animation-delay:.4s}@keyframes think-pulse{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.think-dots i{opacity:.8;animation:none}}.clock-chip{background:var(--card);min-width:64px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;border-radius:8px;padding:4px 10px;font-size:18px;font-weight:800}.clock-chip.running{color:#16181d;background:#eef1f6}.clock-chip.low{color:var(--bad)}.clock-chip.running.low{background:var(--bad);color:#fff}.game-screen{flex-direction:column;gap:10px;padding:12px 0 16px;display:flex}.game-header,.game-status,.game-actions{padding:0 16px}.game-header h1{margin:0;font-size:18px;font-weight:600}.scouting-backdrop{z-index:11;background:#00000073;justify-content:center;align-items:center;padding:12px;display:flex;position:absolute;inset:0}.scouting-card{border-radius:var(--radius);background:var(--buff);width:100%;max-width:340px;color:var(--ink);padding:14px 16px;box-shadow:0 8px 24px #0006}.scouting-kicker{font-size:15px;font-style:italic;font-weight:400;font-family:var(--serif);letter-spacing:0;color:var(--line);margin:0 0 6px}.scouting-line{margin:0 0 8px;line-height:1.4}.scouting-by{color:var(--line);text-align:right;margin:0 0 12px;font-size:13px;font-style:italic}.scouting-card button{border-radius:var(--radius);background:var(--ink);width:100%;min-height:48px;color:var(--buff);font:inherit;cursor:pointer;border:none;font-weight:600}.talk-bubble{border-radius:var(--radius);background:var(--buff);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border:none;align-items:flex-start;gap:8px;margin:0 16px;padding:8px 14px;animation:.2s ease-out talk-in;display:flex;position:relative}.talk-bubble:before{content:"";border:6px solid #0000;border-top:0;border-bottom-color:var(--buff);position:absolute;top:-6px;left:22px}.talk-words{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.talk-speaker{color:var(--line);font-size:12px;font-weight:600}@keyframes talk-in{0%{opacity:0;transform:translateY(-4px)}}.speech-bubble{border-radius:var(--radius);background:var(--buff);color:var(--ink);align-items:center;gap:8px;margin:0 16px;padding:6px 8px 6px 14px;display:flex;position:relative}.speech-bubble:before{content:"";border:6px solid #0000;border-top:0;border-bottom-color:var(--buff);position:absolute;top:-6px;left:22px}.speech-bubble .speech{flex:1;font-weight:600}.speech-bubble button{border:1px solid var(--ink);border-radius:var(--radius);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;padding:0 14px}.speech-bubble button:first-of-type{background:var(--ink);color:var(--buff)}.game-title{margin:0 0 2px;font-weight:600}.game-title span{color:var(--muted);font-size:14px;font-weight:400}.opponent-rating{color:var(--muted);font-weight:400}.peek-button{border-radius:var(--radius);min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #195fb9;padding:0 12px;font-size:14px}.stage-label{color:var(--muted);margin:2px 0 0;font-size:13px}.game-status{min-height:24px;margin:0;font-weight:500}.game-status.game-over{color:var(--brass)}.board-row{width:100%;max-width:536px;margin:0 auto;display:flex}.board-cell{flex:1;min-width:0;position:relative}.move-row{align-items:center;gap:6px;display:flex}.move-row>:first-child{flex:1;min-width:0}.look-back{gap:4px;padding-right:12px;display:flex}.look-back button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:44px;height:44px;color:var(--text);cursor:pointer;font-size:22px;line-height:1}.look-back button:disabled{opacity:.35;cursor:default}.back-to-game{border-radius:var(--radius);background:var(--brass);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:none;margin:0 16px;font-weight:600}.move-info{justify-content:space-between;align-items:center;gap:8px;min-height:26px;padding:0 16px;display:flex}.last-move{color:var(--muted);margin:0;font-size:14px}.move-rating{white-space:nowrap;color:var(--rating-ink);background:var(--rating);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.book-note{color:var(--muted);margin:0 16px;font-size:14px}.book-note strong{color:var(--brass);font-weight:600}.build-stamp{color:var(--muted);opacity:.6;margin:8px 0 0;padding:0 16px;font-size:12px}.game-actions{flex-wrap:wrap;gap:8px;display:flex}.game-header .game-status{margin-top:4px;padding:0}.help-actions button{flex:1}.scouting-rewatch{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:44px;color:var(--text);font:inherit;cursor:pointer;margin:0 16px;padding:0 14px}.game-actions button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:44px;color:var(--text);font:inherit;cursor:pointer;padding:0 14px}.game-actions button.active{border-color:var(--brass)}.game-actions button.primary{background:var(--brass);border-color:var(--brass);color:var(--ink);font-weight:600}.game-actions button.danger{background:var(--bad);border-color:var(--bad);color:#fff}.game-screen.loading{color:var(--muted);flex:1;justify-content:center;align-items:center}.game-actions button:disabled{opacity:.4;cursor:default}.confirm-move{justify-content:center;gap:12px;margin:8px 0;display:flex}.confirm-move button{border-radius:var(--radius);min-width:96px;min-height:48px;font-size:1.4rem;font-weight:700}.confirm-move .confirm-yes{background:var(--buff);color:var(--ink);border:none}.confirm-move .confirm-no{color:inherit;background:0 0;border:1px solid}.game-screen{box-sizing:border-box;min-height:100svh;padding:8px 0 calc(8px + env(safe-area-inset-bottom));gap:6px}.game-header p{margin:0}.game-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.game-title span{color:var(--muted);font-weight:500}.game-header .game-status{min-height:20px;margin-top:2px;font-size:14px}.speech-slot{flex-direction:column;flex:0 0 92px;justify-content:flex-start;height:92px;padding:0 16px;display:flex;overflow-y:auto}.speech-slot .talk-bubble,.speech-slot .speech-bubble{margin:0}.speech-slot .talk-bubble:before,.speech-slot .speech-bubble:before{display:none}.move-info-slot{align-items:center;min-height:34px;display:flex}.move-info-slot>*{flex:1}.back-to-live{padding:0 12px;font-weight:800;background:var(--buff)!important;width:auto!important;color:var(--ink)!important;border:none!important;font-size:15px!important}.game-toolbar{gap:6px;margin-top:auto;padding:0 12px;display:flex}.game-toolbar>button{background:var(--panel);min-width:0;min-height:48px;color:var(--text);white-space:nowrap;cursor:pointer;border:none;border-radius:12px;flex:1;padding:0 4px;font-size:14px;font-weight:700}.game-toolbar>button.primary{background:var(--buff);color:var(--ink)}.game-toolbar>button.danger{background:var(--bad);color:#fff}.game-toolbar>button:disabled{opacity:.4;cursor:default}.game-toolbar .confirm-move{flex:1;gap:8px;margin:0;display:flex}.game-toolbar .confirm-move button{flex:1;min-height:48px}.game-screen{--game-chrome:332px;height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));gap:4px;min-height:0;padding:6px 0;overflow:hidden}.game-topbar{flex:0 0 30px;justify-content:space-between;align-items:center;gap:10px;padding:0 14px;font-size:14px;display:flex}.game-topbar .game-title{white-space:nowrap;text-overflow:ellipsis;font-weight:800;overflow:hidden}.game-topbar .game-status{min-height:0;color:var(--muted);white-space:nowrap;flex:none;font-weight:700}.game-topbar .game-status.game-over{color:var(--brass)}.game-screen .board-row{width:min(100%, 536px, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - var(--game-chrome)));flex:none;max-width:none;margin:0 auto}.game-panel{flex-direction:column;flex:96px;gap:6px;min-height:96px;padding:2px 14px;display:flex;overflow-y:auto}.game-panel .move-info{padding:0}.game-panel .talk-bubble,.game-panel .speech-bubble{box-sizing:border-box;width:100%;margin:0}.game-panel .talk-bubble:before,.game-panel .speech-bubble:before{display:none}.game-panel .book-note{margin:0}.game-screen .move-row{flex:0 0 44px}.game-screen .game-toolbar{flex:0 0 48px;margin-top:0}.game-screen{--game-chrome:236px;gap:4px;padding:4px 0 6px}.game-screen .board-row{width:min(100%, 560px, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - var(--game-chrome)))}.game-screen .player-strip{flex:0 0 34px;min-height:34px}.player-right{flex:none;margin-left:auto}.player-right .game-status{min-height:0;color:var(--muted);font-size:13px;font-weight:700}.player-right .game-status.game-over{color:var(--brass)}.game-screen .game-panel{flex:56px;gap:6px;min-height:56px;padding:2px 14px}.panel-line{color:var(--text);font:inherit;text-align:left;background:0 0;border:none;align-items:flex-start;gap:10px;margin:0;padding:0;font-size:15px;line-height:1.4;display:flex}.panel-line.talk{cursor:pointer}.panel-line>span{flex:1}.game-screen .move-strip{flex:0 0 24px;align-items:center;font-size:14px}.game-screen .game-toolbar{background:var(--card);border-radius:16px;flex:0 0 56px;gap:2px;margin:0 8px;padding:2px}.game-screen .game-toolbar>button{min-height:52px;color:var(--text);background:0 0;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:0 2px;font-size:11px;font-weight:700;display:flex}.game-screen .game-toolbar>button.danger{background:var(--bad);color:#fff}.game-screen .game-toolbar>button.live{color:var(--brass)}.game-screen .game-toolbar>button.wide{background:var(--panel);flex-direction:row;font-size:16px;font-weight:800}.game-screen .game-toolbar>button.wide.primary{background:var(--buff);color:var(--ink)}.game-screen .game-toolbar>button.confirm-yes,.game-screen .game-toolbar>button.confirm-no{font-size:24px}.game-panel .move-strip.wrap{white-space:normal;flex-wrap:wrap;gap:4px 12px;padding:0;overflow:visible}.game-panel .move-strip.empty{padding:0}.game-screen{--game-chrome:210px}.game-screen .game-panel{background:var(--card);border-radius:14px;margin:2px 8px;padding:10px 12px}.game-panel .panel-line,.game-panel .move-info{border-bottom:1px solid var(--line-soft);padding-bottom:8px}.game-panel .move-strip.wrap{grid-template-columns:1fr 1fr;gap:2px 16px;font-size:15px;display:grid}.game-panel .move-strip.wrap li{border-radius:6px;padding:3px 6px}.game-panel .move-strip.wrap li:nth-child(odd){gap:6px;display:flex}.game-panel .move-strip.wrap .num{min-width:26px;color:var(--muted-dim);margin-right:0}.game-panel .move-strip.wrap li:nth-child(2n){padding-left:38px}.game-panel .move-strip.wrap li.latest{background:var(--panel)}.game-panel .move-strip.empty{color:var(--muted)}.game-screen .game-panel{overflow:hidden}.game-panel>:not(.move-strip){flex:none}.game-panel .move-strip.wrap{flex:1 1 0;align-content:start;min-height:0;overflow-y:auto}.game-panel.more:after{content:"";background:linear-gradient(to bottom, transparent, var(--bg));pointer-events:none;flex:0 0 22px;margin-top:-22px;position:sticky;bottom:-2px}.review-screen{flex-direction:column;gap:20px;padding:24px 16px;display:flex}.review-screen h1{margin:0;font-size:24px;font-weight:600}.review-result{margin:6px 0 0;font-size:18px;font-weight:500}.review-result span{color:var(--muted);margin-top:2px;font-size:14px;font-weight:400;display:block}.review-rating{margin:8px 0 0;font-weight:600}.review-rating.up{color:var(--good)}.review-rating.down{color:var(--bad)}.review-note{color:var(--muted);margin:0;font-size:14px}.moment-coach.review-coach-notes{margin:4px 0 0}.review-coach-notes p{margin:0}.review-progress{flex-direction:column;gap:8px;display:flex}.review-progress p:first-child{margin:0}.progress-track{background:var(--panel);border-radius:0;height:3px;overflow:hidden}.progress-fill{background:var(--brass);height:100%;transition:width .3s}.review-summary{flex-direction:column;gap:18px;display:flex}.accuracy{flex-direction:column;align-items:flex-start;display:flex}.accuracy-value{font-family:var(--serif);font-size:56px;font-weight:400;line-height:1}.accuracy-label{color:var(--muted);margin-top:4px}.accuracy-opponent{color:var(--muted);margin-top:8px;font-size:14px}.rating-counts{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.rating-counts li{align-items:center;gap:10px;display:flex}.rating-counts .dot{background:var(--rating);border-radius:50%;width:12px;height:12px}.rating-counts .count{text-align:right;min-width:24px;font-weight:600}.review-screen.with-board{gap:14px;padding:16px 0 24px}.review-screen.with-board header,.review-screen.with-board>p,.review-screen.with-board>.review-continue{margin-left:16px;margin-right:16px}.review-kicker{color:var(--muted);font-size:16px;font-style:italic;font-family:var(--serif);letter-spacing:0;margin:0 0 4px}.review-pill{background:var(--rating);color:var(--rating-ink);vertical-align:middle;border-radius:999px;margin-left:6px;padding:2px 10px;font-size:14px;font-weight:600;display:inline-block}.review-explanation{margin:0;line-height:1.45}.review-topline{justify-content:space-between;align-items:center;gap:8px;display:flex}.review-topline .review-kicker{margin:0}.review-skip{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;margin-right:-10px;padding:0 10px}.review-secondary{border:1px solid var(--line);border-radius:var(--radius);min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0}.review-screen.with-board>.review-secondary{margin-left:16px;margin-right:16px}.review-continue:disabled{opacity:.4;cursor:default}.review-continue{border-radius:var(--radius);background:var(--brass);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border:none;font-weight:600}.lesson-tip{margin:0 16px;font-style:italic}.moment-coach.lesson-own,.moment-coach.lesson-wrap{margin:0}.result-stamp{font-family:var(--serif);letter-spacing:.06em;text-transform:uppercase;opacity:.88;border:2px solid;border-radius:3px;margin:4px 0 6px;padding:3px 12px 2px;font-size:20px;font-weight:700;display:inline-block;transform:rotate(-2.5deg)}.result-stamp.won{color:var(--good)}.result-stamp.lost{color:var(--stamp)}.result-stamp.drawn{color:var(--muted)}.review-keys{flex-direction:column;gap:8px;display:flex}.review-keys-title{color:var(--muted);margin:4px 0 0;font-size:14px;font-weight:700}.review-key{border:none;border-left:4px solid var(--line);border-radius:var(--radius);background:var(--card);min-height:64px;color:var(--text);text-align:left;cursor:pointer;grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:10px 14px;display:grid}.review-key.mistake{border-left-color:#ff5d5d}.review-key.missed{border-left-color:#f5c04a}.review-key.best{border-left-color:var(--good)}.review-key-kind{color:var(--muted);font-size:13px;font-weight:700}.review-key-move{grid-row:2;font-size:16px;font-weight:800}.review-key-go{background:var(--buff);color:var(--ink);border-radius:999px;grid-area:1/2/span 2;padding:8px 14px;font-size:14px;font-weight:800}.review-key.best .review-key-go{background:var(--panel);color:var(--text)}.review-headline{align-items:flex-start;gap:16px;display:flex}.review-headline>*{flex:1 1 0;min-width:0}.played-like{border-left:1px solid var(--line-soft);flex-direction:column;align-items:flex-start;padding-left:16px;display:flex}.played-like-value{font-variant-numeric:tabular-nums;font-size:56px;line-height:1}.phase-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.phase{background:var(--card);border-radius:10px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.phase-label{color:var(--muted);font-size:12px}.phase-value{font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.phase.good .phase-value{color:var(--good)}.phase.ok .phase-value{color:var(--star)}.phase.poor .phase-value{color:var(--bad)}.phase.none .phase-value{color:var(--muted-dim)}.review-key.brilliant{border-left-color:#2fd6c3}.review-key.great{border-left-color:#6f9bff}.review-key.brilliant .review-key-go,.review-key.great .review-key-go{background:var(--panel);color:var(--text)}.review-summary .rating-counts{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.review-tip{background:var(--card);box-shadow:inset 3px 0 0 var(--buff);border-radius:14px;gap:12px;padding:14px;display:flex}.review-tip p{margin:0}.review-tip-title{color:var(--muted);font-size:13px;font-weight:800}.review-tip-text{line-height:1.4;margin-top:2px!important}.review-tip-go{background:var(--buff);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;border:none;border-radius:999px;margin-top:10px;padding:0 16px;font-weight:800}.review-opening{color:var(--muted);margin:2px 0 0;font-size:14px}.review-result{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.result-badge{background:color-mix(in srgb, var(--result) 18%, transparent);color:var(--result);border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:15px;font-weight:800;display:inline-flex}.result-badge.won{--result:var(--good)}.result-badge.lost{--result:var(--bad)}.result-badge.drawn{--result:var(--muted)}.review-result .result-how{color:var(--muted);margin:0;font-size:14px;display:inline}.review-story{background:var(--card);border-radius:14px;flex-direction:column;gap:8px;padding:14px;display:flex}.review-story-head{align-items:center;gap:10px;margin:0 0 2px;font-weight:800;display:flex}.review-story-beat{background:var(--panel);color:var(--text);font:inherit;text-align:left;border:0;border-radius:12px;flex-direction:column;gap:3px;padding:10px 12px;line-height:1.45;display:flex}button.review-story-beat{cursor:pointer}.review-story-title{color:#e6c98a;letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:800}.review-story-go{color:var(--buff);align-self:flex-end;font-size:14px;font-weight:800}.past-games{border-radius:var(--radius);background:var(--card);box-shadow:var(--lift);flex-direction:column;gap:0;margin:0;padding:2px 16px;list-style:none;display:flex}.past-games button{border:none;border-bottom:1px solid var(--line-soft);width:100%;min-height:64px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:12px;padding:10px 0;display:flex}.past-result{font-family:var(--serif);flex:0 0 44px;font-size:16px;font-style:italic}.past-result.won{color:var(--good)}.past-result.lost{color:var(--bad)}.past-result.draw{color:var(--muted)}.past-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.past-rating{color:var(--muted);font-weight:400}.past-meta{color:var(--muted);font-size:13px}.past-accuracy{font-family:var(--serif);color:var(--muted);text-align:right;font-size:15px}.past-games li:last-child button{border-bottom:none}.full-game{box-sizing:border-box;flex-direction:column;gap:12px;min-height:100svh;padding:12px 0 0;display:flex}.full-game header{align-items:center;gap:8px;padding:0 8px;display:flex}.full-game h1{margin:0;font-size:20px;font-weight:600}.full-game .back{min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 10px}.full-game-info{white-space:nowrap;align-items:center;gap:8px;height:32px;margin:0;padding:0 16px;display:flex;overflow:hidden}.info-pill{background:var(--rating);color:var(--rating-ink);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600}.info-eval{color:var(--muted);margin-left:auto;font-size:14px}.full-game-controls{z-index:5;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft);-webkit-backdrop-filter:blur(12px);background:#16181df0;grid-template-columns:1fr 1fr 1.7fr 1fr 1fr;gap:8px;margin-top:auto;display:grid;position:sticky;bottom:0}.full-game-controls button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-height:48px;color:var(--text);cursor:pointer}.full-game-controls button svg{margin:0 auto;display:block}.full-game-controls button:disabled{opacity:.35;cursor:default}.move-list{flex-wrap:wrap;gap:4px;margin:0;padding:0 16px;list-style:none;display:flex}.move-list button{border-radius:var(--radius);min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;padding:0 8px;font-size:15px}.move-list .num{color:var(--muted);margin-right:3px}.move-list button.flagged{text-decoration:underline;-webkit-text-decoration-color:var(--rating);text-decoration-color:var(--rating);text-underline-offset:4px;text-decoration-thickness:3px}.move-list button.current{border-color:var(--brass);background:var(--panel)}.full-game-controls .try-again{background:var(--buff);color:var(--ink);border:none;font-size:15px;font-weight:800}.full-game-controls .try-again:disabled{background:var(--panel);color:var(--muted-dim);opacity:1}.full-game .analyse{border:1px solid var(--line);background:var(--card);min-height:40px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;margin-left:auto;padding:0 14px;font-size:14px;font-weight:700}.full-game-coach{background:var(--card);border-radius:14px;align-items:flex-start;gap:10px;min-height:64px;margin:0 12px;padding:10px 12px;font-size:14px;line-height:1.4;display:flex}.full-game-coach>span{flex:1}.full-game .every-move{border:1px solid var(--line);background:var(--card);min-height:40px;color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;margin-left:auto;padding:0 12px;font-size:13px;font-weight:700}.full-game .every-move+.analyse{margin-left:0}.full-game-controls button.next{border-color:var(--buff);background:var(--buff);color:var(--ink)}.settings-screen{flex-direction:column;gap:24px;padding:16px 16px 32px;display:flex}.settings-header{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.settings-back{min-height:44px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0 4px}.settings-screen h1{margin:0;font-size:26px;font-weight:600}.settings-screen h2{margin:0 0 4px;font-size:17px;font-weight:600}.settings-note{color:var(--muted);margin:0 0 12px;font-size:14px;line-height:1.45}.settings-options{flex-direction:column;gap:0;display:flex}.settings-options button{border:none;border-bottom:1px solid var(--line-soft);min-height:52px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 0 10px 34px;display:flex;position:relative}.settings-options button span{color:var(--muted);font-size:13px}.settings-options button.selected{font-weight:600}.settings-options button.settings-board{flex-direction:row;align-items:center;gap:12px}.board-swatch{border-radius:3px;grid-template-columns:14px 14px;display:grid;overflow:hidden}.board-swatch i{width:14px;height:14px}.settings-action{border:1px solid var(--line);border-radius:var(--radius);width:100%;min-height:48px;color:var(--text);font:inherit;cursor:pointer;background:0 0;margin-bottom:8px;display:block}.settings-action.primary{background:var(--brass);color:var(--ink);border:none;font-weight:600}.settings-action:disabled{opacity:.4;cursor:default}.settings-feedback{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);width:100%;color:var(--text);font:inherit;resize:vertical;margin-bottom:8px;padding:10px 12px;font-size:16px}.settings-feedback:focus{border-color:var(--brass);outline:none}.settings-message{color:var(--text);margin:4px 0 0;font-size:14px}.settings-options button:before{content:"";box-sizing:border-box;border:1.5px solid var(--text);border-radius:2px;width:18px;height:18px;position:absolute;top:14px;left:2px}.settings-options button.selected:before{content:"✓";background:var(--buff);border-color:var(--buff);color:var(--ink);place-items:center;font-size:13px;font-weight:700;line-height:1;display:grid}.settings-switches{margin:0;padding:0;list-style:none}.settings-switches li+li{border-top:1px solid var(--line-soft)}.settings-switch{width:100%;min-height:60px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:10px 0;display:flex}.settings-switch-text{flex-direction:column;flex:1;gap:2px;display:flex}.settings-switch-text span{color:var(--muted);font-size:13px}.switch-track{background:var(--line);border-radius:999px;flex:0 0 50px;height:30px;transition:background .2s;position:relative}.switch-track.on{background:var(--buff)}.switch-knob{background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px}.switch-track.on .switch-knob{transform:translate(20px)}@media (prefers-reduced-motion:reduce){.switch-track,.switch-knob{transition:none}}.settings-options.settings-boards{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.settings-options.settings-boards button.settings-board{background:var(--card);text-align:center;border:2px solid #0000;border-radius:12px;flex-direction:column;gap:6px;padding:10px 4px;font-size:12px}.settings-options.settings-boards button.settings-board.selected{border-color:var(--buff)}.settings-options.settings-boards button:before{display:none}.settings-boards .board-swatch{grid-template-columns:20px 20px}.settings-boards .board-swatch i{width:20px;height:20px}.sync-code{flex-direction:column;gap:8px;margin:8px 0;display:flex}.sync-code strong{background:var(--card);letter-spacing:.04em;text-align:center;font-variant-numeric:tabular-nums;word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:12px;padding:12px;font-size:18px}.sync-join{flex-direction:column;gap:8px;display:flex}.sync-join input{border:1px solid var(--line);background:var(--card);min-height:48px;color:var(--text);font:inherit;letter-spacing:.04em;text-transform:uppercase;border-radius:12px;padding:0 12px;font-size:16px}.deck-header{justify-content:space-between;align-items:center;display:flex}.deck-header .review-kicker{margin:0}.deck-back{min-height:44px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;margin-left:-10px;padding:0 10px}.review-screen .deck-title{margin:0 16px;font-size:22px;font-weight:600}.deck-source{color:var(--muted);margin:-8px 16px 0;font-size:13px}.rating-graph{margin:0}.rating-graph svg{touch-action:pan-y;width:100%;height:auto;display:block}.graph-grid{stroke:var(--line-soft);stroke-width:1px}.graph-axis{fill:var(--muted);font-size:11px}.graph-line{fill:none;stroke:var(--brass);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.graph-cross{stroke:#5b6d61;stroke-width:1px;stroke-dasharray:3 3}.graph-dot{fill:var(--brass);stroke:var(--ink);stroke-width:2px}.rating-graph figcaption{color:var(--muted);margin-top:4px;font-size:14px}.rating-graph figcaption strong{color:var(--text);font-size:16px}.graph-empty{color:var(--muted);margin:0;font-size:14px}.fc-result-face{background:var(--ring);box-shadow:0 0 0 6px color-mix(in srgb, var(--ring) 30%, transparent), 0 16px 36px #0006;border-radius:50%;padding:6px;animation:.5s cubic-bezier(.2,1.4,.4,1) both fc-face-in}.fc-result-face .fc-face{display:block}@keyframes fc-face-in{0%{opacity:0;transform:scale(.6)}}.fc-result.win h1{background:linear-gradient(90deg,#ffe08a,#ffcb45,#ffe08a);color:#0000;-webkit-background-clip:text;background-clip:text}.fc-result-kind{max-width:300px;color:var(--text);margin:4px 0 0}.fc-result-tray{background:var(--card);box-sizing:border-box;border-radius:20px;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:340px;margin-top:14px;padding:10px 14px 14px;display:flex}.fc-result-tray .fc-result-stars{align-items:flex-end;margin:0 0 4px}.fc-result-stars span.earned{filter:drop-shadow(0 0 10px #ffcb458c)}.fc-rating-change{align-items:center;gap:8px;margin:10px 0 0;display:flex}.fc-rating-label{color:var(--muted);font-size:14px;font-weight:700}.fc-rating-change strong{color:var(--text);font-variant-numeric:tabular-nums;font-size:30px}.fc-rating-diff{background:color-mix(in srgb, currentColor 15%, transparent);border-radius:999px;padding:2px 10px;font-weight:800}.fc-confetti{z-index:10;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fc-confetti i{opacity:0;border-radius:2px;width:9px;height:14px;animation-name:fc-confetti-fall;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:-20px}.fc-confetti i.round{border-radius:50%;width:10px;height:10px}@keyframes fc-confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translate(var(--sway), 105vh) rotate(var(--spin))}}@media (prefers-reduced-motion:reduce){.fc-confetti{display:none}.fc-result-face,.fc-result-stars span.earned{animation:none}}.fc-teaser{background:var(--card);color:var(--muted);border-radius:999px;justify-content:center;gap:18px;margin-top:12px;padding:10px 16px;font-size:15px;display:flex}.fc-teaser strong{color:var(--text);font-size:18px}.fc-teaser-wait{text-align:center;min-width:200px;padding-bottom:6px;display:block;position:relative}.fc-teaser-wait i{background:var(--buff);border-radius:2px;height:3px;transition:width .3s;position:absolute;bottom:0;left:0}.fc-loading{min-height:100svh;color:var(--muted);place-items:center;display:grid}.fc-shell{flex-direction:column;min-height:100svh;display:flex}.fc-page{padding:18px 16px calc(96px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;display:flex}.fc-page h1{margin:0;font-size:28px}.fc-page h2{margin:0 0 10px}.fc-page-head p{color:var(--muted);margin:4px 0 0}.fc-card{border-radius:var(--radius);background:var(--card);box-shadow:var(--lift)}.fc-face{border-radius:50%;flex:none}.fc-flag{font-size:.95em}.fc-stars{gap:2px;display:inline-flex}.fc-primary{border-radius:var(--radius);background:var(--buff);min-height:54px;box-shadow:0 4px 0 var(--buff-pressed);color:var(--ink);cursor:pointer;border:none;font-size:18px;font-weight:800;transition:transform 80ms,box-shadow 80ms}.fc-primary:active{box-shadow:0 1px 0 var(--buff-pressed);transform:translateY(3px)}.fc-primary:disabled{opacity:.45;cursor:default}.fc-secondary{border-radius:var(--radius);background:var(--panel);min-height:50px;color:var(--text);cursor:pointer;border:none;font-size:16px;font-weight:700;box-shadow:0 3px #1d2026}.fc-text-button,.fc-back{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:15px;font-weight:700}.fc-back{align-self:flex-start;align-items:center;gap:2px;padding:0 8px 0 0;display:inline-flex}.fc-icon-button{background:var(--card);width:44px;height:44px;color:var(--text);cursor:pointer;border:none;border-radius:50%;place-items:center;display:grid}.fc-chip-button{background:var(--buff);min-height:36px;color:var(--ink);cursor:pointer;border:none;border-radius:999px;padding:0 16px;font-weight:800}.fc-rating-tag{background:var(--panel);color:var(--text);border-radius:999px;padding:3px 9px;font-size:14px;font-weight:800}.fc-tabbar{z-index:20;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line-soft);-webkit-backdrop-filter:blur(14px);background:#16181de0;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.fc-tabbar button{min-height:52px;color:var(--muted-dim);cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:700;display:flex}.fc-tabbar button.active{color:var(--brass)}.fc-onboarding{box-sizing:border-box;flex-direction:column;gap:16px;min-height:100svh;padding:40px 20px 32px;display:flex}.fc-onboarding-hero{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:8px;display:flex}.fc-onboarding-hero h1{margin:8px 0 0;font-size:30px}.fc-onboarding-hero p{color:var(--muted);margin:0}.fc-onboarding h2{margin:0}.fc-choices{flex-direction:column;gap:10px;display:flex}.fc-choices button{border:2px solid var(--line-soft);border-radius:var(--radius);background:var(--card);min-height:64px;color:var(--text);text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 16px;font-size:16px;display:flex}.fc-choices button span{color:var(--muted);font-size:14px}.fc-choices button.selected{border-color:var(--buff);background:#4f86f71f}.fc-onboarding .fc-primary{margin-top:auto}.fc-logo{letter-spacing:-.02em;align-items:center;gap:8px;font-size:22px;font-weight:800;display:inline-flex}.fc-logo b{color:var(--brass)}.fc-home-head{justify-content:space-between;align-items:center;display:flex}.fc-streak{background:var(--card);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:6px 12px 6px 8px;font-size:17px;font-weight:800;display:inline-flex}.fc-streak.lit{color:#ffb45c}.fc-today{padding:16px}.fc-today-head{align-items:center;gap:14px;margin-bottom:12px;display:flex}.fc-today-head h2{margin:0}.fc-today-head p{color:var(--muted);margin:2px 0 0;font-size:14px}.fc-goals{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.fc-goals li{border-top:1px solid var(--line-soft);align-items:center;gap:12px;min-height:52px;padding:6px 4px;display:flex}.fc-goals li>span:nth-child(2){flex-direction:column;flex:1;display:flex}.fc-goals li>span:nth-child(2) span{color:var(--muted);font-size:13px}.fc-goal-check{border:2px solid var(--line);border-radius:50%;flex:0 0 26px;place-items:center;width:26px;height:26px;display:grid}.fc-goals li.done .fc-goal-check{border-color:var(--good);background:var(--good);color:#10281a}.fc-goals li.done strong{color:var(--muted);text-decoration:line-through}.fc-goals li.later{opacity:.55}.fc-continue,.fc-suggest,.fc-link-row{width:100%;min-height:64px;color:var(--text);text-align:left;cursor:pointer;border:none;align-items:center;gap:12px;padding:12px 14px;font-size:16px;display:flex}.fc-continue{box-shadow:inset 0 0 0 2px var(--buff), var(--lift)}.fc-continue>span:nth-child(2),.fc-link-row>span{color:var(--muted);flex-direction:column;flex:1;font-size:14px;display:flex}.fc-continue>span:nth-child(2) strong{color:var(--text);font-size:16px}.fc-link-row>span{text-align:right}.fc-quick-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.fc-quick-stats .fc-card{flex-direction:column;gap:2px;padding:12px;display:flex}.fc-quick-stats span,.fc-quick-stats small{color:var(--muted);font-size:13px}.fc-quick-stats strong{align-items:center;gap:4px;font-size:22px;display:inline-flex}.fc-group{border-radius:var(--radius);background:var(--card);box-shadow:var(--lift);overflow:hidden}.fc-group-head{width:100%;min-height:68px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:10px;padding:12px 14px;display:flex}.fc-group-title{flex-direction:column;flex:1;display:flex}.fc-group-title strong{font-size:19px}.fc-group-title span{color:var(--muted);font-size:13px}.fc-group-stars{color:var(--muted);align-items:center;gap:4px;font-size:14px;font-weight:800;display:inline-flex}.fc-chevron{color:var(--muted-dim);transition:transform .2s}.fc-group.open .fc-chevron{transform:rotate(90deg)}.fc-group-body{padding:0 8px 8px;animation:.2s ease-out fc-open}@keyframes fc-open{0%{opacity:0;transform:translateY(-4px)}}.fc-group-about{color:var(--muted);margin:0 6px 8px;font-size:14px}.fc-bot-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.fc-bot-row{background:var(--panel);width:100%;min-height:68px;color:var(--text);text-align:left;cursor:pointer;border:none;align-items:center;gap:12px;padding:8px 10px;display:flex}.fc-bot-row:active{background:var(--line-soft)}.fc-bot-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fc-bot-main strong{font-size:16px}.fc-bot-bio{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.35;display:-webkit-box;overflow:hidden}.fc-bot-side{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.fc-bot-sheet{padding-bottom:32px}.fc-bot-hero{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.fc-bot-hero .fc-face{box-shadow:0 0 0 4px var(--card), 0 10px 24px #00000059}.fc-bot-meta{color:var(--muted);margin:0}.fc-bot-quote{color:var(--text);text-align:center;margin:0;font-size:17px;font-style:italic;line-height:1.45}.fc-style{flex-direction:column;gap:2px;padding:12px 14px;display:flex}.fc-style span{color:var(--muted);font-size:14px}.fc-record{color:var(--muted);text-align:center;margin:0}.fc-segmented{border-radius:var(--radius);background:var(--card);grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.fc-segmented button{min-height:46px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:800;display:inline-flex}.fc-segmented button.selected{background:var(--panel);color:var(--text);box-shadow:0 2px 6px #0000004d}.fc-colour-dot{border:1.5px solid var(--muted-dim);border-radius:50%;width:16px;height:16px}.fc-colour-dot.w{background:#f4f4f0}.fc-colour-dot.b{background:#22252b}.fc-colour-dot.random{background:linear-gradient(90deg,#f4f4f0 50%,#22252b 50%)}.fc-result{box-sizing:border-box;text-align:center;background:radial-gradient(90% 45% at 50% 0%, #4f86f738, transparent 70%), var(--bg);flex-direction:column;align-items:center;gap:8px;min-height:100svh;padding:48px 20px 32px;display:flex}.fc-result.win{background:radial-gradient(90% 45% at 50% 0%, #ffcb4538, transparent 70%), var(--bg)}.fc-result h1{margin:10px 0 0;font-size:34px}.fc-result-sub{color:var(--muted);margin:0}.fc-result-stars{gap:8px;margin:18px 0 4px;display:flex}.fc-result-stars span.earned{animation:.45s cubic-bezier(.2,1.6,.4,1) both fc-star-pop}@keyframes fc-star-pop{0%{opacity:0;transform:scale(.2)rotate(-30deg)}}.fc-result-note{max-width:300px;color:var(--muted);margin:0;font-size:14px}.fc-rating-change{color:var(--muted);margin:8px 0 0}.fc-rating-change.up{color:var(--good)}.fc-rating-change.down{color:var(--bad)}.fc-result-actions{flex-direction:column;gap:10px;width:100%;max-width:360px;margin-top:auto;padding-top:24px;display:flex}.fc-profile-head{justify-content:space-between;align-items:center;display:flex}.fc-rating-card{flex-direction:column;gap:2px;padding:14px 14px 8px;display:flex}.fc-rating-card>span{color:var(--muted);font-size:14px}.fc-rating-card>strong{font-size:40px;line-height:1.1}.fc-records{flex-direction:column;margin:0;padding:4px 14px;list-style:none;display:flex}.fc-records li{border-bottom:1px solid var(--line-soft);align-items:center;gap:10px;min-height:52px;display:flex}.fc-records li:last-child{border-bottom:none}.fc-records-name{flex:1;font-weight:700}.fc-records-score{color:var(--muted);font-weight:800}.fc-soon .fc-card{padding:18px}.fc-soon .fc-card p{color:var(--muted);margin:6px 0 0;line-height:1.45}.fc-coach-card{background:linear-gradient(135deg, #4f86f747, #4f86f714), var(--card);width:100%;min-height:76px;color:var(--text);text-align:left;cursor:pointer;border:none;align-items:center;gap:12px;padding:12px 14px;display:flex}.fc-coach-card .fc-chip-button{align-items:center;display:inline-flex}.fc-coach-note{max-width:320px;margin-top:14px;line-height:1.5}.fc-mode{width:100%;min-height:72px;color:var(--text);text-align:left;cursor:pointer;border:none;align-items:center;gap:14px;padding:12px 14px;display:flex}.fc-mode>span:nth-child(2){color:var(--muted);flex-direction:column;flex:1;gap:2px;font-size:14px;display:flex}.fc-mode>span:nth-child(2) strong{color:var(--text);font-size:17px}.fc-mode-main{background:linear-gradient(135deg, #4f86f74d, #4f86f714), var(--card)}.fc-mode-main>svg:first-child{color:var(--brass)}.fc-mode-badge{background:var(--panel);width:38px;height:38px;color:var(--text);border-radius:10px;flex:0 0 38px;place-items:center;font-weight:800;display:grid}.fc-mode-badge.rush{color:#2a1606;background:#ff9a3c;width:auto;padding:0 8px;font-size:14px}.fc-mode-badge.big{height:48px;font-size:20px}.fc-themes{flex-wrap:wrap;gap:8px;display:flex}.fc-theme{background:var(--card);min-height:44px;box-shadow:var(--lift);color:var(--text);cursor:pointer;border:none;border-radius:999px;padding:0 16px;font-size:15px;font-weight:700}.fc-muted{color:var(--muted);margin:0}.fc-puzzle-run{gap:10px;padding-left:0;padding-right:0}.fc-puzzle-run>:not(.puzzle){margin-left:16px;margin-right:16px}.fc-run-head{align-items:center;gap:10px;display:flex}.fc-run-head strong{flex:1;font-size:18px}.fc-puzzle-result{border-radius:var(--radius);background:var(--card);align-items:center;gap:12px;padding:10px 12px;display:flex}.fc-puzzle-result strong{font-size:17px}.fc-puzzle-result.solved strong,.fc-puzzle-result.solved>span{color:var(--good)}.fc-puzzle-result.missed strong,.fc-puzzle-result.missed>span{color:var(--bad)}.fc-puzzle-result>span{font-weight:800}.fc-puzzle-result .fc-primary{min-height:46px;margin-left:auto;padding:0 18px;font-size:16px}.fc-rush-intro{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 18px;display:flex}.fc-rush-intro h2{margin:0}.fc-rush-intro p{margin:0;line-height:1.45}.fc-rush-intro .fc-primary{align-self:stretch;margin-top:8px}.fc-rush-final{font-size:56px;font-weight:800}.fc-rush-bar{border-radius:var(--radius);background:var(--card);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.fc-rush-clock{font-size:22px;font-weight:800}.fc-rush-clock.low{color:var(--bad)}.fc-rush-score{color:var(--star);font-size:28px;font-weight:800}.fc-rush-strikes{color:var(--muted-dim);gap:6px;font-size:20px;font-weight:800;display:flex}.fc-rush-strikes .hit{color:var(--bad)}.fc-unit{flex-direction:column;gap:14px;display:flex}.fc-unit-banner{border-radius:var(--radius);color:#14161a;box-shadow:var(--lift);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.fc-unit-banner strong{font-size:19px}.fc-unit-banner span{opacity:.8;font-size:14px}.fc-path{flex-direction:column;align-items:center;gap:18px;margin:4px 0 12px;padding:0;list-style:none;display:flex}.fc-path li{flex-direction:column;align-items:center;gap:6px;width:160px;display:flex}.fc-node{background:var(--panel);color:#14161a;cursor:pointer;border:none;border-radius:50%;place-items:center;width:72px;height:72px;display:grid;box-shadow:0 6px #00000059}.fc-node:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px #00000059}.fc-node.locked{color:var(--muted-dim);cursor:default}.fc-node.current{animation:1.8s ease-in-out infinite fc-glow}@keyframes fc-glow{50%{box-shadow:0 6px #00000059,0 0 0 10px #ffffff1f}}.fc-node-label{text-align:center;font-size:14px;font-weight:700}.fc-node-label.locked{color:var(--muted-dim)}.fc-lesson{gap:12px;padding-bottom:24px;padding-left:0;padding-right:0}.fc-lesson>:not(.coach-drill):not(.puzzle):not(.fc-round):not(.drill-play){margin-left:16px;margin-right:16px}.fc-lesson-head{align-items:center;gap:12px;display:flex}.fc-lesson-progress{background:var(--panel);border-radius:999px;flex:1;height:14px;overflow:hidden}.fc-lesson-progress i{background:var(--good);border-radius:999px;height:100%;transition:width .4s;display:block}.fc-lesson-title{margin:0;font-size:22px!important}.fc-idea{flex-direction:column;gap:16px;display:flex}.fc-idea-card{border-radius:var(--radius);background:var(--card);box-shadow:var(--lift);align-items:flex-start;gap:12px;padding:16px;display:flex}.fc-idea-card p{margin:0;font-size:17px;line-height:1.5}.fc-round{flex-direction:column;gap:10px;display:flex}.fc-round>.fc-round-head,.fc-round>.fc-primary{margin:0 16px}.fc-round-head{justify-content:space-between;align-items:baseline;margin:0;display:flex}.fc-round-head span{color:var(--muted);font-size:14px}.fc-round-result{border-radius:var(--radius);background:var(--card);flex-direction:column;gap:10px;padding:18px;display:flex}.fc-round-result strong{font-size:20px}.fc-round-result.passed strong{color:var(--good)}.fc-round-result.missed strong{color:var(--bad)}.fc-round-result p{color:var(--muted);margin:0}.fc-lesson-done{text-align:center;flex-direction:column;align-items:center;gap:12px;padding-top:40px;display:flex}.fc-lesson-tick{background:var(--good);color:#10281a;border-radius:50%;place-items:center;width:96px;height:96px;animation:.5s cubic-bezier(.2,1.6,.4,1) both fc-star-pop;display:grid}.fc-lesson-done p{color:var(--muted);margin:0}.fc-lesson-done .fc-primary{align-self:stretch;margin-top:12px}.fc-menu-label{color:var(--muted);margin:0 0 8px;font-size:15px;font-weight:700}.fc-menu{margin:0;padding:0;list-style:none;overflow:hidden}.fc-menu li+li{border-top:1px solid var(--line-soft)}.fc-menu-row{width:100%;min-height:60px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:10px 14px;display:flex}.fc-menu-row:active{background:var(--panel)}.fc-menu-text{flex-direction:column;flex:1;min-width:0;display:flex}.fc-menu-text strong{font-size:16px}.fc-menu-text span{color:var(--muted);font-size:14px}.fc-custom-strength{flex-direction:column;gap:12px;padding:14px;display:flex}.fc-custom-row{align-items:center;gap:12px;display:flex}.fc-custom-number{flex-direction:column;flex:1;align-items:center;display:flex}.fc-custom-number strong{font-variant-numeric:tabular-nums;font-size:40px;line-height:1.1}.fc-custom-number span{color:var(--muted);font-size:14px}.fc-round-button{background:var(--panel);height:48px;color:var(--text);cursor:pointer;border:none;border-radius:50%;flex:0 0 48px;font-size:26px;font-weight:800}.fc-custom-strength input[type=range]{width:100%;height:32px;accent-color:var(--buff)}.fc-style-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.fc-style-grid button{background:var(--card);min-height:46px;color:var(--text);font:inherit;cursor:pointer;border:2px solid #0000;border-radius:12px;padding:0 6px;font-size:14px;font-weight:800}.fc-style-grid button.selected{border-color:var(--buff);background:var(--panel)}.fc-style-detail{color:var(--muted);margin:8px 2px 0;font-size:14px}.fc-custom-note{text-align:center;margin:0;font-size:13px}.custom-face{color:#fff;background:linear-gradient(160deg,#6c9bff,#3d6fe0);border-radius:50%;place-items:center;display:grid}.fc-game-options{flex-direction:column;gap:8px;display:flex}.fc-segmented.four{grid-template-columns:repeat(4,1fr)}.fc-segmented.four button{font-size:14px}.fc-insight{flex-direction:column;gap:10px;padding:14px;display:flex}.fc-insight h2{margin:0;font-size:17px}.fc-insight-line{color:var(--muted);margin:0;font-size:14px}.fc-insight-big{margin:0;font-size:32px;font-weight:900}.fc-insight-big span{color:var(--muted);font-size:15px;font-weight:700}.fc-insight-empty{color:var(--muted);padding:16px}.fc-insight-pair{flex-wrap:wrap;gap:8px 20px;font-size:15px;display:flex}.fc-insight-pair span,.fc-openings li{align-items:center;gap:8px;display:flex}.fc-result-bar{background:var(--panel);border-radius:7px;gap:2px;height:14px;display:flex;overflow:hidden}.fc-result-bar .won{background:var(--good)}.fc-result-bar .drawn{background:var(--muted-dim)}.fc-result-bar .lost{background:var(--bad)}.fc-insight .phase{background:var(--panel)}.fc-insight .phase.weakest{box-shadow:inset 0 0 0 2px var(--bad)}.fc-openings{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.fc-opening-name{flex:1;min-width:0;font-weight:700}.fc-openings strong{text-align:right;font-variant-numeric:tabular-nums;min-width:44px}.fc-badges{grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;list-style:none;display:grid}.fc-badge{flex-direction:column;gap:4px;min-width:0;padding:12px;display:flex}.fc-badge strong{font-size:15px}.fc-badge>span{color:var(--muted);font-size:13px}.fc-badge:not(.earned) strong{color:var(--muted)}.fc-badge-progress{background:var(--panel);border-radius:3px;height:5px;margin-top:4px;display:block;overflow:hidden}.fc-badge-progress i{background:var(--buff);height:100%;display:block}.fc-new-badges{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.fc-new-badges li{background:var(--card);border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 6px;font-size:14px;font-weight:800;display:flex}.fc-vision-top{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:96px;display:flex}.fc-vision-target{font-size:56px;font-weight:900;line-height:1}.fc-vision-stats{color:var(--muted);font-variant-numeric:tabular-nums;gap:16px;margin-top:6px;font-weight:800;display:flex}.fc-vision-stats .low{color:var(--bad)}.fc-vision-result strong{font-size:56px;line-height:1;display:block}.fc-vision-result span,.fc-vision-intro p{color:var(--muted)}.fc-vision-intro h1{margin:0}.fc-vision-intro p{margin:6px 0 0}.fc-vision-board{border-radius:8px;width:min(100%,520px);margin:0 auto;overflow:hidden}.fc-vision-board.resting{opacity:.6}.fc-segmented.two,.fc-vision .fc-segmented{grid-template-columns:1fr 1fr}.lvl-beginner{--lvl:#5fd38d}.lvl-intermediate{--lvl:#6f9bff}.lvl-advanced{--lvl:#b98cff}.lvl-master{--lvl:#ffb547}.fc-level-badge{background:var(--lvl);border-radius:12px;flex:none;place-items:center;display:grid;box-shadow:inset 0 -3px #0000002e}.fc-rating-tag[class*=lvl-]{background:color-mix(in srgb, var(--lvl) 18%, transparent);color:var(--lvl)}.fc-group.open{box-shadow:inset 3px 0 0 var(--lvl), var(--lift)}.fc-bot-banner{background:repeating-conic-gradient(#ffffff24 0 25%, transparent 0 50%) 0 0 / 36px 36px, linear-gradient(180deg, color-mix(in srgb, var(--banner) 85%, white), var(--banner));border-radius:0 0 28px 28px;height:150px;margin:-18px -16px 64px;position:relative}.fc-banner-back{top:calc(10px + env(safe-area-inset-top));color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);background:#16181d8c;border:none;border-radius:999px;align-items:center;gap:2px;min-height:40px;padding:0 14px 0 8px;font-size:15px;font-weight:800;display:inline-flex;position:absolute;left:10px}.fc-banner-face{box-shadow:0 0 0 6px var(--bg), 0 14px 28px #00000059;position:absolute;bottom:-60px;left:50%;transform:translate(-50%)}.fc-bot-hero h1{margin:0}.fc-bot-chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.fc-chip{background:var(--card);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:14px;font-weight:700}.fc-bubble{background:var(--card);color:var(--text);text-align:center;border-radius:16px;margin:6px 0 0;padding:12px 16px;font-size:16px;line-height:1.45;position:relative}.fc-bubble:before{content:"";background:var(--card);border-radius:3px;width:16px;height:16px;position:absolute;top:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.fc-bot-sheet .fc-style{flex-direction:row;align-items:center;gap:12px}.fc-style-icon{background:color-mix(in srgb, var(--lvl,var(--buff)) 20%, transparent);height:44px;color:var(--lvl,var(--buff));border-radius:12px;flex:0 0 44px;place-items:center;display:grid}.fc-style-text{flex-direction:column;gap:2px;display:flex}.fc-style-text span{color:var(--muted);font-size:14px}.fc-tab-icon{display:inline-grid;position:relative}.fc-tab-badge{box-sizing:border-box;background:var(--bad);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-style:normal;font-weight:800;line-height:18px;position:absolute;top:-4px;right:-10px}.fc-mode-badge.mistakes{background:var(--panel)}.fc-mode.due .fc-mode-badge.mistakes{background:var(--bad);color:#fff}.fc-openings-line{margin-top:4px;font-size:14px;color:var(--text)!important}.fc-mode-badge.for-you{background:var(--buff);width:auto;color:var(--ink);white-space:nowrap;padding:0 8px;font-size:12px}.fc-for-you{box-shadow:inset 0 0 0 2px var(--buff), var(--lift)}.fc-theme.on{background:var(--buff);color:var(--ink)}.fc-custom-puzzles{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.fc-custom-start{padding:10px 16px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);background:#16181df0;position:fixed;bottom:0;left:0;right:0}.fc-custom-start .fc-primary{width:100%}.crash-screen{flex-direction:column;gap:14px;padding:48px 16px 32px;display:flex}.crash-screen h1{margin:0;font-size:26px;font-weight:600}.crash-screen p{color:var(--muted);margin:0}.crash-screen button{border-radius:var(--radius);min-height:48px;font:inherit;cursor:pointer;font-weight:600}.crash-primary{background:var(--brass);color:var(--ink);border:none}.crash-secondary{border:1px solid var(--line);background:var(--panel);color:var(--text)}.crash-screen .crash-detail{color:var(--muted-dim);overflow-wrap:anywhere;font-size:13px}
