*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;overflow-x:hidden}
body{
  font-family:'SF Pro Display',-apple-system,BlinkMacSystemFont,sans-serif;
  background:#0a0f0a;color:#e8f5e9;
  -webkit-tap-highlight-color:transparent;
  padding-bottom:72px;
}

/* === SHAKE === */
.shake{animation:shakeIt .4s ease}

/* === CONFETTI CANVAS === */
#confetti{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:999}

/* === TOPBAR === */
.top{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;position:sticky;top:0;z-index:50;background:linear-gradient(135deg,#1a3a1a,#2d5a2d);border-bottom:2px solid #3d8b3d;box-shadow:0 2px 20px rgba(76,175,80,.2)}
.top-left{display:flex;align-items:center;gap:8px}
.top-logo{font-size:24px;filter:drop-shadow(0 0 6px rgba(76,175,80,.5))}
.top-name{font-size:15px;font-weight:800;letter-spacing:1px;color:#a5d6a7;text-shadow:0 0 10px rgba(76,175,80,.3)}
.top-chips{display:flex;align-items:center;gap:5px;background:rgba(0,0,0,.4);border:1px solid #4caf50;border-radius:20px;padding:5px 14px;transition:transform .2s}
.top-chips b{font-size:18px;color:#69f0ae;text-shadow:0 0 8px rgba(105,240,174,.3)}
.top-chips small{font-size:10px;color:#81c784}
.top-right{display:flex;align-items:center;gap:8px}
.top-snd{background:none;border:none;font-size:18px;cursor:pointer;opacity:.6;transition:opacity .2s;padding:4px}
.top-snd.on{opacity:1}
.top-session{font-size:10px;font-weight:700;padding:3px 8px;border-radius:10px;white-space:nowrap}
.top-session.pos{color:#69f0ae;background:rgba(105,240,174,.1)}
.top-session.neg{color:#ef9a9a;background:rgba(244,67,54,.1)}
.top-session.zero{color:#81c784;background:rgba(76,175,80,.08)}
.bal-pulse{animation:balPulse .4s ease}

/* === ACTIONS === */
.actions{display:flex;gap:8px;padding:10px 14px;position:relative;z-index:1}
.act{flex:1;padding:10px;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;transition:transform .1s}
.act:active{transform:scale(.97)}
.act-buy{background:linear-gradient(135deg,#ffd740,#ffab00);color:#1a3a1a;box-shadow:0 2px 10px rgba(255,215,64,.2)}
.act-out{background:rgba(76,175,80,.1);color:#69f0ae;border:1px solid #4caf50}

/* === BOTTOM NAV === */
.nav{position:fixed;bottom:0;left:0;right:0;z-index:50;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:linear-gradient(180deg,#0d150d,#0a0f0a);border-top:1px solid #2a4a2a;padding:4px 0 env(safe-area-inset-bottom,4px)}
.nav::-webkit-scrollbar{display:none}
.nav-i{flex:0 0 auto;min-width:52px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;cursor:pointer;color:#4a6a4a;font-size:10px;font-weight:600;transition:color .2s}
.nav-i .ni{font-size:20px;transition:all .2s}
.nav-i.on{color:#69f0ae}
.nav-i.on .ni{transform:scale(1.1);filter:drop-shadow(0 0 4px rgba(105,240,174,.4))}

/* === PAGES === */
.pg{display:none;padding:10px 14px;position:relative;z-index:1;animation:pgIn .25s ease}
.pg.on{display:block}
.cd{background:linear-gradient(145deg,#0d1a0d,#122212);border-radius:14px;padding:18px;margin-bottom:12px;border:1px solid #1a3a1a;box-shadow:0 2px 10px rgba(0,0,0,.3);position:relative}

/* === BETS === */
.bl{font-size:10px;color:#4a8a4a;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:6px}
.brow{display:flex;gap:4px;flex-wrap:wrap}
.bet-ctrl{display:flex;gap:4px;margin-top:5px}
.bet-ctrl button{flex:1;padding:6px;border:1px solid #2a4a2a;background:rgba(76,175,80,.06);color:#6a9a6a;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .12s}
.bet-ctrl button:active{background:rgba(76,175,80,.15);color:#69f0ae}
.abtn{flex:1;padding:8px;border:1px solid #2a4a2a;background:rgba(255,215,64,.06);color:#ffd740;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:all .12s}
.abtn:active{background:rgba(255,215,64,.15)}
.abtn.running{background:rgba(239,83,80,.1);color:#ef5350;border-color:#ef5350}
.bb{flex:1 0 22%;padding:10px 0;text-align:center;background:rgba(76,175,80,.05);border:2px solid #1a3a1a;border-radius:9px;color:#6a9a6a;font-size:13px;font-weight:700;cursor:pointer;transition:all .12s;min-height:40px;display:flex;align-items:center;justify-content:center}
.bb.on{border-color:#69f0ae;color:#69f0ae;background:rgba(105,240,174,.08);box-shadow:0 0 10px rgba(105,240,174,.1)}

/* === GO BTN === */
.gbtn{width:100%;padding:15px;border:none;border-radius:12px;font-size:16px;font-weight:800;cursor:pointer;margin-top:10px;text-transform:uppercase;letter-spacing:.5px;background:linear-gradient(135deg,#43a047,#2e7d32,#1b5e20);color:#e8f5e9;box-shadow:0 4px 20px rgba(76,175,80,.3),inset 0 1px 0 rgba(255,255,255,.1);transition:transform .1s,box-shadow .15s;text-shadow:0 1px 2px rgba(0,0,0,.3);min-height:50px}
.gbtn:active{transform:scale(.97);box-shadow:0 2px 10px rgba(76,175,80,.2)}
.gbtn:disabled{opacity:.3;cursor:not-allowed}
.gbtn.loading{pointer-events:none;position:relative;color:transparent}
.gbtn.loading::after{content:'';position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}

/* === RESULT === */
.res{text-align:center;padding:10px;border-radius:10px;font-size:16px;font-weight:700;margin-top:10px;min-height:40px;transition:all .3s}
.res.w{background:rgba(105,240,174,.12);color:#69f0ae;box-shadow:0 0 20px rgba(105,240,174,.15)}
.res.l{background:rgba(244,67,54,.08);color:#ef9a9a}

/* ========== SLOTS ========== */
.slot-wrap{display:flex;gap:6px;justify-content:center;background:radial-gradient(ellipse at center,#0a1a0a,#050a05);border-radius:14px;padding:18px 10px;position:relative;overflow:hidden;border:1px solid #1a3a1a}
.slot-wrap.win-glow{border-color:#69f0ae;box-shadow:0 0 20px rgba(105,240,174,.3),inset 0 0 15px rgba(105,240,174,.05);animation:slotGlow .5s ease 3}

/* === ACHIEVEMENT CARD === */
.ach{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;background:rgba(76,175,80,.04);border:1px solid #1a3a1a;margin-bottom:6px}
.ach-icon{font-size:24px;flex-shrink:0}
.ach-info{flex:1;min-width:0}
.ach-name{font-size:12px;font-weight:700;color:#a5d6a7}
.ach-desc{font-size:10px;color:#4a8a4a}
.ach-bar{height:4px;border-radius:2px;background:#1a3a1a;margin-top:3px;overflow:hidden}
.ach-bar-fill{height:100%;border-radius:2px;background:#69f0ae;transition:width .5s}
.ach-reward{font-size:11px;font-weight:700;color:#ffd740;flex-shrink:0}
.ach.done{background:rgba(105,240,174,.06);border-color:#2a5a2a}
.ach.done .ach-bar-fill{background:#4a8a4a}

/* === LEADERBOARD === */
.lb-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #1a2a1a}
.lb-row:last-child{border:none}
.lb-pos{width:24px;font-size:14px;font-weight:800;text-align:center}
.lb-pos.gold{color:#ffd740}
.lb-pos.silver{color:#c0c0c0}
.lb-pos.bronze{color:#cd7f32}
.lb-name{flex:1;font-size:13px;font-weight:600;color:#a5d6a7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-score{font-size:14px;font-weight:700;color:#69f0ae}
.lb-me{background:rgba(105,240,174,.06);border-radius:8px;padding:8px;margin:-2px -8px}
/* === AMBIENT PARTICLES === */
.ambient{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:0;overflow:hidden;opacity:.15}
.ambient i{position:absolute;width:3px;height:3px;background:#69f0ae;border-radius:50%;animation:drift linear infinite}
.ambient i:nth-child(2n){width:2px;height:2px;background:#ffd740;animation-duration:18s}
.ambient i:nth-child(3n){width:4px;height:4px;background:#4caf50;animation-duration:25s}

/* === CRASH MULTIPLIER BAR CHART === */
.cr-bars{display:flex;align-items:flex-end;gap:2px;height:32px;margin:6px 0}
.cr-bar{flex:1;border-radius:2px 2px 0 0;min-width:4px;transition:height .3s;position:relative}
.cr-bar::after{content:attr(data-v);position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-size:7px;color:#6a9a6a;white-space:nowrap;display:none}
.cr-bar:hover::after{display:block}

/* === MULTI BET ROULETTE CHIPS === */
.rl-multi{display:flex;gap:3px;flex-wrap:wrap;margin:6px 0}
.rl-chip{padding:3px 8px;border-radius:12px;font-size:10px;font-weight:700;background:rgba(76,175,80,.1);border:1px solid #2a4a2a;color:#69f0ae;cursor:pointer;transition:all .15s}
.rl-chip.on{background:rgba(76,175,80,.25);border-color:#69f0ae;box-shadow:0 0 8px rgba(105,240,174,.2)}
.rl-chip:active{transform:scale(.9)}

/* === HiLo MINI CARDS === */
.hl-mini{display:flex;gap:3px;justify-content:center;min-height:20px;flex-wrap:wrap}
.hl-mc{width:22px;height:30px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;border:1px solid #ccc;animation:cardDeal .2s ease}
.hl-mc.r{background:#f5f5f0;color:#d32f2f}
.hl-mc.b{background:#f5f5f0;color:#222}
.hl-mc.ok{border-color:#69f0ae;box-shadow:0 0 4px rgba(105,240,174,.3)}
.hl-mc.bad{border-color:#ef5350;box-shadow:0 0 4px rgba(239,83,80,.3)}

/* === MINES GEM === */
.mc.ok{animation:gemPop .35s cubic-bezier(.175,.885,.32,1.275)}

/* === LEVEL UP === */
.lvlup{position:fixed;top:0;left:0;right:0;bottom:0;z-index:300;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.7);animation:fadeIn .3s}
.lvlup-inner{text-align:center;animation:multPop .8s ease}
.lvlup h2{font-size:32px;margin-bottom:8px}
.lvlup p{color:#a5d6a7;font-size:14px}

/* Mobile responsiveness */
@media(max-width:360px){
  .reel-box{width:72px;height:216px}
  .rc{width:72px;height:72px;font-size:38px}
  .gbtn{padding:12px;font-size:14px;min-height:44px}
  .nav-i{min-width:42px;font-size:9px}
  .ni{font-size:18px}
  .cd{padding:12px}
  .top{padding:8px 12px}
  .bb{padding:8px 0;font-size:12px;min-height:36px}
  .dice-ring{width:120px;height:120px}
  .dice-val{font-size:38px;min-width:90px}
  .crash-cv{height:160px}
  .slot-wrap{gap:6px}
  .mc{font-size:18px}
}
@media(max-width:320px){
  .reel-box{width:64px;height:192px}
  .rc{width:64px;height:64px;font-size:32px}
  .nav{padding:4px 6px}
  .nav-i{min-width:36px;font-size:8px;padding:4px 2px}
  .ni{font-size:16px}
}

/* Achievement progress bar */
.ach-bar{height:3px;background:#0a1a0a;border-radius:2px;margin-top:3px;overflow:hidden}
.ach-bar-fill{height:100%;background:linear-gradient(90deg,#2e7d32,#69f0ae);border-radius:2px;transition:width .5s ease}
.ach.done .ach-bar-fill{background:#ffd740}
.ach.done .ach-icon{filter:none}
.ach:not(.done) .ach-icon{filter:grayscale(.5)}
.gbtn,.abtn,.bb,.nb{touch-action:manipulation}
@media(max-height:360px)and(orientation:landscape){
  .top{padding:4px 14px}
  .pg{padding:4px 8px}
  .nav{padding:2px 0}
  .nb{padding:4px 2px;font-size:9px}
  .cd{padding:8px;margin-bottom:6px}
  .gbtn{padding:8px;font-size:13px}
}

/* Nav scroll hint — fade on right edge */
.nav::after{content:'';position:absolute;right:0;top:0;bottom:0;width:24px;background:linear-gradient(90deg,transparent,#0a0f0a);pointer-events:none;z-index:1}
/* MULTIPLIER POPUP */
.mult-pop{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);font-size:48px;font-weight:900;color:#ffd740;text-shadow:0 0 30px rgba(255,215,64,.5),0 4px 8px rgba(0,0,0,.5);z-index:999;pointer-events:none;animation:multPop .8s ease forwards}
/* STREAK FIRE */
.streak-fire{position:absolute;top:-2px;right:-2px;font-size:16px;animation:fireWave .5s ease infinite alternate}
/* MINE FLIP */
.mc.pop{animation:mineFlip .4s ease}
.reel-box{width:90px;height:270px;overflow:hidden;border-radius:12px;background:#030803;position:relative;box-shadow:inset 0 0 30px rgba(0,0,0,.8),0 0 8px rgba(76,175,80,.08)}
.reel-box::before,.reel-box::after{content:'';position:absolute;left:0;right:0;height:80px;z-index:3;pointer-events:none}
.reel-box::before{top:0;background:linear-gradient(to bottom,#030803 10%,transparent)}
.reel-box::after{bottom:0;background:linear-gradient(to top,#030803 10%,transparent)}
.reel-inner{position:absolute;width:100%;will-change:transform}
.rc{width:90px;height:90px;display:flex;align-items:center;justify-content:center;font-size:48px;line-height:1;filter:brightness(.9);transition:filter .2s}
.rc.bright{filter:brightness(1.3) drop-shadow(0 0 8px rgba(105,240,174,.4));animation:reelGlow .6s ease}
.slot-payline{position:absolute;top:50%;left:6px;right:6px;height:3px;background:#69f0ae;transform:translateY(-1.5px);z-index:4;box-shadow:0 0 12px #69f0ae,0 0 30px rgba(105,240,174,.4);border-radius:2px}
/* Reel blur during spin */
.reel-inner.spinning .rc{filter:blur(2px) brightness(.7)}
.pays{margin-top:12px;font-size:12px;color:#4a6a4a}
.pays summary{cursor:pointer;color:#6a9a6a}
.pays table{width:100%;margin-top:4px;border-collapse:collapse;text-align:center}
.pays td,.pays th{padding:4px;border-bottom:1px solid #1a2a1a}
.pays th{color:#4a8a4a;font-weight:500}
/* ========== CRASH ========== */
.crash-cv{height:200px;background:radial-gradient(ellipse at bottom left,#0a1a0a,#050a05);border-radius:14px;position:relative;overflow:hidden;border:1px solid #1a3a1a}
.crash-cv canvas{width:100%;height:100%}
.crash-num{text-align:center;margin:16px 0;font-size:56px;font-weight:900;font-variant-numeric:tabular-nums;transition:all .3s}
.crash-num.up{color:#69f0ae;text-shadow:0 0 25px rgba(105,240,174,.4)}
.crash-num.dn{color:#ef5350;text-shadow:0 0 25px rgba(244,67,54,.4);animation:crashDead .4s ease}
.crash-num.got{color:#ffd740;text-shadow:0 0 25px rgba(255,215,64,.4);animation:cashGlow .6s ease}
/* Pulse effect while rising */
.crash-num.rising{animation:crashPulse .5s ease infinite}
/* ========== MINES ========== */
.mg{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}
.mc{aspect-ratio:1;border-radius:10px;background:linear-gradient(145deg,#152215,#0d1a0d);border:2px solid #1a3a1a;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer;transition:all .2s;position:relative;overflow:hidden}
.mc:hover:not(.dn){border-color:#4caf50;box-shadow:0 0 12px rgba(76,175,80,.25);transform:scale(1.03)}
.mc:not(.dn)::after{content:'?';font-size:16px;color:#2a4a2a;font-weight:700;opacity:.4}
.mc:active:not(.dn){transform:scale(.9)}
.mc.ok{background:linear-gradient(145deg,#1b5e20,#0d3d0d);border-color:#69f0ae;box-shadow:0 0 15px rgba(105,240,174,.25)}
.mc.no{background:linear-gradient(145deg,#4a1a1a,#2e0d0d);border-color:#ef5350;box-shadow:0 0 15px rgba(244,67,54,.25)}
.mc.dn{cursor:default}
.mc.pop{animation:cellPop .35s cubic-bezier(.175,.885,.32,1.275)}
/* Tension: cells glow slightly redder as more are revealed */
.mc.tense{border-color:#5a3a1a}
.mhud{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.mhud-x{font-size:28px;font-weight:800;color:#69f0ae;text-shadow:0 0 12px rgba(105,240,174,.25)}
.msel{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.msel label{color:#4a8a4a;font-size:12px}
.msel select{background:#122212;color:#a5d6a7;border:1px solid #2a4a2a;border-radius:7px;padding:5px 8px;font-size:13px}
/* ========== DICE ========== */
.dice-ring{width:150px;height:150px;border-radius:50%;margin:12px auto;display:flex;align-items:center;justify-content:center;border:6px solid #1a3a1a;position:relative;overflow:hidden;transition:all .35s;background:radial-gradient(circle,#0d1a0d,#050a05)}
.dice-ring.w{border-color:#69f0ae;color:#69f0ae;box-shadow:0 0 30px rgba(105,240,174,.35),0 0 60px rgba(105,240,174,.1);animation:diceWin .5s ease}
.dice-ring.l{border-color:#ef5350;color:#ef5350;box-shadow:0 0 30px rgba(244,67,54,.35);animation:diceLose .4s ease}
.dice-ring.rolling{animation:diceGlow .12s infinite alternate;border-color:#4caf50}
.dice-val{font-size:48px;font-weight:900;line-height:1;min-width:110px;text-align:center;font-variant-numeric:tabular-nums}
.ddir{display:flex;border-radius:10px;overflow:hidden;margin:14px 0;border:1px solid #1a3a1a}
.ddir button{flex:1;padding:11px;border:none;text-align:center;font-size:14px;font-weight:700;cursor:pointer;background:#0d1a0d;color:#4a8a4a;transition:all .15s}
.ddir button.on{background:linear-gradient(135deg,#2e7d32,#1b5e20);color:#e8f5e9;box-shadow:inset 0 0 10px rgba(105,240,174,.1)}
.dslider{width:100%;margin:10px 0;-webkit-appearance:none;background:transparent}
.dslider::-webkit-slider-runnable-track{height:10px;border-radius:5px;background:linear-gradient(90deg,#4caf50 var(--p),#ef5350 var(--p))}
.dslider::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:radial-gradient(circle,#fff,#ddd);margin-top:-9px;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.5),0 0 8px rgba(105,240,174,.3);border:2px solid #4caf50}
.drow{display:flex;justify-content:space-between;color:#4a8a4a;font-size:13px;margin:4px 0}
.drow b{color:#a5d6a7;font-size:14px}
/* === HISTORY === */
.hr{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #1a2a1a}
.hr:last-child{border:none}
.hr-l{display:flex;align-items:center;gap:6px;font-size:13px;color:#81c784}
.hr-r{font-size:14px;font-weight:700}
.hr-r.pos{color:#69f0ae}
.hr-r.neg{color:#ef9a9a}
/* === MODALS === */
.ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:100;align-items:flex-end;justify-content:center}
.ov.on{display:flex}
.sh{background:linear-gradient(180deg,#122212,#0a0f0a);border-radius:18px 18px 0 0;padding:22px;width:100%;max-width:420px;animation:shUp .25s ease;border-top:2px solid #2a4a2a}
.sh h3{font-size:17px;color:#a5d6a7;margin-bottom:14px}
.sh p{color:#6a9a6a;font-size:13px;margin:5px 0}
.sh .v{color:#69f0ae;font-weight:700}
.sh-btns{display:flex;gap:8px;margin-top:18px}
.sh-btns button{flex:1;padding:11px;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer}
.sh-ok{background:linear-gradient(135deg,#43a047,#2e7d32);color:#e8f5e9}
.sh-no{background:#1a2a1a;color:#6a9a6a}
.pkgs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.pk{background:#0d1a0d;border-radius:10px;padding:12px;text-align:center;cursor:pointer;border:2px solid #1a3a1a;transition:all .12s}
.pk.on{border-color:#69f0ae;box-shadow:0 0 12px rgba(105,240,174,.15)}
.pk-c{font-size:20px;font-weight:800;color:#ffd740}
.pk-s{font-size:11px;color:#6a9a6a;margin-top:3px}
.toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:rgba(27,62,27,.95);color:#69f0ae;padding:10px 24px;border-radius:24px;font-size:13px;font-weight:600;z-index:200;opacity:0;transition:all .25s;pointer-events:none;border:2px solid #2a4a2a;box-shadow:0 4px 15px rgba(0,0,0,.3);max-width:90vw;text-align:center}
.toast.on{opacity:1}
/* === COIN RAIN === */
.coin-rain{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:998;overflow:hidden}
.coin{position:absolute;top:-30px;font-size:20px;animation:coinFall linear forwards}
/* === STATS BAR === */
.stats-bar{display:flex;gap:6px;padding:0 14px 6px;overflow-x:auto;scrollbar-width:none}
.stats-bar::-webkit-scrollbar{display:none}
.stat-chip{flex:0 0 auto;display:flex;align-items:center;gap:4px;background:rgba(76,175,80,.06);border:1px solid #1a3a1a;border-radius:16px;padding:3px 10px;font-size:10px;font-weight:600;color:#6a9a6a}
.stat-chip b{color:#69f0ae;font-size:11px}
.stat-chip.neg b{color:#ef9a9a}
/* === AUTO PLAY === */
.auto-dice{display:flex;gap:5px;margin-top:6px}
.auto-dice .abtn{font-size:11px;padding:6px}
/* === ROULETTE SPIN === */
.rl-spinning{animation:rlSpin 1.2s cubic-bezier(.17,.67,.12,1)}
/* === NAV BADGE === */
.nav-badge{position:absolute;top:2px;right:50%;transform:translateX(12px);width:6px;height:6px;border-radius:50%;background:#ffd740;box-shadow:0 0 6px rgba(255,215,64,.5)}
/* === CRASH HISTORY DOTS === */
.cr-dots{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px;min-height:22px}
.cr-dot{font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;line-height:1.2}
.cr-dot.hi{background:rgba(105,240,174,.1);color:#69f0ae}
.cr-dot.md{background:rgba(255,215,64,.1);color:#ffd740}
.cr-dot.lo{background:rgba(239,83,80,.1);color:#ef9a9a}
/* === MINES DANGER === */
.m-danger{height:4px;border-radius:2px;margin:8px 0 4px;background:#1a3a1a;overflow:hidden}
.m-danger-fill{height:100%;border-radius:2px;transition:width .3s,background .3s}
/* === PROMO/SHARE === */
.promo-input{width:100%;padding:12px;border:2px solid #2a4a2a;border-radius:10px;background:#0d1a0d;color:#69f0ae;font-size:16px;font-weight:700;text-align:center;letter-spacing:2px;text-transform:uppercase;outline:none;transition:border-color .2s}
.promo-input:focus{border-color:#4caf50}
.promo-input::placeholder{color:#2a4a2a;letter-spacing:1px;text-transform:none;font-weight:400}
.share-row{display:flex;gap:6px;margin-top:8px}
.share-btn{flex:1;padding:8px;border:1px solid #2a4a2a;background:rgba(76,175,80,.06);color:#81c784;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;text-align:center;transition:all .12s}
.share-btn:active{background:rgba(76,175,80,.15);color:#69f0ae}
/* === QUICK REPLAY === */
.replay{display:none;text-align:center;margin-top:8px}
.replay.on{display:block}
.replay-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 20px;border:1px solid #2a4a2a;background:rgba(76,175,80,.08);color:#69f0ae;border-radius:20px;font-size:13px;font-weight:700;cursor:pointer;transition:all .12s;animation:replayPop .3s ease}
.replay-btn:active{background:rgba(76,175,80,.2);transform:scale(.95)}
/* Slot win line */
.reel-box.win-reel{box-shadow:inset 0 0 30px rgba(0,0,0,.8),0 0 15px rgba(105,240,174,.5),0 0 30px rgba(105,240,174,.2)}
.reel-box.win-reel .rc.bright{animation:reelGlow .6s ease infinite}
.win-line{position:absolute;top:50%;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#69f0ae,#ffd740,#69f0ae,transparent);z-index:4;transform:translateY(-50%);animation:winLinePulse 1s ease infinite}
@keyframes winLinePulse{0%,100%{opacity:.6}50%{opacity:1}}
/* Bet input overlay */
.bet-display{text-align:center;font-size:18px;font-weight:800;color:#ffd740;padding:8px;cursor:pointer;border:1px dashed #2a4a2a;border-radius:8px;margin-bottom:6px;transition:all .2s}
.bet-display:active{background:rgba(255,215,64,.1);transform:scale(.97)}
.bet-input-wrap{display:none;margin-bottom:8px}
.bet-input-wrap.on{display:flex;gap:6px;align-items:center}
.bet-input{flex:1;background:#0a1a0a;border:2px solid #2a4a2a;border-radius:8px;padding:10px;color:#ffd740;font-size:18px;font-weight:700;text-align:center;outline:none;-webkit-appearance:none}
.bet-input:focus{border-color:#4caf50;box-shadow:0 0 10px rgba(76,175,80,.2)}
.bet-ok{padding:10px 16px;background:#2e7d32;border:none;border-radius:8px;color:#e8f5e9;font-weight:700;font-size:14px;cursor:pointer}
/* Quick repeat button */
.repeat-btn{display:none;margin-top:6px;padding:10px;background:rgba(76,175,80,.1);border:1px solid #2a4a2a;border-radius:10px;color:#69f0ae;font-size:13px;font-weight:700;cursor:pointer;width:100%;text-align:center;transition:all .15s}
.repeat-btn.on{display:block;animation:fadeIn .3s ease}
.repeat-btn:active{transform:scale(.97);background:rgba(76,175,80,.2)}
/* Streak indicator */
.streak-badge{position:absolute;top:-4px;right:-4px;background:#ff5722;color:#fff;font-size:8px;font-weight:900;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;animation:streakPop .3s ease}
@keyframes streakPop{from{transform:scale(0)}to{transform:scale(1)}}
.hot-game{box-shadow:0 0 12px rgba(255,87,34,.3);border-color:#ff5722!important}
/* Daily bonus calendar */
.day-cell{aspect-ratio:1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid #1a3a1a;background:#0a1a0a;color:#4a8a4a;transition:all .2s}
.day-cell.claimed{background:#1b5e20;border-color:#4caf50;color:#fff}
.day-cell.today{border-color:#ffd740;box-shadow:0 0 8px rgba(255,215,64,.3)}
.day-cell.future{opacity:.4}
.day-cell .day-n{font-size:8px;opacity:.6}
.day-cell .day-v{font-size:12px}
/* Auto-play settings */
.auto-settings{display:none;margin-top:6px;padding:8px;background:rgba(76,175,80,.03);border:1px solid #1a3a1a;border-radius:8px;font-size:11px}
.auto-settings.on{display:block}
.auto-row{display:flex;gap:4px;align-items:center;margin-bottom:4px}
.auto-lbl{color:#4a8a4a;min-width:60px}
.auto-inp{flex:1;background:#0a1a0a;border:1px solid #2a4a2a;border-radius:6px;padding:5px 8px;color:#ffd740;font-size:12px;font-weight:600;text-align:center;outline:none;max-width:80px}
.auto-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;color:#6a9a6a;font-size:11px;margin-top:4px}
/* === BLACKJACK CARDS === */
.bj-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:52px;height:72px;border-radius:8px;margin:3px;box-shadow:0 2px 8px rgba(0,0,0,.4),0 0 1px rgba(255,255,255,.1);animation:bjDeal .35s ease both;position:relative;overflow:hidden}
.bj-card.bj-red{background:linear-gradient(145deg,#fff 0%,#f5f0f0 100%);border:1.5px solid #ddd}
.bj-card.bj-blk{background:linear-gradient(145deg,#fff 0%,#f0f0f5 100%);border:1.5px solid #ddd}
.bj-card.bj-back{background:linear-gradient(135deg,#1b5e20 0%,#2e7d32 40%,#1b5e20 100%);border:1.5px solid #4caf50;color:#81c784}
.bj-card-inner{display:flex;flex-direction:column;align-items:center;gap:2px}
.bj-rank{font-size:22px;font-weight:900;line-height:1}
.bj-suit{font-size:16px;line-height:1}
.bj-red .bj-rank,.bj-red .bj-suit{color:#d32f2f}
.bj-blk .bj-rank,.bj-blk .bj-suit{color:#222}
@keyframes bjDeal{from{transform:translateY(-20px) rotateY(90deg);opacity:0}to{transform:translateY(0) rotateY(0);opacity:1}}
/* Roulette number grid */
.rl-n{padding:6px 0;text-align:center;color:#fff;font-size:11px;font-weight:700;border-radius:4px;cursor:pointer;transition:all .15s;border:2px solid transparent}
.rl-n:hover{transform:scale(1.1);box-shadow:0 0 8px rgba(255,255,255,.2)}
.rl-n.sel{border-color:#ffd740;box-shadow:0 0 12px rgba(255,215,64,.4);transform:scale(1.15)}
/* Plinko risk buttons */
.plk-low.on{background:rgba(76,175,80,.15)!important;border-color:#69f0ae!important;color:#69f0ae!important}
.plk-med.on{background:rgba(255,152,0,.15)!important;border-color:#ffa726!important;color:#ffa726!important}
.plk-hi.on{background:rgba(239,83,80,.15)!important;border-color:#ef5350!important;color:#ef5350!important}
/* Share win button */
.share-win{text-align:center;margin-top:8px;animation:fadeIn .3s ease}
.share-win button{background:rgba(76,175,80,.1);border:1px solid #2a4a2a;border-radius:20px;color:#69f0ae;padding:6px 16px;font-size:11px;font-weight:600;cursor:pointer}
.share-win button:active{background:rgba(76,175,80,.2);transform:scale(.97)}
/* Tower */
.tw-row{display:flex;align-items:center;gap:3px;padding:2px 0}
.tw-mult{width:36px;font-size:10px;font-weight:700;color:#4a8a4a;text-align:right}
.tw-cell{flex:1;aspect-ratio:1.5;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s}
.tw-pick{background:linear-gradient(145deg,#1a3a1a,#0d2a0d);border:2px solid #3d8b3d;cursor:pointer}
.tw-pick:hover{border-color:#69f0ae;box-shadow:0 0 12px rgba(105,240,174,.3);transform:scale(1.05)}
.tw-pick:active{transform:scale(.9)}
.tw-safe{background:rgba(105,240,174,.15);border:2px solid #69f0ae;animation:twReveal .4s ease}
.tw-danger{background:rgba(239,83,80,.15);border:2px solid #ef5350;animation:shakeIt .4s;animation:shakeIt .5s ease}
.tw-empty{background:#0a1a0a;border:2px solid #1a2a1a;color:#2a3a2a;font-size:10px}
.tw-locked-cell{background:#0d150d;border:2px solid #1a2a1a;color:#1a2a1a;font-size:12px}
.tw-row.tw-active{background:rgba(105,240,174,.05);border-radius:8px}
.tw-row.tw-passed .tw-mult{color:#69f0ae}
.tw-row.tw-locked .tw-mult{color:#1a2a1a}
/* Keno */
.kn-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}
.kn-cell{aspect-ratio:1;border-radius:8px;background:#0d1a0d;border:2px solid #1a3a1a;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#4a8a4a;cursor:pointer;transition:all .15s;user-select:none}
.kn-cell:hover{border-color:#4caf50;transform:scale(1.08)}
.kn-cell:active{transform:scale(.9)}
.kn-cell.kn-sel{background:linear-gradient(145deg,#1a4a1a,#0d3a0d);border-color:#69f0ae;color:#69f0ae;box-shadow:0 0 8px rgba(105,240,174,.3)}
.kn-cell.kn-hit{background:rgba(105,240,174,.25);border-color:#69f0ae;color:#fff;animation:mineFlip .4s}
.kn-cell.kn-drawn{background:rgba(255,215,64,.1);border-color:#ffd740;color:#ffd740;animation:knDraw .3s ease}
.kn-cell.kn-miss{opacity:.4;border-color:#ef5350;color:#ef5350}
.kn-pay{font-size:10px;padding:2px 6px;background:#0d1a0d;border-radius:6px;color:#6a9a6a}
.kn-pay.kn-big{color:#ffd740;font-weight:700}
/* Tower polish */
.tw-row.tw-active .tw-pick{animation:twPulse 1.5s ease infinite}
@keyframes twPulse{0%,100%{box-shadow:0 0 6px rgba(105,240,174,.2)}50%{box-shadow:0 0 16px rgba(105,240,174,.5)}}
.tw-row.tw-passed{opacity:.6}
@keyframes twReveal{0%{transform:scale(0) rotateY(180deg)}100%{transform:scale(1) rotateY(0)}}
/* Keno ball pop animation */
.kn-cell.kn-hit{animation:knPop .4s ease}
@keyframes knPop{0%{transform:scale(0.3)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
@keyframes knDraw{0%{transform:scale(0.5);opacity:0}100%{transform:scale(1);opacity:1}}
/* Crash Multiplayer */
.mp-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid #1a2a1a}
.mp-name{color:#a5d6a7;font-weight:600;flex:2}
.mp-bet{color:#ffd740;flex:1;text-align:center}
.mp-cashout-btn{background:linear-gradient(135deg,#ffd740,#ff9800)!important;color:#000!important;animation:mpPulse 1s ease infinite}
@keyframes mpPulse{0%,100%{box-shadow:0 0 8px rgba(255,215,64,.3)}50%{box-shadow:0 0 20px rgba(255,215,64,.6)}}
#mp-cv{position:relative}
#mp-cn{z-index:2}
@keyframes shakeIt{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@keyframes balPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@keyframes pgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes slotGlow{0%,100%{box-shadow:0 0 20px rgba(105,240,174,.3)}50%{box-shadow:0 0 35px rgba(105,240,174,.5)}}
@keyframes multPop{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{transform:translate(-50%,-50%) scale(1.3);opacity:1}40%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-70%) scale(.8);opacity:0}}
@keyframes fireWave{from{transform:scale(1) rotate(-5deg)}to{transform:scale(1.15) rotate(5deg)}}
@keyframes mineFlip{0%{transform:rotateY(0) scale(1)}50%{transform:rotateY(90deg) scale(.8)}100%{transform:rotateY(0) scale(1)}}
@keyframes cardFlip3d{0%{transform:rotateY(180deg) scale(.6);opacity:0}40%{transform:rotateY(-15deg) scale(1.05)}60%{transform:rotateY(5deg)}100%{transform:rotateY(0) scale(1);opacity:1}}
@keyframes tickerScroll{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
@keyframes cardDeal{0%{transform:translateX(60px) rotate(15deg) scale(.5);opacity:0}100%{transform:translateX(0) rotate(0) scale(1);opacity:1}}
@keyframes floatUp{0%{transform:translateY(0) scale(1);opacity:1}100%{transform:translateY(-60px) scale(1.5);opacity:0}}
@keyframes reelGlow{0%{transform:scale(1)}50%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes crashDead{0%{transform:scale(1)}30%{transform:scale(1.3)}100%{transform:scale(1);opacity:.8}}
@keyframes cashGlow{0%{transform:scale(1)}40%{transform:scale(1.2);filter:brightness(1.5)}100%{transform:scale(1)}}
@keyframes crashPulse{0%,100%{opacity:1}50%{opacity:.85}}
@keyframes cellPop{0%{transform:scale(0) rotate(-10deg);opacity:0}60%{transform:scale(1.2) rotate(3deg)}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes diceWin{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes diceLose{0%{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}100%{transform:translateX(0)}}
@keyframes diceGlow{from{box-shadow:0 0 15px rgba(105,240,174,.2);transform:scale(1)}to{box-shadow:0 0 40px rgba(105,240,174,.5);transform:scale(1.02)}}
@keyframes shUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
@keyframes coinFall{0%{transform:translateY(-20px) rotate(0) scale(0);opacity:0}10%{opacity:1;transform:translateY(0) rotate(30deg) scale(1)}90%{opacity:.8}100%{transform:translateY(100vh) rotate(720deg) scale(.5);opacity:0}}
@keyframes rlSpin{0%{transform:rotate(0)}100%{transform:rotate(1080deg)}}
@keyframes replayPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes drift{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}100%{transform:translateY(-10vh) rotate(360deg);opacity:0}}
@keyframes gemPop{0%{transform:scale(0) rotate(-20deg)}60%{transform:scale(1.3) rotate(10deg)}100%{transform:scale(1) rotate(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* Screen shake */
@keyframes screenShake{0%,100%{transform:translateX(0)}10%{transform:translateX(-4px) rotate(-0.5deg)}20%{transform:translateX(4px) rotate(0.5deg)}30%{transform:translateX(-3px)}40%{transform:translateX(3px)}50%{transform:translateX(-2px)}60%{transform:translateX(2px)}70%{transform:translateX(-1px)}80%{transform:translateX(1px)}}
body.shake{animation:screenShake .5s ease}

/* Jackpot explosion */
@keyframes jackpotPulse{0%{transform:scale(1);text-shadow:0 0 10px #ffd740}50%{transform:scale(1.2);text-shadow:0 0 30px #ffd740,0 0 60px #ff9800}100%{transform:scale(1);text-shadow:0 0 10px #ffd740}}
.jackpot-text{animation:jackpotPulse .6s ease infinite;color:#ffd740;font-size:28px;font-weight:900}

/* Smooth number counter */
@keyframes countUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.count-anim{animation:countUp .3s ease}

/* Balance win/loss flash */
@keyframes balWin{0%{transform:scale(1);box-shadow:none}50%{transform:scale(1.15);box-shadow:0 0 12px rgba(105,240,174,.4)}100%{transform:scale(1);box-shadow:none}}
@keyframes balLose{0%{transform:scale(1)}30%{transform:scale(0.95);filter:brightness(1.5) hue-rotate(300deg)}100%{transform:scale(1)}}
.bal-win{animation:balWin .4s ease!important}
.bal-lose{animation:balLose .3s ease!important}

/* Loading spinner for buttons */
@keyframes btnSpin{to{transform:rotate(360deg)}}
.gbtn.loading{pointer-events:none;opacity:.7}
.gbtn.loading::after{content:'';display:inline-block;width:14px;height:14px;border:2px solid transparent;border-top:2px solid #fff;border-radius:50%;animation:btnSpin .6s linear infinite;margin-left:8px;vertical-align:middle}

/* Coin flip */
@keyframes coinFlip{
  0%{transform:rotateY(0) scale(1)}
  25%{transform:rotateY(450deg) scale(1.2)}
  50%{transform:rotateY(900deg) scale(1)}
  75%{transform:rotateY(1350deg) scale(1.2)}
  100%{transform:rotateY(1800deg) scale(1)}
}
.coin{width:80px;height:80px;border-radius:50%;margin:0 auto;font-size:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffd740,#ff9800);box-shadow:0 4px 15px rgba(255,215,64,.3);font-weight:900}
.coin.flipping{animation:coinFlip 1.5s ease-out}
.coin.win{background:linear-gradient(135deg,#69f0ae,#2e7d32);box-shadow:0 4px 25px rgba(105,240,174,.5)}
.coin.lose{background:linear-gradient(135deg,#ef5350,#c62828);box-shadow:0 4px 25px rgba(239,83,80,.5)}

@keyframes gemSparkle{0%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 12px rgba(105,240,174,.8),0 0 20px rgba(105,240,174,.4)}100%{text-shadow:0 0 0 transparent}}
.mc.ok{animation:cellPop .35s cubic-bezier(.175,.885,.32,1.275),gemSparkle 1.5s ease infinite .35s}

/* Page slide transitions */
.pg{transition:opacity .15s ease,transform .15s ease}
.pg.slide-in-right{animation:slideInRight .2s ease}
.pg.slide-in-left{animation:slideInLeft .2s ease}
@keyframes slideInRight{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}

/* Crash shockwave */
@keyframes shockwave{0%{transform:translate(-50%,-50%) scale(0);opacity:1}100%{transform:translate(-50%,-50%) scale(3);opacity:0}}
.shockwave{position:absolute;top:50%;left:50%;width:100px;height:100px;border-radius:50%;border:3px solid #ef5350;pointer-events:none;z-index:10;animation:shockwave .6s ease-out forwards}

/* Mine reveal ripple */
@keyframes mineRipple{0%{box-shadow:0 0 0 0 rgba(105,240,174,.4)}100%{box-shadow:0 0 0 15px transparent}}
.mc.ok.pop{animation:cellPop .35s cubic-bezier(.175,.885,.32,1.275),mineRipple .6s ease .35s}

/* Emoji rain */
@keyframes emojiDrop{0%{transform:translateY(0) rotate(0deg);opacity:0.8}100%{transform:translateY(100vh) rotate(360deg);opacity:0}}

/* Onboarding */
.onboard-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);z-index:500;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease;transition:opacity .3s}
.onboard-card{background:#0a1a0a;border:2px solid #2a5a2a;border-radius:16px;padding:24px;max-width:300px;width:90%;text-align:center;animation:popIn .4s ease}
@keyframes popIn{0%{transform:scale(.8);opacity:0}100%{transform:scale(1);opacity:1}}

/* Jackpot pulse */
@keyframes jpPulse{0%,100%{opacity:1}50%{opacity:.6;text-shadow:0 0 10px rgba(255,215,64,.5)}}
#jp-bar{animation:jpPulse 3s ease infinite}

/* Active nav icon pulse */
.nav-i.on .ni{animation:navPulse 2s ease infinite}
@keyframes navPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}

/* Game card top accent */
.cd{position:relative;overflow:hidden}
.cd::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#2a5a2a,#69f0ae,#2a5a2a,transparent);opacity:.5}

/* Smooth page enter */
.pg.on{animation:pgSlideIn .25s ease}
@keyframes pgSlideIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* Loading screen */
#loading-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:#0a0f0a;z-index:999;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .4s}
#loading-screen.out{opacity:0;pointer-events:none}
.loading-logo{font-size:48px;animation:loadBounce 1.5s ease infinite}
@keyframes loadBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.loading-text{color:#4a8a4a;font-size:14px;margin-top:12px;font-weight:600}
.loading-dots::after{content:'';animation:dots 1.5s steps(4) infinite}
@keyframes dots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}

/* Bet button highlight */
.bb.just-selected{animation:betSelect .3s ease;box-shadow:0 0 12px rgba(105,240,174,.3)}
@keyframes betSelect{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}

/* Toast improvements */
.toast{backdrop-filter:blur(8px)}

/* Reel spinning blur */
.strip.spinning .rc{filter:blur(2px);transition:filter .15s}
.strip .rc{filter:none;transition:filter .2s .1s}
.rc.bright{filter:none!important;text-shadow:0 0 12px rgba(255,215,64,.8);transform:scale(1.15);transition:all .3s}

/* Win line */
.slot-winline{position:absolute;left:0;right:0;height:3px;background:#ffd740;top:50%;transform:translateY(-50%);z-index:5;box-shadow:0 0 15px rgba(255,215,64,.5);animation:winLinePulse .6s ease 3;pointer-events:none}
@keyframes winLinePulse{0%,100%{opacity:1;height:3px}50%{opacity:.5;height:5px}}
