body.game-straya{--straya-gold:#efbc64;--straya-ink:#07191f;background:radial-gradient(ellipse at top,#18363e,#050b10 75%);color:#fff0d6}
.game-straya .cabinet{border-color:#ac8246;background:linear-gradient(150deg,#1c3035,#091318 60%);box-shadow:0 18px 70px #0008,inset 0 0 0 2px #f3c57316}.game-straya .dragon-title{letter-spacing:.24em;color:#ebbf78}.game-straya .theme-panel{height:clamp(130px,23vw,210px);position:relative;overflow:hidden;background:#081820}.game-straya .theme-panel .cabinet-header-art{display:none}.game-straya .theme-panel h1{position:absolute;display:block!important;left:8%;bottom:14%;margin:0;font:900 clamp(38px,9vw,78px)/.9 Impact,'Arial Black',sans-serif;letter-spacing:.1em;color:#ffe3a6;text-shadow:0 3px #51210f,0 6px 15px #000}.straya-header-scene{position:absolute;inset:0;width:100%;height:100%}.game-straya .feature-board{background:#081e24}.game-straya .feature-board strong{color:#f4c673;font-size:clamp(10px,2.4vw,15px)}.game-straya .feature-board small{color:#d7d7bd}.game-straya .feature{height:40px;box-sizing:border-box;overflow:hidden;font-size:clamp(9px,2.2vw,12px)}.game-straya .reels{background:radial-gradient(ellipse at 50% 35%,#254047,#08151a 80%)}.game-straya .reel,.game-straya .reel-strip,.game-straya .cell{background:transparent!important;border-color:transparent!important;box-shadow:none!important}.game-straya .cell{isolation:isolate}.straya-symbol{display:block;width:100%;height:100%;overflow:hidden;filter:drop-shadow(0 3px 4px #0007)}.game-straya .cell>.straya-symbol{width:82%;height:82%;max-height:82%;margin:auto;flex:none}.game-straya .cell>small{display:none}.game-straya .cell[data-symbol="6"]>.straya-symbol{width:78%;height:78%}.game-straya .cell.straya-scatter>.straya-symbol{filter:drop-shadow(0 0 6px #efbe69a0)}.game-straya .cell.win>.straya-symbol{animation:straya-symbol-win .9s ease-in-out infinite alternate}.game-straya .pay-art .straya-symbol{width:52px;height:52px}.game-straya #spin{background:linear-gradient(#f3cc88,#b97a31);color:#1c190f;border-color:#ffe4ac}.game-straya .message{height:54px;box-sizing:border-box;overflow:hidden}.game-straya .machine{isolation:isolate}.straya-modifier{position:absolute;inset:0;z-index:45;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(transparent 50%,#051014b3)}.straya-modifier .straya-actor{width:40%;height:88%;filter:drop-shadow(0 8px 8px #0008);transform:translateX(-12%)}.straya-modifier strong{position:absolute;bottom:6%;left:3%;right:3%;text-align:center;font:900 clamp(16px,4vw,36px)/1.1 Impact,sans-serif;letter-spacing:.07em;color:#ffe3a0;text-shadow:0 2px 5px #000}.straya-chewed{animation:straya-chew .35s ease-out}.straya-scene{display:block;width:100%;height:100%}
#strayaFeature{width:min(900px,calc(100vw - 20px));max-width:none;max-height:calc(100dvh - 24px);padding:0;overflow-y:auto;border:1px solid #b99a63;border-radius:18px;background:#0b1b21;color:#fff0d6;box-shadow:0 20px 90px #000c;font-family:Arial,sans-serif}#strayaFeature::backdrop{background:#02090eea;backdrop-filter:blur(8px)}#strayaFeature header{padding:20px 18px 16px;text-align:center;background:linear-gradient(110deg,#1e363c,#0c1d23)}#strayaFeature header>span{font-size:10px;letter-spacing:.2em;color:#d9b575}#strayaFeature h2{font:900 clamp(23px,5.2vw,44px)/1.04 Impact,'Arial Black',sans-serif;letter-spacing:.045em;margin:9px 0;color:#ffdda0;overflow-wrap:anywhere}#strayaFeature header p{font-size:12px;margin:8px 0 0;color:#c4d0ce}.straya-stage{height:clamp(240px,43vw,370px);position:relative;overflow:hidden;isolation:isolate;background:#061118}.straya-feature-intro{height:100%;position:relative;display:grid;grid-template-columns:42% 58%;align-items:center}.straya-feature-intro>.straya-scene{position:absolute;inset:0;opacity:.5;z-index:-1}.straya-host{height:90%;padding:10px;box-sizing:border-box;align-self:end}.straya-intro-copy{padding:15px 8%;text-shadow:0 2px 6px #000}.straya-intro-copy>strong{font:900 clamp(25px,6vw,54px)/1.05 Impact,sans-serif;color:#ffe3a8;display:block}.straya-intro-copy p{font-size:clamp(12px,2.7vw,17px);line-height:1.5;max-width:26ch}.straya-feature-stats{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:8px;padding:15px 12px;background:#10272d;border-block:1px solid #68807855}.straya-feature-stats>span{display:grid;text-align:center;gap:6px;min-width:0}.straya-feature-stats small{font-size:9px;color:#bdd0d0;letter-spacing:.12em}.straya-feature-stats b{font-size:clamp(15px,3.6vw,24px);overflow-wrap:anywhere;color:#f9ce81}.straya-feature-status{height:46px;box-sizing:border-box;margin:0!important;padding:10px 16px;font-size:12px!important;line-height:1.3;text-align:center;overflow:auto;color:#e2d8bb}#strayaFeature footer{padding:12px 16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}#strayaFeature footer label{font-size:10px;display:flex;align-items:center;gap:7px;color:#b9c8c8}#strayaFeature footer input{accent-color:#efbc64;width:18px;height:18px}#strayaFeature .straya-advance{min-height:48px;min-width:46%;padding:12px 15px;border-radius:9px;border:1px solid #ffe6b7;background:linear-gradient(#f6d58e,#c28a40);font-weight:900;color:#172127;cursor:pointer}#strayaFeature button:disabled{opacity:.65}#strayaFeature button:focus-visible{outline:3px solid white;outline-offset:3px}
.straya-house{position:relative;height:100%;overflow:hidden}.straya-house>.straya-scene{position:absolute;inset:0;opacity:.8}.straya-rooms{position:absolute;inset:19% 1.5% 8%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2%}.straya-room{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;border-radius:5px;padding-top:6px;background:linear-gradient(#081416d9,transparent 47%);color:#ffeac9}.straya-room>small{font-size:clamp(7px,1.65vw,11px);letter-spacing:.05em}.straya-room>strong{font-size:clamp(10px,2.3vw,18px);margin-top:8px;color:#ffe099}.straya-guests{display:flex;align-items:flex-end;justify-content:center;position:absolute;inset:30% 0 20%;color:#dd7b60}.straya-guests svg{max-width:32%;height:80%;filter:drop-shadow(0 2px #000);animation:straya-dance .65s calc(var(--guest)*-.17s) ease-in-out infinite alternate;transform-origin:50% 95%}.straya-room:nth-child(even) .straya-guests{color:#77bebe}.straya-room-value{margin-top:auto;width:100%;background:#07171fec;padding:7px 0;border-top:1px solid #e6b77788}.straya-room-value b{display:block;font-size:clamp(10px,2.5vw,20px);overflow-wrap:anywhere}.straya-room-value span{display:block;font-size:clamp(7px,1.5vw,10px);margin-top:4px;color:#c7d6d4}.straya-levels{display:flex;gap:3px;margin-top:7px;width:90%}.straya-levels i{height:4px;flex:1;background:#102229;border:1px solid #c0c8b733}.straya-levels i.lit{background:#ffe396;box-shadow:0 0 9px #fdb955}.arriving{animation:straya-room-light .7s ease-out}.straya-headlights{position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,#fff5c8cc 50%,transparent 75%);animation:straya-headlights 1.8s ease-out forwards;pointer-events:none}.summary .straya-guests svg{animation-play-state:paused}
.straya-table{height:100%;position:relative;background:url('assets/straya/restaurant.webp') center 54%/cover}.straya-table-dishes{position:absolute;inset:15% 4% 2%}.straya-dish{position:absolute;width:22%;height:30%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;filter:drop-shadow(0 7px 5px #0008)}.straya-plate{position:relative;display:flex;align-items:center;justify-content:center;width:85%;height:65%;border-radius:50%;border:5px solid #f0dfc5;box-shadow:inset 0 0 0 2px #a5382f,inset 0 0 12px #aa784a;background:#ecd0a0}.straya-plate i{display:block;width:28%;height:52%;margin:-2px;border:2px solid #a7773f;border-radius:50% 50% 35% 35%;background:repeating-linear-gradient(85deg,#d8b971 0 3px,#efd7a0 4px 7px);transform:rotate(-15deg);box-shadow:0 2px 3px #65462466}.straya-plate i:nth-child(2){transform:translateY(-10%) rotate(12deg)}.straya-dish b{font-size:clamp(11px,3vw,24px);line-height:1.2;padding:2px 6px;background:#17272eee;color:#fff4cd;border:1px solid #b8955b;border-radius:5px;max-width:115%;overflow-wrap:anywhere}.straya-dish.collected{opacity:.38}.straya-dish.collected .straya-plate i{visibility:hidden}.straya-collect-zones{position:absolute;left:0;right:0;bottom:8%;display:flex;justify-content:space-around;pointer-events:none;color:#ffe3a0;font-size:9px;letter-spacing:.15em}.straya-double{position:absolute;top:5%;left:0;right:0;text-align:center;font-size:clamp(15px,3vw,24px);color:#ffe3a0;text-shadow:0 2px 5px #000}.straya-jackpot{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.straya-jackpot>.straya-scene{position:absolute;inset:0;z-index:-1;opacity:.5}.straya-jackpot strong{font:900 clamp(50px,13vw,110px)/1 Impact,sans-serif;color:#ffe49f;text-shadow:0 0 30px #ffba3a}.straya-jackpot>span{font-size:12px;letter-spacing:.3em}.straya-fireworks{position:absolute;inset:0;box-shadow:inset 0 0 100px #ffd78388;animation:straya-symbol-win .7s infinite alternate;pointer-events:none}.straya-collected{padding:50px 20px;text-align:center;font-size:clamp(26px,6vw,50px);overflow-wrap:anywhere;color:#ffdb93}
.game-straya #banditDialog{background:linear-gradient(#122d36,#06141d);border-color:#dca35f}.game-straya #banditDialog .raid-portrait{display:none}.straya-boot-host{height:110px;max-width:200px;margin:auto}.straya-boot p{font-size:13px}.straya-parcels{display:grid;gap:15px}.straya-parcels section>small{display:block;text-align:left;color:#b3c3c6;font-size:10px;letter-spacing:.12em;margin-bottom:7px}.straya-parcels section>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.straya-parcels button{position:relative;display:grid;align-content:center;gap:8px;min-height:96px;min-width:0;padding:13px 6px;border:2px solid #826b51;border-radius:8px;color:#f2dfbf;background:linear-gradient(140deg,#6c5438,#322920);overflow:hidden}.straya-parcels button b{font-size:clamp(18px,4.5vw,30px);position:relative;overflow-wrap:anywhere;z-index:1}.straya-parcels button small{font-size:10px;position:relative;z-index:1}.parcel-ribbon{position:absolute;inset:0 43%;background:#c7b08344;box-shadow:0 0 0 1px #dfc59e33}.straya-parcels button.chosen{border-color:#ffe29a;background:linear-gradient(130deg,#8b581b,#34261a);color:#ffeba7;opacity:1!important;box-shadow:0 0 18px #f7b94e33}.straya-parcels button.missed{border-color:#c75d5f;background:linear-gradient(130deg,#632d39,#241a24);color:#f3a7b0;opacity:1!important}.straya-parcels button.sealed:disabled{opacity:.35}.straya-boot-total{border-top:1px solid #bd955b77;padding-top:16px;color:#ffe0a3;font-weight:900}
@keyframes straya-symbol-win{to{filter:drop-shadow(0 0 9px #efba62);transform:scale(1.04)}}@keyframes straya-chew{to{transform:scale(.65);opacity:.4}}@keyframes straya-dance{to{transform:rotate(9deg) translateY(-3px)}}@keyframes straya-room-light{from{box-shadow:inset 0 0 40px #ffda7b;transform:translateY(3px)}to{box-shadow:inset 0 0 0 transparent}}@keyframes straya-headlights{from{transform:translateX(-120%)}to{transform:translateX(150%)}}
@media(max-width:420px){#strayaFeature header{padding:14px 10px 12px}.straya-stage{height:245px}#strayaFeature footer{padding:8px 12px 14px}.straya-feature-stats{padding:11px 8px}.straya-feature-status{font-size:11px!important;height:48px}.straya-room-value{padding:6px 1px}.straya-rooms{inset:15% 1% 9%;gap:1%}.straya-host{padding:6px}.straya-intro-copy{padding:8px}.straya-intro-copy p{line-height:1.4}.straya-parcels{gap:10px}}
@media(prefers-reduced-motion:reduce){.game-straya *,.straya-guests svg,.straya-headlights,.straya-fireworks,.arriving{animation:none!important;transition:none!important}}

.straya-guest{display:block;max-width:42%;width:42%;height:100%;margin:0 -5%;animation:straya-dance .8s calc(var(--guest)*-.18s) ease-in-out infinite alternate;transform-origin:50% 95%}.straya-guests .straya-extra{width:100%;max-width:none;height:100%;animation:none;filter:drop-shadow(0 3px 4px #0008)}.straya-food{display:block;width:100%;height:85%}.straya-food svg{width:100%;height:100%;overflow:hidden}.straya-dish.collected .straya-food{opacity:.3}.straya-dish{height:36%}.summary .straya-guest{animation-play-state:paused}.game-picker{grid-template-columns:repeat(6,minmax(0,1fr))}.game-straya .reel-tile>.straya-symbol{width:82%;height:82%;margin:auto}.game-straya .feature-board>div{background:#10272c;border-radius:8px;border:1px solid #9c7e49;padding:10px 3px}.game-straya .feature-board{display:grid}

body .game-picker{grid-template-columns:repeat(6,minmax(0,1fr))!important}.game-picker button{min-width:0}.game-straya .cabinet .dragon-title{font:700 12px/1.3 Arial,sans-serif!important;letter-spacing:.19em!important;padding:15px 8px;text-shadow:none!important}.game-straya .feature>span:after{content:none!important}#strayaPreviewControls button{padding:9px 13px;border:1px solid #a98754;border-radius:6px;background:#15313a;color:#ffe5ae;font-size:11px}.game-straya .feature-board strong{font-family:Arial,sans-serif}.game-straya .jackpots>div:nth-child(n+3){display:flex}

.game-straya .cabinet .dragon-title{-webkit-text-stroke:0!important}.game-straya .feature>span{font-size:10px}.game-straya .feature{background:#0c2028}.game-straya .straya-symbol{overflow:hidden!important}.game-straya .reel:after{box-shadow:inset 0 10px 16px -12px #0009,inset 0 -10px 16px -12px #0009!important}

.straya-finale-cast{position:absolute;inset:12% 4% 0;display:flex;align-items:flex-end;opacity:.85;z-index:-1}.straya-finale-cast>span{width:20%;height:83%;animation:straya-cast-arrive .8s both}.straya-finale-cast>span:nth-child(even){height:70%;animation-delay:.15s}.straya-finale-cast>span:nth-child(3){height:96%;animation-delay:.3s}.straya-jackpot.finale strong{text-shadow:0 3px 5px #000,0 0 30px #f9ac38;background:#07151aaa;padding:8px 20px;border-radius:12px}.straya-jackpot.finale>span{background:#07151add;padding:6px 16px;border-radius:5px}.straya-parcels button.chosen,.straya-parcels button.missed{animation:straya-parcel-open .5s ease-out}.straya-feature-stats{min-height:76px;box-sizing:border-box}.straya-feature-stats b{font-variant-numeric:tabular-nums}#strayaFeature header{margin:0}.straya-dish b{font-variant-numeric:tabular-nums}
@keyframes straya-cast-arrive{from{transform:translateY(70%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes straya-parcel-open{from{transform:perspective(600px) rotateX(-12deg);filter:brightness(2)}to{transform:none;filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){#strayaFeature *,.straya-parcels *{animation:none!important;transition:none!important}}

.straya-collect-zones{left:18%;right:18%}

/* Match the shared raid selector specificity without changing other games. */
body.game-straya #banditDialog .raid-title{margin:18px 12px 14px;font-size:clamp(24px,5vw,38px);line-height:1.12;letter-spacing:1px;filter:none;overflow-wrap:anywhere}
body.game-straya #banditDialog .straya-parcels button{min-height:96px;padding:13px 6px}
body.game-straya #banditDialog .straya-parcels button.chosen{background:linear-gradient(135deg,#a06a1e,#473116);border:2px solid #ffe296;color:#fff0b7;box-shadow:inset 0 0 18px #ffc95b22,0 0 15px #f7b94e33;opacity:1}
body.game-straya #banditDialog .straya-parcels button.missed{background:linear-gradient(135deg,#78283d,#351824);border:2px solid #e77285;color:#ffd1d9;box-shadow:inset 0 0 18px #ed456622;opacity:1}
.game-straya .straya-scatter.landed>.straya-symbol{animation:none}
.straya-room.arriving .straya-guest{animation:straya-guest-arrive .75s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--guest)*.035s)}
.straya-room.arriving>strong{animation:straya-gold-land .8s ease-out}
@keyframes straya-gold-land{0%{filter:brightness(1)}35%{filter:sepia(.65) saturate(2) brightness(1.6) drop-shadow(0 0 9px #ffd26d)}100%{filter:brightness(1)}}
@keyframes straya-guest-arrive{0%{opacity:0;transform:translate(55%,-15%) scale(.7)}55%{opacity:1;transform:translate(-5%,0) scale(1.03)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){body.game-straya .straya-scatter.landed>.straya-symbol,#strayaFeature *{animation:none!important}}

#strayaFeature footer:has(.straya-test-reconnect){flex-wrap:wrap}#strayaFeature .straya-test-reconnect{font:10px Arial;background:#233944;color:#d7e8eb;border:1px solid #52646d;border-radius:5px;padding:7px;margin-left:auto}

.straya-jackpot.finale .straya-finale-cast{inset:38% 4% 3%}.straya-jackpot.finale>strong{position:absolute;top:5%;font-size:clamp(42px,11vw,86px)}.straya-jackpot.finale>span{position:absolute;top:35%;font-size:clamp(9px,2.3vw,12px)}
@media(max-width:420px){.straya-feature-status{height:58px}}

#strayaFeature footer:has(.straya-stop-auto){flex-wrap:wrap}#strayaFeature .straya-stop-auto{padding:8px 12px;min-height:36px;border:1px solid #f17b82;border-radius:6px;background:#81232f;color:#fff;font-weight:700;font-size:11px}

/* Revision 2: readable symbols and a visible explanation of each result. */
body.game-straya .feature-board{display:none!important}
.game-straya .theme-panel{margin-bottom:10px}
.game-straya .cell>.straya-symbol,.game-straya .reel-tile>.straya-symbol{width:85%;height:85%;max-height:85%}
.game-straya .cell[data-symbol="6"]>.straya-symbol{width:82%;height:82%}
.straya-action-caption{position:absolute;bottom:3%;left:4%;right:4%;text-align:center;padding:8px;background:#07191fed;border:1px solid #bd955b;border-radius:8px}
.straya-modifier .straya-action-caption strong{position:static;display:block;font-size:clamp(15px,3.6vw,28px)}
.straya-action-caption span{display:block;font:700 clamp(12px,2.7vw,18px)/1.4 Arial;color:#fff2ca;margin-top:4px}
.straya-target{outline:2px solid #ffdc76;outline-offset:-6px;animation:straya-chew .4s alternate 2}
.straya-slide{animation:straya-row-slide .6s ease-in-out}
@keyframes straya-row-slide{50%{transform:translateX(30%);filter:brightness(1.5)}}
#strayaFeature{width:min(860px,calc(100vw - 20px))}
#strayaFeature header{padding:16px 16px 13px}
#strayaFeature h2{font-size:clamp(24px,5vw,39px)}
#strayaFeature header p{font-size:13px;line-height:1.35}
.straya-stage{height:380px}
.straya-intro-copy{padding:12px 7% 12px 0}
.straya-intro-copy>strong{font-size:clamp(25px,5vw,44px)}
.straya-intro-copy ol{padding-left:22px;margin:16px 0 0;font-size:clamp(12px,2.7vw,16px);line-height:1.5}
.straya-intro-copy li{margin:9px 0;padding-left:3px}
.straya-intro-copy li::marker{color:#f8c776;font-weight:900}
.straya-feature-stats{grid-template-columns:1fr 1.5fr 1fr;padding:11px 10px;min-height:88px}
.straya-feature-stats small{font-size:9px;letter-spacing:.05em}
.straya-feature-stats b{font-size:clamp(16px,3.7vw,25px)}
.straya-feature-stats>span{align-content:center;gap:5px}
.straya-feature-stats>span:nth-child(2){border-inline:1px solid #d7b77e33}
.straya-feature-status{height:64px;padding:12px 18px;font-size:13px!important;line-height:1.45;display:flex;align-items:center;justify-content:center}
.straya-help{margin:0 16px;border-top:1px solid #d8bf822b;color:#c5d5d5;font-size:12px;line-height:1.5}
.straya-help summary{cursor:pointer;padding:10px 0;color:#e9c890;font-size:10px;letter-spacing:.08em}
.straya-help ol{padding-left:23px;margin:0 0 8px}.straya-help p{margin:8px 0 12px}
#strayaFeature footer{padding:10px 16px 16px;gap:10px}#strayaFeature footer label{line-height:1.3;max-width:130px;font-size:10px}
#strayaFeature .straya-advance{font-size:14px;min-width:52%;overflow-wrap:anywhere}
.straya-room-hint{position:absolute;left:4%;right:4%;top:5%;text-align:center;font-size:13px;line-height:1.4;color:#f8e5c1}
.straya-house>.straya-scene{opacity:.35}
.straya-rooms{inset:19% 3% 6%;gap:10px}
.straya-room{background:linear-gradient(#15353aed,#071d23d9);border:1px solid #738778;border-radius:10px;padding:13px 4px 8px;box-shadow:0 5px 12px #0005}
.straya-room>small{font-size:10px;font-weight:700;letter-spacing:.04em}
.straya-room>strong{font-size:clamp(16px,3.3vw,24px);margin-top:9px;overflow-wrap:anywhere;max-width:100%}
.straya-guests{inset:30% 4% 28%;opacity:.8}
.straya-room-value{border:0;background:#07191fea;padding:6px 0 0}
.straya-room-value span{font-size:10px;line-height:1.3;min-height:25px;margin:0}
.straya-room-value>small{font-size:9px;color:#d3ded4}
.straya-guest-progress{display:flex;gap:4px;margin:5px auto;width:65%}
.straya-guest-progress i{height:7px;flex:1;background:#365259;border-radius:4px}
.straya-guest-progress i.lit{background:#ffdb82;box-shadow:0 0 7px #ffcb6666}
.straya-arrival-count{position:absolute;top:30%;left:0;right:0;padding:4px 2px;background:#edc56b;color:#102126;font:bold 10px Arial;animation:straya-arrival-label .9s both}
@keyframes straya-arrival-label{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.straya-stage.restaurant.playing .straya-table{height:calc(100% - 66px)}
.straya-table-instruction{position:absolute;top:10px;left:3%;right:3%;text-align:center;font-size:12px;background:#07191fe8;padding:7px;border-radius:6px;color:#ffe2a8;z-index:3}
.straya-table-dishes{inset:12% 3% 0}
.straya-dish{height:33%;width:24%}
.straya-dish b{font-size:clamp(12px,2.8vw,21px);font-weight:900;color:#fff7dd;background:#102127;border:1px solid #ffcf77}
.straya-dish.collected{opacity:1}
.straya-paid-spot{border:2px dashed #ffd783;background:#372c16c9;width:95%;height:72%;border-radius:50%;display:grid;place-items:center;font:bold 10px Arial;color:#ffe29e;letter-spacing:.04em}
.straya-table-centre{position:absolute;left:38%;right:38%;top:43%;font:bold 11px/1.35 Arial;text-align:center;color:#fff0cd;text-shadow:0 2px 3px #000}
.straya-serving{filter:drop-shadow(0 0 15px #ffe185);outline:3px solid #ffdb75;border-radius:30%;animation:straya-symbol-win .3s alternate 2}
.straya-service-receipt{height:66px;box-sizing:border-box;display:grid;align-content:center;gap:5px;background:#172e31;text-align:center;padding:8px 10px;border-top:1px solid #b99359}
.straya-service-receipt>span{font-size:9px;color:#d3dace;letter-spacing:.1em}
.straya-service-receipt>b{font-size:clamp(12px,2.8vw,19px);color:#ffdd8a;overflow-wrap:anywhere}
.straya-summary{height:100%;display:grid;grid-template-columns:30% 1fr;gap:15px;align-items:center;padding:20px 6%;box-sizing:border-box;background:radial-gradient(ellipse at left,#20454c,#0b1c23)}
.straya-summary-host{height:75%;min-width:0}.straya-receipt{min-width:0;font-size:13px}
.straya-receipt>small{display:block;font-size:10px;color:#d9be89;letter-spacing:.08em;margin-bottom:15px}
.straya-receipt>div{display:flex;gap:12px;justify-content:space-between;border-bottom:1px solid #b8c4af26;padding:9px 0}
.straya-receipt b{font-variant-numeric:tabular-nums;color:#fff0c2;overflow-wrap:anywhere;min-width:0;text-align:right}
.straya-receipt .total{font-weight:900;font-size:clamp(17px,3.5vw,24px);border-top:2px solid #dbb76a;border-bottom:0;margin-top:12px;color:#ffdd8a}
.straya-receipt p{font-size:12px;color:#c5d3cd;line-height:1.4}
@media(max-width:540px){
 .straya-stage{height:370px}.straya-stage.intro{height:300px}.straya-stage.jackpot{height:290px}
 .straya-feature-intro{grid-template-columns:34% 66%}.straya-host{height:76%;padding:5px}.straya-intro-copy{padding:12px 12px 12px 4px}.straya-intro-copy ol{padding-left:18px;font-size:12px;line-height:1.45}.straya-intro-copy li{margin:9px 0}
 .straya-rooms{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:1fr 1fr;inset:16% 3% 4%;gap:9px}.straya-room{grid-column:span 2;padding:9px 4px 6px}.straya-room:nth-child(4){grid-column:2/span 2}.straya-room:nth-child(5){grid-column:4/span 2}.straya-room>small{font-size:9px}.straya-room>strong{font-size:18px;margin-top:6px}.straya-room-value span{font-size:9px;min-height:13px}.straya-room-value>small{font-size:8px}.straya-guests{inset:30% 4% 36%}.straya-room-hint{font-size:11px;top:3%;left:6%;right:6%}.straya-arrival-count{top:42%;font-size:8px;padding:3px 0}.straya-guest-progress{margin:4px auto}.straya-guest-progress i{height:5px}
 .straya-summary{grid-template-columns:1fr;padding:17px 8%;gap:0}.straya-summary-host{display:none}.straya-receipt{font-size:12px}.straya-receipt>div{padding:9px 0}.straya-receipt>small{margin-bottom:10px}
 .straya-feature-status{height:76px;font-size:12px!important;padding:10px 13px}.straya-feature-stats small{font-size:8px}.straya-feature-stats{padding:10px 6px;gap:4px}
 .straya-table-centre{font-size:9px}.straya-paid-spot{font-size:8px}.straya-table-instruction{font-size:11px}.straya-help{font-size:11px}
 #strayaFeature footer{flex-wrap:wrap}#strayaFeature footer label{max-width:100px}#strayaFeature .straya-advance{flex:1;font-size:12px;min-width:54%}
}
@media(prefers-reduced-motion:reduce){.straya-slide,.straya-target,.straya-serving,.straya-arrival-count{animation:none!important}}
#strayaGuide{margin:12px 0;border:1px solid #957d4d66;border-radius:8px;background:#0b2028;color:#e7ddd0}#strayaGuide>summary{padding:14px;font:700 11px Arial;letter-spacing:.04em;cursor:pointer;color:#f3ce8c}.straya-cast-guide{padding:0 14px 10px;display:grid;gap:12px}.straya-cast-guide article{display:grid;grid-template-columns:66px 1fr;gap:13px;align-items:center;border-top:1px solid #b59a5d33;padding-top:12px}.straya-cast-guide .straya-symbol{height:70px}.straya-cast-guide h3{font:700 12px/1.4 Arial;margin:0 0 5px;color:#ffe1a5}.straya-cast-guide p{font:12px/1.5 Arial;margin:0;color:#c4d2d2}
/* Persistent features live below the fixed-size reels. */
#strayaPersistent{height:98px;box-sizing:border-box;margin:8px 0;overflow:hidden;border:1px solid #689252;border-radius:9px;background:#0b231c;color:#eaf6cb}
#strayaPersistent[hidden]{display:none}.straya-pasture-meter{display:grid;grid-template-columns:1.2fr 1fr;gap:4px;padding:10px 12px 6px}.straya-pasture-meter strong{font:900 12px Arial;letter-spacing:.06em}.straya-pasture-meter small{display:block;font:10px/1.4 Arial;color:#c2d7aa;margin-top:3px}.straya-pasture-meter>b{text-align:right;font:900 19px Arial;color:#ddfbaa;min-width:0;overflow-wrap:anywhere}.straya-pasture-meter>b small{font-size:8px}.straya-grass-progress{display:flex;gap:10px;grid-column:1/-1;font:700 9px Arial;color:#d9edb2}.straya-mate-meter{padding:6px 10px;background:#112a30;color:#abc4cb;font:700 9px Arial;text-align:center;letter-spacing:.03em}.straya-mate-meter.is-waiting{background:#243d52;color:#c6e9ff}
.game-straya .cell[data-symbol="13"],.game-straya .cell[data-symbol="2"]{position:relative}
.game-straya .straya-grass-cell>.straya-grass-art{width:94%;height:92%;max-height:92%;transform:scaleY(var(--grass-growth,1));transform-origin:50% 85%}
.straya-grass-value{position:absolute;bottom:5%;left:3%;right:3%;width:max-content;max-width:94%;margin:auto;text-align:center;font:900 clamp(10px,2.8vw,19px)/1.1 Arial;color:#f4ffd7;background:#0a291cec;border:1px solid #abd263;border-radius:5px;padding:3px 5px;box-sizing:border-box;overflow-wrap:anywhere;z-index:3}
.straya-waiting-label{position:absolute;bottom:2%;left:4%;right:4%;font:900 clamp(7px,1.5vw,10px) Arial;background:#122c43ec;color:#cbeeff;padding:4px 2px;text-align:center;border-radius:4px;z-index:3}
.straya-waiting-cell{outline:1px solid #81c2dd55;outline-offset:-4px}
.straya-growing .straya-grass-art{animation:straya-grow .6s cubic-bezier(.2,.7,.2,1)}
@keyframes straya-grow{0%{transform:scale(.75);filter:brightness(1)}60%{transform:scale(1.03);filter:brightness(1.5)}100%{transform:scaleY(var(--grass-growth,1));filter:brightness(1)}}
.straya-sticky-layer{position:absolute;inset:0;z-index:12;pointer-events:none}.straya-sticky-layer>.cell{background:#122e29!important;border-radius:8px;display:flex;align-items:center;justify-content:center;box-sizing:border-box}
.straya-gary-run{position:absolute;inset:0;z-index:55;pointer-events:none;overflow:hidden}
.straya-running-goat{position:absolute;width:34%;height:49%;left:-30%;top:35%;filter:drop-shadow(0 6px 5px #0008);z-index:2}.straya-running-goat>.straya-actor{width:100%;height:100%}
.straya-munch-caption{position:absolute;bottom:3%;left:6%;right:6%;background:#092019ed;border:1px solid #c6dc7b;border-radius:9px;padding:10px;text-align:center;z-index:4;color:#f3ffd4}.straya-munch-caption strong{display:block;font:900 clamp(13px,3.3vw,23px) Arial}.straya-munch-caption b{display:block;font:700 clamp(11px,2.6vw,17px) Arial;margin-top:4px;color:#e6c875}
.straya-skip{position:absolute;top:7px;right:7px;padding:7px 9px;font:700 9px Arial;background:#14271eea;color:#efffda;border:1px solid #adcb87;border-radius:5px;pointer-events:auto;z-index:5}
.straya-munched>.straya-symbol{animation:straya-munch .25s forwards}@keyframes straya-munch{to{transform:scaleY(.06);transform-origin:50% 90%;opacity:.1}}
.straya-mate-encounter{position:absolute;inset:5%;z-index:54;background:linear-gradient(#081923ee,#142d3cf5);border:1px solid #b6d1d8;border-radius:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px;box-sizing:border-box;text-align:center;color:#edf5f5}.straya-mate-encounter>div{display:flex;justify-content:center;height:65%;width:90%}.straya-mate-encounter .straya-symbol{width:48%;height:100%}.straya-mate-encounter strong{font:900 clamp(15px,3.8vw,28px)/1.1 Arial;margin:6px 0}.straya-mate-encounter p{font:12px/1.4 Arial;margin:4px 0}.straya-mate-encounter.found{box-shadow:inset 12px 0 30px #e5424b33,inset -12px 0 30px #378aed33}
.straya-boot-host{display:flex;max-width:280px}.straya-boot-host .straya-symbol{width:50%}
@media(max-width:420px){.straya-pasture-meter{padding:8px 9px 6px}.straya-pasture-meter strong{font-size:10px}.straya-pasture-meter small{font-size:9px}.straya-pasture-meter>b{font-size:17px}.straya-mate-meter{font-size:8px;padding:7px 4px}.straya-mate-encounter p{font-size:10px}.straya-munch-caption{padding:7px}.straya-grass-value{padding:2px 3px}}
@media(prefers-reduced-motion:reduce){.straya-growing .straya-grass-art,.straya-munched>.straya-symbol{animation:none!important}}

/* Keep the plate orbit and the painted tabletop in one coordinate system. */
.straya-table{background-size:100% 100%;background-position:center}
.straya-table-dishes,.straya-table-spots{position:absolute;inset:0}
.straya-table-spots{pointer-events:none}
.straya-table-spots>span{position:absolute;transform:translate(-50%,-35%);width:25%;height:21%;border:2px solid #ffd56f;border-radius:50%;background:#ffc85422;box-shadow:0 0 15px #ffc85433;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;box-sizing:border-box;color:#ffe4a1;font:bold 9px Arial}
.straya-table-dishes .straya-dish{width:20%;height:22%}
.straya-table-centre{left:36%;right:36%;top:57%;pointer-events:none}
.straya-serving{animation:none;outline:none;filter:drop-shadow(0 0 12px #ffe185)}
.straya-serving b{background:#ffe5a0;color:#352008;border-color:#fff3c7}
.straya-new-dish b{border-color:#9de3b5;box-shadow:0 0 9px #79d99d88}
.straya-paid-token{position:absolute;z-index:20;pointer-events:none;padding:7px 12px;border-radius:20px;background:#ffe5a0;color:#30220b;font:bold 16px Arial;white-space:nowrap;box-shadow:0 0 15px #ffd971}

.straya-collected-plate{z-index:30;pointer-events:none;filter:drop-shadow(0 0 12px #ffe185)}
.straya-bill-choice,.straya-tip-scene,.straya-dash-scene{height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;text-align:center;background:radial-gradient(ellipse at center,#613121,#160f12)}
.straya-bill-host{height:90px;width:100px}.straya-bill-host svg{width:100%;height:100%}
.straya-bill-choice h3,.straya-tip-scene h3,.straya-dash-scene h3{margin:0;font-size:18px;color:#ffe3a0}.straya-bill-choice>strong{font-size:30px;color:#ffdf82}.straya-bill-choice p{margin:4px 0;font-size:12px;line-height:1.45}.straya-bill-choice>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.straya-bill-pay,.straya-bill-dash{white-space:normal;min-height:48px}.straya-bill-dash{background:#69242c!important;border-color:#ee9d91!important}
.straya-tip-wheel{position:relative;width:220px;height:220px;flex-shrink:0;border-radius:50%;border:5px solid #ffdb7a;box-shadow:0 0 24px #ffbf5055;background:repeating-conic-gradient(from -22.5deg,#783430 0deg 45deg,#bd843b 45deg 90deg)}
.straya-tip-wheel>b{position:absolute;inset:8px 0 auto;height:100px;color:#fff7d9;transform-origin:50% 100%;transform:rotate(var(--angle));font:bold 17px Arial}.straya-tip-pointer{color:#fff0ba;z-index:2;margin-bottom:-18px;font-size:27px}.straya-tip-scene p,.straya-dash-scene p{font-size:12px;margin:5px}
.straya-dash-cast{display:flex;width:75%;height:170px}.straya-dash-cast svg{width:50%;height:100%}.straya-dash-result{font-weight:900;color:#ffdf82;font-size:20px;min-height:48px;display:grid;place-items:center}
@media(max-width:420px){.straya-bill-host{height:65px}.straya-bill-choice>div:last-child{gap:8px}.straya-bill-choice p{font-size:11px}.straya-tip-wheel{width:185px;height:185px}.straya-tip-wheel>b{height:82.5px}.straya-dash-result{font-size:17px}}
#strayaFeature .straya-bill-pay,#strayaFeature .straya-bill-dash{flex:1;min-width:0;min-height:54px;border-radius:9px;border:1px solid #ffe6ae;background:linear-gradient(#f1d193,#b9853b);color:#211b12;font:900 13px/1.3 Arial;padding:12px 8px;cursor:pointer}
#strayaFeature .straya-bill-dash{color:#fff1df;background:linear-gradient(#863641,#4b2028)!important;border-color:#ee9d91!important}
#strayaFeature:has(.straya-stage.bill) footer{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#strayaFeature:has(.straya-stage.bill) footer label{display:none}
#strayaFeature:has(.straya-stage.bill) .straya-test-reconnect{grid-column:1/-1;justify-self:end}

/* Revision 3: native held cells, integrated title, breeze, placemats. */
.game-straya .dragon-title,.game-straya .feature>span:first-child{display:none!important}
.game-straya .theme-panel{height:auto;aspect-ratio:3/1}
.game-straya .theme-panel h1{opacity:0;pointer-events:none}
.straya-header-art{display:block;width:100%;height:100%;object-fit:cover;animation:straya-header-drift 10s ease-in-out infinite alternate}
@keyframes straya-header-drift{from{transform:scale(1)}to{transform:scale(1.04) translateY(-1%)}}
.game-straya .cell.straya-cell-spinning{overflow:hidden!important;position:relative}
.straya-cell-roll{position:absolute;inset:0;will-change:transform}
.straya-cell-roll>div{display:flex;align-items:center;justify-content:center}
.straya-cell-roll .straya-symbol{width:82%;height:82%;flex:none}
.game-straya .straya-grass-cell>.straya-grass-art{transform-origin:50% 90%;transition:transform .6s ease}
.game-straya .straya-grown>.straya-grass-art{animation:straya-breeze 3.4s ease-in-out infinite alternate;animation-delay:var(--breeze-delay)}
@keyframes straya-breeze{0%{transform:scaleY(var(--grass-growth)) skewX(-3deg) rotate(-1deg)}100%{transform:scaleY(var(--grass-growth)) skewX(4deg) rotate(1deg)}}
#strayaPersistent{height:76px}.straya-mate-meter:empty{display:none}
.straya-table-spots>span{border-radius:16%;width:25%;height:20%;transform:translate(-50%,-30%) rotate(-2deg);border:1px solid #a09b8a;background:repeating-linear-gradient(4deg,#ddd8c6 0 2px,#c8c1ac 3px 4px);box-shadow:0 3px 4px #0008,inset 0 0 9px #69604580}
.straya-table-spots>span.paying{border:2px solid #ffe593;background:repeating-linear-gradient(4deg,#e2b547 0 2px,#b88929 3px 4px);box-shadow:0 0 14px #ffd56188,inset 0 0 12px #ffdd76}
.straya-feature-intro ol,.straya-help,#strayaFeature>header>p,.straya-room-hint,.straya-table-instruction{display:none}
@media(prefers-reduced-motion:reduce){.straya-header-art,.game-straya .straya-grown>.straya-grass-art{animation:none}}

.straya-raid-cast{display:flex;justify-content:center;height:180px}.straya-raid-cast>.straya-symbol{width:45%;height:100%}

.game-straya .feature-board{display:none}.straya-symbol{object-fit:contain}.game-straya #pays+*{display:none}

#strayaGuide{margin:0 0 10px;background:#10242b;border:1px solid #ac824655;border-radius:7px}#strayaGuide[hidden]{display:none}#strayaGuide>summary{padding:10px 12px;color:#eed9b4;font:bold 11px Arial;letter-spacing:.04em;cursor:pointer}


/* STRAYA final polish: persistent artwork must mask the reel strip underneath. */
.game-straya .cell.straya-grass-cell,
.game-straya .cell.straya-waiting-cell{
  isolation:isolate!important;
  overflow:hidden!important;
  background:linear-gradient(135deg,#15332c,#071d1b)!important;
}
.game-straya .cell.straya-waiting-cell{background:linear-gradient(135deg,#193b4d,#071b29)!important}
.game-straya .cell.straya-grass-cell>.straya-symbol,
.game-straya .cell.straya-waiting-cell>.straya-symbol{
  position:relative;z-index:2;max-width:100%;max-height:100%;
  object-fit:contain;filter:drop-shadow(0 4px 5px #0009);
}
.game-straya .cell.straya-grass-cell .straya-grass-value,
.game-straya .cell.straya-waiting-cell .straya-waiting-label{z-index:4}
.game-straya .cell.straya-grass-cell .straya-cell-roll,
.game-straya .cell.straya-waiting-cell .straya-cell-roll{display:none!important}
.game-straya .straya-grown:not(.straya-growing)>.straya-grass-art{
  animation:straya-breeze 3.4s ease-in-out infinite alternate;
  animation-delay:var(--breeze-delay,0s);
}
@media(prefers-reduced-motion:reduce){
 .game-straya .straya-grown>.straya-grass-art{animation:none!important}
}

/* Keep STRAYA's title within its integrated header art. */
.game-straya .theme-panel h1{display:none!important}

/* Cast guide stays above the STRAYA cabinet, close to the header. */
.game-straya #strayaGuide{display:block;position:relative;z-index:4;margin:6px auto 12px;padding:8px 12px;border:1px solid #ac8246;border-radius:9px;background:#10252b}
.game-straya #strayaGuide>summary{text-align:center;color:#f4c673;font-weight:900;cursor:pointer}

/* Keep STRAYA header artwork moving without a duplicate text overlay. */
.game-straya .theme-panel .straya-header-art{display:block;width:100%;height:100%;object-fit:cover;object-position:center;animation:straya-header-drift 9s ease-in-out infinite alternate}
@media(prefers-reduced-motion:reduce){.game-straya .theme-panel .straya-header-art{animation:none!important}}

/* Gary bonus: all transforms constrained to the stage, without layout shifts. */
#strayaGaryBonus{width:min(94vw,650px);max-height:94dvh;overflow:auto;background:#071812;color:#fff6d2;border:2px solid #cdb06c;border-radius:17px;padding:0;box-shadow:0 25px 90px #000d}
#strayaGaryBonus::backdrop{background:#030706df;backdrop-filter:blur(5px)}
#strayaGaryBonus .sg-shell{padding:clamp(12px,3vw,23px);display:grid;gap:13px;font-family:Arial,sans-serif}
#strayaGaryBonus header{display:flex;justify-content:space-between;gap:12px;align-items:center}
#strayaGaryBonus h2{font:bold clamp(19px,5vw,32px) Arial;margin:0;letter-spacing:.04em;color:#ddf89d}
#strayaGaryBonus .sg-turn{font:bold 12px Arial;color:#f9d78d;text-align:right}
#strayaGaryBonus .sg-stage{position:relative;overflow:hidden;border-radius:15px;border:2px solid #71894b;background:radial-gradient(ellipse at center,#2e6034,#122d1c 80%);aspect-ratio:5/3;isolation:isolate}
#strayaGaryBonus .sg-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:0}
#strayaGaryBonus .sg-slot{position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;min-width:0;border-right:1px solid #acc68613;border-bottom:1px solid #acc68613}
#strayaGaryBonus .sg-grass{position:absolute;inset:0;display:grid;place-items:center;filter:drop-shadow(0 2px 6px #0a160b)}
#strayaGaryBonus .sg-grass .straya-symbol{width:86%;height:86%}
#strayaGaryBonus .sg-slot b{z-index:2;position:relative;bottom:8%;font:bold clamp(10px,2.5vw,19px) Arial;color:#fffad3;text-shadow:0 2px 2px #000,1px 1px #000,-1px -1px #000;background:#15351dcc;border:1px solid #d5d77a80;border-radius:5px;padding:2px 3px;max-width:96%;overflow-wrap:anywhere}
#strayaGaryBonus .sg-runner{position:absolute;z-index:5;width:23%;height:34%;pointer-events:none;will-change:left,transform}
#strayaGaryBonus .sg-runner svg{width:100%;height:100%;filter:drop-shadow(0 5px 4px #0007)}
#strayaGaryBonus .sg-coin{position:absolute;z-index:8;font:bold clamp(12px,3vw,21px) Arial;color:#ffe7a6;text-shadow:0 0 10px #e2bb4f,0 2px 3px #000}
#strayaGaryBonus .sg-total{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#dcecb9}
#strayaGaryBonus .sg-total strong{font-size:clamp(19px,5vw,30px);color:#fff0a1}
#strayaGaryBonus footer{display:flex;gap:10px}
#strayaGaryBonus footer button{cursor:pointer;min-height:46px;border-radius:8px;border:1px solid #efd394;background:#d6ac62;color:#25190e;padding:10px 15px;font:bold 13px Arial}
#strayaGaryBonus footer .sg-next{flex:1}#strayaGaryBonus footer .sg-skip{background:#12352a;color:#d5efc5}
#strayaGaryBonus button:disabled{opacity:.55;cursor:wait}
.straya-with-grass .straya-grass-underlay{position:absolute;inset:12% 0 0;pointer-events:none;z-index:0;opacity:.74;filter:saturate(.75);transform-origin:50% 90%}
.straya-with-grass .straya-grass-underlay svg{width:100%;height:100%;animation:straya-under-breeze 3.3s ease-in-out infinite alternate;animation-delay:var(--breeze-delay)}
.straya-with-grass>.straya-symbol,.straya-with-grass>.straya-cell-roll{position:relative;z-index:2}
@keyframes straya-under-breeze{from{transform:skewX(-4deg) scaleY(.93)}to{transform:skewX(5deg) scaleY(1.03)}}
@media(prefers-reduced-motion:reduce){.straya-with-grass .straya-grass-underlay svg{animation:none}}

#strayaGaryBonus .sg-landing-goat{position:absolute;inset:-18% 0 0;z-index:10;display:grid;place-items:center;pointer-events:none}
#strayaGaryBonus .sg-landing-goat svg{width:100%;height:120%;filter:drop-shadow(0 5px 5px #0009)}
#strayaGaryBonus .sg-total .sg-cashing{text-shadow:0 0 18px #ffee80;color:#fff9b9;transition:color .25s,text-shadow .25s}
.straya-with-grass>.straya-symbol{filter:drop-shadow(0 2px 2px #071b1288)}
.straya-with-grass:has(.straya-cell-roll) .straya-grass-underlay{opacity:.6}
#strayaGaryBonus .sg-slot.has-grass{background:radial-gradient(ellipse at bottom,#75a63b29,transparent 70%)}

/* Grass enters as a reel symbol, then recedes behind the normal gameplay. */
.straya-with-grass[data-symbol="13"]>.straya-symbol{animation:straya-grass-recede 880ms .2s both}
.straya-with-grass:not([data-symbol="13"])>.straya-symbol{animation:straya-symbol-settle 520ms ease-out both}
.straya-with-grass .straya-grass-underlay{overflow:hidden;border-radius:inherit;mix-blend-mode:screen;opacity:.56}
.straya-with-grass .straya-grass-underlay .straya-grass-art{transform-origin:50% 95%}
@keyframes straya-grass-recede{0%,30%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(12%) scale(.83)}}
@keyframes straya-symbol-settle{0%{transform:translateY(-7%);filter:brightness(1.2)}66%{transform:translateY(3%)}100%{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.straya-with-grass>.straya-symbol{animation:none!important}.straya-with-grass[data-symbol="13"]>.straya-symbol{opacity:0}}


/* STRAYA viewport layers. Nothing persistent travels with the reel strip. */
.game-straya .reel{position:relative;isolation:isolate}
.game-straya .reel-strip{position:relative;z-index:1}
.game-straya .reel-tile,.game-straya .cell{background:transparent!important;border:0!important;border-radius:0;box-shadow:none!important}
.game-straya .cell>.straya-symbol,.game-straya .reel-tile>.straya-symbol{object-fit:contain;width:85%;height:85%;overflow:visible!important}
.game-straya .straya-field{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.game-straya .straya-field-back{z-index:0}
.game-straya .straya-field-front{z-index:2}
.game-straya .straya-field-patch{position:absolute;left:0;right:0;top:calc(var(--reel-peek,9px) + var(--row)*var(--cell-h));height:var(--cell-h);transform-origin:center bottom}
.game-straya .straya-field-patch>svg{width:100%;height:100%;filter:none;transform-origin:50% 100%;animation:straya-field-breeze var(--breeze-duration) var(--breeze-delay) ease-in-out infinite alternate}
.game-straya .straya-field-front .straya-field-patch{clip-path:inset(77% 0 0)}
.game-straya .straya-field-patch>b{position:absolute;bottom:1%;left:4%;right:4%;text-align:center;font:bold clamp(8px,1.8vw,12px) Arial;color:#fff5bb;text-shadow:0 1px 3px #000,0 0 4px #000;white-space:nowrap}
.game-straya .straya-grass-receded>.straya-grass-art{opacity:0}
.game-straya .straya-grass-landing>.straya-grass-art{animation:straya-grass-recede 800ms both}
.game-straya #strayaGuide,.game-straya #strayaPersistent{display:none!important}
@keyframes straya-field-breeze{from{transform:skewX(-2deg) scaleY(.97)}to{transform:skewX(2.7deg) scaleY(1)}}
@media(prefers-reduced-motion:reduce){.game-straya .straya-field-patch>svg{animation:none}}
#strayaGaryBonus{box-sizing:border-box;width:min(94vw,650px);max-width:94vw}
#strayaGaryBonus .sg-shell{position:relative;overflow:hidden}
#strayaGaryBonus .sg-stage{width:100%;box-sizing:border-box}
#strayaGaryBonus .sg-grid{grid-auto-flow:column}
#strayaGaryBonus .sg-grass .straya-symbol{width:100%;height:100%;filter:none}
#strayaGaryBonus .sg-runner{height:33.333%;width:20%}
#strayaGaryBonus .sg-face-left>.sg-goat-rig,#strayaGaryBonus .sg-face-left>.sg-chewing{transform:scaleX(-1)}
#strayaGaryBonus .sg-goat-rig,#strayaGaryBonus .sg-goat-rig>svg{width:100%;height:100%}
#strayaGaryBonus .sg-head,#strayaGaryBonus .sg-jaw{transform-box:fill-box;transform-origin:center}
#strayaGaryBonus .sg-landing-goat{inset:0}
#strayaGaryBonus .sg-landing-goat>svg{width:100%;height:100%}
#strayaGaryBonus .sg-slot.sg-eaten{background:transparent}
#strayaGaryBonus .sg-coin{pointer-events:none}
#strayaGaryBonus footer button{min-width:0;padding:9px 7px}
@media(max-width:360px){#strayaGaryBonus .sg-shell{gap:8px;padding:10px}#strayaGaryBonus header{gap:6px}#strayaGaryBonus .sg-turn{font-size:10px}#strayaGaryBonus footer button{font-size:10px}}
#strayaGaryBonus .sg-leg{transform-box:fill-box;transform-origin:0 0}
#strayaGaryBonus .sg-entrance{position:absolute;inset:10% 20%;z-index:12;pointer-events:none}
#strayaGaryBonus .sg-grass>svg{transform-origin:center bottom;animation:straya-field-breeze 4.1s ease-in-out infinite alternate}
#strayaGaryBonus .sg-slot:nth-child(2n) .sg-grass>svg{animation-delay:-1.7s;animation-duration:4.7s}
#strayaGaryBonus .sg-slot:nth-child(3n) .sg-grass>svg{animation-delay:-2.6s;animation-duration:3.8s}
#strayaGaryBonus .sg-slot b{background:#102e1499;border:0;text-shadow:0 2px 2px #000,0 0 5px #000}
#strayaGaryBonus header h2{font-size:clamp(18px,4.7vw,30px)}
.game-straya .straya-field-front .straya-field-patch{clip-path:none}
@media(prefers-reduced-motion:reduce){#strayaGaryBonus .sg-grass>svg{animation:none}}

/* A continuous dusk-lit reel well ties the meadow to the cabinet. */
.game-straya .reels{background:radial-gradient(ellipse at 45% 8%,#71829388,transparent 58%),linear-gradient(180deg,#263a50 0%,#465a62 40%,#344939 78%,#1b2c22 100%);border-color:#8d7147;box-shadow:inset 0 0 22px #020b12a0}
.game-straya .reel{border-right:1px solid #d5b67422!important}
.game-straya .straya-field-patch>svg{filter:brightness(.87) saturate(.84);transform-origin:50% 100%}
.game-straya .straya-field-front .straya-field-patch>svg{height:45%;position:absolute;bottom:-1%;filter:brightness(.85) saturate(.86)}
.game-straya .cell>.straya-symbol,.game-straya .reel-tile>.straya-symbol{filter:drop-shadow(0 4px 3px #07141d99) saturate(.94) contrast(1.03)}
.game-straya .cell[data-symbol="7"]>.straya-symbol,.game-straya .reel-tile[data-symbol="7"]>.straya-symbol{width:78%;height:82%}
.game-straya .cell[data-symbol="8"]>.straya-symbol{width:84%;height:78%}
.game-straya .cell.straya-scatter>.straya-symbol{filter:drop-shadow(0 0 7px #ffca60b0)}
@media(max-width:420px){
 .game-straya #lockVault,.game-straya #reset{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:66px;padding:8px 5px;box-sizing:border-box;text-align:center}
 .game-straya #lockVault>b,.game-straya #reset>b{display:block;width:100%;font-size:11px;line-height:1.25;white-space:normal}
 .game-straya #lockVault>small,.game-straya #reset>small{display:block;width:100%;font-size:8px;line-height:1.25;white-space:normal}
}
#strayaGaryBonus .sg-stage{background:radial-gradient(ellipse at 45% 0%,#87919a65,transparent 65%),linear-gradient(#2d4258,#475c62 43%,#293e2e);border-color:#9c8459;border-radius:8px}
#strayaGaryBonus .sg-slot{border:0;box-shadow:inset 1px 0 #d5bc8320}
#strayaGaryBonus .sg-slot.has-grass{background:transparent}
#strayaGaryBonus .sg-grass{filter:brightness(.88) saturate(.84)}
#strayaGaryBonus .sg-slot b{background:transparent;bottom:9%;padding:0 3px;color:#fff1b7;text-shadow:0 2px 2px #080d08,0 0 5px #080d08,1px 0 #080d08}
#strayaGaryBonus .sg-values-hidden .sg-slot:not(.sg-value-revealed)>b{visibility:hidden}
#strayaGaryBonus .sg-values-hidden .sg-total strong{visibility:visible}
#strayaGaryBonus .sg-reel-window{position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(transparent,#000 12%,#000 88%,transparent)}
#strayaGaryBonus .sg-reel-strip{height:1600%;width:100%;will-change:transform}
#strayaGaryBonus .sg-reel-tile{height:6.25%;width:100%;display:flex;align-items:center;justify-content:center}
#strayaGaryBonus .sg-reel-tile>.straya-symbol{width:88%;height:88%;overflow:visible}
#strayaGaryBonus .sg-reel-tile>.straya-symbol,#strayaGaryBonus .sg-idle-symbol{opacity:.3;filter:saturate(.5) brightness(.75)}
#strayaGaryBonus .sg-gary-hit .sg-result>.straya-symbol{width:78%;height:78%;opacity:1;filter:drop-shadow(0 0 6px #ffcf6a)}
#strayaGaryBonus .sg-idle-symbol{position:absolute;inset:6%;display:grid;place-items:center}
#strayaGaryBonus .sg-idle-symbol>.straya-symbol{width:100%;height:100%;object-fit:contain}
.game-straya .straya-header-stack{position:absolute;inset:0;overflow:hidden}
.game-straya #banditPreviewLaunch{position:static!important;display:block;margin:12px auto}
#strayaGaryBonus .sg-miss{width:17%;height:2px;background:#e1d3a330;border-radius:50%}
#strayaGaryBonus .sg-gary-hit{filter:drop-shadow(0 0 7px #ffd269)}
.game-straya .straya-field-patch>svg,#strayaGaryBonus .sg-grass>svg{mask-image:linear-gradient(to bottom,#000 0%,#000 80%,#000b 90%,transparent 100%)}
.game-straya .straya-field-front .straya-field-patch>svg{mask-image:linear-gradient(to bottom,#000 0%,#000 72%,transparent 100%)}
.game-straya .reels,#strayaGaryBonus .sg-stage{background-image:linear-gradient(#142a4366,#172e2355),url('assets/straya/reel-dusk-v2.webp');background-size:100% 100%;background-position:center}

/* The concept uses blue-grey sky behind warm, dense living grass. Keep a
   shared horizon rather than magnifying the blurred ground across all rows. */
.game-straya .reels,#strayaGaryBonus .sg-stage{background-image:linear-gradient(180deg,#233647e6,#677b80aa 46%,#384e3fbb),url('assets/straya/reel-dusk-v2.webp')}
.game-straya .straya-field-back .straya-field-patch>svg{width:112%;margin-left:-6%;filter:brightness(.99) saturate(.91)}
.game-straya .straya-field-front .straya-field-patch>svg{height:56%;width:110%;left:-5%;filter:brightness(.93) saturate(.9)}
.game-straya .straya-field-patch>svg,#strayaGaryBonus .sg-grass>svg{mask-image:linear-gradient(to bottom,#000 0%,#000 91%,transparent 100%)}
.game-straya .straya-field-front .straya-field-patch>svg{mask-image:linear-gradient(to bottom,#000 0%,#000 87%,transparent 100%)}
#strayaGaryBonus .sg-grass{filter:brightness(.98) saturate(.91)}
/* Optical sizes for the approved silhouettes. These retain the complete
   source frame, including horns, hands, heels and the shoe opening. */
.game-straya .cell>.straya-symbol-0,.game-straya .reel-tile>.straya-symbol-0{width:91%;height:91%;filter:drop-shadow(0 3px 3px #09191299) saturate(.9) brightness(1.03)}
.game-straya .cell>.straya-symbol-1,.game-straya .reel-tile>.straya-symbol-1{width:89%;height:91%;filter:drop-shadow(0 3px 3px #09191299) saturate(.88) brightness(1.03)}
.game-straya .cell>.straya-symbol-3,.game-straya .reel-tile>.straya-symbol-3{width:94%;height:88%;filter:drop-shadow(0 3px 3px #09191299) saturate(.9) brightness(1.06)}
.game-straya .cell>.straya-symbol-5,.game-straya .reel-tile>.straya-symbol-5{width:86%;height:86%;filter:drop-shadow(0 3px 3px #09191299) saturate(.88) brightness(1.04)}
.game-straya .cell>.straya-symbol-6,.game-straya .reel-tile>.straya-symbol-6{width:89%;height:89%;filter:drop-shadow(0 3px 3px #09191299) saturate(.86) brightness(1.02)}
.game-straya .cell>.straya-symbol-7,.game-straya .reel-tile>.straya-symbol-7{width:78%;height:83%;filter:drop-shadow(0 3px 3px #09191299) saturate(.72) brightness(.94)}
.game-straya .cell>.straya-symbol-8,.game-straya .reel-tile>.straya-symbol-8{width:83%;height:80%;filter:drop-shadow(0 3px 3px #09191299) saturate(.85) brightness(.97)}
.game-straya .cell.straya-scatter>.straya-symbol{filter:drop-shadow(0 0 7px #ffca60b0)}
/* Gary's dusk paddock, revision 4. */
#strayaGaryBonus{width:min(94vw,760px);border:1px solid #d8ba73;border-radius:22px;background:#0c1918;box-shadow:0 0 0 4px #1e3029,0 30px 100px #000e}
#strayaGaryBonus .sg-shell{isolation:isolate;padding:clamp(10px,2.4vw,22px);gap:12px;background:linear-gradient(180deg,#111f2bbb,#0c231de8 42%,#0b1717),url('assets/straya/reel-dusk-v2.webp') center/cover}
#strayaGaryBonus .sg-atmosphere{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 78% 5%,#e8c17655,transparent 44%)}
#strayaGaryBonus .sg-atmosphere i{position:absolute;width:70%;height:70%;left:-10%;top:8%;border-radius:50%;background:radial-gradient(ellipse,#ecd8a312,transparent 65%);animation:sg-cloud 16s ease-in-out infinite alternate}
#strayaGaryBonus .sg-atmosphere i:nth-child(2){left:35%;top:30%;animation-delay:-9s}#strayaGaryBonus .sg-atmosphere i:nth-child(3){top:50%;animation-delay:-5s;background:radial-gradient(ellipse,#b9cf7544,transparent 70%)}
@keyframes sg-cloud{to{transform:translate(35%,-10%) scale(1.2)}}
#strayaGaryBonus .sg-masthead{display:grid;grid-template-columns:1fr auto;gap:3px 12px;align-items:center;padding:4px 4px 12px;border-bottom:1px solid #ccb57755}
#strayaGaryBonus .sg-kicker{grid-column:1/-1;font:bold 9px Arial;letter-spacing:.3em;color:#cdbd93}
#strayaGaryBonus h2{font:900 clamp(24px,6vw,48px)/.95 Georgia,serif;letter-spacing:-.035em;color:#fff0be;text-shadow:0 3px #3b301c,0 6px 20px #0009;white-space:nowrap}
#strayaGaryBonus h2 em{display:block;font-style:normal;color:#bfdb81;letter-spacing:.08em;font-size:1.08em}
#strayaGaryBonus .sg-turn{max-width:120px;font-size:clamp(10px,2.6vw,13px);padding:10px;border:1px solid #b9c58f66;border-radius:50%;background:#172d27aa;line-height:1.5;color:#eeedc0}
#strayaGaryBonus .sg-total{display:grid;justify-content:center;gap:1px;text-align:center;border:1px solid #e1be73;border-radius:13px;background:radial-gradient(ellipse at top,#76562355,transparent 75%),linear-gradient(135deg,#102320,#050f0e);padding:8px 12px;box-shadow:inset 0 0 0 3px #c7a85814,0 5px 18px #0006}
#strayaGaryBonus .sg-total>span{font:bold 10px Arial;letter-spacing:.35em;color:#dbc58e}#strayaGaryBonus .sg-total strong{font:900 clamp(30px,7vw,49px)/1.1 Georgia,serif;color:#ffe6a0;text-shadow:0 0 22px #dca63d66;font-variant-numeric:tabular-nums}#strayaGaryBonus .sg-total small{font:8px Arial;letter-spacing:.2em;color:#a9b694}
#strayaGaryBonus .sg-stage{border:2px solid #a99b60;border-radius:10px;box-shadow:0 0 0 3px #051410,0 0 0 4px #7b784655,inset 0 0 40px #0008;background-image:linear-gradient(#294554b0,#5f72685c 45%,#162a21ad),url('assets/straya/reel-dusk-v2.webp')}
#strayaGaryBonus .sg-slot{box-shadow:inset 1px 0 #d8cf9318}#strayaGaryBonus footer{align-items:center;justify-content:space-between;min-height:60px}#strayaGaryBonus footer .sg-next{flex:0 0 auto;order:2;min-width:108px;min-height:58px;border-radius:50%;border:2px solid #ffdfa0;box-shadow:inset 0 0 0 3px #714d27,0 4px 0 #37270f,0 6px 18px #0008;background:linear-gradient(#ffedb1,#e6bd63 47%,#bb853a);color:#30200d;font:900 18px Georgia,serif;text-shadow:0 1px #fff6d0}
#strayaGaryBonus footer.sg-finished .sg-next{order:0;border-radius:10px;min-width:130px;background:linear-gradient(#6a9c69,#244e34);color:#fff1c3;box-shadow:inset 0 0 0 3px #1e3927,0 4px 0 #071e14;font:800 15px Arial}
#strayaGaryBonus .sg-footer-note{font:bold 9px Arial;letter-spacing:.12em;color:#bdc9a2;max-width:48%}
#strayaGaryBonus .sg-idle-symbol{inset:0;display:block;overflow:hidden;mask-image:linear-gradient(transparent,#000 8%,#000 92%,transparent)}
#strayaGaryBonus .sg-rest-strip{display:block;height:210%;transform:translateY(-26.190476%)}#strayaGaryBonus .sg-rest-tile{height:33.333333%;display:flex;align-items:center;justify-content:center}
#strayaGaryBonus .sg-rest-tile>.straya-symbol,#strayaGaryBonus .sg-reel-tile>.straya-symbol{width:88%;height:88%;object-fit:contain}
#strayaGaryBonus .sg-reel-window{mask-image:linear-gradient(transparent,#000 8%,#000 92%,transparent)}
#strayaGaryBonus .sg-amounts{position:absolute;inset:auto 0 8%;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:3}
#strayaGaryBonus .sg-amounts b{position:static;font-size:clamp(10px,2.8vw,21px);line-height:1.1}#strayaGaryBonus .sg-amounts .sg-gold-amount{color:#ffe578;font-size:clamp(12px,3.1vw,24px);text-shadow:0 0 12px #ffb62b,0 2px 2px #281700,1px 0 #281700}
#strayaGaryBonus .sg-values-hidden .sg-slot:not(.sg-value-revealed) b{visibility:hidden}
#strayaGaryBonus .sg-double-grass .sg-grass{transform-origin:bottom;scale:1 1.25;filter:brightness(1.08) drop-shadow(0 -3px 7px #dab95766)}
.game-straya .straya-field-back .straya-double-grass{scale:1 var(--grass-growth);transform-origin:bottom;filter:brightness(1.1) drop-shadow(0 -3px 5px #dfbd5455)}
.game-straya .straya-police-landed{animation:straya-police-light .65s ease-in-out 4 alternate}.game-straya .straya-police-landed .straya-symbol{animation:straya-police-light .65s ease-in-out 4 alternate}
@keyframes straya-police-light{from{filter:drop-shadow(0 0 9px #ff263b)}to{filter:drop-shadow(0 0 9px #257dff)}}
.sg-trigger{position:fixed;inset:0;z-index:10000;pointer-events:auto;overflow:hidden;background:linear-gradient(transparent 30%,#08181088);isolation:isolate}.sg-trigger-goat{position:absolute;width:clamp(190px,30vw,340px);height:clamp(190px,30vw,340px);top:38%;left:-45%;filter:drop-shadow(0 14px 12px #0008)}.sg-trigger-goat svg,.sg-trigger-goat .sg-goat-rig{width:100%;height:100%}.sg-trigger .sg-leg{transform-box:fill-box;transform-origin:center top}.sg-trigger>strong{position:absolute;top:73%;width:100%;text-align:center;font:900 clamp(25px,6vw,64px) Georgia,serif;color:#e0e7aa;text-shadow:0 3px 5px #000;letter-spacing:.08em}.sg-trigger-dust{position:absolute;inset:50% 0 10%;background:radial-gradient(ellipse,#bbab7244,transparent 65%);animation:sg-cloud 2s ease-out infinite}
@media(max-width:360px){#strayaGaryBonus .sg-shell{padding:9px;gap:9px}#strayaGaryBonus .sg-turn{padding:7px;max-width:80px}#strayaGaryBonus footer .sg-next{min-height:50px;min-width:92px}.sg-trigger-goat{top:38%}}
@media(prefers-reduced-motion:reduce){#strayaGaryBonus .sg-atmosphere i,.sg-trigger-dust,.game-straya .straya-police-landed{animation:none}}
.game-straya .cell[data-symbol="6"]{isolation:isolate;position:relative}.game-straya .straya-wild-word{position:absolute;z-index:-1;top:2%;left:0;width:100%;text-align:center;font:900 clamp(14px,4vw,35px)/1 Georgia,serif;letter-spacing:-.04em;color:#e6c975;-webkit-text-stroke:1px #4b5125;text-shadow:0 2px #22371c,0 0 9px #c7db6466;transform:rotate(-7deg)}
#strayaGaryBonus .sg-masthead{grid-template-columns:auto 1fr auto;text-align:left}#strayaGaryBonus .sg-header-goat{display:block;width:84px;height:95px;filter:drop-shadow(0 6px 8px #0008)}#strayaGaryBonus .sg-header-goat>.straya-symbol{width:100%;height:100%}#strayaGaryBonus .sg-masthead h2{font-size:clamp(26px,5vw,48px)!important;text-align:left}#strayaGaryBonus .sg-kicker{grid-column:1/-1;text-align:center;padding-bottom:6px}
@media(max-width:420px){#strayaGaryBonus .sg-header-goat{width:49px;height:68px}#strayaGaryBonus .sg-masthead{column-gap:6px}#strayaGaryBonus .sg-turn{max-width:64px;font-size:9px}}
@media(max-width:420px){#strayaGaryBonus .sg-stage{aspect-ratio:5/4}}
.sg-trigger .sg-goat-rig>svg,#strayaGaryBonus .sg-goat-rig>svg{overflow:visible}
/* Revision 5: one continuous painted header, borders and paddock. */
#strayaGaryBonus{width:min(94vw,680px,76vh);padding:0;border:0;border-radius:16px;background:#10251e;max-height:96dvh;box-shadow:0 20px 80px #000c}
#strayaGaryBonus .sg-shell{aspect-ratio:4/5;box-sizing:border-box;padding:3% 7% 5%;gap:7px;grid-template-rows:29% 12% minmax(0,1fr) 10%;background:url('assets/straya/gary-cabinet-v5.webp') center/100% 100% no-repeat}
#strayaGaryBonus .sg-atmosphere{display:none}
#strayaGaryBonus .sg-masthead{position:relative;display:flex;justify-content:center;align-items:end;border:0;padding:0}
#strayaGaryBonus .sg-masthead h2{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#strayaGaryBonus .sg-turn{max-width:none;border:0;border-radius:0;padding:3px 8px;background:#10251b88;color:#f7e8b6;font:800 clamp(10px,2.5vw,14px) Arial;letter-spacing:.1em;line-height:1.2;text-shadow:0 2px 3px #000}
#strayaGaryBonus .sg-total{width:70%;box-sizing:border-box;place-self:center;gap:0;padding:4px 8px;border-radius:40%/24%;background:linear-gradient(135deg,#162c23f5,#0b1814f5);border:2px solid #d4ac5e;box-shadow:0 0 0 3px #443722,0 5px 10px #0008}
#strayaGaryBonus .sg-total strong{font-size:clamp(23px,5.5vw,42px)}#strayaGaryBonus .sg-total small{display:none}#strayaGaryBonus .sg-total>span{font-size:9px}
#strayaGaryBonus .sg-stage{aspect-ratio:auto;height:100%;min-height:0;background:linear-gradient(#10262235,#172e2340);border:1px solid #c8b07955;border-radius:6px;box-shadow:inset 0 0 28px #09271960}
#strayaGaryBonus footer{min-height:0;gap:8px;justify-content:flex-end;align-items:center}
#strayaGaryBonus footer.sg-finished{justify-content:flex-start}
#strayaGaryBonus footer .sg-next,#strayaGaryBonus footer .sg-gamble{min-height:42px;min-width:83px;padding:8px 13px;font:900 clamp(10px,2.5vw,15px) Arial;box-sizing:border-box}
#strayaGaryBonus footer .sg-gamble{order:1;flex:0 0 auto;border:2px solid #f6d28a;border-radius:10px;color:#ffebc3;background:linear-gradient(#99502e,#522716);box-shadow:inset 0 0 0 2px #543622,0 3px #241407}
#strayaGaryBonus footer.sg-finished .sg-next{min-width:90px}#strayaGaryBonus footer button:disabled{opacity:.45}
#strayaGaryBonus .sg-footer-note{display:none}
#strayaGaryBonus .sg-amounts{gap:2px;bottom:7%;inset-inline:0}
#strayaGaryBonus .sg-amounts b,#strayaGaryBonus .sg-amounts .sg-gold-amount{font-size:clamp(9px,2.4vw,18px);line-height:1.15;display:flex;align-items:center;gap:3px}
#strayaGaryBonus .sg-amounts b small{font:900 .72em Arial;color:#fff1bd;background:#683817c9;border-radius:3px;padding:1px 2px;white-space:nowrap;flex-shrink:0}
#strayaGaryBonus .sg-amounts[data-awards="4"] b{font-size:clamp(8px,2.2vw,16px)}
#strayaGaryBonus .sg-double-grass .sg-grass{scale:1 var(--patch-scale);transform-origin:bottom;filter:brightness(1.1) drop-shadow(0 -3px 7px #dab95777)}
.game-straya .straya-field-patch[data-level="3"]{filter:brightness(1.17) drop-shadow(0 -3px 5px #ffc74377)}
.game-straya .straya-field-patch[data-level="4"]{filter:brightness(1.3) drop-shadow(0 -4px 8px #f5cf5b99)}
.sg-trigger .sg-leg{transform-origin:0 0}
.sg-trigger .sg-goat-rig>svg,#strayaGaryBonus .sg-goat-rig>svg{overflow:hidden}
/* Painted placemats and live meals use exactly the same coordinate space. */
.straya-table{background-image:url('assets/straya/restaurant-placemats-v5.webp');background-size:100% 100%;aspect-ratio:3/2}
.straya-table-spots{display:none}.straya-table-centre{top:49%;color:#efd59a}
.straya-table-dishes .straya-dish{width:18%;height:23%}.straya-dish .straya-food{width:90%;height:83%}.straya-dish b{font-size:clamp(10px,2.8vw,21px);background:#26120cc9}
.straya-stage.restaurant.playing{height:auto;aspect-ratio:auto}.straya-stage.restaurant.playing .straya-table{height:auto;width:100%;aspect-ratio:3/2}
.game-straya .straya-mate-window{position:absolute;z-index:8;pointer-events:none;left:0;width:100%;height:calc((100% - 18px)/3);top:calc(9px + var(--row)*(100% - 18px)/3);transform-origin:center bottom;animation:mate-idle 4s ease-in-out infinite}
.game-straya .straya-mate-window img{width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 3px 2px #0009)}
@keyframes mate-idle{50%{translate:0 -1px}}
.straya-mate-takeover{position:absolute;inset:0;z-index:25;overflow:hidden;background:linear-gradient(#081521bb,#061220f5);display:flex;align-items:center;justify-content:center;isolation:isolate}
.straya-police-wash{position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,#ec254344,transparent 45%,#2b6dff55);animation:mate-siren .6s ease-in-out 7 alternate}
.straya-mate-car{position:absolute;left:7%;top:5%;width:67%;height:82%}.straya-mate-car img{width:100%;height:100%;object-fit:contain}.straya-arriving-police{position:absolute;right:0;top:9%;width:44%;height:73%;filter:drop-shadow(0 0 8px #75a3ff)}.straya-arriving-police>.straya-symbol{width:100%;height:100%}
.straya-mate-takeover>strong{position:absolute;bottom:5%;font:900 clamp(17px,4vw,36px) Georgia;color:#fce3a3;text-shadow:0 3px 4px #000}
.straya-sirens{animation:mate-siren .6s ease-in-out 7 alternate}
@keyframes mate-siren{from{box-shadow:inset 20px 0 50px #e4184688,0 0 18px #f03b5499}to{box-shadow:inset -20px 0 50px #226dff99,0 0 18px #5296ff99}}
@media(prefers-reduced-motion:reduce){.game-straya .straya-mate-window,.straya-police-wash,.straya-sirens{animation:none}}

.game-straya .straya-mate-origin>.straya-symbol{opacity:0}
#strayaGaryBonus .sg-masthead{position:static}
#strayaGaryBonus .sg-turn{position:absolute;left:8%;bottom:6%;background:#122b2099}
#strayaGaryBonus .sg-shell:has(.sg-finished) .sg-turn{display:none}
#strayaGaryBonus .sg-grass,#strayaGaryBonus .sg-double-grass .sg-grass{inset:auto 0 0;height:calc(38% + var(--patch-level,1)*14%);scale:none;mask-image:linear-gradient(transparent,#000 18%,#000 84%,transparent)}
#strayaGaryBonus .sg-grass>svg{mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
#strayaGaryBonus .sg-amounts b{border:0;white-space:nowrap;flex-shrink:0}
#strayaGaryBonus .sg-amounts[data-awards="4"] b{font-size:clamp(9px,2.5vw,16px)}
.game-straya .straya-field-back .straya-double-grass{scale:none}
.game-straya .straya-field-back .straya-field-patch>svg{position:absolute;bottom:0;height:58%}
.game-straya .straya-field-back .straya-field-patch[data-level="2"]>svg{height:73%}
.game-straya .straya-field-back .straya-field-patch[data-level="3"]>svg{height:88%}
.game-straya .straya-field-back .straya-field-patch[data-level="4"]>svg{height:100%}
.game-straya .straya-mate-window{height:var(--cell-h);top:calc(var(--reel-peek,9px) + var(--row)*var(--cell-h))}
.straya-raid-masthead{display:none}.game-straya .straya-raid-masthead{display:flex;align-items:center;justify-content:center;height:180px;gap:12px;background:radial-gradient(ellipse at left,#31579188,transparent),radial-gradient(ellipse at right,#812c4766,transparent),url('assets/straya/reel-dusk-v2.webp') center/cover;border-bottom:1px solid #efc786}
.game-straya .straya-raid-masthead>img{width:58%;height:100%;object-fit:contain}.game-straya .straya-raid-masthead>.straya-symbol{width:30%;height:90%}
.game-straya #banditDialog .raid-title{font:900 clamp(25px,5.5vw,42px)/1.1 Georgia;margin:12px 10px;letter-spacing:.02em}
@media(max-width:420px){#strayaGaryBonus .sg-shell{aspect-ratio:4/6;grid-template-rows:29% 12% minmax(0,1fr) 10%}#strayaGaryBonus .sg-amounts b:has(small){flex-direction:column;gap:0}#strayaGaryBonus .sg-amounts{gap:1px}.game-straya .straya-raid-masthead{height:135px}}
@media(max-width:360px){#strayaGaryBonus .sg-amounts[data-awards="4"] b{font-size:9px;line-height:9px}#strayaGaryBonus .sg-amounts[data-awards="4"] b small{font-size:6px;line-height:6px;padding:0 2px}}

/* Meal art is overhead, projected onto each painted placemat, independent of its label. */
.straya-table-dishes .straya-dish{height:auto;aspect-ratio:1;display:block;filter:none;overflow:visible}
.straya-dish .straya-food{position:absolute;inset:0;width:100%;height:100%;transform-origin:50% 50%;filter:drop-shadow(0 5px 2px #160b05b3)}
.straya-dish .straya-food svg{display:block;width:100%;height:100%}
.straya-table-dishes .straya-dish>b{position:absolute;left:50%;transform:translateX(-50%);font-size:clamp(9px,2.1vw,17px);line-height:1.1;white-space:nowrap;padding:2px 5px;max-width:none;z-index:2;border:1px solid #e6bc6c80}
.straya-table-dishes .straya-serving .straya-food{filter:drop-shadow(0 2px 2px #160b05b3) drop-shadow(0 0 9px #ffe185)}
.straya-kitchen-upgrade{position:absolute;top:24%;left:50%;translate:-50% 0;z-index:4;color:#fff5ac;background:#214f32;border:1px solid #f3d275;border-radius:6px;padding:3px 7px;font:900 clamp(10px,2.5vw,20px) Arial;white-space:nowrap;box-shadow:0 2px 8px #0009}
/* r7: naturally angled dishes. Scale stays uniform throughout the orbit. */
.straya-table-dishes .straya-dish{aspect-ratio:512/360;height:auto;transform:translate(-50%,-64%)}
.straya-dish .straya-food{inset:0;width:100%;height:100%;transform:none;filter:drop-shadow(0 3px 2px #160b0570)}
.straya-table-dishes .straya-dish>b{top:88%;font-size:clamp(8px,1.8vw,15px)}
#strayaFeature.straya-restaurant-cabinet{--restaurant-width:min(850px,calc(100vw - 12px),76vh);width:var(--restaurant-width);height:calc(var(--restaurant-width) * 1.2495543672);aspect-ratio:1122/1402;max-height:96dvh;padding:0;border:0;border-radius:12px;overflow:visible;background:#25100b url('assets/straya/restaurant-cabinet-v7.webp') center/100% 100%;position:fixed;box-sizing:border-box;container-type:inline-size}
#strayaFeature.straya-restaurant-cabinet>header{position:absolute;inset:0 0 auto;height:26%;padding:0;background:none}
#strayaFeature.straya-restaurant-cabinet>header>*{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
#strayaFeature.straya-restaurant-cabinet>.straya-stage{position:absolute;left:13.6%;top:27%;width:72.8%;height:44%;background:#1e100a;border-radius:2px;overflow:hidden;aspect-ratio:auto}
#strayaFeature.straya-restaurant-cabinet .straya-table{height:auto;width:100%;aspect-ratio:3/2}
#strayaFeature.straya-restaurant-cabinet .straya-service-receipt{height:18%;min-height:0;padding:4px 5px;background:linear-gradient(#321a0a,#1f0d08);box-sizing:border-box;border-top:1px solid #c28b45;gap:2px;justify-content:center}
#strayaFeature.straya-restaurant-cabinet .straya-service-receipt span{font-size:clamp(7px,1.7cqw,11px)}
#strayaFeature.straya-restaurant-cabinet .straya-service-receipt b{font-size:clamp(8px,2cqw,15px)}
#strayaFeature.straya-restaurant-cabinet .straya-table-centre{font-size:clamp(7px,1.7cqw,12px)}
#strayaFeature.straya-restaurant-cabinet>.straya-feature-stats{position:absolute;left:14%;right:14%;top:71%;height:7%;min-height:0;padding:3px;gap:2px;border:0;background:linear-gradient(#37200c,#160d07);align-items:center}
#strayaFeature.straya-restaurant-cabinet .straya-feature-stats>span{gap:2px}
#strayaFeature.straya-restaurant-cabinet .straya-feature-stats small{font-size:clamp(6px,1.3cqw,10px);letter-spacing:.04em}
#strayaFeature.straya-restaurant-cabinet .straya-feature-stats b{font-size:clamp(11px,3.3cqw,25px)}
#strayaFeature.straya-restaurant-cabinet>.straya-feature-status{position:absolute;top:80%;left:12%;right:12%;height:7%;padding:3px 2px;font-size:clamp(8px,1.8cqw,13px)!important;display:grid;place-items:center;overflow:hidden}
#strayaFeature.straya-restaurant-cabinet>footer{position:absolute;top:87%;left:13%;right:13%;height:8%;padding:0;gap:5px;display:flex;flex-wrap:nowrap;align-items:center}
#strayaFeature.straya-restaurant-cabinet footer label{font-size:clamp(7px,1.5cqw,11px);max-width:30%;gap:3px}
#strayaFeature.straya-restaurant-cabinet footer input{width:13px;height:13px}
#strayaFeature.straya-restaurant-cabinet footer button:not(.straya-test-reconnect){min-width:0;min-height:0;height:85%;flex:1;padding:3px 5px;border:2px solid #dfb268;border-radius:8px;background:linear-gradient(#2e7b58,#174731);color:#fff0bd;font:900 clamp(9px,2.1cqw,16px)/1.15 Georgia;box-shadow:inset 0 0 0 2px #1b382d,0 3px 5px #0009}
#strayaFeature.straya-restaurant-cabinet footer .straya-test-reconnect{position:absolute;top:110%;right:0;padding:2px;font-size:8px}
#strayaFeature.straya-restaurant-cabinet:has(.straya-stage.bill) footer label{display:none}
.straya-restaurant-intro-art{position:absolute;inset:0;background:url('assets/straya/restaurant-placemats-v5.webp') center/cover;z-index:-1}
.straya-restaurant-cabinet .straya-feature-intro{background:linear-gradient(90deg,#150c0733,#150c0799)}
.straya-restaurant-cabinet .straya-intro-copy>strong{font-size:clamp(17px,6cqw,42px)}
.straya-restaurant-cabinet .straya-bill-choice,.straya-restaurant-cabinet .straya-restaurant-receipt{height:100%;box-sizing:border-box;position:relative;background:url('assets/straya/restaurant-cashier-v7.webp') center/cover;padding:5%;display:flex;align-items:center;gap:3%;overflow:hidden}
.straya-restaurant-cabinet .straya-bill-host,.straya-restaurant-cabinet .straya-summary-host{width:37%;height:85%;flex-shrink:0;align-self:end;margin:0;position:relative}
.straya-bill-paper,.straya-restaurant-cabinet .straya-receipt{padding:7%;background:linear-gradient(125deg,#ffedc5,#d8b984);border:1px solid #aa752e;color:#411f12;box-shadow:0 4px 20px #0008;flex:1;min-width:0;text-align:center}
.straya-bill-paper small{font:700 clamp(6px,1.35cqw,10px) Georgia;letter-spacing:.05em}
.straya-restaurant-cabinet .straya-bill-paper h3{font:900 clamp(11px,2.8cqw,22px) Georgia;margin:8% 0}
.straya-bill-paper>strong{font:900 clamp(16px,4.8cqw,36px) Georgia}
.straya-restaurant-cabinet .straya-bill-paper p{font:clamp(7px,1.6cqw,12px)/1.35 Arial;color:#492717;margin:8% 0}
.straya-restaurant-cabinet .straya-receipt{padding:5%;font-size:clamp(7px,1.8cqw,13px)}
.straya-restaurant-cabinet .straya-receipt small,.straya-restaurant-cabinet .straya-receipt p{font-size:clamp(7px,1.6cqw,11px);color:#542613}
.straya-restaurant-cabinet .straya-receipt b{color:#592f0d;font-size:clamp(10px,2.6cqw,19px)}
.straya-restaurant-cabinet .straya-tip-scene{height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:2% 3%;background:radial-gradient(ellipse,#6c3223,#20100b 70%)}
.straya-restaurant-cabinet .straya-tip-scene h3,.straya-restaurant-cabinet .straya-dash-scene h3{font:900 clamp(12px,3cqw,24px) Georgia;color:#ffe0a2;margin:2% 0;text-shadow:0 2px 4px #000}
.straya-wheel-mount{position:relative;height:76%;aspect-ratio:1;filter:drop-shadow(0 6px 7px #0009)}
.straya-tip-disc{display:block;width:100%;height:100%;overflow:visible}
.straya-restaurant-cabinet .straya-tip-pointer{position:absolute;z-index:2;left:50%;top:-5%;translate:-50% 0;font-size:clamp(17px,4cqw,30px);line-height:1;color:#fff3bf;text-shadow:0 2px 2px #492109}
.straya-restaurant-cabinet .straya-tip-amount{font:bold clamp(10px,2.4cqw,18px) Georgia;color:#fff0bb;margin:1%}
.straya-restaurant-cabinet .straya-dash-scene{height:100%;position:relative;overflow:hidden;background:url('assets/straya/restaurant-dash-v7.webp') center/cover;padding:0}
.straya-runner{position:absolute;bottom:13%;height:47%;aspect-ratio:3/4;background-image:url('assets/straya/restaurant-runners-v7.webp');background-size:400% 200%;background-repeat:no-repeat;filter:drop-shadow(0 5px 2px #0008);transform-origin:50% 100%}
.straya-runner-jack{left:5%;background-position:0 0;z-index:2}.straya-runner-police{left:-25%;background-position:0 100%;z-index:1}
.straya-restaurant-cabinet .straya-dash-result{position:absolute;bottom:1%;left:2%;right:2%;padding:3%;background:#1e130ddb;border:1px solid #c59950;color:#ffdf97;font:900 clamp(10px,2.5cqw,19px) Georgia}
.straya-caught{box-shadow:inset 30px 0 70px #ef254b99,inset -30px 0 70px #276dff99}
.game-straya .straya-mate-window{animation:none;overflow:hidden}
.game-straya .straya-mate-window svg{width:100%;height:100%;display:block}
.game-straya .straya-mate-back{z-index:1}.game-straya .straya-mate-front{z-index:8}
.straya-mate-road{position:absolute;inset:0;background:linear-gradient(#08121a33,#07101999),url('assets/straya/mate-cabinet-v7.webp') center 20%/cover}
.straya-mate-takeover .straya-mate-car{top:9%;height:73%;left:0;width:67%;filter:drop-shadow(0 10px 8px #0009)}
.straya-mate-takeover .straya-arriving-police{right:2%;width:34%;height:75%;top:15%}
.straya-mate-takeover>strong{font-family:Georgia;background:#071522d9;padding:2% 5%;border:1px solid #9ac2dc}
.game-straya #banditDialog{width:min(850px,calc(100vw - 12px));padding:0 11% 5%;border:0;border-radius:14px;background:#091720 url('assets/straya/mate-cabinet-v7.webp') center/100% 100%;box-sizing:border-box}
.game-straya #banditDialog .straya-raid-masthead{display:block;aspect-ratio:3.1/1;height:auto;width:130%;margin:0 -15% 4%;background:none;border:0}
.game-straya #banditDialog .raid-title{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.game-straya #banditContent{padding:0 2%;background:linear-gradient(#06131a88,#07131aeb);border-radius:12px}
.game-straya #banditContent>h2{font:900 clamp(18px,4vw,30px) Georgia;margin:8px 0 12px}
.game-straya #banditContent .raid-targets{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.game-straya #banditContent .raid-targets button{border-color:#7faec4;background:linear-gradient(#254652,#102631);border-radius:9px}
.game-straya #banditDialog .raid-primary{background:linear-gradient(#3c7965,#1c433c);border:2px solid #a5c8b7;color:#fff0bb}
.game-straya #banditDialog .raid-secondary{background:linear-gradient(#773842,#402431);border:2px solid #bd7e82}
.straya-mate-award-scene{position:relative;width:100%;height:clamp(110px,25vw,220px);background:radial-gradient(ellipse at left,#1e609199,transparent),radial-gradient(ellipse at right,#a52b4699,transparent);overflow:hidden}
.straya-mate-award-scene>img{position:absolute;left:0;bottom:0;width:65%;height:100%;object-fit:contain}.straya-mate-award-scene>span{position:absolute;right:2%;bottom:0;width:34%;height:90%}
.straya-raygun-takeover{position:absolute;inset:0;z-index:50;overflow:hidden;pointer-events:none}
.straya-dance-floor{position:absolute;inset:0;background:linear-gradient(120deg,#13583866,transparent 45%,#efd15855);box-shadow:inset 0 0 30px #ffd36b77}
.straya-raygun-dancer{position:absolute;left:36%;bottom:0;width:30%;height:47%;z-index:3;filter:drop-shadow(0 5px 3px #0008)}
.straya-raygun-dancer svg{width:100%;height:100%}.straya-raygun-tile{position:absolute;display:grid;place-items:center;z-index:2}.straya-raygun-tile>.straya-symbol{width:95%;height:95%}
.straya-raygun-takeover>strong{position:absolute;bottom:2%;left:4%;z-index:4;font:900 clamp(15px,3vw,26px) Georgia;color:#fff4ae;text-shadow:0 3px 5px #000}.straya-raygun-takeover>strong b{display:block}
.game-straya #banditDialog{--mate-width:min(850px,calc(100vw - 12px),76vh);width:var(--mate-width);height:calc(var(--mate-width) * 1.2495543672);aspect-ratio:1122/1402;max-height:96dvh;padding:0;container-type:inline-size;overflow:hidden}
.game-straya #banditDialog .straya-raid-masthead{position:absolute;inset:0 0 auto;width:100%;height:33%;margin:0}
.game-straya #banditContent{position:absolute;top:34%;bottom:17%;left:10%;right:10%;padding:0 3%;overflow:auto;background:transparent}
.game-straya #banditContent .raid-award{font-size:clamp(25px,8cqw,55px)}
.game-straya #banditContent .raid-choices{margin:10px 0;gap:8px}
.game-straya #banditContent .raid-choices button{min-height:42px;padding:9px;font-size:clamp(10px,2cqw,15px)}
.game-straya #banditContent .raid-targets button{padding:8px 3px}
.game-straya #banditContent .raid-targets button small{font-size:clamp(7px,1.5cqw,11px)}
.game-straya #banditContent .raid-targets button b{font-size:clamp(10px,2.2cqw,16px)}
.game-straya #banditDialog .straya-mate-award-scene{height:42%}
.game-straya #banditError{position:absolute;bottom:12%;left:12%;right:12%;font-size:10px}
#strayaFeature.straya-restaurant-cabinet .straya-service-receipt{height:11%;padding:2px;line-height:1.1}
#strayaFeature.straya-restaurant-cabinet .straya-service-receipt span{letter-spacing:.04em}
.game-straya .straya-mate-reel-viewport{position:absolute;inset:0;z-index:2;overflow:hidden}
.game-straya .straya-mate-window>svg[width="0"]{position:absolute;width:0;height:0}
.game-straya .straya-mate-back{z-index:0}
#strayaFeature.straya-restaurant-cabinet .straya-bill-choice,#strayaFeature.straya-restaurant-cabinet .straya-restaurant-receipt{flex-direction:row;justify-content:space-between;gap:3%}
#strayaFeature.straya-restaurant-cabinet .straya-bill-paper{display:block;flex:1;padding:5%;align-self:center}
#strayaFeature.straya-restaurant-cabinet .straya-bill-paper h3{color:#4c2815}
#strayaFeature.straya-restaurant-cabinet .straya-bill-host,#strayaFeature.straya-restaurant-cabinet .straya-summary-host{display:block;flex:0 0 34%;height:80%}
#strayaFeature.straya-restaurant-cabinet .straya-bill-host .straya-symbol,#strayaFeature.straya-restaurant-cabinet .straya-summary-host .straya-symbol{width:100%;height:100%;object-fit:contain}
#strayaFeature.straya-restaurant-cabinet .straya-receipt>div{padding:5% 0}
#strayaFeature.straya-restaurant-cabinet .straya-dash-result{min-height:0}
.game-straya #banditDialog::backdrop{background:radial-gradient(ellipse at left,#173453cc,transparent),radial-gradient(ellipse at right,#542a43cc,#030d17ed);backdrop-filter:blur(7px)}
.game-straya .straya-raid-masthead>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.game-straya #banditContent .raid-targets:has(>button:only-child){grid-template-columns:1fr;max-width:80%;margin:12px auto}
#strayaFeature.straya-restaurant-cabinet .straya-dash-scene h3{position:absolute;left:0;right:0;top:3%;z-index:3;margin:0}
@media(max-width:420px){
 .game-straya #banditContent>h2{font-size:16px;margin:4px 0 8px}
 .game-straya #banditContent .raid-targets{margin:8px auto!important}
 .game-straya #banditContent .raid-role-mark{width:22px;height:22px;line-height:22px;font-size:12px;margin-bottom:4px}
 .game-straya #banditContent .raid-wallet-label{margin-top:4px}
 .game-straya #banditContent .raid-targets button>strong{margin:3px 0}
 .game-straya #banditContent .raid-bet-history:empty{display:none}
 .game-straya #banditDialog .straya-mate-award-scene{height:30%}
 .game-straya #banditContent .raid-award{font-size:30px;line-height:1.1}
 .game-straya #banditContent .raid-choices{margin:8px 0}
}

/* r8: readable ink on the restaurant's light paper receipt. */
#strayaFeature.straya-restaurant-cabinet .straya-receipt .total{color:#321709;font-size:clamp(11px,2.8cqw,23px);border-top:2px solid #795329;text-shadow:none;line-height:1.3;gap:8px}
#strayaFeature.straya-restaurant-cabinet .straya-receipt .total span,#strayaFeature.straya-restaurant-cabinet .straya-receipt .total b{color:#321709;font-weight:900;text-shadow:none}
.game-straya .cell>.straya-symbol-1,.game-straya .reel-tile>.straya-symbol-1{width:96%;height:96%;filter:drop-shadow(0 3px 3px #09191299)}

.straya-mate-takeover>.straya-mate-encounter-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#030712}
.game-straya #banditDialog .straya-mate-award-scene{background:#030712}
.game-straya #banditDialog .straya-mate-award-scene>img{position:static;width:100%;height:100%;object-fit:contain}
/* Give the encounter the main stage; keep name/value and actions compact below. */
.game-straya #banditContent:has(>.straya-mate-award-scene){display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) auto 42px;gap:5px;bottom:14%;overflow:hidden}
.game-straya #banditContent:has(>.straya-mate-award-scene)>.straya-mate-award-scene{grid-column:1/-1;height:100%;min-height:0}
.game-straya #banditContent:has(>.straya-mate-award-scene)>h2{grid-column:1;grid-row:2;font-size:clamp(12px,2.8cqw,22px);margin:0;align-self:center;overflow-wrap:anywhere}
.game-straya #banditContent:has(>.straya-mate-award-scene)>.raid-award{grid-column:2;grid-row:2;font-size:clamp(19px,5cqw,40px);line-height:1.15;align-self:center}
.game-straya #banditContent:has(>.straya-mate-award-scene)>.raid-choices{grid-column:1/-1;grid-row:3;margin:0;gap:5px}
.game-straya #banditContent:has(>.straya-mate-award-scene){grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.game-straya #banditContent:has(>.straya-mate-award-scene)>h2{min-width:0;max-height:2.4em;overflow:hidden;font-size:clamp(10px,2.5cqw,20px);line-height:1.2}
.game-straya #banditContent:has(>.straya-mate-award-scene)>.raid-award{min-width:0;margin:0!important;font-size:clamp(17px,4.4cqw,35px)!important;line-height:1.15!important;letter-spacing:-.035em}

/* Trigger glow stays behind the unchanged icon; no gold recolouring or flash. */
.game-straya .cell.straya-scatter>.straya-symbol{filter:drop-shadow(0 3px 4px #0007)}
.game-straya .cell.straya-scatter.landed::before,.game-straya .cell[data-symbol="2"]::before{content:"";position:absolute;inset:12%;z-index:-1;border:0;border-radius:50%;background:radial-gradient(ellipse,#f4c46177,transparent 70%);animation:straya-trigger-glow 1.3s ease-in-out 3 alternate;pointer-events:none}
@keyframes straya-trigger-glow{from{opacity:.4;scale:.88}to{opacity:.85;scale:1.08}}
#strayaGaryBonus .has-grass .sg-reel-window{z-index:1}
#strayaGaryBonus .has-grass .sg-amounts{z-index:2;pointer-events:none}
#strayaGaryBonus .sg-growth-hit .sg-result>.straya-symbol{opacity:1;filter:drop-shadow(0 0 6px #d5e788)}
@media(prefers-reduced-motion:reduce){.game-straya .cell.straya-scatter.landed::before,.game-straya .cell[data-symbol="2"]::before{animation:none;opacity:.6}}
/* Wild artwork and label never reflow when the payline classes rotate. */
.game-straya .cell[data-symbol="6"]>.straya-symbol,.game-straya .reel-tile>.straya-symbol-6{width:78%;height:78%;max-height:78%;overflow:visible;transform:none!important;animation:none!important;filter:drop-shadow(0 0 3px #9dff70) drop-shadow(0 0 8px #43b24d99)}
.game-straya .cell[data-symbol="6"]>.straya-wild-word{position:absolute!important;z-index:-1!important;top:2%;left:0;width:100%;animation:none!important;transform:rotate(-7deg)!important;color:#c8f39b;text-shadow:0 2px #153719,0 0 7px #58d64e99}
.game-straya .cell[data-symbol="6"]::before{content:"";position:absolute;inset:9%;z-index:-2;border-radius:50%;background:radial-gradient(#78e56355,transparent 70%);pointer-events:none}
.game-straya .cell[data-symbol="6"].win::before{animation:straya-trigger-glow 1.3s ease-in-out infinite alternate}

/* Original meadow and separate foreground fringe; only the patch height grows. */
.game-straya .straya-field-back .straya-field-patch>svg{height:40%}
.game-straya .straya-field-back .straya-field-patch[data-level="2"]>svg{height:60%}
.game-straya .straya-field-back .straya-field-patch[data-level="3"]>svg{height:80%}
.game-straya .straya-field-back .straya-field-patch[data-level="4"]>svg{height:100%}
#strayaGaryBonus .sg-grass,#strayaGaryBonus .sg-double-grass .sg-grass{height:calc(20% + var(--patch-level,1)*20%)}

/* A definite block size is required by Safari for this absolute-positioned dialog. */
@supports(height:100dvh){#strayaFeature.straya-restaurant-cabinet{--restaurant-width:min(850px,calc(100vw - 12px),76dvh)}}

@supports(height:100dvh){.game-straya #banditDialog{--mate-width:min(850px,calc(100vw - 12px),76dvh)}}

/* Roadside test uses normal document flow: no collapsed absolute-positioned mobile panel. */
.game-straya #banditDialog.roadside-dialog{box-sizing:border-box;width:min(540px,calc(100vw - 12px));height:auto;min-height:0;max-height:94vh;max-height:94dvh;aspect-ratio:auto;overflow:auto;padding:0;border:2px solid #557585;border-radius:20px;background:linear-gradient(150deg,#152735,#070f18);box-shadow:-12px 0 60px #d4294430,12px 0 60px #318bff40;color:#f4f2e7}
.game-straya #banditDialog.roadside-dialog .straya-raid-masthead{position:relative;height:130px;background-position:center 23%;background-size:cover}
.game-straya #banditDialog.roadside-dialog #banditTitle{position:static;display:block;font:900 22px Georgia;text-align:center;margin:10px;color:#f4e0af}
.game-straya #banditDialog.roadside-dialog #banditContent{position:static;display:block;padding:0 16px 20px;overflow:visible;background:none}
.game-straya #banditDialog.roadside-dialog #banditError{position:static;margin:4px 18px;font-size:13px}
.game-straya #banditDialog.roadside-dialog #banditRetry{position:static;margin:10px auto;min-height:44px}
.roadside-panel{text-align:center}.roadside-panel h2{font:800 clamp(20px,5vw,28px)/1.15 Arial;margin:16px 0;color:#fff}.roadside-kicker{font:800 10px Arial;letter-spacing:.18em;color:#9bb7cb}.roadside-target{font:700 12px Arial;overflow-wrap:anywhere;color:#f4d28e}
.roadside-lights{display:flex;gap:8px;justify-content:center}.roadside-lights i{width:48px;height:5px;border-radius:4px;background:#e75364;box-shadow:0 0 20px #f34b65}.roadside-lights i+i{background:#4aabfa;box-shadow:0 0 20px #349cff}
.roadside-speed{display:block;font:900 64px/1.2 monospace;color:#e6f7bc}.roadside-speed small{font:700 14px Arial}.roadside-scale{position:relative;margin:20px 10px 10px;height:24px;border:2px solid #8aabb8;border-radius:5px;background:linear-gradient(90deg,#6bb083,#ebc461,#d84d54)}.roadside-needle{position:absolute;left:0;top:-10px;bottom:-10px;width:5px;transform:translateX(-50%);background:white;box-shadow:0 0 8px black}.roadside-scale-labels{display:flex;justify-content:space-between;font:700 12px monospace;margin:0 8px 20px}
.game-straya #banditContent .roadside-button{display:block;width:100%;min-height:54px;margin:12px 0;padding:12px;font:900 16px Arial;border-radius:10px;border:1px solid #84c5df;background:linear-gradient(#29718e,#174252);color:white;touch-action:manipulation;user-select:none;-webkit-user-select:none}.roadside-button:active{transform:scale(.98)}.roadside-button:disabled{opacity:.55}.roadside-hint{font:12px/1.5 Arial;color:#bbceda;margin:10px 0}.roadside-readings{display:flex;gap:8px;margin:12px 0}.roadside-readings>span{flex:1;background:#050c12;border:1px solid #35515d;border-radius:7px;padding:10px;font:800 22px monospace;color:#d6e7bc}.roadside-readings small{font:10px Arial}
.roadside-breath-device{border:5px solid #75868c;border-radius:20px;background:#192122;padding:16px;box-shadow:inset 0 0 12px black}.roadside-breath-device>small{color:#b7c8c6;letter-spacing:.15em;font:10px Arial}.roadside-breath-value{display:block;font:900 45px monospace;color:#b5efb0}.roadside-breath-track{height:20px;background:#080f10;border:1px solid #6b8782;overflow:hidden}.roadside-breath-track span{display:block;height:100%;width:0;background:linear-gradient(90deg,#41a97b,#c6f085)}.roadside-wave{color:#7bca99;letter-spacing:3px;font:18px monospace;margin-top:9px}
.roadside-calculating{padding:35px 0;font:900 20px monospace;color:#e0d3a9}.roadside-calculating span{display:block;letter-spacing:12px;animation:roadside-calc 1s ease-in-out infinite}.roadside-fine{background:#e7dfc9;color:#15222c;padding:18px;border-radius:5px;transform:rotate(-1deg)}.roadside-fine small,.roadside-result small{font:800 12px Arial;letter-spacing:.1em;display:block}.roadside-fine strong,.roadside-result strong{font:900 clamp(28px,8vw,45px) monospace;display:block;overflow-wrap:anywhere;margin:12px 0}.roadside-fine p{font:10px Arial}.roadside-fine-small{color:#ead7a0;font:700 15px monospace}.roadside-driver{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:24px 0}.roadside-driver span{padding:24px 4px;border:2px solid #4a626d;border-radius:12px;font:900 19px Arial;opacity:.45;background:#101e28}.roadside-driver span.selected{opacity:1;border-color:#f8e3a5;background:#69532b;box-shadow:0 0 20px #f4bc5d60}.roadside-result{padding:20px 5px;color:#c7f2a0}.roadside-result.roadside-loss{color:#ff9797}
.straya-road-lines{position:absolute;inset:65% -100% 0;background:repeating-linear-gradient(90deg,transparent 0 60px,#e1ddbe 60px 100px,transparent 100px 180px);transform:perspective(100px) rotateX(60deg);animation:roadside-road .35s linear infinite}.straya-mate-takeover .straya-mate-car{animation:roadside-car 2.8s ease-out both}.straya-mate-takeover .straya-arriving-police{animation:roadside-officer 2.8s ease-out both}
@keyframes roadside-road{to{background-position:180px 0}}@keyframes roadside-car{0%{transform:translateX(-110%) rotate(-5deg)}45%{transform:translateX(0) rotate(2deg)}60%,100%{transform:translateX(0) rotate(0)}}@keyframes roadside-officer{0%,25%{transform:translateX(150%)}75%,100%{transform:translateX(0)}}@keyframes roadside-calc{50%{opacity:.3}}
@media(max-width:360px){.game-straya #banditDialog.roadside-dialog .straya-raid-masthead{height:100px}.game-straya #banditDialog.roadside-dialog #banditContent{padding:0 10px 14px}.roadside-speed{font-size:52px}.roadside-driver span{font-size:16px}}
@media(prefers-reduced-motion:reduce){.straya-road-lines,.straya-mate-takeover .straya-mate-car,.straya-mate-takeover .straya-arriving-police,.roadside-calculating span{animation:none}}

.game-straya #banditDialog.roadside-dialog{inset:0;margin:auto;height:fit-content;container-type:normal}
.game-straya #banditDialog.roadside-dialog .straya-raid-masthead{background:linear-gradient(0deg,#101e2b,transparent 60%),url('assets/straya/mate-encounter-v20.webp') center 44%/cover no-repeat;height:120px;aspect-ratio:auto}
.game-straya #banditDialog.roadside-dialog #banditTitle{width:auto;height:auto;clip-path:none;overflow:visible;letter-spacing:.04em}

/* Jointed Gary: SVG coordinates own the pivots, CSS never overrides them. */
.sg-trigger .gm-rig svg,#strayaGaryBonus .gm-rig svg{overflow:visible;filter:drop-shadow(0 3px 2px #0005)}
.gm-rig g{transform-box:view-box;transform-origin:0 0}
#strayaGaryBonus .gm-rig .sg-head,#strayaGaryBonus .gm-rig .sg-jaw{transform-box:view-box;transform-origin:0 0}
.sg-trigger-goat .gm-rig{filter:drop-shadow(0 9px 5px #0003)}
#strayaGaryBonus .sg-runner .gm-rig{height:100%;width:100%}
#strayaGaryBonus .sg-face-left>.gm-rig{transform:scaleX(-1)}
.sg-trigger-goat{width:clamp(230px,34vw,390px);height:clamp(215px,32vw,365px)}

.roadside-speed-locked{animation:roadside-speed-pop .5s ease-out both;text-shadow:0 0 24px #b7ed78}.roadside-speed-locked::after{content:'SPEED CAPTURED';display:block;font:800 11px Arial;letter-spacing:.2em;margin-top:9px}
@keyframes roadside-speed-pop{40%{transform:scale(1.16)}to{transform:scale(1)}}
.roadside-analyser{border:5px solid #637774;border-radius:16px;padding:22px 12px;background:repeating-linear-gradient(0deg,#102b23 0 2px,#15342b 2px 4px);box-shadow:inset 0 0 30px #000;color:#a9f4b7}
.roadside-analyser>small{font:10px monospace;letter-spacing:.1em}.roadside-led{display:block;font:900 clamp(36px,11vw,60px) monospace;letter-spacing:.05em;text-shadow:0 0 12px #60f88c;margin:15px 0}.roadside-scan-status{font:11px monospace}.roadside-scan-track{height:9px;background:#02100c}.roadside-scan-track i{display:block;height:100%;width:0;background:#99edb3;box-shadow:0 0 10px #99edb3}.roadside-check{margin-top:17px;padding:10px 18px;border:1px solid #79b78a;background:#153c2d;color:#cbf7cf;font:800 11px monospace;touch-action:manipulation}
.roadside-driver{margin-top:100px}.roadside-driver span{position:relative;min-width:0;padding:19px 4px;isolation:isolate}.roadside-driver span small{display:block;font:10px Arial;margin-bottom:8px}.roadside-driver span b{display:block;font:900 17px Arial;overflow-wrap:anywhere}.roadside-driver-caught{animation:roadside-verdict-glow .7s ease-in-out infinite alternate;z-index:2}.roadside-driver-caught b{position:relative;z-index:3}
.roadside-officer-face{position:absolute;width:130px;height:142px;left:50%;bottom:65%;z-index:-1;transform:translateX(-50%);animation:roadside-cop-rise .8s cubic-bezier(.15,.8,.25,1) both;filter:drop-shadow(-6px 0 10px #ff365d) drop-shadow(6px 0 10px #287cff)}
.cop-wink{transform-box:fill-box;transform-origin:center;animation:roadside-wink 1.9s ease-in-out both}.cop-wink-line{opacity:0;animation:roadside-wink-line 1.9s ease-in-out both}
.roadside-verdict{position:relative;isolation:isolate;margin:125px 12px 20px;padding:17px 8px;border-radius:12px;background:#162a39;animation:roadside-verdict-glow .7s ease-in-out infinite alternate}.roadside-verdict strong{font:900 24px Arial;overflow-wrap:anywhere}.roadside-verdict .roadside-officer-face{bottom:65%}
@keyframes roadside-cop-rise{from{opacity:0;transform:translate(-50%,75%)}to{opacity:1;transform:translate(-50%,0)}}@keyframes roadside-wink{0%,55%,82%,100%{scale:1 1}65%,74%{scale:1 .05}}@keyframes roadside-wink-line{0%,55%,82%,100%{opacity:0}65%,74%{opacity:1}}@keyframes roadside-verdict-glow{from{box-shadow:-7px 0 25px #ff284b,inset -4px 0 12px #ff284b50}to{box-shadow:7px 0 25px #2388ff,inset 4px 0 12px #2388ff50}}
@media(prefers-reduced-motion:reduce){#reels.straya-police-focus,.roadside-driver-caught,.roadside-verdict,.roadside-officer-face,.cop-wink,.cop-wink-line,.mate-car-wheel,.straya-mate-takeover,.straya-mate-takeover .straya-mate-car,.roadside-speed-locked{animation:none}}

#reels.straya-police-alarm .reel{animation:mate-siren .6s ease-in-out infinite alternate}
.roadside-driver-caught b,.roadside-verdict strong{display:block;animation:roadside-name-pulse .7s ease-in-out infinite alternate}
@keyframes roadside-name-pulse{to{transform:scale(1.045);text-shadow:0 0 12px #bfe6ff}}
@media(prefers-reduced-motion:reduce){#reels.straya-police-focus .reel,.roadside-driver-caught b,.roadside-verdict strong{animation:none}}

/* Four separate beats: alarm, fade, enlargement, painted roadside reveal. */
#reels.straya-police-alarm{animation:mate-siren .65s ease-in-out infinite alternate}
#reels.straya-police-alarm .reel{animation:mate-siren .65s ease-in-out infinite alternate}
#reels.straya-police-fade:has(>.straya-focus-characters):not(:has([data-rolling])) .reel-tile,#reels.straya-police-fade:has(>.straya-focus-characters):not(:has([data-rolling])) .cell:not([data-symbol="12"]):not([data-symbol="2"]),#reels.straya-police-fade:has(>.straya-focus-characters):not(:has([data-rolling])) .straya-field-patch{opacity:0;transition:opacity .95s ease}
#reels.straya-police-focus:has(>.straya-focus-characters):not(:has([data-rolling])) .reel .straya-mate-window{opacity:0}
.straya-focus-characters{position:absolute;inset:5% 3%;z-index:20;display:flex;align-items:center;justify-content:center;gap:5%;pointer-events:none;transition:opacity 1.4s,filter 1.4s}
.straya-focus-characters>div{width:44%;height:85%;display:flex;align-items:center;filter:drop-shadow(0 0 16px #4b83ed)}
.straya-focus-characters>div:first-child{filter:drop-shadow(0 0 16px #ed3154)}
.straya-focus-characters .straya-symbol{width:100%;height:100%;object-fit:contain}
#reels.straya-police-morph .straya-focus-characters{opacity:0;filter:blur(5px)}
.straya-mate-takeover{animation:painted-scene-in calc(1.4s * var(--scene-rate,1)) ease both;background:#07111b}
.straya-mate-road{background:linear-gradient(#07111b66,#06101be8),url('assets/straya/street-house.webp') center top/cover;filter:blur(3px);scale:1.05}
.straya-mate-takeover .straya-mate-car{left:0;top:36%;width:100%;height:61%;z-index:3;transform-origin:45% 30%;animation:painted-car-reveal calc(3.6s * var(--scene-rate,1)) cubic-bezier(.2,.7,.2,1) both;filter:drop-shadow(0 16px 10px #0009)}
.straya-complete-car{width:100%;height:100%;object-fit:contain}
.straya-mate-takeover .straya-arriving-police{right:3%;top:4%;width:39%;height:65%;z-index:2;animation:painted-officer-reveal calc(2.2s * var(--scene-rate,1)) ease both}
.straya-mate-takeover .straya-arriving-police img{object-fit:contain}
.straya-mate-takeover>strong{left:4%;top:7%;bottom:auto;width:48%;padding:3% 2%;box-sizing:border-box;z-index:4;font-size:clamp(13px,3vw,29px);border:0;background:transparent;text-align:center;text-shadow:0 2px 4px #000,0 0 18px #000}
.straya-mate-takeover>strong small{display:block;font:800 .44em Arial;letter-spacing:.13em;margin-top:8px}
.straya-mate-takeover .straya-police-wash{z-index:5;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(110deg,#f4244644,transparent 55%,#258eff55);animation:painted-light-wash .65s ease-in-out infinite alternate}
@keyframes painted-light-wash{to{opacity:.35;filter:hue-rotate(170deg)}}
@keyframes painted-scene-in{from{opacity:0}to{opacity:1}}
@keyframes painted-car-reveal{0%{opacity:0;transform:translate(-6%,5%) scale(1.32)}35%{opacity:1}72%{transform:translate(0,-1%) scale(1)}86%{transform:translate(0,.5%) scale(1)}100%{opacity:1;transform:translate(0,0) scale(1)}}
@keyframes painted-officer-reveal{from{opacity:0;transform:translateY(12%) scale(.9)}to{opacity:1;transform:none}}
.roadside-officer-face{width:150px;height:160px;overflow:visible;filter:none}
.roadside-officer-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(-6px 0 10px #ff365d) drop-shadow(6px 0 10px #287cff)}
.roadside-cop-open{animation:painted-eye-open 3s steps(1,end) infinite}
.roadside-cop-wink{animation:painted-eye-wink 3s steps(1,end) infinite}
@keyframes painted-eye-open{0%,82%,100%{opacity:1}59%{opacity:0}}
@keyframes painted-eye-wink{0%,82%,100%{opacity:0}59%{opacity:1}}
@media(prefers-reduced-motion:reduce){#reels.straya-police-alarm,#reels.straya-police-alarm .reel,.straya-mate-takeover,.straya-mate-takeover .straya-mate-car,.straya-mate-takeover .straya-arriving-police,.straya-mate-takeover .straya-police-wash{animation:none}.straya-focus-characters{transition:none}}

/* One continuous Gary surface, kept alive throughout each collection route. */
.gm-surface{position:relative;width:100%;height:100%;filter:drop-shadow(0 4px 3px #0005)}
.gm-surface canvas,.gm-surface .gm-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.gm-surface canvas{visibility:hidden}.gm-surface.gm-ready canvas{visibility:visible}.gm-surface.gm-ready .gm-fallback{visibility:hidden}
#strayaGaryBonus .sg-face-left>.gm-surface{transform:scaleX(-1)}

#strayaGaryBonus .sg-growth-values{display:flex;flex-direction:column;gap:2px;align-items:stretch}
#strayaGaryBonus .sg-multiplied-values{display:flex;align-items:center;justify-content:center;gap:3px}
#strayaGaryBonus .sg-cash-values{display:flex;flex-direction:column;min-width:0;gap:2px}
#strayaGaryBonus .sg-growth-values b{position:static;transform:none;margin:0;line-height:1.1;font-size:clamp(7px,1.65cqw,15px)}
#strayaGaryBonus .sg-patch-multiplier{font:bold clamp(10px,2.7cqw,23px)/1 Georgia;color:#f8e6a1;text-shadow:0 2px 3px #000;font-style:normal;flex:none}
#strayaGaryBonus .sg-growth-values .sg-tier-award{border-top:1px solid #e2c478aa;padding-top:3px;margin-top:2px;letter-spacing:.05em;font-weight:900}
#strayaGaryBonus .sg-tier-mini{color:#62dfff!important;text-shadow:0 0 5px #067caf,0 1px 3px #000}
#strayaGaryBonus .sg-tier-minor{color:#d48bff!important;text-shadow:0 0 5px #8f30c9,0 1px 3px #000}

/* Cash plaques stay legible against the meadow at every cabinet size. */
#strayaGaryBonus .sg-shell{container-type:inline-size}
#strayaGaryBonus .sg-amounts.sg-growth-values{inset-inline:3%;bottom:7%;gap:0;padding:4px 2px;border:1px solid #b99a50;border-radius:7px;background:linear-gradient(160deg,#203c32f5,#071b18f5);box-shadow:inset 0 1px #fff1bb35,0 2px 5px #0009;box-sizing:border-box}
#strayaGaryBonus .sg-multiplied-values{gap:3px;min-width:0}
#strayaGaryBonus .sg-cash-values{gap:3px;align-items:center;flex:1}
#strayaGaryBonus .sg-amounts.sg-growth-values b,#strayaGaryBonus .sg-amounts.sg-growth-values .sg-gold-amount{padding:0;display:block;font:800 clamp(7px,2.35cqw,18px)/1.15 Arial,sans-serif;letter-spacing:-.035em;color:#fff8e4;text-shadow:0 1px 2px #000;white-space:nowrap}
#strayaGaryBonus .sg-amounts.sg-growth-values .sg-gold-amount{color:#ffdc73;border-top:1px solid #c79a4138;padding-top:3px}
#strayaGaryBonus .sg-patch-multiplier{align-self:stretch;display:flex;align-items:center;justify-content:center;padding:0 3px;border-right:1px solid #d7b46670;color:#ffe69b;font:900 clamp(9px,3cqw,23px)/1 Georgia,serif;text-shadow:0 1px 2px #000}
#strayaGaryBonus .sg-amounts.sg-growth-values .sg-tier-award{margin:4px -2px -4px;padding:4px 1px;border-top:1px solid #d4b66c;border-radius:0 0 6px 6px;text-align:center;font:900 clamp(7px,2.2cqw,17px)/1.1 Arial,sans-serif;letter-spacing:.09em;background:linear-gradient(#492260,#241035);color:#e8baff!important;text-shadow:0 1px 2px #14051e}
#strayaGaryBonus .sg-amounts.sg-growth-values .sg-tier-mini{background:linear-gradient(#15445a,#092735);color:#94ecff!important}

/* Reserve visible meadow below every award; higher growth lifts its plaque. */
#strayaGaryBonus .sg-grass,#strayaGaryBonus .sg-double-grass .sg-grass{height:calc(22% + var(--patch-level,1)*4%);transform-origin:center bottom;filter:brightness(1.12) saturate(1.08);mask-image:linear-gradient(#000 85%,transparent)}
#strayaGaryBonus .sg-amounts.sg-growth-values{bottom:calc(22% + var(--patch-level,1)*4%);transform-origin:center bottom}
#strayaGaryBonus .sg-values-hidden .sg-slot:not(.sg-value-revealed) .sg-amounts{visibility:hidden}
#strayaGaryBonus .sg-amounts.sg-growth-values{padding-block:2px}
#strayaGaryBonus .sg-cash-values{gap:1px}
#strayaGaryBonus .sg-amounts.sg-growth-values .sg-gold-amount{padding-top:1px}
#strayaGaryBonus .sg-amounts.sg-growth-values .sg-tier-award{padding-block:2px;margin-top:2px;margin-bottom:-2px}

/* Democracy Manifest: continuous chase and staged restaurant presentation. */
.straya-runner.manifest-mesh-ready{background:none;aspect-ratio:480/580;height:55%;bottom:10%}
.straya-runner canvas{display:block;width:100%;height:100%}
.straya-dash-scene:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 35px #160d0999}
.straya-dash-scene.straya-caught:after{background:linear-gradient(110deg,#ff17304d,transparent 45%,#226dff55);animation:manifest-police-wash 1s ease-in-out 2 alternate}
@keyframes manifest-police-wash{to{background:linear-gradient(110deg,#226dff55,transparent 45%,#ff17304d)}}
.straya-restaurant-cabinet .straya-bill-paper,.straya-restaurant-cabinet .straya-receipt{animation:manifest-receipt-arrive .65s cubic-bezier(.2,.7,.2,1) both}
@keyframes manifest-receipt-arrive{from{transform:translateY(35%) rotate(5deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
.straya-restaurant-cabinet .straya-feature-intro .straya-host{animation:manifest-host-arrive .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes manifest-host-arrive{from{transform:translateY(18%) scale(.92);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
.straya-restaurant-cabinet .straya-new-dish .straya-food:after{content:'';position:absolute;left:35%;top:-20%;width:30%;height:55%;background:radial-gradient(ellipse,#fff0c144,transparent 65%);filter:blur(3px);animation:manifest-steam 1.6s ease-out infinite;pointer-events:none}
@keyframes manifest-steam{from{transform:translateY(8%) scaleX(.7);opacity:0}35%{opacity:.8}to{transform:translateY(-38%) scaleX(1.3);opacity:0}}
#strayaFeature.straya-restaurant-cabinet footer button:not(.straya-test-reconnect){min-height:32px}
@media(prefers-reduced-motion:reduce){.straya-restaurant-cabinet .straya-bill-paper,.straya-restaurant-cabinet .straya-receipt,.straya-restaurant-cabinet .straya-feature-intro .straya-host,.straya-restaurant-cabinet .straya-new-dish .straya-food:after,.straya-dash-scene.straya-caught:after{animation:none}}
/* Keep the wheel, pointer and result inside their allocated mobile stage. */
.straya-restaurant-cabinet .straya-tip-scene{display:grid;grid-template-rows:14% minmax(0,68%) 18%;justify-items:center;align-items:center;gap:0;padding:2% 3%}
.straya-restaurant-cabinet .straya-wheel-mount{height:100%;min-height:0;max-width:100%}
.straya-restaurant-cabinet .straya-tip-pointer{top:0;margin:0;font-size:clamp(12px,3cqw,24px)}
.straya-restaurant-cabinet .straya-tip-amount{font-size:clamp(8px,2.2cqw,16px);line-height:1.2;margin:0;max-width:100%;text-align:center}
.straya-runner.manifest-tackling,.straya-runner.manifest-tackled{transform-origin:50% 55%}
.straya-runner.manifest-frustrated{transform-origin:50% 90%}

.straya-runner.manifest-rig-ready{background:none;aspect-ratio:1400/1280;height:76%;bottom:3%;width:auto;filter:drop-shadow(0 3px 2px #0008)}

/* Full-scene film keeps the authored body motion intact on every renderer. */
.straya-restaurant-cabinet .manifest-film-scene{background:#141110;isolation:isolate}
.manifest-film-scene .manifest-film{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:0}
.manifest-film-scene>h3{position:relative;z-index:2;pointer-events:none}
.manifest-film-scene .straya-dash-result{z-index:2;pointer-events:none}
.manifest-film-scene .straya-runner[hidden]{display:none!important}

.straya-restaurant-cabinet .manifest-film-scene{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.manifest-film-scene .manifest-film{position:relative;inset:auto;grid-row:2;min-height:0;align-self:center}
.straya-restaurant-cabinet .manifest-film-scene>h3{grid-row:1;margin:0;padding:1.5%}
.straya-restaurant-cabinet .manifest-film-scene .straya-dash-result{position:relative;grid-row:3;inset:auto;margin:0 2% 1%;padding:2%}

.straya-mate-takeover.straya-mate-film{background:#050911;animation:painted-scene-in 1.4s ease both}
.straya-mate-film>.feature-film{width:100%;height:100%;object-fit:contain;display:block}
.straya-mate-takeover.straya-mate-film>strong{left:5%;right:5%;top:auto;bottom:2%;width:auto;padding:2%;background:#06121ad9;font-size:clamp(14px,3vw,28px)}
.game-tits #banditDialog .knicker-film-host{background:#170c22!important;aspect-ratio:16/9!important;min-height:0;height:auto!important}
.knicker-film-host>.feature-film{display:block;width:100%;height:100%;object-fit:contain;position:relative;z-index:1}
.knicker-film-host:after{display:none}

/* Keep each film visible while it loads, then reveal the feature gently. */
.feature-film-host{position:relative}
.feature-film-gate{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;gap:12px;background:#09101988;pointer-events:auto}
.feature-film-gate button{border:1px solid #dfbd81;border-radius:9px;padding:14px 18px;background:#e2be7e;color:#20170d;font:800 14px Arial;cursor:pointer}
.feature-film-gate .feature-film-skip{background:#16212f;color:#fff2d6}
.feature-film-host>.feature-film{opacity:1}
.feature-film-host>.feature-film.is-playing{animation:feature-film-reveal .55s ease-out both}
@keyframes feature-film-reveal{from{filter:brightness(.35)}to{filter:brightness(1)}}
#banditDialog>.raid-mate-intro{position:absolute;inset:0;z-index:30;display:grid;place-items:center;background:#06121c;border-radius:inherit;overflow:hidden}
.raid-mate-intro>.feature-film{width:100%;height:100%;object-fit:contain}
.straya-mate-film .feature-film-gate{pointer-events:auto}
@media(prefers-reduced-motion:reduce){.feature-film-host>.feature-film.is-playing{animation:none}}

/* Film covers the exact reel stage, never participates in normal layout. */
.game-straya .machine{position:relative}
.game-straya .machine>.straya-mate-takeover.straya-mate-film{position:absolute;inset:0;z-index:80;margin:0;animation:mate-film-crossfade 1.4s ease-in-out both}
@keyframes mate-film-crossfade{from{opacity:0}to{opacity:1}}
#reels.straya-police-morph .straya-focus-characters{opacity:0;filter:none;transition:opacity 1.4s ease-in-out}
#banditDialog>.raid-mate-intro.feature-film-host{position:absolute;inset:0;z-index:80}
@media(prefers-reduced-motion:reduce){.game-straya .machine>.straya-mate-takeover.straya-mate-film{animation:none}}

#banditDialog::backdrop{transition:opacity .65s ease-in-out}
#banditDialog.mate-selection-entering::backdrop{opacity:0}

/* A Gary hit is lifted alone, leaving every other reel and amount in place. */
#strayaGaryBonus .sg-slot{isolation:isolate}
#strayaGaryBonus .sg-landing-head{position:absolute;inset:5%;z-index:12;display:flex;align-items:center;justify-content:center;pointer-events:none}
#strayaGaryBonus .sg-landing-head>.straya-symbol{width:88%;height:88%;overflow:visible;opacity:1;filter:drop-shadow(0 0 7px #d6ed92) drop-shadow(0 2px 3px #061a10);object-fit:contain}

/* The same per-cell growth ratio as the main meadow, anchored to the soil. */
#strayaGaryBonus .sg-grass,#strayaGaryBonus .sg-double-grass .sg-grass{height:calc(30% * var(--patch-scale,1));transform-origin:center bottom}
#strayaGaryBonus .sg-amounts.sg-growth-values{bottom:min(calc(30% * var(--patch-scale,1)),36%)}

/* Fixed single-row breathalyser waveform, including narrow mobile screens. */
.roadside-wave{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:clamp(2px,1vw,5px);height:22px;min-width:0;max-width:100%;font-size:0;letter-spacing:0;white-space:nowrap}.roadside-wave>i{display:block;min-width:0;background:currentColor;border-radius:1px}

/* VB Last Shout: pub-green cabinet and continuous, progressively drunken reels. */
body.game-straya.vb-mode .reels{border-color:#e0be57!important;background:#052e22!important;box-shadow:0 0 0 3px #204f30,0 0 32px #8bbd3970!important}
body.game-straya.vb-mode #reels .reel{overflow:visible;background:linear-gradient(#183e24,#071e16)!important;transform-origin:50% 75%;transition:background .4s}
body.game-straya.vb-mode #reels .cell,body.game-straya.vb-mode #reels .reel-tile{overflow:visible;background:radial-gradient(ellipse,#387c3445,#04281e)!important;border-color:#accc6340!important}
/* Blur belongs to the entire reel, so stop/landing styles cannot clear it. */
body.game-straya.vb-mode #reels{overflow:hidden;isolation:isolate;background:#052e22!important}
body.game-straya.vb-mode #reels .reel{filter:blur(var(--vb-blur,1.1px)) saturate(1.3)!important;animation:vb-stagger 3.2s ease-in-out infinite;transition:filter .8s ease;z-index:1}
body.game-straya.vb-mode #reels .reel:nth-child(even){animation-direction:reverse;animation-delay:-1.3s}
body.game-straya.vb-mode #reels .cell>.straya-symbol,body.game-straya.vb-mode #reels .reel-tile>.straya-symbol{animation:vb-sway 3.7s ease-in-out infinite!important;transform-origin:50% 80%}
body.game-straya.vb-mode #reels .reel:nth-child(even) .straya-symbol{animation-direction:reverse!important;animation-delay:-1.6s!important}
body.game-straya.vb-mode #reels .cell:nth-child(3n)>.straya-symbol{animation-delay:-2.4s!important}
body.game-straya.vb-mode.vb-spinning #reels .straya-symbol{animation-name:vb-tumble!important;animation-duration:1.3s!important}
body.game-straya.vb-mode .meters{grid-template-columns:1fr 1fr}
body.game-straya.vb-mode .meters .meter:has(#win){display:none}
@keyframes vb-sway{0%,100%{transform:translate(calc(-1 * var(--vb-drift,10%)),-3%) rotate(calc(-1 * var(--vb-lean,5deg)))}50%{transform:translate(var(--vb-drift,10%),7%) rotate(var(--vb-lean,5deg))}}
@keyframes vb-tumble{0%,100%{transform:translate(-42%,-16%) rotate(-22deg)}45%{transform:translate(55%,19%) rotate(29deg)}70%{transform:translate(14%,32%) rotate(-13deg)}}
.vb-mode .straya-field,.vb-mode .straya-mate-window{visibility:hidden}
.vb-mode .payline-overlay{filter:drop-shadow(0 0 3px #ffe07b)}
.vb-mode .payline-overlay polyline{stroke:#ffe07b;stroke-width:4}
.cell.vb-can.scatter-landed{animation:vb-can-gold .7s ease-out!important}
.cell.vb-can{position:relative}
.vb-controls{margin:14px 0;padding:18px;border:1px solid #d8bd66;border-radius:15px;background:linear-gradient(140deg,#153c27,#071c15);color:#fff2ca;text-align:center;box-sizing:border-box}
.vb-heading span{font:800 10px system-ui;letter-spacing:3px;color:#dac577}.vb-heading h2{font:900 clamp(27px,7vw,42px)/1.1 Georgia,serif;margin:5px}.vb-heading p{font:800 10px/1.6 system-ui;letter-spacing:.08em;color:#d4dcb6}
.vb-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.vb-stats>div{padding:12px 5px;border:1px solid #a4b76155;border-radius:9px;background:#04170d}.vb-stats small{display:block;font:700 10px system-ui;color:#c9cc9a}.vb-stats strong{display:block;font:800 clamp(20px,5vw,30px) system-ui;overflow-wrap:anywhere;color:#ffe5a1}
.vb-actions{display:flex;gap:10px}.vb-actions button{flex:1;min-height:48px;border:1px solid #e4c968;border-radius:10px;background:#e4c968;color:#092717;font-weight:900}.vb-actions .vb-auto{flex:0 0 90px;background:#193d2b;color:#ffe9a4}.vb-actions .vb-auto[aria-pressed="true"]{background:#437c34}.vb-controls details{margin-top:14px;text-align:left;font:12px/1.6 system-ui}.vb-status{min-height:20px;font:800 12px/1.5 system-ui}.vb-splash{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#042a22ec;color:#ffe7a2;text-align:center;border-radius:16px;pointer-events:none}.vb-splash img{width:36%;height:55%;object-fit:contain;animation:vb-crack 1s ease-in-out}.vb-splash strong{font:900 clamp(16px,5vw,32px) Georgia,serif}.vb-splash span{font:800 15px system-ui;margin-top:8px}
@keyframes vb-stagger{0%,100%{transform:rotate(-2deg) translateY(-2px)}45%{transform:rotate(2.8deg) translateY(5px)}75%{transform:rotate(-1deg) translateY(1px)}}
@keyframes vb-can-gold{0%,100%{box-shadow:inset 0 0 12px #ffdd5580}35%,70%{box-shadow:inset 0 0 32px #ffe182,0 0 12px #ffe182;filter:brightness(1.45)}}
@keyframes vb-crack{0%{transform:rotate(-12deg) scale(.7)}50%{transform:rotate(10deg) scale(1.05)}100%{transform:rotate(0) scale(1)}}
@media(prefers-reduced-motion:reduce){body.game-straya.vb-mode #reels .reel,body.game-straya.vb-mode #reels .cell>.straya-symbol,body.game-straya.vb-mode #reels .reel-tile>.straya-symbol,.cell.vb-can.scatter-landed,.vb-splash img{animation:none!important;transform:none!important}}

body.game-straya #reels .cell.vb-can.scatter-landed>.straya-symbol{filter:drop-shadow(0 0 6px #fff4a3) drop-shadow(0 0 14px #ffd447)!important}
/* Use the shared feature palette contract so the cabinet, meters and reels agree. */
body.game-straya.vb-mode[data-feature-mode]{--feature-accent:#e4c968!important;--feature-rgb:139 189 57!important;--feature-ink:#052e22!important;--reel-edge:#052317!important;--reel-centre:#214e2c!important}

/* One continuous pub floor. Individual symbols wander, not painted columns. */
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels{gap:0!important;background:radial-gradient(ellipse at 50% 15%,#28533b,#052419 85%)!important}
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels>.reel,
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels .reel-strip,
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels .cell,
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels .reel-tile{background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important;clip-path:none!important;contain:none!important}
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels>.reel{animation:none!important;transform:none!important}
body.game-straya.vb-mode #reels>.reel:before,body.game-straya.vb-mode #reels>.reel:after{display:none!important}
body.game-straya.vb-mode #reels .cell>.straya-symbol{animation-name:vb-individual-sway!important;animation-duration:var(--vb-speed,3.1s)!important;animation-direction:normal!important;animation-delay:var(--vb-delay,-.7s)!important}
body.game-straya.vb-mode #reels .reel:nth-child(2n){--vb-side:-1;--vb-speed:2.7s;--vb-delay:-1.5s}
body.game-straya.vb-mode #reels .reel:nth-child(2n+1){--vb-side:1;--vb-speed:3.5s;--vb-delay:-.3s}
body.game-straya.vb-mode #reels .cell:nth-child(2n){--vb-side:-1;--vb-delay:-2.1s;--vb-speed:2.9s}
body.game-straya.vb-mode #reels .cell:nth-child(3n){--vb-side:1;--vb-delay:-1.2s;--vb-speed:3.9s}
body.game-straya.vb-mode #reels .reel:first-child .cell{--vb-side:1}
body.game-straya.vb-mode #reels .reel:nth-child(5) .cell{--vb-side:-1}
@keyframes vb-individual-sway{0%,100%{transform:translate(0,1%) rotate(-3deg)}40%{transform:translate(calc(var(--vb-side,1) * var(--vb-drift,14%)),6%) rotate(calc(var(--vb-side,1) * var(--vb-lean,7deg)))}75%{transform:translate(calc(var(--vb-side,1) * 6%),-3%) rotate(3deg)}}
body.game-straya.vb-mode #reels .vb-lifted{visibility:hidden!important}
#reels>.vb-spill-stage{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden;display:block}
.vb-spilled-icon{position:absolute;display:flex;align-items:center;justify-content:center;transform-origin:center bottom;filter:blur(var(--vb-blur,1.1px)) saturate(1.3)}
#reels .vb-spilled-icon>.straya-symbol{display:block;width:100%!important;height:100%!important;object-fit:contain;animation:none!important;transform:none!important;visibility:visible!important}
@media(prefers-reduced-motion:reduce){body.game-straya.vb-mode #reels .cell>.straya-symbol{animation:none!important;transform:none!important}}

/* The beer-opening performance replaces the intro can inside the reel popup. */
.vb-splash .vb-intro-video{display:none;width:100%;height:100%;object-fit:contain;border-radius:16px;background:#042a22}
.vb-splash.vb-show-video .vb-intro-video{display:block}
.vb-splash.vb-show-video>img,.vb-splash.vb-show-video>strong,.vb-splash.vb-show-video>span{display:none}

/* VB's local pub surrounds the intro and remains around every free game. */
body.game-straya.vb-mode .machine{padding:0 10px!important;border:2px solid #bb9254!important;border-radius:15px!important;background:repeating-linear-gradient(2deg,#452d1f 0,#513422 3px,#38251a 5px,#563925 9px)!important;box-shadow:inset 0 0 0 3px #21160f,0 10px 28px #0009!important;overflow:visible}
.vb-pub-sign{height:68px;display:flex;align-items:center;justify-content:center;gap:18px;color:#f5e5b8;background:linear-gradient(90deg,#10271f,#163e2d 50%,#10271f);border:1px solid #a98950;border-top:0;border-radius:0 0 12px 12px;box-shadow:0 4px 8px #0008;position:relative;z-index:2;margin:0 5px 10px}
.vb-pub-badge{display:grid;place-items:center;flex:none;width:45px;height:45px;border:3px solid #efeadb;border-radius:50%;background:#bf302b;box-shadow:0 0 0 2px #a98c4f}
.vb-pub-badge b{display:block;width:100%;background:#f1eee3;color:#151715;font:900 26px/1 Georgia,serif;text-align:center}
.vb-pub-title{display:flex;flex-direction:column;align-items:center;gap:3px;text-shadow:0 2px 4px #000}
.vb-pub-title small{font:700 9px/1 system-ui;letter-spacing:.32em;color:#d1bd8c}
.vb-pub-title>b{font:900 clamp(19px,5vw,30px)/1 Georgia,serif;letter-spacing:.08em;color:#ffedb9;text-shadow:0 0 14px #e6bd4266}
.vb-pub-lamp{height:12px;width:23px;flex:none;border-radius:50% 50% 20% 20%;border-top:5px solid #ac8747;background:#ffdda0;box-shadow:0 7px 15px #ffc25f77,0 16px 22px #ffb44233}
.vb-pub-rail{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:#e2c58e;font:800 8px/1 system-ui;letter-spacing:.16em;border-top:2px solid #c49e5e;background:linear-gradient(#6a4930,#302016);margin:9px -8px 0;border-radius:0 0 12px 12px}
body.game-straya.vb-mode .cabinet #reels{border:1px solid #9b7c48!important;border-radius:8px!important;box-shadow:0 0 0 2px #121b13,inset 0 0 20px #0008!important}
body.game-straya.vb-mode #reels .vb-splash{background:radial-gradient(ellipse,#193c2b,#071b14);border-radius:7px;overflow:hidden}
.vb-pub-screen{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow:hidden}
.vb-pub-screen:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 25px #0008,inset 0 0 0 1px #b8995a55;z-index:3}
.vb-pub-screen>.vb-intro-video{position:absolute;inset:0;margin:auto;width:100%;height:100%;object-fit:contain;border-radius:0;background:#091b13}
.vb-pub-intro-copy{display:flex;align-items:center;flex-direction:column}
.vb-show-video .vb-pub-screen>img,.vb-show-video .vb-pub-intro-copy{display:none}
.vb-controls{border-color:#a8874d;background:linear-gradient(145deg,#15372a,#0b2119);box-shadow:inset 0 1px #d6b77922,0 8px 20px #0005}
@media(max-width:420px){.vb-pub-sign{gap:10px;height:58px;margin-left:0;margin-right:0}.vb-pub-badge{width:36px;height:36px}.vb-pub-badge b{font-size:23px}.vb-pub-lamp{width:15px}.vb-pub-rail{padding:0 8px;font-size:7px}}

/* Blur the artwork, never rectangular column layers. Clip only the shared viewport. */
body.game-straya.vb-mode .cabinet #reels .reel,
body.game-straya.vb-mode .cabinet #reels .reel-strip,
body.game-straya.vb-mode .cabinet #reels .reel-tile,
body.game-straya.vb-mode .cabinet #reels .cell{background:transparent!important;border:0!important;box-shadow:none!important;outline:0!important;contain:none!important;overflow:visible!important;clip:auto!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important}
body.game-straya.vb-mode .cabinet #reels .reel{filter:none!important;isolation:auto!important}
body.game-straya.vb-mode .cabinet #reels .reel:before,body.game-straya.vb-mode .cabinet #reels .reel:after,body.game-straya.vb-mode #reels .straya-field{display:none!important}
body.game-straya.vb-mode .cabinet #reels .reel .straya-symbol{filter:blur(var(--vb-blur,1.1px)) saturate(1.3)!important}
.vb-floor-stage{position:absolute;z-index:9;pointer-events:none;overflow:hidden;border-radius:8px}
.vb-floor-stage .vb-spilled-icon>.straya-symbol{display:block;width:100%!important;height:100%!important;object-fit:contain;animation:none!important;transform:none!important;visibility:visible!important}
.vb-floor-stage .vb-spilled-icon{filter:blur(var(--vb-blur,1.1px)) saturate(1.3);opacity:.92}
body.game-straya.vb-mode .machine:has(.vb-splash)>.vb-floor-stage{visibility:hidden}

/* Keep the same per-symbol motion before and after the reel stops. */
body.game-straya.vb-mode.vb-spinning .cabinet #reels .reel .straya-symbol,
body.game-straya.vb-mode .cabinet #reels .reel .straya-symbol{animation:vb-drunken-wander var(--vb-speed,3.7s) ease-in-out var(--vb-delay,-1s) infinite normal!important}
@keyframes vb-drunken-wander{0%,100%{transform:translate(calc(var(--vb-side,1) * var(--vb-wander,.7) * var(--vb-drift,14%)),var(--vb-bob,5%)) rotate(calc(var(--vb-side,1) * var(--vb-lean,7deg)))}37%{transform:translate(calc(-.7 * var(--vb-side,1) * var(--vb-drift,14%)),calc(-1 * var(--vb-bob,5%))) rotate(calc(-.8 * var(--vb-side,1) * var(--vb-lean,7deg)))}71%{transform:translate(calc(.3 * var(--vb-side,1) * var(--vb-drift,14%)),2%) rotate(2deg)}}
body.game-straya.vb-mode .machine{padding:0 18px!important;border:4px solid #aa793c!important;box-shadow:inset 7px 0 8px #160b08aa,inset -7px 0 8px #160b08aa,0 0 0 2px #301c11,0 10px 28px #0009!important}
.vb-pub-sign{height:82px;margin-bottom:14px;border:3px ridge #c5a060;border-top:0;box-shadow:0 5px 10px #0009,inset 0 0 22px #0007}
.vb-pub-badge{width:55px;height:55px}.vb-pub-badge b{font-size:32px}
.vb-pub-rail{height:45px;border-top:5px ridge #cb9b55;margin:13px -15px 0;background:linear-gradient(#805832,#51351f 35%,#23160d);font-size:9px}
@media(max-width:420px){body.game-straya.vb-mode .machine{padding:0 12px!important}.vb-pub-sign{height:70px;gap:9px}.vb-pub-badge{width:43px;height:43px}.vb-pub-badge b{font-size:27px}.vb-pub-rail{margin-left:-9px;margin-right:-9px;font-size:7px}}
@media(prefers-reduced-motion:reduce){body.game-straya.vb-mode.vb-spinning .cabinet #reels .reel .straya-symbol,body.game-straya.vb-mode .cabinet #reels .reel .straya-symbol{animation:none!important;transform:none!important}}

/* Illustrated pub cabinet: the same full-art treatment as Gary's Grass. */
body.game-straya.vb-mode[data-feature-mode] .cabinet .machine{position:relative;padding:25% 12.7% 24%!important;border:0!important;border-radius:12px!important;background:#062c19 url('assets/straya/vb-pub-cabinet-r74.webp') center/100% 100% no-repeat!important;box-shadow:0 12px 35px #0009!important}
body.game-straya.vb-mode .vb-pub-sign,body.game-straya.vb-mode .vb-pub-rail{display:none}
body.game-straya.vb-mode .cabinet #reels{padding:0!important;border:0!important;border-radius:3px!important;background:#002b18!important;box-shadow:none!important}
body.game-straya.vb-mode[data-feature-mode] .cabinet #reels{border:0!important;background:#092e20!important;box-shadow:none!important}
.vb-mode .vb-heading h2{font:800 clamp(24px,6vw,34px)/1.1 'Arial Narrow',Arial,sans-serif;letter-spacing:.08em}

/* Preserve the art's proportions and place gameplay exactly inside its opening. */
body.game-straya.vb-mode[data-feature-mode] .cabinet .machine{aspect-ratio:4/5;padding:0!important;min-height:0;background-size:100% 100%!important}
body.game-straya.vb-mode[data-feature-mode] .cabinet .machine #reels{position:absolute;left:12.7%;right:12.1%;top:20.2%;bottom:19.2%;height:auto!important;width:auto!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:hidden!important;border-radius:0!important}
body.game-straya.vb-mode .cabinet #reels .reel{--reel-peek:0px;height:100%!important}
body.game-straya.vb-mode #reels .reel:not(.spinning) .reel-tile{visibility:hidden}
body.game-straya.vb-mode #reels .vb-splash{border:0!important;border-radius:0!important;background:transparent!important}
.vb-pub-screen:after{box-shadow:inset 0 0 16px #071b1480}
.vb-pub-screen>.vb-intro-video{object-fit:cover;background:transparent;border-radius:0}
.vb-floor-stage .vb-spilled-icon{opacity:1}

/* Foreground timber and bar hide every gameplay edge, including the intro film. */
.vb-pub-overlay{position:absolute;inset:0;z-index:100;pointer-events:none;background:url('assets/straya/vb-pub-cabinet-r74.webp') center/100% 100% no-repeat;clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,12.7% 20.2%,12.7% 80.8%,81.45% 80.8%,81.38% 79%,81.5% 77.2%,81.9% 75.6%,82.35% 74.55%,82.45% 74.05%,83.3% 73.8%,85% 73.75%,86.7% 73.9%,87.55% 74.2%,87.9% 75%,87.9% 20.2%,12.7% 20.2%,0 0)}
body.game-straya.vb-mode[data-feature-mode] .cabinet .machine #reels{left:12.3%;right:11.7%;top:19.8%;bottom:18.8%}
.vb-pub-screen>.vb-intro-video{width:100%;height:100%;object-fit:cover}

/* The shared fall layer reaches the wooden bar in front of the cabinet. */
body.game-straya.vb-mode .vb-floor-stage{z-index:110;border-radius:0;overflow:hidden}
.vb-floor-stage .vb-spilled-icon{filter:blur(calc(var(--vb-blur,1.1px) * .65)) saturate(1.3);filter:drop-shadow(0 5px 3px #0008) blur(calc(var(--vb-blur,1.1px) * .65))}

/* One modal owns Gary's intro and feature, including the handoff. */
#strayaGaryBonus{overscroll-behavior:contain}
#strayaGaryBonus::backdrop{background:rgba(3,12,9,.94);backdrop-filter:blur(5px)}
#strayaGaryBonus .sg-wan-entrance,#strayaGaryBonus .sg-trigger{position:absolute;inset:0;z-index:50;overflow:hidden;background:#09211b;border-radius:inherit;pointer-events:auto;touch-action:none}
#strayaGaryBonus .sg-wan-entrance{display:flex;align-items:center;justify-content:center}

/* Gary's movie lives in the reel opening, under the original cabinet foliage. */
#strayaGaryBonus .sg-stage:has(.sg-wan-entrance),#strayaGaryBonus .sg-stage:has(.sg-trigger){border:0;box-shadow:none;overflow:hidden}
#strayaGaryBonus .sg-stage>.sg-wan-entrance,#strayaGaryBonus .sg-stage>.sg-trigger{inset:0;z-index:20;border-radius:0;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent);}
#strayaGaryBonus .sg-shell:has(.sg-wan-entrance)::after,#strayaGaryBonus .sg-shell:has(.sg-trigger)::after{content:'';position:absolute;inset:0;z-index:60;pointer-events:none;background:url('assets/straya/gary-cabinet-v5.webp') center/100% 100% no-repeat;mask-image:linear-gradient(to right,#000,transparent 13%,transparent 87%,#000),linear-gradient(to bottom,#000 40%,transparent 48%,transparent 76%,#000 88%)}
#strayaGaryBonus .sg-shell:has(.sg-wan-entrance)>.sg-total,#strayaGaryBonus .sg-shell:has(.sg-wan-entrance)>footer,#strayaGaryBonus .sg-shell:has(.sg-wan-entrance)>.sg-masthead{position:relative;z-index:70}

/* The reel window must not crop a symbol after it has fallen onto the bar. */
body.game-straya.vb-mode .vb-floor-stage{overflow:visible}

#strayaGaryBonus .sg-shell:has(.sg-trigger)>.sg-total,#strayaGaryBonus .sg-shell:has(.sg-trigger)>footer,#strayaGaryBonus .sg-shell:has(.sg-trigger)>.sg-masthead{position:relative;z-index:70}
#strayaGaryBonus .sg-stage>.sg-trigger .sg-trigger-goat{top:0;height:95%;max-width:70%}
#strayaGaryBonus .sg-stage>.sg-trigger>strong{display:none}

/* Compact pub chalkboard scoreboard. Keep the cabinet artwork as the sole title. */
.vb-controls{margin:6px 0 10px;padding:10px 12px 8px;border:1px solid #716044;border-radius:5px;background:radial-gradient(ellipse at 24% 25%,#b7c9b510,transparent 65%),repeating-linear-gradient(174deg,#ffffff02 0 1px,transparent 1px 5px),#172b25;box-shadow:inset 0 0 16px #0009,0 2px 4px #0005;color:#eeeedd}
.vb-controls .vb-stats{gap:0;margin:0 0 9px;border-bottom:1px solid #e9eed345;padding:0 0 8px}
.vb-controls .vb-stats>div{min-width:0;padding:3px 6px;border:0;border-radius:0;background:none}
.vb-controls .vb-stats>div+div{border-left:1px solid #e9eed340}
.vb-controls .vb-stats small,.vb-controls .vb-stats strong{font-family:"Chalkboard SE","Chalkboard",ui-rounded,system-ui,sans-serif;color:#eeefdf;text-shadow:none}
.vb-controls .vb-stats small{font-size:11px;font-weight:600;letter-spacing:.08em;line-height:1.3}
.vb-controls .vb-stats strong{font-size:clamp(24px,6vw,36px);font-weight:600;line-height:1.18;margin-top:2px;overflow-wrap:anywhere}
.vb-controls .vb-actions button{min-height:48px;border-radius:5px;font-size:15px}
.vb-controls .vb-status:empty{display:none}
.vb-controls .vb-status{min-height:0;margin:7px 0 0;font-size:12px}
.vb-controls details{margin-top:7px;font-size:11px}
.vb-controls details summary{padding:3px 0;color:#d6d9c8}
/* Restaurant entrance: lacquer doors reveal the dining room inside the cabinet. */
.manifest-welcome{position:relative;height:100%;overflow:hidden;isolation:isolate;background:#261008}
.manifest-dining-room{position:absolute;inset:0;background:url('assets/straya/restaurant-placemats-v5.webp') center/cover;animation:manifest-room-arrive 2.4s ease-out both}
.manifest-menu{position:absolute;left:22%;right:22%;top:29%;padding:8% 3%;text-align:center;color:#f6d496;border:1px solid #be8f48;background:linear-gradient(135deg,#631a12f2,#280d09f5);box-shadow:0 8px 20px #0009,inset 0 0 0 4px #2b100a,inset 0 0 0 5px #b48648;transform:rotate(-3deg);animation:manifest-menu-arrive 1.3s .65s both}
.manifest-menu small{display:block;font:600 clamp(7px,1.5cqw,12px) Georgia;letter-spacing:.12em}
.manifest-menu strong{display:block;font:italic 700 clamp(16px,4.6cqw,34px)/1.1 Georgia;margin:12% 0}
.manifest-menu span{display:block;font:600 clamp(6px,1.25cqw,10px)/1.6 Arial;letter-spacing:.05em}
.manifest-door{position:absolute;top:0;bottom:0;width:50%;background:repeating-linear-gradient(90deg,transparent 0 13%,#bb854333 14% 15%,transparent 16% 29%),linear-gradient(100deg,#310b08,#8b2419 45%,#390b08);border:2px solid #bd8a42;box-sizing:border-box;box-shadow:inset 0 0 0 9px #3b100d,inset 0 0 0 11px #b17c38;animation:manifest-door-open 1.8s .15s cubic-bezier(.25,.6,.2,1) both}
.manifest-door:after{content:'';position:absolute;top:45%;width:12%;aspect-ratio:1;border:3px solid #dfb363;border-radius:50%;box-shadow:0 3px 6px #0009}
.manifest-door-left{left:0;--door-shift:-103%}.manifest-door-left:after{right:9%}.manifest-door-right{right:0;--door-shift:103%}.manifest-door-right:after{left:9%}
@keyframes manifest-door-open{to{transform:translateX(var(--door-shift))}}
@keyframes manifest-room-arrive{from{transform:scale(1.08);filter:brightness(.5)}to{transform:scale(1);filter:brightness(1)}}
@keyframes manifest-menu-arrive{from{opacity:0;transform:translateY(18%) rotate(-3deg)}to{opacity:1;transform:translateY(0) rotate(-3deg)}}
/* Collection clones retain the same layout as their original table dishes. */
.straya-collected-plate{display:block!important;overflow:visible!important;aspect-ratio:1}
.straya-collected-plate>b{position:absolute;left:50%;top:88%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(8px,1.8vw,15px);z-index:2}
#strayaFeature.straya-restaurant-cabinet footer button.straya-feature-gamble,#strayaGaryBonus .sg-gamble,.vb-controls .vb-gamble{background:linear-gradient(#bd3540,#791522);border-color:#ecaf78;box-shadow:inset 0 0 0 2px #63131d,0 3px 5px #0009;color:#fff0d9}
.feature-minimise{position:absolute!important;top:8px!important;right:8px!important;left:auto!important;z-index:1000!important;min-height:36px!important;min-width:0!important;width:auto!important;height:auto!important;padding:7px 11px!important;border:1px solid #d6b276!important;border-radius:7px!important;background:#1e1914f0!important;color:#fff0cd!important;font:700 11px/1.3 Arial!important;cursor:pointer;box-shadow:0 2px 8px #0008!important}
.feature-return-panel{position:absolute;inset:0;z-index:2000;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;background:#061218e8;backdrop-filter:blur(5px);border-radius:8px;text-align:center;padding:18px}
.feature-return-panel button{padding:16px 22px;border:2px solid #e0bd78;background:linear-gradient(#315e4c,#15372b);color:#fff0cc;border-radius:9px;font-weight:900;min-height:48px}
.feature-return-panel small{font:12px Arial;color:#e9dcc7}
.vb-controls{position:relative}.vb-controls>.feature-minimise{top:-42px!important}
.vb-controls.feature-is-minimised>*:not(.feature-minimise){visibility:hidden}.vb-controls.feature-is-minimised>.feature-minimise{display:none}
@media(prefers-reduced-motion:reduce){.manifest-door{display:none}.manifest-menu,.manifest-dining-room{animation:none}}
/* Keep layout measurable while a serve is in flight, without blocking the page. */
dialog.feature-is-minimised{display:block!important;pointer-events:none!important}
.feature-is-minimised,.feature-is-minimised *{visibility:hidden!important}
.vb-controls.feature-is-minimised{display:none!important}
body.vb-mode #autospin{display:none}

/* Restaurant presentation: one scene, two readable counters, external window control. */
#strayaFeature.straya-restaurant-cabinet{--restaurant-width:min(850px,calc(100vw - 12px),calc((100dvh - 104px) / 1.2495543672));max-height:calc(100dvh - 104px)}
#strayaFeature.straya-restaurant-cabinet>.feature-minimise{top:-44px!important;right:0!important;background:#111b1e!important;border-color:#647071!important;box-shadow:none!important;border-radius:6px!important}
#strayaFeature.straya-restaurant-cabinet>.straya-feature-stats{display:grid;grid-template-columns:1fr 1.65fr;left:14%;right:14%;top:71%;height:7.5%;padding:0 3%;gap:5%;background:#201008;border-top:1px solid #987040;border-bottom:1px solid #987040}
#strayaFeature.straya-restaurant-cabinet .straya-feature-stats>span{border:0;width:auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;min-width:0}
#strayaFeature.straya-restaurant-cabinet .straya-feature-stats small{font:600 clamp(7px,1.65cqw,13px)/1.25 Arial,sans-serif;letter-spacing:.08em;color:#c5af8e;max-width:55%;text-align:left}
#strayaFeature.straya-restaurant-cabinet .straya-feature-stats b{font:600 clamp(15px,4cqw,30px)/1 Arial,sans-serif;font-variant-numeric:tabular-nums;color:#fff3da;text-shadow:none;white-space:nowrap}
#strayaFeature.straya-restaurant-cabinet .manifest-film-scene{display:block;padding:0;background:#201008}
#strayaFeature.straya-restaurant-cabinet .manifest-film-scene .manifest-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;margin:0}
#strayaFeature.straya-restaurant-cabinet .manifest-film-scene>h3{position:absolute;top:0;left:0;right:0;margin:0;padding:3% 2% 8%;background:linear-gradient(#100a08bb,transparent);font-size:clamp(12px,3cqw,23px)}
#strayaFeature.straya-restaurant-cabinet .manifest-film-scene .straya-dash-result{position:absolute;left:0;right:0;bottom:0;inset:auto 0 0;margin:0;padding:10% 4% 4%;border:0;background:linear-gradient(transparent,#100a08e8);font:600 clamp(10px,2.5cqw,19px)/1.3 Arial,sans-serif}
#strayaFeature.straya-restaurant-cabinet .straya-bill-choice,#strayaFeature.straya-restaurant-cabinet .straya-restaurant-receipt{padding:5% 4%;isolation:isolate;background-position:38% center}
#strayaFeature.straya-restaurant-cabinet .straya-bill-host,#strayaFeature.straya-restaurant-cabinet .straya-summary-host{position:absolute;left:-8%;bottom:0;width:57%;height:91%;filter:drop-shadow(5px 5px 5px #170d08aa);z-index:-1;transform:none;animation:none}
#strayaFeature.straya-restaurant-cabinet .straya-bill-host img,#strayaFeature.straya-restaurant-cabinet .straya-summary-host img{width:100%;height:100%;object-fit:contain;object-position:bottom;filter:sepia(.15) saturate(.82) brightness(.86);mask-image:linear-gradient(#000 83%,transparent 99%)}
#strayaFeature.straya-restaurant-cabinet .straya-bill-paper,#strayaFeature.straya-restaurant-cabinet .straya-receipt{flex:none;box-sizing:border-box;width:62%;margin-left:auto;padding:6%;align-self:center;box-shadow:-8px 10px 18px #16090677;transform:rotate(1deg);border-color:#b69a6b;animation:none;background:linear-gradient(120deg,#fff1d0,#e6cca0)}
#strayaFeature.straya-restaurant-cabinet .straya-bill-paper h3{margin:5% 0;font-size:clamp(12px,3cqw,23px)}
#strayaFeature.straya-restaurant-cabinet .straya-bill-paper>strong{font:600 clamp(20px,5.4cqw,41px)/1.2 Arial,sans-serif;font-variant-numeric:tabular-nums}
#strayaFeature.straya-restaurant-cabinet .straya-bill-paper p{font-size:clamp(8px,1.8cqw,14px);margin:7% 0}

#strayaFeature.straya-restaurant-cabinet .straya-feature-stats>span:nth-child(2){justify-content:flex-end}

/* Reserve viewport space for every feature window's external minimise control. */
dialog.feature-minimisable{max-height:calc(100dvh - 112px)!important}
dialog.feature-minimisable>.feature-minimise{outline:none!important;box-shadow:none!important;background:#111b1e!important;border-color:#647071!important}
dialog.feature-minimisable>.feature-minimise:focus-visible{outline:2px solid #f3d287!important;outline-offset:2px}

.straya-collect-amount{z-index:31;pointer-events:none;transform:translate(-50%,-50%);white-space:nowrap;font-weight:900;line-height:1.1;padding:2px 5px;border:1px solid #fff3c7;border-radius:5px;background:#ffe5a0;color:#352008;box-shadow:0 2px 5px #0008}

.roadside-actions{display:flex;gap:10px}.roadside-actions button{flex:1;min-width:0}.roadside-actions [data-raid="gamble-open"]{background:linear-gradient(#b93845,#701b28);color:#fff;border-color:#ef9199}
#banditDialog.roadside-dialog [data-raid="gamble-open"]{background:linear-gradient(#b93845,#701b28);color:#fff;border-color:#ef9199}

/* Keep pending and resolved roadside readings identical in size. */
.roadside-readings>span{flex:1 1 0;min-width:0;box-sizing:border-box;height:50px;display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap}
.roadside-readings .roadside-bac-pending{font:800 clamp(10px,3vw,14px)/1 monospace;white-space:nowrap}

/* Spins remaining anchors to the cabinet, including while its intro header is layered. */
#strayaGaryBonus .sg-shell>.sg-turn{z-index:70}

/* Keep the complete roadside scene and actions inside the visual viewport.
   Scale the dialog as one plane so officer motion and overlays remain aligned. */
.game-straya #banditDialog.roadside-dialog.roadside-final{position:fixed;inset:var(--roadside-y,50%) auto auto var(--roadside-x,50%);margin:0;height:max-content;max-height:none!important;overflow:visible;transform:translate(-50%,-50%) scale(var(--roadside-fit,1));transform-origin:center;}
.game-straya #banditDialog.roadside-dialog .straya-raid-masthead{height:clamp(40px,10vh,90px)}
.roadside-driver-caught .roadside-cop-open,.roadside-driver-caught .roadside-cop-wink{animation-duration:1.55s;animation-iteration-count:1;animation-fill-mode:both}
@media(max-height:600px){
 .game-straya #banditDialog.roadside-dialog #banditTitle{font-size:17px;margin:5px}
 .game-straya #banditDialog.roadside-dialog #banditContent{padding:0 12px 8px}
 .roadside-panel h2{font-size:20px;margin:7px 0}.roadside-target,.roadside-kicker{margin:5px 0}
 .roadside-verdict{margin:80px 8px 8px;padding:8px}.roadside-officer-face{width:100px;height:108px}
 .roadside-verdict strong{font-size:18px}.roadside-readings{margin:6px 0}.roadside-readings>span{height:38px;padding:5px;font-size:18px}
 .roadside-result{padding:4px}.roadside-result strong{font-size:30px;margin:5px 0}.roadside-hint{margin:5px 0;font-size:11px}
 .game-straya #banditContent .roadside-button{min-height:44px;margin:6px 0;padding:8px;font-size:14px}
 .roadside-driver{margin-top:80px}.roadside-driver span{padding:12px 4px}
}

/* The modal is a fixed scene, never a second scrolling page. */
html:has(#banditDialog.roadside-dialog[open]),body:has(#banditDialog.roadside-dialog[open]){overflow:hidden;overscroll-behavior:none}
#banditDialog.roadside-dialog.roadside-final{touch-action:pinch-zoom;overscroll-behavior:none}
.game-straya #banditDialog.roadside-dialog:not(.roadside-final){max-height:calc(100dvh - 112px)!important;overflow-y:auto;touch-action:pan-y pinch-zoom;transform:none;overscroll-behavior:contain}
.game-straya #banditDialog.roadside-dialog #banditContent{overflow:visible;max-height:none}
.roadside-driver,.roadside-driver>span,.roadside-officer-face{overflow:visible}
.roadside-driver{padding:0 24px;column-gap:24px}
/* Apply the glow to the composited face, outside the replaced image's paint bounds. */
.roadside-officer-face{filter:drop-shadow(-6px 0 10px #ff365d) drop-shadow(6px 0 10px #287cff)}
.roadside-officer-face img{filter:none}

/* A cached parked-mate wrapper must not clip the shared VB playfield. */
body.game-straya.vb-mode #reels .straya-mate-reel-viewport{overflow:visible!important;clip-path:none!important;contain:none!important}


/* Same-cabinet fallen-icon finale: no layout changes or reel masking. */
body.game-straya.vb-finale .vb-pub-sign{filter:brightness(1.35) saturate(1.2)}
body.game-straya.vb-finale #reels{outline:2px solid #efcf77;outline-offset:-2px}
body.game-straya.vb-finale .vb-controls{border-color:#efcf77}
.vb-finale-banner{position:absolute;z-index:35;left:5%;right:5%;top:29%;box-sizing:border-box;padding:16px 10px;text-align:center;border:2px solid #edc96c;border-radius:8px;background:linear-gradient(135deg,#143a2beb,#0b1b15eb);color:#fff1bb;box-shadow:0 0 24px #efc25c66;pointer-events:none}
.vb-finale-banner small,.vb-finale-banner span{display:block;font-size:clamp(10px,2.8vw,15px);letter-spacing:.1em}
.vb-finale-banner strong{display:block;margin:6px 0;font-size:clamp(22px,6vw,42px);line-height:1.05;color:#ffe69b}
.vb-finale-banner p{margin:8px 0 0;font-size:clamp(10px,2.5vw,13px);overflow-wrap:anywhere}

/* Preserve explicit SVG/image bounds when moving an original icon onto the floor. */
.vb-floor-stage .vb-spilled-icon{flex:none;min-width:0;min-height:0}
.vb-floor-stage .vb-spilled-icon>.straya-symbol{flex:none;min-width:0;min-height:0;max-width:100%;max-height:100%}
.vb-floor-stage .vb-spilled-icon.vb-fallen-can{opacity:1;filter:drop-shadow(0 0 5px #fff3a4) drop-shadow(0 0 12px #ffc83d)}
.vb-floor-stage .vb-fallen-can>.straya-symbol{filter:brightness(1.15) saturate(1.2)!important}
.vb-controls .vb-line-summary{margin:7px 0 0;font-size:12px;line-height:1.4;color:#ffe6a2;overflow-wrap:anywhere}
/* Result text cannot change the wheel's geometry. Landing uses light, never scale. */
.straya-restaurant-cabinet .straya-tip-scene{position:relative;display:block;contain:size;padding:0}
.straya-restaurant-cabinet .straya-tip-scene>h3{position:absolute;inset:0 0 auto;height:14%;margin:0;display:grid;place-items:center}
.straya-restaurant-cabinet .straya-wheel-mount{position:absolute;top:16%;left:50%;height:66%;width:auto;max-width:80%;aspect-ratio:1;transform:translateX(-50%)}
.straya-restaurant-cabinet .straya-tip-amount{position:absolute;inset:auto 2% 0;height:16%;display:grid;place-items:center;overflow-wrap:anywhere}
.straya-wheel-mount.landed{animation:tip-gold-pulse .65s ease-in-out 2;filter:drop-shadow(0 0 8px #ffd15d)}
@keyframes tip-gold-pulse{0%,100%{filter:drop-shadow(0 0 5px #c38b23)}50%{filter:drop-shadow(0 0 13px #ffe496) brightness(1.18)}}
@media(prefers-reduced-motion:reduce){.straya-wheel-mount.landed{animation:none;filter:drop-shadow(0 0 8px #ffdf7a)}}
