.board-area{display:grid;grid-template-columns:var(--board-size);row-gap:.5rem;max-width:100%;padding-inline:var(--frame-outer)}.board-area.with-coords{grid-template-columns:var(--coord-size) var(--board-size);column-gap:var(--frame-outer);padding-inline-start:0}.board-area>*{grid-column:-2;margin-inline:calc(-1 * var(--frame-outer))}.board-area>.board,.board-area>.coords{margin-inline:0}.board-area>.coords.ranks{grid-column:1;grid-row:1}.board-area>.board{grid-row:1}.board-area>.coords.files{margin-top:calc(var(--frame-outer) - .5rem)}.board-area:not(.with-coords)>.board{margin-bottom:var(--frame-outer)}.board,.hero-board{box-shadow:0 0 0 1px var(--color-wood-light),0 0 0 calc(1px + var(--board-frame)) var(--color-wood),0 0 0 calc(2px + var(--board-frame)) var(--color-wood-dark),0 0 0 var(--frame-outer) color-mix(in srgb,var(--color-accent) 60%,transparent),var(--shadow-2)}.board{position:relative;width:var(--board-size);height:var(--board-size);aspect-ratio:1;border-radius:3px;overflow:hidden;user-select:none;touch-action:manipulation;--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-family:var(--font);font-weight:700;font-size:var(--font-small)}.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}.describe-board:focus-visible{outline:3px solid #003e73;outline-offset:0;box-shadow:0 0 0 6px #fff}@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}}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2");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}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2) format("woff2");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:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2) format("woff2");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}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2) format("woff2");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:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2) format("woff2");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}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2) format("woff2");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}:root{--color-bg: #f6efe3;--color-bg-glow: #fdf9f1;--color-surface: #fffcf7;--color-raised: #ffffff;--color-panel: #f0e7d8;--color-text: #2a1f17;--color-text-secondary: #665446;--color-primary: #1d5640;--color-primary-hover: #164431;--color-primary-active: #0f3223;--color-on-primary: #fffaf0;--color-link: #1d5640;--color-accent: #93702b;--color-felt: #1d5640;--color-on-felt: #fbf4e6;--color-wood: #6b4429;--color-wood-light: #a77c55;--color-wood-dark: #3f2716;--color-learning: #5f4799;--color-comfort: #245a81;--color-warning: #8a3b00;--color-error: #a12622;--color-danger: #a12622;--color-on-danger: #ffffff;--color-success: #2a6b3d;--color-star: #a06400;--color-focus: #003e73;--color-focus-inner: #ffffff;--color-border: rgba(74, 52, 32, .16);--color-control-border: #7d6b5b;--color-hover: rgba(74, 52, 32, .07);--color-stripe: rgba(74, 52, 32, .035);--color-selected: color-mix(in srgb, var(--color-accent) 10%, var(--color-surface));--board-light: #f4e9d0;--board-dark: #6f9a78;--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.5rem;--font-h1: clamp(2rem, 1.6rem + 1.2vw, 2.5rem);--font-display: clamp(2.5rem, 1.75rem + 3vw, 3.75rem);--line-height-body: clamp(1.5, 1.5 + (var(--text-scale) - 1) * .4, 1.6);--control-height: 3rem;--radius-card: .875rem;--radius-control: .625rem;--radius-hero: 1.25rem;--radius-pill: 999px;--space-unit: .25rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 32px;--space-8: 48px;--font: "Atkinson Hyperlegible Next", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--font-heading: "Fraunces", Georgia, "Times New Roman", 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(58, 38, 20, .1), 0 6px 18px -10px rgba(58, 38, 20, .35);--shadow-2: 0 2px 6px rgba(58, 38, 20, .14), 0 22px 44px -22px rgba(58, 38, 20, .5);--shadow-sheen: inset 0 1px 0 rgba(255, 255, 255, .6);--lift: -2px}:root:lang(hi),:root:lang(ar){--font-heading: var(--font)}:root[data-app-theme=dark]{--color-bg: #16110d;--color-bg-glow: #2b2017;--color-surface: #201812;--color-raised: #2f241b;--color-panel: #2a2019;--color-text: #f1e7d6;--color-text-secondary: #b5a48d;--color-primary: #d9ae5f;--color-primary-hover: #e8c27a;--color-primary-active: #c49a4c;--color-on-primary: #1d140c;--color-link: #e8c27a;--color-accent: #c79d52;--color-felt: #173d2e;--color-on-felt: #f1e7d6;--color-wood: #6e4b30;--color-wood-light: #9a7150;--color-wood-dark: #2a1b10;--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: #16110d;--color-border: rgba(241, 231, 214, .1);--color-control-border: #8d7f6c;--color-hover: rgba(241, 231, 214, .06);--color-stripe: rgba(241, 231, 214, .025);--color-selected: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));--shadow-1: 0 1px 2px rgba(0, 0, 0, .45), 0 6px 18px -10px rgba(0, 0, 0, .7);--shadow-2: 0 2px 6px rgba(0, 0, 0, .5), 0 22px 44px -22px rgba(0, 0, 0, .85);--shadow-sheen: inset 0 1px 0 rgba(255, 236, 200, .04);color-scheme:dark}:root[data-app-theme=midnight]{--color-bg: #0f1522;--color-bg-glow: #1a2540;--color-surface: #161e2e;--color-raised: #1d273a;--color-panel: #1c2638;--color-text: #e3e9f5;--color-text-secondary: #8d9bb5;--color-primary: #7fb2ff;--color-primary-hover: #a3c7ff;--color-primary-active: #6aa3f5;--color-on-primary: #0b1120;--color-link: #a3c7ff;--color-accent: #c9a86a;--color-felt: #16294a;--color-on-felt: #e3e9f5;--color-wood: #3a4c6e;--color-wood-light: #5a6d92;--color-wood-dark: #121a2a;--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-selected: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));--shadow-1: 0 1px 2px rgba(0, 0, 0, .45), 0 6px 18px -10px rgba(0, 0, 0, .7);--shadow-2: 0 2px 6px rgba(0, 0, 0, .5), 0 22px 44px -22px rgba(0, 0, 0, .85);--shadow-sheen: inset 0 1px 0 rgba(200, 220, 255, .04);color-scheme:dark}:root[data-kids]{--font: var(--font-kids);--font-heading: var(--font-kids);--color-bg: #fff8ec;--color-bg-glow: #ffe6c2;--color-surface: #ffffff;--color-raised: #ffffff;--color-panel: #fff3dc;--color-text: #2f2416;--color-text-secondary: #7a6650;--color-primary: #ff8a3d;--color-primary-hover: #ffa060;--color-primary-active: #e8742a;--color-on-primary: #2f2416;--color-link: #a84508;--color-accent: #b86f00;--color-felt: var(--color-panel);--color-on-felt: var(--color-text);--color-wood: #8f6a43;--color-wood-light: #c49a6c;--color-wood-dark: #5c4128;--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-raised: #ffffff;--color-panel: #ffffff;--color-text: #000000;--color-text-secondary: #000000;--color-primary: #1f5b46;--color-primary-hover: #173f31;--color-primary-active: #0f2a20;--color-on-primary: #ffffff;--color-link: #1f5b46;--color-accent: #000000;--color-felt: #ffffff;--color-on-felt: #000000;--color-wood: #000000;--color-wood-light: #000000;--color-wood-dark: #000000;--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;--color-selected: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));--board-light: var(--board-hc-light);--board-dark: var(--board-hc-dark);--font-heading: var(--font);--shadow-1: 0 0 #0000;--shadow-2: 0 0 #0000;--shadow-sheen: 0 0 #0000;color-scheme:light}:root{--coord-size: 1.25rem;--board-frame: 6px;--frame-outer: calc(var(--board-frame) + 3px);--coord-room: calc(max(25px, var(--coord-size)) + 2 * var(--frame-outer));--viewport-height: 100vh;--board-room: calc(100vw - 40px - 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}}@media(max-width:760px){:root{--board-frame: 4px}}: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),transparent 55%),radial-gradient(900px 500px at 100% 100%,color-mix(in srgb,var(--color-wood) 6%,transparent),transparent),var(--color-bg);color:var(--color-text)}:root[data-contrast] body{background:var(--color-bg)}a{color:var(--color-link)}button{font:inherit;color:inherit}h1,h2,h3{margin:0 0 .4em;font-family:var(--font-heading);line-height:1.2;font-weight:600}h1{font-size:var(--font-h1);line-height:1.15}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}.side-panel :is(.btn.primary,.btn.danger):focus-visible{box-shadow:inset 0 0 0 6px var(--color-focus-inner)}:root:not([data-input=keyboard]) :is(h1,h2,h3)[tabindex="-1"]:focus-visible{outline:none;box-shadow:none}:is(h1,h2,h3)[tabindex="-1"]{border-radius:var(--radius-control)}.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);box-shadow:0 1px color-mix(in srgb,var(--color-accent) 35%,transparent);background:color-mix(in srgb,var(--color-bg) 88%,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-name{font-family:var(--font-heading);font-weight:600;font-size:1.375rem;line-height:1.05}.brand-mark{color:var(--color-primary)}.nav{display:flex;gap:4px;margin-left:auto}.nav a{position:relative;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:700}@media(hover:hover){.nav a:hover{color:var(--color-text);background:var(--color-hover)}}.nav a.active,.header-link.active{color:var(--color-link)}.nav a.active:after,.header-link.active:after{content:"";position:absolute;inset:auto 12px 6px;height:3px;border-radius:2px;background:var(--color-primary)}.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 1.25rem;border-radius:var(--radius-control);border:1px solid var(--color-control-border);background:var(--color-panel);box-shadow:var(--shadow-sheen);color:var(--color-text);font-weight:700;font-size:var(--font-body);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;max-width:100%;text-align:center}@media(hover:hover){.btn:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-panel) 85%,var(--color-text))}}.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);box-shadow:var(--shadow-sheen),0 1px 2px #140c0440}@media(hover:hover){.btn.primary:hover:not(:disabled,[aria-disabled=true]){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}}.btn.primary:active:not(:disabled,[aria-disabled=true]){background:var(--color-primary-active);border-color:var(--color-primary-active)}.btn.danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-danger)}@media(hover:hover){.btn.danger:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-danger) 92%,black)}}.btn.danger-outline{background:var(--color-surface);border-color:var(--color-error);color:var(--color-error)}@media(hover:hover){.btn:is(.ghost,.danger-outline):hover:not(:disabled,[aria-disabled=true]){background:var(--color-hover)}}.btn.ghost{background:transparent;box-shadow:none}.btn.active{border-color:var(--color-primary);color:var(--color-link)}.btn.large{padding:.75rem 1.5rem;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:700}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-raised);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{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{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:minmax(0,1fr);gap:10px;min-width:0}.game-side{grid-area:side;position:sticky;top:calc(var(--sticky-top) + 1rem);min-width:0}.side-panel{display:grid;align-content:start;max-height:calc(100vh - var(--sticky-top) - 2rem);overflow-y:auto}.side-panel>*,.side-panel>.more-controls>*{grid-column:1 / -1}.side-panel>.more-controls{display:contents}.side-panel>.more-controls>.more-controls-toggle{margin:12px}.side-panel>.more-controls>.controls{padding:0 12px 12px}.side-panel{grid-template-columns:auto minmax(0,1fr);container-type:inline-size}.side-panel>.controls .btn,.side-panel .more-controls-toggle{padding-inline:.875rem}@container (min-width: 21.75rem){.side-panel>.controls:has(>:only-child):has(+.more-controls){grid-column:1;padding-inline-end:6px}.side-panel>.controls:has(>:only-child)+.more-controls>.more-controls-toggle{grid-column:2;margin-inline-start:6px}}: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-family:var(--font-heading);font-weight:600;font-size:var(--font-large);line-height:1.2}.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-bottom:1px solid var(--color-border);background:var(--color-stripe)}.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}.more-controls{display:flex;flex-direction:column;gap:8px;padding:12px}.more-controls>.controls{padding:0}.more-controls>[hidden]{display:none}.secondary-controls{display:flex;flex-wrap:wrap;gap:1px;border-top:1px solid var(--color-border);background:var(--color-border)}.secondary-controls>.btn{flex:1 1 auto;background:var(--color-surface);border:1px solid transparent;border-radius:0;box-shadow:none;padding-inline:.75rem;color:var(--color-link);font-size:var(--font-small)}:root[data-contrast] .secondary-controls>.btn{border-color:transparent}.secondary-controls>.btn:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-panel) 60%,var(--color-surface))}.task{display:flex;flex-direction:column;gap:8px;padding:12px 16px;background:var(--color-selected)}.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-title{font-size:var(--font-h2)}.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;min-height:4.5rem;gap:12px;padding:10px 14px}.player-card.active{border-color:var(--color-primary)}.avatar{width:2.25rem;height:2.25rem;border-radius:50%;display:grid;place-items:center;font-weight:800;flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 55%,transparent)}.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}.player-sub:not(:has(>:not(:empty))){display:none}.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 10px;border-radius:var(--radius-pill);background:var(--color-hover);color:var(--color-text-secondary);font-weight:700}.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-raised);border:1px solid var(--color-border);border-radius:var(--radius-hero);padding:22px 24px;width:min(440px,100%);max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:var(--shadow-sheen),0 30px 80px #00000073;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,#16110d 60%,#d9ae5f 60%)}.app-theme-preview.app-light{background:linear-gradient(90deg,#f6efe3 60%,#1d5640 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-raised);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}.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}.game-players{grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr))}:root[data-board-size=large] .game-layout,:root[data-board-size=extra-large] .game-layout{--board-room: calc(100vw - 4px - var(--coord-size) - 2 * var(--frame-outer) - var(--eval-room))}:root[data-board-size=large] .board-row,:root[data-board-size=extra-large] .board-row{margin-inline:-18px}.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}.lobby-grid{grid-template-columns:minmax(0,1fr)}.nav a{padding:0 8px}.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:6px;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);text-decoration:underline}.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:var(--font-h2);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 16px;background:transparent;border:0;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}:root[data-motion=off]{--lift: 0px}@media(prefers-reduced-motion:reduce){:root:not([data-motion=standard]){--lift: 0px}: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}svg:is(.brand-mark,.entry-mark){color:inherit;background:none}}.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:-.01em}h1{letter-spacing:-.015em}:lang(ar) :is(h1,h2,h3){letter-spacing:normal}.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;width:fit-content;max-width:100%}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-header p{margin:4px 0 0}:where(.setup-section,.settings-section,.quick-card,.mode-card,.module-card,.continue-game,.continue-card,.puzzle-banner,.next-activity,.home-group,.my-group-card,.side-panel,.player-card,.entry-choice,.card,.secondary-links,.lesson-start,.lesson-complete){background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--start-bar, 0 0 #0000),var(--shadow-sheen),var(--shadow-1)}:where(.setup-section,.settings-section,.quick-card,.mode-card,.module-card,.continue-game,.next-activity,.home-group,.my-group-card,.entry-choice,.lesson-start,.lesson-complete){padding:20px}.continue-game:has(.btn.primary),.continue-card,.next-activity,.puzzle-banner,.player-card.active{--start-bar: inset calc(4px * var(--dir, 1)) 0 0 var(--color-primary)}:root[dir=rtl]{--dir: -1}:is(.quick-card,.mode-card:not(.disabled),.continue-card,.puzzle-banner){transition:transform .15s cubic-bezier(.2,.7,.2,1),border-color .15s,box-shadow .15s}@media(hover:hover){:is(.quick-card,.mode-card:not(.disabled),.continue-card,.puzzle-banner):hover{transform:translateY(var(--lift));border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));box-shadow:var(--start-bar, 0 0 #0000),var(--shadow-sheen),var(--shadow-2)}}.quick-card>svg,.mode-icon,.module-number{border-radius:50%;background:var(--color-panel);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent) 45%,transparent);color:var(--color-link)}.quick-card>svg{box-sizing:content-box;width:1.625rem;height:1.625rem;padding:.5rem}@media(forced-colors:active){.quick-card>svg{color:inherit;background:none;box-shadow:none}}.quick-card strong,.mode-card strong,.continue-card strong,.puzzle-banner strong{font-family:var(--font-heading);font-weight:600;font-size:var(--font-large);line-height:1.2}@media(max-width:480px){:where(.setup-section,.settings-section,.quick-card,.mode-card,.module-card,.continue-game,.next-activity,.home-group,.my-group-card,.entry-choice,.lesson-start,.lesson-complete){padding:16px}}.btn.block{width:100%}.btn svg{flex-shrink:0}:where(:root:not([data-kids])) :is(.btn,.header-link)>svg{width:1.15em;height:1.15em}.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)}svg.brand-mark{flex:none;background:none;border-radius:0}.top-nav{margin-left:24px;margin-right:auto}.header-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.header-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:var(--control-height);min-height:var(--control-height);padding:0 12px;border:1px solid var(--color-control-border);border-radius:var(--radius-control);background:var(--color-surface);box-shadow:var(--shadow-sheen);color:var(--color-text);font-weight:700;text-decoration:none;white-space:nowrap}@media(hover:hover){.header-link:hover{background:var(--color-panel)}}.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:1023px){.brand-name{font-size:1.125rem}}@media(max-width:760px){.top-nav{display:none}.app-header{flex-wrap:nowrap}.brand{flex:0 1 auto;min-width:0}.header-actions{flex: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-raised) 94%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--color-border);box-shadow:0 -1px color-mix(in srgb,var(--color-accent) 35%,transparent)}.tab{position:relative;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)}.tab.active:before{content:"";position:absolute;top:0;left:30%;width:40%;height:3px;border-radius:0 0 2px 2px;background:var(--color-primary)}.app-shell.immersive .tab-bar{display:none}}.load-failed{display:grid;justify-items:start;gap:12px;padding:16px}@media(max-width:479px){.app-header{gap:8px}.header-link{padding:0}.header-link svg{width:1.375rem;height:1.375rem}.header-link span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}:root[data-large-text] .app-header{flex-wrap:wrap}.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{display:flex;justify-content:flex-end}.sticky-cta .btn{width:auto}@media(max-width:760px){.sticky-cta{position:sticky;z-index:5;bottom:calc(var(--sticky-bottom) + 12px + var(--toast-room, 0px))}.sticky-cta .btn{width:100%;box-shadow:var(--shadow-2)}}.page.setup-page{max-width:52rem;gap:12px}.page.setup-page>.setup-section{margin:0}.page>.breadcrumb+h1{margin-top:-8px}@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{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}.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-family:var(--font-heading);font-size:var(--font-large);font-weight:600}.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-fit,minmax(min(14rem,100%),1fr))}.option-list.compact{grid-template-columns:repeat(auto-fit,minmax(min(7rem,100%),1fr))}.option-list.cards:has(>:nth-child(4):last-child){grid-template-columns:repeat(auto-fit,minmax(min(100%,max(14rem,calc(50% - 4px))),1fr))}.option-list.compact:has(.option-about){grid-template-columns:repeat(auto-fit,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:12px 16px;border:2px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-sheen)}.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:1 / -1;font-size:var(--font-small);color:var(--color-text-secondary)}:root:not([data-large-text]) .option:has(>.option-mark){grid-template-columns:auto minmax(0,1fr) auto}.option-mark{grid-row:1;grid-column:3;display:flex;gap:4px}:root[data-large-text] .option-mark{display:none}.pips>span{width:.625rem;height:.625rem;border-radius:50%;box-shadow:inset 0 0 0 2px var(--color-control-border)}.pips>.on{background:var(--color-primary);box-shadow:none}.side-mark img,.side-mark svg{width:1.5rem;height:1.5rem;padding:2px;border-radius:4px;background:var(--board-light);box-shadow:0 0 0 1px var(--color-border)}.option-list.compact .option{align-content:center;padding-inline:10px}:root:not([data-large-text]) .option-list.compact:has(.side-mark){grid-template-columns:repeat(auto-fit,minmax(min(10rem,100%),1fr))}@media(max-width:480px){.option-list.compact:has(.side-mark){grid-template-columns:minmax(0,1fr)}}@media(max-width:480px){.option{padding:10px 12px}}.option>[aria-hidden=true]:not(.option-mark){grid-column:1 / -1}.option:has(input:checked){border-color:var(--color-primary);background:var(--color-selected)}.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:.5rem 8px;margin-inline:-8px;border-radius:var(--radius-control);font-family:var(--font-heading);font-size:var(--font-large);font-weight:600;cursor:pointer}.setup-section:has(>.more-options:only-child){padding-block:8px}.more-options>summary:hover{background:var(--color-hover)}*+.more-options{padding-top:8px;border-top:1px solid var(--color-border)}.more-options-body{display:flex;flex-direction:column;gap:24px;padding-top:16px}@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-primary-active: 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(2,minmax(0,1fr));gap:16px}.quick-grid>:last-child:nth-child(odd){grid-column:1 / -1}@media(max-width:600px){.quick-grid{grid-template-columns:minmax(0,1fr)}}@media(min-width:1000px){:root:not([data-large-text]) .quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}:root:not([data-large-text]) .quick-grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}:root:not([data-large-text]) .quick-grid>:last-child:nth-child(odd){grid-column:auto}}.quick-card,.mode-card{display:flex;flex-direction:column;gap:8px;color:var(--color-text);text-decoration:none}.quick-card .muted,.mode-card .muted{font-size:var(--font-small)}@media(max-width:480px){.home-hero .hero-actions .btn{flex:1 1 100%}.quick-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 14px}.quick-card>svg{grid-row:span 2}}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr));gap:16px}.mode-card{padding:24px}.play-page .section-title{margin:4px 0 -8px}.mode-card.disabled{opacity:.55}.mode-icon{width:3rem;height:3rem;display:grid;place-items:center;margin-bottom:4px}.continue-card,.puzzle-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;color:var(--color-text);text-decoration:none}.continue-icon,.puzzle-banner-icon{width:3rem;height:3rem;border-radius:12px;display:grid;place-items:center;background:var(--color-felt);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent) 60%,transparent);color:var(--color-on-felt);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;overflow:hidden}.link-row{display:flex;align-items:center;gap:12px;min-height:var(--control-height);padding:8px 20px;color:var(--color-text);text-decoration:none;background:var(--color-surface);border-bottom:1px solid var(--color-border);font-weight:700}.link-row:last-child{border-bottom:0}.link-row:hover{background:color-mix(in srgb,var(--color-panel) 60%,var(--color-surface))}.link-row svg{flex:none;color:var(--color-text-secondary)}.link-row>svg:last-child:not(:first-child){margin-inline-start:auto}.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){.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}.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}.next-activity h2{flex-basis:100%;margin:0;font-family:var(--font);font-size:var(--font-small);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.next-activity p{flex:1 1 12em;margin:0}.next-activity strong{font-family:var(--font-heading);font-weight:600;font-size:var(--font-large)}.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}.pilot-lesson .lesson-task{padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-sheen),var(--shadow-1)}@media(min-width:901px){.pilot-lesson{--board-room: calc(min(100vw - 40px, 1100px) - var(--coord-room) - 16rem - 24px)}.pilot-lesson .lesson-layout{row-gap:0;justify-content:start}.pilot-lesson .lesson-task{margin-block-start:calc(-1 * var(--frame-outer))}.pilot-lesson .lesson-side{padding:20px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-1)}.pilot-lesson .lesson-task{padding-bottom:8px;border-bottom:0;border-end-start-radius:0;border-end-end-radius:0;box-shadow:var(--shadow-sheen)}.pilot-lesson .lesson-side{padding-top:8px;border-top:0;border-start-start-radius:0;border-start-end-radius: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:var(--radius-control);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(19rem,100%),1fr));gap:16px}.module-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}.module-card h2{display:flex;align-items:center;gap:12px;margin:0;font-size:var(--font-large);overflow-wrap:anywhere}.module-card .chapter-progress{margin:0}.module-number{flex:none;display:grid;place-items:center;width:2.25rem;height:2.25rem;font-variant-numeric:tabular-nums}.module-card .btn{margin-top:auto}.step-status{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.step-status li{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-inline-start:calc(1.25rem + 6px);font-variant-numeric:tabular-nums}.step-mark{position:absolute;inset-inline-start:0;top:0;display:grid;place-items:center;width:1.25rem;height:1.5em;height:1lh;color:var(--color-success)}.module-card .step-status{padding-inline-start:calc(1rem + 6px)}.step-status.puzzle-choice{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(22rem,100%),1fr));gap:8px 16px;width:100%;margin-top:8px;padding-top:16px;border-top:1px solid var(--color-border)}.puzzle-choice .step-mark{height:var(--control-height)}.pilot-lesson :is(.lesson-start,.lesson-complete):has(.puzzle-choice){max-width:52rem}.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:none}.pilot-lesson .lesson-board{padding-top:var(--frame-outer)}.pilot-lesson .lesson-side{padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-sheen),var(--shadow-1)}}: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}}.break-reminder{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font-size:1.15rem}.break-emoji{font-size:5rem}:root[data-contrast] .btn,:root[data-contrast] .card{border-width:3px;border-color:var(--color-control-border)}[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);color:var(--color-text-secondary)}.page.entry-screen{max-width:40rem}.entry-screen>:is(.entry-mark,h1,.first-run-lead){align-self:center;text-align:center}.entry-mark{width:4rem;height:4rem;color:var(--color-primary)}.entry-choices{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}.entry-choice{display:flex;flex-direction:column;gap:10px;border-radius:var(--radius-hero)}.entry-choice p{margin:0;text-align:center;text-wrap:balance}.entry-screen>p:last-child{margin:0;text-align:center}.first-run-display .display-settings>.first-run-actions{margin:4px 0 16px}.home-hero{--color-focus: var(--color-on-felt);--color-focus-inner: var(--color-felt);display:flex;align-items:center;justify-content:space-between;gap:24px 40px;padding:clamp(20px,4vw,40px);border:1px solid transparent;border-radius:var(--radius-hero);color:var(--color-on-felt);background:radial-gradient(120% 140% at 15% 0%,color-mix(in srgb,var(--color-felt) 88%,white) 0%,var(--color-felt) 55%,color-mix(in srgb,var(--color-felt) 80%,black) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-on-felt) 18%,transparent),inset 0 0 0 6px var(--color-felt),inset 0 0 0 7px color-mix(in srgb,var(--color-accent) 60%,var(--color-on-felt)),var(--shadow-2)}.home-hero-text{flex:0 1 38rem;min-width:0}.home-hero h1{margin:0 0 12px;font-size:var(--font-display);line-height:1.05}.home-hero p{max-width:48ch;margin:0 0 20px;font-size:var(--font-large);text-wrap:pretty}.home-hero p.small{margin:12px 0 0;font-size:var(--font-small)}.home-hero .hero-actions{justify-content:flex-start}@media(min-width:761px)and (max-width:1023px){.home-hero .hero-actions .btn{flex:1 1 auto}}.home-hero .btn.primary{background:var(--color-on-felt);border-color:var(--color-on-felt);color:var(--color-felt)}.home-hero .btn.primary:active:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-on-felt) 88%,var(--color-felt));border-color:var(--color-on-felt)}.home-hero .btn.ghost{border-color:var(--color-on-felt);color:var(--color-on-felt)}@media(hover:hover){.home-hero .btn.primary:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-on-felt) 88%,var(--color-felt));border-color:var(--color-on-felt)}.home-hero .btn.ghost:hover:not(:disabled,[aria-disabled=true]){background:color-mix(in srgb,var(--color-on-felt) 12%,transparent)}}:root[data-contrast] .home-hero{background:var(--color-felt);box-shadow:none;border:2px solid var(--color-border)}.hero-board{flex:none;display:grid;grid-template:repeat(4,1fr) / repeat(4,1fr);width:clamp(11rem,16vw,14rem);height:clamp(11rem,16vw,14rem);margin:12px auto;border-radius:3px;background:conic-gradient(var(--board-dark) 0 25%,var(--board-light) 0 50%,var(--board-dark) 0 75%,var(--board-light) 0) 0 0 / 50% 50%;transform:rotate(-4deg)}.hero-board img,.hero-board svg{display:block;width:100%;height:100%;padding:8%;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35))}:root[data-large-text] .hero-board,:root[data-contrast] .hero-board{display:none}@media(max-width:760px),(forced-colors:active){.hero-board{display:none}}:root[data-large-text] .home-hero h1{font-size:var(--font-h1)}.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}.page:is(.how-to-use-page,.policy-page){max-width:42rem}.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{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(18rem,100%),1fr));gap:12px}.item-list.topic-list>li.item-block{position:relative;justify-content:flex-start;gap:4px;padding:12px 16px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-sheen),var(--shadow-1)}.topic-list a{display:flex;justify-content:space-between;gap:8px;font-family:var(--font-heading);font-weight:600;font-size:var(--font-large);text-decoration:none}.topic-list a:after{content:"";position:absolute;inset:0}.topic-list li:hover{border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}.topic-list .muted{font-size:var(--font-small)}.page.auth-page{max-width:30rem;padding:clamp(16px,4vw,32px);border:1px solid var(--color-border);border-radius:var(--radius-hero);background:var(--color-surface);box-shadow:var(--shadow-sheen),var(--shadow-1)}.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}
