*{box-sizing:border-box;margin:0;padding:0}:root{--cell: min(17.5vw, 13vh, 128px);--gap: 6px}html,body,#root{height:100%}body{font-family:Georgia,Palatino Linotype,Times New Roman,serif;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.app{position:relative;height:100dvh;background:linear-gradient(var(--bg-top),var(--bg-bottom));color:var(--text);overflow:hidden}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.backdrop svg{width:100%;height:100%}.app-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 10px) 10px calc(env(safe-area-inset-bottom) + 10px);max-width:640px;margin:0 auto}.header{text-align:center}.title{font-size:clamp(22px,6.5vw,36px);font-weight:700;letter-spacing:5px;text-transform:uppercase;color:var(--gold);text-shadow:0 0 16px rgba(236,196,86,.55),0 2px 0 rgba(0,0,0,.4)}.tagline{font-size:clamp(11px,3vw,14px);letter-spacing:2px;color:var(--dim);font-style:italic;margin-top:2px}.machine{position:relative;padding:10px;border-radius:18px;background:linear-gradient(180deg,var(--frame),color-mix(in srgb,var(--frame) 55%,black));border:2px solid var(--frame-edge);box-shadow:0 0 42px #ecc45629,0 10px 30px #0000008c,inset 0 0 22px #00000080}.fs-banner{text-align:center;font-size:clamp(12px,3.4vw,16px);letter-spacing:2px;color:var(--accent);padding-bottom:8px;text-shadow:0 0 12px rgba(53,199,189,.6);animation:glowpulse 1.4s ease-in-out infinite}.reels{position:relative;display:flex;gap:var(--gap)}.reel{width:var(--cell);height:calc(var(--cell) * 3);overflow:hidden;border-radius:10px;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent 18%,transparent 82%,rgba(0,0,0,.45)),var(--cell-bg);border:1px solid var(--cell-border)}.reel-strip{display:flex;flex-direction:column;will-change:transform}.reel-strip.spinning{filter:blur(1px)}.cell{width:var(--cell);height:var(--cell);padding:9%;flex:none;display:grid;place-items:center}.sym{width:100%;height:100%;display:block}.hl-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;gap:var(--gap);pointer-events:none}.hl-col{width:var(--cell);display:flex;flex-direction:column}.hl-cell{width:var(--cell);height:var(--cell);border-radius:10px}.hl-cell.dim{background:#0503148c}.hl-cell.win{box-shadow:inset 0 0 0 3px var(--gold),0 0 18px #ecc456bf;animation:winpulse .85s ease-in-out infinite}.paylines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.payline .under,.payline .main{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;animation:payline-draw .55s ease-out forwards}.payline .under{stroke:#08040099;stroke-width:8}.payline .main{stroke-width:4.5;filter:drop-shadow(0 0 6px currentColor)}@keyframes payline-draw{to{stroke-dashoffset:0}}.controls{width:100%;max-width:560px;display:flex;flex-direction:column;gap:12px}.stats{display:flex;justify-content:space-between;gap:8px;background:#00000059;border:1px solid var(--cell-border);border-radius:14px;padding:8px 14px}.stat{display:flex;flex-direction:column;align-items:center;min-width:30%}.stat-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--dim)}.stat-value{font-size:clamp(16px,4.6vw,22px);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.win-stat .stat-value{color:var(--dim)}.win-stat.has-win .stat-value{color:var(--gold-bright);text-shadow:0 0 12px rgba(236,196,86,.8)}.bet-row{display:flex;align-items:center;gap:8px}.bet-btn{width:26px;height:26px;border-radius:50%;border:1px solid var(--gold);background:transparent;color:var(--gold);font-size:16px;line-height:1;cursor:pointer}.bet-btn:disabled{opacity:.35}.buttons{display:flex;align-items:center;justify-content:center;gap:18px}.spin-btn{width:clamp(84px,24vw,104px);height:clamp(84px,24vw,104px);border-radius:50%;border:3px solid var(--gold-deep);background:radial-gradient(circle at 35% 30%,var(--gold-bright),var(--gold) 48%,var(--gold-deep));color:#3a2405;font-family:inherit;font-size:clamp(18px,5vw,22px);font-weight:800;letter-spacing:2px;cursor:pointer;box-shadow:0 6px 18px #0000008c,0 0 26px #ecc45659;transition:transform .08s ease}.spin-btn:active:not(:disabled){transform:scale(.94)}.spin-btn:disabled{filter:saturate(.55) brightness(.85);cursor:default}.round-btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--cell-border);background:#00000059;color:var(--text);font-size:17px;cursor:pointer;display:grid;place-items:center}.auto-btn.active{border-color:var(--gold);color:var(--gold);box-shadow:0 0 14px #ecc45680}.footer{font-size:11px;letter-spacing:1.5px;color:var(--dim);opacity:.8}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;background:#050314b8;animation:fadein .25s ease;overflow:hidden}.overlay-center{text-align:center;padding:20px}.bigwin-title{font-size:clamp(34px,11vw,74px);font-weight:800;letter-spacing:6px;color:var(--gold-bright);text-shadow:0 0 30px var(--gold),0 4px 0 rgba(0,0,0,.4);animation:pop .5s cubic-bezier(.2,1.6,.4,1)}.bigwin-title.accent{color:var(--accent);text-shadow:0 0 30px rgba(53,199,189,.8),0 4px 0 rgba(0,0,0,.4)}.bigwin-amount{font-size:clamp(30px,9vw,58px);font-weight:700;color:#fff;margin-top:10px;font-variant-numeric:tabular-nums;text-shadow:0 0 20px rgba(255,255,255,.4)}.overlay-sub{margin-top:8px;font-size:clamp(14px,4vw,18px);letter-spacing:2px;color:var(--text)}.fs-big{font-size:clamp(40px,12vw,70px);color:var(--accent);animation:glowpulse 1.2s ease-in-out infinite}.coin-rain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.coin{position:absolute;top:-40px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe9a8,#d8a844 60%,#8a6420);color:#8a6420;display:grid;place-items:center;font-weight:700;box-shadow:0 0 10px #ecc45699;animation-name:coinfall;animation-timing-function:linear;animation-fill-mode:forwards}.paytable-overlay{place-items:center}.paytable{width:min(92vw,480px);max-height:84dvh;overflow-y:auto;background:linear-gradient(var(--bg-top),var(--bg-bottom));border:2px solid var(--frame-edge);border-radius:16px;padding:16px}.paytable-head{display:flex;justify-content:space-between;align-items:center}.paytable-head h2{color:var(--gold);letter-spacing:3px;text-transform:uppercase;font-size:20px}.paytable-note{font-size:12px;color:var(--dim);margin:6px 0 12px}.paytable-row{display:flex;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--cell-border)}.paytable-icon{width:52px;height:52px;flex:none;background:var(--cell-bg);border-radius:8px;padding:5px}.paytable-name{font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px}.tag{font-size:9px;letter-spacing:1.5px;padding:2px 6px;border-radius:4px;background:var(--gold);color:#3a2405}.accent-tag{background:var(--accent);color:#06302d}.paytable-pays{display:flex;gap:14px;font-size:13px;color:var(--gold-bright);font-variant-numeric:tabular-nums;margin-top:2px}.paytable-desc{font-size:11.5px;color:var(--dim);margin-top:2px}.lobby{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 24px) 16px calc(env(safe-area-inset-bottom) + 12px);background:radial-gradient(ellipse at 50% -20%,rgba(236,196,86,.12),transparent 55%),linear-gradient(#171233,#08051a);color:#f6ecd4;overflow-y:auto}.lobby-header{text-align:center}.lobby-title{font-size:clamp(28px,7vw,44px);font-weight:700;letter-spacing:6px;text-transform:uppercase;color:#ecc456;text-shadow:0 0 18px rgba(236,196,86,.5),0 2px 0 rgba(0,0,0,.4)}.lobby-sub{margin-top:6px;font-size:clamp(13px,3.4vw,16px);letter-spacing:1.5px;color:#9a8fc4}.lobby-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,90vw),1fr));gap:18px;width:100%;max-width:860px;padding:18px 0}.game-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px 16px;border-radius:20px;border:2px solid var(--frame-edge);background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--frame) 70%,white 6%),transparent 70%),linear-gradient(180deg,var(--bg-top),var(--bg-bottom));color:var(--text);font-family:inherit;cursor:pointer;box-shadow:0 8px 26px #00000080,0 0 24px #ecc4561a;transition:transform .1s ease}.game-card:active{transform:scale(.97)}.card-symbols{display:flex;gap:10px}.card-symbol{width:clamp(52px,14vw,72px);height:clamp(52px,14vw,72px);padding:8px;background:var(--cell-bg);border:1px solid var(--cell-border);border-radius:12px}.card-symbol svg{width:100%;height:100%}.card-title{margin-top:6px;font-size:clamp(18px,5vw,24px);font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--gold);text-shadow:0 0 12px rgba(236,196,86,.4)}.card-tag{font-size:clamp(11px,3vw,13px);font-style:italic;letter-spacing:1px;color:var(--dim)}.card-launch{font-family:Trebuchet MS,Arial,sans-serif;font-style:normal;font-size:clamp(11px,3vw,13px);font-weight:700;letter-spacing:.08em;color:var(--accent)}.launch-cd{margin-top:6px;font-family:Trebuchet MS,Arial,sans-serif}.launch-cd-clock{font-variant-numeric:tabular-nums;font-weight:800;letter-spacing:.14em;font-size:clamp(13px,3.4vw,16px);color:var(--gold)}.launch-cd-meta{margin-top:2px;font-size:clamp(10px,2.6vw,12px);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.card-play{margin-top:10px;padding:8px 26px;border-radius:999px;background:radial-gradient(circle at 35% 30%,var(--gold-bright),var(--gold) 55%,var(--gold-deep));color:#3a2405;font-weight:800;letter-spacing:2px;font-size:14px}.pinball{position:relative;height:100dvh;display:flex;flex-direction:column;align-items:center;background:linear-gradient(#150a30,#070313);color:#f0ecff;overflow:hidden;touch-action:none;--gold: #4fd8e8;--gold-bright: #c9f4fa;--gold-deep: #1a7f8f;--dim: #8f7fd8;--cell-border: #3d2a6e;--text: #f0ecff;--bg-top: #150a30;--bg-bottom: #070313;--frame-edge: #4fd8e8}.pin-hud{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;max-width:560px;padding:calc(env(safe-area-inset-top) + 8px) 12px 6px}.pin-stat{display:flex;flex-direction:column;align-items:center}.pin-canvas{flex:1;min-height:0;max-width:100%;object-fit:contain;aspect-ratio:420 / 760}.pin-msg{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 122px);left:50%;transform:translate(-50%);font-size:clamp(13px,3.6vw,17px);letter-spacing:2px;color:#8f7fd8;animation:glowpulse 1.4s ease-in-out infinite;pointer-events:none;white-space:nowrap}.accent-word{color:#ff8f5c;font-weight:700}.pin-flip-btn{position:absolute;bottom:26%;width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:26px;color:#c9f4facc;background:radial-gradient(circle at 35% 30%,#4fd8e859,#33207a73);border:2px solid rgba(79,216,232,.5);box-shadow:0 0 18px #4fd8e840;pointer-events:none}.pin-flip-btn.left{left:12px}.pin-flip-btn.right{right:12px}.pin-launch{position:absolute;left:50%;transform:translate(-50%);bottom:calc(env(safe-area-inset-bottom) + 18px);width:92px;height:92px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:15px;letter-spacing:1.5px;color:#070313;background:conic-gradient(#ff8f5c calc(var(--charge, 0) * 360deg),#ff8f5c40 0),radial-gradient(circle at 35% 30%,#c9f4fa,#4fd8e8 55%,#1a7f8f);background-blend-mode:multiply;border:3px solid #1a7f8f;box-shadow:0 6px 18px #0009,0 0 22px #4fd8e866;user-select:none;-webkit-user-select:none}.pin-again{max-width:260px;margin:18px auto 0}.music-list{margin:8px 0}.music-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--cell-border)}.music-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.music-builtin{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);flex:none}.music-remove{width:34px;height:34px;font-size:13px;flex:none}.add-music{display:block;width:100%;margin:10px 0;padding:12px;border:none;border-radius:999px;background:radial-gradient(circle at 35% 30%,var(--gold-bright),var(--gold) 55%,var(--gold-deep));color:#3a2405;font-family:inherit;font-weight:800;letter-spacing:2px;font-size:14px;cursor:pointer}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,rgba(238,111,168,.25),transparent 60%),linear-gradient(#2b1040,#12081f 75%);animation:fadein .3s ease;cursor:pointer}.intro-floor{position:absolute;left:-20%;right:-20%;bottom:0;height:34%;background:conic-gradient(#f0e8d8 90deg,#201828 90deg,#201828 180deg,#f0e8d8 180deg,#f0e8d8 270deg,#201828 270deg);background-size:64px 64px;transform:perspective(360px) rotateX(52deg);transform-origin:top;opacity:.8}.intro-center{position:relative;z-index:2;text-align:center;padding-bottom:10vh}.intro-title{font-family:Trebuchet MS,Arial,sans-serif;font-size:clamp(38px,11vw,84px);font-weight:800;font-style:italic;letter-spacing:4px;color:#ee6fa8;text-shadow:0 0 14px rgba(238,111,168,.9),0 0 40px rgba(238,111,168,.5),0 3px 0 rgba(0,0,0,.5);animation:neonflicker 2.4s ease-in-out infinite}.intro-dancers{width:min(70vw,380px);margin:10px auto 0;display:block}.twist{animation:twist .42s ease-in-out infinite alternate}.twist-him{transform-origin:70px 106px}.twist-her{transform-origin:150px 106px;animation-delay:-.21s}.intro-tap{margin-top:18px;font-family:Trebuchet MS,Arial,sans-serif;font-size:clamp(14px,4vw,20px);font-weight:700;letter-spacing:3px;color:#3fd8c0;text-shadow:0 0 12px rgba(63,216,192,.7);animation:glowpulse 1.3s ease-in-out infinite}.intro-note{position:absolute;bottom:-8%;z-index:1;animation-name:noterise;animation-timing-function:ease-in-out;animation-iteration-count:infinite;text-shadow:0 0 10px currentColor;opacity:0}@keyframes twist{0%{transform:rotate(-14deg)}to{transform:rotate(14deg)}}@keyframes noterise{0%{transform:translateY(0) rotate(-12deg);opacity:0}12%{opacity:.9}85%{opacity:.7}to{transform:translateY(-108vh) rotate(14deg);opacity:0}}.intro-spacex{background:radial-gradient(ellipse at 50% 88%,rgba(255,107,44,.35),transparent 46%),linear-gradient(#071018,#04080c 70%)}.spacex-mars{position:absolute;top:8%;right:6%;width:min(22vw,110px);opacity:.9;pointer-events:none}.spacex-glow{position:absolute;left:50%;bottom:8%;width:70vw;height:28vh;transform:translate(-50%);background:radial-gradient(ellipse at 50% 80%,rgba(255,224,138,.45),rgba(255,107,44,.12) 50%,transparent 72%);pointer-events:none}.spacex-rocket{position:absolute;left:50%;bottom:6%;width:min(42vw,220px);transform:translate(-50%) translateY(0);transition:transform 1.8s cubic-bezier(.2,.7,.2,1);z-index:1}.spacex-rocket.is-up{transform:translate(-50%) translateY(-58vh)}.spacex-eyebrow{font-family:Trebuchet MS,Arial,sans-serif;font-size:clamp(12px,3.2vw,16px);letter-spacing:.45em;color:#7ec8e0;margin-bottom:8px}.spacex-count{font-family:Trebuchet MS,Arial,sans-serif;font-style:normal;letter-spacing:.18em;color:#e8eef4;text-shadow:0 0 18px rgba(255,107,44,.7),0 0 40px rgba(126,200,224,.35),0 3px 0 rgba(0,0,0,.5);animation:none}.spacex-count.is-go{color:#ff6b2c;text-shadow:0 0 18px rgba(255,107,44,.95),0 0 48px rgba(255,224,138,.45)}@media(prefers-reduced-motion:reduce){.spacex-rocket{transition:none}}@keyframes neonflicker{0%,to{opacity:1}46%{opacity:1}48%{opacity:.55}50%{opacity:1}72%{opacity:.85}74%{opacity:1}}@keyframes winpulse{0%,to{box-shadow:inset 0 0 0 3px var(--gold),0 0 12px #ecc4568c}50%{box-shadow:inset 0 0 0 3px var(--gold-bright),0 0 26px #ecc456f2}}@keyframes glowpulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes coinfall{to{transform:translateY(115vh) rotate(680deg)}}@media(orientation:landscape){:root{--cell: min(11.5vw, 20vh, 176px)}.app-content{display:grid;grid-template-areas:"header controls" "machine controls" "footer controls";grid-template-columns:auto auto;align-content:center;justify-content:center;column-gap:clamp(18px,4vw,64px);row-gap:12px;max-width:none}.header{grid-area:header}.machine{grid-area:machine}.footer{grid-area:footer}.controls{grid-area:controls;align-self:center;width:clamp(220px,24vw,300px)}.stats{flex-direction:column;gap:10px;padding:12px}.stat{min-width:0;width:100%}.buttons{flex-wrap:wrap;gap:14px}}@media(orientation:landscape)and (max-height:460px){.header,.footer{display:none}}
