:root{color-scheme:light;--ink:#343932;--muted:#707265;--gold:#b99a58;--paper:#ece7d9;--line:#cfc9b8;--green:#577862;--dark:#252d2d;font-family:'Optima','Palatino Linotype','Hiragino Mincho ProN','Songti SC',serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#252d2d}button,select,input{font:inherit}button,select{cursor:pointer}button{color:inherit;border:1px solid var(--line);background:transparent;border-radius:3px;padding:10px 14px;transition:background .18s,box-shadow .18s}button:hover:not(:disabled){background:#c7bc9d33}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #357b84;outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}button.active{background:#dcd4bc;border-color:#9b864f}a{color:inherit;text-decoration:none}.app-shell{max-width:1660px;margin:auto;background:var(--paper);min-height:100vh;background-image:radial-gradient(ellipse at 75% 5%,#fff9e87a,transparent 55%),repeating-linear-gradient(3deg,#98856304 0 1px,transparent 1px 4px)}.masthead{height:93px;display:flex;align-items:center;padding:0 42px;gap:22px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;min-width:225px}.brand b{display:block;font-size:23px;letter-spacing:4px;font-weight:500}.brand small{display:block;letter-spacing:2.1px;font-size:9px;margin-top:5px}.sigil{font-size:36px;color:#8e733b;border:1px solid #a38a52;padding:0 10px;line-height:49px;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}.edition{flex:1;color:var(--muted);font-size:12px;letter-spacing:2px}.language{display:flex;align-items:center;gap:7px}.language select{border:0;background:transparent;font-size:12px;color:var(--ink);padding:10px}.workspace{display:grid;grid-template-columns:208px minmax(0,1fr)}.sidebar{padding:40px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column}.nav-heading{font-size:11px;letter-spacing:3px;color:#828375;padding:0 14px;margin-bottom:22px}.nav{display:flex;align-items:center;gap:12px;text-align:left;border:0;margin-bottom:9px;padding:15px 11px;font-size:13px}.nav>span{font-size:21px}.nav small{font-size:9px;margin-left:auto;opacity:.55}.nav.active{background:#d9d3bd;border-left:2px solid #8d784c}.sidebar-bottom{margin-top:auto;padding:70px 14px 32px;color:#8a8b7b}.compass{font-size:65px;color:#b5ad91}.sidebar-bottom p{line-height:1.9;font-size:18px}.sidebar-bottom small{font-size:10px}main{padding:34px 38px 16px;min-width:0}.page-title{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:10px;letter-spacing:3px;color:#8e7951;margin:0 0 10px}h1{font-size:32px;letter-spacing:4px;font-weight:500;margin:0 0 9px}.subtitle{font-size:12px;color:var(--muted);margin:0}.chapter{font-size:38px;color:#b6a579;display:flex;align-items:center;gap:12px}.chapter span{font-size:11px;writing-mode:vertical-rl;letter-spacing:4px}.prototype-note{font:11px/1.7 system-ui,sans-serif;color:#746d5c;border-left:2px solid #ad975f;padding:5px 10px;margin:20px 0 19px;background:#ded5bc38}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 277px;gap:27px}.board-column{min-width:0;max-width:720px;width:100%;margin:auto}.player-strip{display:flex;align-items:center;gap:12px;padding:12px 3px}.player-strip strong{font-size:14px;font-weight:500;letter-spacing:2px}.player-strip small{display:block;font-size:9px;letter-spacing:1.5px;margin-top:4px;color:#7b7d70}.faction-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#3a4649;color:#c2ced3;font-size:25px;border:1px solid #7a8587}.sun{background:#e6d5ad;color:#80663b;border-color:#b39a67}.side-label,.turn{margin-left:auto;font-size:10px;letter-spacing:2px;color:#6d7063}.turn{display:flex;align-items:center;gap:7px}.turn i{width:5px;height:5px;background:#708364;border-radius:50%}.board-frame{position:relative;padding:16px 16px 22px 24px;background:linear-gradient(110deg,#82633e,#b39564 28%,#85633e 62%,#b59966);border:2px solid #6b5135;box-shadow:0 3px 0 #4e3e2a,0 8px 0 #867150,0 18px 25px #42321e29,inset 0 0 0 3px #c4ab7e}.board-frame:after{content:'';pointer-events:none;position:absolute;inset:7px;border:1px solid #ddc59066}#board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;box-shadow:0 0 0 2px #59472e;position:relative;z-index:1}.square{border:0;border-radius:0;padding:0;aspect-ratio:1;position:relative;display:grid;place-items:center;min-width:0;background:#ddc89e;background-image:repeating-linear-gradient(8deg,transparent 0 7px,#7c60380a 8px 9px)}.square.dark{background-color:#839083;background-image:repeating-linear-gradient(8deg,transparent 0 9px,#2b40300c 10px 11px)}.square:hover:not(:disabled){background-color:#bcc3a3}.square.selected{box-shadow:inset 0 0 0 3px #e4c66a;background-color:#b9b489}.square.target:after{content:'';width:18%;height:18%;border-radius:50%;background:#325b43bd;box-shadow:0 0 0 5px #f4edce33;position:absolute;z-index:3}.square.capture:after{content:'';position:absolute;inset:4px;border:3px solid #b86949;border-radius:50%;z-index:3}.square.in-check{box-shadow:inset 0 0 0 3px #b95842;background:#c69b82}.square.in-check:after{content:'!';position:absolute;right:3px;top:2px;background:#ae4e3f;color:#fff;border-radius:50%;font:700 10px/17px system-ui;width:17px;height:17px;z-index:4}.square .piece-sprite{height:96%;width:65%;position:absolute;bottom:4%;z-index:2;pointer-events:none}.piece-sprite{background-image:url('assets/cat-dog-miniatures-v01.png');background-size:600% 200%;background-repeat:no-repeat;filter:drop-shadow(1px 4px 2px #1b1b1b44);background-position:calc(var(--col)*20%) calc(var(--row)*100%)}.piece-label{position:absolute;bottom:1px;right:2px;font:700 8px/12px system-ui;min-width:13px;text-align:center;background:#f6e7c7e6;color:#4b493a;border-radius:2px;z-index:4;padding:0 2px}.piece-label.black{background:#2b3746e8;color:#e1e7e9}.rank-labels{position:absolute;left:6px;top:16px;bottom:22px;display:grid;grid-template-rows:repeat(8,1fr);font:9px system-ui;color:#eee0c0}.rank-labels span{align-self:center}.file-labels{display:grid;grid-template-columns:repeat(8,1fr);position:absolute;bottom:5px;left:24px;right:16px;text-align:center;font:9px system-ui;color:#f1e3c7}.legend{display:flex;justify-content:center;gap:18px;padding:14px 0;font:10px system-ui;color:#707064}.legend>span{display:flex;gap:5px;align-items:center}.legend i{width:10px;height:10px;display:inline-block}.selected-key{border:2px solid #be9b3d}.move-key{background:#557c60;border-radius:50%;transform:scale(.65)}.capture-key{border:2px solid #b86949;border-radius:50%}.check-key{background:#b95842;border-radius:2px}.board-tools{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:13px}.board-tools button{flex:1;font-size:11px;min-height:39px}.detail-column{padding-top:10px}.parchment{padding:22px;background:#e5dfcc;border:1px solid #cfc3a7;box-shadow:0 3px 10px #67563808}.card-kicker{font-size:10px;letter-spacing:2px;color:#8c754b}.mission h2{font-size:19px;font-weight:500;line-height:1.5;margin:13px 0}.mission p{font-size:11px;line-height:1.9;color:#6d6c5d;min-height:42px}.state-switch{display:flex;flex-wrap:wrap;gap:5px}.state-switch button{font-size:10px;padding:7px 8px}.state-switch button:last-child{flex:1}#status{font-size:11px;line-height:1.7;color:#656d53;margin-top:12px;min-height:19px}.specimen{margin-top:18px;background:#2e3838;color:#e3decf;position:relative;overflow:hidden;border:1px solid #495150}.specimen-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;padding:18px 19px;color:#b7bcab}.showcase-halo{height:202px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 75%,#bac0a738,transparent 65%)}.large{height:222px;width:112px;z-index:1}.specimen-caption{padding:0 22px 22px}.tag{font:9px/1.8 system-ui;letter-spacing:2px;color:#baab7c}.specimen-caption h2{font-size:21px;font-weight:500;letter-spacing:2px;margin:5px 0 9px}.specimen-caption p{font-size:11px;line-height:1.8;color:#b4baad;margin-bottom:14px}.text-button{font-size:10px;border:0;border-bottom:1px solid #727a64;padding:0 0 5px;color:#d0c39c}.notation{margin-top:19px;border-top:1px solid var(--line);padding-top:14px;font-size:11px}.notation summary{cursor:pointer;letter-spacing:1px}.notation ol{padding-left:22px;font:11px/2 system-ui}.small-note{font:10px/1.8 system-ui;color:#818273}footer{display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:1.5px;color:#8c8c7a;border-top:1px solid var(--line);padding-top:14px;margin-top:27px}.secondary-view{min-height:610px}.secondary-view h2{font-size:27px;font-weight:500}.secondary-view p{font-size:13px;line-height:1.8}.duel-options{display:flex;gap:20px;margin:30px 0}.duel-options label{display:grid;gap:10px}.duel-options select{padding:13px;background:var(--paper);border:1px solid var(--line);min-width:160px}.primary{background:#34483c;color:#eee2c5}.collection-header{display:flex;align-items:center;justify-content:space-between;gap:14px}#collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.collection-card{background:#ddd5bd;display:flex;flex-direction:column;align-items:center;padding:16px 8px}.collection-card.dusk{background:#384343;color:#e6e1d2}.collection-card .piece-sprite{width:88px;height:176px}.collection-card strong{font-size:16px;font-weight:500;margin-top:9px}.collection-card small{font:10px system-ui;margin-top:7px;opacity:.75}dialog{max-width:430px;width:calc(100% - 32px);background:#e8e0cc;border:1px solid #a38b59;padding:25px 32px;text-align:center;box-shadow:0 24px 100px #0007;color:var(--ink)}dialog::backdrop{background:#172225b8;backdrop-filter:blur(4px)}#close-dialog{position:absolute;right:10px;top:10px;border:0;font-size:26px;z-index:2}#dialog-piece{width:145px;height:290px;margin:auto;transform:scale(var(--zoom,1));transform-origin:50% 70%}dialog h2{font-weight:500;font-size:26px}dialog p{font-size:13px;line-height:1.8}.zoom-label{display:flex;gap:15px;justify-content:center;font-size:12px}input{accent-color:#8b7750}[hidden]{display:none!important}
@media(min-width:1500px){main{padding-left:55px;padding-right:55px}.game-layout{grid-template-columns:minmax(0,720px) 310px;gap:40px}.showcase-halo{height:250px}.large{height:270px;width:135px}}
@media(max-width:1150px){.workspace{grid-template-columns:165px minmax(0,1fr)}.sidebar{padding:30px 12px}.game-layout{grid-template-columns:minmax(0,1fr) 232px;gap:18px}main{padding:27px 24px 15px}.parchment{padding:17px}.masthead{padding:0 25px}.brand{min-width:190px}.showcase-halo{height:178px}.large{height:195px;width:98px}.mission h2{font-size:17px}}
@media(max-width:950px){.workspace{grid-template-columns:1fr}.sidebar{border:0;border-bottom:1px solid var(--line);padding:7px 24px;flex-direction:row;gap:15px}.nav{margin:0;padding:10px 14px;flex:1}.nav-heading,.sidebar-bottom{display:none}.nav.active{border-left:0;border-bottom:2px solid #8d784c}.masthead{height:76px}.game-layout{grid-template-columns:minmax(0,1fr) 250px}.brand b{font-size:20px}.edition{font-size:10px}}
@media(max-width:680px){.masthead{height:70px;padding:0 17px;gap:5px}.brand{gap:10px;min-width:0;flex:1}.brand b{font-size:18px;letter-spacing:3px}.brand small{font-size:7px;letter-spacing:1.6px}.sigil{font-size:25px;line-height:37px;padding:0 8px}.edition{display:none}.language select{font-size:10px;padding:8px 0}.sidebar{padding:6px 13px;gap:6px}.nav{justify-content:center;gap:6px;font-size:11px;padding:10px 4px}.nav span{font-size:16px}.nav small{display:none}main{padding:23px 16px 16px}.page-title h1{font-size:27px;letter-spacing:3px}.eyebrow{font-size:8px;letter-spacing:2px}.subtitle{font-size:10px}.chapter{font-size:29px}.prototype-note{font-size:10px;margin:16px 0 7px}.game-layout{display:flex;flex-direction:column;gap:14px}.board-column{max-width:510px}.board-frame{padding:12px 11px 19px 20px}.rank-labels{top:12px;bottom:19px;left:5px;font-size:8px}.file-labels{left:20px;right:11px;font-size:8px;bottom:4px}.player-strip{padding:11px 2px}.player-strip strong{font-size:12px}.player-strip small{font-size:8px}.faction-icon{width:29px;height:29px;font-size:21px}.piece-label{font-size:7px;line-height:10px;min-width:10px;padding:0 1px;right:1px}.square.selected{box-shadow:inset 0 0 0 2px #efd27c}.square.capture:after{inset:2px;border-width:2px}.legend{font-size:9px;gap:15px;padding:12px 0}.board-tools button{min-height:43px}.detail-column{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:0}.mission{grid-column:1/-1}.mission h2{font-size:20px;margin:10px 0 6px}.mission p{min-height:0}.state-switch button{flex:1;font-size:10px}.specimen{margin:0}.specimen-top{font-size:8px;letter-spacing:0;padding:14px 12px}.showcase-halo{height:163px}.large{height:180px;width:90px}.specimen-caption{padding:0 13px 16px}.specimen-caption h2{font-size:18px}.specimen-caption p{font-size:10px}.notation{margin:0;padding:13px;font-size:11px;background:#e2dbc7;border:1px solid #cec5ad}footer{font-size:7px;letter-spacing:0;line-height:1.7}.secondary-view{min-height:470px}.collection-header{align-items:start}.collection-header h2{font-size:23px}.collection-header p{font-size:11px}.collection-header button{font-size:10px;white-space:nowrap}#collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.collection-card .piece-sprite{width:78px;height:156px}.collection-card strong{font-size:15px}.duel-options{flex-direction:column}}
@media(max-height:520px) and (min-width:681px){.masthead{height:55px}.sidebar{padding:0 15px}.nav{padding:7px 12px}.page-title,.prototype-note{display:none}main{padding:8px 20px}.game-layout{grid-template-columns:minmax(0,330px) minmax(0,1fr);gap:25px;justify-content:center}.board-column{max-width:330px}.player-strip{padding:5px 0}.player-strip small{display:none}.faction-icon{width:22px;height:22px;font-size:17px}.player-strip strong{font-size:11px}.detail-column{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0}.mission{padding:13px}.mission h2{font-size:16px}.specimen{margin:0}.showcase-halo{height:128px}.large{height:145px;width:73px}.specimen-caption{padding:0 13px 12px}.specimen-caption h2{font-size:17px}.notation{grid-column:1/-1;margin:0}.legend{padding:8px 0}.board-tools{padding-top:6px}.board-tools button{padding:7px}.collection-card .piece-sprite{height:130px;width:65px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Source art is RGB on white. Multiply is a rendering treatment, not alpha extraction. */
.piece-sprite{mix-blend-mode:multiply;aspect-ratio:var(--ratio);width:auto!important}.square .piece-sprite{width:auto;max-width:94%;height:96%}.specimen{background:#d7d0b8;color:#343b34;border-color:#bfb397}.specimen-top{color:#75765f}.specimen-caption p{color:#6d705e}.specimen .tag{color:#8e7440}.specimen .text-button{color:#776235}.showcase-halo{background:radial-gradient(ellipse at 50% 75%,#fff7dfbb,transparent 68%)}.collection-card.dusk{background:#c5cbd0;color:#2d3942}#dialog-piece{height:290px;margin:auto}
/* Avoid casting a rectangle from the source artwork's opaque white background. */
.piece-sprite{filter:contrast(1.04)}
/* Original chamber artwork supplies the ruins and candlelight outside the readable board. */
.page-title{min-height:138px;padding:24px 28px;background:linear-gradient(90deg,#1b272bef 0%,#1b272b8c 46%,#1822240a 80%),url('assets/archive-chamber.png') center 43%/cover;border:1px solid #756747;color:#f0e7d1;box-shadow:inset 0 0 0 4px #c7af7419}.page-title .eyebrow{color:#cfb87d}.page-title .subtitle{color:#d1ccbc}.page-title .chapter{color:#e1c886}.page-title h1{text-shadow:0 2px 8px #0007}
@media(max-width:680px){.page-title{min-height:116px;padding:18px 17px;background-position:center 40%}.page-title .subtitle{font-size:10px;max-width:235px;line-height:1.7}.page-title h1{font-size:25px}.chapter{display:none}}
@media(max-height:520px) and (min-width:681px){.page-title{display:none}}
#game-status{font:12px/1.7 system-ui;color:#4b624e;min-height:26px;padding:2px 0 6px}.extra-tools{display:flex;gap:8px;margin-top:9px}.extra-tools button{flex:1;font-size:10px;padding:8px}.square.last-move{background-image:linear-gradient(#cfb54d29,#cfb54d29)}#puzzle-controls label{font-size:10px;color:#767260;display:block;margin:12px 0 7px}#puzzle-select{background:#f0e8d4;border:1px solid #b9aa84;padding:10px 7px;color:#3d4539;width:100%;font-size:11px}.progress-track{height:4px;background:#c8bea5;margin-top:15px}#progress-fill{height:100%;background:#698366;transition:width .2s}#progress-label{min-height:0!important;margin:7px 0;font-size:10px}#next-puzzle{width:100%;font-size:11px}#moves{max-height:180px;overflow:auto;padding:0;display:grid;grid-template-columns:repeat(2,1fr);list-style:none;gap:0 10px}.locked .piece-sprite{filter:grayscale(1);opacity:.35}.collection-card:disabled{opacity:1;cursor:default}.collection-card small{line-height:1.5}.model-tabs{display:flex;gap:7px;justify-content:center;margin:12px 0}.model-tabs button{font-size:11px}#model-view{height:320px;width:100%;touch-action:none}#model-view canvas{display:block;touch-action:none}#model-tools{display:flex;justify-content:center;gap:12px;margin-bottom:14px}#promotion-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}#promotion-options button{display:flex;align-items:center;flex-direction:column;padding:8px 2px}#promotion-options .piece-sprite{height:100px}#promotion-options span:last-child{font-size:16px}#promotion-dialog h2{font-size:20px;line-height:1.5}#unlocked-count{color:#79735b;font-size:12px}#resume-duel{margin:12px}#collection-dialog{max-height:95dvh;overflow:auto}.collection-card strong{line-height:1.5;text-align:center}.duel-options select{width:100%}#status{overflow-wrap:anywhere}#page-title{letter-spacing:2px}.player-strip strong{letter-spacing:.8px}#game-status{overflow-wrap:anywhere}
@media(max-width:680px){.extra-tools button{min-height:40px}.prototype-note{margin-bottom:10px}.page-title{min-height:95px}#game-status{font-size:11px}.player-strip strong{font-size:11px}.side-label,.turn{letter-spacing:0;font-size:9px}.turn{max-width:115px;line-height:1.5}.detail-column{grid-template-columns:1fr 1fr}.mission{grid-column:1/-1}#model-view{height:290px}.collection-header{flex-wrap:wrap}.duel-options select{min-width:0}.extra-tools{flex-wrap:wrap}#promotion-options .piece-sprite{height:85px}}
@media(max-height:520px) and (min-width:681px){#game-status{font-size:10px;min-height:20px}.detail-column .mission{min-width:0}#model-view{height:220px}#puzzle-select{font-size:10px}.extra-tools button{padding:7px 4px}#collection-dialog{max-width:580px}}
/* Web release: readable controls while keeping the approved board composition. */
:root{font-size:16px}.nav{font-size:14px}.prototype-note,.subtitle{font-size:13px}.mission p,.specimen-caption p,.notation,.small-note{font-size:13px;line-height:1.8}.board-tools button,.extra-tools button,.state-switch button,.text-button{font-size:13px;min-height:44px}.card-kicker,.specimen-top,.tag,.legend,.player-strip small,.turn,.side-label{font-size:12px}.player-strip strong{font-size:15px}.parchment h2{line-height:1.5}#puzzle-select{font-size:14px;min-height:44px}#puzzle-controls label,#progress-label,#next-puzzle,#unlocked-count{font-size:13px}#game-status,#status{font-size:14px}#moves{font-size:14px}.language select{font-size:14px}.collection-card small{font-size:12px}.collection-header p,.duel-options label{font-size:14px}footer{font-size:11px;flex-wrap:wrap;letter-spacing:.5px}#connection-status{color:#526953}.model-tabs button,#model-tools button{font-size:14px;min-height:44px}.sidebar-bottom small{font-size:12px}.edition{font-size:13px}.duel-options select{min-height:44px}.piece-label{font-size:10px;line-height:14px;min-width:14px}
@media(max-width:680px){.nav{font-size:12px;min-height:44px}.language select{font-size:12px}.page-title{min-height:86px;padding:13px}.page-title .subtitle{font-size:12px;line-height:1.6}.prototype-note{font-size:12px;line-height:1.6;margin:10px 0}.player-strip strong{font-size:12px}.player-strip small{font-size:10px;letter-spacing:0}.turn,.side-label{font-size:10px}.legend{font-size:11px;gap:10px}.piece-label{font-size:8px;line-height:11px;min-width:11px}.detail-column{grid-template-columns:1fr}.mission,.specimen,.notation{grid-column:1}.specimen{display:grid;grid-template-columns:115px 1fr}.specimen-top{grid-column:1/-1;padding:13px}.showcase-halo{height:180px}.specimen-caption{padding:0 16px 16px}.specimen-caption h2{font-size:21px}.specimen-caption p{font-size:13px}.board-tools button,.extra-tools button{font-size:12px;min-height:44px}main{padding:14px 12px}.mission p{font-size:14px}#status{font-size:13px}.notation{padding:16px}.small-note{font-size:12px}.collection-header p{font-size:13px}.collection-card strong{font-size:16px}.collection-card small{font-size:12px}footer{font-size:10px;line-height:1.6}.turn{max-width:105px}#game-status{font-size:12px}.secondary-view .parchment{padding:20px}}
@media(max-height:520px) and (min-width:681px){.detail-column{display:flex;flex-direction:column}.specimen{display:none}.mission p{font-size:13px}.nav{font-size:12px}.player-strip strong{font-size:12px}.player-strip small{display:none}.turn,.side-label{font-size:10px}#game-status{font-size:12px}.board-tools button,.extra-tools button{font-size:12px}.notation{font-size:12px}}

.portal-back{display:block;max-width:1440px;margin:0 auto;padding:12px 24px;color:#eee3ce;min-height:44px;box-sizing:border-box}
.store-strip{max-width:1440px;margin:0 auto;padding:0 24px 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#eee3ce;font:13px/1.5 system-ui,sans-serif}.store-strip span{letter-spacing:1.5px;text-transform:uppercase;color:#cbb98d}.store-strip a{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid #b89b5a;border-radius:4px;background:#3a3426;color:#fff1ce}.store-strip a:hover{background:#5a4826}

/* Prominent, reachable puzzle navigation on both board and mission card. */
button.next-puzzle-action,#next-puzzle{display:block;width:100%;min-height:54px;margin:14px 0;padding:14px 18px;background:#edc46d;color:#242015;border:2px solid #936820;border-radius:10px;font-size:17px;font-weight:800;line-height:1.35;box-shadow:0 4px 0 #715327;white-space:normal}
button.next-puzzle-action:hover{background:#ffda87}
button.next-puzzle-action:focus-visible{outline:3px solid #226b76;outline-offset:4px}
button.next-puzzle-action.achieved{border-color:#376846;box-shadow:0 4px 0 #376846}
button.next-puzzle-action[hidden]{display:none}

/* Opponent trail stays visible until their next move, including while thinking. */
.square.last-move{background-image:linear-gradient(#4ac4dd66,#4ac4dd66)}
.move-trace{position:absolute;left:3px;top:3px;width:21px;height:21px;display:grid;place-items:center;background:#123f4a;color:#fff;border-radius:4px;font:700 17px/1 system-ui;z-index:4;pointer-events:none}
.opponent-from .move-trace{background:#fff;color:#123f4a;border:1px dashed #123f4a}
#opponent-last-move{margin:8px 0;padding:9px 12px;background:#d8edf0;border-left:4px solid #236575;color:#173f48;font:600 13px/1.5 system-ui;overflow-wrap:anywhere}
@media(max-width:480px){.move-trace{width:16px;height:16px;font-size:13px;left:2px;top:2px}}
