/* Only this isolated preview page loads these overrides. */
.rebuilt-sakura #lcd,.rebuilt-sakura #gate,.rebuilt-sakura #hardware-lights{display:none!important}
.rebuilt-sakura #board{aspect-ratio:2/3!important;width:100%;height:100%}
.sakura-layout-settings{padding:12px 0;border-top:1px solid #d4b17444}
.sakura-layout-settings p{font-size:12px;color:#d1c5c0}
.rebuilt-sakura .bonus-view-setting{display:none}

body:not(.rebuilt-sakura) .sakura-layout-settings{display:none}

:root{--accent:#48bbff;--gold:#f4d393}*{box-sizing:border-box}html,body{margin:0;height:100%;width:100%;overflow:hidden}body{background:#060810;color:#f7ead2;font-family:Arial,sans-serif}button{cursor:pointer;font:inherit;color:inherit;background:linear-gradient(#25232a,#090c14);border:1px solid #a0804d80;border-radius:4px;padding:12px 16px;letter-spacing:1.7px;font-size:10px}button:hover{border-color:var(--gold);filter:brightness(1.2)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:var(--gold);text-decoration:none}header{position:absolute;z-index:5;top:0;left:0;right:0;height:74px;display:flex;justify-content:space-between;align-items:center;padding:20px 32px;background:linear-gradient(#03050ddd,transparent)}header a{font-size:12px;letter-spacing:1px}.brand{position:absolute;left:50%;transform:translateX(-50%);font:bold 19px Georgia;letter-spacing:5px;text-shadow:0 2px 5px #000}.brand small{display:block;font-size:8px;text-align:center;color:#ada5a1;letter-spacing:8px;margin-top:5px}#menu{font-size:23px;padding:3px 10px}.parlor{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 0,#2d334b,#060810 65%);perspective:1000px}.parlor:after{content:"";position:absolute;inset:0;background:linear-gradient(#02051177,transparent 45%,#02040ac0);pointer-events:none}.row{position:absolute;top:6%;bottom:0;width:65%;display:flex;gap:12px;filter:blur(2px) brightness(.48)}.row img{height:100%;width:42%;object-fit:cover;box-shadow:0 0 45px #62a4fa55}.row.left{right:65%;transform:rotateY(34deg);transform-origin:right}.row.right{left:65%;transform:rotateY(-34deg);transform-origin:left}main{position:absolute;inset:8px 0 24px;display:flex;justify-content:center;pointer-events:none}#cabinet{position:relative;height:100%;aspect-ratio:2/3;max-width:100vw;pointer-events:auto;filter:drop-shadow(0 15px 25px #000)}#art{width:100%;height:100%;display:block}#board{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#lcd{position:absolute;overflow:hidden;pointer-events:none;box-shadow:inset 0 0 15px #0006}.atmosphere{position:absolute;inset:-35%;background:radial-gradient(ellipse at 50% 60%,transparent 20%,var(--accent) 65%,transparent);opacity:.16;mix-blend-mode:screen;animation:scene 8s ease-in-out infinite alternate}@keyframes scene{to{transform:translate(5%,8%) rotate(14deg);opacity:.35}}#reels{position:absolute;top:38%;left:5%;right:5%;display:flex;justify-content:space-around;background:#050b20ce;padding:8% 1%;border-block:1px solid #ffe2a9aa;box-shadow:0 0 25px var(--accent)}#reels span{font:bold clamp(18px,3vh,38px) Georgia;width:30%;text-align:center;color:#ffe5a1;text-shadow:0 0 10px var(--accent)}#message{position:absolute;bottom:10%;width:100%;text-align:center;font:bold clamp(8px,1.5vh,17px) Georgia;letter-spacing:2px;text-shadow:0 2px 5px #000,0 0 12px #000}#queue{position:absolute;bottom:4%;width:100%;text-align:center;color:#ffe5a1;font-size:9px;letter-spacing:5px}.glass{position:absolute;inset:9% 8% 28%;border-radius:40%;pointer-events:none;background:linear-gradient(118deg,transparent 20%,#ffffff09 22%,transparent 25%,transparent 76%,#ffffff08 78%,transparent 79%)}#dial{position:absolute;left:82%;top:82%;width:14%;height:10%;border:0;border-radius:50%;background:transparent;padding:0;touch-action:none;box-shadow:0 0 14px var(--accent)}#dial i{position:absolute;inset:25%;border:2px solid #fff5;border-top-color:var(--gold);border-radius:50%;transform:rotate(35deg)}#dial[aria-pressed=true]{box-shadow:0 0 30px var(--accent),inset 0 0 20px #fff5}#dial[aria-pressed=true] i{transform:rotate(100deg)}#gate{position:absolute;left:43%;top:64%;width:14%;height:5%;background:linear-gradient(#000e,#0a1421);border:2px solid var(--gold);box-shadow:0 0 20px #ffdc96;opacity:0;pointer-events:none}#gate.open{opacity:1}#payout{position:absolute;top:57%;width:100%;text-align:center;font:bold clamp(16px,3vh,32px) Georgia;color:#fff1bc;text-shadow:0 2px 5px #000,0 0 18px var(--accent);pointer-events:none}.jackpot{animation:glow .6s ease-in-out infinite alternate}@keyframes glow{to{filter:drop-shadow(0 0 30px var(--accent)) brightness(1.1)}}.side{position:absolute;top:50%;transform:translateY(-50%);width:200px;z-index:3}.left-info{right:calc(50% + 34vh)}.right-info{left:calc(50% + 34vh);text-align:center}.eyebrow{font-size:9px;letter-spacing:3px;color:#bea77c}h1{font:32px/1.15 Georgia;margin:16px 0 10px}.side p{font-size:11px;line-height:1.9;color:#b3a9a1}hr{border:0;height:1px;background:linear-gradient(90deg,#b5915c66,transparent);margin:27px 0}.balance{display:block;font:48px Georgia;color:#ffe4a8;margin:8px 0 20px}.metrics{display:flex;gap:40px;font-size:8px;letter-spacing:2px;color:#bca98b}.metrics b{display:block;font:22px Georgia;color:#f7ead2;margin-top:8px}.side .tip{font:italic 17px/1.6 Georgia;margin:30px 0}.left-info button{width:100%;font-size:9px}.power-circle{width:108px;height:108px;border:1px solid #d2b17f99;border-radius:50%;margin:25px auto 18px;display:grid;place-items:center;outline:5px solid #191b26;box-shadow:inset 0 0 20px #54bfff20}.power-circle span{font:36px Georgia}.power-circle small{font:12px Arial}.right-info label{display:block;font-size:8px;letter-spacing:3px;color:#bca681}input[type=range]{accent-color:var(--gold);cursor:pointer;width:100%;margin:18px 0}#fire,.gold,#mobile-fire{background:linear-gradient(#ffe8b5,#b78a47);color:#17100b;border-color:#fff0c4;font-weight:bold}#fire{width:100%;touch-action:none}#status{font-size:9px;letter-spacing:2px;color:var(--accent)}#pause{margin-top:20px}footer{position:absolute;bottom:6px;left:16px;right:16px;display:flex;justify-content:space-between;font-size:7px;color:#a39a92;pointer-events:none}.mobile-hud{display:none}dialog{max-height:92dvh;overflow:auto;width:min(760px,92vw);background:radial-gradient(ellipse at top,#243449,#080b15 70%);border:1px solid #d9b47a;color:#f7ead2;padding:35px;border-radius:6px;box-shadow:0 0 0 5px #070912,0 0 0 6px #8e714655,0 30px 100px #000}dialog::backdrop{background:#02040be6;backdrop-filter:blur(9px)}#welcome{width:min(470px,90vw);text-align:center;padding:55px 25px}.logo{font:bold clamp(28px,6vw,44px) Georgia;letter-spacing:5px;background:linear-gradient(#fff,#edd6a2 40%,#a47536 55%,#ffe9c0);background-clip:text;color:transparent;margin:28px 0 8px}.jp{font-size:12px;letter-spacing:12px;color:#b29a73}.intro{font:italic 23px Georgia;margin:38px 0;color:#d7c7b0}.sub{font-size:10px;color:#b09e82;margin-top:25px}.close{float:right;padding:0 8px;font-size:22px}dialog h2{font:32px Georgia}#choices{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.choice{padding:0;overflow:hidden}.choice img{width:100%;display:block}.choice span{display:block;font:11px Georgia;padding:12px 2px;letter-spacing:0}.choice[aria-pressed=true]{border-color:#ffe3a9;box-shadow:0 0 15px var(--accent)}.settings-row{display:flex;gap:15px;margin:25px 0;align-items:center;flex-wrap:wrap}.settings-row label{font-size:12px;display:flex;gap:8px;align-items:center}.settings-row input[type=range]{width:95px}.help{font-size:12px;line-height:1.8;color:#c1b5a2}#settings>a{font-size:11px}body.paused main{filter:brightness(.6)}[hidden]{display:none!important}@media(max-width:1100px){.side{width:155px}h1{font-size:25px}.left-info{right:calc(50% + 33vh)}.right-info{left:calc(50% + 33vh)}}@media(max-width:850px){.side{display:none}header{height:45px;padding:9px 13px;background:#050610b0}header a{font-size:10px}.brand{font-size:13px;letter-spacing:3px}.brand small{display:none}#menu{font-size:20px}main{inset:35px 0 58px}.mobile-hud{display:flex;position:absolute;bottom:23px;left:0;right:0;justify-content:center;align-items:center;gap:17px;background:#060812ed;padding:8px;font-size:8px;letter-spacing:1px}.mobile-hud b{font-size:15px;color:var(--gold);margin-left:5px}#mobile-fire{font-size:9px;padding:10px 12px;touch-action:none}footer{font-size:6px;left:7px;right:7px}#choices{grid-template-columns:repeat(2,1fr)}dialog{padding:25px}.choice img{max-height:220px;object-fit:cover;object-position:top}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}
.screen-scene{position:absolute;inset:0;overflow:hidden;animation:cinematic 12s ease-in-out infinite alternate;transform-origin:center}@keyframes cinematic{to{transform:scale(1.06) translateY(-1%)}}.mobile-power{display:none}
@media(max-width:850px){#cabinet{width:min(100vw,calc((100dvh - 93px)*.666667));height:auto;aspect-ratio:2/3;align-self:center}.mobile-power{display:block;font-size:12px;margin-top:20px}}
.parlor{background:#070911 url('assets/parlor.jpg') center/cover no-repeat}.row{opacity:.12;filter:blur(4px) brightness(.4)}.parlor:after{background:linear-gradient(90deg,#03050ba3,transparent 40%,transparent 60%,#03050ba3),linear-gradient(#05071355,#02040a45)}
.side{background:linear-gradient(100deg,#04060bb0,#04060b55);padding:22px 18px;border-top:1px solid #bd9a5a35;backdrop-filter:blur(6px);width:230px}.right-info{background:linear-gradient(260deg,#04060bb0,#04060b55)}
@media(max-width:1100px){.side{width:180px;padding:18px 12px}}
#lcd:before{content:"";position:absolute;z-index:2;inset:2px;border:1px solid var(--accent);box-shadow:inset 0 0 20px var(--accent);opacity:.12;pointer-events:none;animation:screen-breathe 2.4s ease-in-out infinite alternate}@keyframes screen-breathe{to{opacity:.45}}.jackpot #lcd{box-shadow:0 0 28px var(--accent),inset 0 0 20px #ffe8ab}.jackpot #message{font-size:clamp(14px,2vh,24px);color:#fff7ca;letter-spacing:3px}.jackpot #reels{border-width:3px;box-shadow:0 0 35px #ffdd87}.gentle .jackpot{animation:none}.gentle #lcd:before{animation:none;opacity:.15}.paused #cabinet,.paused #lcd:before{animation-play-state:paused}
#cabinet:after{content:"";position:absolute;inset:2% 3% 16%;border-radius:38% 38% 22% 22%;pointer-events:none;box-shadow:inset 0 0 24px var(--accent),0 0 15px var(--accent);opacity:.32;animation:cabinet-surge 1.7s ease-in-out infinite alternate;mix-blend-mode:screen}#cabinet.drawing:after{opacity:.65;animation-duration:.65s;box-shadow:inset 0 0 42px var(--accent),0 0 28px var(--accent)}#cabinet.jackpot:after{opacity:.8;box-shadow:inset 0 0 65px #ffdb8b,0 0 45px var(--accent);animation-duration:.45s}@keyframes cabinet-surge{to{filter:brightness(1.7);opacity:.6}}.gentle #cabinet:after{animation:none;opacity:.12}.paused #cabinet:after{animation-play-state:paused}@media(prefers-reduced-motion:reduce){#cabinet:after{animation:none;opacity:.12}}
/* Illuminate the original cabinet materials, with independent crown/side/base banks. */
.outer-frame-lights{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1500'%3E%3Cpath fill='white' fill-rule='evenodd' d='M0 0H1000V1500H0Z M500 130C255 130 115 310 115 620C115 950 260 1100 500 1100C740 1100 885 950 885 620C885 310 745 130 500 130Z'/%3E%3C/svg%3E") center/100% 100%}
.outer-frame-lights img{position:absolute;inset:0;width:100%;height:100%;filter:brightness(2.7) saturate(1.65);opacity:.12;animation:outer-bank 1.8s ease-in-out infinite}
.outer-frame-lights img:nth-child(1){clip-path:polygon(0 0,100% 0,100% 17%,0 17%)}
.outer-frame-lights img:nth-child(2){clip-path:polygon(75% 12%,100% 12%,100% 81%,75% 81%);animation-delay:-.45s}
.outer-frame-lights img:nth-child(3){clip-path:polygon(0 76%,100% 76%,100% 100%,0 100%);animation-delay:-.9s}
.outer-frame-lights img:nth-child(4){clip-path:polygon(0 12%,25% 12%,25% 81%,0 81%);animation-delay:-1.35s}
@keyframes outer-bank{0%,100%{opacity:.08}20%{opacity:.7}42%{opacity:.12}65%{opacity:.4}80%{opacity:.1}}
.drawing .outer-frame-lights img{animation-duration:1s;filter:brightness(3.1) saturate(1.8)}
.jackpot .outer-frame-lights img{animation-duration:.72s;filter:brightness(3.5) saturate(1.8)}
.gentle .outer-frame-lights img{animation:none;opacity:.13;filter:brightness(1.5)}
.paused .outer-frame-lights img{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.outer-frame-lights img{animation:none;opacity:.13}}
#dial{transform:translate(-50%,-50%);width:14%;height:9.333%;box-shadow:0 0 10px var(--accent)}#dial i{inset:12%;border-width:1px;border-color:#fff3;border-top-color:var(--gold);opacity:.45}#dial:after{content:"";position:absolute;inset:5%;border:1px solid var(--accent);border-radius:50%;opacity:.35;pointer-events:none}#dial[aria-pressed=true]:after{opacity:.9}
/* Feather every light bank; no rectangular light cutoffs. */
.outer-frame-lights{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 1500'%3E%3Cdefs%3E%3Cfilter id='f'%3E%3CfeGaussianBlur stdDeviation='13'/%3E%3C/filter%3E%3C/defs%3E%3Cpath filter='url(%23f)' fill='white' fill-rule='evenodd' d='M80 35H920Q970 35 970 95V1390Q970 1450 910 1450H90Q30 1450 30 1390V95Q30 35 80 35Z M500 150C255 150 135 320 135 620C135 930 265 1080 500 1080C735 1080 865 930 865 620C865 320 745 150 500 150Z'/%3E%3C/svg%3E") center/100% 100%}
.outer-frame-lights img:nth-child(1){clip-path:none;mask:linear-gradient(#000 0 9%,transparent 26%)}
.outer-frame-lights img:nth-child(2){clip-path:none;mask:linear-gradient(270deg,#000 0 9%,transparent 28%)}
.outer-frame-lights img:nth-child(3){clip-path:none;mask:linear-gradient(0deg,#000 0 14%,transparent 33%)}
.outer-frame-lights img:nth-child(4){clip-path:none;mask:linear-gradient(90deg,#000 0 9%,transparent 28%)}
.outer-frame-lights img{filter:brightness(3.2) saturate(1.65);animation-duration:1.35s}
#bonus{width:min(550px,92vw);text-align:center;isolation:isolate;overflow:hidden;padding:40px 30px;border:2px solid #ffdc92;box-shadow:0 0 0 5px #15101b,0 0 70px var(--accent)}#bonus:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(#020617a0,#030713ee),var(--bonus-art) center 40%/cover}#bonus::backdrop{background:#02040a88;backdrop-filter:blur(4px)}#bonus h2{font-size:36px;color:#ffe7ae;text-shadow:0 0 20px var(--accent);margin:15px 0}#bonus-hint{font-size:12px;color:#e0d7c6;line-height:1.7;min-height:35px}#bonus-stage{position:relative;height:150px;margin:25px 0;border-block:1px solid #d1b78460;background:radial-gradient(ellipse,#0c275999,transparent)}#bonus-stage:after{content:"";position:absolute;left:8%;right:8%;top:50%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}#bonus-target{position:absolute;left:43%;width:14%;top:25%;height:50%;border:2px solid #ffe29a;border-radius:6px;background:#d7a93f33;box-shadow:0 0 20px #ffc34b55}#bonus-marker{position:absolute;left:8%;top:50%;z-index:2;transform:translate(-50%,-50%);font:bold 38px Georgia;color:#f5ffff;text-shadow:0 0 12px var(--accent),0 0 30px var(--accent)}#bonus[data-theme=shrine] #bonus-target{width:76px;height:76px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%}#bonus[data-theme=shrine] #bonus-marker{font-size:70px;color:#ffaddf}#bonus[data-theme=koi] #bonus-marker{color:#ffc485}#bonus-result{height:24px;color:#ffe9a8;font:bold 22px Georgia}#bonus a{font-size:10px}#bonus-tap{min-width:180px;min-height:50px;font-size:13px}.gentle #bonus{box-shadow:0 0 0 5px #15101b}
#lcd[data-theme=dragon] .screen-scene{animation:dragon-drift 10s ease-in-out infinite alternate}#lcd[data-theme=shrine] .screen-scene{animation:shrine-drift 14s ease-in-out infinite alternate}#lcd[data-theme=mecha] .screen-scene{animation:mecha-drift 8s ease-in-out infinite alternate}#lcd[data-theme=koi] .screen-scene{animation:koi-drift 9s ease-in-out infinite alternate}@keyframes dragon-drift{to{transform:scale(1.09) translate(-1%,2%);filter:brightness(1.18)}}@keyframes shrine-drift{to{transform:scale(1.07) translateY(1%);filter:saturate(1.2)}}@keyframes mecha-drift{to{transform:scale(1.06) translateX(1.5%);filter:contrast(1.08)}}@keyframes koi-drift{to{transform:scale(1.08) rotate(1.2deg);filter:brightness(1.12)}}
#bonus{width:min(650px,94vw);min-height:min(690px,91dvh);padding:32px 38px 25px;border:3px solid #ffe6a1;outline:1px solid #a8702f;outline-offset:5px;border-radius:35px 5px 35px 5px;box-shadow:0 0 0 7px #1b111a,0 0 75px var(--accent),inset 0 0 20px #ffe6b588}
#bonus:before{background:linear-gradient(180deg,#03041811 0%,#03071922 35%,#030719a8 55%,#030719ed 100%),var(--bonus-art) center/cover;inset:0}
#bonus:after{content:"";position:absolute;inset:9px;border:1px solid #ffe0a677;border-radius:25px 3px 25px 3px;pointer-events:none;box-shadow:inset 0 0 30px #09061255}
#bonus .eyebrow{color:#ffedbd;font-size:10px;font-weight:bold;letter-spacing:4px;text-shadow:0 2px 6px #000}
#bonus h2{font:bold italic clamp(30px,5vw,48px) Georgia;margin:12px 0 6px;color:#fff3cc;letter-spacing:-1px;text-shadow:0 3px #72401d,0 5px 2px #080719,0 0 22px var(--accent)}
#bonus-hint{margin-top:225px;font-weight:bold;color:#fff3d7;text-shadow:0 2px 7px #000;min-height:20px}
#bonus-stage{height:100px;margin:15px 0 20px;background:linear-gradient(90deg,#010618c0,#0a1c4299,#010618c0);border:1px solid #e0be7d77;border-radius:12px;box-shadow:inset 0 0 25px #000a,0 0 16px var(--accent)}
#bonus-target{top:15%;height:70%;border:3px solid #fff2ad;background:linear-gradient(#cf9b2655,#ffdf6044);box-shadow:0 0 18px #ffe07288,inset 0 0 14px #ffecaa44}
#bonus-marker{font-size:42px;font-weight:bold;-webkit-text-stroke:.5px #fff;text-shadow:0 0 10px #fff,0 0 25px var(--accent),0 0 40px var(--accent)}
#bonus-tap{position:relative;overflow:hidden;font:bold 19px Georgia;letter-spacing:2px;min-width:225px;min-height:56px;border:2px solid #fff0bb;border-radius:5px;background:linear-gradient(155deg,#fff3c5,#d6a448 35%,#b67a27 55%,#ffe09b);box-shadow:inset 0 2px #fff9,0 4px #6a3c18,0 0 25px #ffd06655}
#bonus-tap:before{content:"";position:absolute;inset:-100% 0;background:linear-gradient(110deg,transparent 35%,#fff9 48%,transparent 60%);transform:translateX(-100%);animation:bonus-shine 2s ease-in-out infinite}
@keyframes bonus-shine{to{transform:translateX(150%)}}
.bonus-sparks{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.bonus-sparks i{position:absolute;left:calc(var(--i)*8% + 3%);top:65%;width:3px;height:3px;background:#fff2c6;box-shadow:0 0 10px #ffcd61;animation:bonus-embers 3s linear infinite;animation-delay:calc(var(--i)*-.31s)}
@keyframes bonus-embers{to{transform:translate(25px,-350px);opacity:0}}
#bonus-result{font-size:21px;margin:16px 0 8px}#bonus a{font-size:10px;text-shadow:0 1px 5px #000}
@media(max-height:750px){#bonus{min-height:0;padding-top:20px}#bonus-hint{margin-top:175px}#bonus-stage{height:85px}}
@media(max-width:500px){#bonus{padding:24px 20px}#bonus h2{font-size:30px}#bonus-hint{margin-top:200px;font-size:11px}#bonus-stage{height:105px}#bonus-tap{min-width:185px;font-size:16px}}
.gentle .bonus-sparks i,.gentle #bonus-tap:before{animation:none}
.bonus-view-setting{display:flex;gap:15px;align-items:center;color:var(--gold);font-size:12px}.bonus-view-setting select{font:inherit;color:#fff0d1;background:#101726;border:1px solid #b59964;border-radius:4px;padding:10px}
#bonus-view-toggle{position:relative;float:right;z-index:5;font-size:9px;padding:7px 9px;letter-spacing:0;background:#040c20d9;border-color:#d7b26d99}
#bonus.in-machine{position:fixed;inset:auto;left:var(--screen-x);top:var(--screen-y);width:var(--screen-w);height:var(--screen-h);min-height:0;max-height:none;max-width:none;margin:0;padding:8px;overflow:visible;border:1px solid #d5b879;outline:0;border-radius:0;box-shadow:0 0 14px var(--accent)}
#bonus.in-machine::backdrop{background:transparent;backdrop-filter:none}
#bonus.in-machine:after{inset:3px;border-radius:0}
#bonus.in-machine:before{background:linear-gradient(#02071922,#020719aa),var(--bonus-art) center/cover}
#bonus.in-machine .eyebrow,#bonus.in-machine #bonus-hint,#bonus.in-machine>a,#bonus.in-machine .bonus-sparks{display:none}
#bonus.in-machine h2{font-size:clamp(10px,1.7vh,18px);margin:1px 0;text-align:center;letter-spacing:0}
#bonus.in-machine #bonus-stage{position:absolute;left:5%;right:5%;top:45%;height:38%;margin:0;border-radius:3px}
#bonus.in-machine #bonus-marker{font-size:clamp(15px,3vh,30px)}
#bonus.in-machine #bonus-target{border-width:1px}
#bonus.in-machine[data-theme=shrine] #bonus-target{width:32px;height:32px}
#bonus.in-machine[data-theme=shrine] #bonus-marker{font-size:30px}
#bonus.in-machine #bonus-result{position:absolute;left:0;right:0;bottom:0;margin:0;font-size:clamp(8px,1.3vh,14px);height:auto}
#bonus.in-machine #bonus-tap{position:fixed;left:50%;bottom:85px;transform:translateX(-50%);min-width:190px;z-index:40}
#bonus.in-machine #bonus-view-toggle{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);padding:10px 18px;font-size:11px;float:none}
@media(max-width:500px){#bonus.in-machine #bonus-tap{bottom:115px;min-height:50px}#bonus.in-machine #bonus-view-toggle{bottom:70px}}
/* Two illustrated scenes crossfade; live effects run on a small foreground canvas. */
.screen-alt{position:absolute;inset:0;opacity:0;animation:screen-story 26s ease-in-out infinite}.screen-alt img{width:100%;height:100%;object-fit:cover;animation:screen-pan 13s ease-in-out infinite alternate}#screen-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen;opacity:.8}#lcd #reels{z-index:4}#lcd #message,#lcd #queue{z-index:5}
@keyframes screen-story{0%,30%,100%{opacity:0}40%,75%{opacity:1}85%{opacity:0}}
@keyframes screen-pan{from{transform:scale(1.02) translate(-1%,0)}to{transform:scale(1.13) translate(1%,2%)}}
.paused .screen-alt,.paused .screen-alt img{animation-play-state:paused}.gentle #screen-fx{opacity:.3}
@media(prefers-reduced-motion:reduce){.screen-alt,.screen-alt img{animation:none}.screen-alt{opacity:0}#screen-fx{opacity:.25}}
#exchange-balls{margin-top:10px;border-color:#eac781;color:#ffdfa0}#prize-goal-hud{font-size:10px;color:#ffe5b1;line-height:1.6;margin:12px 0 0}
#prize-counter{width:min(1050px,95vw);background:radial-gradient(ellipse at top,#293246,#070c16 65%);border:2px solid #e2bf7d;padding:32px}#prize-counter h2{font:bold 36px Georgia;margin:12px 0 23px;color:#ffe4aa}#prize-counter::backdrop{background:#01040bcc;backdrop-filter:blur(8px)}
.prize-summary{display:flex;justify-content:space-between;align-items:center;background:#03091488;border:1px solid #c1a26844;padding:16px 20px}.prize-summary small{display:block;font-size:8px;letter-spacing:2px;color:#c4ad85}.prize-summary b{display:block;font:30px Georgia;margin-top:6px;color:#ffe4aa}#collection-progress{width:100%;height:6px;accent-color:var(--gold);display:block;margin:12px 0 20px}#prize-goal{padding:12px 15px;background:#97752b22;border:1px solid #d8b47466;color:#ffe3a7;font-size:12px;margin-bottom:18px}
.prize-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:18px 0}.prize-filters button{font-size:10px;letter-spacing:0}.prize-filters button[aria-pressed=true]{background:linear-gradient(#ead097,#b28245);color:#17100a}.prize-filters select{margin-left:auto;background:#0b1322;border:1px solid #bca37370;color:#e9d7b5;padding:10px;border-radius:4px;font:11px Arial}
#prize-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.prize-card{position:relative;background:linear-gradient(#141d2b,#090f1b);border:1px solid #ab8c5f55;border-radius:6px;overflow:hidden;padding:0 12px 12px}.prize-card.collected{border-color:#a6dfc166}.prize-card.goal{border-color:#ffe095;box-shadow:0 0 15px #ffd06a22}.prize-image{aspect-ratio:1;background-size:400% 200%;background-repeat:no-repeat;margin:0 -12px 10px}.prize-card h3{font:16px Georgia;margin:9px 0;min-height:35px;color:#f8e4bd}.prize-owned{font-size:8px;letter-spacing:1px;color:#ac9d87}.collected .prize-owned{color:#a6f1d0}.prize-card p{font:bold 17px Georgia;color:#ffe2a1;margin:8px 0}.prize-needed{display:block;font-size:10px;color:#9fa8b5;min-height:20px}.prize-card button{width:100%;font-size:9px;letter-spacing:.6px;margin-top:6px;padding:10px 5px}.prize-card button:not(.prize-goal-button):not(:disabled){background:linear-gradient(#ebd098,#ab7d3e);color:#19120c;font-weight:bold}.prize-card button:disabled{opacity:.4;cursor:default}.prize-goal-button{border:0;background:none;color:#bca67b;font-size:8px!important}
#prize-receipt{font-size:12px;color:#a8efd2;min-height:18px}.prize-save{display:flex;align-items:center;gap:9px;font-size:12px;margin-top:26px}#prize-storage-status{font-size:10px;color:#b1a38e}.prize-note{font-size:10px;color:#b6a37f;margin:22px 0 12px}#prize-counter>a{font-size:11px}
@media(max-width:700px){#prize-counter{padding:24px 18px}#prize-grid{grid-template-columns:repeat(2,1fr);gap:10px}.prize-card h3{font-size:14px}.prize-filters select{width:100%;margin:0}.prize-summary{padding:12px}.prize-summary b{font-size:25px}}
#hardware-lights{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen}.hardware-lamp{position:absolute;left:var(--x);top:var(--y);width:12.4%;height:8.2667%;transform:translate(-50%,-50%);mask:radial-gradient(circle,#000 12%,#000d 30%,transparent 70%);opacity:.15;filter:brightness(3.3) saturate(2);animation:hardware-chase 1.5s ease-in-out infinite;animation-delay:var(--phase)}.hardware-lamp:after{content:"";position:absolute;inset:18%;background:radial-gradient(circle,#fff8,var(--accent) 25%,transparent 65%);mix-blend-mode:screen}.drawing .hardware-lamp{animation-duration:.95s}.jackpot .hardware-lamp{animation-duration:.7s;filter:brightness(4) saturate(2)}@keyframes hardware-chase{0%,100%{opacity:.12}30%{opacity:.9}60%{opacity:.2}80%{opacity:.5}}.gentle .hardware-lamp{animation:none;opacity:.15;filter:brightness(1.4)}.paused .hardware-lamp{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.hardware-lamp{animation:none;opacity:.15}}
.knob-face{position:absolute;inset:0;border-radius:50%;overflow:hidden;pointer-events:none;transform:rotate(var(--dial-angle,0deg));transition:transform .04s linear}#dial{touch-action:none;cursor:grab}#dial:active{cursor:grabbing}#dial i{z-index:2;inset:7%;border-top:2px solid #ffe7a9;opacity:.9}#mode-cue{position:absolute;top:72%;left:20%;right:20%;padding:5px 3px;background:#050e20dc;border:1px solid #bda16688;text-align:center;font:bold clamp(6px,1.1vh,11px) Arial;letter-spacing:1px;color:#e6d7b8;pointer-events:none}#mode-cue.right{border-color:var(--accent);color:#fff0bd;box-shadow:0 0 12px var(--accent)}#statistics{margin-top:10px}.rush .outer-frame-lights img{animation-duration:1s}.rush #lcd{box-shadow:0 0 15px var(--accent)}
#session-stats{width:min(730px,94vw)}#stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}#stats-grid>div{background:#040b16;border:1px solid #c5a56b55;padding:15px 12px}#stats-grid small{display:block;font-size:8px;letter-spacing:1px;color:#b4a187}#stats-grid b{display:block;font:24px Georgia;color:#ffe4a8;margin-top:10px}.history-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #d5b57533}.history-row strong{font:14px Georgia}.history-row span{font-size:10px;color:#b9ad9a}#session-stats h3{font:20px Georgia;color:#e9d3a8;margin-top:30px}#stats-empty{font-size:12px;color:#aaa}#session-stats>a{font-size:11px}@media(max-width:600px){#stats-grid{grid-template-columns:repeat(2,1fr)}.history-row{align-items:flex-start;flex-direction:column}#mode-cue{font-size:7px;letter-spacing:.3px}}
#dial .knob-face{transition:transform .03s linear}

/* Game gestures must not invoke browser selection or iOS callouts. */
html,body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button,a,canvas,img,[role=slider]{-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}
#cabinet,button,[role=slider],input[type=range]{touch-action:manipulation}
#dial,#fire,#mobile-fire{touch-action:none}
input[type=text],input[type=number],textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
#gate,#gate.open{background:transparent;border-color:transparent;box-shadow:none}
/* Lens-local emission retains the engraved/faceted texture and a constant lit baseline. */
#hardware-lights{mix-blend-mode:normal}
.hardware-lamp{mask:radial-gradient(circle,#000 0 52%,#000b 65%,transparent 75%);-webkit-mask:radial-gradient(circle,#000 0 52%,#000b 65%,transparent 75%);filter:brightness(1.85) saturate(1.3);opacity:.24;animation:hardware-lens 2.7s ease-in-out infinite;animation-delay:var(--phase)}
.hardware-lamp:after{display:none}
.drawing .hardware-lamp{animation-duration:1.6s}.jackpot .hardware-lamp{filter:brightness(2.4) saturate(1.45);animation-duration:1s}
@keyframes hardware-lens{0%,100%{opacity:.2}45%{opacity:.82}75%{opacity:.4}}
.gentle .hardware-lamp{animation:none;opacity:.24;filter:brightness(1.4)}
@media(prefers-reduced-motion:reduce){.hardware-lamp{animation:none;opacity:.24}}
.exchange-ticket{width:min(330px,100%);margin:14px auto;padding:18px 22px;background:#f3e6c8;color:#382b1b!important;border-top:3px dashed #b8a986;border-bottom:3px dashed #b8a986;box-shadow:0 8px 20px #0008;text-align:center;animation:ticket-print .4s ease-out}.exchange-ticket span{display:block;margin:7px 0}.exchange-ticket span:first-child,.exchange-ticket span:last-child{font-size:9px;letter-spacing:1px}.exchange-ticket span:nth-child(2){font:bold 20px Georgia}@keyframes ticket-print{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
/* Fixed illustrated housing; a separate small mechanical grip carries only the moving geometry. */
#dial{box-shadow:none}#dial:after{inset:0;border-color:var(--accent);opacity:.3}#dial .knob-grip{position:absolute;inset:17%;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff9,transparent 30%),conic-gradient(#171b23,#66717d 12%,#171d26 24%,#e0d7b7 38%,#202936 50%,#778490 62%,#131a22 78%,#cbbd9a 92%,#171b23);border:2px solid #dac498;box-shadow:inset 0 0 5px #000,0 3px 7px #0009;pointer-events:none}
#dial .knob-grip:before{content:"";position:absolute;inset:16% 36%;border-radius:5px;background:linear-gradient(90deg,#111923,#667585 42%,#c9d2da 48%,#253040 68%,#080e16);border:1px solid #b8aa8a;transform:rotate(var(--dial-angle));box-shadow:2px 2px 3px #0009;transition:transform .04s linear}
#dial i{inset:3%;border:0;opacity:1;pointer-events:none}#dial i:before{content:"";position:absolute;top:0;left:46%;width:8%;height:12%;border-radius:2px;background:#fff0be;box-shadow:0 0 3px var(--accent)}#dial[aria-pressed=true]{box-shadow:0 0 10px var(--accent)}

#gate{display:none!important}

/* Keep the hit target independent of the perspective-correct grip dimensions. */
#dial .knob-grip{inset:auto;left:50%;top:50%;width:var(--grip-width);height:var(--grip-height);transform:translate(-50%,-50%)}
#dial i{inset:auto;left:50%;top:50%;width:calc(var(--grip-width) + 10%);height:calc(var(--grip-height) + 10%);margin-left:calc((var(--grip-width) + 10%)/-2);margin-top:0;translate:0 -50%}
#dial:after{inset:14%;border-color:transparent}#dial[aria-pressed=true]{box-shadow:none}#dial[aria-pressed=true]:after{border-color:var(--accent)}
#share-message{display:block;width:100%;margin:14px 0;padding:14px;background:#090e19;border:1px solid #bfa16c;color:#f5e5c5;font:14px/1.6 Arial;resize:vertical;user-select:text;-webkit-user-select:text}#share-status{font-size:12px;color:#b2e6ce}#session-stats>button:last-child{margin-top:20px}
@media(max-width:850px),(pointer:coarse){.outer-frame-lights img:nth-child(n+3){display:none}.row{filter:brightness(.48)}dialog::backdrop{backdrop-filter:blur(2px)}#mobile-pause{min-width:38px;min-height:40px;padding:8px;font-size:15px}.mobile-hud{gap:10px}}
#loading{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 35%,#183a54,#060a14 65%);color:#ffe3a5;gap:18px}#loading h1{font:bold clamp(32px,7vw,60px) Georgia;letter-spacing:8px;margin:0}#loading p{font:13px Arial;letter-spacing:1px;margin:0;color:#c6c3bd}#loading strong{font:32px Georgia}#load-progress{appearance:none;width:min(300px,70vw);height:6px;border:0;background:#293440;color:#e5c17b;accent-color:#e5c17b}#load-progress::-webkit-progress-bar{background:#293440}#load-progress::-webkit-progress-value{background:linear-gradient(90deg,#5dceec,#ffe5ab)}#loading a{font-size:12px;margin-top:22px}.pre-enter .outer-frame-lights,.pre-enter #hardware-lights{visibility:hidden}.pre-enter .screen-scene,.pre-enter .screen-alt,.pre-enter .screen-alt img,.pre-enter .atmosphere{animation:none}
.choice img{height:auto;aspect-ratio:2/3;object-fit:cover}.performance-settings{margin:20px 0;padding:15px;border:1px solid #a0804d55;display:flex;gap:16px;flex-wrap:wrap}.performance-settings label{display:flex;align-items:center;gap:10px;font-size:12px}.performance-settings select{background:#0a1120;color:#ffe3a5;border:1px solid #a0804d80;padding:8px;font:12px Arial}.performance-settings p{width:100%;font-size:11px;color:#b8b2a8;margin:0}.light-graphics .outer-frame-lights img:nth-child(n+2){display:none}.light-graphics .row{filter:brightness(.4)}.light-graphics .screen-alt,.light-graphics .screen-alt img,.light-graphics .screen-scene{animation:none}.light-graphics #screen-fx{opacity:.5}.light-graphics .hardware-lamp{filter:brightness(1.6)}
.performance-settings{padding:12px;gap:10px}.performance-settings button{font-size:10px;letter-spacing:.4px;flex:1;min-height:42px}.performance-settings button[aria-pressed=true]{background:linear-gradient(#d2e5bd,#89c6b9);color:#091b1c;border-color:#e8ffdf}.performance-settings details{width:100%;font-size:12px;color:#c8c1ac}.performance-settings summary{cursor:pointer;padding:8px 0}.performance-settings details>div{display:flex;gap:16px;flex-wrap:wrap;margin:12px 0}.performance-mode .hardware-lamp{animation:none;opacity:.35;filter:brightness(1.6)}.performance-mode .outer-frame-lights img{filter:brightness(1.7);animation-duration:3s}.performance-mode .atmosphere{animation:none;opacity:.1}.performance-mode #screen-fx{display:none}
/* Bonus input animates independently while the full cabinet is frozen. */
.bonus-active main *,.bonus-active .row *{animation-play-state:paused!important}#bonus-stage{contain:layout paint}#bonus-marker{left:0!important;top:0!important;will-change:transform;pointer-events:none}
@media(max-width:850px),(pointer:coarse){#bonus::backdrop{backdrop-filter:none;background:#02040ab8}#bonus{box-shadow:0 0 0 4px #15101b}#bonus-marker{text-shadow:0 1px 3px #000,0 0 7px var(--accent)}.bonus-sparks{display:none}#bonus-tap:before{animation:none;display:none}}
.performance-mode #bonus::backdrop{backdrop-filter:none;background:#02040ab8}.performance-mode #bonus{box-shadow:0 0 0 4px #15101b}.performance-mode .bonus-sparks,.performance-mode #bonus-tap:before{display:none}
/* Jackpot rules must not reactivate expensive filters in Performance Mode. */
.performance-mode #cabinet::after,.light-graphics #cabinet::after{display:none!important;animation:none!important;filter:none!important;box-shadow:none!important}
.performance-mode #lcd .screen-scene,.performance-mode #lcd .screen-alt,.performance-mode #lcd .screen-alt img,.performance-mode #lcd .atmosphere,.light-graphics #lcd .screen-scene{animation:none!important;filter:none!important}
.performance-mode #lcd::before,.performance-mode #lcd #reels{animation:none!important;box-shadow:none!important}
.performance-mode #cabinet #lcd,.performance-mode #cabinet #message{box-shadow:none!important;filter:none!important}
.performance-mode #cabinet .hardware-lamp{animation:none!important;filter:none!important;opacity:.35}
.performance-mode #cabinet .outer-frame-lights img{filter:none!important;animation-duration:3s!important}
@media(max-width:850px),(pointer:coarse){#cabinet.jackpot::after{animation:none;filter:none;box-shadow:inset 0 0 12px var(--accent);opacity:.25}}
.performance-mode #cabinet{filter:none!important}.performance-mode .row{filter:none!important;opacity:.4}.performance-mode dialog::backdrop{backdrop-filter:none!important}
#prize-counter .prize-note{font-size:12px;line-height:1.6;color:#e3d0a9;margin:12px 0 20px}
#bonus-tap{touch-action:none;-webkit-tap-highlight-color:transparent}#bonus-tap::before{pointer-events:none}
@media(hover:none){#bonus-tap:hover{filter:none}}

#fire,#mobile-fire{position:relative;overflow:visible}#fire::after,#mobile-fire::after{content:attr(data-power);position:absolute;bottom:calc(100% + 14px);left:50%;transform:translateX(-50%);padding:8px 14px;border:1px solid #ffe8b5;border-radius:6px;background:#111722;color:#fff0c4;font:bold 22px/1 Arial,sans-serif;letter-spacing:0;box-shadow:0 3px 12px #0009;pointer-events:none;opacity:0;z-index:20}#fire[aria-pressed=true]::after,#mobile-fire[aria-pressed=true]::after{opacity:1}

#bonus-tap:hover,#bonus-tap:active,#bonus-tap:focus{filter:none}#bonus-tap::before,#bonus-tap::after{pointer-events:none}

#closeup-view{display:inline-block}@media(max-width:850px){#closeup-view{display:inline-block}body.closeup-view main{inset:45px 0 0;overflow:hidden;align-items:center}body.closeup-view #cabinet{flex:none;width:min(128vw,calc((100dvh - 137px)*.87));height:auto;max-width:none;aspect-ratio:2/3;transform:translateY(calc(11% - 46px));clip-path:none}body.closeup-view #dial{display:none}body.closeup-view .mobile-hud{background:rgba(6,8,18,.58);border-top:1px solid #ffe0a533;bottom:calc(18px + env(safe-area-inset-bottom,0px));min-height:76px;justify-content:flex-end;gap:8px;padding:10px 12px 16px;z-index:8}body.closeup-view #mobile-fire{min-height:48px;max-width:57vw;font-size:10px;padding:12px;letter-spacing:.4px}body.closeup-view .mobile-hud>span{font-size:7px}body.closeup-view .mobile-hud b{display:block;margin:4px 0 0;font-size:13px}body.closeup-view #mobile-pause{margin-left:auto}body.closeup-view footer{bottom:calc(5px + env(safe-area-inset-bottom,0px))}body.closeup-view #mobile-fire::after{bottom:calc(100% + 22px)}}


/* Freeze the cabinet behind settings without allocating a full-screen filtered layer. */
body.settings-open main{filter:none!important}body.settings-open #cabinet,body.settings-open #cabinet *,body.settings-open #cabinet::before,body.settings-open #cabinet::after,body.settings-open .row{animation-play-state:paused!important}body.settings-open #settings::backdrop{backdrop-filter:none!important;background:#02040ae8}

/* The LCD illustration is independent of reel, jackpot and graphics-state changes. */
#lcd .screen-alt{animation:none!important}#lcd .screen-alt img{animation:none!important}

@media(min-width:851px){body.closeup-view main{overflow:hidden;align-items:flex-start}body.closeup-view #cabinet{flex:none;height:128%;width:auto;max-width:none;aspect-ratio:2/3}body.closeup-view #dial{display:none}body.closeup-view .left-info{right:calc(50% + 44vh)}body.closeup-view .right-info{left:calc(50% + 44vh)}}@media(min-width:851px) and (max-width:1100px){body.closeup-view .side{width:120px}body.closeup-view .left-info{right:calc(50% + 40vh)}body.closeup-view .right-info{left:calc(50% + 40vh)}}

#gate{background:none;border:0;box-shadow:none}

/* Low-resolution ambient motion also runs in Performance Mode. */
.performance-mode #screen-fx{display:block;opacity:.4}
/* Impact-only lens response: clipped to the original hardware, no white disc. */
#cabinet .hardware-lamp.impact{animation:none;opacity:1;filter:brightness(3) saturate(1.5)}
.hardware-lamp.impact:before{content:"";position:absolute;inset:17%;border-radius:50%;border:1px solid var(--accent);box-shadow:inset 0 0 6px var(--accent),0 0 9px var(--accent);pointer-events:none}
.performance-mode #cabinet .hardware-lamp.impact{opacity:.9!important;filter:none!important}
.gentle #cabinet .hardware-lamp.impact{opacity:.3;filter:brightness(1.4)}
@media(prefers-reduced-motion:reduce){#cabinet .hardware-lamp.impact{opacity:.3;filter:brightness(1.4)}}
/* Clear stages sit in front of the LCD bezel; balls retain a continuous path. */
#lcd{z-index:1}#board{z-index:2}#hardware-lights,.outer-frame-lights{z-index:3}.glass{z-index:4}#dial,#mode-cue,#payout{z-index:5}

/* Decoded two-slot dissolves and foreground motion run on the game's clock. */
#lcd .screen-scene,#lcd .screen-alt{animation:none!important;inset:0;overflow:hidden;filter:none!important;transform:none!important;pointer-events:none}
#lcd .screen-scene img,#lcd .screen-alt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;animation:none!important;max-width:none;transform-origin:center}
#lcd[data-theme=mecha] .screen-scene img,#lcd[data-theme=mecha] .screen-alt img{object-position:50% 22%}
#lcd #screen-fx{z-index:2;mix-blend-mode:normal;opacity:.88}
#lcd .atmosphere{z-index:3;animation:none!important;opacity:.07}
.performance-mode #lcd #screen-fx{opacity:.65}
.gentle #lcd #screen-fx{opacity:.25}
@media(prefers-reduced-motion:reduce){#lcd #screen-fx{opacity:.25}}
.soundtrack-controls{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;margin:20px 0;padding:15px;border:1px solid #a0804d55}
.soundtrack-controls label{grid-column:1/-1;font-size:12px;color:#e8d1a9}
.soundtrack-controls select{width:100%;min-width:0;min-height:42px;background:#0a1120;color:#ffe3a5;border:1px solid #a0804d80;padding:8px;font:12px Arial}
.soundtrack-controls p{grid-column:1/-1;margin:0;color:#b8b2a8;font-size:11px;line-height:1.6}
.soundtrack-controls button{font-size:9px;letter-spacing:.4px}.soundtrack-controls button:disabled{opacity:.45;cursor:default}
@media(max-width:500px){.soundtrack-controls{grid-template-columns:1fr}.soundtrack-controls button{justify-self:start}}

/* Music supplies opacity only; preserve the feathered native cabinet artwork. */
#cabinet .outer-frame-lights.music-driven img{animation:none!important;transition:none}
#cabinet .outer-frame-lights.music-driven:not(.music-lightweight) img{display:block}
#cabinet .outer-frame-lights.music-lightweight img{display:none}
#cabinet .outer-frame-lights.music-lightweight img:nth-child(1){display:block;mask:linear-gradient(90deg,#000 0 9%,transparent 33%);-webkit-mask:linear-gradient(90deg,#000 0 9%,transparent 33%)}
#cabinet .outer-frame-lights.music-lightweight img:nth-child(2){display:block;mask:linear-gradient(270deg,#000 0 9%,transparent 33%);-webkit-mask:linear-gradient(270deg,#000 0 9%,transparent 33%)}
#cabinet #hardware-lights.music-crescendo .hardware-lamp{animation:none;opacity:calc(.18 + var(--music-crest,0));transition:none}
#cabinet #hardware-lights.music-crescendo .hardware-lamp.impact{opacity:1}
.gentle #cabinet .outer-frame-lights.music-driven img{opacity:.12!important}
@media(prefers-reduced-motion:reduce){#cabinet .outer-frame-lights.music-driven img{opacity:.12!important}}

/* Desktop already shows power in the dial and launch button. */
#fire::after{display:none}

/* Display openings traced in the original 1024 x 1536 artwork.
   Visual-only: keep the playfield's collision geometry independent. */
#lcd[data-theme=dragon]{left:32.52%!important;top:23.96%!important;width:35.35%!important;height:26.56%!important;clip-path:polygon(0 0,100% 0,100% 86%,94% 89%,93% 100%,59% 100%,53% 98%,47% 98%,41% 100%,7% 100%,6% 89%,0 86%)}
#lcd[data-theme=shrine]{left:29.49%!important;top:17.71%!important;width:41.21%!important;height:23.89%!important;clip-path:polygon(0 0,100% 0,100% 74%,93% 78%,93% 94%,85% 97%,84% 100%,15% 100%,14% 97%,7% 94%,7% 78%,0 74%)}
#lcd[data-theme=mecha]{left:27.05%!important;top:22.46%!important;width:48.93%!important;height:19.73%!important;clip-path:polygon(0 0,100% 0,100% 83%,86% 87%,79% 100%,61% 100%,47% 93%,34% 100%,15% 100%,8% 88%,0 83%)}
#lcd[data-theme=koi]{left:33.79%!important;top:18.36%!important;width:32.72%!important;height:29.95%!important;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
/* A quiet, polished control panel: no animated or filtered layers. */
#settings.polished-menu{width:min(800px,94vw);max-height:90dvh;padding:32px;background:radial-gradient(ellipse at top left,#26394a 0,transparent 48%),#0c1421;border:1px solid #b89b5e80;border-radius:22px;color:#f2ecdf;box-shadow:0 24px 80px #0009;scrollbar-width:thin;scrollbar-color:#786749 #101b29}
#settings.polished-menu>h2{font:normal clamp(25px,4vw,36px) Georgia,serif;margin:10px 44px 8px 0;color:#ffedc6;letter-spacing:-.6px}
#settings .menu-intro{margin:0 0 26px;color:#abb9c8;font-size:13px}
#settings.polished-menu>.eyebrow{color:#c6aa6a;letter-spacing:3px;font-size:10px}
#settings.polished-menu>.close{position:absolute;right:18px;top:18px;width:40px;height:40px;border:1px solid #b89b5e50;border-radius:50%;background:#121e2b;color:#eedcb4;font-size:24px;padding:0}
#settings .menu-section{padding:22px;margin:16px 0;border:1px solid #a38c5d33;border-radius:14px;background:linear-gradient(135deg,#ffffff05,#ffffff01)}
#settings .menu-section>h3{font:normal 23px Georgia,serif;color:#f2deb0;margin:0 0 5px}
#settings .section-caption{font-size:12px;color:#9faebd;margin:0 0 20px;line-height:1.5}
#settings #choices{margin:0;gap:12px}
#settings .choice{border-radius:10px;overflow:hidden;background:#09111c;border:1px solid #71819750;padding:8px;transition:border-color .15s}
#settings .choice[aria-pressed=true]{border-color:#e4bf70;box-shadow:0 0 0 1px #e4bf7033;background:#332d21}
#settings .choice img{border-radius:6px;max-height:170px;object-fit:cover}
#settings .menu-control-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#settings .menu-control-grid>label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;background:#07111b70;border:1px solid #8293aa24;border-radius:9px;font-size:13px;min-height:48px;box-sizing:border-box}
#settings input[type=checkbox]{accent-color:#e6c27a;width:19px;height:19px;flex-shrink:0;cursor:pointer}
#settings input[type=range]{accent-color:#e6c27a;max-width:115px;min-width:65px}
#settings .soundtrack-controls{margin:16px 0 0;padding:16px;border-radius:10px;border-color:#b89b5e33;background:#07111b70}
#settings select{border-radius:7px;min-height:42px;background:#0b1623;color:#f3dfb8;border:1px solid #b89b5e55;padding:10px;max-width:100%}
#settings .performance-settings{margin:0 0 14px;padding:0;border:0;gap:10px}
#settings button:not(.close){border-radius:8px;min-height:44px;letter-spacing:.7px}
#settings .performance-settings button{background:#111f2e;border-color:#77869b55;color:#d1dbe5}
#settings .performance-settings button[aria-pressed=true]{background:#e1c184;color:#17212c;border-color:#f6dcab}
#settings .performance-settings p{line-height:1.6;color:#9faebd}
#settings .performance-settings details{padding:10px 14px;border:1px solid #8293aa24;border-radius:9px;box-sizing:border-box}
#settings .menu-disclosure{border-top:1px solid #8293aa30;margin-top:16px;padding-top:4px}
#settings summary{padding:14px 0;cursor:pointer;color:#e5d2a9;font-size:13px}
#settings .sakura-layout-settings{padding:4px 0 12px;font-size:12px;color:#b1becb;line-height:1.7}
#settings .menu-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
#settings .menu-actions button{margin:0;font-size:10px;background:#152231;border-color:#b89b5e44}
#settings .menu-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 3px;font-size:11px;color:#9dadbc}
#settings #settings-save-status{font-size:11px;margin:0;line-height:1.5}
#settings .menu-resume{width:100%;background:linear-gradient(110deg,#f0d599,#c6a35f);color:#152030;border:1px solid #f0d599;font-weight:bold;padding:15px}
#settings :focus-visible{outline:2px solid #ffe0a0;outline-offset:3px}
@media(max-width:600px){#settings.polished-menu{padding:22px 15px;max-height:94dvh;border-radius:16px}#settings .menu-section{padding:16px 12px}#settings .menu-control-grid{grid-template-columns:1fr}#settings .menu-footer{flex-direction:column;align-items:flex-start;gap:10px}#settings .choice img{max-height:150px}#settings .soundtrack-controls{padding:12px}#settings .soundtrack-controls select{width:100%}#settings .performance-settings button{flex-basis:100%}#settings .menu-actions{gap:8px}}
#settings .menu-control-grid input[type=checkbox]{order:2;margin-left:auto}

/* Avoid filtering the complete animated cabinet on phones. Light sprites retain their glow. */
@media(max-width:850px),(pointer:coarse){
 #cabinet{filter:none!important}
 #cabinet .outer-frame-lights img{will-change:opacity}
}
#cabinet .outer-frame-lights img.baked-light-art{filter:none!important}
/* Keep the unentered game covered through loading and the welcome handoff. */
body.pre-enter main,body.pre-enter .side,body.pre-enter .mobile-hud,
body.pre-enter header,body.pre-enter footer{visibility:hidden}
#welcome::backdrop{background:#060810;backdrop-filter:none;-webkit-backdrop-filter:none}
/* The canvas and music-driven lamps already provide localized celebrations.
   The legacy cabinet overlay abruptly changed its glow at reel startup. */
.rebuilt-sakura #cabinet::after{display:none!important;animation:none!important}
/* Safari toolbar changes must not resize the machine during play.
   Small viewport units remain stable until the device orientation changes. */
@supports(height:100svh){
 @media(max-width:850px){
  main{bottom:auto;height:calc(100svh - 93px)}
  body.closeup-view main{bottom:auto;height:calc(100svh - 45px)}
  body.closeup-view #cabinet{width:min(128vw,calc((100svh - 137px)*.87))}
 }
}
