@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,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(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.board-area{display:grid;grid-template-columns:var(--board-size);row-gap:.5rem;max-width:100%}.board-area.with-coords{grid-template-columns:var(--coord-size) var(--board-size)}.board-area>*{grid-column:1 / -1}.board-area>.board,.board-area>.coords.files{grid-column:-2}.board-area>.coords.ranks{grid-column:1;grid-row:1}.board-area>.board{grid-row:1}.board-area>.coords.files{margin-top:-.5rem}.board{position:relative;width:var(--board-size);height:var(--board-size);aspect-ratio:1;border-radius:6px;overflow:hidden;user-select:none;touch-action:manipulation;box-shadow:0 20px 60px -20px #000000b3,0 0 0 1px #ffffff0d;--light: var(--board-light);--dark: var(--board-dark);--mark-halo: #ffffff;--mark-select: #0a2a1e;--mark-last: #382000;--mark-check: #520000;--mark-legal: #14231e;--mark-hint: #3c006e;--mark-goal: #ffc83d;--mark-goal-edge: #14231e;--mark-pending: #001f3f;--mark-arrow: #0a2a1e;--mark-line: max(1.5px, calc(var(--board-size) / 240));--mark-heavy: max(2.5px, calc(var(--board-size) / 130));--mark-gap: max(1.5px, calc(var(--board-size) / 320))}.square.draggable{touch-action:none}.board.theme-classic{--light: #f0d9b5;--dark: #b58863}.board.theme-walnut{--light: #e8d3b0;--dark: #9c6844}.board.theme-sand{--light: #f3e4c7;--dark: #c8a06a}.board.theme-forest{--light: #eeeed2;--dark: #769656}.board.theme-emerald{--light: #e4ead9;--dark: #4e8a63}.board.theme-ocean{--light: #dee3e6;--dark: #6f8aa6}.board.theme-ice{--light: #eef3f7;--dark: #9ab4c8}.board.theme-slate{--light: #c9ccd1;--dark: #6b7280}.board.theme-marble{--light: #efece6;--dark: #a7a29b}.board.theme-rose{--light: #f5e1e4;--dark: #b7717e}.board.theme-lavender{--light: #ebe6f4;--dark: #8f7fb6}.board.theme-playground{--light: #fff4d6;--dark: #7cc7a6}:root[data-contrast] .board,.display-preview[data-contrast] .board{--light: var(--board-hc-light);--dark: var(--board-hc-dark);outline:3px solid #000}.board-squares{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr)}.board-squares[role=grid]{grid-template-columns:1fr}.board-rank{display:grid;grid-template-columns:repeat(8,1fr)}.square{position:relative}.square.light{background:var(--light)}.square.dark{background:var(--dark)}.mark{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;--ink: var(--mark-legal)}.mark path{fill:none;stroke-linecap:square;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.mark .ink{stroke:var(--ink);stroke-width:var(--mark-line)}.mark .ink.heavy{stroke-width:var(--mark-heavy)}.mark .ink.fill{fill:var(--ink);stroke:none}.mark .halo{stroke:var(--mark-halo);stroke-width:calc(var(--mark-line) + 2 * var(--mark-gap))}.mark .halo.heavy{stroke-width:calc(var(--mark-heavy) + 2 * var(--mark-gap))}.mark .halo.fill{stroke-width:calc(2 * var(--mark-gap))}.mark-selected{--ink: var(--mark-select)}.mark-last{--ink: var(--mark-last)}.mark-check{--ink: var(--mark-check)}.mark-hint{--ink: var(--mark-hint)}.mark-hint path{stroke-dasharray:12 8;stroke-linecap:butt}.mark-goal .halo{stroke:var(--mark-goal-edge);stroke-width:calc(2 * var(--mark-line))}.mark-goal .ink.fill{fill:var(--mark-goal)}.square.hover:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 var(--mark-heavy) var(--mark-legal),inset 0 0 0 calc(var(--mark-heavy) + var(--mark-gap)) var(--mark-halo)}.coords{display:grid;font-size:var(--font-small);line-height:1;font-weight:600;color:var(--color-text-secondary);pointer-events:none;user-select:none;direction:ltr}.coords.files{grid-template-columns:repeat(8,1fr);height:var(--coord-size);align-items:end}.coords.ranks{grid-template-rows:repeat(8,1fr);height:var(--board-size);align-items:center;justify-items:start}.coords span{text-align:center}.board-pieces{position:absolute;inset:0;pointer-events:none}.piece{position:absolute;top:0;left:0;width:12.5%;height:12.5%;transition:transform .18s cubic-bezier(.2,.8,.2,1);will-change:transform}.piece svg,.piece img{width:100%;height:100%;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}.piece.dragged svg,.piece.dragged img{transform:scale(1.12);filter:drop-shadow(0 10px 10px rgba(0,0,0,.5))}.board.dragging{cursor:grabbing}.board:not(.frozen) .square{cursor:pointer}.arrow-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.arrow-halo{stroke:var(--mark-halo)}.arrow-halo-head{fill:var(--mark-halo)}.arrow-ink{stroke:var(--mark-arrow)}.arrow-ink-head{fill:var(--mark-arrow)}.promotion-dialog{color:var(--color-text)}.promotion-dialog::backdrop{background:#0009}.promotion-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.5rem;margin-top:.75rem}.promotion-choice{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-height:var(--control-height);padding:.5rem;border:2px solid var(--color-control-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:600;cursor:pointer}.promotion-choice:hover{background:var(--color-hover)}.promotion-choice svg,.promotion-choice img{width:3.5rem;height:3.5rem}.pending-mark{position:absolute;inset:4px;border:3px dashed var(--mark-pending);box-shadow:0 0 0 2px var(--mark-halo),inset 0 0 0 2px var(--mark-halo);pointer-events:none}.pending-mark.to{border-style:solid}.board-actions{display:flex;flex-wrap:wrap;gap:.5rem}.board-confirm{display:flex;flex-wrap:wrap;gap:.5rem;flex:2 1 auto}.board-confirm .btn,.board-actions>.btn{flex:1 1 auto}.text-board{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.text-board-heading{margin:0;font-size:var(--font-body)}.text-board-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:var(--control-height);padding:.375rem .75rem;background:transparent;border:0;border-radius:var(--radius-card);color:var(--color-text);font:inherit;font-weight:700;text-align:start;cursor:pointer}.text-board-toggle:hover{background:var(--color-hover)}.text-board-toggle-action{color:var(--color-link);font-weight:600}.text-board-panel{display:flex;flex-direction:column;gap:1rem;padding:.25rem .75rem .75rem}.text-board-entry{display:flex;flex-direction:column;gap:.375rem}.text-board-entry label{font-weight:600}.text-board-field{display:flex;flex-wrap:wrap;gap:.5rem}.text-board-field input{flex:1 1 8rem;font-family:var(--font-mono)}.text-board-help{margin:0;color:var(--color-text-secondary)}.text-board-error{margin:0;color:var(--color-error);font-weight:600}.text-board-section h3{margin:0 0 .375rem;font-size:var(--font-body)}.text-board-section p{margin:0}.text-board-list{display:flex;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none}.text-board-list .btn[aria-pressed=true]{border-color:var(--color-primary);box-shadow:inset 0 0 0 2px var(--color-primary)}.text-board-list .btn[aria-disabled=true]{opacity:.6;cursor:not-allowed}.text-board-piece{display:inline-flex;align-items:center;min-height:var(--control-height);padding:0 .25rem}.mark-goal{z-index:1;animation:star-pop 1.6s ease-in-out 3}@keyframes star-pop{50%{transform:scale(1.12)}}.mark-hint{animation:hint-pulse 1s ease-in-out 4}@keyframes hint-pulse{50%{transform:scale(.85);opacity:.6}}.board.shake{animation:shake .4s ease}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.square:focus-visible{outline:3px solid #003e73;outline-offset:-3px;box-shadow:inset 0 0 0 5px #fff}.describe-board{position:absolute;left:8px;bottom:8px;z-index:20}@media(forced-colors:active){.board-squares{forced-color-adjust:none}.board[class]{--light: var(--board-hc-light);--dark: var(--board-hc-dark);--mark-select: Highlight;--mark-pending: Highlight}.square{box-shadow:inset 0 0 0 1px CanvasText}.square:focus-visible{outline-color:Highlight;box-shadow:inset 0 0 0 5px Canvas}.pending-mark{box-shadow:0 0 0 2px Canvas,inset 0 0 0 2px Canvas}}:root{--color-bg: #f7f8fa;--color-bg-glow: #f7f8fa;--color-surface: #ffffff;--color-panel: #eef1f3;--color-text: #14231e;--color-text-secondary: #52645e;--color-primary: #1f5b46;--color-primary-hover: #174535;--color-on-primary: #ffffff;--color-link: #1f5b46;--color-learning: #6750a4;--color-comfort: #245a81;--color-warning: #8a3b00;--color-error: #a12622;--color-danger: #a12622;--color-on-danger: #ffffff;--color-success: #2a6b3d;--color-star: #a86a00;--color-focus: #003e73;--color-focus-inner: #ffffff;--color-border: rgba(20, 35, 30, .14);--color-control-border: #6b7c76;--color-hover: rgba(20, 35, 30, .06);--color-stripe: rgba(20, 35, 30, .03);--board-light: #f0e4cc;--board-dark: #7b9588;--board-hc-light: #ffffff;--board-hc-dark: #6d8a7d;color-scheme:light;--text-scale: 1;--font-small: 1rem;--font-body: 1.125rem;--font-large: 1.25rem;--font-h2: 1.375rem;--font-h1: clamp(1.75rem, 1.5rem + 1vw, 2rem);--line-height-body: clamp(1.5, 1.5 + (var(--text-scale) - 1) * .4, 1.6);--control-height: 3rem;--radius-card: .75rem;--radius-control: .5rem;--space-unit: .25rem;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-kids: "Nunito Variable", "Nunito", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow-1: 0 1px 2px rgba(0, 0, 0, .12), 0 4px 16px -8px rgba(0, 0, 0, .35);--shadow-2: 0 2px 6px rgba(0, 0, 0, .18), 0 18px 40px -18px rgba(0, 0, 0, .55)}:root[data-app-theme=dark]{--color-bg: #161512;--color-bg-glow: #2a2620;--color-surface: #1f1d19;--color-panel: #26231e;--color-text: #ece6da;--color-text-secondary: #9a9387;--color-primary: #d4a24c;--color-primary-hover: #e7b964;--color-on-primary: #1a1710;--color-link: #e7b964;--color-learning: #b8a6f0;--color-comfort: #8cc0e8;--color-warning: #f0b36b;--color-error: #f0a398;--color-danger: #b3392b;--color-on-danger: #ffffff;--color-success: #7cc489;--color-star: #ffb400;--color-focus: #8ab4f8;--color-focus-inner: #161512;--color-border: rgba(255, 255, 255, .08);--color-control-border: #8a8378;--color-hover: rgba(255, 255, 255, .06);--color-stripe: rgba(255, 255, 255, .025);color-scheme:dark}:root[data-app-theme=midnight]{--color-bg: #0f1522;--color-bg-glow: #1a2540;--color-surface: #161e2e;--color-panel: #1c2638;--color-text: #e3e9f5;--color-text-secondary: #8d9bb5;--color-primary: #7fb2ff;--color-primary-hover: #a3c7ff;--color-on-primary: #0b1120;--color-link: #a3c7ff;--color-learning: #c4b5fd;--color-comfort: #93c5fd;--color-warning: #ffc36b;--color-error: #ff9a8c;--color-danger: #c0392b;--color-on-danger: #ffffff;--color-success: #6fd08a;--color-star: #ffb400;--color-focus: #ffd166;--color-focus-inner: #0f1522;--color-border: rgba(160, 190, 255, .1);--color-control-border: #7d8aa3;--color-hover: rgba(160, 190, 255, .08);--color-stripe: rgba(160, 190, 255, .03);color-scheme:dark}:root[data-kids]{--font: var(--font-kids);--color-bg: #fff8ec;--color-bg-glow: #ffe6c2;--color-surface: #ffffff;--color-panel: #fff3dc;--color-text: #2f2416;--color-text-secondary: #7a6650;--color-primary: #ff8a3d;--color-primary-hover: #ffa060;--color-on-primary: #2f2416;--color-link: #a84508;--color-learning: #6750a4;--color-comfort: #245a81;--color-warning: #8a3b00;--color-error: #b3261e;--color-danger: #b3261e;--color-on-danger: #ffffff;--color-success: #1f7a50;--color-star: #b86f00;--color-focus: #003e73;--color-focus-inner: #ffffff;--color-border: rgba(120, 80, 20, .14);--color-control-border: #8f7a63;--color-hover: rgba(255, 150, 50, .1);--color-stripe: rgba(255, 150, 50, .05);--radius-card: 1.25rem;color-scheme:light}:root[data-contrast]{--color-bg: #ffffff;--color-bg-glow: #ffffff;--color-surface: #ffffff;--color-panel: #ffffff;--color-text: #000000;--color-text-secondary: #000000;--color-primary: #1f5b46;--color-primary-hover: #173f31;--color-on-primary: #ffffff;--color-link: #1f5b46;--color-learning: #4f378b;--color-comfort: #1d4a6b;--color-warning: #8a3b00;--color-error: #a12622;--color-danger: #a12622;--color-on-danger: #ffffff;--color-success: #1d5c33;--color-star: #7a4a00;--color-focus: #003e73;--color-focus-inner: #ffffff;--color-border: #000000;--color-control-border: #000000;--color-hover: rgba(0, 0, 0, .08);--color-stripe: transparent;--board-light: var(--board-hc-light);--board-dark: var(--board-hc-dark);color-scheme:light}:root{--coord-size: 1.25rem;--coord-room: max(25px, var(--coord-size));--viewport-height: 100vh;--board-room: calc(100vw - 32px - var(--coord-room));--board-min: min(var(--board-room), 12rem);--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 17rem / var(--text-scale)), 720px) );--sticky-top: var(--header-height, 0px);--sticky-bottom: var(--tab-bar-height, 0px)}@supports (height: 100svh){:root{--viewport-height: 100svh}}:root,.game-layout,.lesson-page{--board-size: var(--board-fit)}:root[data-board-size=large],:root[data-board-size=large] .game-layout,:root[data-board-size=large] .lesson-page{--board-size: max( var(--board-fit), min(var(--board-room), max(352px, calc(var(--board-fit) * 1.25))) )}:root[data-board-size=extra-large],:root[data-board-size=extra-large] .game-layout,:root[data-board-size=extra-large] .lesson-page{--board-size: max( var(--board-fit), min(var(--board-room), max(448px, calc(var(--board-fit) * 1.5))) )}*{box-sizing:border-box}html{font-size:calc(100% * var(--text-scale));scroll-padding-top:var(--sticky-top);scroll-padding-bottom:calc(var(--sticky-bottom) + var(--toast-room, 0px) + var(--cta-room, 0px))}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);font-size:var(--font-body);line-height:var(--line-height-body);overflow-wrap:break-word;background:radial-gradient(1200px 600px at 20% -10%,var(--color-bg-glow) 0%,var(--color-bg) 55%);color:var(--color-text)}a{color:var(--color-link)}button{font:inherit;color:inherit}h1,h2,h3{margin:0 0 .4em;line-height:1.2;font-weight:700}h1{font-size:var(--font-h1)}h2{font-size:var(--font-h2)}h3{font-size:var(--font-large)}p{margin:0 0 1em}.muted{color:var(--color-text-secondary)}.small{font-size:var(--font-small)}.mono{font-family:var(--font-mono);letter-spacing:.1em}.accent{color:var(--color-primary)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}:where(:root[data-contrast]) :focus-visible{box-shadow:0 0 0 3px var(--color-focus-inner)}.side-panel :focus-visible,.secondary-links :focus-visible{outline-offset:-3px}.app-shell{min-height:100vh;display:flex;flex-direction:column;padding-bottom:var(--toast-room, 0px)}.app-header{display:flex;align-items:center;gap:24px;padding:calc(.75rem + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) .75rem max(20px,env(safe-area-inset-left,0px));flex-wrap:wrap;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 85%,transparent);backdrop-filter:blur(10px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:10px;min-height:var(--control-height);text-decoration:none;color:var(--color-text);font-weight:800;letter-spacing:-.01em}.brand-mark{color:var(--color-primary)}.nav{display:flex;gap:4px;margin-left:auto}.nav a{display:inline-flex;align-items:center;min-height:var(--control-height);white-space:nowrap;padding:0 12px;border-radius:var(--radius-control);color:var(--color-text-secondary);text-decoration:none;font-weight:600}.nav a:hover{color:var(--color-text);background:var(--color-hover)}.nav a.active{color:var(--color-link);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.app-main{flex:1;padding:20px;max-width:1280px;width:100%;margin:0 auto}.icon-btn{background:transparent;border:1px solid var(--color-control-border);border-radius:var(--radius-control);min-width:var(--control-height);min-height:var(--control-height);cursor:pointer;font-size:var(--font-large)}.icon-btn:hover{background:var(--color-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--control-height);padding:.375rem 1rem;border-radius:var(--radius-control);border:1px solid var(--color-control-border);background:var(--color-panel);color:var(--color-text);font-weight:600;font-size:var(--font-body);cursor:pointer;text-decoration:none;transition:background .15s,transform .05s,border-color .15s;max-width:100%;text-align:center}.btn:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-panel) 80%,var(--color-text) 20%)}.btn:active:not(:disabled,[aria-disabled=true]){transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.btn.primary:hover:not(:disabled,[aria-disabled=true]){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn.danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-danger)}.btn.danger-outline{border-color:var(--color-error);color:var(--color-error)}.btn.ghost{background:transparent}.btn.active{border-color:var(--color-primary);color:var(--color-link)}.btn.large{padding:.75rem 1.375rem;font-size:var(--font-large)}.btn.small{padding:.25rem .75rem}.link{background:none;border:0;padding:0;color:var(--color-link);cursor:pointer;text-decoration:underline;font:inherit}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>span{font-size:var(--font-small);color:var(--color-text-secondary);font-weight:600}input,select{min-width:0;max-width:100%}input[type=text],input[type=number],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],input:not([type]),.join-row input,select,textarea{min-height:var(--control-height);background:var(--color-surface);border:1px solid var(--color-control-border);border-radius:var(--radius-control);padding:.375rem .75rem;color:var(--color-text);font:inherit}input::placeholder,textarea::placeholder{color:var(--color-text-secondary);opacity:1}input:focus{border-color:var(--color-primary)}.toggle{display:flex;align-items:center;gap:10px;min-height:var(--control-height);padding:8px 0;cursor:pointer}.toggle input{width:1.25rem;height:1.25rem;accent-color:var(--color-primary)}.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.setup-page{max-width:760px;margin:0 auto}.setup-page.centered{text-align:center;padding-top:60px;display:flex;flex-direction:column;align-items:center;gap:12px}.setup-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:18px 20px;margin-bottom:16px}.setup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.level-pill{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-link);padding:4px 10px;border-radius:999px;font-size:var(--font-small);font-weight:600}.level-slider{width:100%;accent-color:var(--color-primary);margin:14px 0 6px}.level-ticks{display:flex;justify-content:space-between}.tick{background:transparent;border:0;width:28px;height:28px;border-radius:50%;color:var(--color-text-secondary);cursor:pointer;font-weight:600}.tick.selected{background:var(--color-primary);color:var(--color-on-primary)}.color-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.color-choice.compact{margin-bottom:14px}.color-btn{min-height:var(--control-height);padding:12px;border-radius:var(--radius-control);border:2px solid var(--color-border);background:var(--color-panel);cursor:pointer;font-weight:600}.color-btn.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.tc-picker{display:flex;flex-direction:column;gap:10px}.tc-group{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:10px}.tc-group-label{color:var(--color-text-secondary);font-size:var(--font-small);font-weight:600}.tc-options{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;min-height:var(--control-height);padding:.25rem .875rem;border-radius:999px;border:1px solid var(--color-control-border);background:var(--color-panel);cursor:pointer;font-weight:600;font-size:var(--font-small)}.chip.selected{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.lobby-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.status-dot{display:inline-flex;align-items:center;gap:8px;font-size:var(--font-small);color:var(--color-text-secondary)}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--color-text-secondary)}.status-dot.on:before{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.lobby-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:20px;display:flex;flex-direction:column;gap:10px}.queue-status{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.room-info{display:flex;flex-direction:column;gap:10px}.room-code{font-family:var(--font-mono);font-size:2rem;letter-spacing:.3em;text-align:center;padding:10px;background:var(--color-bg);border-radius:8px;border:1px dashed var(--color-border)}.join-row{display:flex;gap:8px;margin-top:auto}.join-row input{flex:1;text-transform:uppercase;letter-spacing:.15em;font-family:var(--font-mono)}.alert{padding:10px 14px;border-radius:8px;margin-bottom:14px;border:1px solid var(--color-border)}.alert.error{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:color-mix(in srgb,var(--color-error) 12%,transparent);border-color:var(--color-error)}.alert.info{background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-color:var(--color-primary)}.spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--color-text) 20%,transparent);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear 6;display:inline-block;flex-shrink:0}.spinner.large{width:36px;height:36px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.game-layout{display:grid;grid-template-columns:minmax(0,auto) minmax(280px,360px);grid-template-areas:"board status" "board players" "board side";grid-template-rows:auto auto 1fr;gap:12px 20px;justify-content:center;align-items:start;--eval-room: 0px;--board-room: calc(min(100vw, 1280px) - 340px - var(--coord-room) - var(--eval-room));--board-min: min(var(--board-room), 12rem);--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 13.5rem / var(--text-scale)), 720px) )}.game-layout:has(.eval-bar){--eval-room: calc(1.5rem + 10px) }.game-status-area{grid-area:status;min-width:0}.board-row{grid-area:board;display:flex;gap:10px;align-items:flex-start;min-width:0}.game-players{grid-area:players;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));gap:10px;min-width:0}.game-side{grid-area:side;position:sticky;top:calc(var(--sticky-top) + 1rem);min-width:0}.side-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);display:flex;flex-direction:column;max-height:calc(100vh - var(--sticky-top) - 2rem);overflow-y:auto}:root[data-large-text] .game-side{position:static}:root[data-large-text] .side-panel{max-height:none}.side-header{padding:14px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:10px}.side-title{font-weight:700}.move-list{flex:1;min-height:120px;max-height:260px;overflow-y:auto;padding:8px 10px;font-family:var(--font-mono);font-size:var(--font-small)}.move-list-empty{color:var(--color-text-secondary);text-align:center;padding:20px 0;font-family:var(--font)}.move-row{display:grid;grid-template-columns:2.5rem minmax(0,1fr) minmax(0,1fr);align-items:center}.move-row:nth-child(2n){background:var(--color-stripe)}.move-number{color:var(--color-text-secondary);padding-left:4px}.move{background:transparent;border:0;text-align:left;padding:4px 8px;border-radius:4px;cursor:pointer}.move:hover{background:var(--color-hover)}.move.current{background:color-mix(in srgb,var(--color-primary) 22%,transparent);color:var(--color-link);font-weight:700}.move-result{text-align:center;padding:8px;font-weight:700;color:var(--color-text-secondary)}.history-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.history-nav button{min-height:var(--control-height);background:transparent;border:0;padding:8px;cursor:pointer;color:var(--color-text-secondary)}.history-nav button:hover:not([aria-disabled=true]){color:var(--color-text);background:var(--color-hover)}.history-nav button[aria-disabled=true]{opacity:.3;cursor:not-allowed}.controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(110px,100%),1fr));gap:8px;padding:12px;border-bottom:1px solid var(--color-border)}.more-controls{display:flex;flex-direction:column;gap:8px;padding:12px;border-bottom:1px solid var(--color-border)}.more-controls>.controls{padding:0;border-bottom:0}.more-controls>[hidden]{display:none}.secondary-controls{display:flex;flex-wrap:wrap;gap:8px;padding:12px;border-bottom:1px solid var(--color-border)}.secondary-controls>.btn{flex:1 1 9rem}.task{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-bottom:1px solid var(--color-border)}.task:empty{display:none}.task-note{margin:0}.game-status{display:flex;flex-direction:column;gap:8px}.game-status-line{margin:0;padding:.25rem 0}.game-status-players{color:var(--color-text-secondary)}.game-status-state,.game-status-check{font-weight:700}.game-status-alert{margin:0;padding:10px 14px;border:2px solid var(--color-error);border-radius:8px;background:var(--color-surface);color:var(--color-error);font-weight:700}.end-game-panel{display:flex;flex-direction:column;gap:8px;padding:16px;border-bottom:1px solid var(--color-border);text-align:center}.end-game-result{margin:0;font-size:2rem;font-weight:800;font-family:var(--font-mono)}.end-game-title{margin:0}.end-game-detail{margin:0;color:var(--color-text-secondary)}.end-game-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}.end-game-mode{margin:0;font-weight:700}.end-game-note{margin:0;text-align:start}.practice-recap{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:4px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);text-align:start}.practice-recap h3{margin:0;font-size:var(--font-large)}.practice-recap p{margin:0}.hint-panel{display:flex;flex-direction:column;gap:8px;padding:10px 14px;border:2px solid var(--color-primary);border-radius:8px;background:var(--color-surface)}.hint-panel h2{margin:0;font-size:var(--font-large)}.hint-steps{display:flex;flex-direction:column;gap:8px;margin:0;padding-inline-start:1.5em}.hint-steps li>p{margin:0 0 4px}.practice-mode{margin:0;font-weight:700}.phrases,.replay{display:flex;flex-direction:column;gap:8px;padding:12px 16px;border-bottom:1px solid var(--color-border)}.phrases .controls{padding:0;border-bottom:0}.phrases-title,.replay h2{margin:0;font-size:var(--font-large)}.phrase-list{margin:0;padding-inline-start:1.25em}.replay p{margin:0}.display-sheet,.how-to-use{display:flex;flex-direction:column;gap:16px}.how-to-use section>h3{margin-bottom:.25em}.how-to-use p,.display-sheet>p{margin:0}.banner{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.banner.offer{border-color:var(--color-primary)}.banner.warn{border-color:var(--color-error)}.engine-unavailable{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.engine-unavailable p{margin:0}.engine-unavailable-title{font-weight:700}.engine-unavailable-actions{display:flex;flex-wrap:wrap;gap:8px}.player-card{display:flex;align-items:center;min-width:0;gap:12px;padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.player-card.active{border-color:var(--color-primary)}.avatar{width:2.25rem;height:2.25rem;border-radius:.5rem;display:grid;place-items:center;font-weight:800;flex-shrink:0}.avatar.w{background:#f1ebe0;color:#1a1710}.avatar.b{background:#2d2a28;color:#f1ebe0;border:1px solid var(--color-border)}.player-meta{flex:1;min-width:0}.player-name{font-weight:700;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.player-sub{color:var(--color-text-secondary);font-size:var(--font-small);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-height:1.5em}.captured{display:inline-flex;align-items:center;gap:0}.captured-piece{width:16px;height:16px;margin-right:-4px;filter:drop-shadow(0 0 1.5px rgba(255,255,255,.55))}.advantage{margin-left:8px;font-weight:700;color:var(--color-text)}.badge{font-size:var(--font-small);padding:2px 8px;border-radius:999px;background:var(--color-hover);color:var(--color-text-secondary);font-weight:600}.badge.warn{background:color-mix(in srgb,var(--color-error) 15%,transparent);color:var(--color-error)}.badge.thinking{background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-link);animation:pulse 1.2s ease-in-out 4}@keyframes pulse{50%{background-color:transparent}}.clock{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;padding:4px 12px;border-radius:6px;background:var(--color-bg);color:var(--color-text-secondary);min-width:96px;text-align:center;font-variant-numeric:tabular-nums}.clock.running{background:#f1ebe0;color:#1a1710}.clock.low{background:var(--color-danger);color:var(--color-on-danger)}.eval-bar{width:1.5rem;height:var(--board-size);background:#403c36;border-radius:4px;position:relative;overflow:hidden;display:flex;flex-direction:column-reverse;flex-shrink:0}.eval-bar.flipped{flex-direction:column}.eval-white{background:#f1ebe0;transition:height .4s ease}.eval-label{position:absolute;left:0;right:0;display:flex;justify-content:center;writing-mode:vertical-rl;line-height:1;font-size:var(--font-small);font-weight:700;font-family:var(--font-mono)}.eval-bar:not(.flipped) .eval-label.on-white{bottom:4px;color:#1a1710}.eval-bar:not(.flipped) .eval-label.on-black{top:4px;color:#f1ebe0}.eval-bar.flipped .eval-label.on-white{top:4px;color:#1a1710}.eval-bar.flipped .eval-label.on-black{bottom:4px;color:#f1ebe0}.chat{display:flex;flex-direction:column;min-height:160px}.chat-messages{flex:1;overflow-y:auto;padding:10px 12px;font-size:var(--font-small);max-height:180px}.chat-empty{color:var(--color-text-secondary);text-align:center;padding:16px 0}.chat-message{display:flex;gap:6px;margin-bottom:4px;word-break:break-word}.chat-from{font-weight:700;color:var(--color-link);flex-shrink:0}.chat-message.b .chat-from{color:var(--color-text)}.chat-message.system{color:var(--color-text-secondary);font-style:italic}.chat-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--color-border)}.chat-form input{flex:1;min-width:0}.chat-error{color:var(--color-error);font-size:var(--font-small);padding:0 12px 8px}.modal-backdrop{position:fixed;inset:0;background:#0009;display:grid;place-items:center;z-index:100;padding:16px}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:22px 24px;width:min(440px,100%);max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 30px 80px #0009;animation:rise .18s ease-out}@keyframes rise{0%{transform:translateY(10px);opacity:0}}.modal-title{font-size:1.4rem;margin-bottom:6px}.modal-text{color:var(--color-text-secondary)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.modal-actions.column{flex-direction:column}.modal-actions.column .btn{width:100%}.game-over{text-align:center}.game-over-result{font-size:2.4rem;font-weight:800;color:var(--color-primary);letter-spacing:.05em}.app-theme-preview{width:100%;height:34px;border-radius:6px;border:1px solid rgba(128,128,128,.3)}.app-theme-preview.app-dark{background:linear-gradient(90deg,#161512 60%,#d4a24c 60%)}.app-theme-preview.app-light{background:linear-gradient(90deg,#f7f8fa 60%,#1f5b46 60%)}.app-theme-preview.app-midnight{background:linear-gradient(90deg,#0f1522 60%,#7fb2ff 60%)}.toast-container{position:fixed;bottom:calc(20px + var(--sticky-bottom));left:50%;transform:translate(-50%);width:max-content;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none}.toast{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:var(--color-panel);border:1px solid var(--color-success);padding-block:8px;padding-inline:16px 8px;border-radius:8px;box-shadow:0 10px 30px #00000080;animation:rise .2s ease-out;pointer-events:auto}.home{display:flex;flex-direction:column;gap:40px}.hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:center;padding:30px 0}.hero h1{font-size:clamp(2rem,4.5vw,3.4rem);letter-spacing:-.02em}.hero p{color:var(--color-text-secondary);font-size:1.1rem;max-width:520px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-art{display:flex;justify-content:center}.mini-board{width:min(300px,70vw);aspect-ratio:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-radius:10px;overflow:hidden;position:relative;box-shadow:0 30px 80px -30px #000000e6;transform:rotate(-4deg)}.mini-board .light{background:var(--board-light)}.mini-board .dark{background:var(--board-dark)}.mini-pieces{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,1fr)}.mini-pieces svg,.mini-pieces img{width:100%;height:100%;padding:8%;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35))}.mini-pieces svg:nth-child(1),.mini-pieces img:nth-child(1){grid-area:1 / 1}.mini-pieces svg:nth-child(2),.mini-pieces img:nth-child(2){grid-area:2 / 3}.mini-pieces svg:nth-child(3),.mini-pieces img:nth-child(3){grid-area:3 / 2}.mini-pieces svg:nth-child(4),.mini-pieces img:nth-child(4){grid-area:4 / 4}.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.feature{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:22px;text-decoration:none;color:var(--color-text);transition:transform .15s,border-color .15s}.feature:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-primary) 50%,transparent)}.feature-icon{font-size:1.8rem}.feature p{color:var(--color-text-secondary);margin:0}.levels h2{font-size:1.4rem}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(160px,100%),1fr));gap:10px}.level-card{display:flex;align-items:center;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:12px;text-decoration:none;color:var(--color-text);overflow-wrap:anywhere}.level-card>*{min-width:0}.level-card:hover{border-color:color-mix(in srgb,var(--color-primary) 50%,transparent)}.level-name{font-weight:700}@media(max-width:900px){:root{--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 19rem / var(--text-scale))) )}.game-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"status" "board" "players" "side";grid-template-rows:none;--board-room: calc(100vw - 40px - var(--coord-room) - var(--eval-room));--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 18rem / var(--text-scale)), 720px) )}.board-row{justify-content:center}:root[data-board-size=large] .game-layout,:root[data-board-size=extra-large] .game-layout{--board-room: calc(100vw - 12px - var(--coord-room) - var(--eval-room))}:root[data-board-size=large] .board-row,:root[data-board-size=extra-large] .board-row{margin-inline:-14px}.app-header{gap:12px;padding:calc(.5rem + env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) .5rem max(12px,env(safe-area-inset-left,0px))}.game-side{position:static}.side-panel{max-height:none}.hero{grid-template-columns:minmax(0,1fr);text-align:center}.hero p{margin:0 auto 1em}.hero-actions{justify-content:center}.hero-art{order:-1}.feature-grid,.lobby-grid{grid-template-columns:minmax(0,1fr)}.nav a{padding:0 8px}.brand-name{display:none}.tc-group{grid-template-columns:minmax(0,1fr);gap:4px}.two-col{grid-template-columns:minmax(0,1fr)}}@media(max-width:760px){.game-layout{--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 22rem / var(--text-scale)), 720px) )}}.breadcrumb{display:flex;gap:8px;font-size:var(--font-small);color:var(--color-text-secondary);margin-bottom:6px}.breadcrumb a{color:var(--color-text-secondary);text-decoration:none}.breadcrumb a:hover{color:var(--color-link)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:var(--font-small);font-weight:700;color:var(--color-primary);margin-bottom:8px}.hero.compact{padding:16px 0}.hero.compact h1{font-size:clamp(1.6rem,3.5vw,2.6rem)}.piece-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(300px,70vw);padding:16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card)}.piece-row svg,.piece-row img{width:100%;height:auto;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35))}.section-title{font-size:1.4rem;margin-bottom:14px}.two-col.wide{gap:16px}.rules-list,.pieces-list{margin:0;padding-left:18px;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:6px}.pieces-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;color:var(--color-text)}.pieces-list li{display:flex;align-items:center;gap:8px}.piece-icon{width:32px;height:32px;flex-shrink:0}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:16px}.game-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden;text-decoration:none;color:var(--color-text);transition:transform .15s,border-color .15s}.game-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-primary) 50%,transparent)}.game-card.coming-soon{border-style:dashed;opacity:.8}.game-card-art{display:flex;justify-content:center;gap:12px;padding:18px;background:linear-gradient(135deg,var(--board-light) 50%,var(--board-dark) 50%)}.game-card-art svg,.game-card-art img{width:64px;height:64px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.35))}.game-card-body{padding:16px 18px;display:flex;flex-direction:column;gap:6px}.game-card-body h3{margin:0;font-size:1.15rem}.game-card-body p{margin:0}.game-card-modes{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.game-card-modes span{font-size:var(--font-small);font-weight:600;padding:3px 8px;border-radius:999px;background:var(--color-hover);color:var(--color-text-secondary)}.game-switch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.game-switch .chip{text-decoration:none;color:var(--color-text)}.game-switch .chip.selected{color:var(--color-on-primary)}.moves-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:transparent;border:0;border-bottom:1px solid var(--color-border);min-height:var(--control-height);cursor:pointer;font-weight:600;font-size:var(--font-small);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.moves-toggle:hover{background:var(--color-hover);color:var(--color-text)}.moves-toggle-action{text-transform:none;letter-spacing:0;color:var(--color-link)}.moves-section.collapsed .moves-toggle{border-bottom:1px solid var(--color-border)}.club-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.club-grid .span-2{grid-column:1 / -1}.club-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.club-row{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-panel);text-decoration:none;color:var(--color-text)}.club-row:hover{border-color:color-mix(in srgb,var(--color-primary) 50%,transparent)}.club-row-name{font-weight:700;display:flex;gap:8px;align-items:center}.table{width:100%;border-collapse:collapse;font-size:var(--font-small);margin-bottom:10px}.table th{text-align:left;font-size:var(--font-small);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);padding:6px 8px;border-bottom:1px solid var(--color-border)}.table td{padding:8px;border-bottom:1px solid var(--color-border);vertical-align:middle}.table tr.me td{background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.table .num{font-variant-numeric:tabular-nums;text-align:right}.table th:has(+th .num),.table td.num{text-align:right}.badge.running{background:color-mix(in srgb,var(--color-success) 20%,transparent);color:var(--color-success)}.badge.registration{background:color-mix(in srgb,var(--color-primary) 18%,transparent);color:var(--color-link)}.badge.finished{background:var(--color-hover)}.stack{display:flex;flex-direction:column;gap:4px}.chip-grid{display:flex;flex-wrap:wrap;gap:6px}.chip.small{padding:.25rem .625rem}.result-choice{display:flex;gap:8px}.result-choice.compact{gap:4px}.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.plain-list li{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid var(--color-border)}.controls.inline{display:flex;padding:0;border:0}.link.danger{color:var(--color-error);text-decoration:none}.round h3{margin:14px 0 6px;font-size:1rem}.center{text-align:center}.nav-clock{font-size:1.05rem}.clock-page{display:flex;flex-direction:column;gap:12px;height:calc(100vh - 110px);min-height:480px}.clock-faces{flex:1;display:grid;grid-template-rows:1fr 1fr;gap:12px}.clock-face.rotated{transform:rotate(180deg)}.clock-side{width:100%;height:100%;border-radius:16px;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .15s;touch-action:manipulation}.clock-side.w.running{background:#f1ebe0;color:#1a1710;border-color:var(--color-primary)}.clock-side.b.running{background:#2d2a28;color:#f1ebe0;border-color:var(--color-primary)}.clock-side.low.running{background:var(--color-danger);color:var(--color-on-danger)}.clock-side.flagged{border-color:var(--color-error);color:var(--color-error)}.clock-time{font-family:var(--font-mono);font-size:clamp(3rem,14vw,7rem);font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.clock-meta{font-size:var(--font-small);opacity:.75}.clock-controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}@media(max-width:900px){.club-grid{grid-template-columns:minmax(0,1fr)}}.board,.move-list,.clock,.clock-page,.eval-bar,.room-code,.join-row input{direction:ltr}:root[data-motion=off] *,:root[data-motion=off] *:before,:root[data-motion=off] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){:root:not([data-motion=standard]) *,:root:not([data-motion=standard]) *:before,:root:not([data-motion=standard]) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(forced-colors:active){:focus-visible{outline-color:Highlight}.selected:not(.square),[aria-checked=true]:not(input),[aria-current=page]{outline:2px solid Highlight;outline-offset:-4px}.selected:not(.square):focus-visible,[aria-checked=true]:not(input):focus-visible,[aria-current=page]:focus-visible{outline-width:3px;outline-offset:3px}}.sr-only,.sr-only-focusable:not(:focus){position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1,h2,h3{text-wrap:balance;letter-spacing:-.015em}.page{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.page.centered{align-items:center;text-align:center;padding-top:48px;gap:12px}.page h1{margin:0}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header p{margin:4px 0 0}.btn.block{width:100%}.btn svg{flex-shrink:0}.big-emoji{font-size:4rem;line-height:1}.form-error{color:var(--color-error);margin:0}.gate-question{font-size:1.6rem!important;color:var(--color-text)!important;font-weight:800!important}.brand-mark{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--color-primary) 18%,transparent);font-size:var(--font-large)}.top-nav{margin-left:24px;margin-right:auto}.header-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.header-link{display:inline-flex;align-items:center;gap:6px;min-height:var(--control-height);padding:0 12px;border:1px solid var(--color-control-border);border-radius:var(--radius-control);color:var(--color-text);font-weight:700;text-decoration:none;white-space:nowrap}.header-link:hover{background:var(--color-hover)}.header-link.active{color:var(--color-link);background:color-mix(in srgb,var(--color-primary) 12%,transparent)}.skip-links{position:absolute;top:0;inset-inline-start:0;z-index:50;display:flex;flex-direction:column;gap:4px}.skip-link{display:inline-flex;align-items:center;min-height:var(--control-height);padding:0 16px;margin:4px;background:var(--color-surface);color:var(--color-link);border:2px solid var(--color-text);border-radius:var(--radius-control);font-weight:700}.skip-link:not(:focus){position:absolute;width:1px;height:1px;min-height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-main:focus{outline:none}.app-footer{border-top:1px solid var(--color-border);padding:12px max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px))}.app-footer ul{display:flex;flex-wrap:wrap;gap:4px 20px;justify-content:center;margin:0;padding:0;list-style:none}.app-footer a{display:inline-flex;align-items:center;min-height:var(--control-height)}.icon-btn{display:inline-grid;place-items:center;color:var(--color-text-secondary);text-decoration:none}.icon-btn:hover,.icon-btn.active{color:var(--color-link)}.tab-bar{display:none}@media(max-width:760px){.top-nav{display:none}.header-link{padding:0 10px}.app-main{padding-bottom:24px}.app-footer{padding-bottom:calc(var(--sticky-bottom) + 16px)}.tab-bar{display:flex;flex-wrap:wrap;position:fixed;left:0;right:0;bottom:0;z-index:40;padding-bottom:env(safe-area-inset-bottom,0px);background:color-mix(in srgb,var(--color-surface) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--color-border)}.tab{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--control-height);color:var(--color-text-secondary);text-decoration:none;font-size:var(--font-small);font-weight:700;line-height:1.2;text-align:center;overflow-wrap:break-word;padding:6px 2px}.tab.active{color:var(--color-link)}.app-shell.immersive .tab-bar{display:none}}.load-failed{display:grid;justify-items:start;gap:12px;padding:16px}@media(max-width:420px){.header-actions{gap:4px}.header-link{padding:0 8px}.header-link svg{display:none}}.segmented{display:flex;gap:4px;padding:4px;background:var(--color-panel);border:1px solid var(--color-border);border-radius:12px;width:fit-content;max-width:100%;flex-wrap:wrap}.segmented button{display:inline-flex;align-items:center;gap:8px;min-height:var(--control-height);border:0;background:transparent;padding:0 14px;border-radius:9px;font-weight:700;cursor:pointer;color:var(--color-text-secondary)}.segmented button.selected{background:var(--color-surface);color:var(--color-text);box-shadow:inset 0 0 0 2px var(--color-primary),var(--shadow-1)}.segmented-icon{width:24px;height:24px}.dice{font-size:1.2rem}.controls.toolbar{grid-template-columns:repeat(auto-fit,minmax(min(6rem,100%),1fr))}.controls.toolbar .btn{flex-direction:column;gap:4px;padding:10px 6px;font-size:var(--font-small);white-space:normal}.sticky-cta .btn{max-width:420px}@media(max-width:760px){.sticky-cta{position:sticky;z-index:5;bottom:calc(var(--sticky-bottom) + 12px + var(--toast-room, 0px))}.sticky-cta .btn{max-width:none;box-shadow:var(--shadow-2)}}@media(max-height:500px){:root{--sticky-top: 0px;--sticky-bottom: 0px}.app-header,.tab-bar,.sticky-cta{position:static}}:root[data-large-text]{--sticky-top: 0px;--sticky-bottom: 0px}:root[data-large-text] .app-header,:root[data-large-text] .tab-bar,:root[data-large-text] .sticky-cta{position:static}.switch{position:relative;width:3.25rem;height:1.875rem;border-radius:999px;border:0;background:var(--color-panel);box-shadow:inset 0 0 0 1px var(--color-control-border);cursor:pointer;flex-shrink:0;transition:background .2s}.switch span{position:absolute;top:.1875rem;inset-inline-start:.1875rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-text);transition:transform .2s}.switch.on{background:var(--color-primary)}.switch.on span{transform:translate(1.375rem);background:var(--color-on-primary)}.switch-input{appearance:none;width:2.875rem;height:1.625rem;border-radius:999px;background:var(--color-panel);box-shadow:inset 0 0 0 1px var(--color-control-border);position:relative;cursor:pointer;flex-shrink:0;transition:background .2s}.switch-input:after{content:"";position:absolute;top:.1875rem;inset-inline-start:.1875rem;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--color-text-secondary);transition:transform .2s,background .2s}.switch-input:checked{background:var(--color-primary)}.switch-input:checked:after{transform:translate(1.25rem);background:var(--color-on-primary)}:root[dir=rtl] .switch.on span{transform:translate(-1.375rem)}:root[dir=rtl] .switch-input:checked:after{transform:translate(-1.25rem)}@media(forced-colors:active){.switch-input{appearance:auto;width:1.5rem;height:1.5rem;box-shadow:none}.switch-input:after{content:none}.switch{border:1px solid ButtonText}.switch span{forced-color-adjust:none;background:ButtonText}.switch.on span{background:Highlight}}.settings-page{max-width:820px}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:18px 20px;display:flex;flex-direction:column;gap:12px}.settings-section h2{font-size:var(--font-large);margin:0}.settings-section h3{font-size:var(--font-body);margin:8px 0 0;color:var(--color-text-secondary)}.settings-section p{margin:4px 0 0}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-grid .field{margin:0}.section-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.section-row>:first-child{flex:1 1 15rem;min-width:0}.display-settings{display:flex;flex-direction:column;gap:24px}.display-settings>h1,.display-settings>h2{margin:0}.display-settings>p{margin:-16px 0 0}.display-preview-panel{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px 24px}.display-preview{--board-size: min(11rem, calc(100vw - 6rem) );display:flex;flex-wrap:wrap;align-items:flex-start;gap:.75em;pointer-events:none}.display-preview .board{box-shadow:0 0 0 1px var(--color-border)}.preview-sample{display:flex;flex-direction:column;gap:.5em;max-width:14em}.preview-sample p{margin:0;font-weight:600}.preview-buttons{display:flex;flex-wrap:wrap;gap:.5em}.preview-button{display:inline-flex;align-items:center;min-height:2.6667em;padding:0 .9em;border:1px solid var(--color-control-border);border-radius:var(--radius-control);background:var(--color-panel);font-weight:600}.display-summary{flex:1 1 14rem;min-width:0}.display-summary-title{margin:0 0 4px;font-weight:700}.display-summary ul{margin:0;padding-inline-start:1.25em;color:var(--color-text-secondary)}.restore-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:-8px}.restore-row p{margin:0}.option-group{border:0;margin:0;padding:0;min-width:0}.option-group>legend{padding:0;font-size:var(--font-large);font-weight:700}.option-group-about{margin:4px 0 0;color:var(--color-text-secondary)}.option-list{display:grid;gap:8px;margin-top:8px;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr))}.option-list.compact{grid-template-columns:repeat(auto-fill,minmax(min(7rem,100%),1fr))}.option-list.compact:has(.option-about){grid-template-columns:repeat(auto-fill,minmax(min(10rem,100%),1fr))}.option-list.pictures{grid-template-columns:repeat(auto-fill,minmax(min(11rem,100%),1fr))}.option-list.pictures .option-about{grid-column:1 / -1}.option .board-swatch{aspect-ratio:2}.option{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;align-items:center;gap:4px 10px;min-height:var(--control-height);padding:8px 12px;border:2px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.option input[type=radio]{position:relative;z-index:1;width:1.25rem;height:1.25rem;margin:0;accent-color:var(--color-primary)}.option label{font-weight:700;cursor:pointer}.option label:after{content:"";position:absolute;inset:0}.option-about{grid-column:2;color:var(--color-text-secondary)}.option-list.compact .option{align-content:center}@media(max-width:480px){.settings-section{padding:14px 12px}.option{padding:8px}.option-about{grid-column:1 / -1}}.option>[aria-hidden=true]{grid-column:1 / -1}.option:has(input:checked){border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.option:has(input:disabled){opacity:.6}.option:has(input:disabled) label{cursor:default}@supports selector(:has(*)){.option input[type=radio]:focus-visible{outline:none}.option:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:2px}}.read-aloud-settings{display:flex;flex-direction:column;gap:8px}.read-aloud-speed{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.read-aloud-speed .toggle-row{flex:1 1 16rem;border-bottom:0}.toggle-about{margin:0;padding-bottom:8px}.more-options>summary{min-height:var(--control-height);padding-block:.5rem;font-size:var(--font-large);font-weight:700;cursor:pointer}.more-options-body{display:flex;flex-direction:column;gap:24px;padding-top:8px}@media(forced-colors:active){.option:has(input:checked){outline:2px solid Highlight;outline-offset:-4px}.option:has(input:focus-visible){outline:3px solid Highlight;outline-offset:2px}}:root[data-presentation=learning]:not([data-kids]) :is(.learn-page,.lesson-page,.next-activity){--color-primary: var(--color-learning);--color-primary-hover: var(--color-learning);--color-link: var(--color-learning)}.piece-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;border-radius:8px;overflow:hidden}.piece-preview>span{aspect-ratio:1;display:grid;place-items:center}.piece-preview .light{background:var(--board-light)}.piece-preview .dark{background:var(--board-dark)}.piece-preview img,.piece-preview svg{width:92%;height:92%}.board-swatch{width:100%;aspect-ratio:1;border-radius:8px;background:conic-gradient(var(--d) 0 25%,var(--l) 0 50%,var(--d) 0 75%,var(--l) 0) 0 0 / 50% 50%}.toggle-list{display:flex;flex-direction:column}.toggle-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;min-height:var(--control-height);padding:12px 0;border-bottom:1px solid var(--color-border);cursor:pointer;font-weight:600}.toggle-row:last-child{border-bottom:0}.credits{margin:0;padding-inline-start:18px;color:var(--color-text-secondary);display:flex;flex-direction:column;gap:4px;font-size:var(--font-small)}@media(max-width:600px){.settings-grid{grid-template-columns:minmax(0,1fr)}}.hero-actions .btn{gap:8px}.hero h1{margin-bottom:16px}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:12px}.quick-card,.mode-card{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;transition:transform .15s,border-color .15s,box-shadow .15s}.quick-card svg,.mode-icon{color:var(--color-link)}.quick-card:hover,.mode-card:not(.disabled):hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-primary) 50%,transparent);box-shadow:var(--shadow-2)}.quick-card .muted,.mode-card .muted{font-size:var(--font-small)}.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mode-card{padding:22px;min-height:170px}.mode-card strong{font-size:1.15rem}.mode-card.disabled{opacity:.55}.mode-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--color-primary) 15%,transparent);margin-bottom:6px}.continue-card,.puzzle-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--radius-card);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 22%,var(--color-surface)),var(--color-surface));border:1px solid color-mix(in srgb,var(--color-primary) 40%,transparent);color:var(--color-text);text-decoration:none}.continue-icon,.puzzle-banner-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--color-primary);color:var(--color-on-primary);flex-shrink:0}.continue-text,.puzzle-banner-text{display:flex;flex-direction:column;flex:1;min-width:0}.secondary-links{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:hidden}.link-row{display:flex;align-items:center;gap:12px;padding:14px 18px;color:var(--color-text);text-decoration:none;background:var(--color-surface);border-bottom:1px solid var(--color-border);font-weight:600}.link-row:last-child{border-bottom:0}.link-row svg{color:var(--color-text-secondary)}.kids-callout{display:flex;align-items:center;gap:18px;padding:20px;border-radius:var(--radius-card);background:linear-gradient(135deg,#fff1d6,#ffe0ec);color:#3a2a1a;flex-wrap:wrap}.kids-callout h2{margin:0 0 4px}.kids-callout p{margin:0;color:#6b5644!important}.kids-callout>div:nth-child(2){flex:1;min-width:220px}.kids-callout-emoji{font-size:3rem}@media(max-width:760px){.mode-grid{grid-template-columns:minmax(0,1fr)}.mode-card{min-height:0}.hero-art{display:none}.hero{padding:8px 0}}.bot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.kids-pick .bot-grid{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}@media(max-width:760px){.bot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.bot-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:var(--radius-card);border:2px solid var(--color-border);background:var(--color-surface);cursor:pointer;color:var(--color-text);text-align:center;overflow-wrap:anywhere;transition:transform .12s,border-color .12s}.bot-card:hover{transform:translateY(-2px)}.bot-card.selected{border-color:var(--bot);box-shadow:0 0 0 3px color-mix(in srgb,var(--bot) 35%,transparent)}.bot-avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff8,transparent 60%),var(--bot);font-size:2.2rem}.bot-avatar.small{width:40px;height:40px;font-size:1.4rem}.bot-avatar img,.bot-avatar svg{width:78%;height:78%}.star-total{margin:0;font-weight:800;font-size:1.2rem;font-variant-numeric:tabular-nums}.star-icon{color:var(--color-star)}.continue-game{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px 20px;border-radius:var(--radius-card);background:var(--color-surface);border:2px solid var(--color-primary)}.continue-game h2{flex-basis:100%;margin:0;font-size:var(--font-large)}.continue-game p{flex:1 1 12em;margin:0}.continue-game .continue-game-note{flex-basis:100%}.setup-page>.continue-game{margin-bottom:16px}.next-activity{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px 20px;border-radius:var(--radius-card);background:var(--color-surface);border:2px solid var(--color-learning)}.next-activity h2{flex-basis:100%;margin:0;font-size:var(--font-large)}.next-activity p{flex:1 1 12em;margin:0}.chapter-progress{margin:-4px 0 12px;color:var(--color-text-secondary)}.chapter h2{font-size:1.15rem;margin:8px 0 12px}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(8em,100%),1fr));gap:12px}.lesson-card{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:16px 10px;border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);text-decoration:none;text-align:center;font-weight:700;transition:transform .15s,box-shadow .15s}.lesson-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}.lesson-card.done{border-color:var(--color-star)}.lesson-card-title{max-width:100%;overflow-wrap:anywhere}.lesson-card-piece{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--board-light),var(--board-dark))}.lesson-card-piece img,.lesson-card-piece svg{width:82%;height:82%}.stars{display:inline-flex;gap:2px;line-height:1}.stars .on{color:var(--color-star)}.stars .off{color:var(--color-text-secondary)}.lesson-page{--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 15rem / var(--text-scale)), 600px) )}.lesson-top{display:flex;align-items:center;gap:12px}.lesson-heading{display:flex;flex-direction:column;gap:6px;min-width:0}.lesson-heading h1{font-size:1.5rem}.step-dots{display:flex;gap:6px;flex-wrap:wrap}.step-dots>*{width:12px;height:12px;border-radius:50%;border:0;padding:0;background:var(--color-border);background:color-mix(in srgb,var(--color-text-secondary) 35%,transparent)}.step-dots button{width:1.5rem;height:1.5rem;padding:.375rem;background-clip:content-box;cursor:pointer}.step-dots .done{background-color:var(--color-success)}.step-dots .current{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-link)}.step-dots button.current{box-shadow:inset 0 0 0 2px var(--color-link)}.lesson-layout{display:grid;grid-template-columns:auto minmax(260px,380px);gap:24px;align-items:start;justify-content:center}.lesson-side{display:flex;flex-direction:column;gap:14px}.lesson-intro{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.lesson-intro p{flex:1 1 14rem;margin:0;font-size:1.05rem;line-height:1.55}.lesson-meta{display:flex;gap:14px;flex-wrap:wrap;font-weight:700;font-variant-numeric:tabular-nums}.lesson-actions,.kids-actions{display:flex;gap:10px;flex-wrap:wrap}.lesson-success{display:flex;flex-direction:column;align-items:flex-start;gap:12px;animation:rise .25s ease-out}.coach{display:flex;align-items:flex-start;gap:12px}.coach-body{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.coach-avatar{width:56px;height:56px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;font-size:2rem;background:radial-gradient(circle at 35% 30%,#fff6,transparent 60%),#ffd27a;box-shadow:var(--shadow-1)}.coach.mood-happy .coach-avatar{animation:hop .6s ease;background:radial-gradient(circle at 35% 30%,#fff6,transparent 60%),#8fe0a8}.coach.mood-oops .coach-avatar{background:radial-gradient(circle at 35% 30%,#fff6,transparent 60%),#ffb3a7}@keyframes hop{40%{transform:translateY(-8px) rotate(-6deg)}}.coach-bubble{position:relative;align-self:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;padding:14px 16px;font-size:1.05rem;font-weight:600;line-height:1.45;box-shadow:var(--shadow-1)}.coach-bubble:before{content:"";position:absolute;inset-inline-start:-8px;top:20px;width:14px;height:14px;background:var(--color-surface);border-inline-start:1px solid var(--color-border);border-bottom:1px solid var(--color-border);transform:rotate(45deg)}:root[dir=rtl] .coach-bubble:before{transform:rotate(-45deg)}@media(max-width:900px){.lesson-layout{grid-template-columns:minmax(0,1fr);justify-items:center}.lesson-side{width:100%;max-width:var(--board-size);order:-1}.lesson-intro{display:none}.lesson-page{--board-fit: max( var(--board-min), min(var(--board-room), calc(var(--viewport-height) - 22rem / var(--text-scale))) )}}.draft-note{margin:0;color:var(--color-text-secondary)}.badge.draft-badge{border:1px solid currentColor;background:var(--color-surface);color:var(--color-warning)}.pilot-lesson .lesson-top{flex-direction:column;align-items:flex-start;gap:6px}.pilot-lesson h1{font-size:1.5rem}.lesson-start,.lesson-complete{display:flex;flex-direction:column;align-items:flex-start;gap:12px;max-width:40rem;padding:16px 20px;border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border)}.lesson-start p,.lesson-complete p,.lesson-complete h2,.lesson-complete h3{margin:0}.lesson-explanation{line-height:1.55}.lesson-start-actions{display:flex;flex-wrap:wrap;gap:10px}.lesson-recap{margin:0;padding-inline-start:1.25em;display:flex;flex-direction:column;gap:8px}.pilot-lesson .lesson-layout{grid-template-columns:auto minmax(16rem,24rem);grid-template-areas:"board task" "board side";grid-template-rows:auto 1fr;gap:16px 24px}.pilot-lesson .lesson-task{grid-area:task;display:flex;flex-direction:column;gap:8px}.pilot-lesson .lesson-board{grid-area:board}.pilot-lesson .lesson-side{grid-area:side;order:0}.lesson-instruction{margin:0;font-size:var(--font-large);font-weight:700;line-height:1.45}.lesson-help,.lesson-exit{display:flex;flex-wrap:wrap;gap:8px}.lesson-status{margin:0;min-height:1.5em;line-height:1.45}.lesson-status:empty{display:none}.lesson-status.wrong,.lesson-status.correct{padding:8px 12px;border-inline-start:4px solid var(--color-error);background:var(--color-surface)}.lesson-status.correct{border-inline-start-color:var(--color-success)}.lesson-answers>.btn{margin-top:12px}.option input[type=checkbox]{position:relative;z-index:1;width:1.25rem;height:1.25rem;margin:0;accent-color:var(--color-primary)}@supports selector(:has(*)){.option input[type=checkbox]:focus-visible{outline:none}}.why-panel,.lesson-done{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px 14px;border-radius:8px;background:var(--color-surface);border:1px solid var(--color-border)}.lesson-done{border:2px solid var(--color-success)}.why-panel h2,.lesson-done h2{margin:0;font-size:var(--font-large)}.why-panel p,.lesson-done p{margin:0}.module-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));gap:12px}.module-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:14px 16px;border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border)}.module-card h2{margin:0;font-size:var(--font-large);overflow-wrap:anywhere}.module-card .chapter-progress{margin:0}.module-number{color:var(--color-text-secondary)}.step-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.step-status li{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.step-status.puzzle-choice{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));gap:8px 16px;width:100%}.step-mark{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;color:var(--color-success)}.lesson-card-status{font-weight:400;color:var(--color-text-secondary)}@media(max-width:900px){.pilot-lesson .lesson-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"task" "board" "side";grid-template-rows:none}.pilot-lesson .lesson-task,.pilot-lesson .lesson-side{width:100%;max-width:var(--board-size)}}:root[data-kids] .btn{border-radius:14px;font-weight:800}:root[data-kids] .app-header{background:color-mix(in srgb,var(--color-bg) 90%,transparent)}.kids-home{gap:24px}.kids-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px;border-radius:28px;background:linear-gradient(135deg,#ffd27a,#ff9ec4);color:#3a2410}.kids-hero h1{font-size:clamp(2rem,6vw,3rem);margin:0}.kids-hero p{margin:6px 0 12px;font-size:1.2rem;font-weight:700}.kids-progress{display:flex;gap:16px;font-weight:800;font-size:1.1rem}.kids-hero-art{display:flex}.kids-hero-art img,.kids-hero-art svg{width:96px;height:96px;filter:drop-shadow(0 6px 6px rgba(0,0,0,.2))}.kids-hero-art img:last-child{transform:rotate(10deg) translateY(10px)}.kids-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kids-tile{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:24px;text-decoration:none;color:#2f2416;box-shadow:0 6px #00000014;transition:transform .12s;min-height:150px}.kids-tile:active{transform:translateY(3px);box-shadow:0 3px #00000014}.kids-tile strong{font-size:1.35rem}.kids-tile span:last-child{font-weight:600;opacity:.8}.kids-tile-emoji{font-size:2.6rem}.kids-tile.learn{background:#bfe8ff}.kids-tile.puzzles{background:#ffe28a}.kids-tile.robots{background:#ffc7dc}.kids-tile.together{background:#c9f2d5}.bot-card.kid{padding:18px 12px;gap:8px;border-color:color-mix(in srgb,var(--bot) 60%,transparent)}.bot-card.kid .bot-avatar{width:84px;height:84px;font-size:3rem}.kids-game-top{display:flex;align-items:center;gap:12px}.kids-opponent{display:flex;align-items:center;gap:10px;font-size:1.15rem}.big-action{flex:1;min-width:140px;padding:16px!important;font-size:1.05rem!important;gap:10px}:root[data-kids] .lesson-page,:root[data-kids] .kids-game{--board-size: max( var(--board-min), min( calc(100vw - 24px) , calc(100vh - 16rem / var(--text-scale)), 640px) )}@media(max-width:900px){:root[data-kids] .kids-game{--board-size: max( var(--board-min), min( calc(100vw - 24px) , calc(100vh - 22rem / var(--text-scale))) )}.kids-game .lesson-side{order:0}}@media(max-width:560px){.kids-tiles{grid-template-columns:minmax(0,1fr)}.kids-tile{min-height:0;padding:18px}.kids-hero-art{display:none}}[dir=rtl] svg[data-icon=back],[dir=rtl] svg[data-icon=next]{transform:scaleX(-1)}.account-page{max-width:760px}.account-page p{margin:0}.account-form{display:flex;flex-direction:column;gap:8px}.account-form h3,.step-up h3{margin:4px 0 0;font-size:var(--font-large)}.field>label{font-weight:600}.field-hint{margin:0;color:var(--color-text-secondary)}.field-error{margin:0;color:var(--color-error);font-weight:600}.password-row{display:flex;gap:8px}.password-row input{flex:1}.check-row{display:flex;align-items:center;gap:10px;min-height:var(--control-height)}.check-row input{flex-shrink:0;width:1.25rem;height:1.25rem;margin:0;accent-color:var(--color-primary)}.check-row label{flex:1;padding:.5rem 0;cursor:pointer}.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.item-list,.link-list{list-style:none;margin:0;padding:0}.item-list>li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;min-height:var(--control-height);padding:6px 0;border-bottom:1px solid var(--color-border)}.item-list>li.item-block{display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:10px 0}.item-list a,.link-list a{display:inline-flex;align-items:center;min-height:var(--control-height)}.secret-value{display:flex;flex-direction:column;gap:8px}.secret-label{font-weight:700}.secret-text{padding:10px 12px;font-family:var(--font-mono);font-size:var(--font-large);letter-spacing:.05em;overflow-wrap:anywhere;background:var(--color-bg);border:1px dashed var(--color-control-border);border-radius:var(--radius-control)}.confirm-box,.step-up,.recovery-code{display:flex;flex-direction:column;gap:10px}.confirm-box,.step-up{padding:12px 14px;border:1px solid var(--color-control-border);border-radius:var(--radius-card)}.alert.info h2{margin:0 0 4px;font-size:var(--font-large)}@media print{.app-header,.tab-bar,.toast-container,.no-print{display:none!important}}.back-link a{display:inline-flex;align-items:center;min-height:var(--control-height)}.check-field{gap:0}.account-page{overflow-wrap:break-word}.account-page .item-list{overflow-wrap:anywhere}.account-page .item-list>li>*{min-width:0}.sub-nav{flex-wrap:wrap;margin:0}.section-status:empty{margin:0}.first-run{max-width:760px}.first-run-lead{margin:0;font-size:var(--font-large)}.entry-choices{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}.entry-choice{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.entry-choice p{margin:0}.first-run-display .display-settings>.first-run-actions{margin:4px 0 16px}.home-intro h1{margin:0}.home-intro p{margin:6px 0 0}.home-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:16px 20px;border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border)}.home-group h2{flex-basis:100%;margin:0;font-size:var(--font-large)}.home-group p{flex:1 1 12em;margin:0}.completed-link{border:1px solid var(--color-border);border-radius:var(--radius-card)}.my-group-card{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border-radius:var(--radius-card);background:var(--color-surface);border:1px solid var(--color-border)}.my-group-card h2,.my-group-card h3{margin:8px 0 0}.my-group-card>.muted{margin:0}.how-to-use-page h2,.policy-page h2{margin:0}.how-to-use-page>p,.how-to-use-page nav,.policy-page>p{margin:0}.how-to-use-page nav{display:flex;flex-direction:column;gap:8px}.topic-list>li.item-block{gap:0}.policy-list,.plan-always{margin:0;padding-inline-start:1.5em}.policy-list li+li,.plan-always li+li{margin-top:4px}.plan-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;margin:0}.plan-facts dt{font-weight:700}.plan-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}@media(max-width:480px){.plan-facts{grid-template-columns:minmax(0,1fr);gap:0}.plan-facts dt{overflow-wrap:anywhere}.plan-facts dd{margin-bottom:8px}}.plan-mark{display:inline-flex;align-items:center;gap:4px}.kids-title{text-align:center;font-size:clamp(1.8rem,6vw,2.6rem);margin:8px 0 0}.kids-hero.compact{flex-wrap:wrap}.kids-hero .kids-progress a{color:inherit}.kids-hero-art:not(:has(img,svg)){font-size:5.5rem}.who-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:16px}.who-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;border-radius:24px;border:3px solid var(--color-border);background:var(--color-surface);font:inherit;font-size:1.3rem;color:var(--color-text);cursor:pointer}.who-card:hover,.who-card:focus-visible{border-color:var(--color-primary)}.who-avatar{font-size:4.5rem;line-height:1}.kids-footer-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.play-next{display:flex;align-items:center;gap:12px;text-align:left;min-height:72px;padding:12px 22px;font-size:1.25rem;border-radius:22px}.play-next small{display:block;font-size:var(--font-small);opacity:.85;text-transform:uppercase;letter-spacing:.05em}.play-next-emoji{font-size:2.5rem}.stage-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.stage-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border-radius:18px;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:800;font-size:var(--font-small);cursor:pointer;text-align:center}.stage-tab>span:first-child{font-size:1.75rem}.stage-tab small{color:var(--color-text-secondary);font-weight:700}.stage-tab.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface))}.stage-tab:disabled{opacity:.5;cursor:not-allowed}.stage-panel{display:flex;flex-direction:column;gap:14px}.stage-panel-head h2{margin:0}.stage-panel-head p{margin:4px 0 10px}.stage-panel progress,.stage-bars progress{width:100%;height:12px;appearance:none;border:none;border-radius:6px;overflow:hidden;background:var(--color-panel)}.stage-panel progress::-webkit-progress-bar,.stage-bars progress::-webkit-progress-bar{background:var(--color-panel)}.stage-panel progress::-webkit-progress-value,.stage-bars progress::-webkit-progress-value{background:var(--color-success);border-radius:6px}.stage-panel progress::-moz-progress-bar,.stage-bars progress::-moz-progress-bar{background:var(--color-success);border-radius:6px}.activity-path{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(150px,100%),1fr));gap:14px}.activity-stop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 10px;border-radius:24px;border:3px solid var(--color-border);background:var(--color-surface);color:var(--color-text);text-decoration:none;text-align:center;min-height:150px;justify-content:center}.activity-stop.next{border-color:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 25%,transparent)}.activity-stop.done .activity-bubble{background:color-mix(in srgb,var(--color-success) 22%,var(--color-surface))}.activity-bubble{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;font-size:2.25rem;background:var(--color-panel)}.activity-name{font-weight:800;line-height:1.25}.kids-activity{gap:16px}.activity-header{display:flex;align-items:center;gap:12px}.activity-header h1{flex:1;margin:0;font-size:clamp(1.4rem,5vw,2rem)}.listen-btn{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:none;background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;flex:none}.listen-btn svg{width:28px;height:28px}.kid-activity-body{display:flex;flex-direction:column;align-items:center;gap:18px}.kid-finish{min-width:220px;min-height:60px;font-size:1.2rem}.kid-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}.kid-count{font-size:4rem;font-weight:900;line-height:1;color:var(--color-link)}.round-dots{display:flex;gap:8px}.round-dots span{width:14px;height:14px;border-radius:50%;background:var(--color-border)}.round-dots .done{background:var(--color-success)}.round-dots .current{background:var(--color-primary);transform:scale(1.3)}.piece-choices{display:grid;gap:14px;width:100%;max-width:560px;grid-template-columns:repeat(2,minmax(0,1fr))}.piece-choices.n3,.piece-choices.six{grid-template-columns:repeat(3,minmax(0,1fr))}.piece-choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:1;border-radius:26px;border:3px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-weight:800;font-size:1.1rem;cursor:pointer;padding:10px}.piece-choice img,.piece-choice svg{width:70%;height:auto;max-height:70%;pointer-events:none}.piece-choices.six .piece-choice img,.piece-choices.six .piece-choice svg{width:60%}.piece-choice.seen{border-color:var(--color-success)}.piece-choice.faded{opacity:.35}.piece-choice:active{transform:scale(.97)}.shadow-target{width:min(42vw,200px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:var(--color-panel)}.shadow-target img,.shadow-target svg{width:80%;filter:brightness(0);opacity:.8}.kid-board{display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));grid-template-rows:repeat(var(--size),minmax(0,1fr));width:min(92vw,480px);aspect-ratio:1;border-radius:18px;overflow:hidden;box-shadow:0 10px 30px #00000026;border:4px solid #6b4f2a}.kid-square{position:relative;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden;border:none;padding:0;cursor:pointer;font:inherit}.kid-square.light{background:#fff4d6}.kid-square.dark{background:#7cc7a6}.kid-square:focus-visible{outline:5px solid #1c64f2;outline-offset:-5px;z-index:1}.kid-square.glow{box-shadow:inset 0 0 0 6px #ffaa00e6}.kid-square.done{opacity:.5}.kid-piece{width:82%;height:82%;display:grid;place-items:center}.kid-piece img,.kid-piece svg{width:100%;height:100%}.kid-star{font-size:clamp(2rem,9vw,4rem);color:#ffb400;text-shadow:0 2px 0 rgba(0,0,0,.15)}.kid-rock{font-size:clamp(1.875rem,9vw,3.75rem)}.kid-dot{position:absolute;width:26%;height:26%;border-radius:50%;background:#ff78288c;pointer-events:none}.kid-square:has(.kid-piece) .kid-dot,.kid-square:has(.kid-star) .kid-dot{width:86%;height:86%;background:transparent;border:5px solid rgba(255,120,40,.75)}.kid-badge{position:absolute;top:6px;right:8px;min-width:30px;height:30px;border-radius:15px;background:var(--color-primary);color:var(--color-on-primary);font-weight:900;font-size:1.1rem;display:grid;place-items:center}.activity-done{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:28px 16px}.activity-done h2{margin:0;font-size:2rem}.activity-done-emoji{font-size:6rem;line-height:1}.activity-done-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:8px}.now-next{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.now-next li{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:14px;border:2px dashed var(--color-border);font-weight:800}.now-next li.now{border-style:solid;border-color:var(--color-primary)}.now-next-label{font-size:var(--font-small);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary)}.sticker-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(72px,100%),1fr));gap:10px}.sticker-grid li{aspect-ratio:1;display:grid;place-items:center;border-radius:18px;border:2px dashed var(--color-border);font-size:2.5rem;color:var(--color-text-secondary)}.sticker-grid li.have{border-style:solid;background:var(--color-surface)}.break-reminder{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:1.15rem}.break-emoji{font-size:5rem}.age-picker,.avatar-picker{display:flex;flex-wrap:wrap;gap:8px}.age-chip,.avatar-chip{min-width:56px;height:56px;border-radius:16px;border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:1.3rem;font-weight:800;cursor:pointer}.avatar-chip{font-size:2rem}.age-chip.selected,.avatar-chip.selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 16%,var(--color-surface))}.profile-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.profile-actions .btn.primary{margin-left:auto}.child-reports{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px}.child-report{display:flex;flex-direction:column;gap:12px}.child-report-head{display:flex;align-items:center;gap:12px}.child-report-head h2{margin:0}.child-avatar{font-size:3rem}.child-stats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px;font-weight:700}.stage-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.stage-bars li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:center;font-size:var(--font-small)}.child-report-actions{display:flex;flex-wrap:wrap;gap:8px}.add-child{display:grid;place-items:center;min-height:160px;font-size:1.3rem;font-weight:800;border:3px dashed var(--color-border);color:var(--color-text);text-decoration:none}@media(max-width:640px){.stage-tabs{grid-template-columns:repeat(5,minmax(64px,1fr));overflow-x:auto}.stage-tab small{display:none}.activity-path{grid-template-columns:repeat(2,minmax(0,1fr))}.play-next{width:100%}}:root[data-contrast] .btn,:root[data-contrast] .activity-stop,:root[data-contrast] .piece-choice,:root[data-contrast] .card{border-width:3px;border-color:var(--color-control-border)}:root[data-contrast] .kid-square.light{background:var(--board-light)}:root[data-contrast] .kid-square.dark{background:var(--board-dark)}:root[data-motion=off] .kids-hero{background:var(--color-panel)}
