/* Cristal: optical-glass capsules around live, authoritative three-row results. */
body[data-room]{--crystal-metal:#e9cc92;--crystal-light:#fff2cf;--crystal-aura:#edc76b66}
body[data-room=blue]{--crystal-metal:#a6dbea;--crystal-light:#e4faff;--crystal-aura:#6bdbff66}
body[data-room]::before{background-image:linear-gradient(#03040932,#03040908 55%,#03040938),var(--room-image)}
/* Frame is a transparent photographic asset, shared by all three live reels. */
body[data-room] .reel-area,body[data-room].cinema-mode .reel-area{width:max-content;max-width:100%;padding:0 9px;margin:0 auto}
body[data-room] .reels{--row-max:145;--reel-height-factor:3.6;--reel-width-factor:3.92;--row:clamp(56px,min(24vw,calc((100svh - 390px)/3.6)),145px);width:calc(var(--row)*3.92);max-width:100%;gap:calc(var(--row)*.1);overflow:visible;margin:auto}
body[data-room] .reels .reel{height:calc(var(--row)*3.6);padding:calc(var(--row)*.35) 0 calc(var(--row)*.25);grid-template-rows:repeat(3,var(--row));border-radius:48% / 10%;clip-path:none;isolation:isolate;overflow:hidden;contain:paint;background:transparent!important;box-shadow:none!important}
body[data-room] .reels .reel::before{display:block!important;content:''!important;position:absolute;inset:7% 8%;z-index:0;pointer-events:none;border:0;border-radius:44% / 9%;background:linear-gradient(90deg,#d9e8ef13,transparent 17%,#00000012 50%,transparent 84%,#e4f4ff12);box-shadow:none}
body[data-room] .reels .reel::after{display:block!important;content:''!important;position:absolute;inset:0;z-index:5;pointer-events:none;border:0;border-radius:0;background:url('crystal-capsule-v701.png') center / 100% 100% no-repeat;box-shadow:none}
body[data-room] .reels .reel>.reel-strip{position:absolute;left:0;top:0;width:100%}
body[data-room] .reels .symbol,body[data-room] .reels .strip-cell{padding:0;z-index:2}
body[data-room] .reels .symbol .symbol-art,body[data-room] .reels .strip-cell .symbol-art{width:calc(var(--row)*.91);height:calc(var(--row)*.91);max-width:78%;mix-blend-mode:normal;transform:none}
body[data-room] .reels .symbol .symbol-art>canvas,body[data-room] .reels .strip-cell .symbol-art>canvas{width:100%;height:100%}
body[data-room] .reels .symbol.adjacent{opacity:1;transform:none;filter:none}
body[data-room] .reels .symbol.center{cursor:zoom-in}
/* Accessible names remain on the buttons; only the five lights sit below the jewel. */
body[data-room] .reels .symbol.center small{position:absolute;width:1px;height:1px;min-height:0;overflow:hidden;clip-path:inset(50%);padding:0;white-space:nowrap}
.evolution-dots{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:5px;height:5px;pointer-events:none}
.evolution-dots i{width:5px;height:5px;border:1px solid #d1bd8d99;border-radius:50%}
.evolution-dots i.lit{background:var(--crystal-metal);border-color:var(--crystal-light);box-shadow:0 0 5px var(--crystal-aura)}
body[data-room] .reels::after{content:'';position:absolute;pointer-events:none;left:-3px;right:-3px;top:calc(var(--row)*1.85);height:1px;z-index:6;background:linear-gradient(90deg,transparent,var(--crystal-metal) 4%,#fff3d470 35%,var(--crystal-metal) 96%,transparent);box-shadow:0 0 5px var(--crystal-aura);opacity:.9}
body[data-room] .reels.spinning::after{opacity:.2}
body[data-room] .reel-line-note{margin-top:3px;color:var(--crystal-light);letter-spacing:.07em}
.resonance-links{position:absolute;inset:16px 10px;width:calc(100% - 20px);height:calc(100% - 32px);z-index:7;overflow:visible;pointer-events:none}
.resonance-links polyline{fill:none;stroke:var(--crystal-light);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:700;animation:resonance-link 800ms ease-out both;filter:drop-shadow(0 0 3px var(--crystal-metal))}
body[data-room] .reels .symbol.is-resonant{opacity:1}
body[data-room] .reels .symbol.is-resonant .symbol-art>canvas{filter:drop-shadow(0 0 6px var(--crystal-metal));animation:resonance-light 900ms ease-out 2}
body[data-room] .has-resonance .reel-line-note{color:#fff5da}
body[data-room] .controls{border:1px solid #e5c98988;background:linear-gradient(120deg,#ffffff0b,#10110e8c 60%,#a280370b);box-shadow:inset 0 1px 0 #fff2d559,0 8px 24px #0003}
body[data-room] .controls::before{border-color:#fff0c514}
body[data-room] .controls>.spin{width:min(100%,92px);min-height:0;aspect-ratio:1;justify-self:center;align-self:center;border-radius:50%;padding:4px;font-size:17px;letter-spacing:.1em;border:2px solid #fff0cc;background:radial-gradient(circle at 34% 25%,#fff5d5b0,transparent 54%),repeating-conic-gradient(from 15deg,#fff9e215 0deg .6deg,#ae79340a .7deg 1.5deg),conic-gradient(from 25deg,#c7a05e,#f9e0ac,#b28649,#f3dca8,#d0ab6c,#fff0c7,#c7a05e);box-shadow:inset 0 0 0 3px #89653766,inset 0 0 0 5px #f9e4b8c9,0 0 0 3px #70572f9c,0 0 0 4px #f3d9a35c,0 6px 13px #0006}
body[data-room] .bet-chips button{background:#11130f35;border-color:#d5b98766;border-radius:8px}
body[data-room] .bet-chips button[aria-pressed=true]{background:linear-gradient(130deg,#edd7a5,#ba965a);color:#292216}
body[data-room] #result-detail{max-width:100%;overflow-wrap:anywhere}
body[data-room] .fx-host.fx-signature.fx-evolve .fx-card{max-width:88%;padding:14px 18px 10px;border-radius:20px}
.resonance-paytable{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:12px 0}
.resonance-paytable span{padding:8px 3px;border:1px solid #e6cda344;border-radius:8px;text-align:center;font-size:12px}
.resonance-paytable b{display:block;font-size:19px;color:#f6dfa7}
@keyframes resonance-link{from{stroke-dashoffset:700;opacity:0}to{stroke-dashoffset:0;opacity:.75}}
@keyframes resonance-light{0%,100%{filter:drop-shadow(0 0 3px var(--crystal-metal))}45%{filter:drop-shadow(0 0 10px var(--crystal-light))}}
@media(max-width:650px){
 body[data-room] .reels{--row-max:120;}
 body[data-room] .reel-area,body[data-room].cinema-mode .reel-area{padding-left:7px;padding-right:7px}
 body[data-room] .reels .symbol.center small{font-size:8px;letter-spacing:0}
 body[data-room] .controls>.spin{width:min(100%,78px);font-size:15px}
 body[data-room] .resonance-links{left:5px;right:5px;width:calc(100% - 10px)}
 body[data-room] .reel-line-note{font-size:8px;letter-spacing:.025em}
 body[data-room] .result{min-height:50px}
 body[data-room] #result-detail{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.resonance-links polyline,body[data-room] .reels .symbol.is-resonant .symbol-art>canvas{animation:none}}
body[data-motion=calm] .resonance-links polyline,body[data-motion=calm] .reels .symbol.is-resonant .symbol-art>canvas{animation:none}

/* A restrained central console matches the scale of the glass instrument. */
body[data-room] .controls{max-width:680px;margin-left:auto;margin-right:auto}
body[data-room] .reels::before{content:'';position:absolute;left:-5px;right:-5px;top:calc(var(--row)*1.85 - 4px);height:9px;z-index:7;pointer-events:none;background:linear-gradient(45deg,transparent 36%,#fff1c5 38% 47%,transparent 49%) left center/9px 9px no-repeat,linear-gradient(225deg,transparent 36%,#fff1c5 38% 47%,transparent 49%) right center/9px 9px no-repeat;filter:drop-shadow(0 0 3px #efbd65)}
body[data-room] .resonance-links{inset:9.7222% 9px 6.9444%;width:calc(100% - 18px);height:83.3333%}
@media(max-width:650px){body[data-room] .resonance-links{left:7px;right:7px;width:calc(100% - 14px)}}

/* 7.0.2: the glass instrument gets the screen; controls form a compact rail. */
body[data-room] .topbar{height:28px;min-height:28px}
body[data-room] .topbar .version-button,body[data-room] .utility-menu>summary{min-height:28px;padding:2px 0}
body[data-room] #game-title{font-size:30px;line-height:1}
body[data-room] #game-title span{font-size:8px;margin-top:2px;line-height:1.1}
body[data-room] .room-switch{margin:0 auto 3px;padding:1px}
body[data-room] .room-switch button{min-height:30px;padding:3px 14px;font-size:10px}
body[data-room] .reels{--row-max:210;--row:clamp(56px,min(24vw,calc((100svh - 245px)/3.6)),210px)}
body[data-room] .reels .symbol .symbol-art,body[data-room] .reels .strip-cell .symbol-art{width:calc(var(--row)*.98);height:calc(var(--row)*.98);max-width:80%}
body[data-room] .reels .symbol.center .symbol-art{transform:translateY(-3%)}
body[data-room] .result{min-height:32px;margin:0 0 3px;padding:0;gap:0}
body[data-room] #result-title,body[data-room] .result.win #result-title{font-size:17px;line-height:1.15}
body[data-room] #result-detail{font-size:10px;line-height:1.2}
body[data-room] #result-kicker:empty{display:none}
body[data-room] .controls{width:min(600px,100%);max-width:600px;min-height:0;padding:5px 12px;gap:6px 12px;grid-template-columns:1fr 1fr 1fr 52px;grid-template-areas:'balance stake bets spin';border-radius:12px}
body[data-room] .controls>.spin{width:46px;height:46px;min-height:46px;max-height:46px;aspect-ratio:1;align-self:center;padding:0;font-size:11px;letter-spacing:.04em}
body[data-room] .controls>.metric{padding-right:8px}
body[data-room] .controls .metric strong{font-size:22px;line-height:1;padding:0}
body[data-room] .controls .metric>span,body[data-room] .controls .stake-control label{font-size:9px;line-height:1.15}
body[data-room] .controls .metric .metric-note{font-size:7px;line-height:1.1}
body[data-room] .stake-heading{min-height:10px}
body[data-room] .stake-input-wrap{margin-top:1px;padding:0 5px}
body[data-room] .stake-input-wrap input{height:28px;font-size:22px}
body[data-room] .bet-chips button{min-height:32px;padding:2px;font-size:14px}
body[data-room] .payout-shelf{max-width:560px;margin:3px auto 0}
body[data-room] .payout-shelf .symbol-legend{padding:0;gap:0}
body[data-room] .payout-shelf .legend-item{display:grid;grid-template-columns:20px auto;grid-template-rows:12px 12px;column-gap:4px;padding:0 8px;flex:1}
body[data-room] .payout-shelf .legend-item .symbol-art{width:22px;height:22px;grid-row:1 / 3;grid-column:1}
body[data-room] .payout-shelf .legend-item>span:not(.symbol-art){font-size:9px;grid-column:2;white-space:nowrap}
body[data-room] .payout-shelf .legend-item b{font-size:10px;grid-column:2}
body[data-room] .console-bottom,body[data-room] .payout-shelf+.console-bottom{padding:0;gap:0 12px}
body[data-room] .game-options>summary,body[data-room] .session-drawer>summary,body[data-room] .console-bottom>.text-btn{min-height:28px;padding:0 2px;font-size:12px}
body[data-room] .console-bottom .arena-footer{min-height:12px;font-size:8px;line-height:1.2}
@media(max-width:650px){
 body[data-room] .reels{--row-max:160}
 body[data-room] .topbar{height:32px;min-height:32px}
 body[data-room] .room-switch button{min-height:32px}
 body[data-room] .controls{grid-template-columns:1fr 1fr 50px;grid-template-areas:'balance stake spin' 'bets bets spin';padding:5px 8px;gap:3px 7px}
 body[data-room] .controls>.spin{width:44px;height:44px;min-height:44px;max-height:44px;font-size:10px}
 body[data-room] .bet-chips button{min-height:30px}
 body[data-room] .payout-shelf .legend-item{grid-template-columns:16px auto;column-gap:2px;padding:0 2px}
 body[data-room] .payout-shelf .legend-item .symbol-art{width:17px;height:17px}
 body[data-room] .payout-shelf .legend-item>span:not(.symbol-art){font-size:7px}
 body[data-room] .payout-shelf .legend-item b{font-size:9px}
 body[data-room] .game-options>summary,body[data-room] .session-drawer>summary,body[data-room] .console-bottom>.text-btn{min-height:32px;font-size:11px}
 body[data-room] .console-bottom{gap:0 8px}
}

/* 7.0.3: stationary glass aperture. The moving strip never clips its own moving bounds. */
body[data-room] .reels .reel-motion-window{position:absolute;inset:0;z-index:2;overflow:hidden;clip-path:inset(10% 10% 9% 10% round 18% / 5%);-webkit-clip-path:inset(10% 10% 9% 10% round 18% / 5%);isolation:isolate;contain:paint}
body[data-room] .reels .reel-motion-window>.reel-strip{position:absolute;left:0;top:0;width:100%;will-change:transform}
body[data-room] .reels .reel::after{filter:brightness(.91) saturate(.79);}
body[data-room] .reels .reel::before{background:linear-gradient(90deg,#e2f3ff12,transparent 19%,#080a1008 50%,transparent 82%,#e7f5ff15);box-shadow:inset 5px 0 12px #b9d8ff10,inset -4px 0 8px #ffffff08}
body[data-room=gold]{--room-image:url('room-gold-v703.webp')}
body[data-room]::before{background-image:radial-gradient(ellipse at 50% 44%,transparent 20%,#02030838 80%),var(--room-image);background-position:center;background-size:cover}
body[data-room] .reel-area{filter:drop-shadow(0 12px 10px #0006)}
body[data-room] .controls{background:linear-gradient(120deg,#171813b8,#070b0dd9);border-color:#c8ac7666;box-shadow:inset 0 1px 0 #ffe4a728,0 6px 18px #0005}
body[data-room] .reels .symbol .symbol-art{filter:drop-shadow(0 3px 4px #0007)}

/* 7.0.4 — reflected salons, a wider glass vessel and a single precise payline. */
body[data-room=gold]{--room-image:url('room-gold-v704.webp')}
body[data-room=red]{--room-image:url('room-red-v704.webp');--room-edge:#efa291;--room-glow:#df405944;--crystal-metal:#edb09b;--crystal-light:#ffeedb;--crystal-aura:#ef758166}
body[data-room=red] .room-switch button[aria-pressed=true]{background:linear-gradient(135deg,#c8636544,#a3213522);border-color:#e6a09299;color:#ffe9e1}
.room-switch #room-red::before{background:#e95a70;box-shadow:0 0 9px #ef405980}
body[data-room] .reels{--reel-width-factor:4.4;width:calc(var(--row)*4.4);gap:calc(var(--row)*.13)}
body[data-room] .reels .symbol .symbol-art,body[data-room] .reels .strip-cell .symbol-art{width:calc(var(--row)*.89);height:calc(var(--row)*.89);max-width:76%}
body[data-room] .reels .reel::before{inset:8% 8%;z-index:3;background:linear-gradient(96deg,transparent 5%,#eef8ff17 9%,transparent 14%,transparent 78%,#fff5df13 84%,transparent 91%);box-shadow:inset 2px 0 3px #f0faff26,inset -2px 0 4px #fff2d71c;pointer-events:none}
body[data-room] .reels .reel::after{filter:brightness(.96) saturate(.7)}
body[data-room] .reels::before,body[data-room] .reels::after{content:none!important;display:none!important}
body[data-room] .reel-area>.crystal-payline{position:absolute;left:1px;right:1px;top:51.3889%;height:8px;transform:translateY(-50%);display:flex;align-items:center;z-index:8;pointer-events:none;filter:drop-shadow(0 0 3px var(--crystal-aura))}
.crystal-payline span{height:1px;flex:1;background:linear-gradient(90deg,var(--crystal-metal),#fff9eaa6 20%,#fff9ea55 50%,#fff9eaa6 80%,var(--crystal-metal))}
.crystal-payline i{width:6px;height:6px;flex:none;transform:rotate(45deg);border:1px solid var(--crystal-light);background:#eac78929;box-shadow:0 0 4px var(--crystal-aura)}
.dual-game-note{text-align:center;margin:3px 0 0;color:#d9cbb5;font-size:9px;line-height:1.35}
.dual-game-note p{margin:0}.dual-game-note b{font-weight:600;color:var(--crystal-light)}
.dual-game-note .dual-game-title{font:400 10px/1.6 Georgia,serif;letter-spacing:.26em;color:var(--crystal-metal)}
.dual-game-note span{padding:0 8px;color:var(--crystal-metal)}
.resonance-mini{text-align:center;margin:3px auto 0;font:400 9px/1.4 'Manrope',sans-serif;color:#d0c2ac}
.resonance-mini b{font-weight:600;color:var(--crystal-metal)}
.resonance-mini span{margin-left:9px;color:#b7ab98}
@media(max-width:650px){
 body[data-room] .reels{--reel-width-factor:4.15;width:calc(var(--row)*4.15);gap:calc(var(--row)*.1)}
 body[data-room] .room-switch button{padding-left:10px;padding-right:10px;font-size:10px}
 .dual-game-note{font-size:8px}.dual-game-note span{padding:0 3px}
 .resonance-mini{font-size:8px}.resonance-mini span{display:block;margin-left:0}
}

/* 7.0.5: optical depth and four distinct room identities. */
body[data-room=red]{--room-image:url('room-red-v705.webp');--jewel-hue:325deg}
body[data-room=blue]{--jewel-hue:18deg}
body[data-room=abyss]{--room-image:url('room-abyss-v705.webp');--room-edge:#8df6db;--crystal-metal:#9ce5da;--crystal-light:#e8fff6;--crystal-aura:#65e8f977;--jewel-hue:45deg}
body[data-room=gold]{--jewel-hue:0deg}
.room-switch #room-abyss::before{background:#78f0cf;box-shadow:0 0 8px #56e3bb88}
body[data-room=abyss] .room-switch button[aria-pressed=true]{background:#3fe4c524;border-color:#83f1d0;color:#e1fff7}
body[data-room] .reels .symbol .symbol-art,body[data-room] .reels .strip-cell .symbol-art,body[data-room] .payout-shelf .symbol-art{filter:hue-rotate(var(--jewel-hue)) drop-shadow(0 3px 4px #0007)}
body[data-room] .reels .reel{background:linear-gradient(100deg,transparent 8%,#e7f5ff15 13%,transparent 20%,transparent 64%,#edfbff10 70%,transparent 79%),radial-gradient(ellipse at 30% 35%,#cbe4f811,transparent 65%)!important}
body[data-room] .reels .reel::before{z-index:3;background:linear-gradient(96deg,transparent 9%,#f0f8ff32 12%,transparent 16%,transparent 77%,#fff2d926 82%,transparent 88%);box-shadow:inset 4px 0 7px #dbeeff26,inset -3px 0 5px #ffffff1a;opacity:.85}
body[data-room] .reel-area>.crystal-payline{height:12px;filter:drop-shadow(0 0 3px var(--crystal-metal)) drop-shadow(0 0 7px var(--crystal-aura))}
.crystal-payline span{height:2px;background:linear-gradient(90deg,var(--crystal-metal),#fffbed 23%,var(--crystal-light) 50%,#fffbed 77%,var(--crystal-metal));box-shadow:0 1px 0 #0003,0 0 5px var(--crystal-aura)}
.crystal-payline i{width:8px;height:8px;border:1px solid var(--crystal-light);background:radial-gradient(#fff8db,var(--crystal-metal) 30%,transparent 70%);box-shadow:0 0 0 2px #d6c4a42a,0 0 9px var(--crystal-aura)}
.resonance-links path{fill:none;stroke:var(--crystal-light);stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:1200;animation:resonance-trace 1s ease-out both;filter:drop-shadow(0 0 3px var(--crystal-metal))}
.resonance-links circle{fill:#fff9e522;stroke:var(--crystal-light);stroke-width:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px var(--crystal-metal))}
@keyframes resonance-trace{from{stroke-dashoffset:1200;opacity:0}to{stroke-dashoffset:0;opacity:.9}}
.resonance-mini button{margin-left:8px;border:1px solid #d7c09266;border-radius:12px;padding:2px 8px;background:#111b;color:var(--crystal-light);font:inherit;min-height:28px;cursor:pointer}
#resonance-heading{scroll-margin:16px}
.abyss-life{display:none;position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
body[data-room=abyss] .abyss-life{display:block}
.jelly{position:absolute;width:60px;height:42px;border-radius:60% 60% 35% 35%;border:1px solid #bcfff577;background:radial-gradient(ellipse at 50% 12%,#b8fff566,#5adaeb11 65%,#befff633);box-shadow:inset 0 -3px 8px #adfff344,0 0 25px #58ddda22;animation:jelly-drift 22s ease-in-out infinite alternate}
.jelly i{position:absolute;top:88%;width:18%;height:70px;border-left:1px solid #a5ffef80;border-radius:45%;left:26%;transform-origin:top;animation:jelly-tentacle 4s ease-in-out infinite alternate}
.jelly i:nth-child(2){left:47%;height:90px;animation-delay:-2s}.jelly i:nth-child(3){left:68%;height:65px;animation-delay:-1s}
.j1{left:7%;top:22%}.j2{right:8%;top:50%;width:85px;height:56px;animation-delay:-9s}.j3{left:19%;top:73%;width:34px;height:25px;opacity:.55;animation-delay:-15s}.j4{right:21%;top:12%;width:40px;height:28px;opacity:.6;animation-delay:-5s}
@keyframes jelly-drift{from{transform:translate3d(-18px,42px,0) rotate(-7deg)}to{transform:translate3d(35px,-70px,0) rotate(8deg)}}
@keyframes jelly-tentacle{from{transform:skewX(-12deg)}to{transform:skewX(14deg)}}
@media(max-width:650px){body[data-room] .room-switch button{font-size:9px;padding:3px 8px;gap:5px}.jelly{opacity:.35}.j2{right:2%}.j1{left:1%}.resonance-mini button{min-height:30px}.dual-game-note{font-size:7.5px}}
@media(prefers-reduced-motion:reduce){.jelly,.jelly i,.resonance-links path{animation:none!important}}
body[data-motion=calm] .jelly,body[data-motion=calm] .jelly i,body[data-motion=calm] .resonance-links path{animation:none!important}

/* 7.0.6: one consistent resting/moving geometry, crystal glazing and compact console. */
body[data-room] .reels .symbol.center .symbol-art{transform:none;transition:none}
body[data-room] .reels .symbol .symbol-art,body[data-room] .reels .strip-cell .symbol-art{transition:none}
body[data-room] .reels .reel::after{background-image:url('crystal-capsule-v706.webp');background-size:190% 100%;filter:brightness(.95) saturate(.8)}
body[data-room] .reels .reel::before{opacity:.45}
body[data-room] .reels{--reel-width-factor:4.05;width:calc(var(--row)*4.05);gap:calc(var(--row)*.1)}
body[data-room] .result{height:36px;min-height:36px;max-height:36px;overflow:auto}
.resonance-mini{display:none}
.dual-game-title button{border:1px solid #d6bf8766;border-radius:10px;background:#121713aa;color:var(--crystal-light);font:10px 'Manrope',sans-serif;letter-spacing:0;padding:2px 8px;margin-left:8px;min-height:24px}
.dual-game-note{margin:0;line-height:1.2}
body[data-room] .controls{border-radius:16px;padding:7px 14px;background:linear-gradient(115deg,#29261dea,#101416f5 40%,#1b201af0);border:1px solid #d5bd898c;box-shadow:inset 0 1px 0 #fff2d36b,inset 0 -1px 0 #b6995944,0 6px 22px #0007}
body[data-room] .controls::before{border:1px solid #fff5d518;border-radius:12px}
body[data-room] .controls .metric strong,body[data-room] .stake-input-wrap input{font-family:Georgia,serif;font-variant-numeric:tabular-nums;letter-spacing:.025em;color:#fff3d6;text-shadow:0 1px 6px #e5be6b22}
body[data-room] .stake-input-wrap{background:linear-gradient(#040707aa,#181a1680);border-color:#d5bd8966;box-shadow:inset 0 2px 5px #0005;border-radius:8px}
body[data-room] .controls>.spin{background:radial-gradient(circle at 32% 25%,#fff9e1,#ebd09a 40%,#b18a45 75%,#e5c88c);border-color:#f8e4b6;box-shadow:inset 0 0 0 3px #8f6b3980,inset 0 0 0 4px #fff4ca,0 0 0 2px #b28e5280,0 3px 9px #0007;font-weight:600}
.crystal-payline span{height:1px;background:linear-gradient(90deg,#eaca8499,#fffef0 18%,#f8e4b9aa 50%,#fffef0 82%,#eaca8499);box-shadow:0 0 2px #fff8dc,0 0 8px var(--crystal-aura)}
.crystal-payline i{width:7px;height:7px;background:#fff6d050;box-shadow:inset 0 0 2px #fff,0 0 7px var(--crystal-aura)}
/* Same cover geometry as the 1672 x 941 underwater background. Clip includes tentacles. */
body[data-room=abyss] .abyss-life{display:block;inset:auto;left:50%;top:50%;width:max(100vw,177.6833vh);height:max(100vh,56.2799vw);transform:translate(-50%,-50%);overflow:hidden;z-index:-1;clip-path:polygon(7% 5%,93% 5%,95% 68%,5% 68%)}
.water-fauna{position:absolute;inset:0}
.marine{position:absolute;width:4%;aspect-ratio:0.3;background:url('jelly-species-v706.webp') 0 0/500% 100% no-repeat;opacity:.78;animation:marine-drift 18s ease-in-out infinite alternate;filter:drop-shadow(0 0 4px #78dcff20)}
.marine.moon{left:12%;top:13%;background-position:0% 0}
.marine.nettle{left:23%;top:26%;background-position:25% 0;animation-delay:-5s;width:3.5%}
.marine.purple{left:78%;top:12%;background-position:50% 0;animation-delay:-11s}
.marine.spotted{left:87%;top:36%;background-position:75% 0;animation-delay:-8s;width:3%}
.marine.yolk{left:69%;top:39%;background-position:100% 0;animation-delay:-3s;width:3.3%}
@keyframes marine-drift{from{transform:translate(0,8px) rotate(-4deg)}to{transform:translate(18px,-20px) rotate(4deg)}}
.room-atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;display:none}
body[data-room=red] .room-atmosphere,body[data-room=blue] .room-atmosphere{display:block}
body[data-room=red] .room-atmosphere i{position:absolute;left:10%;bottom:25%;width:3px;height:3px;border-radius:50%;background:#ffb768;box-shadow:0 0 12px 3px #e3451766;animation:ember-rise 9s linear infinite}
body[data-room=red] .room-atmosphere i:nth-child(2){left:88%;animation-delay:-3s}body[data-room=red] .room-atmosphere i:nth-child(3){left:19%;animation-delay:-6s}body[data-room=red] .room-atmosphere i:nth-child(4){left:79%;animation-delay:-1s}body[data-room=red] .room-atmosphere i:nth-child(5){left:93%;animation-delay:-7s}
@keyframes ember-rise{0%{transform:translate(0,20px);opacity:0}20%,75%{opacity:.8}100%{transform:translate(35px,-220px);opacity:0}}
body[data-room=blue] .room-atmosphere::before{content:'';position:absolute;left:-10%;right:-10%;top:0;height:35%;background:repeating-linear-gradient(110deg,transparent 0 8%,#78dfcf10 11%,#859cf020 14%,transparent 20%);filter:blur(16px);transform-origin:top;animation:aurora-drift 20s ease-in-out infinite alternate}
@keyframes aurora-drift{from{transform:skewX(-12deg) translateX(-3%);opacity:.45}to{transform:skewX(12deg) translateX(3%);opacity:.85}}
@media(max-width:650px){body[data-room] .reels{--reel-width-factor:3.92;width:calc(var(--row)*3.92)}body[data-room] .controls{padding:5px 8px}.marine.moon{left:38%;top:8%}.marine.nettle{left:44%;top:30%}.marine.purple{left:57%;top:13%}.marine.spotted{left:62%;top:43%}.marine.yolk{left:36%;top:44%}}
@media(prefers-reduced-motion:reduce){.marine,.room-atmosphere i,.room-atmosphere::before{animation:none!important}}
body[data-motion=calm] .marine,body[data-motion=calm] .room-atmosphere i,body[data-motion=calm] .room-atmosphere::before{animation:none!important}
/* Keep the final lower jewel fully visible in both the moving and resting states. */
body[data-room] .reels .reel-motion-window{clip-path:inset(10% 10% 7% 10% round 18% / 5%);-webkit-clip-path:inset(10% 10% 7% 10% round 18% / 5%)}

/* 8.0 — Atelier console. All sizing of the approved crystal vessels is retained. */
body[data-room] .atelier-console{
 --console-accent:var(--crystal-metal);isolation:isolate;width:min(660px,100%);max-width:660px;
 grid-template-columns:minmax(110px,1.1fr) minmax(105px,1fr) minmax(115px,1fr) 58px;
 grid-template-areas:'balance stake bets spin';gap:10px;align-items:center;
 padding:8px 12px;border:1px solid #cfb68570;border-radius:18px;
 background:linear-gradient(115deg,#ffffff0d,transparent 32% 68%,#ffffff08),linear-gradient(180deg,#252827f5,#101416fa 55%,#171c1afa);
 box-shadow:inset 0 1px 0 #fff8db66,inset 0 -2px 0 #0009,0 0 0 3px #090e0d50,0 8px 22px #0008;
}
body[data-room] .atelier-console::before{inset:3px;border:1px solid #d3c5a41c;border-radius:14px;pointer-events:none;z-index:-1}
body[data-room] .atelier-console::after{content:'';position:absolute;left:15%;right:15%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--console-accent),#fff9e6,var(--console-accent),transparent);pointer-events:none}
body[data-room] .atelier-console>.metric{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:0 12px 0 2px;border-right:1px solid #d3c5a429;align-self:stretch}
.balance-heading{display:flex;gap:8px;align-items:center;justify-content:space-between;line-height:12px}
.balance-heading>span:first-child{font:500 8px/12px 'Manrope',sans-serif;letter-spacing:.13em;color:#d4cbb9}
body[data-room] .atelier-console .metric .metric-note{margin:0;padding:1px 5px;border:1px solid #dac7a02e;border-radius:4px;font:500 6px/9px 'Manrope',sans-serif;letter-spacing:.12em;color:#aaa99e;white-space:nowrap}
.balance-value{display:flex;align-items:baseline;gap:6px;min-width:0;line-height:1.1}
body[data-room] .atelier-console .metric strong{display:block;font-size:clamp(18px,2.2vw,25px);line-height:1.15;letter-spacing:-.025em;padding:0;margin:0;font-weight:400;color:#fff6e4;overflow-wrap:anywhere}
.balance-unit{font:400 9px/1 'Manrope',sans-serif;color:#b4ac9b}
body[data-room] .atelier-console .stake-control{min-width:0;align-self:center}
body[data-room] .atelier-console .stake-heading{min-height:12px;margin-bottom:3px}
body[data-room] .atelier-console .stake-control label{font-size:8px;letter-spacing:.13em;color:#d4cbb9}
body[data-room] .atelier-console .stake-input-wrap{margin:0;padding:0 9px;border:1px solid #a99a7655;border-radius:7px;background:linear-gradient(180deg,#050b0dc9,#1d2525aa);box-shadow:inset 0 2px 5px #0009,0 1px 0 #fff3cc12}
body[data-room] .atelier-console .stake-input-wrap input{height:30px;min-height:30px;font-size:23px;line-height:30px;font-weight:400;padding:0;letter-spacing:0}
body[data-room] .atelier-console .stake-input-wrap:focus-within{outline:1px solid var(--console-accent);outline-offset:2px}
body[data-room] .atelier-console .bet-options{min-width:0;align-self:end;padding:0 0 1px}
body[data-room] .atelier-console .bet-chips{gap:5px}
body[data-room] .atelier-console .bet-chips button{min-height:32px;border-radius:7px;border:1px solid #c5b48a33;background:linear-gradient(#ffffff08,#00000020);color:#e6dcc6;box-shadow:inset 0 1px 0 #fff4d412;font:400 14px/1 Georgia,serif}
body[data-room] .atelier-console .bet-chips button[aria-pressed=true]{color:#fcf2d6;border-color:var(--console-accent);background:linear-gradient(145deg,#d5b96e30,#ab884318);box-shadow:inset 0 1px 0 #fff4d433,0 0 8px #dbb26212}
body[data-room] .atelier-console>.spin{width:50px;height:50px;min-height:50px;max-height:50px;justify-self:end;align-self:center;padding:0;font:600 10px/1 'Manrope',sans-serif;letter-spacing:.07em;color:#372916;border:1px solid #fff2cc;
 background:radial-gradient(circle at 35% 22%,#fff9dbb3,transparent 62%),repeating-conic-gradient(from 30deg,#fff3cc10 0deg 1deg,#644e2310 2deg 3deg),conic-gradient(from 20deg,#b28a43,#f9eac2,#cfaa63,#f5dfae,#ad823d,#eacf91,#b28a43);
 box-shadow:inset 0 0 0 3px #c49c56,inset 0 0 0 4px #fff3cd,0 0 0 3px #090e0e,0 0 0 4px #c6ac7559,0 4px 9px #000a}
body[data-room] .atelier-console>.spin:not(:disabled):hover{filter:brightness(1.1)}
body[data-room] .atelier-console>.spin:active{transform:translateY(1px)}
body[data-room=blue] .atelier-console{border-color:#8abddd65;--console-accent:#a3d5f4}
body[data-room=red] .atelier-console{border-color:#d5a29065;--console-accent:#efb9a2}
body[data-room=abyss] .atelier-console{border-color:#82d6c165;--console-accent:#a2eadb;background:linear-gradient(115deg,#96eddd10,transparent 50%),linear-gradient(180deg,#14282cf5,#071519fa 55%,#0c2022fa)}
@media(max-width:650px){
 body[data-room] .atelier-console{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) 54px;grid-template-areas:'balance stake spin' 'bets bets spin';gap:4px 10px;padding:7px 10px;border-radius:15px}
 body[data-room] .atelier-console>.metric{padding-right:9px;gap:4px}
 body[data-room] .atelier-console .metric strong{font-size:22px}
 body[data-room] .atelier-console .stake-input-wrap input{height:27px;min-height:27px;font-size:21px;line-height:27px}
 body[data-room] .atelier-console .stake-heading{margin-bottom:2px}
 body[data-room] .atelier-console .bet-chips{gap:6px}
 body[data-room] .atelier-console .bet-chips button{min-height:28px;font-size:13px}
 body[data-room] .atelier-console .bet-options{padding:0;align-self:center}
 body[data-room] .atelier-console>.spin{width:46px;height:46px;min-height:46px;max-height:46px}
 .balance-heading{gap:4px}
}
/* Aquarium stage: viewport-wide routes, clipped by the actual underwater window. */
.water-fauna{inset:0 auto 0 50%;width:100vw;max-width:100%;transform:translateX(-50%);contain:layout style}
.swimmer{position:absolute;left:var(--x0);top:var(--y0);width:calc(clamp(46px,6vw,100px)*var(--size));animation:swim-route var(--duration) ease-in-out var(--delay) infinite alternate;opacity:calc(.5 + var(--size)*.35)}
.swimmer .marine{position:relative;display:block;left:auto;right:auto;top:auto;width:100%;aspect-ratio:var(--crop-width)/1024;background-image:url('jelly-atlas-v800.webp');background-repeat:no-repeat;background-size:calc(153600% / var(--crop-width)) 100%;background-position:var(--sprite-position) 0;opacity:1;animation:bell-pulse 3.8s ease-in-out var(--delay) infinite;transform-origin:50% 22%;filter:drop-shadow(0 0 5px #77d8f126);clip-path:inset(0);}
/* Unequal source bounds deliberately exclude every neighbouring animal. */
.swimmer .marine.moon{--crop-width:333;--sprite-position:0%}
.swimmer .marine.nettle{--crop-width:301;--sprite-position:26.963563%}
.swimmer .marine.purple{--crop-width:295;--sprite-position:51.168412%}
.swimmer .marine.spotted{--crop-width:281;--sprite-position:74.900398%}
.swimmer .marine.yolk{--crop-width:315;--sprite-position:100%}
@keyframes swim-route{0%{left:var(--x0);top:var(--y0);transform:rotate(-5deg)}50%{transform:rotate(4deg)}100%{left:var(--x1);top:var(--y1);transform:rotate(-3deg)}}
@keyframes bell-pulse{0%,100%{transform:scale(1,1)}35%{transform:scale(.94,1.045)}65%{transform:scale(1.035,.97)}}
.water-light{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 48% 2%,#73e8f32b,transparent 55%)}
.water-light::before{content:'';position:absolute;inset:-20% -10% 0;background:repeating-conic-gradient(from 158deg at 50% 0%,transparent 0deg 9deg,#81e1f216 10deg 12deg,transparent 14deg 23deg);filter:blur(5px);transform-origin:50% 0;animation:underwater-rays 18s ease-in-out infinite alternate}
.water-light::after{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,#b6f9f4a6 0 1px,transparent 1.7px),radial-gradient(circle,#8de5ff66 0 1px,transparent 2px);background-size:137px 173px,223px 197px;background-position:17px 11px,70px 50px;opacity:.27;animation:plankton-drift 24s linear infinite}
@keyframes underwater-rays{from{transform:rotate(-7deg) scaleX(.9);opacity:.55}to{transform:rotate(7deg) scaleX(1.12);opacity:1}}
@keyframes plankton-drift{to{background-position:154px -162px,-153px -147px}}
@media(max-width:650px){.swimmer{width:calc(62px*var(--size))}}
@media(prefers-reduced-motion:reduce){.swimmer,.swimmer .marine,.water-light::before,.water-light::after{animation:none!important}}
body[data-motion=calm] .swimmer,body[data-motion=calm] .swimmer .marine,body[data-motion=calm] .water-light::before,body[data-motion=calm] .water-light::after{animation:none!important}
body:not([data-room=abyss]) .abyss-life *{animation-play-state:paused!important}
