.slot-machine{position:relative;width:100%;max-width:360px;padding:14px;border-radius:26px;background:radial-gradient(130% 70% at 50% 0%,rgba(255,200,80,.14),transparent 62%),linear-gradient(170deg,var(--sm1),var(--sm2));border:2px solid var(--sm3);box-shadow:0 0 42px -10px var(--sm3),0 0 90px -30px rgba(255,180,40,.35),inset 0 1px 0 rgba(255,255,255,.22),inset 0 -3px 10px rgba(0,0,0,.75),inset 0 0 26px rgba(0,0,0,.55),0 16px 32px rgba(0,0,0,.55);display:flex;flex-direction:column;align-items:center}
.slot-machine::before{content:"";position:absolute;inset:0;border-radius:26px;background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 28%,transparent 72%,rgba(0,0,0,.2));pointer-events:none}
.slot-machine.win{animation:slotWin .6s ease}
@keyframes slotWin{40%{transform:scale(1.02)}}
.slot-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;margin-bottom:10px;position:relative;z-index:2}
.slot-name{font-size:13px;font-weight:800;color:#fef3c7;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 12px rgba(251,191,36,.45)}
.slot-tag{font-size:9px;font-weight:700;color:rgba(255,255,255,.65)}
.slot-window{position:relative;width:100%;padding:10px;border-radius:18px;background:linear-gradient(180deg,#0a0316 0%,#1e1038 50%,#0a0316 100%);box-shadow:inset 0 3px 6px rgba(0,0,0,.95),inset 0 -3px 8px rgba(0,0,0,.7),0 2px 0 rgba(255,255,255,.08),0 8px 20px rgba(0,0,0,.6);perspective:900px}
.slot-window::before{content:"";position:absolute;inset:0;border-radius:18px;background:linear-gradient(180deg,rgba(255,200,80,.06),transparent 30%,transparent 70%,rgba(0,0,0,.3));pointer-events:none;z-index:1}
.slot-reels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;z-index:2}
.reel-col{display:flex;flex-direction:column;gap:5px;padding:5px;border-radius:12px;background:linear-gradient(#0a0316,#2a1d4e 48%,#0a0316);border:1px solid rgba(255,255,255,.10);box-shadow:inset 0 2px 4px rgba(0,0,0,.9),inset 0 -2px 4px rgba(0,0,0,.8),0 1px 0 rgba(255,255,255,.08),0 4px 8px rgba(0,0,0,.5);transition:filter .2s,border-color .2s}
.reel-col.spin{filter:blur(1.8px) brightness(1.3);border-color:var(--sm3)}
.reel-sym{border-radius:9px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#2f1a5e 0%,#1b0d3a 55%,#070112 100%);border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -3px 5px rgba(0,0,0,.9),inset 0 0 12px rgba(0,0,0,.7),0 3px 0 rgba(0,0,0,.8),0 6px 10px rgba(0,0,0,.55);position:relative;overflow:hidden;font-size:30px;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 8px currentColor;color:#f4f0fb}
.reel-sym::after{content:"";position:absolute;top:1px;left:5px;right:5px;height:38%;border-radius:8px 8px 60% 60% / 8px 8px 100% 100%;background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,.05) 60%,transparent);pointer-events:none}
.slot-reels[data-rows="5"] .reel-sym{aspect-ratio:1/0.55}
@media(min-width:400px){.reel-sym{font-size:32px}}
@media(min-width:440px){.reel-sym{font-size:34px}}
.reel-sym.landed{animation:reelLand .42s cubic-bezier(.25,1.6,.5,1)}
@keyframes reelLand{0%{opacity:0;filter:brightness(2.4) blur(1px)}60%{opacity:1;filter:brightness(1.4)}100%{opacity:1;filter:brightness(1)}}
.reel-sym.winline{background:radial-gradient(circle at 50% 35%,#fde68a 0%,#f59e0b 60%,#7a4408 100%);box-shadow:0 0 22px #FFD54F,0 0 44px rgba(255,213,79,.7),inset 0 0 16px rgba(255,213,79,.55),inset 0 1px 0 rgba(255,255,255,.5),0 3px 0 rgba(0,0,0,.75);animation:reelWin .55s ease 2}
@keyframes reelWin{0%,100%{filter:brightness(1)}50%{filter:brightness(1.6) drop-shadow(0 0 12px #FFD54F)}}
.slot-win{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;color:var(--gold);text-shadow:0 3px 12px rgba(0,0,0,.9);pointer-events:none;opacity:0;z-index:4}
.slot-win.show{animation:winFloat 1.6s ease forwards}
@keyframes winFloat{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1.18)}55%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1) translateY(-24px)}}
.slot-res{min-height:20px;font-weight:700;font-size:13px;margin-top:10px;color:var(--text-dim);text-align:center;padding:0 6px;position:relative;z-index:2}
.slot-res.win{color:var(--gold)}.slot-res.push{color:var(--jade)}
.slot-bets{display:flex;gap:6px;justify-content:center;flex-wrap:nowrap;margin-top:10px;position:relative;z-index:2;align-items:center}
.slot-betline{font-size:9.5px;color:rgba(255,255,255,.6);text-align:center;margin-top:8px;position:relative;z-index:2}
.slot-pay{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px;max-width:320px}
.slot-pay span{font-size:10.5px;color:var(--text-dim);background:var(--panel-2);border:1px solid var(--border);padding:4px 9px;border-radius:999px}
.slot-pay span b{color:var(--gold)}
