/* 0.17: event-driven motion. No persistent blur/filter on the sprite surfaces. */
html[data-app-view] .studio .line-detail{color:var(--accent);font-size:8px;letter-spacing:1px;font-variant-numeric:tabular-nums}
html[data-app-view] .studio .reel.line-win .reel-symbol{animation:none}
html[data-app-view] .studio .reel.line-muted{border-color:#ffffff18;box-shadow:inset 0 8px 18px #0008,inset 0 -8px 18px #0006}
html[data-app-view] .studio .line-muted .reel-symbol{opacity:.38;transition:opacity .12s}
html[data-app-view] .studio .reel.line-focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),inset 0 0 28px #e6c7781a}
html[data-app-view] .studio .line-focus .reel-symbol{opacity:1;transition:opacity .12s}
html[data-app-view] .studio .special-land [data-special=wild]{animation:vault-wild-arrive .58s ease-out}
html[data-design=crystal] .studio .special-land [data-special=wild]{animation:crystal-wild-arrive .65s ease-out}
html[data-app-view] .studio .special-land [data-special=bonus]{animation:bonus-arrive .62s ease-out}
html[data-app-view] .studio .wild-active.line-focus .reel-symbol{animation:wild-activate .65s ease-in-out 5}
html[data-app-view] .studio .bonus-reveal .reel-symbol{animation:portal-awake .9s ease-out 2}
html[data-app-view] .studio .reel.anticipation{border-color:var(--accent);box-shadow:inset 0 0 20px #d9c48a27,0 0 9px #d9c48a35}
.studio .anticipation::after{background:linear-gradient(180deg,var(--accent),transparent 20%,transparent 80%,var(--accent));opacity:.26;animation:anticipation-light .7s ease-in-out infinite alternate}
.studio .anticipating .machine-light{width:38px;opacity:1}
.studio .bonus-last{border-color:#e8c3878c;background:linear-gradient(90deg,#ab82442b,#1b324344)}
.studio .bonus-last .bonus-kicker{display:block;color:var(--accent);font-size:6px;letter-spacing:1px;margin:0 0 3px}
.studio .bonus-last .bonus-heading>strong{color:var(--accent);animation:last-spin-pulse 1s ease-in-out 2}
.studio .feature-enter .machine::after{content:'';position:absolute;inset:0;z-index:8;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse at 50% 50%,#c3f4ed80,transparent 60%);animation:scene-reveal .9s ease-out both}
html.in-bonus .studio .world-rays{background:conic-gradient(from 100deg at 70% 10%,transparent 0deg,#abf1d128 7deg,transparent 13deg,#e4c37e17 16deg,transparent 28deg)}
html[data-design=crystal].in-bonus .studio .world-rays{background:conic-gradient(from 100deg at 70% 10%,transparent 0deg,#a2dcff24 7deg,transparent 13deg,#bdb3ff17 16deg,transparent 28deg)}
html.scene-suspended .studio *{animation-play-state:paused}
html[data-design] .studio #feature-dialog{position:fixed;inset:0;margin:auto;height:max-content;max-height:calc(100dvh - 24px);background-image:linear-gradient(#0a1429d9,#0a1429f2),var(--feature-scene);background-size:cover;background-position:center}
html[data-design=vault] .studio #feature-dialog{background-image:linear-gradient(#121c23b8,#0b1720f2),var(--feature-scene)}
.studio .feature-visual{position:relative;width:230px;height:200px;margin:0 auto;perspective:600px;isolation:isolate}
.studio .feature-visual .feature-art{position:absolute;left:20px;top:5px;width:190px;height:190px;margin:0;z-index:1}
.studio .feature-portal{position:absolute;inset:15px 30px;border:1px solid #ead4a95c;border-radius:50%;box-shadow:inset 0 0 0 6px #dab6780a,inset 0 0 0 7px #dab67836,0 0 34px #d7ad6826;animation:portal-orbit 10s linear infinite}
.studio .feature-portal::before,.studio .feature-portal::after{content:'';position:absolute;inset:-10px;border:1px dashed #cbb28070;border-radius:50%;transform:rotateX(35deg) rotateY(-30deg)}
.studio .feature-portal::after{inset:20px;border-style:solid;transform:rotateX(-35deg) rotateY(30deg)}
html[data-design=crystal] .studio .feature-portal{border-color:#a4ebff80;box-shadow:inset 0 0 0 7px #a4e8f112,0 0 38px #9893f033}
html[data-design=crystal] .studio .feature-portal::before,html[data-design=crystal] .studio .feature-portal::after{border-color:#b3daff80}
.studio .feature-door{display:none;position:absolute;top:0;bottom:0;width:50%;z-index:3;border:1px solid #b99c5b8c;background:repeating-linear-gradient(0deg,transparent 0 14px,#dec99e0d 15px 16px),linear-gradient(135deg,#444232,#101d24 55%,#746747);box-shadow:inset 0 0 0 5px #050b11,inset 0 0 0 6px #d8bc6c55}
.studio .feature-intro[open] .feature-door{display:block}
.studio .feature-door::after{content:'';position:absolute;inset:25% 10%;border:1px solid #ccac6c66;border-radius:50%;box-shadow:inset 0 0 0 5px #0000,inset 0 0 0 6px #d6b46d40}
.studio .feature-door-left{left:0;transform-origin:0 50%;border-radius:80% 0 0 80%;animation:vault-door-left .8s .1s ease-in-out both}
.studio .feature-door-right{right:0;transform-origin:100% 50%;border-radius:0 80% 80% 0;animation:vault-door-right .8s .1s ease-in-out both}
html[data-design=crystal] .studio .feature-door{background:linear-gradient(145deg,#c8f4ffc9,#454080bd,#79e1f88f);border-color:#a4eaff80;clip-path:polygon(50% 0,100% 22%,100% 78%,50% 100%,0 78%,0 22%);box-shadow:inset 0 0 0 5px #d1efff26}
html[data-design=crystal] .studio .feature-door-left{animation:crystal-door-left .85s .1s ease-out both}
html[data-design=crystal] .studio .feature-door-right{animation:crystal-door-right .85s .1s ease-out both}
.studio .feature-zero .feature-portal{animation:none;opacity:.25}
html[data-design] .studio #win-dialog{position:fixed;inset:0;margin:auto;height:max-content;isolation:isolate;overflow:hidden;text-align:center;width:min(470px,calc(100% - 28px));max-height:calc(100dvh - 24px);padding:28px 30px;border:1px solid #d9bd7aa6;border-radius:16px;background:radial-gradient(ellipse at 50% 40%,#72592c65,transparent 70%),#0b1722;color:#eddbb7;box-shadow:0 0 110px #000b}
html[data-design=crystal] .studio #win-dialog{background:radial-gradient(ellipse at 50% 40%,#3a428999,transparent 70%),#0a1830;border-color:#b0e7ffa6;color:#dbf3ff}
.studio #win-dialog[data-tier=epic]{border-width:2px}
.studio #win-title{font:400 32px/1.1 Georgia,serif;margin:11px 0 8px;color:inherit;letter-spacing:0}
.studio .win-art{width:155px;height:155px;margin:0 auto;animation:feature-float 3s ease-in-out infinite}
.studio .win-art .symbol-tag{display:none}
.studio .win-multiplier{display:block;font-size:11px;letter-spacing:2px;color:var(--accent);font-weight:600;margin:3px 0 10px}
.studio .win-value{display:flex;align-items:baseline;justify-content:center;gap:8px;color:var(--accent);min-height:73px}
.studio .win-value strong{font-size:64px;font-weight:500;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-2px}
.studio .win-value span{font-size:12px}
.studio #win-result{font-size:11px;color:#c4c9ce;line-height:1.5;margin:10px 0 6px;min-height:17px}
.studio .win-skip{display:block;width:100%;border:0;color:#9eb3bf;background:none;font-size:10px;min-height:29px;padding:5px;margin:0 0 6px}
.studio #win-dialog>.dialog-primary{width:100%;background:var(--accent);color:#10212c;border:0;min-height:44px}
.studio .win-rays{position:absolute;z-index:-1;inset:-35%;background:conic-gradient(from 0deg,transparent 0deg,#e5cd8b12 12deg,transparent 24deg,transparent 45deg,#8fc7ef0c 55deg,transparent 68deg);animation:portal-orbit 18s linear infinite}
@keyframes vault-wild-arrive{0%{transform:scale(.75) rotate(-16deg)}65%{transform:scale(1.12) rotate(5deg)}100%{transform:none}}
@keyframes crystal-wild-arrive{0%{transform:scale(.65,.9) translateY(-6px)}65%{transform:scale(1.13,.94)}100%{transform:none}}
@keyframes bonus-arrive{0%{transform:scale(.6) rotate(-9deg)}55%{transform:scale(1.13)}100%{transform:none}}
@keyframes wild-activate{50%{transform:scale(1.085)}}
@keyframes portal-awake{50%{transform:scale(1.1) rotate(4deg)}}
@keyframes anticipation-light{to{opacity:.08}}
@keyframes last-spin-pulse{50%{transform:scale(1.15)}}
@keyframes scene-reveal{0%{opacity:0;transform:scale(.4)}25%{opacity:.75}100%{opacity:0;transform:scale(1.35)}}
@keyframes portal-orbit{to{transform:rotate(360deg)}}
@keyframes vault-door-left{0%,15%{transform:none;opacity:1}100%{transform:rotateY(-105deg);opacity:0}}
@keyframes vault-door-right{0%,15%{transform:none;opacity:1}100%{transform:rotateY(105deg);opacity:0}}
@keyframes crystal-door-left{0%,10%{transform:none;opacity:1}100%{transform:translateX(-65px) rotate(-28deg) scale(.35);opacity:0}}
@keyframes crystal-door-right{0%,10%{transform:none;opacity:1}100%{transform:translateX(65px) rotate(28deg) scale(.35);opacity:0}}
@media(max-width:760px){html[data-app-view] .studio .line-detail{font-size:6px;letter-spacing:.5px}.studio .feature-visual{width:210px;height:185px}.studio .feature-visual .feature-art{left:17px;top:3px;width:176px;height:176px}html[data-design] .studio #win-dialog{padding:23px 20px}.studio #win-title{font-size:28px}.studio .win-art{width:135px;height:135px}.studio .win-value{min-height:64px}.studio .win-value strong{font-size:55px}.studio #win-result{font-size:10px}}
@media(max-height:680px){html[data-design] .studio #feature-dialog,html[data-design] .studio #win-dialog{padding:20px}.studio .feature-visual{height:150px;width:185px}.studio .feature-visual .feature-art{left:17px;width:150px;height:150px}.studio .feature-portal{inset:8px 30px}.studio #feature-title,.studio #win-title{font-size:27px;margin:9px 0}.studio .feature-value{font-size:39px}.studio #feature-description{font-size:11px}.studio .win-art{width:105px;height:105px}.studio .win-value strong{font-size:49px}.studio .win-value{min-height:55px}}
@media(prefers-reduced-motion:reduce){html[data-app-view] .studio *{animation:none;transition:none}.studio .feature-intro[open] .feature-door{display:none}.studio .feature-enter .machine::after{display:none}}

.studio .bonus-heading>div{display:flex;flex-direction:column;gap:3px}
@media(min-width:761px){html[data-app-view] .studio .bonus-active .machine{height:clamp(210px,calc(100svh - 425px),460px)}}
html.in-bonus .studio .machine::before{background-image:linear-gradient(#08111ba8,#091523bb),var(--feature-scene);background-size:cover;background-position:center;opacity:.55}

.studio .win-skip-space{height:35px}
/* Decorative transforms must not enlarge the dialog's scrollable area. */
.studio .win-rays,.studio .feature-halo{inset:0;border-radius:inherit;overflow:clip;contain:paint;animation:none;background:none}
.studio .win-rays::before,.studio .feature-halo::before{content:'';position:absolute;inset:-35%;background:conic-gradient(from 0deg,transparent 0deg,#e5cd8b12 12deg,transparent 24deg,transparent 45deg,#8fc7ef0c 55deg,transparent 68deg);animation:portal-orbit 18s linear infinite}
.studio .feature-visual{overflow:clip;contain:paint}

/* Bonus state is visible during a spin and after reopening either game. */
.studio .bonus-mechanic{margin-left:auto;flex:none;border:1px solid #d4b67580;border-radius:6px;padding:5px 8px;color:var(--accent);font-size:11px;font-weight:600;white-space:nowrap;background:#070e1d70}
.studio .bonus-heading>strong{margin-left:8px}
.studio .bonus-progress span.current{color:var(--accent);border-color:var(--accent);background:#7cb9dd26;box-shadow:0 0 12px #8dd7f033}
html[data-design=crystal] .studio .bonus-modern .bonus-progress{display:flex;gap:4px;margin:6px 0 4px}
html[data-design=crystal] .studio .bonus-progress span{flex:1;text-align:center;padding:2px;border:1px solid #a0c8f030;border-radius:3px;background:#080e1c70;color:#bacbd9;font-size:8px;line-height:1.1;letter-spacing:0}
html[data-design=crystal] .studio .bonus-progress span.used{opacity:.35}
html[data-design=vault] .studio .reel.wild-locked{border-color:#eed28b;box-shadow:inset 0 0 0 2px #edc97860,0 0 20px #caa54924;background:radial-gradient(ellipse,#92723d44,#08101c80)}
.studio .wild-lock{position:absolute;left:50%;bottom:7px;transform:translateX(-50%);z-index:4;border:1px solid #d4b67580;border-radius:3px;padding:3px 6px;background:#08101ce8;color:#f2d795;font-size:7px;letter-spacing:1px;white-space:nowrap;pointer-events:none}
.studio .wild-locked .symbol-tag{display:none}
.studio .wild-capture{animation:wild-captured .65s ease-out}
.studio #feature-rule{font-size:12px;line-height:1.55;color:var(--accent);margin:0 auto 15px;max-width:330px}
@keyframes wild-captured{30%{box-shadow:inset 0 0 0 3px #fff2c1,0 0 35px #f2cf7999}100%{box-shadow:inset 0 0 0 2px #edc97860,0 0 20px #caa54924}}
@media(max-width:760px){.studio .bonus-mechanic{font-size:9px;padding:4px 6px}.studio .wild-lock{font-size:5px;letter-spacing:.4px;bottom:4px;padding:2px 4px}.studio #feature-rule{font-size:11px;margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.studio .wild-capture{animation:none}}

.studio .bonus-tour-open{min-height:30px;padding:6px 10px;border:1px solid #c3ac6a66;border-radius:6px;background:#dac8870a;color:var(--accent);font-size:10px;white-space:nowrap}
.studio .tour-label-short{display:none}
.studio .card-copy .card-tour-button{width:100%;margin-top:7px;border:1px solid #ffffff1c;background:transparent;color:#c7d5de;box-shadow:none;font-size:10px;min-height:32px;padding:7px}
@media(max-width:760px){.studio .tour-label-long{display:none}.studio .tour-label-short{display:inline}.studio .game-heading-actions .feedback-mini{display:none}.studio .bonus-tour-open{padding:5px 9px;font-size:9px;min-height:28px}}
.studio .reel.cascade-away{animation:cascade-clear .43s ease-in forwards;box-shadow:inset 0 0 25px #ff8c4c88}.studio .reel.cascade-fall{animation:cascade-fall .34s cubic-bezier(.2,.7,.2,1)}
@keyframes cascade-clear{0%,30%{transform:scale(1);opacity:1}100%{transform:scale(.35);opacity:0}}
@keyframes cascade-fall{from{transform:translateY(-30%);opacity:.15}to{transform:translateY(0);opacity:1}}
html[data-design=crown] .wild-lock{font-size:14px;letter-spacing:0;color:#fff0be;background:#59451c;border-color:#dbb76399}html[data-design=crown] .wild-locked{box-shadow:inset 0 0 20px #cba55c44!important}
html[data-design=aurora] .line-focus{border-color:#a7f1cf!important;box-shadow:inset 0 0 18px #78d9b644,0 0 12px #99eecf55!important}
@media(prefers-reduced-motion:reduce){.studio .reel.cascade-away,.studio .reel.cascade-fall{animation:none}}
