/* Illustrated game cabinets; actual outcomes remain server-side. */
.pack-card:has(.illustrated-poster){padding:0 0 14px;border:1px solid #5b504742;border-radius:15px;background:#12131c;box-shadow:0 8px 24px #0005;transition:transform .2s,box-shadow .2s}
.pack-card:has(.illustrated-poster):hover{transform:translateY(-5px);box-shadow:0 15px 34px #0009;border-color:#d3a269}
.illustrated-poster{position:relative;height:275px;overflow:hidden;background:#111015;border-radius:14px 14px 0 0}
.illustrated-poster img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center top}
.illustrated-poster:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 48%,#100d17d6 82%,#100d17)}
.poster-category{position:absolute;top:12px;left:12px;z-index:1;padding:6px 8px;border:1px solid #fff3;background:#0809138a;border-radius:5px;font-size:8px;letter-spacing:1px;text-transform:uppercase;color:#fceacc;backdrop-filter:blur(8px)}
.poster-title{position:absolute;z-index:1;bottom:18px;left:10px;right:10px;font:900 23px/1.05 Georgia,serif;color:#ffe6ad;text-shadow:0 3px 2px #000,0 0 20px #000;text-transform:uppercase;letter-spacing:-.4px}
.pack-card:has(.illustrated-poster)>b{margin:10px 10px 4px;font-size:12px;color:#d5c7b1}
.pack-card:has(.illustrated-poster)>small{font-size:8px}
.illustrated-hero{position:relative;overflow:hidden;min-height:275px;background:linear-gradient(100deg,#171522,#302518);padding:38px 32px}
.lobby-hero-art{position:absolute;right:0;top:0;width:62%;height:100%;overflow:hidden;opacity:.95}
.lobby-hero-art img{width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;top:0}
.lobby-hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#171522,transparent 70%)}
.illustrated-hero>:not(.lobby-hero-art){position:relative;z-index:1;max-width:52%}
.illustrated-hero h1{font:800 36px/1.05 Georgia,serif;text-shadow:0 3px 14px #000}
.illustrated-hero p{line-height:1.5;color:#d9c7aa}
.illustrated-game{position:relative;isolation:isolate;overflow:hidden;padding:0 40px 22px;border:1px solid #b98b4c5e;background:#0f0c12;border-radius:20px;box-shadow:0 25px 80px #0009}
.illustrated-game>#gametitle,.illustrated-game>#gamehint{display:none}
.theatre-backdrop{position:absolute;inset:0;overflow:hidden;z-index:-2;pointer-events:none}
.theatre-backdrop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.theatre-backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(#0002 5%,#08081055 35%,#08080ae8 84%)}
.cabinet-head{position:relative;min-height:180px}
.theatre-toolbar{display:flex;gap:8px;justify-content:flex-end;padding:15px 0}
.theatre-toolbar button{border:1px solid #efd7a144;background:#0b0c16bb;backdrop-filter:blur(9px);color:#f1e5ce;border-radius:7px;padding:9px 13px;font-size:11px;cursor:pointer}
.theatre-toolbar button:first-child{margin-right:auto}
.illustrated-game-title{text-align:center;display:grid;gap:5px;margin:3px 0 22px;filter:drop-shadow(0 3px 5px #000)}
.illustrated-game-title small{font:700 11px/1.2 -apple-system,sans-serif;letter-spacing:5px;text-transform:uppercase;color:#e9d5a8}
.illustrated-game-title strong{font:900 clamp(28px,4vw,47px)/1.1 Georgia,serif;color:#ffe0a5;letter-spacing:1px;text-transform:uppercase;text-shadow:1px 1px #3c2210,-1px -1px #fff4,0 4px 0 #452b14,0 8px 20px #000}
.illustrated-game-title>span{font-size:9px;letter-spacing:2px;color:#d6b88a;text-transform:uppercase}
.reel-window{position:relative;padding:11px;background:linear-gradient(145deg,#bc8b42,#38220e 25%,#e8c781 50%,#4e2c10 74%,#b08d53);border:2px solid #e9c67988;border-radius:10px;box-shadow:0 0 0 5px #1e170f,inset 0 0 20px #000,0 18px 35px #0009}
.reel-window:before,.reel-window:after{content:'';position:absolute;top:-10px;bottom:-10px;width:18px;background:repeating-linear-gradient(90deg,#c99e5e,#61441d 3px,#f0d69b 5px,#70502a 8px);border-radius:6px;box-shadow:0 0 9px #000}
.reel-window:before{left:-23px}.reel-window:after{right:-23px}
.illustrated-game .slot-grid{position:relative;gap:0;padding:0;border:0;border-radius:3px;background:#100d13;box-shadow:inset 0 0 25px #000;overflow:hidden}
.illustrated-game .reels{gap:0;border-radius:0;background:none}
.illustrated-game .reel{position:relative;height:clamp(95px,12vw,142px);padding:0;border:0;border-right:2px solid #e5c48430;border-radius:0;overflow:hidden;background:#100d13;box-shadow:none;display:block}
.illustrated-game .reel:last-child{border-right:0}
.illustrated-symbol{position:absolute;inset:2px 1px;display:block;background-repeat:no-repeat;filter:drop-shadow(0 3px 3px #000);transition:filter .15s;pointer-events:none}
.symbol-feature-badge{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);padding:2px 7px;border-radius:4px;background:#090810b0;color:#ffe6a7;text-shadow:0 2px 3px #000;font-size:8px;font-weight:900;letter-spacing:1px;z-index:2}
.illustrated-game .spin{animation:illustratedSpin .16s linear infinite;animation-delay:calc(var(--reel-column)*-35ms)}
@keyframes illustratedSpin{0%{transform:translateY(-16px);filter:blur(2px)}50%{transform:translateY(16px);filter:blur(5px)}100%{transform:translateY(-16px);filter:blur(2px)}}
.illustrated-game .reel-land{animation:reelLand .25s ease-out}
@keyframes reelLand{0%{transform:translateY(-20px)}60%{transform:translateY(5px)}100%{transform:translateY(0)}}
.illustrated-game .winning-cell{z-index:1;box-shadow:inset 0 0 25px #ffc35c55;background:#2d2117;outline:2px solid #fbd374;outline-offset:-3px}
.illustrated-game .winning-cell .illustrated-symbol{animation:symbolWin 1.1s ease-in-out infinite;filter:brightness(1.15) drop-shadow(0 0 10px #fac65a99)}
@keyframes symbolWin{50%{transform:scale(1.07)}}
.illustrated-game .expanded-cell{background:#302009;animation:expandingSymbol .6s ease-out}
@keyframes expandingSymbol{0%{filter:brightness(4);transform:scaleY(.1)}100%{filter:brightness(1);transform:scaleY(1)}}
.payline-traces{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible;filter:drop-shadow(0 0 5px #ffcf67)}
.payline-traces polyline{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:900;animation:lineTrace 1s ease-out}
@keyframes lineTrace{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}
.cabinet-readout{position:relative;margin:17px auto 0;padding:12px;text-align:center;min-height:42px;font-size:12px;letter-spacing:.6px;color:#e4d1ac;background:#090a12b0;border:1px solid #c9a76a44;border-radius:6px}
.cabinet-readout.paying{color:#ffe3a0;box-shadow:inset 0 0 25px #ac681233;font-weight:800}
.illustrated-game .slot-rules{margin:10px 0 0;padding:0 4px;background:#090a12a0;border-radius:6px;position:relative}
.illustrated-game .slot-rules[open]{padding:8px 14px}
.illustrated-game .slot-rules summary{font-size:11px;color:#c8b18f}
.symbol-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}
.symbol-legend>div{position:relative;aspect-ratio:1;padding-top:75%;background:#100d13;border:1px solid #c9a76a33;border-radius:8px}
.symbol-legend .illustrated-symbol{inset:2px 0 25%}
.symbol-legend>div>span:last-child:not(.illustrated-symbol){position:absolute;bottom:8px;left:6px;right:6px;text-align:center;font-size:9px;color:#ded0b6}
.illustrated-game .controls{position:relative;gap:10px;background:linear-gradient(#2e281e,#121112);border:1px solid #b18b514d;padding:15px;border-radius:10px}
.illustrated-game .controls input{background:#0b0b11;border-color:#927347;color:#fff0cb;font-size:18px;font-weight:700}
.illustrated-game .controls button.primary{background:linear-gradient(#f5d88f,#b07c2c);color:#2b1904;font-size:16px;box-shadow:inset 0 1px 0 #ffefbb,0 4px 0 #503813;text-transform:uppercase}
.illustrated-game .result{position:relative;color:#ffe2aa;font-size:12px;margin-top:16px}
.illustrated-game .bonus-banner{position:relative;background:linear-gradient(100deg,#492d14e0,#14101ae8);border-color:#ecc57b;display:flex;align-items:center;gap:10px;padding:10px 18px;min-height:70px}
.illustrated-game .bonus-banner>.illustrated-symbol{position:relative;flex:none;width:75px;height:65px;inset:auto}
.illustrated-game .bonus-banner[hidden]{display:none}
.book-reveal{max-width:540px;width:88vw;border:2px solid #ddba77;border-radius:18px;background:radial-gradient(ellipse at 50% 30%,#64451e,#100d18 70%);color:#ffe5a8;text-align:center;padding:25px 25px 35px;box-shadow:0 0 70px #dfad3266}
.book-reveal::backdrop{background:#03030dd9;backdrop-filter:blur(8px)}
.book-reveal-symbol{position:relative!important;display:block;width:270px;height:240px;margin:auto;inset:auto!important;animation:bookHover 2.4s ease-in-out infinite;filter:drop-shadow(0 0 24px #f7b73188)}
@keyframes bookHover{50%{transform:translateY(-12px) rotate(-3deg)}}
.book-reveal h2{font:900 30px Georgia,serif;text-shadow:0 2px #654421}.book-reveal p{font-size:14px;line-height:1.7;color:#e3d0ae}
.book-reveal button{padding:14px 35px;background:linear-gradient(#f6dc98,#b48232);border:1px solid #ffe2a1;color:#2c1906;border-radius:8px;font-weight:800;cursor:pointer}
.illustrated-game[data-family='video'] .reel-window,.illustrated-game[data-family='multiplier'] .reel-window{background:linear-gradient(135deg,#795fca,#182d49,#a0dff3);border-color:#c1dbff66;box-shadow:0 0 25px #6883e947}
.illustrated-game[data-family='video'] .reel-window:before,.illustrated-game[data-family='video'] .reel-window:after,.illustrated-game[data-family='multiplier'] .reel-window:before,.illustrated-game[data-family='multiplier'] .reel-window:after{background:repeating-linear-gradient(90deg,#729fde,#233052 4px,#cfb8ff 6px);width:13px}
.illustrated-game[data-family='wild'] .reel-window{background:linear-gradient(135deg,#40715c,#11241d,#b49d59);border-color:#68bfa0}
.illustrated-game[data-family='scatter'] .reel-window{background:linear-gradient(135deg,#d4ccf5,#385661,#a19ad5);border-color:#c1b8ed}
.illustrated-game[data-family='ways'] .reel-window{background:linear-gradient(135deg,#7b83c1,#3c274c,#b7bbdc);border-color:#c8acdc}
.illustrated-game[data-family='expanding'] .reel-window:before,.illustrated-game[data-family='expanding'] .reel-window:after{width:25px;background:repeating-linear-gradient(90deg,#e6d6aa,#7d776a 4px,#e8d9b1 8px);top:-25px;bottom:-15px}
body.playing-slot main>.banner,body.playing-slot main>.sectiontitle,body.playing-slot .lobby-toolbar,body.playing-slot #catalog,body.playing-slot main>.panel:not(#gamepanel),body.playing-slot footer{display:none}
body.playing-slot .shell{max-width:1220px}body.playing-slot #gamepanel{margin-top:8px}
.illustrated-game:fullscreen{overflow:auto;width:100%;border-radius:0;max-width:none;padding:0 max(40px,calc((100vw - 1100px)/2)) 30px;background:#0b0c15}
@media(max-width:700px){.illustrated-poster{height:240px}.poster-title{font-size:20px}.illustrated-game{padding:0 18px 18px;border-radius:12px}.cabinet-head{min-height:145px}.illustrated-game-title strong{font-size:30px}.illustrated-game-title small{font-size:8px;letter-spacing:3px}.illustrated-game-title>span{font-size:8px;letter-spacing:1px}.theatre-toolbar button{padding:8px;font-size:9px}.reel-window{padding:6px;border-width:1px}.reel-window:before,.reel-window:after{width:9px}.reel-window:before{left:-12px}.reel-window:after{right:-12px}.illustrated-game .reel{height:clamp(70px,20vw,125px)}.illustrated-game .controls{padding:10px}.illustrated-game .controls input{width:80px}.illustrated-game .controls button.primary{font-size:13px}.symbol-feature-badge{font-size:6px;padding:1px 4px;bottom:3px}.symbol-legend{grid-template-columns:repeat(3,1fr)}.illustrated-hero{padding:26px 20px;min-height:260px}.illustrated-hero h1{font-size:30px}.lobby-hero-art{width:75%;opacity:.75}.illustrated-hero>:not(.lobby-hero-art){max-width:70%}}
@media(prefers-reduced-motion:reduce){.illustrated-game .spin,.illustrated-game .reel-land,.illustrated-game .winning-cell .illustrated-symbol,.book-reveal-symbol,.payline-traces polyline{animation:none}.pack-card{transition:none}}

.illustrated-symbol{inset:2px auto;left:50%;height:calc(100% - 4px);width:auto;max-width:100%;aspect-ratio:var(--sprite-aspect,1);translate:-50% 0}.symbol-legend .illustrated-symbol{inset:2px auto;left:50%;height:72%;width:auto}.illustrated-game .bonus-banner>.illustrated-symbol{translate:0 0;left:auto}.book-reveal-symbol{translate:0 0;left:auto}
