:root{--panel:#2a1b13;--panel-2:#3b271a;--muted:#d7bea0;--line:#fff3da24;--drive:#ff5555;--finance:#ffd43b;--builder:#38d6b5}
.wrap{max-width:1250px}.top{min-height:72px}.brand{font-size:13px}.header-season{font:12px var(--mono);color:var(--muted);margin-left:auto}.top>.btn{font-size:10px}.game-heading{display:flex;justify-content:space-between;align-items:center;padding:24px 0 20px}.game-heading h1{font:clamp(22px,3vw,32px)/1.5 var(--pixel);color:var(--yellow);letter-spacing:-.04em;margin:0}.game-heading p{margin:7px 0 0;color:var(--muted);font-size:14px}.season-clock{text-align:right;display:grid;gap:6px}.season-clock span{font:11px var(--mono);color:var(--green)}.season-clock strong{font:15px var(--mono)}.tab-bar{display:flex;border-bottom:1px solid var(--line);gap:12px}.tab-bar button{background:none;color:var(--muted);border:0;border-bottom:3px solid transparent;padding:16px 24px;font:14px var(--mono)}.tab-bar button[aria-selected=true]{color:var(--yellow);border-color:var(--yellow);background:#ffc72c0a}.tab-bar button:hover{color:var(--cream)}.tab-panel:focus{outline:none}.status{min-height:0;margin:12px 0;font-size:12px}.status:empty{margin:10px 0}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;align-items:start}.game-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr));aspect-ratio:1;gap:4px;background:#080604;border:5px solid #080604;border-radius:12px;overflow:hidden;box-shadow:0 7px 0 #38271a}.board-spaces{display:contents}.board-space{position:relative;min-width:0;border:0;background:color-mix(in srgb,var(--district) 14%,#fff3da);color:#21150e;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:20px 8px 9px;text-align:center;border-radius:2px}.space-band{position:absolute;top:0;left:0;right:0;height:13px;background:var(--district)}.board-space strong{font:800 clamp(11px,1vw,14px)/1.3 var(--sans);overflow-wrap:anywhere}.board-space small{font:10px/1.3 var(--mono);color:#5a422d}.space-mark{font:clamp(13px,1.5vw,23px) var(--pixel);color:#3e2417}.has-piece{box-shadow:inset 0 0 0 3px var(--district)}.has-piece small{font-weight:700;color:#16432f}.corner-space{background:#ffc72c;color:#251406}.corner-space strong{font:9px/1.5 var(--pixel)}.corner-space .space-band{display:none}.corner-space .space-mark{font-size:22px}.corner-space:nth-child(5){background:#c7a2ff}.board-space:hover{filter:brightness(1.06)}.board-space:focus-visible{outline:3px solid white;outline-offset:-5px;z-index:2}.board-center{grid-area:2/2/5/5;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg);padding:12px 10px}.board-title{font:clamp(13px,1.6vw,22px)/1.4 var(--pixel);color:var(--yellow);z-index:1;white-space:nowrap}.board-title small{display:block;text-align:center;font:10px var(--mono);letter-spacing:.2em;margin-top:5px;color:var(--muted)}.fries-stage{width:70%;min-height:0;max-height:68%;flex:1;position:relative;margin:0}.fries-stage img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;mix-blend-mode:normal}.peel-tab{background:#050505;color:#ffe9a8;border:1px dashed #ffe9a866;padding:11px 7px;right:9%;top:51%;font:9px var(--pixel);transform:rotate(-8deg);border-radius:2px 2px 9px 2px;min-height:32px}.peel-tab:disabled{opacity:.92}.board-center>.btn{padding:13px 22px;min-height:42px;font-size:10px}.board-price{color:var(--muted);font:11px var(--mono);margin-top:10px;text-align:center}.board-center>.sound{margin-top:8px;font-size:11px;padding:4px}.play-sidebar{display:grid;gap:18px}.shift-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px}.shift-card>.label{font-size:12px}.shift-card>#plays{font:38px var(--pixel);display:block;color:var(--yellow);margin:16px 0}.shift-card small{font:12px/1.6 var(--mono);display:block;color:var(--muted)}.shift-card>.btn{width:100%;margin-top:18px;font-size:10px}.holder-mini{border-top:1px solid var(--line);padding-top:17px;margin-top:21px}.holder-mini .label{font-size:11px}.holder-mini strong{display:block;font:15px var(--mono);margin:9px 0 4px}.district-summary h2{font:13px/1.5 var(--pixel);margin:5px 0 15px}.district-grid{grid-template-columns:1fr;gap:12px}.district-mini{padding:13px 15px;background:var(--panel);border:1px solid var(--line);border-left:5px solid var(--district);border-radius:7px}.district-mini>div:first-child{display:flex;justify-content:space-between;gap:12px;font:13px var(--mono);color:var(--district)}.district-mini strong{font-size:13px}.district-progress{display:flex;gap:5px;margin:10px 0}.district-progress i{height:5px;flex:1;background:#ffffff17;border-radius:2px}.district-progress .filled{background:var(--district)}.district-mini .btn{width:100%;padding:8px;font:12px var(--sans);background:none;border:0;box-shadow:none;color:var(--muted)}.district-mini .btn:enabled{color:var(--yellow);background:#ffc72c14}.ceo-strip{margin:0;padding:15px;display:block}.ceo-strip strong{font-size:13px}.ceo-strip p{font-size:12px}.ceo-strip .btn{width:100%;margin-top:10px;font-size:9px}.board-legend{display:flex;align-items:center;gap:23px;margin:22px 0 30px;font:12px var(--mono);flex-wrap:wrap}.board-legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:8px;background:currentColor}.drive{color:var(--drive)}.finance{color:var(--finance)}.builder{color:var(--builder)}.board-legend p{margin:0 0 0 auto;color:var(--muted)}.block{margin:28px 0}.section-heading{margin-bottom:22px}.section-heading h2{font-size:18px}.section-heading p:not(.eyebrow){font-size:13px}.pieces-grid{grid-template-columns:repeat(4,1fr)}.piece-card h3{font-size:14px;min-height:46px}.piece-card p{font-size:12px}.piece-card .btn{font-size:9px}.piece-card.unowned{opacity:.8}.piece-card .count{font-size:12px}.filters button{font-size:13px}.promo p,.chance-panel>p,.jackpot-panel>div>p:not(.eyebrow){font-size:14px}.promo .btn{font-size:10px}.promo-weight{font-size:27px!important}.label{font-size:12px}.odds-list>div{font-size:13px}.odds-list small,.fine{font-size:12px}.bonus-row p{font-size:14px}.bonus-row .btn{font-size:9px}.jackpot-numbers strong{font-size:23px}.basket p,.basket .asset{font-size:13px}summary{font-size:14px}details p{font-size:14px}table{font-size:13px}.steps p{font-size:14px}.steps article>span{font-size:23px}.demo-notice{position:static;border-radius:6px;font-size:12px;margin-top:12px}footer{font-size:12px;margin-top:26px}footer .text-link{font-size:12px}.escrow-panel{border:1px solid var(--orange);border-radius:10px;padding:22px;margin:22px 0;background:var(--panel)}.escrow-panel h2{font-size:16px}.escrow-panel>p{font-size:14px;color:var(--muted)}.escrow-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;border-top:1px solid var(--line)}.escrow-row small{display:block;color:var(--orange);font:13px var(--mono);margin-top:5px}.escrow-row .btn{font-size:9px}dialog label{font-size:13px}dialog .fine{font-size:12px}
@media(max-width:1000px){.play-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}.board-center{padding:8px}.board-center>.btn{font-size:8px;padding:10px 15px;min-height:35px}.board-price{font-size:9px}.board-title{font-size:16px}.board-title small{font-size:9px}.board-space{gap:4px;padding:16px 4px 7px}.corner-space strong{font-size:7px}.corner-space .space-mark{font-size:17px}.board-space strong{font-size:11px}.board-space small{font-size:9px}.board-center>.sound{font-size:10px;margin-top:4px}.peel-tab{font-size:7px;min-height:26px;padding:8px 5px}.shift-card{padding:17px}.shift-card>#plays{font-size:29px}.play-sidebar{gap:12px}.holder-mini{margin-top:15px;padding-top:12px}.board-legend{font-size:11px;gap:15px}.board-legend p{width:100%;margin:0}.district-mini{padding:10px 12px}.district-mini strong{font-size:12px}}
@media(max-width:760px){.wrap{padding-inline:14px}.top{min-height:64px;flex-wrap:nowrap;padding-block:12px;gap:12px}.brand{font-size:10px}.header-season{display:none}.game-heading{padding:20px 0 12px}.game-heading h1{font-size:22px}.game-heading p{font-size:13px}.season-clock span{font-size:9px}.season-clock strong{font-size:12px}.tab-bar{gap:0}.tab-bar button{padding:14px 12px;font-size:12px;flex:1}.play-layout{grid-template-columns:1fr}.game-board{gap:3px;border-width:4px;max-width:580px;width:100%;margin:auto}.board-center{padding:6px}.board-title{font-size:clamp(12px,3vw,18px)}.board-title small{font-size:8px;margin-top:3px}.fries-stage{width:75%}.board-center>.btn{font:700 12px var(--sans);min-height:33px;padding:8px 15px}.board-price{font-size:8px;margin-top:7px}.board-center>.sound{font-size:9px;margin-top:3px;padding:2px}.board-space{padding:13px 3px 5px;gap:4px}.board-space strong{font-size:clamp(9px,2.45vw,13px);line-height:1.2}.space-band{height:9px}.board-space small{font-size:clamp(7px,1.8vw,10px)}.corner-space strong{font:clamp(6px,1.5vw,9px)/1.6 var(--pixel)}.corner-space .space-mark{font-size:15px}.peel-tab{font-size:6px;min-height:23px;padding:7px 4px}.play-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.shift-card{height:100%}.shift-card>#plays{font-size:30px}.shift-card>.label,.holder-mini .label{font-size:10px}.shift-card small{font-size:11px}.shift-card>.btn{font-size:8px}.holder-mini strong{font-size:12px}.district-summary h2{font-size:11px}.district-mini{padding:9px 10px}.district-mini strong,.district-mini>div:first-child{font-size:11px}.district-mini .btn{font-size:10px;padding:4px}.district-grid{gap:9px}.district-progress{margin:7px 0}.ceo-strip{grid-column:1/-1;display:flex;align-items:center}.ceo-strip .btn{width:auto;margin:0 0 0 auto}.ceo-strip>div{flex:1}.board-legend{gap:14px;margin:18px 0;font-size:10px}.pieces-grid{grid-template-columns:repeat(2,1fr)}.filters{max-width:100%;width:100%;justify-content:space-between}.filters button{font-size:12px;padding:8px 12px}.section-heading h2{font-size:16px}.piece-card{padding:13px}.piece-card h3{font-size:13px}.piece-card p{font-size:11px}.promo{padding:19px}.jackpot-panel{padding:22px}.jackpot-numbers{gap:20px}.jackpot-numbers .label{font-size:10px}.bonus-row>div{flex-wrap:wrap}.odds-list{padding:15px}.odds-list>div{font-size:12px;gap:12px}.two-col{padding:22px 0}.routing{gap:15px}.board-center>.btn:hover{transform:none}.escrow-row{flex-wrap:wrap}.escrow-panel{padding:16px}.escrow-panel h2{font-size:14px}footer{font-size:11px;gap:17px}footer .text-link{font-size:11px}}

.escrow-alert{display:block;width:100%;text-align:left;border:1px solid var(--orange);background:#ff8a3d15;color:var(--cream);padding:12px 16px;border-radius:8px;font:13px var(--mono);margin:12px 0}

.ownership-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:#163d29;color:#fff7dc;border:2px solid #fff7dc;box-shadow:0 2px 0 #0003;border-radius:7px;min-width:54px;padding:4px 9px;font:800 17px/1 var(--sans);white-space:nowrap}
.ownership-badge>span{color:#86f7a9;font-size:15px}.has-piece{box-shadow:inset 0 0 0 4px var(--district)}
#result-use-chance{width:100%;font-size:10px;line-height:1.8;min-height:48px}#result-action-note{margin-bottom:0}
@media(max-width:760px){.ownership-badge{font-size:14px;min-width:40px;padding:3px 6px;border-width:1px;gap:4px;border-radius:5px}.ownership-badge>span{font-size:12px}.has-piece{box-shadow:inset 0 0 0 3px var(--district)}.has-piece .space-mark{display:none}.board-space{gap:3px}.peel-tab{min-width:44px;min-height:44px;background:#050505e8;font-size:8px;right:2%}.board-center>.btn{min-height:44px}.board-center>.sound{min-height:28px}.board-title small{display:none}.fries-stage{max-height:60%}.game-heading{gap:12px}.game-heading h1{font-size:clamp(17px,5.6vw,22px)}.tab-bar button{padding-inline:8px}.season-clock{min-width:0}.board-space strong{overflow-wrap:normal;hyphens:auto}}
@media(max-width:370px){.wrap{padding-inline:10px}.board-center{padding:4px}.board-title{font-size:11px}.board-price{font-size:7px}.board-space strong{font-size:9px}.ownership-badge{font-size:12px;padding:3px 5px;min-width:35px}.board-center>.sound{margin:0;font-size:8px}.board-center>.btn{padding:8px 10px}.top>.btn{font-size:7px;padding:10px}.brand{font-size:9px}}
@media(max-width:760px){.corner-space[data-piece] .space-mark{display:none}.corner-space[data-piece] strong{font:800 clamp(9px,2.45vw,12px)/1.2 var(--sans)}.corner-space[data-piece]{padding-top:9px}.board-center .fries-stage{width:90%}.result-mark{height:140px}dialog{padding:28px}dialog h2{font-size:16px}}
@media(max-width:370px){.board-space{padding-top:11px}.board-space strong,.corner-space[data-piece] strong{font-size:8px}.board-space small{font-size:7px}.ownership-badge{font-size:11px;padding:2px 5px}.board-price{font-size:6.5px}.board-center>.sound{min-height:22px}.board-title{font-size:10px}}
@media(max-width:370px){.corner-space:not([data-piece]){padding:5px 3px;gap:3px}.corner-space:not([data-piece]) .space-mark{font-size:12px}.corner-space:not([data-piece]) strong{font-size:6px}}

/* Align the touch target with the sticker inside the centered square artwork. */
.fries-stage{container-type:size}
.fries-stage .peel-tab{left:calc(50% + min(5.3cqw,5.3cqh));top:calc(50% + min(20cqw,20cqh));right:auto;width:min(19cqw,19cqh);height:min(20cqw,20cqh);min-width:44px;min-height:44px;transform:translate(-50%,-50%);background:transparent;border:0;box-shadow:none;color:transparent;padding:0;animation:none}
.fries-stage .peel-tab:focus-visible{outline:2px dashed var(--cream);outline-offset:2px}
.fries-stage .peel-tab:not(:disabled):hover{box-shadow:0 0 12px 4px #ffc72c99,0 0 24px 7px #ffc72c44}
.fries-stage .peel-tab.peeling{transform:translate(-30%,0) rotate(20deg);opacity:0}

/* District labels and collectible artwork. */
.piece-sprite{display:inline-block;flex:none;width:64px;aspect-ratio:25/29;background-image:url('assets/pieces-atlas.png');background-size:501.6% 432.4138%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;image-rendering:pixelated}
.board-space{padding-top:23px;gap:3px}
.space-band{height:19px;display:flex;align-items:center;justify-content:center;font:800 9px/1 var(--sans);text-transform:uppercase;letter-spacing:.04em;color:#241810}
.corner-space,.corner-space:nth-child(5){background:color-mix(in srgb,var(--district) 19%,#faf2e6)}
.corner-space .space-band{display:block;height:5px}
.corner-space strong{font:800 11px/1.2 var(--sans)}
.board-space>.piece-sprite{width:28px}
.board-space>strong{font-size:11px;line-height:1.15}
.board-space>.ownership-badge{position:absolute;bottom:5px;right:4px;min-width:30px;padding:3px 4px;font-size:11px;gap:2px}
.board-space>.ownership-badge>span{font-size:10px}
.board-space>small{font-size:8px}
.card-code{display:grid;place-items:center;min-height:94px;background:color-mix(in srgb,var(--accent) 9%,transparent)}
.card-code>.piece-sprite{width:72px}
.result-mark>.piece-sprite{width:120px}
@media(max-width:760px){
 .board-space{padding:17px 3px 3px;gap:1px}
 .space-band{height:14px;font-size:7px;letter-spacing:0}
 .board-space>strong,.corner-space[data-piece] strong{font-size:9px;line-height:1.1;position:relative;z-index:1}
 .board-space>.piece-sprite{width:clamp(22px,5.8vw,40px)}
 .board-space>small{display:none}
 .board-space>.ownership-badge{bottom:3px;right:2px;font-size:9px;min-width:24px;padding:2px 3px}
 .board-space>.ownership-badge>span{font-size:8px}
 .corner-space[data-piece]{padding-top:8px}
 .result-mark>.piece-sprite{width:100px}
}
@media(max-width:370px){.space-band{font-size:6px;height:12px}.board-space{padding-top:14px}.board-space>strong,.corner-space[data-piece] strong{font-size:8px}.board-space>.piece-sprite{width:18px}.board-space>.ownership-badge{font-size:8px;min-width:20px;padding:2px}.board-space>.ownership-badge>span{display:none}}

.piece-sprite.custom-sprite{aspect-ratio:1;background-size:contain;background-position:center}

/* Leave room for full district headers and larger collectible art. */
.board-space{padding:31px 5px 5px;gap:0;justify-content:center}
.space-band{height:26px;padding:2px 4px;box-sizing:border-box;white-space:normal;text-wrap:balance;font-size:9px;line-height:1.1}
.board-space>.piece-sprite{width:clamp(36px,4.6vw,56px);margin-top:7px}
.board-space>small{display:none}
.corner-space{padding-top:9px}
.result-mark{height:270px;position:relative;isolation:isolate;overflow:hidden;background-image:url('assets/district-scenes.png');background-size:300% 100%;background-position:0% center;border-color:#ffffff35}
.result-mark[data-scene="1"]{background-position:50% center}
.result-mark[data-scene="2"]{background-position:100% center}
.result-mark>.piece-sprite{width:190px;z-index:1;filter:drop-shadow(0 5px 2px #2a1c1740)}
@media(max-width:760px){
 .game-board{aspect-ratio:.88}
 .space-band{height:23px;font-size:clamp(6px,1.5vw,9px)}
 .board-space{padding:27px 3px 4px}
 .board-space>.piece-sprite{width:clamp(26px,7.5vw,48px);margin-top:5px}
 .corner-space[data-piece]{padding-top:8px}
 .result-mark{height:240px}
 .result-mark>.piece-sprite{width:165px}
}
@media(max-width:420px){.game-board{aspect-ratio:.75}.board-space>strong,.corner-space[data-piece] strong{font-size:8px}.board-space>.piece-sprite{width:clamp(27px,8.5vw,35px);margin-top:4px}.space-band{font-size:6px}.board-space>.ownership-badge{bottom:2px;right:2px}}

.result-mark[data-scene="2"]{background-image:url('assets/builder-scene-v2.png');background-size:cover;background-position:center}
.result-mark[data-scene^="special-"]{background-image:url('assets/special-scenes.png');background-size:300% 200%}
.result-mark[data-scene="special-0"]{background-position:0% 0%}
.result-mark[data-scene="special-1"]{background-position:50% 0%}
.result-mark[data-scene="special-2"]{background-position:100% 0%}
.result-mark[data-scene="special-3"]{background-position:0% 100%}
.result-mark[data-scene="special-4"]{background-position:50% 100%}
.result-mark[data-scene="special-5"]{background-position:100% 100%}
#result-jackpot{width:100%}

.fries-stage.ready-to-peel .peel-tab{outline:2px solid #fff1ac;outline-offset:3px;box-shadow:0 0 10px 4px #ffc72c88;animation:peel-glow 1.3s ease-in-out infinite}
@keyframes peel-glow{50%{box-shadow:0 0 22px 9px #ffc72cbb;outline-color:white}}
@media(prefers-reduced-motion:reduce){.fries-stage.ready-to-peel .peel-tab{animation:none}}

.result-mark[data-piece="4"]>.piece-sprite{width:250px;max-width:85%;transform:translateY(18px)}

.arcade-return{font:700 10px var(--sans);padding:8px 10px;margin-top:5px;text-decoration:none}

.result-mark[data-scene="2"]>.piece-sprite{transform:translateY(32px)}
.result-mark[data-scene="2"]{background-size:100% 100%}
.result-mark[data-scene="2"]>.piece-sprite{width:160px;transform:translateY(28px)}
@media(max-width:760px){.result-mark[data-scene="2"]>.piece-sprite{width:140px;transform:translateY(25px)}}

/* Canonical collectible artwork: the exact image referenced by NFT metadata. */
.result-mark:has(.nft-artwork){height:auto;aspect-ratio:1;background:none;display:block}
.result-mark>.nft-artwork{display:block;width:100%;height:100%;object-fit:contain}
#result-play-again{width:100%}
.result-mark:has(.nft-artwork){width:min(100%,40svh,360px);margin-inline:auto}

/* Unified navigation and viewport-conscious game layout. */
.game-site .game-header{position:sticky;top:0;z-index:20;background:#170f0af5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.game-site .top{min-height:64px;padding-block:8px;gap:18px;flex-wrap:nowrap}
.game-site #game-nav{display:flex;align-items:center;gap:18px;margin-left:auto;width:auto;font-size:12px}
.game-site .tab-bar{gap:2px;border:0}
.game-site .tab-bar button{font:12px var(--mono);padding:13px 12px;border-radius:5px;white-space:nowrap;min-height:44px}
.game-site .arcade-nav{font:11px var(--mono);color:var(--muted);white-space:nowrap;padding:12px 0}
.game-site .arcade-nav:hover{color:var(--yellow)}
.game-site .menu-toggle{display:none;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--cream);font:22px var(--sans);width:44px;height:44px;flex:none}
.game-site .game-heading{padding:12px 0;gap:16px}
.game-site .game-heading h1{font-size:22px;line-height:1.4}
.game-site .game-heading>div:first-child{display:flex;align-items:center;gap:18px}
.game-site .game-heading p{font-size:12px;margin:0}
.game-site .season-clock{display:flex;align-items:center;gap:12px}
.game-site .season-clock strong{font-size:12px}
.game-site .status:empty{display:none}
.game-site .status{margin:5px 0 9px}
.game-site .demo-notice{position:static;padding:6px;font-size:10px;margin-bottom:6px}
.game-site .play-layout{grid-template-columns:minmax(0,min(800px,calc(100svh - 165px))) minmax(230px,285px);gap:22px;justify-content:center}
.game-site .game-board{width:100%;container-type:inline-size;min-width:0}
.game-site .board-space>.piece-sprite{width:clamp(26px,7cqw,54px);margin-top:5px}
.game-site .board-space>strong{font-size:clamp(9px,1.7cqw,12px)}
.game-site .space-band{font-size:clamp(6.5px,1.3cqw,9px)}
.game-site .play-sidebar{gap:12px}
.game-site .shift-card{padding:14px 18px}
.game-site .shift-card>#plays{font-size:28px;margin:5px 0}
.game-site .holder-mini{margin-top:10px;padding-top:10px}
.game-site .district-summary h2{margin:0 0 10px;font-size:13px}
.game-site .district-mini{padding:8px 12px}
.game-site .district-progress{margin:6px 0}
.game-site .ceo-strip{margin-top:0;padding:12px;gap:8px}
.game-site .board-legend{margin:12px 0;font-size:10px;gap:16px;justify-content:center}
@media(min-width:761px){.game-site .game-board{min-width:500px}.game-site .play-layout{grid-template-columns:minmax(500px,min(800px,calc(100svh - 165px))) minmax(210px,285px)}.game-site .board-title{font-size:clamp(13px,3cqw,22px)}.game-site .board-center{padding:8px}.game-site .board-center>.btn{min-height:40px;padding:10px 25px;font-size:10px}.game-site .board-price{font-size:9px}.game-site .board-center>.sound{margin-top:3px}}
@media(max-width:1000px){
 .game-site .top{gap:12px}
 .game-site .top>#connect{margin-left:auto}
 .game-site .menu-toggle{display:block}
 .game-site #game-nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;margin:0;padding:12px 18px;background:#21160f;border-bottom:1px solid var(--line);box-shadow:0 12px 22px #0006}
 .game-site #game-nav.menu-open{display:flex;flex-direction:column;align-items:stretch;gap:8px}
 .game-site .tab-bar{display:grid;grid-template-columns:repeat(4,1fr)}
 .game-site .arcade-nav{text-align:center;min-height:44px;padding:14px}
 .game-site .game-heading p{display:none}
}
@media(max-width:760px){
 .game-site .top{min-height:60px;padding-block:7px;gap:8px}
 .game-site .brand{font-size:9px}
 .game-site .top>#connect{font-size:7px;min-height:44px;padding:10px;max-width:115px}
 .game-site .game-heading{padding:10px 0}
 .game-site .game-heading h1{font-size:17px}
 .game-site .season-clock{display:grid;gap:3px}
 .game-site .season-clock span{font-size:8px}
 .game-site .season-clock strong{font-size:10px}
 .game-site .play-layout{grid-template-columns:minmax(0,1fr);gap:16px}
 .game-site .game-board{max-width:530px;aspect-ratio:.88}
 .game-site .board-space{padding-top:28px}
 .game-site .corner-space{padding-top:7px}
 .game-site .space-band{height:23px}
 .game-site .board-space>.piece-sprite{width:clamp(25px,8.5cqw,44px);margin-top:4px}
 .game-site .board-space>strong{font-size:clamp(8px,2.35cqw,11px)}
 .game-site .space-band{font-size:clamp(6px,1.9cqw,8px)}
 .game-site .tab-bar{grid-template-columns:1fr 1fr}
 .game-site .board-legend{margin:10px 0}
}
@media(max-width:760px){.game-site .board-space{padding-top:25px;padding-bottom:2px}.game-site .corner-space{padding-top:7px}.game-site .board-space>.piece-sprite{width:clamp(23px,7.5cqw,40px);margin-top:3px}}
@media(max-width:370px){.game-site .game-board{aspect-ratio:.74}.game-site .space-band{height:21px;font-size:6px}.game-site .board-space{padding-top:24px}.game-site .corner-space{padding-top:7px}.game-site .board-space>strong{font-size:7.5px}.game-site .board-space>.piece-sprite{margin-top:2px}}
/* Center the height-limited board inside the full left column. */
@media(min-width:761px){.game-site .play-layout{grid-template-columns:minmax(0,1fr) 285px;justify-content:normal}.game-site .game-board{width:min(100%,max(500px,calc(100svh - 165px)),800px);min-width:0;justify-self:center;align-self:start}.game-site .play-sidebar{min-width:0}}
@media(min-width:761px) and (max-width:1000px){.game-site .play-layout{grid-template-columns:minmax(0,1fr) 230px;gap:16px}}

/* Keep the peel hit area anchored to the fries while the mascot stands alongside. */
.game-site .board-mascots{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;max-height:68%;width:100%;position:relative}
.game-site .board-mascots .fries-stage{width:65%;height:100%;max-height:none;flex:0 0 65%;margin:0;z-index:1}
.game-site .terminal-tycoon{display:block;width:53%;height:100%;max-height:100%;margin-left:-18%;object-fit:contain;image-rendering:pixelated;pointer-events:none;user-select:none}
@media(max-width:760px){.game-site .board-mascots{max-height:62%}.game-site .board-mascots .fries-stage{width:65%}}

/* White playing surface, with dark lettering for contrast. */
.game-site .board-center{background:#fff;color:#21150e}
.game-site .board-center .board-title{color:#a82020}
.game-site .board-center .board-title small,
.game-site .board-center .board-price,
.game-site .board-center>.sound{color:#604b3a}

/* Full collectible art, framed by the district's color. */
.game-site .board-space{padding:0;border:3px solid var(--district);overflow:hidden;gap:0}
.game-site .board-space.art-space{background:#fff;display:flex;justify-content:flex-end}
.game-site .board-space .tile-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.game-site .board-space>strong{position:relative;z-index:1;width:100%;box-sizing:border-box;padding:4px 2px;background:#fffef3ee;color:#21150e;font:800 clamp(8px,1.65cqw,12px)/1.15 var(--sans);text-wrap:balance}
.game-site .board-space>.ownership-badge{top:3px;right:3px;bottom:auto;z-index:2;background:#21150e;color:white;border:1px solid #fff;min-width:0}
.game-site .board-space.has-piece{box-shadow:none}
.game-site .board-space:focus-visible{outline:3px solid #21150e;outline-offset:-6px}
@media(max-width:760px){.game-site .board-space{border-width:2px}.game-site .board-space>strong{font-size:clamp(7px,2.05cqw,10px);padding:3px 1px}}

/* Give names their own row; show the entire artwork without cropping. */
.game-site .board-space.art-space{display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:stretch;justify-content:stretch}
.game-site .board-space .tile-art{position:static;display:block;width:100%;height:100%;min-width:0;min-height:0;object-fit:contain;box-sizing:border-box;border:3px solid var(--district)}
.game-site .board-space.art-space>strong{background:#fffef3;align-self:end}

/* Sprite tiles retain their colored frame; district headers stay removed. */
.game-site .board-space.sprite-space{display:flex;flex-direction:column;justify-content:center;background:color-mix(in srgb,var(--district) 9%,#fff);padding:5px 3px;gap:4px}
.game-site .board-space.sprite-space>.piece-sprite{width:clamp(32px,11cqw,82px);max-height:72%;margin:0}
.game-site .board-space.sprite-space>strong{background:none;padding:2px 0}
.game-site .peel-hint{font:700 12px var(--sans);color:#604b3a;margin-top:5px}
@media(max-width:760px){.game-site .board-space.sprite-space{padding:3px 2px;gap:2px}.game-site .board-space.sprite-space>.piece-sprite{width:clamp(30px,12cqw,62px)}.game-site .peel-hint{font-size:10px}}

/* Soft parchment complements the pastel tiles without a bright white center. */
.game-site .board-center{background:#eee5d5}
.game-site .board-space[data-board-link="rules"]>strong{background:transparent}
.game-site .board-center .board-jackpot{display:grid;gap:5px;flex:none;border:0;padding:2px 8px;margin:0;background:transparent;box-shadow:none;color:#8f2822;text-align:center;cursor:pointer;white-space:normal}
.game-site .board-jackpot-label{font:12px/1.2 var(--pixel);letter-spacing:.08em}
.game-site #board-jackpot-amount{font:700 clamp(16px,3.8cqw,26px)/1.2 var(--mono);color:#39291c}
.game-site .board-jackpot:focus-visible{outline:2px solid #8f2822;outline-offset:3px;border-radius:3px}
@media(max-width:760px){.game-site .board-jackpot-label{font-size:9px}.game-site #board-jackpot-amount{font-size:clamp(14px,4.6cqw,20px)}}

/* Arcade-style LED marquee. Duplicate messages form a seamless loop. */
.game-site .board-center .board-jackpot{display:block;position:relative;isolation:isolate;overflow:hidden;width:calc(100% + 8px);min-width:0;height:48px;min-height:48px;padding:0;margin:0 0 5px;border:3px solid #57442f;border-radius:7px;background-color:#151710;background-image:radial-gradient(circle,#60643b45 .7px,transparent 1px);background-size:4px 4px;box-shadow:inset 0 2px 6px #000,0 2px 0 #b9a98c;white-space:nowrap;text-align:left}
.game-site .board-jackpot::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:2;background:linear-gradient(90deg,#10120e 0%,transparent 8%,transparent 92%,#10120e 100%)}
.game-site .jackpot-ticker-track{display:flex;align-items:center;width:max-content;height:100%;animation:jackpot-scroll 16s linear infinite;will-change:transform}
.game-site .jackpot-ticker-message{display:flex;align-items:center;gap:22px;flex:none;padding-right:22px;font:clamp(11px,2.7cqw,17px)/1 var(--pixel);letter-spacing:.06em;color:#ffcd53;text-shadow:0 0 4px #ffbd4790,0 0 10px #ff96194d}
.game-site #board-jackpot-amount,.game-site #board-jackpot-repeat{font:inherit;color:inherit}
.game-site .ticker-dot{font-size:9px;color:#f5913a}
.game-site .board-jackpot:hover .jackpot-ticker-track,.game-site .board-jackpot:focus-visible .jackpot-ticker-track{animation-play-state:paused}
.game-site .board-jackpot:focus-visible{outline:3px solid #ad4124;outline-offset:3px}
@keyframes jackpot-scroll{to{transform:translateX(-50%)}}
@media(max-width:760px){.game-site .board-center .board-jackpot{height:37px;min-height:37px;border-width:2px;margin-bottom:3px}.game-site .jackpot-ticker-message{font-size:clamp(9px,2.8cqw,14px);gap:16px;padding-right:16px}}
@media(prefers-reduced-motion:reduce){.game-site .jackpot-ticker-track{animation:none;width:100%;justify-content:center}.game-site .jackpot-ticker-message{gap:8px;padding:0;font-size:clamp(8px,2.1cqw,13px)}.game-site .jackpot-ticker-message+.jackpot-ticker-message,.game-site .jackpot-ticker-message>.ticker-dot:last-child{display:none}}

/* Trophy previews stay available before district completion. */
.game-site .district-reward-progress{display:flex;align-items:center;gap:10px;margin:7px 0}
.game-site .district-trophy-preview{display:grid;place-items:center;flex:0 0 48px;width:48px;height:52px;padding:2px;border:1px solid var(--district);border-radius:5px;background:#302c25 url('assets/district-scenes.png') 0% center / 300% 100%;overflow:hidden;cursor:pointer}
.game-site .district-trophy-preview .piece-sprite{width:44px;margin:0}
.game-site .district-trophy-preview[data-scene="1"]{background-position:50% center}
.game-site .district-trophy-preview[data-scene="2"]{background-image:url('assets/builder-scene-v2.png');background-size:100% 100%;background-position:center}
.game-site .district-trophy-preview:hover{filter:brightness(1.15)}
.game-site .district-trophy-preview:focus-visible{outline:2px solid var(--cream);outline-offset:2px}
.game-site .district-progress-detail{flex:1;min-width:0}
.game-site .district-progress-detail .district-progress{margin:0 0 7px}
.game-site .trophy-weight{display:block;font:10px/1.4 var(--mono);color:var(--muted)}
@media(max-width:760px){.game-site .district-reward-progress{gap:6px}.game-site .district-trophy-preview{flex-basis:44px;width:44px;height:48px}.game-site .district-trophy-preview .piece-sprite{width:40px}.game-site .trophy-weight{font-size:9px}}

/* Readable labels and accessible controls at narrow widths. */
.game-site .board-space>strong{font-size:clamp(10px,1.65cqw,12px)}
.game-site .district-mini .btn,.game-site #sound,.game-site #exit-demo,.game-site #reset-demo{min-height:44px}
.game-site .rare-stock{display:block;font:600 10px/1.2 var(--sans);padding:2px;background:#fffef3;color:#21150e;text-wrap:balance}
.game-site .board-space.art-space{grid-template-rows:minmax(0,1fr) auto auto}
.game-site #chance-meter{width:100%;height:20px}
.game-site .season-clock{max-width:60%;overflow-wrap:anywhere}
.game-site #play-routing{line-height:1.7}

/* Season corner: an arcade admission badge. */
.game-site .board-space.season-space{background:radial-gradient(ellipse at 50% 0%,#9b332a,#401b19 75%);border-color:#c99b50;display:grid;place-items:center;padding:5px;box-shadow:inset 0 0 0 2px #2e1613}
.game-site .season-space>strong{display:none}
.game-site .season-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;height:100%;border:1px solid #e6bd76;color:#ffe3a4;background:repeating-linear-gradient(135deg,transparent 0 8px,#ffdb9210 8px 9px);box-shadow:inset 0 0 0 3px #54251f}
.game-site .season-badge-stars{font:10px/1 var(--sans);letter-spacing:3px;color:#fbcf71}
.game-site .season-badge-word{font:8px/1.2 var(--pixel);letter-spacing:1px}
.game-site .season-badge-number{font:clamp(22px,6cqw,44px)/1.1 var(--pixel);color:#ffe6ac;text-shadow:2px 3px #22120e}
.game-site .season-badge-footer{font:800 clamp(6px,1.2cqw,9px)/1.2 var(--sans);letter-spacing:.04em;border-top:1px solid #c99b50;padding-top:4px;width:85%}
@media(max-width:450px){.game-site .board-space.season-space{padding:3px}.game-site .season-badge{gap:2px}.game-site .season-badge-stars{font-size:8px}.game-site .season-badge-word{font-size:7px}.game-site .season-badge-footer{font-size:6px;padding-top:2px}}

/* Printed-board center and condensed, legible property lettering. */
.game-site .board-center{background:#e7e3cf url('assets/board-center.svg') center/100% 100% no-repeat;box-shadow:inset 0 0 0 1px #81663c40,inset 0 0 28px #8f7c4420}
.game-site .board-space>strong{font-family:'Barlow Condensed','Arial Narrow',var(--sans);font-weight:700;font-size:clamp(11px,2.25cqw,15px);line-height:1.04;letter-spacing:.015em;padding:4px 2px;color:#2e2419}
.game-site .board-space.art-space>strong{background:#f2ead9}
@media(max-width:450px){.game-site .board-space>strong{font-size:10px;line-height:1.05;padding:3px 1px}.game-site .board-center{background-size:100% 100%}}

.burglar-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px}.burglar-card .btn,#burglar-perks .btn,#burglar-burn-dialog .btn{min-height:44px}#burglar-burn-dialog{max-width:min(520px,90vw)}

/* Simple SpamBurglar burn picker. */
.burglar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.burglar-grid .burglar-card{min-width:0;border:2px solid var(--line);border-radius:10px;padding:12px;background:#261d15;color:var(--cream);text-align:left}
.burglar-card img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:6px;background:#191410}
.burglar-card[aria-pressed=true]{border-color:var(--yellow);box-shadow:0 0 0 2px #ffc72c25}
#burglar-execute-dialog{width:min(560px,calc(100vw - 32px));max-width:100%;box-sizing:border-box}#burglar-execute-dialog .btn{min-height:44px;white-space:normal}
@media(max-width:600px){.burglar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.burglar-card{transition:none}}

/* Collection cards show the complete NFT scene without cropping. */
.piece-card .card-code{height:auto;min-height:0;aspect-ratio:1;overflow:hidden;border:2px solid var(--accent,var(--line))}
.piece-card .card-code>.nft-artwork{display:block;width:100%;height:100%;object-fit:contain}
.piece-card .count{background:#21150ee6;color:#fff3da;padding:4px 7px;border-radius:4px}

/* Cash outcomes need a solid contrast surface over detailed scene artwork. */
.result-mark>.cash-result-badge{display:inline-block;position:relative;z-index:1;max-width:90%;padding:20px 30px;border:3px solid #ffc72c;border-radius:16px;background:#17130f;color:#fff9e8;font:800 clamp(36px,9vw,76px)/1.15 var(--sans);letter-spacing:-.03em;text-shadow:none;box-shadow:0 8px 24px #0008;overflow-wrap:anywhere}
/* One visible control on the fries; cover the baked-in PEEL lettering. */
.fries-stage .peel-tab{color:#fff2c5;background:linear-gradient(#090909,#090909) padding-box,linear-gradient(90deg,#765000,#ffd84a,#fff6cf,#ffd84a,#765000) border-box;background-size:100% 100%,200% 100%;border:2px solid #a57b20;border-radius:5px;font:clamp(9px,2cqw,17px)/1 var(--pixel);text-shadow:0 1px 2px #000}
.fries-stage.ready-to-peel .peel-tab{outline:none;border-color:transparent;animation:play-edge-flow 2s linear infinite;box-shadow:0 0 9px #ffc72c66}
@keyframes play-edge-flow{to{background-position:0 0,200% 0}}
@media(prefers-reduced-motion:reduce){.fries-stage.ready-to-peel .peel-tab{animation:none}}
.reveal-notice{display:grid;justify-items:center;gap:5px;width:92%;padding:9px 12px;border:1px solid #cf9b29;border-radius:9px;background:#21170eef;color:#fff1c6;text-align:center;box-shadow:0 3px 12px #21170e22;font:600 12px/1.35 var(--sans)}
.reveal-notice strong{color:#ffe080;font-size:14px}.reveal-notice span{font-size:11px;font-weight:500}.reveal-notice .btn{padding:8px 14px;font-size:9px;min-height:36px}
@media(max-width:760px){.reveal-notice{padding:5px;gap:3px}.reveal-notice strong{font-size:11px}.reveal-notice span{font-size:9px}.reveal-notice .btn{padding:5px 8px;font-size:8px;min-height:32px}}

.result-gallery{display:flex;align-items:center;justify-content:center;gap:1rem;margin:0 2rem 1rem;font-weight:800}.result-gallery[hidden]{display:none}.result-gallery .btn{min-width:48px;min-height:48px;padding:.6rem 1rem}.result-gallery button:disabled{opacity:.35}

.result-gallery .btn{display:grid;place-items:center;min-width:64px;min-height:60px;padding:0;border:2px solid #ffd342;background:#17120d;color:#ffd342;font-family:Arial,sans-serif;font-size:38px;font-weight:900;line-height:1;box-shadow:0 0 12px #ffd34230}.result-gallery .btn:hover:not(:disabled),.result-gallery .btn:focus-visible{background:#ffd342;color:#17120d;box-shadow:0 0 20px #ffd34270;outline:2px solid #fff3c4;outline-offset:3px}.result-gallery .btn:disabled{opacity:.45;box-shadow:none}.result-gallery #result-counter{font-size:18px;color:#fff3c4;min-width:70px;text-align:center}

.district-claim-fee{display:block;margin-top:.6rem;color:var(--cream,#fff3c4);font-size:.8rem;line-height:1.5}

#execution-opening{font-size:clamp(1rem,1.5vw,1.2rem);line-height:1.5;font-weight:800;letter-spacing:.06em}

/* Keep rewards beside play, with district progress directly beneath the board. */
.game-site .board-column{min-width:0;display:grid;gap:24px;justify-items:center}
.game-site .board-column>.district-summary{width:100%;max-width:800px}
.game-site .board-column .district-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.game-site .play-sidebar{display:flex;flex-direction:column}
.game-site .play-sidebar>*{width:100%;box-sizing:border-box}
.game-site .play-sidebar #burglar-perks{margin:0;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.game-site .play-sidebar #burglar-perks h2{font-size:15px;line-height:1.6}
.game-site .play-sidebar #burglar-perks p{font-size:12px;line-height:1.6}
.game-site .play-sidebar #burglar-perks h3{font-size:14px}
.game-site .play-sidebar .burglar-grid{grid-template-columns:1fr;max-height:350px;overflow:auto}
.game-site .play-sidebar .ceo-strip{display:block;margin:0;padding:18px;border:2px solid var(--line);border-radius:12px}
.game-site .play-sidebar .ceo-strip .btn{width:100%;margin:12px 0 0;white-space:normal;line-height:1.8}
.game-site .claim-ready{border:2px solid var(--district,var(--yellow));animation:claim-glow 2s ease-in-out infinite alternate}
.game-site .ceo-strip.claim-ready{background:#483310;border-color:var(--yellow)}
.game-site .claim-ready-notice{flex-shrink:0;max-width:100%;margin:0 0 7px;padding:8px 10px;border:2px solid #ffcf32;border-radius:8px;background:#21160b;color:#ffdf64;font:800 clamp(9px,1.8cqw,13px)/1.3 var(--sans);cursor:pointer;box-shadow:0 0 12px #ffc72c66}
.game-site .claim-ready-notice:hover,.game-site .claim-ready-notice:focus-visible{background:#493310;outline:2px solid #fff3da;outline-offset:2px}
@keyframes claim-glow{from{box-shadow:0 0 7px color-mix(in srgb,var(--district,var(--yellow)) 25%,transparent)}to{box-shadow:0 0 20px color-mix(in srgb,var(--district,var(--yellow)) 60%,transparent)}}
@media(max-width:760px){.game-site .board-column .district-grid{grid-template-columns:1fr}.game-site .board-column>.district-summary{max-width:530px}.game-site .play-sidebar{max-width:530px;justify-self:center;width:100%}}
@media(prefers-reduced-motion:reduce){.game-site .claim-ready{animation:none;box-shadow:0 0 12px #ffc72c55}}

.game-site .piece-details{display:block;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;border-radius:8px}
.game-site .piece-details:hover{background:#ffc72c0d}
.game-site .piece-details:focus-visible{outline:3px solid var(--yellow);outline-offset:5px}
