*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#fff;-webkit-font-smoothing:antialiased;overscroll-behavior:none;background:#050008;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#root{min-height:100svh}button,input{font:inherit}:root{--gold:gold;--gold-2:#ffb300;--neon-pink:#ff2d95;--lime:#b8ff3c;--bg:#07010c;--panel:#120418e6;--line:#ffd70047;--text:#f7e9ff;--muted:#a48bb8;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display:Impact, "Arial Black", "Segoe UI", sans-serif}.app-root{min-height:100dvh;color:var(--text);font-family:var(--font);background:radial-gradient(ellipse 80% 50% at 50% 0%, #b4285a59, transparent 55%), radial-gradient(ellipse 60% 40% at 50% 100%, #5a148c4d, transparent 50%), linear-gradient(180deg, #120018 0%, var(--bg) 40%, #050008 100%);justify-content:center;align-items:center;padding:12px 14px 28px;display:flex;position:relative;overflow-x:hidden}.app-root:before{content:"";opacity:.16;pointer-events:none;z-index:0;background:url(/sprites/casino-bg.jpg) 50%/cover no-repeat;position:fixed;inset:0}.app-center{z-index:1;flex-direction:column;align-items:center;gap:10px;width:min(100%,1100px);display:flex;position:relative}.title-block{text-align:center;width:100%}.title-block h1{font-family:var(--display);letter-spacing:.08em;background:linear-gradient(90deg, #fff 0%, var(--gold) 45%, #fff 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 12px #ffd70059);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(34px,9vw,52px)}.subtitle{color:var(--muted);letter-spacing:.06em;margin:4px 0 0;font-size:12px}.main-game,.bonus-host{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.play-layout{flex-direction:column;align-items:stretch;gap:12px;width:100%;display:flex}.play-main{flex-direction:column;align-items:center;gap:12px;width:100%;min-width:0;display:flex}.controls-row{flex-flow:wrap;justify-content:center;align-items:center;gap:16px;width:100%;max-width:520px;display:flex}.controls-row .spin-round{flex-shrink:0;width:min(36vw,120px);height:min(36vw,120px)}.controls-aux{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.save-row.inline{align-items:center;gap:8px;width:auto;display:flex}.save-row.inline input{flex:0 140px;min-width:100px;max-width:140px}.marquee{background:linear-gradient(90deg,#2a0814,#12061c 40%,#2a0814);border:1px solid #ff2d9566;border-radius:999px;width:100%;padding:8px 14px;box-shadow:0 0 20px #ff2d9540}.marquee-text{text-align:center;font-family:var(--display);letter-spacing:.06em;color:#ffe6f4;text-shadow:0 0 12px #ff2d95cc;font-size:14px;display:block}.machine-wrap{border:2px solid #ffd70059;border-radius:16px;width:100%;position:relative;overflow:hidden;box-shadow:0 0 30px #ffd70026,inset 0 0 30px #00000080}.slot-canvas{background:radial-gradient(circle at 50% 40%,#1a0520 0%,#050008 70%);width:100%;height:min(72vw,480px);min-height:360px}.win-burst{pointer-events:none;background:radial-gradient(circle,#ffd70047,#0000 55%);animation:.8s ease-out infinite alternate burst;position:absolute;inset:0}@keyframes burst{0%{opacity:.4}to{opacity:1}}.token-bar{grid-template-columns:1.3fr 1fr .9fr;gap:8px;width:100%;max-width:640px;display:grid}.token-meter{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:12px;padding:8px 10px}.token-meter span{letter-spacing:.12em;color:var(--muted);font-size:10px;display:block}.token-meter strong{font-variant-numeric:tabular-nums;font-size:18px}.gold{color:var(--gold)}.lime{color:var(--lime)}.controls{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.bet-row{align-items:center;gap:12px;display:flex}.chip{border:2px solid var(--gold);width:44px;height:44px;color:var(--gold);cursor:pointer;background:radial-gradient(circle at 30% 30%,#5a2030,#1a0810);border-radius:50%;font-size:22px;font-weight:700}.chip:disabled{opacity:.35;cursor:not-allowed}.bet-display{text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;min-width:90px;padding:6px 14px}.bet-display span{letter-spacing:.14em;color:var(--muted);font-size:10px;display:block}.bet-display strong{color:var(--gold);font-size:22px}.spin-round{cursor:pointer;filter:drop-shadow(0 8px 18px #ff002873);background:0 0;border:none;width:min(42vw,150px);height:min(42vw,150px);padding:0;transition:transform .12s}.spin-round:hover:not(:disabled){transform:scale(1.05)}.spin-round:active:not(:disabled){transform:scale(.96)}.spin-round.is-disabled,.spin-round:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4)}.spin-svg{width:100%;height:100%;display:block}.ghost-btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:999px;padding:10px 18px;font-size:13px}.ghost-btn:disabled{opacity:.4;cursor:not-allowed}.save-row{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.save-row input{border:1px solid var(--line);color:#fff;background:#0c0412;border-radius:999px;flex:1;min-width:140px;max-width:200px;padding:10px 14px}.save-row button{cursor:pointer;color:#102000;background:linear-gradient(#b8ff3c,#6bcb00);border:none;border-radius:999px;padding:10px 16px;font-weight:700}.panels{gap:12px;width:100%;margin-top:4px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px}.panel h3{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;font-size:12px}.pay-grid{grid-template-columns:1fr 1fr;gap:6px 10px;display:grid}.pay-item{background:#00000047;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.pay-sym{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.pay-val{color:var(--gold);flex-shrink:0}.fine{color:var(--muted);margin:10px 0 0;font-size:11px}.lb{margin:0;padding:0;list-style:none}.lb li{border-bottom:1px solid #ffffff0f;justify-content:space-between;padding:8px 0;font-size:14px;display:flex}.bonus-view{text-align:center;flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.bonus-heading{font-family:var(--display);letter-spacing:.06em;color:var(--gold);margin:0;font-size:22px}.bonus-sub{color:var(--muted);margin:0;font-size:13px}.bonus-bank{color:var(--gold);margin:0;font-weight:700}.wheel-stage{place-items:center;width:min(82vw,340px);height:min(82vw,340px);display:grid;position:relative}.wheel-stage.realistic{filter:drop-shadow(0 12px 28px #0000008c)}.wheel-pointer{z-index:5;filter:drop-shadow(0 2px 4px #00000080);border-top:28px solid #ff1744;border-left:14px solid #0000;border-right:14px solid #0000;width:0;height:0;position:absolute;top:-4px;left:50%;transform:translate(-50%)}.wheel-pointer.realistic{filter:drop-shadow(0 3px 6px #000000a6);border-top-width:34px;border-top-color:#ff1744;border-left-width:16px;border-right-width:16px;top:-2px}.wheel-pointer.realistic:after{content:"";background:radial-gradient(circle at 30% 30%,#fff,silver 60%,#666);border-radius:50%;width:12px;height:12px;position:absolute;top:-34px;left:-6px;box-shadow:0 0 0 2px #fff}.wheel-face{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;border-radius:50%;width:100%;height:100%;display:block;box-shadow:0 0 0 6px #5a3000,0 0 0 10px #ffd54f,inset 0 0 20px #00000059}.wheel-lights{pointer-events:none;z-index:2;position:absolute;inset:0}.wheel-bulb{background:radial-gradient(circle at 30% 30%,#fff8e1,#ffb300 55%,#8d6e00);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%;box-shadow:0 0 6px #ffc8008c}.wheel-bulb.lit{animation:.35s ease-in-out infinite alternate bulb}@keyframes bulb{0%{opacity:.55;filter:brightness(.9)}to{opacity:1;filter:brightness(1.35)}}.wheel-legend{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(100%,360px);margin:0;padding:0;list-style:none;display:grid}.wheel-legend li{background:#00000059;border:1px solid #ffd70038;border-radius:10px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.wheel-legend i{border-radius:3px;flex-shrink:0;width:12px;height:12px;box-shadow:0 0 0 1px #ffffff40}.wheel-legend strong{color:#fff;font-variant-numeric:tabular-nums;font-size:14px}.wheel-legend span{color:var(--muted);font-size:11px}.wheel-disc{border:6px solid var(--gold);border-radius:50%;width:100%;height:100%;position:relative;box-shadow:0 0 0 4px #5a3000,0 0 28px #ffd70059}.wheel-label{width:48px;font-family:var(--display);color:#fff;text-shadow:0 1px 3px #000;pointer-events:none;margin-top:-10px;margin-left:-24px;font-size:18px;position:absolute;top:50%;left:50%}.wheel-hub{color:#5a2000;background:radial-gradient(circle at 30% 30%,#fff59d,#ff8f00);border:3px solid #fff;border-radius:50%;place-items:center;width:52px;height:52px;margin:auto;font-size:20px;display:grid;position:absolute;inset:0}.match-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:min(100%,320px);display:grid}.match-card{aspect-ratio:1;color:#fff;cursor:pointer;background:linear-gradient(160deg,#3a1040,#12061a);border:1px solid #ffd70040;border-radius:6px;padding:0;font-size:clamp(12px,3.2vw,16px);font-weight:700}.match-card.face-up{border-color:var(--gold);background:linear-gradient(160deg,#2a1a08,#1a1008)}.match-card.matched{opacity:.55;background:#0d2818;border-color:#4caf50}.match-card.free{background:linear-gradient(160deg,#5a4000,#2a1a00)}.match-card .card-back{color:var(--neon-pink)}.match-card .free-star{color:var(--gold)}.strikes{gap:14px;font-size:28px;font-weight:900;display:flex}.strike{color:#444;text-align:center;width:28px}.strike.on{color:#ff1744;text-shadow:0 0 10px #ff1744b3}.bags-grid{grid-template-columns:repeat(3,1fr);gap:10px;width:min(100%,320px);display:grid}.money-bag{aspect-ratio:1;border:2px solid var(--gold);cursor:pointer;background:radial-gradient(circle at 30% 25%,#3a2a10,#12080a);border-radius:16px;place-items:center;display:grid}.money-bag.open{background:radial-gradient(circle at 30% 25%,#1b3a18,#081208)}.money-bag:disabled{cursor:default}.bag-emoji{font-size:42px}.bag-val{font-family:var(--display);color:var(--gold);font-size:22px}.win-popup{z-index:40;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.win-popup-inner{font-family:var(--display);letter-spacing:.04em;color:#fff;text-align:center;border:2px solid var(--gold);text-shadow:0 0 16px #ff2d95b3;background:#14041ee6;border-radius:16px;padding:18px 28px;font-size:clamp(22px,6vw,36px);animation:.55s cubic-bezier(.2,1.4,.4,1) both winpop;box-shadow:0 0 30px #ffd70066}@keyframes winpop{0%{opacity:0;transform:scale(.2)}70%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}.confetti-layer{z-index:45;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{border-radius:2px;animation:2.8s linear forwards confetti-fall;position:absolute;top:-12px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.85;transform:translateY(110vh)rotate(720deg)}}.fade-in{animation:.35s both fadein}.fade-out{pointer-events:none;animation:.3s both fadeout}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fadeout{0%{opacity:1}to{opacity:0}}.app-root.jackpot .marquee{box-shadow:0 0 28px #ffd700a6}@media (width>=900px){.play-layout{grid-template-columns:minmax(0,1.5fr) minmax(250px,.72fr);align-items:start;gap:16px;display:grid}.token-bar{max-width:none}.panels{grid-template-columns:1fr;margin-top:0;position:sticky;top:12px}.slot-canvas{height:min(52vw,520px);min-height:420px}.controls-row{max-width:none}}@media (width>=700px) and (width<=899px){.app-center{max-width:720px}.panels{grid-template-columns:1fr 1fr}.slot-canvas{height:480px}}@media (width<=699px){.panels{grid-template-columns:1fr}}
