:root{font-family:Futura,Century Gothic,Avenir Next,Avenir,sans-serif;color:#293b32;background:#eee8dc;font-synthesis:none;font-weight:400;font-size:16px;--ink: #293b32;--muted: #787b6d;--paper: #eee8dc;--line: #d8d3c7;--gold: #b18a43;--rust: #a65939}*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #a77533;outline-offset:4px}button{color:inherit;border:0;background:none}a{color:inherit;text-decoration:none}.masthead{height:92px;display:flex;align-items:center;justify-content:space-between;margin:0 4.2%;border-bottom:1px solid var(--line)}.wordmark{font-size:22px;letter-spacing:.15em;font-weight:700}.wordmark span{font-size:10px;letter-spacing:.48em;margin-left:14px;font-weight:500}.edition,.eyebrow,.collection,footer,.view-controls>span,.setup label{font-size:11px;letter-spacing:.14em;font-weight:600}.edition{color:var(--muted)}.text-button{font-size:13px;padding:12px 0}.text-button span{margin-left:16px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 338px;margin:0 4.2%;min-height:calc(100vh - 148px);max-height:1100px}.board-panel{position:relative;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--line);padding-right:28px}.board-heading{display:flex;justify-content:space-between;align-items:flex-start;padding-top:29px;position:relative;z-index:1;pointer-events:none}.eyebrow{color:var(--rust);font-size:10px;letter-spacing:.18em}h1{font-size:clamp(23px,2.3vw,37px);line-height:1.25;font-weight:500;letter-spacing:-.045em;margin:12px 0 0}h1 em{font-style:normal;color:var(--muted)}.collection{text-align:right;font-size:9px;line-height:1.9;color:var(--muted);padding-top:2px}.board{flex:1;min-height:430px;position:relative;margin-top:-25px}.board canvas{display:block;width:100%;height:100%;touch-action:none}.view-controls{display:flex;align-items:center;gap:5px;padding:15px 0 20px;border-top:1px solid var(--line)}.view-controls>span{font-size:9px;color:var(--muted);margin-right:16px}.view-controls button{font-size:12px;padding:8px 13px;border:1px solid transparent;border-radius:3px}.view-controls button.active{border-color:#979f8d}.view-controls .orbit-note{margin-left:auto;margin-right:0;font-size:10px;letter-spacing:0;font-weight:400}.side-panel{padding:35px 0 25px 30px;min-width:0}.setup h2{font-size:40px;line-height:1.1;letter-spacing:-.05em;font-weight:500;margin:16px 0}.setup>p{font-family:Avenir Next,Avenir,sans-serif;font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 28px}.setup label{display:block;margin-bottom:12px;font-size:10px}.segmented{display:flex;border:1px solid #c9cebf;padding:4px;border-radius:4px;margin-bottom:26px;gap:2px}.segmented button{flex:1;font-size:13px;padding:10px 3px;border-radius:2px}.segmented button.active{background:var(--ink);color:#f1edde}.difficulty{display:grid;gap:8px}.difficulty button{padding:13px 15px;text-align:left;border:1px solid var(--line);border-radius:3px;position:relative}.difficulty button.active{border-color:#899481;background:#e5e5d8}.difficulty strong{display:block;font-size:14px;font-weight:500}.difficulty span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.difficulty b{position:absolute;right:15px;top:20px;font-size:17px;font-weight:400;color:#969d85}.primary{background:var(--ink);color:#fbf2de;display:flex;justify-content:space-between;align-items:center;width:100%;padding:17px 18px;margin-top:22px;border-radius:3px;font-size:14px}.primary:hover{background:#3c5144}.new-pieces{border-top:1px solid var(--line);margin-top:26px;padding-top:22px}.new-pieces>.eyebrow{font-size:9px;color:var(--muted)}.new-pieces>div{display:flex;align-items:center;gap:15px;margin-top:15px}.new-pieces b{font-size:20px;color:var(--gold);font-weight:400;width:20px;text-align:center}.new-pieces p{margin:0}.new-pieces strong{display:block;font-size:12px;font-weight:500}.new-pieces p span{display:block;font-size:10px;color:var(--muted);margin-top:4px;line-height:1.5}footer{margin:0 4.2%;height:56px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:9px;color:#8b8e80;letter-spacing:.13em}.webgl-error{padding:100px 30px;line-height:1.8}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(min-width:1600px){.game-layout{grid-template-columns:minmax(0,1fr) 370px}.side-panel{padding-left:40px}.board{min-height:560px}}@media(max-width:1050px){.masthead,.game-layout,footer{margin-left:24px;margin-right:24px}.game-layout{grid-template-columns:minmax(0,1fr) 280px}.side-panel{padding-left:20px}.board-panel{padding-right:15px}.board{min-height:440px}.edition{display:none}.view-controls>span:first-child{display:none}.setup h2{font-size:34px}}@media(max-width:800px){.masthead{height:75px}.game-layout{display:flex;flex-direction:column;max-height:none}.board-panel{border-right:0;padding-right:0}.board-heading{padding-top:22px}.board{height:470px;flex:auto}.side-panel{border-top:1px solid var(--line);padding:25px 0}.setup h2 br{display:none}.setup h2{font-size:28px}.setup>p{margin-bottom:20px}.difficulty{grid-template-columns:repeat(3,1fr)}.difficulty button{padding:13px 10px}.difficulty b,.new-pieces{display:none}.view-controls{padding-bottom:15px}footer{height:45px}.wordmark{font-size:19px}.collection{display:none}}@media(max-width:480px){.masthead,.game-layout,footer{margin-left:16px;margin-right:16px}.wordmark span{display:none}.board{height:340px;min-height:340px}.board-heading h1{font-size:25px}.orbit-note{display:none}.difficulty span{font-size:10px}footer span:last-child{display:none}}.game-status h2{font-size:31px;letter-spacing:-.045em;font-weight:500;line-height:1.12;margin:15px 0 20px}.opponent-line{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}.turn-indicator{display:flex;align-items:center;gap:6px}.turn-indicator:before{content:"";width:9px;height:9px;border-radius:50%;background:#c4a06a;border:1px solid #a58a65}.turn-indicator.black:before{background:#64442e;border-color:#533e30}.shield-states{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:19px 0;margin-top:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.shield-status{display:flex;gap:10px;align-items:center;font-size:10px;color:var(--muted)}.shield-status strong{display:block;font-size:12px;font-weight:500;color:var(--ink);margin-top:3px}.shield-badge{display:grid;place-items:center;width:26px;height:34px;border:1px solid #a7ad9c;border-radius:50%;font-size:13px}.charged .shield-badge{border:3px double #b08c45;background:#dbcb99;color:#6a4a0c}.charged strong{color:#876722}.game-note{min-height:78px;padding:20px 0;font-size:13px;color:var(--muted);line-height:1.6}.captured-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:7px 0}.captured-row>span{font-size:9px;letter-spacing:.11em;color:var(--muted)}.captured-row strong{font-size:13px;letter-spacing:.13em;font-weight:500}.move-list-heading{display:flex;justify-content:space-between;align-items:center;margin-top:25px;padding-bottom:11px;border-bottom:1px solid var(--line)}.move-list-heading .eyebrow{font-size:9px;color:var(--muted)}.move-list-heading button{font-size:10px;padding:5px 0}.move-list{height:205px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#adb39f transparent;margin-top:5px}.move-row{display:grid;grid-template-columns:30px 1fr 1fr;gap:3px;align-items:center;font-size:13px;margin-bottom:3px;min-height:32px}.move-row>span{font-size:11px;color:var(--muted);padding-left:5px}.move-row>button{text-align:left;padding:8px;border-radius:2px}.move-row>button:hover{background:#e2dfd2}.move-row>button.current{background:#dde0ce}.move-row sup{color:var(--rust);padding-left:4px}.empty-moves{font-size:12px;color:var(--muted);line-height:1.8;margin:22px 0}.play-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:15px}.play-actions button,.secondary{border:1px solid #abb29e;padding:12px 14px;border-radius:3px;font-size:13px}.secondary{display:block;width:100%;margin-top:10px}.play-actions button:hover,.secondary:hover{background:#e2e2d4}.quiet-actions{display:flex;justify-content:space-between;padding-top:15px;gap:10px}.quiet-actions button{font-size:11px;color:var(--muted);padding:5px 0}.quiet-actions button:hover{color:var(--rust)}.result-cause{font-size:14px;color:var(--muted);margin-top:15px}.result-actions .primary{margin-top:18px}.selected-help{margin:18px 0}.selected-help-heading{display:flex;justify-content:space-between;align-items:center}.selected-help-heading .eyebrow{font-size:10px}.selected-help-heading button{font-size:20px;color:var(--muted)}.help-content{display:flex;gap:15px;align-items:center;margin-top:9px}.help-content p{font-size:12px;line-height:1.65;margin:0;color:var(--muted);flex:1}.help-note{font-size:10px;color:var(--muted);line-height:1.6}.mini-board{display:grid;grid-template-columns:repeat(5,1fr);width:100px;flex:0 0 100px;border:3px solid #796346;aspect-ratio:1}.mini-board>span{display:grid;place-items:center;aspect-ratio:1}.mini-board .light{background:#e0d0ad}.mini-board .dark{background:#9a7954}.mini-board b{font-size:16px;color:#263d33}.mini-board i{width:6px;height:6px;background:#314b3e;border-radius:50%}.new-pieces>button{display:flex;align-items:center;gap:15px;margin-top:15px;text-align:left;padding:0}.footer-actions{display:flex;gap:24px}.footer-actions button{font-size:10px;color:var(--muted);padding:8px 0}.asset-progress{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:12px;color:var(--muted);z-index:2;pointer-events:none}.piece-tooltip{position:absolute;top:15px;left:10px;z-index:5;background:#f7f2e7;border:1px solid var(--line);box-shadow:0 8px 24px #293b3220;border-radius:4px;padding:15px;width:210px;pointer-events:none}.piece-tooltip strong{font-size:14px;font-weight:500}.piece-tooltip .mini-board{margin-top:12px;width:100px}.piece-tooltip p{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:0}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;background:#293b32;color:#fff7e7;padding:15px 22px;border-radius:4px;font-size:14px;box-shadow:0 5px 25px #293b3220;z-index:30;max-width:calc(100vw - 40px);width:max-content}.toast.show{opacity:1;transform:translate(-50%)}dialog{background:#f4eee1;color:var(--ink);border:1px solid #c6c7b7;border-radius:7px;box-shadow:0 25px 120px #1b251d45;padding:35px;width:min(680px,calc(100vw - 32px));max-height:calc(100vh - 50px);overflow-y:auto}dialog::backdrop{background:#26352955;backdrop-filter:blur(4px)}dialog h2{font-size:32px;letter-spacing:-.04em;line-height:1.2;font-weight:500;margin:12px 0 18px}dialog p{font-size:14px;line-height:1.75;color:#666e5e}dialog h3{font-size:18px;font-weight:500;letter-spacing:-.025em;margin:0 0 10px}.close{position:absolute;right:13px;top:9px;padding:8px;font-size:26px;color:var(--muted);line-height:1}.rule-piece{display:grid;grid-template-columns:115px 1fr;gap:25px;border-top:1px solid var(--line);padding-top:23px;margin-top:23px}.rule-piece h3 span{float:right;color:var(--gold);font-size:14px}.rule-piece .mini-board{width:115px}.rule-piece p{margin:6px 0;font-size:13px}.charge-rule{background:#e8e3cf;border-left:3px solid var(--gold);padding:20px 23px;margin:25px 0}.charge-rule p{margin:8px 0;font-size:13px}dialog details{border-top:1px solid var(--line);padding:15px 0}dialog summary{cursor:pointer;font-size:14px}dialog details p{font-size:13px}.action-dialog{width:min(510px,calc(100vw - 32px))}.action-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.action-options>button{margin-top:20px;padding:15px;justify-content:center}.piece-detail{display:flex;gap:25px;align-items:flex-start}.piece-detail .mini-board{margin-top:6px}.piece-detail p{margin-top:0}.promotion-dialog{width:min(590px,calc(100vw - 32px))}.promotion-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.promotion-options button{border:1px solid #b5b69f;border-radius:3px;padding:8px 4px 12px;font-size:12px}.promotion-options button:hover{background:#e3e2cc}.promotion-options img{display:block;width:100%;aspect-ratio:1;object-fit:contain}.preferences-dialog{width:min(460px,calc(100vw - 32px))}.preferences-dialog label{display:flex;align-items:center;gap:13px;padding:15px 0;font-size:15px}.preferences-dialog input{width:18px;height:18px;accent-color:#293b32}.preferences-dialog p{margin:0 0 8px 31px;font-size:12px}.keyboard-board{padding:0 0 15px;color:var(--muted)}.keyboard-board>summary{font-size:11px;cursor:pointer}.keyboard-board>p{font-size:12px}.keyboard-board[open]{position:relative;z-index:4}#accessible-board{max-width:440px;border:5px solid #614932}#accessible-board [role=row]{display:grid;grid-template-columns:repeat(8,1fr)}#accessible-board button{aspect-ratio:1;position:relative;font-size:22px}#accessible-board button.light{background:#d8c7a5}#accessible-board button.dark{background:#94744f}#accessible-board button.selected{box-shadow:inset 0 0 0 3px #a94726}#accessible-board button.destination:after{content:"○";position:absolute;right:3px;top:0;font-size:16px}#accessible-board small{position:absolute;bottom:2px;left:3px;font-size:9px;opacity:.7}.engine-error{font-size:12px;color:var(--rust)}.high-contrast{--muted: #49543f}.high-contrast #accessible-board button.light{background:#fff4d4}.high-contrast #accessible-board button.dark{background:#725a32;color:#fff4d4}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-width:1050px){.game-layout{display:flex;flex-direction:column;max-height:none;min-height:auto}.board-panel{border-right:0;padding-right:0}.board{height:520px;min-height:520px;flex:auto}.side-panel{border-top:1px solid var(--line);padding:25px 0}.setup{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.setup>.eyebrow,.setup>h2,.setup>p{grid-column:1}.setup h2 br{display:none}.setup h2{font-size:32px}.setup>label,.setup>.segmented,.setup>.difficulty{grid-column:2}.setup>label:first-of-type{grid-row:1}.setup>.segmented{grid-row:2}.setup>label:last-of-type{grid-row:3;align-self:end}.setup>.difficulty{grid-row:4/7}.setup>.primary,.setup>.secondary{grid-column:1}.setup>.primary{align-self:start;margin-top:0}.setup>.new-pieces{grid-column:1;border:0;margin:0;padding-top:20px}.new-pieces>button{margin-top:12px}.game-status h2{font-size:28px}.game-status .opponent-line,.shield-states{max-width:420px}.move-list{height:175px}.game-note{min-height:60px}.play-actions,.quiet-actions{max-width:500px}.board-heading{padding-top:25px}.view-controls>span:first-child{display:block}.selected-help .help-content{max-width:500px}.help-content p{font-size:14px}.side-panel:has(.game-status){display:grid;grid-template-columns:1fr 1fr;gap:0 25px;align-items:start}.game-status,.shield-states,.selected-help,.game-note,.captured-row{grid-column:1}.move-list-heading{grid-column:2;grid-row:1;margin-top:0}.move-list{grid-column:2;grid-row:2/6;height:250px}.play-actions,.result-actions{grid-column:2;grid-row:6;margin:0;padding-top:10px}.quiet-actions{grid-column:2;grid-row:7}.result-actions .primary{margin-top:0}.shield-states{margin-top:15px;padding:14px 0}}@media(max-width:600px){.setup{display:block}.difficulty{grid-template-columns:repeat(3,1fr)}.setup>.primary{margin-top:20px}.setup>.new-pieces{display:none}.board{height:390px;min-height:390px;margin-top:0}.board-heading h1{font-size:25px}.view-controls>span:first-child{display:none}.side-panel:has(.game-status){display:block}.move-list{height:190px}.move-list-heading{margin-top:20px}.play-actions{margin-top:15px;padding-top:15px}.quiet-actions{padding-top:10px}.rule-piece{grid-template-columns:80px 1fr;gap:16px}.rule-piece .mini-board{width:80px}dialog{padding:28px 20px}dialog h2{font-size:28px}.rule-piece p,.charge-rule p{font-size:13px}.promotion-options{gap:5px}.footer-actions{gap:14px}.collection{display:none}.piece-detail{gap:15px}.piece-detail .mini-board{width:85px;flex-basis:85px}footer>span{font-size:8px;letter-spacing:.07em}}.game-layout:has(.keyboard-board[open]){max-height:none}.view-controls button,.play-actions button,.secondary,.primary,.segmented button,.game-note,.help-content p,.move-row,.new-pieces strong{font-size:.875rem}.new-pieces p span,.difficulty span{font-size:.75rem}
