/* Scroll-driven perspective. The cabinet and room are art layers; the screen is the real app. */
body{background:#200503;color:#fff3dd}.casino-header{position:absolute;top:0;left:0;width:100%;z-index:20;min-height:100px;background:linear-gradient(#160302eb,transparent);padding-top:22px;padding-bottom:30px}.casino-header .brand-logo{width:210px}.casino-header nav a{font-size:13px}.casino-header .nav-cta{border-color:#bba87780;background:#24060440}.skip{z-index:30}
.casino-journey{position:relative;height:100svh;min-height:740px;background:#200503}.casino-journey.has-motion{height:460svh;min-height:2800px}.casino-stage{position:sticky;top:0;height:100svh;min-height:740px;overflow:clip;isolation:isolate;background:#200503}.casino-room{position:absolute;inset:0;z-index:-5;transform-origin:50% 45%;will-change:transform}.casino-room img{width:100%;height:100%;object-fit:cover;object-position:50% 49%;max-width:none}.casino-machine{position:absolute;top:0;left:0;z-index:-3;width:1000px;transform-origin:0 0;will-change:transform;visibility:hidden}.cabinet-art{width:100%;height:auto;max-width:none}.cabinet-logo{position:absolute;left:23%;top:7%;width:54%;height:auto;max-width:none}.cabinet-display{position:absolute;left:11.23%;top:19.46%;width:77.54%;height:29.10%;overflow:hidden;background:#000;border-radius:2px;isolation:isolate}.cabinet-display>img,.cabinet-display>video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;max-width:none}.cabinet-display video{opacity:0;pointer-events:none}.cabinet-display.is-playing video{opacity:1}.casino-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#190402b3,transparent 65%),linear-gradient(0deg,#200503a6,transparent 25%,transparent 80%,#1b040255)}
.casino-intro{position:absolute;top:24%;left:max(6%,calc((100vw - 1280px)/2));max-width:550px;color:#fff8e9;will-change:opacity,transform}.casino-intro .eyebrow{color:#FFDD00;font-size:12px;letter-spacing:3px;margin-bottom:25px}.casino-intro h1{font-size:clamp(76px,8.4vw,132px);line-height:.93;text-shadow:0 4px 45px #0009;margin-bottom:27px}.casino-intro h1 em{color:#FFDD00}.casino-intro>p:not(.eyebrow){font-size:18px;line-height:1.7;color:#fff1e3;text-shadow:0 2px 20px #000}.journey-enter{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid #d7ad59;padding:10px 0;font-size:14px;font-weight:700}.journey-enter:hover{color:#FFDD00}.journey-enter span{font-size:23px}.casino-availability{display:block;margin-top:20px;color:#dbc7bd;font-size:12px}.casino-arrival{position:absolute;bottom:94px;left:5%;right:5%;text-align:center;opacity:0;visibility:hidden}.casino-arrival>p{font-size:12px;font-weight:700;letter-spacing:3px;color:#ffe49e;margin-bottom:14px;text-shadow:0 2px 12px black}.casino-arrival>div{display:flex;justify-content:center;gap:12px}.casino-arrival button,.casino-arrival a{border:1px solid #f8df8d99;background:#280603e8;color:#fff5dd;font-size:14px;padding:12px 22px;border-radius:30px;backdrop-filter:blur(12px)}.casino-arrival button{background:#B11116;border-color:#f06a56}.casino-arrival button span{padding-left:12px;font-size:11px}.casino-arrival button:hover,.casino-arrival a:hover{background:#FFDD00;color:#24120e}.casino-arrival button:disabled{opacity:.75;cursor:default}.journey-tools{position:absolute;right:5%;top:113px;display:flex;align-items:center;gap:17px;font-size:12px;color:#e7d8c3}.journey-tools button{font-size:12px;color:inherit;background:#250403b3;border:1px solid #b89a6666;border-radius:20px;padding:6px 12px}.journey-tools a{text-decoration:underline;text-underline-offset:4px}.casino-foot{position:absolute;left:5%;right:5%;bottom:27px;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:10px;letter-spacing:2px;color:#dfc9b3;text-shadow:0 2px 12px black}.walk-cue{font-size:11px;color:#fff4d8}.walk-cue span{display:inline-block;padding-left:12px;font-size:18px}.walk-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff18}.walk-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:#FFDD00}.arrival-anchor{position:absolute;top:77%;left:0;pointer-events:none}.casino-journey.is-still .arrival-anchor{top:0}.casino-journey.is-still .casino-intro{top:21%}.casino-journey.is-still .casino-foot .walk-cue{visibility:hidden}
.numbers{background:#450907;border-top:1px solid #a98a4944;border-bottom:1px solid #a98a4944}.section-heading>p,.minigames p,.closing p:not(.eyebrow){color:#f1d9c8}.section .eyebrow,.closing .eyebrow{color:#FFDD00}.featured-world{background:#4c0a08;border:1px solid #6d493a}.world-picker button{color:#dbc8bb;border-color:#594036}.world-picker button[aria-pressed=true]{border-color:#f47260}.vip{background:#650c0c;color:#fff4db}.vip-copy>p:not(.eyebrow),.vip figcaption{color:#f3dfca}.tiers li{border-color:#725342}.tiers b{color:#FFDD00}.minigames article>span{color:#edc477}.celebrations{background:#320605}.closing{background:#B11116}.closing .button{border:1px solid #f06a5666}footer{background:#220403;border-top:1px solid #5d3d3266}footer p,footer small{color:#e3c7ad}footer .brand-logo{width:210px}
@media(max-height:760px) and (min-width:721px){.casino-stage,.casino-journey{min-height:620px}.casino-intro{top:24%}.casino-intro h1{font-size:90px}.casino-intro>p:not(.eyebrow){font-size:16px}.casino-availability{margin-top:12px}.casino-arrival{bottom:72px}}
@media(max-width:900px){.casino-header{padding-inline:5%}.casino-header nav{gap:16px}.casino-header .brand-logo{width:180px}.casino-intro{left:6%;max-width:390px}.casino-intro h1{font-size:94px}.walk-step-end{display:none}}
@media(max-width:720px){.casino-header{padding:20px 6%;gap:16px}.casino-header .brand-logo{width:180px}.casino-header nav{gap:14px;justify-content:flex-start;font-size:12px;flex-wrap:wrap}.casino-header nav a{font-size:12px}.casino-header .nav-cta{padding:5px 10px}.casino-journey,.casino-stage{height:100svh;min-height:700px}.casino-journey.has-motion{height:400svh;min-height:2800px}.journey-tools{top:auto;bottom:65px;right:6%;left:6%;justify-content:space-between;font-size:11px}.journey-tools button{font-size:11px}.casino-intro{top:24%;left:6%;right:6%;max-width:350px}.casino-intro h1{font-size:clamp(70px,18vw,90px)}.casino-intro>p:not(.eyebrow){font-size:16px}.casino-intro .eyebrow{font-size:11px;margin-bottom:18px}.casino-availability{font-size:11px;margin-top:12px}.casino-arrival{bottom:117px;left:5%;right:5%}.casino-arrival>div{flex-direction:column;align-items:center;gap:8px}.casino-arrival button,.casino-arrival a{font-size:12px;padding:10px 16px}.casino-arrival>p{font-size:10px;letter-spacing:2px}.casino-foot{font-size:9px;letter-spacing:1px;bottom:24px}.walk-cue{font-size:10px}.casino-shade{background:linear-gradient(90deg,#19040280,transparent),linear-gradient(0deg,#200503d9,transparent 38%,#19040255)}.casino-journey.is-still .casino-intro{top:23%}}
@media(prefers-reduced-motion:reduce){.casino-room,.casino-machine{will-change:auto}}

.casino-crowd{position:absolute;top:0;left:0;z-index:-2;pointer-events:none;will-change:transform;filter:brightness(.78);visibility:hidden}.casino-crowd img{display:block;width:100%;height:auto;max-width:none}
.casino-intro{top:21%;max-width:440px}.casino-intro h1{font-size:clamp(68px,6.4vw,104px)}
@media(max-width:720px){.casino-intro,.casino-journey.is-still .casino-intro{top:16%;max-width:none}.casino-intro h1{font-size:clamp(40px,10vw,58px);margin-bottom:12px}.casino-intro .eyebrow{margin-bottom:10px;font-size:9px}.casino-intro>p:not(.eyebrow){font-size:13px;line-height:1.4;max-width:155px}.journey-enter{font-size:11px;gap:12px}.casino-availability{font-size:9px;max-width:150px}.casino-crowd{filter:brightness(.72)}}
@media(min-width:721px) and (max-width:1100px){.casino-intro{top:19%;max-width:23%}.casino-intro h1{font-size:42px}.casino-intro .eyebrow{font-size:9px;letter-spacing:1px}.casino-intro>p:not(.eyebrow){font-size:14px}.journey-enter{font-size:12px;gap:8px}.casino-availability{font-size:10px}}
@media(max-width:720px){.casino-intro,.casino-journey.is-still .casino-intro{top:16%;text-align:center}.casino-intro h1{font-size:32px;line-height:1;margin-bottom:4px}.casino-intro>p:not(.eyebrow),.casino-availability{display:none}.casino-intro .eyebrow{margin-bottom:8px}.journey-enter{padding:6px 0}}
@media(max-width:720px){.casino-intro,.casino-journey.is-still .casino-intro{top:16%}.casino-intro h1{font-size:28px}.journey-enter{padding:2px 0}.casino-intro .eyebrow{font-size:8px}}

/* Long aisle: fixed world positions, four independently projected crowd planes. */
.casino-journey.has-motion{height:900svh;min-height:6200px}.casino-room{transform-origin:50% 49%}.arrival-anchor{top:86%}
@media(max-width:720px){.casino-journey.has-motion{height:900svh;min-height:6200px}}

.casino-crowd .crowd-left,.casino-crowd .crowd-right{position:absolute;inset:0;display:block;will-change:transform}.casino-crowd .crowd-left{clip-path:inset(0 50% 0 0)}.casino-crowd .crowd-right{clip-path:inset(0 0 0 50%)}

.casino-intro .headline-detail{font-size:.56em;line-height:1.15;display:inline-block}.casino-foot{justify-content:center}.walk-step-end{position:absolute;right:0}

/* Brand red surfaces and crown-yellow accents. */
body{background:#470908;color:#fff7e7}#worlds,#bonus{background:#470908}.vip{background:#700d0e}.celebrations{background:#2b0504}.closing{background:#B11116;border-top:2px solid #FFDD00}.closing h2{color:#FFDD00}.closing p:not(.eyebrow){color:#fff7e7}.world-picker button{background:#340604;border-color:#c59142;color:#fff4d8}.world-picker button[aria-pressed=true]{background:#FFDD00;color:#390403;border-color:#FFDD00}.world-picker button:hover{border-color:#FFDD00}.minigames p,.vip figcaption,.vip-copy>p:not(.eyebrow),.section-heading>p{color:#f1ddc7}footer{background:#200302;border-color:#ad721f}.app-store-button{display:inline-flex;margin-top:12px;line-height:0}.app-store-button img{display:block;width:180px;height:60px;max-width:100%}

/* Exit defocus is calculated per crowd cutout in screen-space pixels. */
.casino-journey.is-still .casino-crowd .crowd-left,.casino-journey.is-still .casino-crowd .crowd-right{filter:none!important}
@media(prefers-reduced-motion:reduce){.casino-crowd .crowd-left,.casino-crowd .crowd-right{filter:none!important}}

/* Real app captures and outlined logos project onto the social casino cabinets. */
.casino-bank{filter:brightness(.95)}
.bank-surface{position:absolute;left:0;top:0;width:1774px;height:887px;transform:scale(var(--bank-scale,1));transform-origin:0 0;pointer-events:none}
.casino-crowd .bank-insert{position:absolute;left:0;top:0;max-width:none;transform-origin:0 0}

@media(max-width:720px){.casino-intro h1{font-size:40px}}

/* New grand opening scene and explicit, independent sound opt-in. */
.casino-stage{background:#190403}
.casino-room img{object-fit:cover;object-position:center 53%;filter:none}
.casino-shade{background:linear-gradient(90deg,#18040230,transparent 42%,transparent 58%,#18040230),linear-gradient(0deg,#21040352,transparent 42%,#16030120)}
.casino-intro{left:50%;top:25%;width:min(880px,88vw);max-width:none;transform:translateX(-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:22px}
.casino-intro .casino-hero-logo{width:min(650px,68vw);height:auto;filter:drop-shadow(0 6px 12px #120200c9)}
.casino-hero-copy{width:100%;padding:24px 34px 26px;background:#090402d9;box-shadow:0 15px 50px #16030155}
.casino-intro .casino-hero-copy h1{margin:0;color:#f9d871;font:500 clamp(24px,3vw,43px)/1.12 Georgia,'Times New Roman',serif;text-transform:uppercase;text-shadow:0 2px 8px #000}
.casino-intro .journey-enter{margin-top:4px;border:0;text-transform:uppercase;letter-spacing:2px;font-size:11px}
.sound-tools{position:absolute;z-index:25;left:5%;bottom:34px}
#sound-toggle{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid #f4d274b5;border-radius:3px;background:#160403d9;color:#ffdf75;font:700 11px/1 Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;box-shadow:0 3px 14px #0008;backdrop-filter:blur(8px)}
#sound-toggle:hover{background:#3a0906;color:#fff1b4}
.sound-spark{font-size:19px;line-height:.8;color:#ffde52;animation:slotcrown-twinkle 2.4s ease-in-out infinite}
#sound-toggle.is-playing .sound-spark{animation-duration:1.1s}
@keyframes slotcrown-twinkle{0%,100%{opacity:.6;transform:scale(.86) rotate(-12deg)}50%{opacity:1;transform:scale(1.12) rotate(12deg)}}
.casino-bank-v3{filter:brightness(.98)}
.casino-bank-v3 .bank-art{width:100%;height:100%;object-fit:fill;max-width:none}
.bank-screen{z-index:2;overflow:hidden;background:#000}
.bank-screen-image{object-fit:cover;object-position:center;background:#000}
.bank-logo{z-index:3}
.bank-logo-image{object-fit:fill}
@media(max-width:720px){.casino-intro{top:24%;width:90vw;gap:12px}.casino-intro .casino-hero-logo{width:min(430px,82vw)}.casino-hero-copy{padding:13px 12px}.casino-intro .casino-hero-copy h1{font-size:clamp(16px,5vw,24px)}.casino-intro .journey-enter{font-size:9px}.sound-tools{left:5%;bottom:24px}#sound-toggle{font-size:9px;padding:8px 10px}.journey-tools{left:auto;right:5%;bottom:auto;top:113px}}
@media(prefers-reduced-motion:reduce){.sound-spark{animation:none}}
/* Flat overlay geometry is reliable in Safari and preserves the PNG alpha cutouts. */
.casino-bank-v3 .bank-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;max-width:none}
.casino-bank-v3 .crowd-left,.casino-bank-v3 .crowd-right{overflow:hidden}
.bank-screen-flat,.bank-logo-flat{position:absolute;display:block;max-width:none!important;transform:none!important;filter:none!important}
.bank-screen-flat{z-index:2;object-fit:cover;object-position:center;background:#000;border:1px solid #d8a84e}
.bank-logo-flat{z-index:3;object-fit:contain;filter:drop-shadow(0 1px 2px #300)!important}
.casino-intro .journey-enter{display:none}

/* Shared-perspective aisle; genuine PNG alpha, no synthetic screen overlays. */
.cabinet-art{display:block}
.cabinet-logo{left:25%;top:10%;width:50%;height:7%;object-fit:contain}
.cabinet-display{left:17.9%;top:26.8%;width:64.2%;height:18.45%;aspect-ratio:auto;border-radius:0}
.cabinet-display>img,.cabinet-display>video{object-fit:fill}
.casino-crowd{filter:brightness(.93)}
.casino-crowd .crowd-left,.casino-crowd .crowd-right{background:transparent;will-change:filter}
.casino-crowd img{height:100%;object-fit:fill}
.casino-stage .casino-crowd{z-index:-4}
.casino-stage .casino-machine{z-index:2}
.casino-stage .casino-intro{z-index:10}
.casino-stage .casino-foot{z-index:20;pointer-events:none}
.casino-stage .journey-tools{z-index:25}
/* Keep each minigame caption aligned with its device preview. */
#bonus .minigames article{text-align:center}
#bonus .minigames article p{margin-left:auto;margin-right:auto}

/* Full casino aisle: the title lives over the carpet with no opaque card. */
.casino-intro,.casino-journey.is-still .casino-intro{top:18%;gap:clamp(190px,32svh,320px)}
.casino-intro .casino-hero-logo{filter:drop-shadow(0 3px 14px #140300a6)}
.casino-hero-copy{max-width:min(380px,65vw);padding:0;background:none;box-shadow:none}
.casino-intro .casino-hero-copy h1{color:#fff;font-size:clamp(17px,1.5vw,22px);line-height:1.16;text-shadow:0 3px 7px #210500,0 10px 22px #210500e6}
.casino-shade{background:linear-gradient(90deg,#18040228,transparent 34%,transparent 66%,#18040228),linear-gradient(0deg,#19030150,transparent 50%,#16030118)}
.cabinet-art{filter:drop-shadow(0 14px 26px #1a0202a0)}

/* Sound indicates its current state at a glance. */
#sound-toggle{min-width:105px;justify-content:center;padding:10px 16px;border:1px solid #ff8f82;background:#a91b21;color:#fff;box-shadow:0 4px 16px #24030280;backdrop-filter:none}
#sound-toggle:hover{background:#c7282e;color:#fff}
#sound-toggle.is-playing{border-color:#9be6a9;background:#176b36;color:#fff}
#sound-toggle.is-playing:hover{background:#218447}

@media(max-width:720px){
  .casino-intro,.casino-journey.is-still .casino-intro{top:14%;gap:clamp(140px,23svh,220px)}
  .casino-hero-copy{max-width:82vw}
  .casino-intro .casino-hero-copy h1{font-size:clamp(17px,4.7vw,24px)}
  #sound-toggle{min-width:88px;padding:8px 10px}
}

/* Casino sound prompt and the GlowStickGo-style section/sound dock. */
.casino-intro .sound-enable{position:absolute;top:45%;left:50%;z-index:3;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:190px;min-height:46px;padding:12px 18px;transform:translateX(-50%);border:1px solid #ffe58a;border-radius:999px;background:#FFDD00;color:#2e0703;box-shadow:0 6px 22px #160100b3;cursor:pointer;font:800 12px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.casino-intro .sound-enable:hover{background:#fff093}
.casino-intro .sound-enable.is-playing{background:#fff3ab}
.sound-enable .music-symbol{font-size:19px;line-height:1}
.casino-intro .sound-enable:focus-visible,.slot-dock :focus-visible{outline:2px solid #fff;outline-offset:3px}
.sound-enable[hidden]{display:none!important}
.sound-enable svg{width:19px;height:19px;overflow:visible}.sound-enable svg path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sound-enable svg path:first-child{fill:currentColor;stroke:none}
.sound-flying{position:fixed!important;z-index:120!important;display:inline-flex!important;align-items:center;justify-content:center;gap:10px;margin:0!important;padding:12px 18px;border:1px solid #ffe58a;border-radius:999px;background:#FFDD00;color:#2e0703;box-shadow:0 6px 22px #160100b3;font:800 12px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;pointer-events:none}
.slot-dock{position:fixed;left:0;top:50%;z-index:90;display:flex;flex-direction:column;align-items:center;gap:3px;width:54px;padding:8px 5px 8px 2px;transform:translateY(-50%);border:1px solid #82c5ff;border-left:0;border-radius:0 15px 15px 0;background:linear-gradient(170deg,#0a84fff2,#0069d9f2);box-shadow:8px 0 28px #0018348c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.slot-dock button{appearance:none;display:grid;place-items:center;width:40px;min-height:31px;padding:0;border:0;border-radius:8px;background:transparent;color:#fff;cursor:pointer}
.slot-dock button:hover{background:#ffffff30;color:#fff}
.slot-dock button:disabled{opacity:.3;cursor:default;background:transparent;color:#fff}
.slot-dock svg{width:18px;height:18px;overflow:visible}.slot-dock svg path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.slot-dock [data-scroll-home] svg path{fill:currentColor;stroke:none}
.slot-dock-points{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;padding:5px 0;border-top:1px solid #ffffff23;border-bottom:1px solid #ffffff23}
.slot-dock .slot-dock-points button{width:27px;min-height:17px;border-radius:99px}
.slot-dock-points button::before{content:"";display:block;width:6px;height:6px;border:1px solid #e6d0b8;border-radius:50%;background:transparent;transition:transform .2s,background .2s}
.slot-dock-points button[aria-current="location"]::before{transform:scale(1.45);border-color:#fff;background:#fff}
.slot-dock #sound-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:44px;min-width:0;min-height:48px;margin-top:3px;padding:3px 2px;border:0;border-radius:0;background:transparent;color:#ffe0e4;box-shadow:none;font:800 9px/1 Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.slot-dock #sound-toggle:hover{background:transparent;color:#fff}
.slot-dock #sound-toggle.is-playing{border:0;background:transparent;color:#d1ffe2}
.slot-dock #sound-toggle.is-playing:hover{background:transparent;color:#fff}
.slot-dock #sound-toggle .sound-waves{display:none}.slot-dock #sound-toggle.is-playing .sound-waves{display:block}.slot-dock #sound-toggle.is-playing .sound-muted{display:none}
.slot-dock .sound-volume-control{display:flex;flex-direction:column;align-items:center;gap:3px;width:42px;padding:6px 0 2px;border-top:1px solid #ffffff50;color:#fff}
.slot-dock .sound-volume-control svg{width:15px;height:15px}
.slot-dock .sound-volume-control input[type="range"]{-webkit-appearance:none;appearance:none;width:28px;height:76px;margin:0;padding:0;background:transparent;writing-mode:vertical-lr;direction:rtl;touch-action:pan-y;cursor:pointer}
.slot-dock .sound-volume-control input[type="range"]::-webkit-slider-runnable-track{width:6px;border:0;border-radius:99px;background:#ffffff60}
.slot-dock .sound-volume-control input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:18px;margin-left:-4px;border:1px solid #fff;border-radius:6px;background:#eaf6ff}
.slot-dock .sound-volume-control input[type="range"]::-moz-range-track{width:6px;border:0;border-radius:99px;background:#ffffff60}
.slot-dock .sound-volume-control input[type="range"]::-moz-range-thumb{width:14px;height:18px;border:1px solid #fff;border-radius:6px;background:#eaf6ff}
.slot-dock .sound-volume-control input[type="range"]:focus-visible{outline:2px solid #fff;outline-offset:2px}
.slot-dock #motion-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:44px;min-height:47px;margin-top:3px;padding:6px 2px 2px;border:0;border-top:1px solid #ffffff50;border-radius:0;background:transparent;color:#ffe0e4;font:800 9px/1 Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.slot-dock #motion-toggle.is-on{color:#d1ffe2}
.slot-dock #motion-toggle:hover{background:transparent;color:#fff}
.slot-dock #motion-toggle svg{width:18px;height:18px}
/* Blank red marquee and landscape opening on the photographic marble cabinet. */
.casino-machine .cabinet-logo{left:34.4%;top:8.8%;width:31.2%;height:5.6%}
.casino-machine .cabinet-display{left:34.0%;top:25.35%;width:32.0%;height:11.65%;border-radius:2px}

/* Short red cabinet: logo and native-app screen fit its reserved front openings. */
.casino-machine .cabinet-logo{left:33.5%;top:28.5%;width:33%;height:6.3%}
.casino-machine .cabinet-display{left:30.9%;top:37.1%;width:38.2%;height:14.7%;border-radius:1px}
/* The photographed opening is the cabinet bay. Its fitted display uses the
   landscape iPhone 18 Pro Max screen ratio, with the extra height as hardware. */
.casino-machine .cabinet-display{background:linear-gradient(160deg,#090a0e 0%,#191c20 22%,#08090c 48%,#17191e 78%,#07080b 100%);box-shadow:inset 0 0 0 1px #7a6d59,inset 0 0 16px 5px #000b}
.cabinet-screen{position:absolute;left:0;top:50%;width:100%;aspect-ratio:2868/1320;transform:translateY(-50%);overflow:hidden;background:#050609;box-shadow:0 0 0 2px #b49a63,0 0 0 4px #171717,0 5px 13px #000d,inset 0 0 0 1px #ead5a0}
.game-content{position:absolute;top:0;left:50%;height:100%;aspect-ratio:2048/1008;transform:translateX(-50%);overflow:hidden;background:#050609}
.game-content>img,.game-content>video{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:fill;transform:translateZ(0);backface-visibility:hidden}
.game-content>video{opacity:0;pointer-events:none;transition:opacity .16s linear}
.phone-display.is-playing .game-content>video,.cabinet-screen.is-playing .game-content>video{opacity:1}
/* Cabinet inserts share the photographed art's coordinate plane. Each image
   receives a four-corner projective matrix from casino.js. */
.casino-stage .casino-machine{z-index:2}
.casino-stage .casino-crowd{z-index:3}
.casino-stage .final-crowd{z-index:1}
.casino-crowd .cabinet-projection{position:absolute;top:0;left:0;width:1672px;height:941px;transform:scale(var(--art-scale,1));transform-origin:0 0;pointer-events:none;opacity:0}
.casino-crowd .art-ready .cabinet-projection{opacity:1}
.casino-crowd .cabinet-projection img{position:absolute;top:0;left:0;display:block;max-width:none!important;transform-origin:0 0;backface-visibility:hidden}
.casino-crowd .cabinet-projection .projected-screen{z-index:1;width:400px!important;height:800px!important;object-fit:cover;object-position:center;filter:brightness(.78) saturate(.88)}
.casino-crowd .cabinet-projection .projected-logo{z-index:2;width:400px!important;height:110px!important;object-fit:contain;filter:drop-shadow(0 1px 2px #230100)}
.cabinet-display .try-spin{position:absolute;z-index:3;left:79.5%;top:82.3%;width:17.8%;height:14.8%;display:grid;place-items:center;padding:0 .35em;border:2px solid #efad6b;border-radius:10px;background:linear-gradient(#d62b30,#a90c17);box-shadow:inset 0 2px 4px #ffe4aa75,0 2px 8px #15000099;color:#fff;font:900 clamp(8px,1.45vw,28px)/1.05 Arial,sans-serif;text-align:center;text-transform:uppercase;cursor:pointer}
.cabinet-display .try-spin:hover{background:linear-gradient(#e74549,#bc131e)}
.cabinet-display .try-spin:focus-visible{outline:2px solid #FFDD00;outline-offset:2px}
.cabinet-display .try-spin[hidden]{display:none!important}

/* Keep the still and video on the same compositing plane as playback begins. */
.cabinet-display>img,.cabinet-display>video{transform:translateZ(0);backface-visibility:hidden}
.cabinet-display>video{transition:opacity .16s linear}
/* The native capture exposes a narrow join beneath its VIP progress rail.
   Extend the rail's lower bevel across that join in both still and video. */
.game-content::after{content:"";position:absolute;z-index:2;pointer-events:none;left:5.35%;width:82.55%;top:9.02%;height:.62%;background:linear-gradient(180deg,#bec2c5,#8f9597 64%,#25302d);box-shadow:0 1px 0 #10191688}
@media(max-width:720px){.casino-intro .sound-enable{min-width:156px;min-height:41px;padding:10px 13px;font-size:10px}.slot-dock{width:43px;padding:5px 3px 5px 1px}.slot-dock button{width:34px;min-height:27px}.slot-dock .slot-dock-points button{min-height:15px}.slot-dock #sound-toggle{width:37px;min-height:46px;font-size:7px}.slot-dock .sound-volume-control{width:36px}.slot-dock .sound-volume-control input[type="range"]{height:58px}.slot-dock #motion-toggle{width:37px;min-height:43px;font-size:7px}}
@media(max-height:620px){.slot-dock{gap:1px}.slot-dock-points{gap:1px;padding:2px 0}.slot-dock .slot-dock-points button{min-height:13px}.slot-dock .sound-volume-control input[type="range"]{height:48px}}
@media(prefers-reduced-motion:reduce){.slot-dock-points button::before{transition:none}}

/* Larger downward triangle, with a flat iOS-blue fill. */
.casino-next-cue{position:absolute;left:50%;bottom:0;z-index:22;display:block;width:190px;height:112px;transform:translateX(-50%);opacity:0;visibility:hidden;pointer-events:none;filter:none}
.casino-next-cue[aria-hidden="false"]{pointer-events:auto}
.casino-next-arrow{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:14px;clip-path:polygon(0 0,100% 0,50% 100%);border:0;border-radius:0;background:#0a84ff;color:#fff;animation:casino-next-bob 1.5s ease-in-out infinite;will-change:transform}
.casino-next-arrow span{box-sizing:border-box;max-width:calc(100% - 48px);padding-inline:8px;color:#fff;font:400 21px/.88 SlotDisplay,Impact,sans-serif;letter-spacing:.06em;text-transform:uppercase;text-align:center}
.casino-next-cue:hover .casino-next-arrow{background:#0074e5}
.casino-next-cue:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes casino-next-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media(max-width:720px){.casino-next-cue{width:145px;height:86px}.casino-next-arrow{padding-top:9px}.casino-next-arrow span{max-width:calc(100% - 34px);padding-inline:8px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.casino-next-arrow{animation:none;transform:none}}

/* Grand entrance: keep the casino visible behind the logo and sound opt-in. */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.casino-intro,.casino-journey.is-still .casino-intro{top:24svh;left:50%;right:auto;width:min(1040px,92vw);max-width:none;gap:clamp(34px,7svh,72px)}
.casino-intro .casino-hero-logo{width:min(920px,76vw,120svh);max-width:100%;height:auto}
.casino-intro .sound-enable{position:static;top:auto;left:auto;transform:none;margin:0;animation:sound-invite 3.4s ease-in-out infinite}
.casino-intro>p.casino-arriving{display:block;max-width:none;margin:0;color:#fff;font:400 clamp(32px,3.15vw,50px)/1 SlotDisplay,Impact,sans-serif;letter-spacing:.015em;text-transform:uppercase;text-align:center;text-shadow:0 3px 7px #210500,0 10px 22px #210500e6;white-space:nowrap}
@keyframes sound-invite{0%,76%,100%{transform:translateY(0) rotate(0)}82%{transform:translateY(-4px) rotate(-3deg)}89%{transform:translateY(-4px) rotate(3deg)}95%{transform:translateY(0) rotate(0)}}
.casino-story{position:absolute;z-index:11;top:36%;left:50%;width:min(900px,84vw);min-height:190px;transform:translateX(-50%);pointer-events:none;text-align:center}
.casino-story-line{position:absolute;inset:0;display:grid;align-items:center;justify-items:center;margin:0;color:#fff;font:400 clamp(32px,4.6vw,68px)/1.05 SlotDisplay,Impact,sans-serif;letter-spacing:.012em;text-wrap:balance;text-shadow:0 3px 5px #120100,0 9px 28px #120100,0 0 55px #120100;opacity:0;visibility:hidden}
.casino-story-line:first-child{font-size:clamp(28px,3.5vw,52px)}
.casino-entrance-barrier{position:absolute;z-index:9;inset:auto 0 0;height:clamp(320px,46svh,500px);pointer-events:none;transform:translateY(0);opacity:1;transition:transform 1.05s cubic-bezier(.34,.02,.5,1),opacity .75s ease .32s;will-change:transform}
.casino-entrance-barrier img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 10px #19040399)}
.casino-journey.gates-open .casino-entrance-barrier{transform:translateY(110%);opacity:0}
.casino-journey.is-still .casino-story{display:none}
.casino-enter-cue{position:absolute;left:50%;bottom:0;z-index:22;width:210px;height:124px;transform:translateX(-50%);display:block;padding:0;border:0;background:transparent;opacity:0;visibility:hidden;pointer-events:none;cursor:pointer}
.casino-enter-cue[aria-hidden="false"]{pointer-events:auto}
.casino-enter-arrow{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:17px;clip-path:polygon(0 0,100% 0,50% 100%);background:#ffdd00;color:#b11116;animation:casino-next-bob 1.5s ease-in-out infinite}
.casino-enter-arrow span{color:#b11116;text-align:center;text-transform:uppercase;font:900 17px/1.12 Arial,sans-serif;letter-spacing:.05em}
.casino-enter-cue:hover .casino-enter-arrow{background:#ffe940}
.casino-enter-cue:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(max-height:760px) and (min-width:721px){.casino-intro,.casino-journey.is-still .casino-intro{top:22svh}}
@media(max-width:720px){
  .casino-intro,.casino-journey.is-still .casino-intro{top:19svh;width:94vw;gap:clamp(24px,5svh,42px)}
  .casino-intro .casino-hero-logo{width:86vw}
  .casino-intro>p.casino-arriving{font-size:clamp(27px,7vw,38px)}
  .casino-enter-cue{width:170px;height:102px}
  .casino-enter-arrow{padding-top:13px}
  .casino-enter-arrow span{font-size:14px}
  .casino-story{top:37%;width:82vw;min-height:180px}
  .casino-story-line{font-size:clamp(28px,8vw,44px)}
  .casino-entrance-barrier{height:31svh}
}
@media(prefers-reduced-motion:reduce){.casino-intro .sound-enable,.casino-enter-arrow{animation:none}.casino-entrance-barrier{transition:none;will-change:auto}}

/* The final casino push-in hands off to a phone without moving the game image. */
.casino-phone-transition{position:absolute;inset:0;z-index:19;overflow:hidden;background:transparent;opacity:0;visibility:hidden;pointer-events:none;isolation:isolate}
.casino-phone-transition::before{content:"";position:absolute;inset:0;z-index:0;background:#fff;opacity:var(--white-opacity,0);pointer-events:none}
.casino-phone-transition .phone-rig{position:absolute;left:50%;top:50%;width:var(--phone-width,800px);aspect-ratio:2.138056/1;transform:translate3d(-50%,-50%,0);will-change:left,top,width}
.casino-phone-transition .phone-hands,.casino-phone-transition .phone-shell{position:absolute;display:block;max-width:none}
.casino-phone-transition .phone-hands{left:50%;top:calc(50% + var(--hand-offset,0px));width:193.6%;height:auto;transform:translate3d(-50%,-50%,0);opacity:0;pointer-events:none}
.casino-phone-transition .phone-hands-back{z-index:1;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%)}
.casino-phone-transition .phone-hands-front{z-index:3;width:191.5%;-webkit-mask-image:radial-gradient(ellipse 6.5% 9% at 21% 27%,#000 30%,transparent 90%),radial-gradient(ellipse 6.5% 9% at 79% 27%,#000 30%,transparent 90%),radial-gradient(ellipse 12% 13% at 30.5% 58%,#000 65%,transparent 100%),radial-gradient(ellipse 12% 13% at 69.5% 58%,#000 65%,transparent 100%);mask-image:radial-gradient(ellipse 6.5% 9% at 21% 27%,#000 30%,transparent 90%),radial-gradient(ellipse 6.5% 9% at 79% 27%,#000 30%,transparent 90%),radial-gradient(ellipse 12% 13% at 30.5% 58%,#000 65%,transparent 100%),radial-gradient(ellipse 12% 13% at 69.5% 58%,#000 65%,transparent 100%)}
.casino-phone-transition .phone-shell{z-index:2;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
.casino-phone-branding{position:absolute;z-index:4;left:50%;bottom:calc(112px + 1vh);display:flex;flex-direction:column;align-items:center;gap:clamp(10px,1.6vh,18px);width:min(520px,34vw);transform:translateX(-50%);opacity:var(--brand-opacity,0);pointer-events:none}
.casino-phone-logo{display:block;width:100%;height:auto}
.casino-phone-download{display:block;line-height:0;pointer-events:auto}
.casino-phone-download img{display:block;width:clamp(130px,12vw,180px);height:auto;max-width:none}
.casino-phone-download:focus-visible{outline:3px solid #0a84ff;outline-offset:5px;border-radius:6px}
@media(max-width:720px){.casino-phone-branding{bottom:calc(86px + 2vh);width:min(58vw,320px)}.casino-phone-download img{width:clamp(115px,31vw,150px)}}
.phone-shell::before{content:"";position:absolute;inset:0;border:3px solid #999da7;border-radius:8% / 16%;background:linear-gradient(145deg,#24272d,#08090c 32%,#191b20 70%,#777b83);box-shadow:0 18px 34px #0005,inset 0 0 0 2px #f7f8fa88;opacity:var(--frame-opacity,0)}
.phone-camera{position:absolute;left:1.15%;top:44%;width:1%;height:12%;border-radius:99px;background:#030407;box-shadow:0 0 0 1px #5559;opacity:var(--frame-opacity,0)}
.phone-display{position:absolute;inset:3.75% 3%;overflow:hidden;border-radius:2% / 5%;background:#050609;isolation:isolate}
.phone-display .game-content{height:100%}
.phone-display .try-spin{position:absolute;z-index:3;left:79.5%;top:82.3%;width:17.8%;height:14.8%;display:grid;place-items:center;padding:0 .2em;border:2px solid #efad6b;border-radius:10px;background:linear-gradient(#d62b30,#a90c17);box-shadow:inset 0 2px 4px #ffe4aa75,0 2px 8px #15000099;color:#fff;font:400 clamp(10px,1.2vw,24px)/1 SlotDisplay,Impact,sans-serif;letter-spacing:.025em;white-space:nowrap;text-align:center;text-transform:uppercase;cursor:pointer;pointer-events:auto}
.phone-display .try-spin:hover{background:linear-gradient(#e74549,#bc131e)}
.phone-display .try-spin:focus-visible{outline:2px solid #FFDD00;outline-offset:2px}
.phone-display .try-spin[hidden]{display:none!important}
@media(max-width:720px){.phone-display .try-spin{border-width:1px;border-radius:4px;font-size:clamp(7px,1.6vw,11px)}}
.casino-journey.has-motion .arrival-anchor{top:89%}
