/* One baked scene. Every overlay and hit area consumes the measured plate descriptor. */
.game,.game[data-mode="super"],.game[data-mode="hold"]{display:block;width:100vw;height:100dvh;max-height:none;max-width:none;background-size:100% 100%;background-position:center;background-repeat:no-repeat;border:0;box-shadow:0 0 70px #0008}
.hero-stage,.board-zone,.jackpots,.controls,.topbar,footer{position:absolute;inset:0;width:100%;height:100%;padding:0!important;margin:0;display:block;background:none;border:0;pointer-events:none}
.hero-stage{z-index:6}.hero-stage .header-art,.stage-frame,.hero-stage .feature-heading,.hero-stage .logo{display:none!important}
.topbar{z-index:20}.topbar .edition,.topbar #mode-title{position:absolute;top:0;left:1%;font-size:7px;letter-spacing:.3px}.topbar #mode-title{left:43%;font-size:8px;color:#ffdc91}.topbar nav{display:contents}.topbar button{position:absolute;background:transparent;border:0;color:transparent;font-size:0;border-radius:50%;pointer-events:auto;padding:0}.topbar #settings{display:none}
#sound .sound-mark{position:absolute;inset:10%;border-radius:50%;background:#140d06ee;box-shadow:inset 0 0 0 2px #e7c27a;pointer-events:none}#sound .sound-mark:before{content:'';position:absolute;left:22%;top:28%;width:22%;height:44%;background:#ffe7ad;clip-path:polygon(100% 0,100% 100%,0 70%,0 30%)}#sound .sound-mark:after{content:'';position:absolute;right:18%;top:30%;width:18%;height:40%;border:2px solid #ffe7ad;border-left:0;border-radius:0 70% 70% 0}#sound[aria-pressed="false"] .sound-mark:after{content:'';position:absolute;left:16%;top:46%;width:68%;height:3px;border:0;border-radius:0;background:#ff596c;box-shadow:0 0 2px #410506;transform:rotate(-42deg)}
.jackpots{z-index:7}.jackpots:before,.jackpot img,.jackpot small{display:none!important}.jackpot{position:absolute;display:grid;place-items:center}.jackpot output{position:relative!important;inset:auto!important;transform:none!important;width:100%;height:100%;display:grid;place-items:center}
.board-zone{z-index:5}.base-board,.matrix-board{position:absolute}.matrix-board{inset:0;display:block;height:100%;width:100%;padding:0}.vault{position:absolute;display:block;margin:0;min-height:0}.vault-title{display:none}.vault .cabinet,.cabinet{position:absolute;inset:0;border:0!important;border-image:none!important;border-radius:0;padding:0!important;gap:0;background:none;box-shadow:none;overflow:hidden;width:100%;height:100%}.cell{background:transparent;border-right:1px solid #c8ab7040;border-bottom:1px solid #c8ab7030;box-shadow:none}.cell[data-kind="super"]{box-shadow:inset 0 0 10px #f6bf4533}
.vault-door{inset:0;border:0;border-image:none;background:linear-gradient(#030b16dd,#102430ee);box-shadow:inset 0 0 22px #0009}.vault-door .lock{font-size:22px}.vault-door strong{font-size:11px}.vault-door small{font-size:10px}.vault-door img{width:25%;max-height:30%}
.controls{z-index:10}.credit-well,.bet-well,.win-well{position:absolute!important;display:grid;place-items:center;padding:0;background:transparent;border:0!important;border-image:none!important;border-radius:0;box-shadow:none;height:auto;pointer-events:auto}.controls .credit-well>span,.controls .credit-well>small,.controls .bet-well>span,.controls .win-well>span{display:none}.controls output{font-size:var(--hud-digit);display:block;width:100%;line-height:1;text-shadow:none}.bet-well>div{width:100%}.bet-well button{display:none}.bet-well{cursor:pointer}.painted-button{position:absolute;padding:0!important;border:0;background:transparent;pointer-events:auto;min-width:0;min-height:0;border-radius:50%;overflow:visible;filter:none}.painted-button>img{display:none!important}.painted-button #action-label{position:absolute;top:-21%;left:-25%;width:150%;height:auto;font-size:clamp(10px,1.6vw,18px);line-height:1.1;color:#ffe5a5;background:#132431e6;border:1px solid #9e7840;border-radius:5px;pointer-events:none}.painted-button:disabled{background:#09152277;opacity:1}.painted-button:hover:not(:disabled){box-shadow:inset 0 0 15px #ffe49377}.painted-button[aria-pressed="true"]{box-shadow:inset 0 0 12px #ffe88d,0 0 8px #ffd55a}
.controls output{position:absolute!important;inset:0;width:100%!important;max-width:none!important;height:100%;display:flex;align-items:center;justify-content:center;font-size:var(--hud-digit)!important;overflow:visible}
.jackpot output,.controls output{font-family:RaidersPlaque,Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:.01em;image-rendering:auto}
.bet-well>div{position:absolute;inset:0;width:100%;height:100%;display:block}
#autoplay,#turbo{position:absolute;background:transparent;color:transparent;border:0;font-size:0;border-radius:50%;pointer-events:auto;padding:0}#autoplay[aria-pressed="true"],#turbo[aria-pressed="true"]{box-shadow:0 0 9px #ffe377,inset 0 0 9px #ffe377}
footer{z-index:12}#status,#feature-readout{position:absolute;text-align:center;font-size:clamp(7px,.8vw,12px);line-height:1.15;color:#ffe7b5;padding:0;margin:0;display:flex;align-items:center;justify-content:center;gap:12px;text-shadow:0 1px 3px #000}#feature-readout{z-index:3;background:#06131d99;border-radius:5px}#feature-readout:not([hidden])~*{pointer-events:none}.game[data-mode="hold"] #status,.game[data-mode="super"] #status,.game[data-mode="free"] #status{visibility:hidden}
.game .wheel-scene{inset:4% 7% 24%;z-index:25;border:8px solid transparent;border-image:url('../assets/raccoon/vault-frame.webp') 170 stretch;background:#081721f5;box-shadow:0 0 40px #000;pointer-events:none}.wheel-wrap{position:relative;width:auto;height:76%;max-width:100%;aspect-ratio:1;margin:auto}.wheel-wrap .fixed-pointer{z-index:5;top:-2%}.wheel-scene h2{font-size:clamp(15px,2vw,24px)}.wheel-result{font-size:clamp(12px,2vw,25px)}.ambient-wheel .fixed-pointer{z-index:5;top:-1%;height:16%;width:12%;left:44%}.flights{position:absolute;inset:0;z-index:30}.flight{left:55%;top:40%;height:15%;width:auto}
@media(orientation:portrait){.game .wheel-scene{inset:4% 1% 20%}.wheel-wrap{width:96%;height:auto}.vault .symbol-amount{font-size:clamp(8px,2.4vw,13px)}#status,#feature-readout{font-size:8px;gap:4px}.topbar #mode-title{font-size:6px;left:2%;top:1%}.topbar .edition{display:none}}


.game[data-mode="hold"] #feature-readout{font-size:clamp(8px,2.5vw,13px);gap:10px;background:none}
#wheel-scene{position:absolute;inset:0;z-index:80;display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"copy" "wheel" "actions";gap:12px;padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border:0;border-image:none;background:radial-gradient(ellipse 90% 55% at 50% 46%,#1c4638 0%,#0b1c18 42%,#05080c 100%);box-shadow:none;pointer-events:auto;overflow:hidden}
#wheel-scene[hidden]{display:none!important}
#wheel-scene:before{content:"";position:absolute;inset:10px;border:2px solid #e7c27a55;border-radius:18px;pointer-events:none}
.wheel-panel{display:contents}
.wheel-copy{grid-area:copy;position:relative;z-index:1;text-align:center}
.wheel-fit{grid-area:wheel;position:relative;z-index:1;container-type:size;width:100%;height:100%;min-width:0;min-height:0;display:grid;place-items:center}
.wheel-actions{grid-area:actions;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px}
#wheel-scene h2{display:block;margin:0;font-family:RaidersPlaque,Georgia,serif;font-size:clamp(26px,7vw,34px);letter-spacing:.14em;color:#ffe7ad}
#wheel-caption{margin:6px 0 0;color:#d7c096;font-size:clamp(13px,3.4vw,16px)}
#wheel-wrap{position:relative;width:min(92cqw,92cqh);height:min(92cqw,92cqh);max-width:none;max-height:none;aspect-ratio:1;margin:0;flex:none}
#wheel-disc{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 12px 18px #000a)}
#wheel-scene .fixed-pointer{top:-1%;left:50%;width:7%;height:9%;transform:translateX(-50%);z-index:2}
#wheel-result{position:static;min-height:0;padding:0;background:none;border:0;font:clamp(18px,4.5vw,28px) RaidersPlaque,Georgia,serif;color:#ffe7ad;letter-spacing:.06em;text-align:center}
#wheel-result:empty{display:none}
#wheel-go{width:min(100%,320px);min-width:200px;min-height:56px;border-radius:999px;border:3px solid #ecc25d;background:linear-gradient(#237c43,#064525);color:#fff0a4;font-family:RaidersPlaque,Georgia,serif;font-size:22px;letter-spacing:.08em}#wheel-go:disabled{filter:brightness(.6)}
@media(orientation:landscape),(min-width:960px){
 #wheel-scene{grid-template-columns:minmax(0,1fr) minmax(240px,34vw);grid-template-rows:minmax(0,1fr);grid-template-areas:"wheel panel";align-items:center;gap:clamp(16px,3vw,40px);padding:max(24px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left))}
 #wheel-scene:before{display:none}
 .wheel-panel{display:flex;flex-direction:column;justify-content:center;gap:22px;grid-area:panel;align-self:center;padding:clamp(18px,2vw,32px);border:2px solid #e7c27a;border-radius:16px;background:linear-gradient(180deg,#14312bcc,#07110fcc);box-shadow:inset 0 0 0 4px #1a120866,0 12px 30px #0008}
 .wheel-copy{text-align:left}
 #wheel-scene h2{font-size:clamp(28px,3vw,48px)}
 #wheel-caption{font-size:clamp(14px,1.4vw,18px)}
 .wheel-actions{align-items:stretch}
 #wheel-result{text-align:left;font-size:clamp(22px,2vw,34px)}
 #wheel-go{width:100%}
}
@media(orientation:landscape) and (max-height:520px){
 #wheel-scene{grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:12px;padding:12px 16px}
 .wheel-panel{gap:10px;padding:12px 14px}
 #wheel-scene h2{font-size:22px;letter-spacing:.08em}
 #wheel-caption{margin-top:2px;font-size:13px}
 #wheel-go{min-height:44px;font-size:18px}
}
#action[data-face="state"]>#action-art{display:block!important;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 2px #10080088)}
#action[data-face="state"]:disabled>#action-art{filter:brightness(.65) saturate(.6)}
.base-board{z-index:1}
.win-lines{position:absolute;z-index:0;pointer-events:none;overflow:visible;filter:drop-shadow(0 0 3px #ffc75b88)}
.win-lines polyline{fill:none;stroke:#ffdc88;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.65;vector-effect:non-scaling-stroke}
.win-amount-plate{position:absolute;z-index:14;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 3px 5px #1a0510cc) drop-shadow(0 0 8px #ffd97a88)}
.win-amount-plate.is-fresh{animation:win-amount-pop .34s cubic-bezier(.2,1.5,.45,1) both}
@keyframes win-amount-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.win-amount-plate.is-fresh{animation:none}}

.symbol-amount{display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:2;padding:0}
.game .cell[data-kind="prize"]{overflow:hidden;z-index:2}.game .cell[data-kind="prize"]:before{display:none!important}.game .cell[data-kind="prize"]>.symbol{display:block!important;object-fit:contain}.game #base-board .cell[data-kind="prize"]>.symbol{width:calc(var(--symbol-size) * 1.04);height:calc(var(--symbol-size) * 1.04);max-width:96%;max-height:96%;transform:translate(-50%,-50%);filter:drop-shadow(2px 3px 2px #000a)}.game .vault .cell>.symbol{width:86%;height:86%;max-width:86%;max-height:86%;object-fit:contain;transform:translate(-50%,-50%)}.game .cell[data-kind="prize"]>.symbol-amount{border:0;border-radius:0;background:none;color:#ffe7ad;font-family:RaidersPlaque,Georgia,serif;text-shadow:0 1px 0 #3a1a08,0 2px 2px #000;filter:none;display:flex;align-items:center;justify-content:center}
.game .cell[data-kind="prize"]>.symbol-amount.has-drawn-number{left:auto;width:auto;transform:none}
.game .cell[data-tier="mini"]>.symbol-amount{color:#d9ffe4;text-shadow:0 2px 0 #145c28,0 0 2px #7dffb0}
.game .cell[data-tier="minor"]>.symbol-amount{color:#e5f4ff;text-shadow:0 2px 0 #143c78,0 0 2px #8ec6ff}
.game .cell[data-tier="major"]>.symbol-amount{color:#f6e4ff;text-shadow:0 2px 0 #5a2080,0 0 2px #e0a6ff}
.game .cell[data-tier="grand"]>.symbol-amount{color:#fff1b8;text-shadow:0 2px 0 #7a3d08,0 0 2px #ffd36a}
/* Wider mobile base well keeps the symbol size while reserving separation. */
@media(orientation:portrait){
 .game[data-mode="base"] #base-board .symbol{width:calc(var(--symbol-size) * .9263157895);height:calc(var(--symbol-size) * .9263157895);max-width:88%;max-height:88%}
 .game[data-mode="base"] #base-board .cell{border-right-color:#c8ab701c;border-bottom-color:#c8ab7015}
}


.bet-well:focus-visible{outline:2px solid #ffdf88;outline-offset:2px}.bet-well[aria-disabled="true"]{cursor:default}
@media(orientation:portrait),(pointer:coarse){#sound[aria-pressed="false"] .sound-mark:after{left:16%;top:46%;width:68%}}

@media(prefers-contrast:more){.controls output,.jackpot output,.symbol-amount{color:#fff!important;text-shadow:0 1px 2px #000,0 -1px 2px #000!important}.cell{border-color:#d5c28c99}button:focus-visible,.bet-well:focus-visible{outline:3px solid #fff!important;outline-offset:2px}#status,#feature-readout{color:#fff;background:#020912ed}}

.cabinet-bands{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
#play-demo{min-width:210px;min-height:56px;color:#fff0a4;font-size:22px;border-radius:999px;border:3px solid #ecc25d;background:linear-gradient(#237c43,#064525);box-shadow:0 3px 0 #69420e,0 0 24px #f0b44144}
#action[data-label="RESPIN"] #action-label{inset:8%;width:auto;height:auto;display:grid;place-items:center;font-family:RaidersPlaque,Georgia,serif;font-size:clamp(11px,1.5vw,18px);line-height:1.05;color:#ffe89c;border:0;border-radius:50%;background:radial-gradient(circle,#0b6a32 0 58%,#06381c 72%);text-shadow:0 2px 1px #052009;z-index:2}
@media(orientation:portrait){#action[data-label="RESPIN"] #action-label{font-size:clamp(13px,4.2vw,20px)}}

/* Round 2: complete isolated control faces and separate character staging. */
.hero-plank{position:absolute;object-fit:contain;pointer-events:none;z-index:0}
.mascot{z-index:1}
#action,#buy,#turbo,#autoplay{background-size:contain;background-position:center;background-repeat:no-repeat;box-shadow:none!important}
#action[data-face="layer"]>#action-art{display:none!important}
.painted-button:disabled{background-color:transparent;opacity:1}
.controls .credit-well>span,.controls .bet-well>span,.controls .win-well>span{display:block;position:absolute;top:-.9em;width:100%;font:clamp(6px,.7vw,11px) system-ui;text-align:center;color:#ffdfa0;text-shadow:0 1px 2px #000;white-space:nowrap}
.controls output{font-size:clamp(10px,1.8vw,28px)!important}
@media(orientation:portrait){.controls output{font-size:clamp(11px,4vw,20px)!important}.controls .credit-well>span,.controls .bet-well>span,.controls .win-well>span{font-size:7px}}
#wheel-scene{display:block;padding:0;background:none;border:0;pointer-events:none;z-index:15}
#wheel-scene:before,.wheel-copy{display:none!important}
.wheel-fit,.wheel-panel,.wheel-actions{display:contents}
#wheel-wrap{position:absolute;max-width:none;max-height:none;margin:0}
#wheel-result{position:absolute;display:flex;align-items:center;justify-content:center;font:clamp(10px,2vw,22px) RaidersPlaque,Georgia,serif;letter-spacing:0;text-align:center;min-height:0}
#wheel-go{position:absolute;min-width:0;min-height:0;padding:0;border:0;background:transparent url('../assets/raccoon/btn-spin-idle-v3.webp') center/contain no-repeat;pointer-events:auto;color:transparent;font-size:0}
#wheel-go:disabled{background-image:url('../assets/raccoon/btn-spin-disabled-v3.webp');filter:none}
#wheel-go:active:not(:disabled){background-image:url('../assets/raccoon/btn-spin-pressed-v3.webp')}
#wheel-go[data-continue="true"]{color:#ffe7ad;font-size:clamp(12px,2vw,20px);background-image:url('../assets/raccoon/action-continue-v1.webp')}
.cell.is-new{animation:landing-light 320ms ease-out both}
@keyframes landing-light{0%{filter:brightness(1.25)}100%{filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){.cell.is-new{animation:none}}

/* The review toolbar can be expanded; it must not cover the actual controls. */
.review-bar{bottom:0;left:0;right:0;justify-content:center;background:#07121ae8;padding:0;transform:translateY(calc(100% - 10px));transition:transform .15s;cursor:pointer}
.review-bar:hover,.review-bar:focus-within,.review-bar.expanded{transform:none}
.review-bar:before{content:'TEST STATES';position:absolute;bottom:100%;left:0;font:7px system-ui;background:#07121ae8;padding:2px 6px;color:#f7d68c}
.game #base-board .cell:not(.is-win):not([data-kind="wild"])>.symbol{animation:none!important}
.game #base-board .cell.is-new:not(.is-win):not([data-kind="wild"])>.symbol{animation:symbol-land-once .32s ease-out both!important}
.game #base-board:has(.is-win) .cell:not(.is-win){opacity:.55}
/* Authored face/prop poses own the motion; never inflate their whole sprite. */
#game #base-board .cell[data-symbol-animation="poses"]>.symbol{animation:none!important;transform:translate(-50%,-50%)}
#game #base-board .cell.is-win[data-kind="key"]>.symbol{animation:key-win-turn .9s ease-in-out infinite}
#game #base-board .cell.is-win[data-kind="lantern"]>.symbol{animation:lantern-win-light .85s ease-in-out infinite}
@keyframes key-win-turn{0%,100%{transform:translate(-50%,-50%) rotate(-6deg);filter:brightness(1)}50%{transform:translate(-50%,-50%) rotate(6deg);filter:brightness(1.2) drop-shadow(0 0 8px #ffdf80)}}
@keyframes lantern-win-light{0%,100%{transform:translate(-50%,-50%);filter:brightness(1)}50%{transform:translate(-50%,-50%);filter:brightness(1.3) drop-shadow(0 0 10px #ffdf80)}}
@keyframes symbol-land-once{0%{filter:brightness(1.3) drop-shadow(0 0 5px #ffdc88)}100%{filter:brightness(1)}}
.game[data-anticipation] #base-board>.cell:not(.anticipation-symbol){filter:brightness(.52) saturate(.62)}
.game[data-anticipation] .reel-spin.anticipating{animation:anticipation-rim .7s ease-in-out infinite}
@keyframes anticipation-rim{50%{box-shadow:inset 0 0 22px #ffcf66,0 0 20px #ffbe4baa}}
@media(prefers-reduced-motion:reduce){.game #base-board .cell.is-new>.symbol,.game[data-anticipation] .reel-spin.anticipating{animation:none!important}}
.game #feature-readout{background:none;box-shadow:none;border:0}
.controls .credit-well>span,.controls .bet-well>span,.controls .win-well>span{font-family:RaidersPlaque,Georgia,serif;font-weight:700;text-shadow:0 1px 0 #61350d,0 1px 3px #000}

/* Studio loading owns boot progress; the game owns its illustrated welcome. */
.boot{background:#06151b;position:fixed;inset:0;z-index:600;display:grid;place-items:center}
.intro-art-frame{position:relative;width:min(100vw,calc(100dvh * 1672 / 941));aspect-ratio:1672/941}
.boot .intro-art-frame picture,.boot .intro-art-frame img{display:block;width:100%;height:100%;max-width:none;object-fit:contain}
.boot #play-demo{position:absolute;left:37%;top:84%;width:26%;height:8%;min-width:0;min-height:0;padding:0;font:700 clamp(14px,2.4vw,34px) RaidersPlaque,Georgia,serif;color:#ffeeb2;border-radius:999px;background:linear-gradient(#8352b7,#43177e);border:3px solid #efc65d;box-shadow:inset 0 0 0 2px #674217,0 3px 0 #2d170b}
.boot #entry-sound-choice{position:absolute;left:25%;top:93%;width:50%;text-align:center;color:#ffe8b5;font:600 clamp(10px,1vw,16px) system-ui;cursor:pointer}
.boot #entry-sound-choice input{accent-color:#cfac55;vertical-align:middle}
.boot #boot-status{position:absolute;left:8%;top:82%;width:84%;text-align:center;max-height:10%;overflow:auto;margin:0;font-size:14px}
.boot #boot-status:empty{display:none}
.boot #retry{position:absolute;left:35%;top:91%;width:30%;padding:8px}
@media(orientation:portrait){.intro-art-frame{width:min(100vw,calc(100dvh * 864 / 1821));aspect-ratio:864/1821}.boot #play-demo{left:20%;top:84%;width:60%;height:5%;font-size:clamp(16px,5.5vw,26px)}.boot #entry-sound-choice{top:90%;font-size:12px}.boot #retry{top:91%;left:20%;width:60%}}
.game .mascot:not([data-performing]){transform-origin:50% 72%;animation:mascot-breath 4.8s ease-in-out infinite}
@keyframes mascot-breath{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.009)}}
.game #base-board .cell[data-symbol-animation="poses"]>.symbol{animation:sym-win-art-glow 1.04s ease-in-out infinite!important}
@keyframes sym-win-art-glow{0%,100%{filter:brightness(1) drop-shadow(0 0 3px #e9b54c55)}50%{filter:brightness(1.12) drop-shadow(0 0 7px #ffe09688)}}
@media(prefers-reduced-motion:reduce){.game .mascot,.game #base-board .cell.is-win>.symbol{animation:none!important;transform:none}.game #base-board .cell.is-win>.symbol{transform:translate(-50%,-50%)}}
.boot #play-demo{left:42%;top:82.5%;width:16%;height:auto;aspect-ratio:512/180;color:transparent;font-size:0;border:0;border-radius:0;box-shadow:none;background:transparent url('../assets/raccoon/btn-play-idle-v2.webp') center/contain no-repeat}
.boot #play-demo:active{filter:brightness(.78) saturate(1.08)}
.boot #play-demo:disabled{filter:grayscale(.65) brightness(.6)}
@media(orientation:portrait){.boot #play-demo{left:23%;top:83.5%;width:54%;height:auto;font-size:0}.boot #entry-sound-choice{top:93.5%}}
.symbol-amount .vector-number{font-family:RaidersPlaque,Georgia,serif;font-weight:700;line-height:1;white-space:nowrap;letter-spacing:0;color:#fff1bc;-webkit-text-fill-color:#fff1bc;-webkit-text-stroke:.35px #fff1bc;text-shadow:0 1px 1px #291005,0 0 2px #291005;background:none}
.game .mascot:not([data-performing]){transform-origin:50% 100%}
.symbol-coin{position:absolute!important;width:clamp(7px,18%,22px)!important;height:auto!important;max-height:none!important;z-index:5;pointer-events:none;object-fit:contain;filter:drop-shadow(0 1px 1px #5e2b0566)}
.game #base-board .cell.is-win{overflow:visible}
@media(prefers-reduced-motion:reduce){.symbol-coin{display:none}}
.mascot-rope{position:absolute;top:0;width:4px;border-radius:2px;background:repeating-linear-gradient(25deg,#b78545 0 3px,#664326 3px 6px);box-shadow:1px 0 1px #08040099;z-index:0;pointer-events:none}
.game .mascot[data-idle-variant="walk"],.game .mascot[data-idle-variant="rope"]{animation:none;transform-origin:50% 100%}

/* Authored poses supply articulation; idle never tilts or resizes a whole tile. */
#game #base-board .cell:not(.is-win):not(.is-feature-hit):not(.anticipation-symbol)>.symbol{animation:none!important;transform:translate(-50%,-50%)}
#game .mascot:not([data-performing]){animation:none}
#game[data-session="replay"] #balance,#game[data-session="replay"] #buy,#game[data-session="replay"] #autoplay,#game[data-session="replay"] #turbo{display:none!important}
#game[data-session="replay"] .bet-well{cursor:default;pointer-events:none}
#game[data-session="replay"] #action:is([data-label="PLAY"],[data-label="PLAY AGAIN"]) #action-label{inset:16%;width:auto;height:auto;display:grid;place-items:center;font-family:RaidersPlaque,Georgia,serif;font-size:clamp(10px,2vw,23px);color:#ffe89c;border:0;border-radius:50%;background:radial-gradient(circle,#08752c,#064421);text-shadow:0 2px 1px #052009;z-index:2}
#game[data-session="replay"] #action[data-label="PLAY AGAIN"] #action-label{font-size:clamp(8px,1.4vw,17px)}
@media(orientation:portrait){#game[data-session="replay"] #action[data-label="PLAY"] #action-label{font-size:18px}#game[data-session="replay"] #action[data-label="PLAY AGAIN"] #action-label{font-size:14px}}
#game #ambient-wheel>img{animation:ambient-wheel-turn 75s linear infinite;transform-origin:50% 50%}
@keyframes ambient-wheel-turn{0%,60%{transform:rotate(0deg)}64%,100%{transform:rotate(360deg)}}
#game:has(.reel-spin) #ambient-wheel>img{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){#game #ambient-wheel>img{animation:none!important}}

/* The cabinet owns its painted speaker. Mute dims its face without drawing over it. */
#sound .sound-mark{inset:0;background:none;box-shadow:none;border:0}
#sound .sound-mark:before,#sound .sound-mark:after{display:none}
#sound[aria-pressed="false"] .sound-mark:after{display:none}
#sound[aria-pressed="false"]{border-radius:50%;backdrop-filter:grayscale(1) brightness(.65);-webkit-backdrop-filter:grayscale(1) brightness(.65)}

/* Captions and values share the measured well, rather than its frame edge. */
.game .controls .credit-well,.game .controls .bet-well,.game .controls .win-well{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:1px 0!important;box-sizing:border-box}
.game .controls .credit-well>span,.game .controls .bet-well>span,.game .controls .win-well>span{position:static;display:block;width:100%;font:700 var(--hud-caption-size,8px)/1 RaidersPlaque,Georgia,serif;color:#ffe4a0;letter-spacing:.02em}
.game .controls output{position:static!important;inset:auto!important;height:auto;transform:none;font-size:var(--hud-value-size,16px)!important;line-height:1.18;flex:none}
.game .bet-well>div{position:static;inset:auto;height:auto;display:flex;justify-content:center;align-items:center;line-height:1}
@media(orientation:portrait){.game .controls output{font-size:var(--hud-value-size,14px)!important}}

/* Interior art gives the vaults depth, while symbols remain the focal point. */
.game[data-mode="hold"] .vault .cabinet,.game[data-mode="super"] .vault .cabinet{background:var(--vault-source,url('../assets/raccoon/vault-surface-v1.webp')) center/cover no-repeat}
.game[data-mode="hold"] .vault .cell,.game[data-mode="super"] .vault .cell{background:transparent}
#game .cell.is-win,#game .cell.anticipation-symbol{box-shadow:none!important;transition:filter .15s,opacity .15s!important}
#game #base-board .cell.anticipation-symbol>.symbol,#game #base-board .cell.is-win:is([data-kind="wild"],[data-kind="free-sign"],[data-kind="wheel-symbol"],[data-kind="super"])>.symbol{animation:special-symbol-light .95s ease-in-out infinite!important}
@keyframes special-symbol-light{0%,100%{filter:brightness(1.05) drop-shadow(0 0 3px #ffd46899)}50%{filter:brightness(1.22) drop-shadow(0 0 9px #ffcf65) drop-shadow(0 0 16px #b950ff66)}}
.game .reel-spin.anticipating{box-shadow:none!important;animation:none!important;background:#121426}
.game .reel-spin.anticipating:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 25%,#ffd35c18 50%,transparent 75%);pointer-events:none;animation:reel-light-sweep 1.1s ease-in-out infinite}
@keyframes reel-light-sweep{0%,100%{transform:translateY(-35%);opacity:.4}50%{transform:translateY(35%);opacity:1}}
@media(prefers-reduced-motion:reduce){#game #base-board .cell.anticipation-symbol>.symbol,#game #base-board .cell.is-win>.symbol,.game .reel-spin.anticipating:after{animation:none!important}}
@media(prefers-reduced-motion:reduce){.mascot-rope{display:none}}

/* Large illustrated plaques can break the grid edge slightly, like real props. */
.game .reel-track.authored-strip .reel-item>.symbol{width:var(--symbol-size);height:var(--symbol-size);max-width:95%;max-height:95%;padding:0}
#game .reel-item{box-shadow:none!important}
#game .vault .cabinet{overflow:visible}
#game .vault[data-vault-state="locked"] .cabinet{visibility:hidden}
#game .vault-door{inset:0;overflow:hidden;background:#38200f;border:0;border-radius:0;box-shadow:none;gap:2px;justify-content:flex-end;padding:0 3% 5%;color:#ffe8ae}
#game .vault-door .vault-door-art{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;z-index:-1}
#game .vault-door strong,#game .vault-door small{background:#1e110ad9;border-radius:4px;padding:2px 6px;color:#ffe8ae;text-shadow:0 1px 2px #000;line-height:1.15}
#game .vault-door strong{font-size:clamp(9px,1.5vw,18px)}
#game .vault-door small{font-size:clamp(8px,1.1vw,13px)}
#game[data-mode="hold"] #buy,#game[data-mode="super"] #buy{display:none!important}
#game[data-mode="hold"] .mascot{z-index:6;pointer-events:none}
#game .hold-prize-flight{position:absolute;overflow:visible;border:0;background:none;pointer-events:none;z-index:30}
#game .controls .studio-amount{display:flex;justify-content:center;align-items:center}
#game .controls output.studio-amount{height:calc(var(--hud-value-size,16px)*1.18);min-height:calc(var(--hud-value-size,16px)*1.18)}
#game .controls .studio-amount .award-number{filter:drop-shadow(0 1px 1px #150420aa)}
.symbol-sparkle{position:absolute!important;aspect-ratio:1;z-index:7;pointer-events:none;background:radial-gradient(circle,#fff 0 12%,#fff0a0 28%,#ffbd37 64%,#e9821700 75%);clip-path:polygon(50% 0,59% 39%,100% 50%,59% 60%,50% 100%,41% 60%,0 50%,41% 39%);filter:drop-shadow(0 0 3px #ffce54)}
.symbol-sparkle.sparkle-cyan{background:radial-gradient(circle,#fff,#88ffff 35%,#43bbed 65%,#43bbed00 75%)}
@media(prefers-reduced-motion:reduce){.symbol-sparkle{display:none}}
#game[data-mode="hold"] #feature-readout,#game[data-mode="super"] #feature-readout{font-family:RaidersPlaque,Georgia,serif;font-weight:800;letter-spacing:.2px}
#game .vault .cell[data-value-variant="treasure"]{overflow:visible;z-index:2}
#game .vault .cell[data-value-variant="treasure"]>.symbol{width:120%;height:134%;max-width:none;max-height:none;filter:drop-shadow(0 2px 2px #08030899)}
#game .feature-strip .reel-item{overflow:visible}
#game .feature-strip .reel-item>.symbol{width:120%;height:134%;max-width:none;max-height:none;filter:drop-shadow(0 2px 2px #08030899)}
#game #base-board .cell[data-value-variant="treasure"]{overflow:visible}
#game #base-board .cell[data-value-variant="treasure"]>.symbol{width:102%;height:108%;max-width:none;max-height:none;padding:0}
#game .cell[data-value-variant="treasure"]>.symbol-amount{overflow:visible;text-shadow:none}
#game .cell[data-kind="boost"]>.symbol-amount{filter:hue-rotate(115deg) saturate(.7) brightness(1.2)}
#game .cell[data-kind="collector"]>.symbol-amount{filter:drop-shadow(0 0 2px #ffae4266)}
.award-number .award-currency{width:calc(var(--award-height)*.55);height:100%;margin:0;background:none;box-shadow:none;font:900 calc(var(--award-height)*.86)/1.1 RaidersPlaque,Georgia,serif;color:#ffe78b;text-shadow:1px 1px #441351}

/* Book-authored modifier feedback uses the painted sprites, without new frames. */
#game .cell.is-collect-source>.symbol{filter:brightness(1.2) drop-shadow(0 0 5px #ffc955)}
#game .cell[data-collecting="true"]>.symbol{filter:brightness(1.25) drop-shadow(0 0 8px #ffc955)}
#game[data-modifier-feedback="true"] #feature-readout{visibility:hidden}
#game[data-modifier-feedback="true"] #status{visibility:visible;font-family:RaidersPlaque,Georgia,serif;font-weight:800;color:#ffe7b5;z-index:14}
@media(orientation:portrait){#game[data-mode="super"] #feature-readout,#game[data-mode="super"] #status{font-size:10px;gap:4px}}
/* PLAY is lettering only; no generated box behind the entrance action. */
.boot #play-demo{background:none;border:0;box-shadow:none;color:#ffe099;font:700 clamp(24px,3.5vw,46px) RaidersPlaque,Georgia,serif;text-shadow:0 2px 2px #321207,0 0 12px #ffc95555}
.boot #play-demo:focus-visible{outline:0;text-decoration:underline;text-underline-offset:.2em}
#game[data-mode="wheel"] #status{visibility:hidden}
#wheel-go[data-continue="true"]{color:transparent;font-size:0}
#game .cell.wild-replacing>.symbol,#game .cell.wild-replacing>.symbol-amount{visibility:hidden}
#wheel-values{position:absolute;inset:0;pointer-events:none;z-index:2}
.wheel-prize-value{position:absolute;display:flex;align-items:center;justify-content:center;width:22%;height:10%;font-size:clamp(10px,2vw,28px);filter:drop-shadow(0 1px 2px #160700);line-height:1}
#game .bet-well #bet{left:18%!important;right:18%!important;width:64%!important}
#game .bet-well button{display:block;position:absolute;top:0;width:18%;height:100%;min-width:0;min-height:0;padding:0;background:none;border:0;box-shadow:none;color:#ffe4a0;font:700 clamp(14px,2vw,24px) RaidersPlaque,Georgia,serif;z-index:2}
#bet-minus{left:0}#bet-plus{right:0}#game[data-session="replay"] .bet-well button{display:none}

#game .collection-value{position:absolute;display:block;width:max-content;pointer-events:none;z-index:40;filter:drop-shadow(0 2px 3px #000);white-space:nowrap}
#game .cell.wild-replacing>*{visibility:hidden!important}
/* The authored WILD owns its silhouette; never illuminate the rectangular cell. */
#game .cell[data-kind="wild"]{background:transparent!important;box-shadow:none!important}

/* Premium portraits occupy their tile; object symbols retain open silhouettes. */
#game #base-board .cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])::before{content:"";display:block!important;position:absolute;inset:1%;z-index:0;pointer-events:none;background:var(--premium-animal-source) center/100% 100% no-repeat;box-shadow:none;border:0}
#game #base-board .cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"]){overflow:visible;z-index:2}
#game #base-board .cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])>.symbol{width:100%;height:112%;max-width:100%;max-height:112%;top:44%;padding:0;object-fit:cover;object-position:50% 38%;clip-path:polygon(5% 0,95% 0,95% 91%,5% 91%);z-index:1}
#game #base-board>.cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])::after{content:"";position:absolute;inset:1%;padding:6%;background:var(--premium-animal-source) center/100% 100% no-repeat;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;clip-path:polygon(0 35%,100% 35%,100% 100%,0 100%);z-index:2;pointer-events:none}
#game #base-board{overflow:visible}
#game #base-board .reel-item:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])>.symbol{top:50%;height:100%;max-height:100%;clip-path:inset(1%);object-position:50% 38%}
.object-symbol-rig{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--symbol-size);height:var(--symbol-size);max-width:95%;max-height:95%;pointer-events:none;overflow:visible;z-index:2;filter:drop-shadow(2px 3px 2px #0008)}
.cell.is-win>.object-symbol-rig{animation:sym-win-art-glow 1.04s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.cell.is-win>.object-symbol-rig{animation:none!important}}
#game #base-board .cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])[data-symbol-animation="idle-poses"]::before{animation:premium-idle-light .36s ease-in-out both}
#game #base-board .cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"]).is-win::before{animation:premium-win-light 1.04s ease-in-out infinite}
#game #base-board .cell:is([data-kind="lock"],[data-kind="thief-bag"]).is-win>.symbol{animation:sym-win-art-glow 1.04s ease-in-out infinite!important}
@keyframes premium-idle-light{0%,100%{filter:brightness(1)}50%{filter:brightness(1.15)}}
@keyframes premium-win-light{0%,100%{filter:brightness(1.1) drop-shadow(0 0 3px #ffd76577)}50%{filter:brightness(1.4) drop-shadow(0 0 7px #f4bf55aa)}}
@media(prefers-reduced-motion:reduce){#game #base-board .cell::before,#game #base-board .cell:is([data-kind="lock"],[data-kind="thief-bag"]).is-win>.symbol{animation:none!important}}
#game .modifier-value{color:#fff0a7;font-family:RaidersPlaque,Georgia,serif;text-shadow:0 2px 2px #321308,0 0 7px #ffce63;line-height:1.1}

/* Both layers share an uncropped pose box. Only the scarf/torso goes behind
   the gold rim; alpha around ears and cheeks owns the foreground silhouette. */
#game #base-board>.cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])>.symbol,
#game #base-board>.cell>.premium-head{position:absolute;left:50%;top:40%;width:108%;height:120%;max-width:none;max-height:none;padding:0;object-fit:contain;object-position:center;transform:translate(-50%,-50%);pointer-events:none;animation:none!important}
#game #base-board>.cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])>.symbol{clip-path:inset(0 6% 8%);z-index:1}
#game #base-board>.cell>.premium-head{clip-path:inset(0 0 22%);z-index:3;filter:drop-shadow(0 2px 2px #09031899)}
#game #base-board>.cell[data-reel-covered="true"]{visibility:hidden}
#game #base-board>.cell:is([data-kind="raccoon"],[data-kind="fox"],[data-kind="owl"])::after{clip-path:none}
#game #base-board>.cell.is-win>.premium-head{animation:premium-head-win 1.04s ease-in-out infinite!important}
@keyframes premium-head-win{0%,100%{filter:brightness(1.08) drop-shadow(0 2px 2px #09031899)}50%{filter:brightness(1.18) drop-shadow(0 0 5px #ffc75999)}}
@media(prefers-reduced-motion:reduce){#game #base-board>.cell.is-win>.premium-head{animation:none!important}}
