@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-400.woff2) format("woff2")}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-mono-500.woff2) format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/space-grotesk-latin.woff2) format("woff2")}:root{--paper: #f6f1e9;--paper-deep: #e9dfd0;--ink: #172522;--ink-soft: #31423d;--muted: #5c665f;--line: rgba(23, 37, 34, .14);--green: #1f5148;--green-deep: #153b35;--green-soft: #d9e9df;--coral: #d9684f;--coral-deep: #a8463b;--gold: #f0bd62;--gold-soft: #f7dfad;--cream: #f1e7d7;--white: #fffdf8;--card: rgba(255, 253, 248, .64);--card-solid: #fffdf8;--notice-bg: #fff3ee;--shadow: 0 24px 64px rgba(31, 48, 42, .14);--raised: #faf7f0;--on-accent: #fffdf8;--on-inverse: #fffdf8;--on-green-soft: #153b35;--on-gold-soft: #153b35;--on-gold: #153b35;--board-light: var(--cream);--board-dark: #2c6156;--board-hover: #397568;--board-frame: var(--gold);--board-shell: var(--green-deep);--board-shadow: rgba(31, 81, 72, .14);--board-coordinate: rgba(247, 223, 173, .6);--board-texture: none;--board-capture-ring: #f0a08a;--piece-black-fill: var(--ink);--piece-black-rim: var(--cream);--piece-red-fill: var(--coral);--piece-red-rim: #f4b18d;--piece-black-mark: var(--gold);--piece-red-mark: #331712;--piece-black-motif: none;--piece-red-motif: none;--radius-lg: 28px;--radius-md: 16px;--radius-sm: 10px;--duration-quick: .12s;--duration-fast: .16s;--duration-base: .18s;--duration-slow: .38s;--duration-entrance: .48s;--duration-ambient: 30s;--ease-standard: cubic-bezier(.25, .1, .25, 1);--ease-out: cubic-bezier(0, 0, .58, 1);--ease-emphasized: cubic-bezier(.16, 1, .3, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--distance-sm: 4px;--distance-md: 12px;--distance-lg: 14px;--scale-rest: .97;--blur-xs: 3px;--blur-sm: 5px;--board-chrome: 410px;font-family:Space Grotesk,Trebuchet MS,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;color-scheme:light}:root[data-theme=dark]{--paper: #101715;--paper-deep: #1b2421;--ink: #eef3ec;--ink-soft: #bcc8bd;--muted: #8d9a8e;--line: rgba(238, 243, 236, .16);--green: #4f9a8a;--green-deep: #0f2a25;--green-soft: #1c2f2a;--coral: #e8836a;--coral-deep: #f0a08a;--gold: #f0bd62;--gold-soft: #4a3a1e;--cream: #22302b;--white: #182220;--card: rgba(24, 34, 32, .72);--card-solid: #182220;--board-dark: #1c3f37;--notice-bg: #2a1c17;--board-capture-ring: #e8836a;--piece-black-mark: #0f2a25;--shadow: 0 24px 64px rgba(0, 0, 0, .45);--raised: #2a3a35;--on-accent: #08110f;--on-inverse: #eef3ec;--on-green-soft: #eef3ec;--on-gold-soft: #f7dfad;--on-gold: #153b35;color-scheme:dark}body.high-contrast{--ink: #000;--ink-soft: #111;--muted: #333;--line: #000;--green: #003b32;--green-deep: #00231d;--green-soft: #dff3e4;--coral: #7a1f14;--coral-deep: #7a1f14;--gold: #7a5200;--gold-soft: #ffe9b0;--cream: #fff;--white: #fff;--card: #fff;--card-solid: #fff;--board-dark: #123f37;--notice-bg: #fff;--raised: #fff;--on-accent: #fff;--on-inverse: #fff;--on-green-soft: #00231d;--on-gold-soft: #00231d;--on-gold: #fff;--piece-black-mark: #fff8e6;--piece-red-mark: #fff8e6;--board-capture-ring: #ffcf67}:root[data-theme=dark] body.high-contrast{--ink: #fff;--ink-soft: #f2f2f2;--muted: #d7d7d7;--line: #fff;--green: #8fe3c8;--green-deep: #03211c;--green-soft: #0d2c25;--coral: #ffb59d;--coral-deep: #ffd9c7;--gold: #ffd97a;--gold-soft: #3d2f0e;--cream: #0d1513;--white: #0d1513;--card: #0d1513;--card-solid: #0d1513;--board-dark: #0f3d34;--notice-bg: #140f0c;--raised: #0d1513;--on-accent: #03211c;--on-inverse: #fff;--on-green-soft: #fff;--on-gold-soft: #fff;--on-gold: #03211c}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{min-width:320px;min-height:100vh;margin:0;background-color:var(--paper);background-image:linear-gradient(rgba(31,81,72,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(31,81,72,.035) 1px,transparent 1px);background-size:28px 28px;-webkit-font-smoothing:antialiased}body:before{position:fixed;z-index:-1;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";background:linear-gradient(120deg,#f6f1e9db,#f6f1e985 52%,#d9e8de75)}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}body.reduced-motion .screen,body.reduced-motion .modal-backdrop{animation:none!important}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.app-shell{width:min(1440px,calc(100% - 48px));min-height:calc(100vh - 48px);margin:24px auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:64px;border-bottom:1px solid var(--line)}.topbar-right{display:flex;align-items:center;gap:9px}.wordmark{display:inline-flex;align-items:center;gap:11px;min-height:44px;padding:0;border:0;background:transparent;letter-spacing:-.04em;text-align:left}.wordmark-mark{position:relative;display:inline-block;width:32px;height:32px;border-radius:10px 10px 10px 3px;background:var(--coral);transform:rotate(-7deg);box-shadow:5px 5px 0 var(--green)}.wordmark-mark span{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--paper)}.wordmark-mark span:first-child{top:8px;left:8px}.wordmark-mark span:last-child{right:7px;bottom:7px}.wordmark-name{display:flex;align-items:baseline;gap:7px;font-size:1.16rem;font-weight:700}.wordmark-name span{color:var(--coral-deep);font-weight:500}.local-status,.build-version,.mono-note,.eyebrow,.mono-label,.board-topline,.board-coordinates,.player-role,.piece-count,.player-badge,.game-tag,.preview-topline,.mode-selected,.empty-history,.result-stats span,.result-footnote,.log-notation{font-family:DM Mono,Consolas,monospace}.local-status{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:.67rem;letter-spacing:.06em;text-transform:uppercase}.build-version{color:var(--muted);font-size:.67rem;letter-spacing:.04em;white-space:nowrap}.local-status.offline{color:var(--coral-deep)}.local-status.offline .status-dot{background:var(--coral);box-shadow:0 0 0 4px #d9684f29}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#5aa876;box-shadow:0 0 0 4px #5aa87629}.icon-button{display:inline-grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--raised);color:var(--ink-soft);font-size:1rem;transition:border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.icon-button:hover{border-color:var(--green);background:var(--white);transform:translateY(-2px)}.screen{animation:rise var(--duration-entrance) var(--ease-standard) both}@keyframes rise{0%{opacity:0;transform:translateY(var(--distance-md))}to{opacity:1;transform:translateY(0)}}.eyebrow{margin:0;color:var(--coral-deep);font-size:.7rem;letter-spacing:.11em;line-height:1.5;text-transform:uppercase}.start-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.76fr);align-items:center;gap:clamp(48px,8vw,132px);min-height:calc(100vh - 142px);padding:68px 5vw 82px}.start-copy{min-width:0}.start-copy h1{max-width:680px;margin:20px 0 18px;font-size:clamp(3.5rem,7vw,5.3rem);font-weight:600;letter-spacing:-.075em;line-height:.94}h1 em,h2 em{color:var(--coral-deep);font-style:normal}.start-copy .lede{max-width:590px;margin:0 0 34px;color:var(--ink-soft);font-size:1.04rem;line-height:1.65}.mode-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:650px}.mode-card{position:relative;min-width:0;min-height:146px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);text-align:left;transition:border-color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.mode-card:hover{border-color:#1f514873;background:var(--white);transform:translateY(-3px)}.mode-card.active{border-color:var(--green);background:var(--green);color:var(--on-accent);box-shadow:8px 8px #1f51481f}.mode-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.mode-icon{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:10px;background:var(--gold-soft);color:var(--on-gold-soft);font-size:1.05rem;font-weight:700}.mode-card.active .mode-icon{background:var(--gold);color:var(--on-gold)}.mode-selected{color:var(--green);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.mode-card.active .mode-selected{color:var(--on-accent)}.mode-card strong,.mode-card small{display:block}.mode-card strong{margin-bottom:5px;font-size:1.02rem}.mode-card small{color:var(--muted);font-size:.81rem;line-height:1.4}.mode-card.active small{color:var(--on-accent)}.setup-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:12px;max-width:650px;margin-top:12px}.setup-block{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card)}.setup-block h2{margin:0 0 13px;font-size:.82rem;font-weight:600}.setup-block p{max-width:380px;margin:0;color:var(--muted);font-size:.74rem;line-height:1.45}.segmented{display:flex;flex-wrap:wrap;gap:6px}.segmented button,.color-choice{min-height:44px;padding:7px 11px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:.75rem;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.segmented button:hover,.color-choice:hover{border-color:var(--green);color:var(--green)}.segmented button.active,.color-choice.active{border-color:var(--green);background:var(--green);color:var(--on-accent)}.color-options{display:flex;min-width:0;gap:8px}.color-choice{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:1}.color-choice>span:first-child{width:17px;height:17px;flex:0 0 17px;border:3px solid var(--cream);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink)}.color-choice.red>span:first-child{background:var(--coral);box-shadow:0 0 0 1px var(--coral-deep)}.rules-block{max-width:650px;margin-top:12px}.single-rules-note{align-items:center}.ruleset-lock{flex:0 0 auto;padding:8px 10px;border:1px solid var(--line);border-radius:7px;color:var(--ink-soft);font-family:DM Mono,Consolas,monospace;font-size:.61rem;letter-spacing:.04em;text-transform:uppercase}.local-rule-note{justify-content:flex-start;max-width:650px;margin-top:12px}.rule-symbol{display:inline-grid;width:34px;height:34px;flex:0 0 auto;place-items:center;border-radius:10px;background:var(--gold-soft);color:var(--on-gold-soft);font-size:1.2rem}.start-button,.primary-button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-height:54px;padding:0 18px 0 21px;border:0;border-radius:11px;background:var(--coral-deep);color:var(--on-accent);font-weight:600;box-shadow:5px 5px #a8463b30;transition:background var(--duration-fast) var(--ease-standard),transform var(--duration-fast) var(--ease-standard),box-shadow var(--duration-fast) var(--ease-standard)}.start-button{width:min(100%,650px);margin-top:20px;font-size:.94rem}.start-button:hover,.primary-button:hover{background:var(--coral-deep);box-shadow:2px 2px #a8463b30;transform:translate(3px,3px)}.start-button span,.primary-button span{color:var(--on-accent);font-family:DM Mono,Consolas,monospace;font-size:.75rem}.primary-button.compact{min-height:44px;padding:0 13px 0 16px;font-size:.77rem}.primary-button.coral{background:var(--coral-deep)}.micro-note{display:flex;align-items:center;gap:9px;margin:17px 0 0;color:var(--muted);font-family:DM Mono,Consolas,monospace;font-size:.68rem;line-height:1.45}.micro-note span{width:5px;height:5px;border-radius:50%;background:var(--gold)}.resume-card{display:flex;align-items:center;gap:14px;max-width:650px;margin-top:18px;padding:13px 15px;border:1px solid rgba(31,81,72,.24);border-radius:var(--radius-sm);background:var(--green-soft)}.resume-card>div{display:grid;gap:2px;flex:1}.resume-card .eyebrow{font-size:.57rem}.resume-card strong{font-size:.82rem}.resume-card span:not(.eyebrow){color:var(--muted);font-family:DM Mono,Consolas,monospace;font-size:.62rem}.text-button,.discard-button{min-height:44px;padding:5px 8px;border:0;background:transparent;color:var(--coral-deep);font-size:.73rem;font-weight:600}.text-button:hover,.discard-button:hover{text-decoration:underline}.discard-button{color:var(--muted);font-size:.65rem}.storage-warning{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:15px;padding:12px 14px;border:1px solid rgba(168,70,59,.28);border-radius:var(--radius-sm);background:var(--notice-bg);color:var(--coral-deep);font-size:.72rem;line-height:1.45}.storage-warning span{min-width:0}.storage-warning strong{font-weight:700}.error-meta{display:block;margin-top:7px;color:var(--muted);font-family:DM Mono,Consolas,monospace;font-size:.62rem;line-height:1.5}.error-meta code{color:var(--coral-deep);font-family:inherit}.error-meta a{color:var(--coral-deep);font-weight:600}.offline-notice{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0 0;padding:10px 14px;border:1px solid rgba(217,104,79,.28);border-radius:var(--radius-sm);background:var(--notice-bg);color:var(--coral-deep);font-size:.72rem;line-height:1.4;text-align:center}.offline-notice strong{font-family:DM Mono,Consolas,monospace;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.update-notice{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0 0;padding:10px 14px;border:1px solid rgba(31,81,72,.24);border-radius:var(--radius-sm);background:var(--green-soft);color:var(--on-green-soft);font-size:.72rem;line-height:1.4}.update-notice strong{font-family:DM Mono,Consolas,monospace;font-size:.65rem;letter-spacing:.08em;text-transform:uppercase}.update-notice .text-button{color:var(--on-green-soft);white-space:nowrap}.start-preview{position:relative}.preview-card{position:relative;padding:25px;border:1px solid rgba(31,81,72,.22);border-radius:var(--radius-lg);background:var(--green);color:var(--on-accent);box-shadow:var(--shadow);transform:rotate(1.4deg)}.preview-card:before{position:absolute;top:-14px;right:34px;width:86px;height:28px;border:1px solid rgba(168,70,59,.3);background:#f0bd62ad;content:"";transform:rotate(4deg)}.preview-topline,.game-heading,.game-tag-row,.board-topline,.game-footer,.panel-heading,.player-topline,.result-kicker,.result-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.preview-topline{margin-bottom:23px;color:var(--on-accent);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.preview-topline span:last-child{padding:5px 8px;border:1px solid rgba(247,223,173,.35);border-radius:6px;font-size:.62rem}.mini-board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;overflow:hidden;border:8px solid var(--board-frame);border-radius:12px;background:var(--board-light)}.mini-square{position:relative;aspect-ratio:1}.mini-square.light,.square.light{background:var(--board-light)}.mini-square.dark,.square.dark{background:var(--board-dark)}.mini-piece,.piece{position:absolute;top:15%;right:15%;bottom:15%;left:15%;border-radius:50%}.mini-piece{border:3px solid rgba(255,253,248,.78);box-shadow:inset 0 -4px #0000002b,0 3px #00000024}.piece.black,.mini-piece.black{background:var(--piece-black-fill)}.piece.red,.mini-piece.red{background:var(--piece-red-fill)}.piece:before,.mini-piece:before{position:absolute;top:19%;right:19%;bottom:19%;left:19%;content:""}.piece.black:before,.mini-piece.black:before{border:2px solid rgba(255,253,248,.78);border-radius:3px;transform:rotate(45deg)}.piece.red:before,.mini-piece.red:before{border:2px dashed rgba(255,253,248,.88);border-radius:50%}.preview-card h2{margin:22px 0 6px;font-size:1.8rem;letter-spacing:-.05em}.preview-card p{max-width:390px;margin:0;color:var(--on-accent);font-size:.83rem;line-height:1.55}.preview-facts{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.preview-facts span{padding:7px 9px;border:1px solid rgba(255,253,248,.16);border-radius:6px;color:var(--on-accent);font-family:DM Mono,Consolas,monospace;font-size:.62rem}.preview-note{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin:30px 0 0 11%;color:var(--ink-soft);font-family:DM Mono,Consolas,monospace;font-size:.67rem;transform:rotate(-2deg)}.preview-note-mark{display:grid;width:24px;height:24px;place-items:center;border-radius:7px;background:var(--gold);color:var(--on-gold);font-size:1rem}.game-screen{padding:42px 0 64px;animation:none}.game-heading{align-items:flex-end;margin:0 5vw 28px}.game-heading h1{margin:7px 0 0;font-size:2.5rem;letter-spacing:-.06em}.game-tag-row{justify-content:flex-end}.game-tag{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border-radius:7px;background:var(--green-soft);color:var(--on-green-soft);font-size:.66rem;letter-spacing:.04em;text-transform:uppercase}.game-tag.live{background:var(--gold-soft);color:var(--on-gold-soft)}.game-layout{display:grid;grid-template-columns:210px minmax(400px,690px) 270px;align-items:start;justify-content:center;gap:27px;padding:0 24px}.player-stack{display:grid;gap:12px}.player-panel,.side-panel,.result-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card)}.player-panel{position:relative;min-height:166px;padding:17px;transition:background var(--duration-base) var(--ease-standard),border-color var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard)}.player-panel.active{border-color:var(--green);background:var(--green);color:var(--on-accent);transform:translateY(-5px)}.player-panel.active:before{position:absolute;top:15px;right:15px;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #f0bd622e;content:""}.player-topline{align-items:flex-start;margin-bottom:27px}.player-token{position:relative;display:inline-block;width:34px;height:34px;border:4px solid var(--cream);border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink),inset 0 -5px #0000002e}.player-token.red{background:var(--coral);box-shadow:0 0 0 1px var(--coral-deep),inset 0 -5px #0000002e}.player-role{color:var(--muted);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}.active .player-role{color:var(--on-accent)}.player-name{margin:4px 0 0;font-size:1.02rem;font-weight:600}.player-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.piece-count{margin:0;color:var(--ink-soft);font-size:.68rem;line-height:1.5}.piece-count span{display:block}.active .piece-count{color:var(--on-accent)}.piece-count strong{display:block;color:var(--ink);font-family:Space Grotesk,Trebuchet MS,sans-serif;font-size:1.45rem;font-weight:500}.active .piece-count strong{color:var(--on-accent)}.player-badge{color:var(--coral-deep);font-size:.59rem;text-align:right;text-transform:uppercase}.active .player-badge{color:var(--on-accent)}.board-stage{min-width:0}.board-topline{margin:0 0 12px;color:var(--muted);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}.board-topline strong{color:var(--coral-deep);font-weight:500}.board-shell{position:relative;padding:15px;border-radius:18px;background-color:var(--board-shell);background-image:var(--board-texture);background-repeat:repeat;background-size:44px 44px;box-shadow:13px 13px 0 var(--board-shadow),var(--shadow)}.board-shell:before{position:absolute;top:8px;left:50%;width:84px;height:4px;border-radius:8px;background:#f7dfad9e;content:"";transform:translate(-50%)}.board{display:grid;grid-template-rows:repeat(8,minmax(0,1fr));width:100%;aspect-ratio:1;overflow:hidden;border:2px solid var(--board-frame);border-radius:8px;background:var(--board-light);touch-action:manipulation}.board:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.board:not(.interactive) .square{cursor:default}.board:not(.interactive) .square:hover .piece{filter:none;transform:none}.board-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));min-height:0}.square-cell{position:relative;min-width:0;min-height:0}.square-cell>.square{width:100%;height:100%}.square{position:relative;display:grid;min-width:0;min-height:0;place-items:center;padding:0;border:0;border-radius:0;background:transparent}.square.dark:hover{background:var(--board-hover)}.square:focus-visible{z-index:2;outline:3px solid var(--gold);outline-offset:-3px}.square.selected{box-shadow:inset 0 0 0 5px var(--gold)}.square.target:after{position:absolute;width:25%;aspect-ratio:1;border:3px solid var(--gold);border-radius:50%;background:#f0bd6252;content:""}.square.capture-target:after{border-style:dashed;border-color:var(--board-capture-ring);background:#d9684f66}.square.hint-source:before{position:absolute;top:7%;right:7%;bottom:7%;left:7%;border:3px dashed var(--gold);border-radius:50%;content:""}.square.hint-target:before{position:absolute;width:44%;aspect-ratio:1;border:3px solid var(--gold);background:#f0bd6242;content:"";transform:rotate(45deg)}.piece{z-index:1;width:70%;height:auto;aspect-ratio:1;border:5px solid var(--piece-black-rim);box-shadow:inset 0 -7px #0003,0 4px #0000002b;transition:transform var(--duration-base) var(--ease-standard),filter var(--duration-base) var(--ease-standard)}.square:hover .piece{filter:brightness(1.08);transform:translateY(-2px)}.piece.red{border-color:var(--piece-red-rim)}.piece.king:after{position:absolute;top:15%;right:15%;bottom:15%;left:15%;display:grid;place-items:center;border:3px solid var(--piece-black-mark);border-radius:50%;color:var(--piece-black-mark);content:"K";font-family:DM Mono,Consolas,monospace;font-size:clamp(.58rem,1.4vw,.85rem);font-weight:500}.piece.red.king:after{border-color:var(--piece-red-mark);color:var(--piece-red-mark)}.piece>span{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0,0,0,0)}.board-coordinates{display:flex;justify-content:space-between;padding:8px 3px 0;color:var(--board-coordinate);font-size:.58rem;letter-spacing:.06em}.game-footer{align-items:flex-start;margin-top:19px;flex-wrap:wrap;row-gap:12px}.rule-hint{display:flex;align-items:flex-start;gap:10px;flex:1 1 240px;min-width:0;max-width:330px;margin:0;color:var(--ink-soft);font-size:.79rem;line-height:1.45}.hint-mark{flex:0 0 auto;width:19px;height:19px;margin-top:1px;border:2px solid var(--green);border-radius:5px;background:#1f514824}.hint-mark.capture{border-color:var(--coral);background:#d9684f24}.hint-note{display:flex;align-items:flex-start;gap:10px;flex:1 1 100%;margin:0;color:var(--ink-soft);font-size:.79rem;font-weight:500;line-height:1.45}.hint-note .hint-mark{border-color:var(--gold);background:#f0bd624d}.hint-note.success .hint-mark{border-color:var(--green);background:#1f514829}.hint-note.retry{color:var(--coral-deep)}.hint-note.retry .hint-mark{border-color:var(--coral);background:#d9684f29}.board-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.quiet-button,.danger-button{min-height:44px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:var(--raised);color:var(--ink-soft);font-size:.71rem;transition:border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard)}.quiet-button:hover{border-color:var(--green);background:var(--white);color:var(--green)}.danger-button:hover{border-color:var(--coral-deep);background:var(--notice-bg);color:var(--coral-deep)}.quiet-button:disabled,.danger-button:disabled,.primary-button:disabled{opacity:.4}.right-rail{display:grid;gap:12px}.practice-screen{padding:42px 0 64px;animation:none}.replay-screen{animation:none}.practice-layout{display:grid;grid-template-columns:minmax(400px,min(690px,calc(100vh - var(--board-chrome)))) minmax(260px,320px);align-items:start;justify-content:center;gap:27px;padding:0 24px}.practice-panel{padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card)}.practice-progress{display:grid;gap:4px;margin:0 0 20px;padding:0;list-style:none}.practice-progress li{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:10px;min-height:44px;padding:0 9px;border-radius:8px;color:var(--ink-soft);font-size:.74rem}.practice-progress li.current{background:var(--gold-soft);color:var(--on-gold-soft);font-weight:600}.practice-progress li.done{color:var(--green)}.practice-step{display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--white);font-family:DM Mono,Consolas,monospace;font-size:.6rem}.practice-progress li.current .practice-step{border-color:var(--gold);background:var(--gold);color:var(--on-gold)}.practice-note{margin:0;color:var(--muted);font-size:.68rem;line-height:1.5}.practice-entry,.statistics-entry,.install-entry{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 21px;color:var(--muted);font-size:.68rem}.install-entry .text-button.quiet{color:var(--muted);font-size:.65rem}.side-panel{padding:18px}.panel-heading{margin-bottom:18px}.panel-heading h2{margin:0;font-size:.88rem;font-weight:600}.panel-heading span{color:var(--muted);font-family:DM Mono,Consolas,monospace;font-size:.6rem}.note-list{display:grid;gap:15px}.note-list>div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}.note-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;background:var(--gold-soft);color:var(--on-gold-soft);font-family:DM Mono,Consolas,monospace;font-size:.72rem;font-weight:500}.note-list p{margin:0}.note-list strong,.note-list span{display:block}.note-list strong{margin-bottom:4px;font-size:.75rem}.note-list span{color:var(--muted);font-size:.68rem;line-height:1.45}.empty-history{margin:0;color:var(--muted);font-size:.65rem;line-height:1.55}.turn-log{display:grid;gap:11px;margin:0;padding:0 4px 0 0;max-height:min(320px,42vh);overflow-y:auto;overscroll-behavior:contain;list-style:none}.turn-log li{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:start}.log-turn{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--on-green-soft);font-family:DM Mono,Consolas,monospace;font-size:.61rem}.turn-log strong,.turn-log small{display:block}.turn-log strong{font-size:.7rem}.turn-log small{margin-top:2px;color:var(--muted);font-size:.61rem;line-height:1.35}.result-screen{min-height:calc(100vh - 142px);padding:70px 5vw 82px;animation:none}.result-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);align-items:center;gap:clamp(50px,9vw,130px);max-width:1050px;margin:0 auto}.result-card{padding:clamp(26px,5vw,52px);box-shadow:var(--shadow);animation:result-rise var(--duration-slow) var(--ease-out) both}@keyframes result-rise{0%{transform:translateY(var(--distance-lg))}to{transform:translateY(0)}}.result-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:var(--green);color:var(--on-accent);font-family:DM Mono,Consolas,monospace;font-size:1.2rem}.result-mark.draw{background:var(--gold);color:var(--on-gold)}.result-card h1{margin:30px 0 13px;font-size:clamp(2.5rem,5vw,4.3rem);letter-spacing:-.075em;line-height:.96}.result-summary{max-width:500px;margin:0;color:var(--ink-soft);font-size:.98rem;line-height:1.6}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:34px 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats div{min-width:0}.result-stats span,.result-stats strong{display:block}.result-stats span{margin-bottom:5px;color:var(--muted);font-size:.57rem;line-height:1.35;text-transform:uppercase}.result-stats strong{font-size:1.18rem;font-weight:500}.result-actions{justify-content:flex-start}.result-board-wrap{padding:16px}.result-board-wrap>.eyebrow{margin:0 0 12px}.result-board-shell{padding:12px}.result-board .square{pointer-events:none}.result-footnote{margin:18px 0 0;color:var(--muted);font-size:.62rem;line-height:1.5}.error-screen{display:grid;min-height:calc(100vh - 142px);place-items:center;padding:70px 5vw 82px}.error-card{width:min(560px,100%);padding:clamp(26px,5vw,52px);border:1px solid rgba(168,70,59,.28);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow)}.compatibility-screen{display:grid;min-height:100vh;place-items:center;padding:28px}.compatibility-card{width:min(560px,100%);padding:clamp(26px,5vw,52px);border:1px solid rgba(168,70,59,.28);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow)}.compatibility-card h1{margin:26px 0 12px;font-size:clamp(2.1rem,5vw,3.7rem);letter-spacing:-.07em;line-height:.98}.compatibility-card>p:not(.eyebrow){margin:0;color:var(--ink-soft);line-height:1.6}.compatibility-card .error-meta{margin-top:24px}.error-mark{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;background:var(--coral-deep);color:var(--on-accent);font-family:DM Mono,Consolas,monospace;font-size:1.4rem}.error-card h1{margin:26px 0 12px;font-size:clamp(2.1rem,5vw,3.7rem);letter-spacing:-.07em;line-height:.98}.error-card>p:not(.eyebrow){margin:0;color:var(--ink-soft);line-height:1.6}.error-card .result-actions{margin-top:30px}.tutorial-modal{width:min(700px,100%)}.tutorial-step-copy{min-height:52px}.tutorial-progress{display:flex;gap:8px;margin:28px 0 0}.tutorial-progress span{width:30px;height:5px;border-radius:4px;background:var(--paper-deep)}.tutorial-progress span.active{background:var(--coral-deep)}.tutorial-navigation{display:flex;align-items:center;gap:8px}.modal-backdrop{position:fixed;z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:#153b355c;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));animation:fade-in var(--duration-base) var(--ease-standard) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:min(620px,100%);max-height:min(720px,calc(100vh - 48px));overflow:auto;padding:clamp(25px,5vw,46px);border:1px solid rgba(31,81,72,.18);border-radius:22px;background:var(--card-solid);box-shadow:0 30px 90px #153b3547}.modal-close{position:absolute;top:18px;right:18px;display:grid;width:44px;height:44px;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--muted);font-size:.75rem}.modal-close:hover{border-color:var(--coral);color:var(--coral-deep)}.modal h2{max-width:470px;margin:16px 0 12px;font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.06em;line-height:1}.modal>p:not(.eyebrow){max-width:500px;margin:0;color:var(--ink-soft);line-height:1.55}.help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:28px 0}.help-grid>div{padding:15px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper)}.help-grid span{display:block;margin-bottom:16px;color:var(--coral-deep);font-family:DM Mono,Consolas,monospace;font-size:.65rem}.help-grid strong,.help-grid p{display:block}.help-grid strong{font-size:.78rem}.help-grid p{margin:6px 0 0;color:var(--muted);font-size:.69rem;line-height:1.45}.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:26px}.mono-note{color:var(--muted);font-size:.61rem;line-height:1.4}.privacy-modal{width:min(720px,100%)}.privacy-lede{max-width:560px!important}.privacy-consent{margin-top:28px;border-top:1px solid var(--line)}.privacy-points{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 28px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.privacy-points section{min-width:0}.privacy-points h3{margin:0 0 6px;font-size:.78rem}.privacy-modal .privacy-consent small,.privacy-modal .privacy-points p{color:var(--ink-soft)}.privacy-points p{margin:0;font-size:.7rem;line-height:1.55}.privacy-points a{color:var(--coral-deep);font-weight:600}.settings-modal{display:flex;flex-direction:column;overflow:hidden}.settings-modal .settings-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.settings-modal .modal-footer{flex:0 0 auto;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.privacy-modal{display:flex;flex-direction:column;overflow:hidden}.privacy-modal .privacy-points{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.privacy-modal .modal-footer{flex:0 0 auto}.statistics-modal{display:flex;width:min(720px,100%);flex-direction:column;overflow:hidden}.statistics-modal .statistics-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-top:22px}.statistics-modal .modal-footer{flex:0 0 auto;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.statistics-section{padding-top:20px;border-top:1px solid var(--line)}.statistics-section:first-child{padding-top:0;border-top:0}.statistics-section h3{margin:0 0 4px;font-size:.88rem}.statistics-note{margin:0 0 14px;color:var(--muted);font-size:.65rem;line-height:1.5}.statistics-subhead{margin:18px 0 8px;color:var(--muted);font-family:DM Mono,Consolas,monospace;font-size:.6rem;text-transform:uppercase}.statistics-figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 26px;margin:0}.statistics-figures>div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;min-width:0;padding-bottom:5px;border-bottom:1px solid var(--line)}.statistics-figures dt{color:var(--ink-soft);font-size:.7rem;line-height:1.4}.statistics-figures dd{margin:0;font-family:DM Mono,Consolas,monospace;font-size:.78rem}.settings-list{display:grid;margin-top:28px;border-top:1px solid var(--line)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px;border-bottom:1px solid var(--line);cursor:pointer}.setting-row span{display:grid;gap:3px}.setting-row strong{font-size:.78rem}.setting-row small{color:var(--muted);font-size:.67rem;line-height:1.4}.setting-row input{width:42px;height:24px;flex:0 0 auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--muted);border-radius:20px;background:var(--paper-deep);transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.theme-row{cursor:default}.theme-row .segmented{flex-wrap:nowrap}.board-theme-row{cursor:default;flex-wrap:wrap;row-gap:10px}.board-theme-control{display:flex;align-items:center;gap:12px;min-width:0}.board-theme-control select{min-height:44px;max-width:15rem;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--raised);color:var(--ink);font-size:.75rem}.board-theme-swatch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:48px;height:48px;flex:0 0 auto;overflow:hidden;border:2px solid var(--board-frame);border-radius:7px;background:var(--board-light)}.setting-row input:before{display:block;width:18px;height:18px;margin:2px;border-radius:50%;background:var(--ink-soft);box-shadow:0 1px 3px #0003;content:"";transition:transform var(--duration-fast) var(--ease-standard),background var(--duration-fast) var(--ease-standard)}.setting-row input:checked{border-color:var(--green);background:var(--green)}.setting-row input:checked:before{transform:translate(18px);background:var(--on-accent)}.confirm-modal{width:min(440px,100%)}.confirm-mark,.pause-mark,.handoff-disc{display:grid;width:44px;height:44px;place-items:center;border-radius:50%}.confirm-mark{background:var(--gold);color:var(--on-gold);font-family:DM Mono,Consolas,monospace;font-size:1.3rem}.pause-mark{background:var(--green);color:var(--on-accent);font-size:.9rem}.handoff-disc{margin-bottom:18px;border:5px solid var(--cream);background:var(--ink);box-shadow:0 0 0 1px var(--ink),inset 0 -6px #0000002e}.handoff-disc.red{background:var(--coral);box-shadow:0 0 0 1px var(--coral-deep),inset 0 -6px #0000002e}.handoff-modal .start-button,.pause-modal .start-button{width:100%;margin-top:28px}.pause-links{display:flex;justify-content:center;gap:22px;margin-top:19px}.skip-link{position:fixed;z-index:20;top:12px;left:12px;padding:10px 13px;border-radius:8px;background:var(--green-deep);color:var(--on-inverse);transform:translateY(-180%);transition:transform var(--duration-fast) var(--ease-standard)}.skip-link:focus{transform:translateY(0)}.sr-status,.sr-alert,.sr-only{position:fixed;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.square:disabled{cursor:default}.high-contrast .square.dark{background:#255247}.high-contrast .square.target:after{width:36%;border-width:4px;border-color:#ffcf67;background:transparent}.high-contrast .square.capture-target:after{background:repeating-linear-gradient(45deg,rgba(217,104,79,.55),rgba(217,104,79,.55) 4px,transparent 4px,transparent 8px)}.high-contrast .square.hint-source:before{top:4%;right:4%;bottom:4%;left:4%;border-color:#ffcf67;border-style:solid;border-width:4px}.high-contrast .square.hint-target:before{border-color:#ffcf67;background:repeating-linear-gradient(135deg,rgba(255,207,103,.6),rgba(255,207,103,.6) 3px,transparent 3px,transparent 7px)}.high-contrast .piece.black,.high-contrast .mini-piece.black{background:repeating-linear-gradient(135deg,#111 0,#111 4px,#4d4d4d 4px,#4d4d4d 8px)}.high-contrast .piece.red,.high-contrast .mini-piece.red{background:repeating-linear-gradient(45deg,#a9362d 0,#a9362d 4px,#7a1f14 4px,#7a1f14 8px)}.high-contrast .piece.red{border-color:#ffd8b8}.high-contrast .player-panel.active,.high-contrast .mode-card.active{box-shadow:inset 0 0 0 3px var(--gold)}body.motion-enabled .modal-backdrop[data-motion=enter] .modal{animation:modal-in var(--duration-base) var(--ease-emphasized) both}@keyframes modal-in{0%{transform:scale(var(--scale-rest))}}.modal-ghost{animation:none}body.motion-enabled .segmented,body.motion-enabled .color-options{position:relative}body.motion-enabled .segmented button,body.motion-enabled .color-choice{position:relative;z-index:1}body.motion-enabled .segmented[data-pill-ready=true] button.active,body.motion-enabled .color-options[data-pill-ready=true] .color-choice.active{background:transparent;transition-property:color,border-color}body.motion-enabled .segmented-pill{position:absolute;top:0;left:0;z-index:0;border-radius:8px;background:var(--green);pointer-events:none}body.motion-enabled .setting-row input:before{transition:transform var(--duration-base) var(--ease-bounce),background var(--duration-fast) var(--ease-standard)}body.motion-enabled .local-status[data-motion=swap]{animation:status-swap var(--duration-fast) var(--ease-out) both}@keyframes status-swap{0%{filter:blur(var(--blur-xs));transform:translateY(calc(var(--distance-sm) * -1))}}.notice-body{display:inline-flex;align-items:center;gap:10px;min-width:0}body.motion-enabled .notice-body[data-motion=enter]{animation:banner-in var(--duration-base) var(--ease-emphasized) both}@keyframes banner-in{0%{transform:translateY(calc(var(--distance-md) * -1)) scale(var(--scale-rest))}}body.motion-enabled .hint-note[data-motion=enter],body.motion-enabled .practice-panel[data-motion=enter],body.motion-enabled .rule-hint[data-motion=enter]{animation:panel-in var(--duration-base) var(--ease-emphasized) both}@keyframes panel-in{0%{transform:translateY(var(--distance-md))}}body.motion-enabled .start-screen[data-motion=enter],body.motion-enabled .error-screen[data-motion=enter]{animation:screen-in var(--duration-entrance) var(--ease-standard) both}@keyframes screen-in{0%{transform:translateY(var(--distance-md))}}body.motion-enabled .screen{animation:none}body.motion-enabled .start-screen[data-motion=enter] .start-copy>.eyebrow,body.motion-enabled .start-screen[data-motion=enter] .start-copy>h1,body.motion-enabled .start-screen[data-motion=enter] .start-copy>.lede{animation:hero-in var(--duration-slow) var(--ease-emphasized) both}body.motion-enabled .start-screen[data-motion=enter] .start-copy>h1{animation-delay:calc(var(--duration-quick) / 3)}body.motion-enabled .start-screen[data-motion=enter] .start-copy>.lede{animation-delay:calc(var(--duration-quick) * 2 / 3)}@keyframes hero-in{0%{transform:translateY(var(--distance-md))}}body.motion-enabled:not(.reduced-motion) .mode-card:hover{transform:translateY(-3px) perspective(720px) rotateX(1.5deg) rotateY(-1.5deg)}body.motion-enabled:not(.reduced-motion) .preview-card:hover{transform:rotate(1.4deg) perspective(900px) rotateY(-2deg)}body.motion-enabled .modal-backdrop[data-motion=enter] .statistics-figures dd{animation:figure-in var(--duration-fast) var(--ease-emphasized) both}@keyframes figure-in{0%{transform:translateY(var(--distance-sm))}}body[data-board-theme] .piece:before,body[data-board-theme] .mini-piece:before{border:0;transform:none;background-color:var(--piece-black-rim);-webkit-mask-image:var(--piece-black-motif);mask-image:var(--piece-black-motif);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}body[data-board-theme] .piece.red:before,body[data-board-theme] .mini-piece.red:before{background-color:var(--piece-red-rim);-webkit-mask-image:var(--piece-red-motif);mask-image:var(--piece-red-motif)}body[data-board-theme] .mini-piece{border-color:var(--piece-black-rim)}body[data-board-theme] .mini-piece.red{border-color:var(--piece-red-rim)}body[data-board-theme] .board-shell:before{background:var(--board-coordinate)}body[data-theme-effect] .start-preview:after{position:absolute;z-index:0;top:-7%;right:-5%;bottom:-7%;left:-5%;border-radius:var(--radius-lg);pointer-events:none;content:"";opacity:.55}body[data-theme-effect] .start-preview>*{position:relative;z-index:1}body[data-theme-effect=fog] .start-preview:after{background-image:radial-gradient(38% 30% at 22% 28%,rgba(224,176,255,.34),transparent 70%),radial-gradient(34% 26% at 78% 62%,rgba(224,176,255,.28),transparent 72%);animation:theme-fog var(--duration-ambient) var(--ease-standard) infinite alternate}@keyframes theme-fog{to{background-position:24px -18px,-20px 16px}}body[data-theme-effect=snow] .start-preview:after{background-image:radial-gradient(2.5px 2.5px at 12px 8px,#fff,transparent 70%),radial-gradient(2px 2px at 34px 30px,rgba(255,255,255,.86),transparent 70%),radial-gradient(1.8px 1.8px at 22px 44px,rgba(255,255,255,.7),transparent 70%);background-size:56px 56px;animation:theme-fall var(--duration-ambient) var(--ease-standard) infinite}@keyframes theme-fall{to{background-position:0 224px}}body[data-theme-effect=waves] .start-preview:after{background-image:repeating-linear-gradient(96deg,rgba(255,255,255,.16) 0 2px,transparent 2px 22px);background-size:44px 44px;animation:theme-sway var(--duration-ambient) var(--ease-standard) infinite alternate}@keyframes theme-sway{to{background-position:34px 0}}body[data-theme-effect=blossom] .start-preview:after{background-image:radial-gradient(3px 2px at 16px 14px,rgba(255,214,228,.9),transparent 70%),radial-gradient(2.4px 1.8px at 40px 34px,rgba(255,236,244,.78),transparent 70%);background-size:58px 58px;animation:theme-drift var(--duration-ambient) var(--ease-standard) infinite}@keyframes theme-drift{to{background-position:-28px 208px}}@media(max-width:1180px)and (min-width:851px){.game-layout{grid-template-columns:170px minmax(360px,min(620px,calc(100vh - var(--board-chrome))))}.right-rail{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1181px){.game-layout{grid-template-columns:210px minmax(400px,min(690px,calc(100vh - var(--board-chrome)))) 270px}}@media(min-width:851px)and (max-height:820px){:root{--board-chrome: 366px}.game-screen{padding-top:20px}.game-heading{margin-bottom:16px}.game-heading h1{font-size:2rem}}@media(max-width:850px){.app-shell{width:min(100% - 28px,720px);margin:14px auto}.topbar{flex-wrap:wrap;row-gap:8px}.start-grid{grid-template-columns:minmax(0,1fr);gap:45px;min-width:0;min-height:auto;padding:54px 0 52px}.start-copy h1{font-size:clamp(3.15rem,14vw,5rem)}.start-preview{max-width:520px;margin:0 auto}.game-screen{padding-top:30px}.game-heading{align-items:flex-start;margin:0 0 22px}.game-heading h1{font-size:2.2rem}.game-layout{grid-template-columns:1fr;gap:18px;padding:0}.practice-layout{grid-template-columns:minmax(0,1fr);gap:18px;padding:0}.practice-panel{order:2}.player-stack{order:2;grid-template-columns:repeat(2,minmax(0,1fr))}.board-stage{order:1}.right-rail{order:3}.player-panel{min-height:132px}.player-topline{margin-bottom:16px}.result-screen{min-height:auto;padding:54px 0}.result-layout{grid-template-columns:1fr;gap:35px}.result-board-wrap{max-width:420px;margin:0 auto}}@media(max-width:560px){.app-shell{width:min(100% - 20px,500px);margin:10px auto}.topbar{min-height:56px}.topbar-right{gap:3px}.wordmark{gap:6px}.wordmark-mark{width:27px;height:27px}.wordmark-name{gap:4px;font-size:.92rem}.local-status{display:none}.icon-button{width:44px;height:44px}.start-grid{padding-top:43px}.mode-picker,.setup-grid,.help-grid,.right-rail{grid-template-columns:1fr}.mode-card{min-height:128px}.setup-block{align-items:flex-start;flex-direction:column}.rules-block{align-items:flex-start}.rules-block .segmented{width:100%}.rules-block .segmented button{flex:1}.color-options{width:100%}.color-choice{justify-content:center}.board-theme-control{width:100%}.board-theme-control select{flex:1;max-width:none;min-width:0}.resume-card{align-items:flex-start;flex-wrap:wrap}.resume-card>div{min-width:170px}.preview-card{padding:18px;transform:none}.preview-note{width:auto;margin-left:0;transform:none}.preview-card h2{font-size:1.55rem}.game-heading{flex-direction:column;gap:14px}.game-tag-row{justify-content:flex-start;flex-wrap:wrap}.board-shell{padding:10px;border-radius:14px}.board-stage{overflow-x:auto}.board-shell{width:max-content;min-width:380px}.board{min-width:360px}.board-shell:before{top:5px;width:64px}.piece{border-width:3px}.square.selected{box-shadow:inset 0 0 0 3px var(--gold)}.game-footer{flex-direction:column;gap:16px}.board-actions{justify-content:flex-start;width:100%}.board-actions button{flex:1;min-width:0}.player-panel{padding:14px}.player-name{font-size:.9rem}.piece-count strong{font-size:1.25rem}.result-card{padding:25px 20px}.result-card h1{font-size:2.8rem}.result-stats{grid-template-columns:repeat(2,1fr);row-gap:17px}.result-actions{align-items:stretch;flex-direction:column}.result-actions .primary-button,.result-actions .quiet-button{justify-content:space-between;width:100%}.modal-backdrop{padding:10px}.modal{padding:27px 20px 21px;border-radius:17px}.help-grid{gap:8px}.help-grid>div{padding:12px}.privacy-points{grid-template-columns:1fr;gap:18px}.statistics-figures{grid-template-columns:1fr}.modal-footer{align-items:stretch;flex-direction:column}.modal-footer .primary-button,.modal-footer .quiet-button{justify-content:space-between;width:100%}.mono-note{order:2}.storage-warning{align-items:flex-start;flex-direction:column;gap:8px}.storage-warning .text-button{padding-left:0}.error-screen{min-height:auto;padding:54px 0}.error-card .result-actions{align-items:stretch;flex-direction:column}.error-card .result-actions .primary-button,.error-card .result-actions .quiet-button{justify-content:space-between;width:100%}}@media(prefers-reduced-motion:reduce){.screen,.modal-backdrop,.result-card{animation:none}[data-motion],[data-motion] *,.modal,.segmented-pill,.local-status,.notice-body,.offline-notice,.update-notice,.storage-warning,.hint-note,.practice-panel,.rule-hint{animation:none!important}}
