:root{color:#26333b;font-synthesis:none;--app-bg:#f4f6f7;--ink:#26333b;--muted:#66747d;--faint:#8b969d;--line:#26333b26;--panel:#ffffffeb;--panel-light:#fff;--surface-muted:#edf1f3;--accent:#55788f;--accent-soft:#e8f0f4;--accent-border:#55788f6b;--button-ink:#fff;--status:#4d8a64;--ui-font-scale:1;--board-light:#d9c4a0;--board-dark:#6c5744;--serif:Georgia, "Times New Roman", serif;background:#f4f6f7;font-family:Manrope,Segoe UI,sans-serif}html[data-theme=dark]{color:#edf1f2;--app-bg:#1b2023;--ink:#edf1f2;--muted:#a3afb5;--faint:#7d898f;--line:#e1e9ec26;--panel:#232a2ef0;--panel-light:#293136;--surface-muted:#303a40;--accent:#9bbdd0;--accent-soft:#8eb8cf29;--accent-border:#9bbdd085;--button-ink:#182126;--status:#8fc49d;background:#1b2023}.debug-panel .opener{display:none!important}*{box-sizing:border-box}body{background:var(--app-bg);min-width:320px;min-height:100vh;margin:0}button{font:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.app-shell{background:var(--app-bg);flex-direction:column;min-height:100vh;padding:48px 46px;display:flex;position:relative}.game-toolbar{z-index:5;justify-content:flex-end;max-width:calc(100% - 92px);display:flex;position:absolute;top:24px;right:46px}.hamburger-button{border:1px solid var(--line);background:var(--panel);cursor:pointer;place-content:center;gap:5px;width:42px;height:38px;padding:7px;transition:border-color .16s,background-color .16s;display:grid}.hamburger-button span{background:var(--muted);width:18px;height:1.5px;transition:transform .16s,opacity .16s;display:block}.hamburger-button:hover,.hamburger-button.is-open{border-color:var(--accent-border);background:var(--accent-soft)}.hamburger-button:hover span,.hamburger-button.is-open span{background:var(--accent)}.hamburger-button.is-open span:first-child{transform:translateY(6.5px)rotate(45deg)}.hamburger-button.is-open span:nth-child(2){opacity:0}.hamburger-button.is-open span:last-child{transform:translateY(-6.5px)rotate(-45deg)}.game-menu-backdrop{z-index:15;background:color-mix(in srgb, var(--app-bg) 42%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:default;border:0;position:fixed;inset:0}.game-action-menu{z-index:20;border:1px solid var(--accent-border);background:var(--panel-light);width:min(84vw,340px);max-height:calc(100vh - 48px);padding:18px;display:grid;position:fixed;top:50%;left:50%;right:auto;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 24px 70px #00000047}.game-menu-heading{color:var(--ink);justify-content:space-between;align-items:baseline;padding:2px 10px 13px;display:flex}.game-menu-heading strong{font-family:var(--serif);font-size:calc(20px * var(--ui-font-scale));font-weight:400}.game-menu-close{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);font-size:calc(18px * var(--ui-font-scale));cursor:pointer;background:0 0;place-items:center;padding:0;line-height:1;display:grid}.game-menu-close:hover{border-color:var(--accent-border);color:var(--accent);background:var(--accent-soft)}.game-menu-item{width:100%;color:var(--ink);font-size:calc(13px * var(--ui-font-scale));text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:13px 14px;display:flex}.game-menu-item:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.game-menu-item:disabled{cursor:not-allowed;opacity:.4}.game-menu-item.game-menu-continue{border:1px solid var(--accent);color:var(--button-ink);background:var(--accent);text-align:center;justify-content:center;font-weight:700}.game-menu-item.game-menu-continue:hover:not(:disabled){color:var(--button-ink);filter:brightness(1.08)}.game-menu-divider{background:var(--line);height:1px;margin:10px 0}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1380px;min-height:92px;margin:0 auto;display:flex}.brand-lockup,.topbar-meta,.player-card,.opponent-card,.card-heading,.action-row,.board-footer,.legend,.local-pill,.turn-chip{align-items:center;display:flex}.brand-lockup{gap:13px}.brand-mark{border:1px solid var(--accent-border);width:37px;height:37px;color:var(--accent);font-family:var(--serif);font-size:calc(25px * var(--ui-font-scale));place-items:center;line-height:1;display:grid;transform:rotate(-5deg)}.eyebrow,.section-kicker,.version-label,.player-role,.depth-note,.move-count,.move-counter,.app-footer,.local-pill{letter-spacing:.11em;font-family:DM Mono,monospace;font-size:calc(10px * var(--ui-font-scale));text-transform:uppercase}.eyebrow,.section-kicker{color:var(--accent)}.brand-lockup h1{font-size:calc(16px * var(--ui-font-scale));letter-spacing:.18em;margin:2px 0 0;font-weight:800}.topbar-meta{color:var(--faint);gap:25px}.local-pill{color:var(--muted);gap:8px}.status-dot{background:var(--status);width:6px;height:6px;box-shadow:0 0 0 4px color-mix(in srgb, var(--status) 12%, transparent);border-radius:50%}.version-label{color:var(--faint)}.theme-toggle{border:1px solid var(--line);color:var(--muted);background:var(--panel);font-size:calc(10px * var(--ui-font-scale));cursor:pointer;align-items:center;gap:7px;padding:8px 10px;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent-border);color:var(--accent);background:var(--accent-soft)}.theme-toggle-icon{font-size:calc(14px * var(--ui-font-scale));line-height:1}.game-layout{flex:1;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;max-width:1380px;min-height:calc(100vh - 96px);margin:0 auto;padding:0;display:grid}.board-column{min-width:0}.board-player-card{z-index:1;width:min(100%,520px);margin:0 auto 12px;position:relative}.board-player-card.player-card{margin-top:12px;margin-bottom:0}.board-player-card.is-active{border-color:var(--status);background:color-mix(in srgb, var(--status) 18%, var(--panel));box-shadow:0 0 0 2px color-mix(in srgb, var(--status) 24%, transparent), 0 10px 24px color-mix(in srgb, var(--status) 18%, transparent);border-left-color:var(--status)}.board-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:23px;display:flex}.board-heading h2{font-family:var(--serif);font-size:clamp(calc(27px * var(--ui-font-scale)), calc(3vw * var(--ui-font-scale)), calc(39px * var(--ui-font-scale)));letter-spacing:-.035em;margin:8px 0 0;font-weight:400}.turn-chip{border:1px solid var(--line);color:var(--muted);font-family:DM Mono,monospace;font-size:calc(9px * var(--ui-font-scale));letter-spacing:.08em;flex-shrink:0;gap:9px;padding:10px 13px}.turn-chip.is-white{border-color:var(--accent-border);color:var(--accent)}.turn-chip-piece{font-family:var(--serif);font-size:calc(18px * var(--ui-font-scale));line-height:1}.board-wrap{width:min(100%,820px);margin:0 auto;position:relative}.game-over-overlay{z-index:4;background:color-mix(in srgb, var(--app-bg) 42%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:24px;display:grid;position:absolute;inset:0}.game-over-card{border:1px solid var(--status);background:var(--panel-light);text-align:center;width:min(100%,370px);padding:27px 24px;box-shadow:0 18px 50px #00000047}.game-over-card h2{color:var(--ink);font-family:var(--serif);font-size:calc(31px * var(--ui-font-scale));margin:8px 0 6px;font-weight:400}.game-over-card p{color:var(--muted);font-size:calc(12px * var(--ui-font-scale));margin:0}.game-over-actions{gap:8px;margin-top:22px;display:grid}.board-frame{background:#1b2520;padding:12px;position:relative;box-shadow:0 24px 65px #00000057,0 0 0 1px #d5b16b1a}.board-frame:after{content:"";pointer-events:none;border:1px solid #d5b16b26;position:absolute;inset:5px}.board{aspect-ratio:1;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));display:grid;position:relative;overflow:hidden}.board-square{cursor:pointer;border:0;place-items:center;min-width:0;min-height:0;padding:0;transition:filter .16s,background-color .16s;display:grid;position:relative}.board-square.light{background:var(--board-light)}.board-square.dark{background:var(--board-dark)}.board-square:hover{filter:brightness(1.1)}.board-square.selected{background:#b9965d}.board-square.last-move.light{background:#e3c77d}.board-square.last-move.dark{background:#967341}.board-square.in-check{background:#aa493e!important}.piece{z-index:2;-webkit-user-select:none;user-select:none;margin-top:-2%;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",Arial Unicode MS,serif;font-size:clamp(28px,7vw,82px);line-height:1;display:block;position:relative;transform:translateY(-1%)}@supports (font-size:1cqw){.board-square{container-type:inline-size}.piece{font-size:clamp(28px,82cqw,82px)}}.white-piece{color:#f7f0dc;text-shadow:0 3px #a88b64,0 5px 8px #33231385}.black-piece{color:#252a26;text-shadow:0 1px #ffffff24,0 5px 6px #0f100c73}.rank-label,.file-label{z-index:3;color:#362b1ca6;pointer-events:none;font-family:DM Mono,monospace;font-size:clamp(8px,1vw,11px);font-weight:500;line-height:1;position:absolute}.rank-label{top:7px;left:7px}.file-label{bottom:6px;right:7px}.dark .rank-label,.dark .file-label{color:#f3ead3b3}.move-marker{z-index:1;background:#313e2b6b;border-radius:50%;width:20%;height:20%;position:absolute;box-shadow:0 0 0 5px #ffffff0f}.capture-marker{width:74%;height:74%;box-shadow:none;background:0 0;border:5px solid #313e2b6b}.board-footer{color:var(--faint);justify-content:space-between;padding:14px 3px 0}.legend{font-size:calc(11px * var(--ui-font-scale));gap:9px}.legend-dot{border:1px solid var(--accent);border-radius:50%;width:7px;height:7px}.move-counter{color:var(--faint)}.side-panel{flex-direction:column;gap:14px;display:flex}.opponent-card,.player-card,.controls-card{border:1px solid var(--line);background:var(--panel)}.opponent-card,.player-card{gap:13px;min-height:75px;padding:15px 17px}.opponent-card{border-left:2px solid var(--line)}.player-card{border-left:2px solid var(--line);margin-top:3px}.player-avatar{border:1px solid var(--line);width:41px;height:41px;font-family:var(--serif);font-size:calc(27px * var(--ui-font-scale));flex:0 0 41px;place-items:center;display:grid}.bot-avatar{color:var(--muted);background:var(--surface-muted)}.human-avatar{color:var(--ink);background:var(--surface-muted)}.player-identity{flex:none;justify-items:center;gap:4px;display:grid}.player-info{gap:3px;min-width:0;display:grid}.player-role{color:var(--faint);font-size:calc(9px * var(--ui-font-scale))}.player-info strong{color:var(--ink);font-size:calc(14px * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.player-turn-state{color:var(--status);font-size:calc(10px * var(--ui-font-scale));font-weight:700}.player-turn-state.is-warning{color:#b04f42}.player-side-meta{align-items:center;gap:7px;margin-left:auto;display:flex}.player-order{color:var(--muted);font-size:calc(10px * var(--ui-font-scale))}.player-color{border-radius:50%;width:10px;height:10px}.black-color{box-shadow:0 0 0 4px color-mix(in srgb, var(--ink) 8%, transparent);background:#30383d}.white-color{box-shadow:0 0 0 4px color-mix(in srgb, var(--ink) 8%, transparent);background:#f2f4f5}.controls-card{padding:18px 19px}.card-heading{justify-content:space-between;gap:10px}.depth-note,.move-count{color:var(--faint);font-size:calc(9px * var(--ui-font-scale))}.difficulty-options{gap:7px;margin-top:18px;display:grid}.standard-difficulty{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--ink);grid-template-columns:14px 1fr auto;align-items:start;gap:11px;margin-top:18px;padding:12px 10px;display:grid}.standard-difficulty strong,.standard-difficulty small{display:block}.standard-difficulty strong{font-size:calc(12px * var(--ui-font-scale));font-weight:600}.standard-difficulty small{color:var(--muted);font-size:calc(10px * var(--ui-font-scale));margin-top:3px;line-height:1.35}.standard-tag{color:var(--accent);font-family:DM Mono,monospace;font-size:calc(8px * var(--ui-font-scale));letter-spacing:.08em}.difficulty-option{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:14px 1fr;align-items:start;gap:11px;padding:10px 9px;transition:all .16s;display:grid}.difficulty-option:hover{background:var(--surface-muted)}.difficulty-option.active{border-color:var(--accent-border);background:var(--accent-soft);color:var(--ink)}.difficulty-radio{border:1px solid var(--faint);border-radius:50%;width:11px;height:11px;margin-top:3px}.active-radio,.active .difficulty-radio{border:3px solid var(--accent);box-shadow:0 0 0 1px var(--accent)}.difficulty-option strong,.difficulty-option small{display:block}.difficulty-option strong{font-size:calc(12px * var(--ui-font-scale));font-weight:600}.difficulty-option small{color:var(--faint);font-size:calc(10px * var(--ui-font-scale));margin-top:3px;line-height:1.35}.active small{color:var(--muted)}.move-history-widget{z-index:3;width:min(350px,100vw - 48px);position:fixed;bottom:24px;left:24px}.move-history-toggle{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--panel);cursor:pointer;align-items:center;gap:11px;padding:11px 14px;transition:border-color .16s,background-color .16s;display:flex;box-shadow:0 12px 32px #00000024}.move-history-toggle:hover,.move-history-widget.is-open .move-history-toggle{border-color:var(--accent-border);background:var(--accent-soft)}.move-history-toggle-label{font-size:calc(12px * var(--ui-font-scale));font-weight:700}.move-history-toggle .move-count{color:var(--muted);font-size:calc(9px * var(--ui-font-scale));margin-left:auto}.move-history-toggle-icon{width:17px;color:var(--accent);font-size:calc(16px * var(--ui-font-scale));text-align:center;line-height:1}.move-history-panel{border:1px solid var(--line);background:var(--panel);margin-top:7px;padding:15px 16px;box-shadow:0 18px 42px #0000002e}.move-list{scrollbar-color:var(--faint) transparent;max-height:min(230px,34vh);margin-top:0;overflow:auto}.move-row{border-bottom:1px solid var(--line);font-family:DM Mono,monospace;font-size:calc(11px * var(--ui-font-scale));grid-template-columns:32px 1fr 1fr;padding:7px 4px;display:grid}.move-number{color:var(--faint)}.white-move{color:var(--ink)}.black-move{color:var(--muted)}.empty-history{color:var(--faint);text-align:center;place-items:center;padding:16px 0 4px;display:grid}.empty-history span{color:var(--faint);font-family:var(--serif);font-size:calc(26px * var(--ui-font-scale))}.empty-history p{font-size:calc(11px * var(--ui-font-scale));margin:7px 0 0}.action-row{gap:9px}.secondary-button,.primary-button,.quiet-button{border:1px solid var(--line);cursor:pointer;transition:all .16s}.secondary-button,.primary-button{font-size:calc(12px * var(--ui-font-scale));flex:1;padding:12px}.secondary-button{color:var(--muted);background:0 0}.secondary-button:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-soft)}.secondary-button:disabled{cursor:not-allowed;opacity:.35}.primary-button{border-color:var(--accent);color:var(--button-ink);background:var(--accent);font-weight:700}.primary-button:hover{filter:brightness(1.08)}.quiet-button{color:var(--faint);font-family:DM Mono,monospace;font-size:calc(9px * var(--ui-font-scale));letter-spacing:.04em;cursor:pointer;background:0 0;border:0;align-self:flex-end;padding:0}.quiet-button:hover{color:var(--accent)}.app-footer{border-top:1px solid var(--line);max-width:1380px;color:var(--faint);justify-content:space-between;margin:0 auto;padding-top:17px;font-size:9px;display:flex}.modal-backdrop{z-index:10;background:color-mix(in srgb, var(--app-bg) 78%, #000 22%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.settings-backdrop{z-index:30;background:color-mix(in srgb, var(--app-bg) 42%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.promotion-modal{border:1px solid var(--accent-border);background:var(--panel-light);width:min(100%,380px);padding:28px;box-shadow:0 25px 80px #0000003d}.promotion-modal h3{font-family:var(--serif);font-size:calc(27px * var(--ui-font-scale));margin:8px 0 5px;font-weight:400}.promotion-modal p{color:var(--muted);font-size:calc(12px * var(--ui-font-scale));margin:0}.promotion-options{grid-template-columns:repeat(4,1fr);gap:7px;margin-top:23px;display:grid}.promotion-options button{border:1px solid var(--line);color:var(--ink);background:var(--surface-muted);cursor:pointer;place-items:center;gap:5px;padding:10px 3px;display:grid}.promotion-options button:hover{border-color:var(--accent);background:var(--accent-soft)}.promotion-options span{font-family:var(--serif);font-size:calc(37px * var(--ui-font-scale));line-height:1}.promotion-options small{color:var(--muted);font-size:calc(10px * var(--ui-font-scale))}.menu-shell{background:var(--app-bg);min-height:100vh;padding:0 46px;display:flex;position:relative}.menu-layout{justify-content:center;align-items:center;width:100%;max-width:1380px;min-height:100vh;margin:0 auto;padding:48px 0;display:flex}.menu-content{flex-direction:column;align-items:center;width:min(100%,520px);display:flex}.menu-hero-copy{align-self:center}.menu-hero-copy h2{max-width:600px;font-family:var(--serif);font-size:clamp(calc(42px * var(--ui-font-scale)), calc(5vw * var(--ui-font-scale)), calc(72px * var(--ui-font-scale)));letter-spacing:-.055em;margin:13px 0 18px;font-weight:400;line-height:1.06}.menu-hero-copy h2 em{color:var(--accent);font-style:normal}.menu-hero-copy p{max-width:420px;color:var(--muted);font-size:calc(14px * var(--ui-font-scale));margin:0;line-height:1.8}.menu-actions{gap:11px;width:min(100%,250px);margin-top:28px;display:grid}.menu-actions button{width:100%;min-width:0}.menu-actions button:disabled{cursor:not-allowed;opacity:.35}.menu-art{aspect-ratio:1;pointer-events:none;-webkit-user-select:none;user-select:none;place-items:center;width:min(100%,300px);display:grid;position:relative}.menu-art-glow{filter:blur(50px);background:#d5b16b1c;border-radius:50%;animation:6s ease-in-out infinite menu-art-glow-pulse;position:absolute;inset:15%}.menu-art-board{z-index:1;aspect-ratio:1;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));width:80%;animation:7s ease-in-out infinite menu-art-float;display:grid;position:relative;overflow:hidden;transform:rotate(-7deg);box-shadow:20px 25px 60px #0000006b}.menu-art-board span{color:#27241cd9;place-items:center;min-width:0;min-height:0;font-family:Segoe UI Symbol,"Noto Sans Symbols 2",serif;font-size:clamp(12px,2.2vw,22px);line-height:1;display:grid}.menu-art-board span.preview-piece-black{color:#252a26;text-shadow:0 1px #fff3,0 2px 3px #0f100c59}.menu-art-board span.preview-piece-white{color:#f7f0dc;text-shadow:0 1px #806e54,0 2px 3px #33231373}.art-light{background:#bdab87}.art-dark{background:#554a3c}.menu-art-caption{z-index:2;color:var(--accent);font-family:DM Mono,monospace;font-size:calc(11px * var(--ui-font-scale));letter-spacing:.12em;text-shadow:0 1px 1px color-mix(in srgb, var(--app-bg) 45%, transparent);align-items:baseline;gap:9px;font-weight:600;display:flex;position:absolute;bottom:1%;right:1%;transform:rotate(-7deg)}.menu-art-caption span:first-child{font-size:calc(14px * var(--ui-font-scale));letter-spacing:.14em;font-weight:800}@keyframes menu-art-float{0%,to{transform:translateY(0)rotate(-7deg)}50%{transform:translateY(-8px)rotate(-5.5deg)}}@keyframes menu-art-glow-pulse{0%,to{opacity:.65;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}@media (prefers-reduced-motion:reduce){.menu-art-board,.menu-art-glow{animation:none}}.menu-saves{width:min(100%,420px);margin-top:28px}.menu-saves-heading{justify-content:space-between;align-items:end;margin-bottom:9px;display:flex}.menu-saves-heading h3{color:var(--ink);font-family:var(--serif);font-size:calc(20px * var(--ui-font-scale));margin:5px 0 0;font-weight:400}.menu-save-row{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:10px;margin-top:4px;padding:9px 3px;transition:all .16s;display:flex}.menu-save-row:hover{border-bottom-color:var(--accent-border);background:var(--accent-soft)}.menu-save-icon{width:27px;height:27px;color:var(--muted);background:var(--surface-muted);font-family:var(--serif);font-size:calc(17px * var(--ui-font-scale));place-items:center;display:grid}.menu-save-info{gap:3px;display:grid}.menu-save-info strong{font-size:calc(11px * var(--ui-font-scale));font-weight:600}.menu-save-info small{color:var(--muted);font-size:calc(9px * var(--ui-font-scale))}.menu-save-arrow{color:var(--accent);font-size:calc(18px * var(--ui-font-scale));margin-left:auto}.session-actions{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:7px;display:grid}.session-button{border:1px solid var(--line);color:var(--muted);font-size:calc(10px * var(--ui-font-scale));cursor:pointer;background:0 0;padding:9px 5px;transition:all .16s}.session-button:hover{border-color:var(--accent-border);color:var(--accent);background:var(--accent-soft)}.session-meta{color:var(--faint);font-family:DM Mono,monospace;font-size:calc(8px * var(--ui-font-scale));justify-content:space-between;gap:8px;margin-top:2px;line-height:1.4;display:flex}.board-session-meta{z-index:2;width:min(100%,820px);font-size:calc(11px * var(--ui-font-scale));text-align:right;flex-direction:column;align-items:flex-end;gap:4px;margin:18px auto 0;padding:0 3px;position:relative}.save-name-label{color:var(--ink);font-size:calc(11px * var(--ui-font-scale));font-weight:700}.saved-indicator{color:var(--status);font-size:calc(10px * var(--ui-font-scale))}.unsaved-indicator{color:var(--faint);font-size:calc(10px * var(--ui-font-scale))}.dirty-indicator{color:#b86f4f}.save-modal{border:1px solid var(--accent-border);background:var(--panel-light);width:min(100%,510px);max-height:min(700px,100vh - 40px);padding:27px;overflow:auto;box-shadow:0 25px 80px #0000003d}.settings-modal{border:1px solid var(--accent-border);background:var(--panel-light);width:min(100%,430px);padding:27px;box-shadow:0 25px 80px #0000003d}.modal-heading-row{justify-content:space-between;align-items:start;gap:20px;display:flex}.save-modal h3,.settings-modal h3{font-family:var(--serif);font-size:calc(28px * var(--ui-font-scale));margin:8px 0 20px;font-weight:400}.modal-close{border:1px solid var(--line);width:28px;height:28px;color:var(--muted);font-size:calc(19px * var(--ui-font-scale));cursor:pointer;background:0 0;line-height:1}.modal-close:hover{border-color:var(--accent);color:var(--accent)}.save-name-field{color:var(--muted);font-size:calc(10px * var(--ui-font-scale));gap:7px;display:grid}.save-name-field input{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--surface-muted);font-size:calc(13px * var(--ui-font-scale));outline:none;padding:11px 12px}.save-name-field input:focus{border-color:var(--accent)}.settings-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:14px 0 2px;display:flex}.settings-row strong,.settings-row small{display:block}.settings-row strong{color:var(--ink);font-size:calc(13px * var(--ui-font-scale));font-weight:600}.settings-row small{color:var(--muted);font-size:calc(10px * var(--ui-font-scale));margin-top:4px;line-height:1.4}.save-target-list{gap:6px;max-height:270px;margin-top:16px;display:grid;overflow:auto}.save-target{color:var(--muted);background:var(--surface-muted);text-align:left;cursor:pointer;border:1px solid #0000;grid-template-columns:30px 1fr;align-items:center;gap:11px;padding:10px;display:grid}.save-target:hover:not(:disabled),.save-target.selected{border-color:var(--accent-border);color:var(--ink);background:var(--accent-soft)}.save-target:disabled{cursor:not-allowed;opacity:.38}.save-target-icon{border:1px solid var(--line);width:27px;height:27px;color:var(--accent);font-family:var(--serif);font-size:calc(18px * var(--ui-font-scale));place-items:center;display:grid}.save-target strong,.save-target small{display:block}.save-target strong{font-size:calc(12px * var(--ui-font-scale));font-weight:600}.save-target small{color:var(--faint);font-size:calc(10px * var(--ui-font-scale));margin-top:3px}.save-error{color:#d08d67;font-size:calc(11px * var(--ui-font-scale));margin-top:10px}.modal-actions{align-items:center;gap:8px;margin-top:18px;display:flex}.modal-actions .primary-button,.modal-actions .secondary-button{flex:1}.load-list{gap:7px;max-height:390px;display:grid;overflow:auto}.load-row{border:1px solid var(--line);background:var(--surface-muted);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:11px;display:grid}.load-row-info{gap:4px;min-width:0;display:grid}.load-row-info strong{font-size:calc(12px * var(--ui-font-scale));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.load-row-info small{color:var(--muted);font-size:calc(10px * var(--ui-font-scale))}.load-button,.delete-button{border:1px solid var(--line);color:var(--accent);font-size:calc(10px * var(--ui-font-scale));cursor:pointer;background:0 0;padding:7px 10px}.load-button:hover{border-color:var(--accent);background:var(--accent-soft)}.delete-button{width:26px;color:var(--faint);font-size:calc(15px * var(--ui-font-scale));padding:5px 0}.delete-button:hover{color:#c97968;border-color:#c97968}.empty-saves{min-height:145px;color:var(--faint);text-align:center;place-items:center;display:grid}.empty-saves span{font-family:var(--serif);font-size:30px}.empty-saves p{margin:7px 0 0;font-size:11px}@media (width<=1080px){.app-shell{padding:48px 24px 32px}.menu-shell{padding:0 24px}}@media (width<=820px){.game-toolbar{max-width:calc(100% - 48px);top:18px;right:24px}.game-layout{min-height:auto;padding-top:76px;display:block}.board-wrap{max-width:640px}.move-history-widget{width:min(350px,100vw - 48px);bottom:20px;left:24px}.side-panel{grid-template-columns:1fr 1fr;max-width:640px;margin:32px auto 0;display:grid}.opponent-card,.player-card,.moves-card{grid-column:span 2}.controls-card{grid-column:span 1}.action-row{grid-column:span 1;align-self:end}.quiet-button{grid-column:span 2}}@media (width<=560px){.app-shell{padding:50px 13px 24px}.menu-shell{padding:0 13px}.game-toolbar{gap:4px;max-width:none;top:14px;left:auto;right:13px}.local-pill{font-size:8px}.board-heading{flex-direction:column;align-items:start;gap:13px;margin-bottom:16px}.board-heading h2{font-size:30px}.menu-layout{padding:42px 0 30px}.menu-actions{width:min(100%,250px);margin-top:24px}.menu-art{width:min(100%,320px)}.turn-chip{align-self:flex-start}.board-frame{padding:7px}.board-frame:after{inset:3px}.rank-label{top:4px;left:4px}.file-label{bottom:4px;right:4px}.move-history-widget{width:calc(100vw - 26px);max-height:calc(100vh - 26px);bottom:13px;left:13px}.move-history-panel{max-height:min(190px,28vh);overflow:hidden}.move-history-panel .move-list{max-height:min(160px,24vh)}.side-panel{margin-top:25px;display:flex}}
