
:root{
  --ink:#0a0d0c;
  --jade:#0f201c;
  --jade-hi:#1c3a32;
  --lacquer:#8f1622;
  --lacquer-dk:#4d0a13;
  --gold:#e8b64c;
  --gold-hi:#ffe9a8;
  --gold-dk:#7a5416;
  --cream:#f7ecd2;
  --green:#3fae7a;
  --blue:#5a8fd8;
  --violet:#a678d8;
  --cellH:76px;
}
@media(max-width:480px){:root{--cellH:60px}}
@media(max-width:380px){:root{--cellH:52px}}

*{box-sizing:border-box;margin:0;padding:0}
button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:'Marcellus','Noto Sans',serif;color:var(--cream);
  user-select:none;-webkit-user-select:none;overscroll-behavior:none;
  background:
    linear-gradient(180deg, rgba(12,6,20,.45), rgba(10,5,16,.72) 52%, rgba(6,3,10,.9)),
    url("../assets/bg/tex0.webp") center top / cover no-repeat,
    #0a0612;
  min-height:100vh;display:flex;flex-direction:column;align-items:center;
  padding:16px 10px 56px;overflow-x:hidden;
}
/* gold dust */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.10;
  background-image:radial-gradient(circle, rgba(255,233,168,.9) 1px, transparent 1.6px);
  background-size:56px 56px;
}
.stage{width:calc(100vw - 20px);max-width:580px;min-width:0}

/* ═══ Brand ═══ */
.brand{text-align:center;margin-bottom:10px;position:relative}
.brand h1{
  font-family:'Cinzel Decorative',serif;font-weight:900;
  font-size:clamp(26px,6.6vw,46px);line-height:1.05;letter-spacing:.06em;
  background:linear-gradient(180deg,#fff6d8 4%, var(--gold-hi) 26%, var(--gold) 52%, #a4762a 74%, var(--gold-hi) 96%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 0 #3d2a08) drop-shadow(0 0 18px rgba(232,182,76,.35));
}
.brand .hanzi{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-58%);
  font-size:clamp(60px,17vw,110px);color:rgba(143,22,34,.16);
  font-family:serif;z-index:-1;user-select:none;
}
.brand .sub{
  font-family:'Marcellus',serif;font-size:10px;letter-spacing:.5em;
  color:#b99a5e;text-transform:uppercase;margin-top:4px;
}
.brand .rule{
  width:180px;height:1px;margin:10px auto 0;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}

/* ═══ Jackpot bar ═══ */
.jackpots{
  display:grid;grid-template-columns:1fr 1fr;gap:6px;
  padding:10px;margin-bottom:10px;border-radius:14px;
  background:linear-gradient(180deg,#141110,#070606);
  border:1px solid rgba(232,182,76,.4);
  box-shadow:0 0 0 1px #000, 0 6px 22px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,233,168,.12);
}
.jp{
  position:relative;overflow:hidden;border-radius:9px;
  padding:6px 10px;display:flex;align-items:center;gap:8px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(0,0,0,.35));
  border:1px solid rgba(255,255,255,.08);
}
.jp::after{
  content:"";position:absolute;inset:-120% -40%;
  background:linear-gradient(105deg,transparent 45%,rgba(255,255,255,.16),transparent 55%);
  animation:sheen 4.2s infinite;
}
@keyframes sheen{to{transform:translateX(85%)}}
.jp.grand{grid-column:1/-1;border-color:rgba(232,80,80,.5)}
.jp .tag{
  font-family:'Cinzel',serif;font-weight:900;font-size:10px;letter-spacing:.18em;
  padding:2px 9px;border-radius:5px;color:#fff;text-shadow:0 1px 1px #000;min-width:66px;text-align:center;
}
.jp .amt{
  flex:1;text-align:right;font-family:'Cinzel',serif;font-weight:900;
  font-variant-numeric:tabular-nums;
}
.jp.grand .tag{background:linear-gradient(180deg,#e0484f,var(--lacquer))}
.jp.grand .amt{font-size:clamp(20px,5.6vw,28px);color:var(--gold-hi);text-shadow:0 0 14px rgba(232,182,76,.7)}
.jp.major .tag{background:linear-gradient(180deg,#e8b64c,#8a5f13)}
.jp.major .amt{font-size:16px;color:var(--gold)}
.jp.minor .tag{background:linear-gradient(180deg,#4fc18d,#1d6a48)}
.jp.minor .amt{font-size:14px;color:var(--green)}
.jp.mini .tag{background:linear-gradient(180deg,#7aa8e8,#2f5a9e)}
.jp.mini .amt{font-size:14px;color:var(--blue)}

/* ═══ Machine ═══ */
.machine{
  position:relative;border-radius:22px;padding:14px 12px;
  background:
    radial-gradient(140% 90% at 50% 0%, rgba(255,255,255,.07), transparent 40%),
    linear-gradient(160deg,#2a0910 0%, #4d0a13 30%, #6d101d 52%, #2a0710 100%);
  border:1px solid rgba(232,182,76,.55);
  box-shadow:
    0 0 0 4px #120405,
    0 0 0 5px rgba(232,182,76,.35),
    0 26px 60px rgba(0,0,0,.75),
    0 0 60px rgba(143,22,34,.25),
    inset 0 1px 0 rgba(255,233,168,.25);
}
.machine.shake{animation:shake .5s ease}
@keyframes shake{15%,85%{transform:translateX(-3px)}30%,70%{transform:translateX(4px)}45%,55%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
/* carved corner ornaments */
.corner{position:absolute;width:26px;height:26px;pointer-events:none;
  border:2px solid var(--gold);opacity:.85}
.corner.tl{top:7px;left:7px;border-right:0;border-bottom:0;border-radius:8px 0 0 0}
.corner.tr{top:7px;right:7px;border-left:0;border-bottom:0;border-radius:0 8px 0 0}
.corner.bl{bottom:7px;left:7px;border-right:0;border-top:0;border-radius:0 0 0 8px}
.corner.br{bottom:7px;right:7px;border-left:0;border-top:0;border-radius:0 0 8px 0}

.nameplate{
  width:max-content;margin:-26px auto 12px;padding:4px 22px;border-radius:999px;
  font-family:'Cinzel',serif;font-weight:900;font-size:12px;letter-spacing:.3em;
  color:#2b1a02;text-transform:uppercase;
  background:linear-gradient(180deg,var(--gold-hi),var(--gold) 55%,#a4762a);
  border:1px solid #5c420f;
  box-shadow:0 3px 8px rgba(0,0,0,.6), inset 0 1px 0 #fff8e0;
}

/* screen + reels */
.screen{
  position:relative;border-radius:14px;padding:8px;margin:20px 8px 18px;
  background:#050807;
  border:1px solid rgba(232,182,76,.4);
  box-shadow:inset 0 0 34px #000, inset 0 0 4px #000;
}
.reel-frame{
  position:absolute;left:-18px;top:-17px;width:calc(100% + 36px);height:calc(100% + 34px);
  pointer-events:none;z-index:9;object-fit:fill;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.55));
}
.glass{
  content:"";position:absolute;inset:8px;z-index:8;pointer-events:none;border-radius:10px;
  background:linear-gradient(112deg,rgba(255,255,255,.10),transparent 20%,transparent 58%,rgba(255,255,255,.05) 68%,transparent 78%);
  mix-blend-mode:screen;
}
.grid{display:flex;gap:6px;position:relative}
.reel{
  flex:1;min-width:0;border-radius:9px;overflow:hidden;position:relative;
  background:
    linear-gradient(90deg,rgba(0,0,0,.35),transparent 15%,transparent 85%,rgba(0,0,0,.35)),
    linear-gradient(180deg,#241228, #1b0d20 40%, #120818);
  border:1px solid rgba(232,182,76,.28);
  box-shadow:inset 0 10px 18px rgba(0,0,0,.5), inset 0 -10px 18px rgba(0,0,0,.5);
}
.reel::before,.reel::after{content:"";position:absolute;left:0;right:0;height:26%;z-index:5;pointer-events:none}
.reel::before{top:0;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent)}
.reel::after{bottom:0;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent)}
.reel-window{height:calc(var(--cellH)*3);overflow:hidden}
.strip{display:flex;flex-direction:column;will-change:transform}
.strip.blur{filter:blur(2.5px) saturate(1.15)}
.cell{
  height:var(--cellH);display:grid;place-items:center;
  border-bottom:1px solid rgba(232,182,76,.12);
}
.cell img{width:calc(var(--cellH)*.9);height:calc(var(--cellH)*.9);object-fit:contain;
  filter:drop-shadow(0 4px 5px rgba(0,0,0,.55))}
.cell.hl{animation:cellGlow .55s ease infinite alternate;position:relative;z-index:3}
@keyframes cellGlow{
  from{background:rgba(232,182,76,.10)}
  to{background:rgba(232,182,76,.34);box-shadow:inset 0 0 20px rgba(255,220,120,.55)}
}
.cell.hl img{animation:winPop .55s cubic-bezier(.2,1.7,.4,1) infinite alternate}
@keyframes winPop{to{transform:scale(1.16) rotate(1.2deg)}}
.grid.haswin .cell:not(.hl) img{filter:brightness(.38) saturate(.5);transition:filter .3s}
.reel.antic{animation:anticP .35s ease infinite alternate;z-index:4}
@keyframes anticP{from{box-shadow:0 0 10px 2px rgba(232,182,76,.5)}to{box-shadow:0 0 26px 8px rgba(255,220,120,.95)}}
.winflash{position:absolute;inset:8px;border-radius:10px;z-index:6;pointer-events:none;opacity:0;
  background:radial-gradient(circle at 50% 50%, rgba(255,236,170,.4), transparent 65%)}
.winflash.go{animation:flashA .7s ease}
@keyframes flashA{20%{opacity:1}100%{opacity:0}}
.float-win{position:absolute;left:50%;top:-8px;transform:translateX(-50%);z-index:20;pointer-events:none;
  font-family:'Cinzel',serif;font-weight:900;font-size:22px;color:#7fe0ae;
  text-shadow:0 0 12px rgba(63,174,122,.9),0 2px 2px #000;animation:floatUp 1.4s ease forwards}
@keyframes floatUp{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}25%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}100%{opacity:0;transform:translate(-50%,-56px) scale(1)}}
/* payline overlay */
.lines-svg{position:absolute;inset:0;z-index:7;pointer-events:none}
.lines-svg polyline{
  fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 0 6px currentColor);
  stroke-dasharray:900;stroke-dashoffset:900;
  animation:drawline .7s ease forwards;
}
@keyframes drawline{to{stroke-dashoffset:0}}

/* ═══ Controls ═══ */
.control{
  position:relative;
  margin-top:12px;border-radius:14px;padding:12px 10px 14px;
  background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(0,0,0,.28));
  border:1px solid rgba(255,255,255,.14);
  display:grid;gap:10px;justify-items:center;
}
.meters{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;width:100%}
.meter{
  font-family:'Cinzel',serif;font-weight:700;font-size:13px;
  background:#060a09;border:1px solid rgba(232,182,76,.35);border-radius:9px;
  padding:6px 12px;box-shadow:inset 0 0 12px #000;
  font-variant-numeric:tabular-nums;
}
.meter small{font-size:9px;letter-spacing:.14em;color:#b99a5e;display:block;text-transform:uppercase}
.meter b{color:var(--gold-hi)}
.meter.win b{color:var(--green)}
.bet-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
.pill-btn{
  font-family:'Cinzel',serif;font-weight:700;font-size:15px;
  background:#101d19;color:var(--cream);border:1px solid rgba(232,182,76,.4);
  border-radius:9px;padding:7px 15px;cursor:pointer;transition:.12s;
}
.pill-btn:active{transform:scale(.94)}
.pill-btn.small{font-size:12px;padding:6px 12px}
.pill-btn.on{background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:#2b1a02;border-color:#fff2c8;
  box-shadow:0 0 14px rgba(232,182,76,.6)}
.bet-lbl{font-size:12px;font-weight:700;letter-spacing:.12em;color:#b99a5e}
.bet-val{font-family:'Cinzel',serif;font-weight:900;font-size:18px;color:var(--gold-hi);min-width:58px;text-align:center}

.spin-btn{
  font-family:'Cinzel',serif;font-weight:900;font-size:clamp(19px,5.4vw,27px);
  letter-spacing:.24em;color:#2b1a02;border:none;cursor:pointer;border-radius:999px;
  padding:15px 66px 14px;text-transform:uppercase;
  background:linear-gradient(180deg,#fff3c9,var(--gold) 42%, #c78a1e 72%, #8a5f13);
  box-shadow:0 8px 0 #4a3208, 0 15px 28px rgba(0,0,0,.6), 0 0 26px rgba(232,182,76,.5), inset 0 2px 0 #fff8e0;
  transition:.08s;
}
.spin-btn:active:not(:disabled){transform:translateY(6px);box-shadow:0 2px 0 #4a3208, 0 6px 14px rgba(0,0,0,.5)}
.spin-btn:disabled{filter:grayscale(.6) brightness(.8);cursor:default}
.status{font-weight:700;min-height:26px;font-size:15px;text-align:center;text-shadow:0 2px 2px #000}
.status.win{color:#7fe0ae;text-shadow:0 0 12px rgba(63,174,122,.8),0 2px 2px #000}
.status.lose{color:#9aa8a0}

/* ═══ Paytable ═══ */
details.paytable{
  margin-top:14px;border-radius:14px;overflow:hidden;
  background:rgba(6,10,9,.72);border:1px solid rgba(232,182,76,.3);
}
details.paytable summary{
  cursor:pointer;list-style:none;padding:11px 16px;
  font-family:'Cinzel',serif;font-weight:900;font-size:13px;letter-spacing:.2em;color:var(--gold);
  display:flex;justify-content:space-between;align-items:center;
}
details.paytable summary::after{content:"+";font-size:18px;color:var(--gold)}
details[open].paytable summary::after{content:"–"}
.paytable .body{padding:0 16px 14px;font-size:13px}
.paytable .row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed rgba(255,255,255,.12)}
.paytable .row:last-child{border:0}
.paytable .row svg,.paytable .row img{width:30px;height:30px;flex:none;object-fit:contain}
.paytable .row .nm{flex:1;color:#d8c9a6}
.paytable .pay{font-family:'Cinzel',serif;font-weight:700;color:var(--green);font-size:12px}
.paytable .note{font-size:11px;color:#9c8a6a;margin-top:10px;line-height:1.7}

/* ═══ v6 tiered win presentation ═══ */
.overlay{
  position:fixed;inset:0;z-index:40;display:none;place-items:center;padding:20px;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,rgba(232,182,76,.20),rgba(77,10,19,.58) 52%,rgba(0,0,0,.94));
  backdrop-filter:blur(4px);isolation:isolate;
}
.overlay.show{display:grid;animation:fadeIn .28s ease}
.overlay.show::before,.overlay.show::after{content:"";position:absolute;inset:-25%;pointer-events:none;z-index:-1}
.overlay.show::before{background:conic-gradient(from 0deg,transparent,rgba(232,182,76,.12),transparent 12%,transparent 32%,rgba(255,238,170,.10),transparent 45%);animation:winRays 9s linear infinite}
.overlay.show::after{background:radial-gradient(circle at 50% 45%,rgba(255,239,177,.18),transparent 34%);animation:winPulse 1.6s ease-in-out infinite}
.overlay.mega{background:radial-gradient(circle at 50% 42%,rgba(244,192,69,.34),rgba(104,22,17,.72) 53%,rgba(0,0,0,.96))}
.overlay.epic{background:radial-gradient(circle at 50% 38%,rgba(255,218,104,.42),rgba(132,18,26,.74) 44%,rgba(15,2,3,.98) 78%)}
.overlay.jackpot{background:radial-gradient(circle at 50% 40%,rgba(255,76,76,.35),rgba(90,5,15,.76) 50%,rgba(0,0,0,.98))}
@keyframes fadeIn{from{opacity:0}}
@keyframes winRays{to{transform:rotate(360deg)}}
@keyframes winPulse{50%{transform:scale(1.12);opacity:.45}}
.bw-box{text-align:center;position:relative;min-width:min(92vw,620px);padding:24px 10px 18px;animation:winEnter .72s cubic-bezier(.16,1.35,.3,1)}
@keyframes winEnter{0%{transform:scale(.58) translateY(26px);opacity:0}70%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}
.dragon-sigil{width:92px;height:92px;margin:0 auto 4px;border-radius:50%;position:relative;
  border:2px solid rgba(255,232,146,.7);box-shadow:0 0 24px rgba(232,182,76,.5),inset 0 0 20px rgba(232,182,76,.2);
  background:radial-gradient(circle at 48% 42%,#4f1214,#160405 72%)}
.dragon-sigil::before,.dragon-sigil::after{content:"";position:absolute;top:32px;width:24px;height:9px;border-radius:80% 10%;background:#ffd96f;box-shadow:0 0 16px #ffb52f,0 0 28px rgba(255,73,20,.8)}
.dragon-sigil::before{left:16px;transform:rotate(12deg)}.dragon-sigil::after{right:16px;transform:scaleX(-1) rotate(12deg)}
.dragon-sigil span{position:absolute;left:50%;top:11px;width:2px;height:66px;background:linear-gradient(transparent,#e8b64c,transparent);transform:translateX(-50%);opacity:.6}
.bw-sub{font-family:'Marcellus',serif;font-size:10px;letter-spacing:.38em;color:#d7c59c;text-transform:uppercase;margin:12px 0 7px;text-shadow:0 2px 8px #000}
.bw-title{font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(44px,13vw,96px);line-height:.95;letter-spacing:.04em;
  background:linear-gradient(180deg,#fff9df 5%,#ffe28b 28%,#e8b64c 58%,#8b5c16 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 0 #3d2a08) drop-shadow(0 0 28px rgba(232,182,76,.78))}
.mega .bw-title{font-size:clamp(50px,14vw,104px);filter:drop-shadow(0 4px 0 #4b2703) drop-shadow(0 0 38px rgba(255,199,61,.96))}
.epic .bw-title{font-size:clamp(56px,15vw,112px);background:linear-gradient(180deg,#fff,#fff0a4 25%,#ffc73d 55%,#d83f27 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 5px 0 #551207) drop-shadow(0 0 46px rgba(255,120,30,.95));animation:epicTitle 1.1s ease-in-out infinite alternate}
.jackpot .bw-title{background:linear-gradient(180deg,#fff4f4,#ffab7e 30%,#e0484f 60%,#7a0d18);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 5px 0 #2c0308) drop-shadow(0 0 48px rgba(255,72,79,.95))}
@keyframes epicTitle{to{transform:scale(1.035);filter:drop-shadow(0 5px 0 #551207) drop-shadow(0 0 62px rgba(255,157,43,1))}}
.bw-amt{font-family:'Cinzel',serif;font-weight:900;font-size:clamp(34px,10vw,62px);color:var(--gold-hi);text-shadow:0 0 22px rgba(232,182,76,.9),0 3px 0 #3d2a08;margin-top:20px;font-variant-numeric:tabular-nums}
.epic .bw-amt,.jackpot .bw-amt{font-size:clamp(40px,11vw,70px)}
.bw-coin-label{font-family:'Cinzel',serif;font-size:9px;letter-spacing:.48em;color:#b99a5e;margin-top:3px;padding-left:.48em}
.bw-tap{margin-top:25px;font-size:11px;letter-spacing:.3em;color:#d8c9a6;text-transform:uppercase;animation:pulse 1.2s infinite}
@keyframes pulse{50%{opacity:.35}}

/* ═══ Hold & Spin bonus ═══ */
.bonus-stage{
  position:fixed;inset:0;z-index:50;display:none;place-items:center;padding:14px;
  background:
    radial-gradient(circle at 50% 16%, rgba(232,182,76,.24), transparent 32%),
    radial-gradient(circle at 50% 58%, rgba(143,22,34,.5), rgba(6,4,6,.95) 72%);
  backdrop-filter:blur(5px);
}
.bonus-stage.show{display:grid;animation:fadeIn .3s ease}
.hns{
  width:min(600px,96vw);border-radius:20px;padding:16px 14px;text-align:center;
  background:linear-gradient(165deg,#3a0710,#6d101d 40%, #200510);
  border:1px solid rgba(232,182,76,.65);
  box-shadow:0 0 0 4px #120405, 0 0 50px rgba(232,182,76,.4), inset 0 1px 0 rgba(255,233,168,.3);
}
.hns h2{
  font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(22px,5.8vw,36px);
  letter-spacing:.1em;color:var(--gold-hi);text-shadow:0 0 18px rgba(232,182,76,.7),0 3px 0 #3d2a08;
}
.hns .sub{font-size:11px;color:#e0c896;letter-spacing:.14em;margin:2px 0 12px;text-transform:uppercase}
.hns-meters{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:10px}
.hns-meter{
  font-family:'Cinzel',serif;font-weight:900;font-size:14px;
  background:#070a09;border:1px solid rgba(232,182,76,.5);border-radius:10px;
  padding:7px 14px;box-shadow:inset 0 0 14px #000;
}
.hns-meter small{display:block;font-size:8px;letter-spacing:.2em;color:#b99a5e}
.hns-meter span{color:var(--green)}
.hns-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:7px;
  background:#050706;border-radius:14px;padding:10px;
  border:1px solid rgba(232,182,76,.5);box-shadow:inset 0 0 26px #000;
}
.hns-spin{padding:11px 48px 10px;font-size:18px;margin-top:14px;letter-spacing:.18em}
.hns-cell{
  aspect-ratio:1;border-radius:11px;display:grid;place-items:center;position:relative;overflow:hidden;
  background:radial-gradient(circle at 50% 34%, rgba(255,255,255,.08), transparent 46%), linear-gradient(180deg,#141210,#070606);
  border:1px solid rgba(255,255,255,.09);
}
.hns-cell.rolling{border-color:rgba(232,182,76,.5);perspective:420px}
.rollcoin{width:84%;height:84%;border-radius:50%;position:relative;
  background:radial-gradient(circle at 36% 30%,#fff3c4,#f0c34e 42%,#b7841f 72%,#7d560f 100%);
  border:2px solid #e8c463;
  box-shadow:inset 0 2px 5px rgba(255,255,255,.7),inset 0 -4px 8px rgba(90,52,0,.7),0 4px 9px rgba(0,0,0,.5);
  animation:coinSpin .42s linear infinite;
  filter:drop-shadow(0 4px 7px rgba(0,0,0,.55))}
.rollcoin::after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;
  font:900 clamp(13px,3.4vw,20px)/1 'Cinzel',serif;color:#7d560f;
  text-shadow:0 1px 0 rgba(255,247,207,.85)}
@keyframes coinSpin{0%{transform:rotateY(0deg)}50%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}
/* slowing spin used right before a cell resolves — builds a beat of tension */
.rollcoin.slowing{animation:coinSpin .9s cubic-bezier(.2,.6,.3,1) infinite}
.rollcoin.miss{animation:coinMiss .5s cubic-bezier(.3,0,.5,1) forwards}
@keyframes coinMiss{
  0%{transform:rotateY(0) scale(1);opacity:1}
  55%{transform:rotateY(230deg) scale(.9);opacity:.85}
  100%{transform:rotateY(430deg) scale(.28);opacity:0}}
.hns-cell.flick{animation:flick .38s steps(2) infinite}
@keyframes flick{50%{background:linear-gradient(180deg,#241d12,#0c0a06);border-color:rgba(232,182,76,.4)}}
.hns-cell.locked{
  background:radial-gradient(circle at 50% 38%, rgba(232,182,76,.35), transparent 55%), linear-gradient(180deg,#2a1c04,#120b02);
  border-color:rgba(232,182,76,.85);
  box-shadow:0 0 14px rgba(232,182,76,.5), inset 0 0 14px rgba(143,60,0,.4);
  animation:lockIn .55s cubic-bezier(.2,1.5,.4,1);
}
@keyframes lockIn{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.14)}100%{transform:scale(1)}}
.hcoin{
  width:86%;height:86%;border-radius:50%;display:grid;place-items:center;text-align:center;line-height:1.05;
  font-family:'Cinzel',serif;font-weight:900;font-size:clamp(10px,2.8vw,16px);
  color:#fff2c8;
  background:radial-gradient(circle at 36% 28%,#fff3c4,#f0c34e 44%,#b7841f 74%,#7d560f 100%);
  border:2px solid #e8c463;
  box-shadow:inset 0 2px 5px rgba(255,255,255,.7),inset 0 -4px 8px rgba(90,52,0,.7),0 3px 7px rgba(0,0,0,.5);
  text-shadow:0 1px 2px rgba(90,52,0,.9),0 0 6px rgba(0,0,0,.35);
  filter:drop-shadow(0 5px 8px rgba(0,0,0,.55));
}
/* gentle idle shimmer so locked coins feel alive */
.hns-cell.locked .hcoin{animation:coinShine 2.4s ease-in-out infinite}
@keyframes coinShine{0%,100%{filter:drop-shadow(0 5px 8px rgba(0,0,0,.55)) brightness(1)}
  50%{filter:drop-shadow(0 5px 10px rgba(232,182,76,.5)) brightness(1.12)}}
.hcoin.tier{font-family:'Cinzel';font-weight:900;color:#fff;text-shadow:0 2px 2px #000;letter-spacing:.06em}
.hcoin.tier.grand{background:radial-gradient(circle at 34% 24%,#ffb0b0,#e0484f 46%, #7a0d18 82%)}
.hcoin.tier.major{background:radial-gradient(circle at 34% 24%,#fff6cf,#e8b64c 46%, #8a5f13 82%)}
.hcoin.tier.minor{background:radial-gradient(circle at 34% 24%,#c9f0dc,#3fae7a 46%, #1d5c3e 82%)}
.hcoin.tier.mini{background:radial-gradient(circle at 34% 24%,#d8e6fa,#5a8fd8 46%, #2b4f8c 82%)}

/* particles canvas + toast */
#fx{position:fixed;inset:0;z-index:60;pointer-events:none}
.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:70;
  background:#141110;color:var(--gold-hi);border:1px solid rgba(232,182,76,.5);
  border-radius:999px;padding:9px 20px;font-size:13px;font-weight:700;
  box-shadow:0 8px 24px rgba(0,0,0,.7);animation:toastIn .25s ease, fadeIn reverse .3s ease 2s forwards;
}
@keyframes toastIn{from{transform:translate(-50%,16px);opacity:0}}

footer{margin-top:22px;text-align:center;font-size:10px;color:#6d6250;letter-spacing:.12em;line-height:1.9}

/* ═══════════════════════════════════════════════
   v5.0 additions — XP bar, modals, store, settings,
   achievements, free spins, ad button
   ═══════════════════════════════════════════════ */

/* Top icon row */
.topbar{display:flex;justify-content:center;gap:8px;margin:-2px 0 10px}
.icon-btn{
  width:38px;height:38px;border-radius:10px;cursor:pointer;
  background:linear-gradient(180deg,#1c1712,#0b0908);
  border:1px solid rgba(232,182,76,.45);color:var(--gold);
  font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,233,168,.12);
}
.icon-btn:active{transform:translateY(1px)}
.icon-btn .dot{position:absolute;top:-3px;right:-3px;width:10px;height:10px;border-radius:50%;
  background:var(--lacquer);border:1px solid var(--gold);display:none}
.icon-btn.hasnew .dot{display:block}
.icon-btn{position:relative}

/* XP bar */
.xp-wrap{display:flex;align-items:center;gap:8px;margin:0 2px 10px;font-size:11px;color:#b99a5e}
.xp-wrap .lv{font-family:'Cinzel',serif;font-weight:900;color:var(--gold);white-space:nowrap}
.xp-bar{flex:1;height:9px;border-radius:6px;overflow:hidden;
  background:#0b0908;border:1px solid rgba(232,182,76,.35);box-shadow:inset 0 2px 4px rgba(0,0,0,.7)}
.xp-fill{height:100%;width:0%;border-radius:6px;transition:width .5s ease;
  background:linear-gradient(90deg,#8a5f13,var(--gold),var(--gold-hi));
  box-shadow:0 0 8px rgba(232,182,76,.6)}
.xp-wrap .pct{min-width:56px;text-align:right;font-variant-numeric:tabular-nums}

/* Generic modal */
.modal{
  position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;
  background:rgba(4,3,6,.78);backdrop-filter:blur(4px);padding:18px;
}
.modal.show{display:flex}
.modal .box{
  width:min(440px,100%);max-height:86vh;overflow-y:auto;border-radius:16px;padding:20px 18px;
  background:linear-gradient(180deg,#171310,#0a0807);
  border:1px solid rgba(232,182,76,.5);
  box-shadow:0 0 0 1px #000, 0 22px 60px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,233,168,.12);
}
.modal h2{
  font-family:'Cinzel',serif;font-weight:900;font-size:19px;letter-spacing:.1em;
  color:var(--gold-hi);text-align:center;margin-bottom:4px;text-shadow:0 0 14px rgba(232,182,76,.4);
}
.modal .msub{text-align:center;font-size:11px;color:#b99a5e;letter-spacing:.15em;margin-bottom:14px;text-transform:uppercase}
.modal .close-x{
  position:sticky;top:0;float:right;width:30px;height:30px;border-radius:8px;cursor:pointer;
  background:#241c12;border:1px solid rgba(232,182,76,.4);color:var(--gold);font-size:15px;
}

/* Settings rows */
.set-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 4px;border-bottom:1px solid rgba(232,182,76,.14);font-size:14px;
}
.set-row:last-of-type{border-bottom:none}
.set-row small{display:block;color:#8f7a53;font-size:10.5px;margin-top:2px}
.switch{position:relative;width:46px;height:26px;flex:none}
.switch input{opacity:0;width:0;height:0}
.switch i{
  position:absolute;inset:0;border-radius:20px;cursor:pointer;transition:.2s;
  background:#241c12;border:1px solid rgba(232,182,76,.4);
}
.switch i::after{
  content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
  background:linear-gradient(180deg,#c9a25a,#8a5f13);transition:.2s;
}
.switch input:checked + i{background:linear-gradient(180deg,#3a2c12,#241a08);border-color:var(--gold)}
.switch input:checked + i::after{transform:translateX(20px);background:linear-gradient(180deg,var(--gold-hi),var(--gold))}
input[type=range].vol{
  -webkit-appearance:none;appearance:none;width:130px;height:6px;border-radius:4px;flex:none;
  background:linear-gradient(90deg,var(--gold) var(--v,70%), #241c12 var(--v,70%));
  border:1px solid rgba(232,182,76,.35);outline:none;
}
input[type=range].vol::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:linear-gradient(180deg,var(--gold-hi),#8a5f13);border:1px solid #3d2a08;cursor:pointer;
}
.danger-btn{
  width:100%;margin-top:14px;padding:10px;border-radius:10px;cursor:pointer;
  background:linear-gradient(180deg,#3a1116,#1d070a);border:1px solid rgba(224,72,79,.5);
  color:#ffb0b0;font-family:'Cinzel',serif;font-weight:700;letter-spacing:.12em;font-size:12px;
}
.ver-note{margin-top:12px;text-align:center;font-size:10px;color:#6d5b3c;letter-spacing:.08em}

/* Store */
.pack{
  display:flex;align-items:center;gap:12px;padding:12px 10px;margin-bottom:10px;border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(0,0,0,.35));
  border:1px solid rgba(232,182,76,.28);
}
.pack.best{border-color:var(--gold);box-shadow:0 0 14px rgba(232,182,76,.25)}
.pack .p-ico{font-size:26px;width:40px;text-align:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.pack .p-info{flex:1}
.pack .p-name{font-family:'Cinzel',serif;font-weight:700;font-size:13px;color:var(--gold-hi);letter-spacing:.06em}
.pack .p-amt{font-size:11.5px;color:#b99a5e}
.pack .p-badge{display:inline-block;font-size:9px;padding:1px 7px;border-radius:4px;margin-left:6px;
  background:var(--lacquer);color:#fff;letter-spacing:.1em;vertical-align:1px}
.buy-btn{
  padding:9px 14px;border-radius:9px;cursor:pointer;white-space:nowrap;
  background:linear-gradient(180deg,var(--gold-hi),var(--gold) 45%,#8a5f13);
  border:1px solid #3d2a08;color:#241a06;font-family:'Cinzel',serif;font-weight:900;font-size:12px;
  box-shadow:0 3px 8px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.5);
}
.buy-btn:disabled{filter:grayscale(.8);opacity:.55}
.store-note{font-size:10px;color:#8f7a53;text-align:center;margin-top:6px;line-height:1.5}

/* Ad / free coins */
.ad-btn{
  width:100%;margin-top:10px;padding:11px;border-radius:11px;cursor:pointer;
  background:linear-gradient(180deg,#153a2c,#0a1d15);border:1px solid rgba(79,193,141,.55);
  color:#8fe6ba;font-family:'Cinzel',serif;font-weight:700;letter-spacing:.08em;font-size:13px;
}
.ad-btn:disabled{opacity:.5}

/* Achievements */
.ach{
  display:flex;gap:11px;align-items:center;padding:10px 8px;margin-bottom:8px;border-radius:11px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.3));
  border:1px solid rgba(232,182,76,.18);opacity:.55;
}
.ach.done{opacity:1;border-color:rgba(232,182,76,.55);box-shadow:0 0 10px rgba(232,182,76,.15)}
.ach .a-ico{font-size:22px;width:34px;text-align:center;filter:grayscale(1)}
.ach.done .a-ico{filter:none}
.ach .a-name{font-family:'Cinzel',serif;font-size:12.5px;font-weight:700;color:var(--cream);letter-spacing:.04em}
.ach.done .a-name{color:var(--gold-hi)}
.ach .a-desc{font-size:10.5px;color:#8f7a53;margin-top:1px}
.ach .a-check{margin-left:auto;color:var(--green);font-size:15px;visibility:hidden}
.ach.done .a-check{visibility:visible}
.ach-toast{
  position:fixed;top:14px;left:50%;transform:translate(-50%,-140%);z-index:80;
  display:flex;gap:10px;align-items:center;padding:11px 18px;border-radius:12px;
  background:linear-gradient(180deg,#221a0e,#0d0a06);
  border:1px solid var(--gold);box-shadow:0 8px 30px rgba(0,0,0,.7), 0 0 18px rgba(232,182,76,.35);
  transition:transform .45s cubic-bezier(.2,1.2,.3,1);pointer-events:none;
}
.ach-toast.show{transform:translate(-50%,0)}
.ach-toast .t-ico{font-size:22px}
.ach-toast .t-lbl{font-size:9px;letter-spacing:.28em;color:#b99a5e}
.ach-toast .t-name{font-family:'Cinzel',serif;font-weight:900;font-size:13px;color:var(--gold-hi)}

/* Free spins */
.fs-banner{
  display:none;align-items:center;justify-content:center;gap:14px;
  margin:0 0 10px;padding:8px 12px;border-radius:12px;
  background:linear-gradient(90deg,rgba(143,22,34,.35),rgba(232,182,76,.22),rgba(143,22,34,.35));
  border:1px solid var(--gold);box-shadow:0 0 18px rgba(232,182,76,.35), inset 0 1px 0 rgba(255,233,168,.2);
  animation:fsPulse 1.6s ease-in-out infinite;
}
.fs-banner.show{display:flex}
@keyframes fsPulse{0%,100%{box-shadow:0 0 12px rgba(232,182,76,.3)}50%{box-shadow:0 0 26px rgba(232,182,76,.6)}}
.fs-banner b{font-family:'Cinzel',serif;font-weight:900;letter-spacing:.14em;color:var(--gold-hi);font-size:13px}
.fs-banner .fs-meter{font-size:12px;color:var(--cream)}
.fs-banner .fs-meter span{font-family:'Cinzel',serif;font-weight:900;color:var(--gold)}
.fs-intro{
  position:fixed;inset:0;z-index:55;display:none;align-items:center;justify-content:center;
  background:rgba(4,3,6,.82);backdrop-filter:blur(3px);
}
.fs-intro.show{display:flex}
.fs-intro .fs-card{
  text-align:center;padding:34px 40px;border-radius:20px;
  background:radial-gradient(120% 140% at 50% 0%,#2a1f0d,#0d0a06 70%);
  border:2px solid var(--gold);box-shadow:0 0 60px rgba(232,182,76,.5);
  animation:bwPop .5s cubic-bezier(.2,1.4,.3,1);
}
.fs-intro h2{
  font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(26px,7vw,40px);
  background:linear-gradient(180deg,#fff6d8,var(--gold) 60%,#a4762a);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 18px rgba(232,182,76,.6));
}
.fs-intro .n{font-family:'Cinzel',serif;font-weight:900;font-size:60px;color:var(--gold-hi);
  text-shadow:0 0 26px rgba(232,182,76,.8);margin:6px 0}
.fs-intro p{color:#d9c08a;font-size:13px;letter-spacing:.1em}
@keyframes bwPop{from{transform:scale(.6);opacity:0}}

/* misc */
.cell img{will-change:transform}
@media(prefers-reduced-motion:reduce){
  .jp::after{animation:none}
  .fs-banner{animation:none}
}
body.reduce-motion .jp::after,
body.reduce-motion .fs-banner{animation:none}
body.reduce-motion *{transition-duration:.01ms !important}

/* ═══════════════════════════════════════════════
   v6 Surgery 02 — reel feel + meaningful anticipation
   ═══════════════════════════════════════════════ */
.machine.spin-kick{animation:spinKick .22s cubic-bezier(.2,.85,.35,1)}
@keyframes spinKick{
  0%{transform:translateY(0) scale(1)}
  38%{transform:translateY(2px) scale(.997)}
  100%{transform:translateY(0) scale(1)}
}
.reel.landing{animation:reelLanding .18s cubic-bezier(.18,1.5,.3,1)}
@keyframes reelLanding{
  0%{transform:translateY(-2px);filter:brightness(1.18)}
  48%{transform:translateY(3px);filter:brightness(1.28)}
  100%{transform:translateY(0);filter:brightness(1)}
}
/* Base anticipation is deliberately restrained; type classes communicate the feature. */
.reel.antic{animation:anticPremium .46s ease-in-out infinite alternate;z-index:4}
@keyframes anticPremium{
  from{box-shadow:inset 0 10px 18px rgba(0,0,0,.5),inset 0 -10px 18px rgba(0,0,0,.5),0 0 10px 2px rgba(232,182,76,.45)}
  to{box-shadow:inset 0 10px 18px rgba(0,0,0,.5),inset 0 -10px 18px rgba(0,0,0,.5),0 0 30px 8px rgba(255,220,120,.94)}
}
.reel.antic-coin{border-color:#f2c14e;background:linear-gradient(180deg,#30200d,#1d1009 42%,#100806)}
.reel.antic-lotus{border-color:#f0c0df;background:linear-gradient(180deg,#32172f,#211126 42%,#110914)}
.reel.antic-line{border-color:#f3d98c;background:linear-gradient(180deg,#2a1d16,#1b1114 42%,#0f090d)}
.status.near{color:#ffd982;text-shadow:0 0 13px rgba(232,182,76,.72),0 2px 2px #000;letter-spacing:.035em}
body.reduce-motion .machine.spin-kick,
body.reduce-motion .reel.landing,
body.reduce-motion .reel.antic{animation:none}

/* ═══════════════════════════════════════════════
   v6 Surgery 03 — Dragon Power signature feature
   ═══════════════════════════════════════════════ */
.dragon-power{
  position:relative;margin:0 0 10px;padding:7px 10px 9px;border-radius:13px;overflow:hidden;
  background:linear-gradient(180deg,rgba(26,12,8,.96),rgba(10,8,7,.98));
  border:1px solid rgba(232,182,76,.42);box-shadow:inset 0 1px 0 rgba(255,234,166,.08),0 6px 20px rgba(0,0,0,.24);
}
.dp-head{display:flex;align-items:center;gap:8px;font-family:'Cinzel',serif;font-weight:900;font-size:10px;letter-spacing:.14em;color:#dbc47e}
.dp-head img{width:24px;height:24px;border-radius:50%;object-fit:cover;filter:drop-shadow(0 0 6px rgba(232,182,76,.45))}
.dp-head span{flex:1}.dp-head b{font-size:11px;letter-spacing:.06em;color:var(--gold-hi);font-variant-numeric:tabular-nums}
.dp-track{height:9px;margin-top:5px;border-radius:99px;position:relative;overflow:hidden;background:#080604;border:1px solid rgba(232,182,76,.22);box-shadow:inset 0 2px 5px #000}
.dp-fill{position:absolute;inset:0 auto 0 0;width:0%;border-radius:99px;background:linear-gradient(90deg,#7d180f 0%,#e45321 38%,#f7b936 72%,#fff3a8 100%);box-shadow:0 0 12px rgba(239,92,32,.65);transition:width .55s cubic-bezier(.2,.8,.25,1)}
.dp-flare{position:absolute;top:-4px;bottom:-4px;width:28px;left:-30px;background:linear-gradient(90deg,transparent,rgba(255,246,183,.8),transparent);filter:blur(2px);animation:dpSweep 2.8s ease-in-out infinite}
@keyframes dpSweep{0%,34%{left:-30px;opacity:0}48%{opacity:1}70%,100%{left:105%;opacity:0}}
.dp-ready{display:none;text-align:center;margin-top:6px;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.16em;color:#ffda70;text-shadow:0 0 10px rgba(255,91,26,.8)}
.dp-ready.show{display:block}
.dragon-power.ready{border-color:#f2b640;box-shadow:inset 0 1px 0 rgba(255,246,196,.18),0 0 24px rgba(239,79,25,.28);animation:dpReady 1.15s ease-in-out infinite alternate}
.dragon-power.ready .dp-fill{background:linear-gradient(90deg,#e43d20,#ff9f2d,#fff2a8);box-shadow:0 0 18px rgba(255,100,24,.8)}
@keyframes dpReady{from{filter:brightness(1)}to{filter:brightness(1.16)}}

.cell.wild{position:relative;overflow:hidden;border-color:#f3b540!important;box-shadow:inset 0 0 18px rgba(255,107,25,.5),0 0 17px rgba(255,152,35,.45)!important}
.cell.wild::before{content:"";position:absolute;inset:-22%;z-index:1;background:conic-gradient(from 0deg,transparent,#ff7326,transparent,#ffd465,transparent);opacity:.42;animation:wildAura 1.8s linear infinite}
.cell.wild img{position:relative;z-index:2;filter:saturate(1.18) brightness(1.08) drop-shadow(0 0 8px rgba(255,129,37,.8))}
.wild-badge{position:absolute;z-index:3;left:50%;bottom:4px;transform:translateX(-50%);padding:2px 6px;border-radius:7px;background:linear-gradient(180deg,#fff2a4,#e6a326 60%,#8d4b0d);border:1px solid #fff0a1;color:#2a1103;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.12em;text-shadow:0 1px rgba(255,255,255,.45);box-shadow:0 1px 6px #000}
.cell.dragon-transform{animation:dragonTransform .82s cubic-bezier(.16,1.35,.3,1)}
@keyframes wildAura{to{transform:rotate(1turn)}}
@keyframes dragonTransform{0%{transform:scale(.55);filter:brightness(3)}42%{transform:scale(1.14);filter:brightness(1.7)}100%{transform:scale(1);filter:brightness(1)}}
.status.dragon{color:#ffcf63;text-shadow:0 0 12px rgba(255,73,20,.95),0 2px 2px #000;font-weight:700;letter-spacing:.08em}

.dragon-awaken{position:fixed;inset:0;z-index:58;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;background:radial-gradient(circle at 50% 45%,rgba(160,37,13,.45),rgba(8,3,2,.82) 54%,rgba(0,0,0,.92));backdrop-filter:blur(2px);transition:opacity .18s ease,visibility .18s ease}
.dragon-awaken.show{opacity:1;visibility:visible}
.dragon-awaken-core{position:relative;text-align:center;min-width:260px;padding:26px 28px 24px;transform:scale(.76);opacity:.2;transition:transform .55s cubic-bezier(.16,1.28,.28,1),opacity .3s ease}
.dragon-awaken.show .dragon-awaken-core{transform:scale(1);opacity:1}
.dragon-awaken-core img{width:132px;height:132px;object-fit:cover;border-radius:50%;position:relative;z-index:2;filter:drop-shadow(0 0 18px rgba(255,112,23,.9)) drop-shadow(0 0 46px rgba(232,182,76,.48))}
.dragon-awaken-ring{position:absolute;z-index:1;left:50%;top:10px;width:180px;height:180px;margin-left:-90px;border-radius:50%;border:1px solid rgba(255,206,87,.8);box-shadow:0 0 28px rgba(255,83,22,.7),inset 0 0 26px rgba(255,139,31,.55);animation:awakenRing 1.15s linear infinite}
.dragon-awaken-ring::before,.dragon-awaken-ring::after{content:"";position:absolute;inset:13px;border-radius:50%;border:1px dashed rgba(255,223,128,.55)}
.dragon-awaken-ring::after{inset:28px;border-style:solid;border-color:rgba(255,97,25,.35)}
@keyframes awakenRing{to{transform:rotate(360deg)}}
.dragon-awaken-kicker{margin-top:15px;font-size:10px;letter-spacing:.42em;padding-left:.42em;color:#e9bf58;font-family:'Cinzel',serif}
.dragon-awaken-title{font-family:'Cinzel Decorative',serif;font-weight:900;font-size:clamp(30px,9vw,54px);line-height:1;margin-top:4px;background:linear-gradient(180deg,#fff8d0,#f8c651 48%,#e75b25 78%,#8c190d);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #3b0b05) drop-shadow(0 0 19px rgba(255,101,24,.8))}
.dragon-awaken-sub{font-size:9px;letter-spacing:.22em;color:#d9bd82;margin-top:10px}

.hns-dragon-eyes{height:17px;display:flex;justify-content:center;gap:28px;opacity:.22;transition:opacity .25s,filter .25s}
.hns-dragon-eyes i{display:block;width:23px;height:7px;border-radius:100% 10% 100% 10%;background:radial-gradient(circle at 60% 50%,#fff8a6 0 18%,#ff9d28 24%,#b8170d 65%,transparent 70%);box-shadow:0 0 10px rgba(255,82,22,.7);transform:skewX(-20deg)}
.hns-dragon-eyes i+ i{transform:scaleX(-1) skewX(-20deg)}
.bonus-stage.dragon-pressure .hns-dragon-eyes{opacity:.82;filter:brightness(1.35)}
.bonus-stage.last-cell .hns-dragon-eyes{opacity:1;filter:brightness(1.8);animation:dragonEyes 1s ease-in-out infinite alternate}
.bonus-stage.last-cell .hns{box-shadow:0 0 65px rgba(220,49,19,.42),inset 0 0 38px rgba(113,21,10,.24)}
@keyframes dragonEyes{from{filter:brightness(1.4)}to{filter:brightness(2.4) drop-shadow(0 0 7px #ff3c16)}}

body.reduce-motion .dp-flare,body.reduce-motion .dragon-power.ready,body.reduce-motion .cell.wild::before,body.reduce-motion .cell.dragon-transform,body.reduce-motion .dragon-awaken-ring,body.reduce-motion .bonus-stage.last-cell .hns-dragon-eyes{animation:none}

/* ═══ v6 Surgery 04 — payout-feel hierarchy ═══ */
.float-win.return{color:#d9c89b;font-size:18px;text-shadow:0 0 8px rgba(217,200,155,.45),0 2px 2px #000;animation-duration:1.02s}
.status.return{color:#d9c89b;text-shadow:0 0 8px rgba(217,200,155,.35),0 2px 2px #000;letter-spacing:.04em}
.overlay.nice{background:radial-gradient(circle at 50% 43%,rgba(232,182,76,.25),rgba(84,25,19,.66) 56%,rgba(0,0,0,.95))}
.nice .dragon-sigil{width:74px;height:74px;box-shadow:0 0 18px rgba(232,182,76,.42),inset 0 0 16px rgba(232,182,76,.15)}
.nice .dragon-sigil::before,.nice .dragon-sigil::after{top:26px;width:20px;height:8px}.nice .dragon-sigil::before{left:12px}.nice .dragon-sigil::after{right:12px}
.nice .dragon-sigil span{top:9px;height:52px}
.nice .bw-title{font-size:clamp(38px,11vw,76px);filter:drop-shadow(0 3px 0 #3d2a08) drop-shadow(0 0 22px rgba(232,182,76,.66))}
.nice .bw-amt{font-size:clamp(30px,8.5vw,52px);margin-top:14px}

/* ═══════════════════════════════════════════════
   v6 Surgery 05 — return loop: daily blessing, quests, milestone rewards
   ═══════════════════════════════════════════════ */
.next-unlock{
  width:100%;display:grid;grid-template-columns:auto 52px 1fr;align-items:center;gap:8px;margin:-3px 0 9px;padding:7px 10px;
  border-radius:10px;cursor:pointer;color:#c7af78;text-align:left;background:linear-gradient(180deg,rgba(25,19,13,.86),rgba(10,8,7,.92));
  border:1px solid rgba(232,182,76,.22);box-shadow:inset 0 1px 0 rgba(255,233,168,.05)
}
.next-unlock span{font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.13em;color:#8e7951}
.next-unlock b{font-family:'Cinzel',serif;font-size:12px;color:var(--gold);text-align:center}
.next-unlock em{font-style:normal;font-size:10px;text-align:right;color:#b99a70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.next-unlock.ready{border-color:rgba(255,203,73,.72);box-shadow:0 0 18px rgba(232,129,29,.18),inset 0 1px 0 rgba(255,244,183,.12);animation:retentionReady 1.25s ease-in-out infinite alternate}
.next-unlock.ready span,.next-unlock.ready b{color:#ffe38a}.next-unlock.complete{opacity:.72}

.retention-dock{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:-2px 0 10px}
.retention-btn{position:relative;min-height:50px;display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:13px;cursor:pointer;text-align:left;
  color:var(--cream);background:linear-gradient(160deg,#22180d,#0d0a08 72%);border:1px solid rgba(232,182,76,.32);box-shadow:inset 0 1px rgba(255,235,171,.08),0 5px 16px rgba(0,0,0,.3)}
.retention-btn div{min-width:0}.retention-btn b{display:block;font-family:'Cinzel',serif;font-size:13px;color:var(--gold-hi);letter-spacing:.06em}
.retention-btn small{display:block;margin-top:2px;color:#a98b55;font-size:8px;font-weight:700;letter-spacing:.1em;white-space:nowrap}
.retention-btn.ready{border-color:rgba(255,202,75,.72);box-shadow:0 0 18px rgba(232,123,24,.2),inset 0 1px rgba(255,242,185,.15);animation:retentionReady 1.15s ease-in-out infinite alternate}
.retention-btn:active,.next-unlock:active{transform:translateY(1px)}
@keyframes retentionReady{from{filter:brightness(1)}to{filter:brightness(1.14)}}
.r-icon{width:31px;height:31px;flex:none;position:relative;border-radius:10px;background:radial-gradient(circle at 40% 32%,#fff2ab,#d89b2a 42%,#6c3511 72%,#241007);box-shadow:0 0 10px rgba(232,182,76,.3),inset 0 0 0 1px rgba(255,240,164,.5)}
.gift-icon::before{content:"";position:absolute;left:8px;right:8px;bottom:6px;height:12px;border:2px solid #4b2108;border-radius:2px;background:rgba(112,20,18,.6)}
.gift-icon::after{content:"";position:absolute;left:6px;right:6px;top:10px;height:4px;border:2px solid #4b2108;background:#e1a632;box-shadow:7px -6px 0 -2px #8f1622,-1px -6px 0 -2px #8f1622}
.quest-icon::before{content:"";position:absolute;width:15px;height:18px;left:8px;top:6px;border:2px solid #4b2108;border-radius:3px;background:rgba(247,236,210,.72)}
.quest-icon::after{content:"";position:absolute;width:8px;height:2px;left:12px;top:12px;background:#8f1622;box-shadow:0 5px 0 #8f1622}

.retention-modal{z-index:66}.retention-box{position:relative;overflow-x:hidden}.retention-box::before{content:"";position:absolute;inset:0 0 auto;height:110px;pointer-events:none;background:radial-gradient(circle at 50% 0,rgba(232,182,76,.14),transparent 70%)}
.retention-kicker{text-align:center;margin:5px 0 3px;padding-left:.22em;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.22em;color:#9f7c3c}
.daily-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:6px 0 14px}
.daily-day{position:relative;min-height:80px;padding:8px 5px;border-radius:10px;text-align:center;background:linear-gradient(180deg,#18120d,#090706);border:1px solid rgba(232,182,76,.22);opacity:.62}
.daily-day span{display:block;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.08em;color:#9c845b}
.daily-day b{display:block;margin-top:12px;font-family:'Cinzel',serif;font-size:13px;color:#d0b36e;font-variant-numeric:tabular-nums}
.daily-day small{display:block;margin-top:3px;font-size:7px;letter-spacing:.08em;color:#7f6a48}
.daily-day.current{opacity:1;border-color:#f0c35e;box-shadow:0 0 16px rgba(232,182,76,.24),inset 0 0 12px rgba(232,182,76,.06);transform:translateY(-2px)}
.daily-day.current::after{content:"TODAY";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);padding:2px 6px;border-radius:8px;background:#9b2419;border:1px solid #e8b64c;color:#ffe8a1;font-size:6px;font-weight:900;letter-spacing:.1em}
.daily-day.done{opacity:.82;background:linear-gradient(180deg,#1b2619,#0c110b);border-color:rgba(85,174,111,.28)}
.daily-day.done::before{content:"✓";position:absolute;right:5px;top:3px;color:#67c78a;font-size:10px;font-weight:900}
.daily-day.final{grid-column:span 2;background:radial-gradient(circle at 50% 0,rgba(143,22,34,.32),transparent 65%),linear-gradient(180deg,#28120c,#0d0705);border-color:rgba(232,182,76,.48)}
.daily-day.final b{font-size:16px;color:var(--gold-hi);text-shadow:0 0 9px rgba(232,182,76,.45)}
.retention-primary{width:100%;min-height:46px;border-radius:13px;cursor:pointer;font-family:'Cinzel',serif;font-weight:900;letter-spacing:.08em;color:#2d1203;background:linear-gradient(180deg,#fff0a3,#e8b64c 52%,#a66b18);border:1px solid #fff1a6;box-shadow:0 5px 18px rgba(0,0,0,.5),0 0 16px rgba(232,182,76,.15)}
.retention-primary:disabled{cursor:default;color:#736442;background:linear-gradient(180deg,#272015,#15110d);border-color:rgba(232,182,76,.22);box-shadow:none}
.retention-note{margin:11px 4px 0;text-align:center;font-size:9px;line-height:1.5;color:#756347}

.quest-list{display:grid;gap:8px}.quest{display:flex;align-items:center;gap:9px;padding:10px;border-radius:11px;background:linear-gradient(180deg,#17120e,#0b0907);border:1px solid rgba(232,182,76,.2)}
.quest-copy{flex:1;min-width:0}.quest-copy b{display:block;font-size:12px;color:#d9c89b}.quest-copy small{display:block;margin-top:3px;font-size:9px;color:#8e7955}
.quest-track{height:6px;margin-top:7px;border-radius:99px;overflow:hidden;background:#050403;border:1px solid rgba(232,182,76,.16)}
.quest-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7d180f,#e45321,#f4c34f);box-shadow:0 0 8px rgba(232,129,36,.5);transition:width .35s ease}
.quest.complete{border-color:rgba(232,182,76,.48)}.quest.claimed{opacity:.65;border-color:rgba(81,161,104,.28)}.quest.claimed .quest-track i{background:#4c9c68}
.quest-claim,.quest-chest button,.milestone button{flex:none;min-width:78px;height:34px;padding:0 8px;border-radius:9px;cursor:pointer;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.06em;color:#2b1203;background:linear-gradient(180deg,#ffe594,#dba33c);border:1px solid #f2cd70}
.quest-claim:disabled,.quest-chest button:disabled,.milestone button:disabled{cursor:default;color:#756548;background:#211b13;border-color:rgba(232,182,76,.18)}
.quest-chest{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding:12px;border-radius:12px;background:radial-gradient(circle at 18% 0,rgba(143,22,34,.25),transparent 55%),linear-gradient(180deg,#22150d,#0b0806);border:1px solid rgba(232,182,76,.36)}
.quest-chest span{display:block;font-family:'Cinzel',serif;font-size:9px;font-weight:900;letter-spacing:.1em;color:#b99149}.quest-chest b{display:block;margin-top:4px;font-size:10px;color:#d9c89b}
.quest-chest.ready{border-color:#efbd4f;box-shadow:0 0 18px rgba(232,117,29,.2);animation:retentionReady 1.2s ease-in-out infinite alternate}.quest-chest.claimed{opacity:.6}
.level-reward-list{margin-top:18px;padding-top:13px;border-top:1px solid rgba(232,182,76,.2)}.milestone-title{margin-bottom:8px;font-family:'Cinzel',serif;font-size:9px;font-weight:900;letter-spacing:.14em;color:#a88749}
.milestone{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:8px;padding:9px 6px;border-bottom:1px solid rgba(232,182,76,.1)}
.milestone>span{font-family:'Cinzel',serif;font-size:11px;font-weight:900;color:#94794b}.milestone b{display:block;font-size:10px;color:#c7b184}.milestone small{display:block;margin-top:2px;font-size:8px;color:#78674c}.milestone.ready>span,.milestone.ready b{color:#f2ca65}.milestone.claimed{opacity:.55}

@media(max-width:420px){
  .daily-grid{grid-template-columns:repeat(3,1fr)}.daily-day.final{grid-column:span 1}.daily-day{min-height:72px}.daily-day b{font-size:11px}
  .next-unlock{grid-template-columns:auto 44px 1fr}.next-unlock em{font-size:8.5px}
  .quest{align-items:stretch;flex-direction:column}.quest-claim{width:100%}.milestone{grid-template-columns:42px 1fr auto}.milestone button{min-width:62px}
}
body.reduce-motion .retention-btn.ready,body.reduce-motion .next-unlock.ready,body.reduce-motion .quest-chest.ready{animation:none}


/* ═══════════════════════════════════════════════
   v6 Surgery 06 — First 5 Minutes Experience
   ═══════════════════════════════════════════════ */
.onboard-welcome{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:18px;background:radial-gradient(circle at 50% 35%,rgba(143,22,34,.34),rgba(3,3,3,.94) 64%,#000);backdrop-filter:blur(8px)}
.onboard-welcome.show{display:flex;animation:owFade .42s ease both}@keyframes owFade{from{opacity:0}to{opacity:1}}
.onboard-welcome-card{position:relative;width:min(390px,94vw);overflow:hidden;padding:28px 22px 22px;border-radius:24px;text-align:center;background:linear-gradient(180deg,rgba(37,18,10,.98),rgba(8,6,5,.99) 68%);border:1px solid rgba(247,207,99,.6);box-shadow:0 30px 80px rgba(0,0,0,.75),0 0 36px rgba(232,126,29,.18),inset 0 1px rgba(255,239,174,.14)}
.ow-halo{position:absolute;width:250px;height:250px;left:50%;top:-70px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,211,85,.25),rgba(190,44,20,.11) 45%,transparent 68%);filter:blur(2px);animation:owPulse 1.6s ease-in-out infinite alternate}@keyframes owPulse{to{transform:translateX(-50%) scale(1.08);filter:brightness(1.25)}}
.ow-dragon{position:relative;width:116px;height:116px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 0 22px rgba(255,191,62,.5));animation:owDragon 2.4s ease-in-out infinite}@keyframes owDragon{50%{transform:translateY(-4px) scale(1.025)}}
.ow-kicker{position:relative;margin-top:5px;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.2em;color:#b89350}
.onboard-welcome h2{position:relative;margin:5px 0 0;font-family:'Cinzel Decorative',serif;font-size:clamp(30px,9vw,45px);line-height:1;color:#f8dc83;text-shadow:0 2px #5d270b,0 0 24px rgba(232,182,76,.38)}
.ow-deluxe{position:relative;margin:5px 0 14px;font-family:'Cinzel',serif;font-size:11px;font-weight:900;letter-spacing:.42em;color:#c34928;padding-left:.42em}
.ow-copy{position:relative;max-width:310px;margin:0 auto 15px;font-size:10px;line-height:1.55;color:#aa9878}
.ow-reward{position:relative;margin:0 auto 16px;padding:12px 10px;border-radius:14px;background:radial-gradient(circle at 50% 0,rgba(232,182,76,.16),transparent 72%),#110c08;border:1px solid rgba(232,182,76,.34)}
.ow-reward span{display:block;font-family:'Cinzel',serif;font-size:8px;font-weight:900;letter-spacing:.16em;color:#9c7d45}.ow-reward b{display:block;margin:5px 0 2px;font-family:'Cinzel',serif;font-size:21px;color:#ffe18a}.ow-reward i{font-style:normal}.ow-reward small{font-size:9px;font-weight:700;letter-spacing:.05em;color:#d28845}
.ow-start{width:100%;height:49px;border-radius:14px;cursor:pointer;font-family:'Cinzel',serif;font-size:12px;font-weight:900;letter-spacing:.09em;color:#341303;background:linear-gradient(180deg,#fff1a8,#eab84e 54%,#a76713);border:1px solid #fff0a0;box-shadow:0 7px 20px rgba(0,0,0,.5),0 0 18px rgba(232,182,76,.18)}
.ow-start:active{transform:translateY(1px)}.ow-skip{margin-top:11px;padding:5px 7px;border:0;background:none;color:#79674c;font-size:9px;text-decoration:underline;cursor:pointer}

.coach-layer{position:fixed;inset:0;z-index:92;display:none;pointer-events:none}.coach-layer.show{display:block}.coach-focus{position:fixed;z-index:1;border:2px solid rgba(255,221,113,.92);border-radius:16px;box-shadow:0 0 0 9999px rgba(0,0,0,.72),0 0 24px rgba(232,182,76,.6),inset 0 0 16px rgba(232,182,76,.13);transition:all .24s ease;pointer-events:none}.coach-focus::after{content:"";position:absolute;inset:-7px;border:1px solid rgba(255,211,86,.32);border-radius:20px;animation:coachPulse 1.15s ease-in-out infinite alternate}@keyframes coachPulse{to{inset:-12px;opacity:.15}}
.coach-card{position:fixed;z-index:2;left:50%;bottom:max(20px,calc(env(safe-area-inset-bottom) + 14px));transform:translateX(-50%);width:min(380px,calc(100vw - 28px));padding:16px 16px 14px;border-radius:17px;pointer-events:auto;text-align:center;background:linear-gradient(180deg,#24150d,#0b0806 76%);border:1px solid rgba(239,194,83,.62);box-shadow:0 18px 50px rgba(0,0,0,.72),0 0 22px rgba(232,129,29,.14)}
.coach-card.coach-top{top:max(18px,env(safe-area-inset-top));bottom:auto}.coach-step{font-family:'Cinzel',serif;font-size:7px;font-weight:900;letter-spacing:.18em;color:#9c7b45}.coach-card h3{margin:4px 0 7px;font-family:'Cinzel',serif;font-size:15px;color:#f4d675;letter-spacing:.055em}.coach-card p{margin:0 auto;color:#baa67e;font-size:10.5px;line-height:1.55;max-width:335px}.coach-card button{margin-top:12px;width:100%;height:39px;border-radius:10px;cursor:pointer;font-family:'Cinzel',serif;font-size:9px;font-weight:900;letter-spacing:.08em;color:#321303;background:linear-gradient(180deg,#ffe99b,#dca63f);border:1px solid #f3d074}.coach-card button[hidden]{display:none}
.spin-btn.tutorial-ready{position:relative;z-index:93;animation:tutorialSpinPulse .75s ease-in-out infinite alternate;box-shadow:0 0 0 3px rgba(255,216,93,.18),0 0 28px rgba(255,165,45,.72),inset 0 2px rgba(255,255,255,.28)}@keyframes tutorialSpinPulse{to{filter:brightness(1.25);transform:scale(1.025)}}
body.onboarding-active .retention-btn:disabled,body.onboarding-active .next-unlock:disabled,body.onboarding-active .topbar button:disabled,body.onboarding-active .bet-row button:disabled{opacity:.55;cursor:default}
body.reduce-motion .ow-halo,body.reduce-motion .ow-dragon,body.reduce-motion .coach-focus::after,body.reduce-motion .spin-btn.tutorial-ready{animation:none}

/* ─────────────────────────────────────────────────────────────
   v6 Surgery 08 — Momentum Navigator
   One compact, truthful next-goal card. No RNG/economy changes.
   ───────────────────────────────────────────────────────────── */
.momentum-card{
  width:100%;display:block;margin:-2px 0 10px;padding:9px 11px 10px;border-radius:13px;cursor:pointer;text-align:left;
  color:#d9c89b;background:linear-gradient(180deg,rgba(29,21,13,.97),rgba(10,8,6,.98));
  border:1px solid rgba(232,182,76,.24);box-shadow:inset 0 1px 0 rgba(255,244,193,.05),0 5px 18px rgba(0,0,0,.22);
}
.momentum-card:active{transform:translateY(1px)}
.momentum-kicker{display:block;font-family:'Cinzel',serif;font-size:7.5px;font-weight:900;letter-spacing:.18em;color:#9f7c3c}
.momentum-row{display:flex;align-items:center;gap:8px;margin-top:4px}.momentum-row b{flex:1;min-width:0;font-family:'Cinzel',serif;font-size:11px;line-height:1.2;color:#edd88f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.momentum-row em{font-style:normal;font-size:10px;font-weight:900;color:#b99a5e;white-space:nowrap}
.momentum-track{height:5px;margin-top:7px;overflow:hidden;border-radius:99px;background:#050403;border:1px solid rgba(232,182,76,.13)}
.momentum-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7d180f,#dd5922,#f2c354);box-shadow:0 0 7px rgba(232,129,36,.42);transition:width .28s ease}
.momentum-card small{display:block;margin-top:5px;font-size:8.5px;line-height:1.25;color:#846f4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.momentum-card.ready{border-color:rgba(255,205,83,.72);box-shadow:0 0 18px rgba(232,123,24,.16),inset 0 1px rgba(255,244,193,.12);animation:momentumReady 1.25s ease-in-out infinite alternate}
.momentum-card.ready .momentum-row b,.momentum-card.ready .momentum-row em{color:#ffe58c}.momentum-card.dragon{border-color:rgba(235,93,35,.56);box-shadow:0 0 18px rgba(213,62,20,.16),inset 0 1px rgba(255,194,105,.1)}
@keyframes momentumReady{from{filter:brightness(1)}to{filter:brightness(1.12)}}
body.reduce-motion .momentum-card.ready{animation:none}.momentum-card:disabled{cursor:default;opacity:.75}
@media(max-width:340px){.momentum-row b{font-size:10px}.momentum-card small{font-size:7.8px}}
.buy-btn:disabled{cursor:default;opacity:.58;filter:saturate(.55);box-shadow:none}

/* ═══════════════════════════════════════════════
   v6 Surgery 09 — Luminous Visual Overhaul
   Brighter, more luxurious, less purple, more premium casino energy.
   CSS-only visual pass to minimize gameplay risk.
   ═══════════════════════════════════════════════ */
:root{
  --jade:#14261d;
  --jade-hi:#244335;
  --lacquer:#b11c2b;
  --lacquer-dk:#5f0e18;
  --gold:#f0bb48;
  --gold-hi:#fff2b2;
  --gold-dk:#996514;
  --cream:#fff0d3;
  --green:#56d69a;
  --blue:#7ab7ff;
  --violet:#d39cff;
}
body{
  background:
    radial-gradient(circle at 50% -4%, rgba(255,220,118,.30), transparent 26%),
    radial-gradient(circle at 16% 18%, rgba(255,92,46,.18), transparent 33%),
    radial-gradient(circle at 84% 14%, rgba(255,177,74,.16), transparent 28%),
    linear-gradient(180deg, rgba(42,10,8,.24) 0%, rgba(25,7,8,.36) 24%, rgba(14,5,8,.72) 55%, rgba(8,3,5,.96) 100%),
    url("../assets/bg/tex0.webp") center top / cover no-repeat,
    #13070a;
}
body::before{
  opacity:.16;
  background-image:
    radial-gradient(circle, rgba(255,240,180,.95) 1px, transparent 1.8px),
    radial-gradient(circle, rgba(255,168,77,.55) 1px, transparent 2px);
  background-size:58px 58px, 86px 86px;
  background-position:0 0, 19px 31px;
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 50% 10%, rgba(255,216,96,.22), transparent 24%),
    radial-gradient(circle at 50% 42%, rgba(255,133,47,.10), transparent 34%),
    linear-gradient(180deg, transparent 0%, rgba(255,203,84,.025) 48%, transparent 100%);
}
.brand h1{
  background:linear-gradient(180deg,#fffdf3 0%, #fff4c6 18%, #ffd773 42%, #f0bb48 64%, #b66c12 84%, #fff2b2 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 3px 0 #4e2c09) drop-shadow(0 0 24px rgba(255,196,72,.52));
}
.brand .hanzi{color:rgba(198,52,33,.17)}
.brand .sub{color:#d0a85b}
.brand .rule{width:210px;height:2px;background:linear-gradient(90deg,transparent,#ffce68 16%,#fff0b3 50%,#ffce68 84%,transparent)}
.stage{filter:drop-shadow(0 10px 40px rgba(0,0,0,.22))}
.jackpots{
  background:
    radial-gradient(circle at 50% 0%, rgba(255,220,118,.09), transparent 48%),
    linear-gradient(180deg,#211411,#0a0707);
  border-color:rgba(255,211,108,.52);
  box-shadow:0 0 0 1px rgba(255,235,180,.08), 0 10px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,245,204,.18);
}
.jp{background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(40,18,12,.48));border-color:rgba(255,221,154,.13)}
.jp.grand{border-color:rgba(255,111,92,.64);box-shadow:0 0 24px rgba(232,72,64,.12), inset 0 1px 0 rgba(255,233,168,.1)}
.jp.grand .amt{text-shadow:0 0 14px rgba(255,224,112,.82), 0 0 34px rgba(236,84,44,.24)}
.jp.major .amt{color:#ffd26f}.jp.minor .amt{color:#7af0bf}.jp.mini .amt{color:#9ecbff}
.machine{
  background:
    radial-gradient(120% 88% at 50% -5%, rgba(255,238,184,.16), transparent 38%),
    radial-gradient(60% 34% at 50% 3%, rgba(255,150,54,.16), transparent 56%),
    linear-gradient(160deg,#481016 0%, #7a1521 28%, #a82531 54%, #521018 82%, #2a070d 100%);
  border:1px solid rgba(255,218,127,.72);
  box-shadow:
    0 0 0 4px #1a0608,
    0 0 0 5px rgba(255,205,96,.34),
    0 24px 60px rgba(0,0,0,.65),
    0 0 56px rgba(255,89,35,.18),
    inset 0 1px 0 rgba(255,245,204,.34),
    inset 0 -10px 22px rgba(80,10,16,.18);
}
.machine::before{content:"";position:absolute;left:16px;right:16px;top:12px;height:68px;border-radius:18px;background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,0));pointer-events:none}
.corner{border-color:#ffdf8a;opacity:.92}
.nameplate{color:#421c05;background:linear-gradient(180deg,#fff5c9,#ffda72 50%,#f0bb48 72%,#b66c12);border-color:#7b4e0f;box-shadow:0 6px 14px rgba(0,0,0,.42), inset 0 1px 0 #fffdf0, 0 0 16px rgba(255,193,66,.24)}
.screen{background:radial-gradient(circle at 50% 0%, rgba(255,207,92,.08), transparent 46%),linear-gradient(180deg,#081012,#050708 44%,#040505 100%);border-color:rgba(255,219,126,.45);box-shadow:inset 0 0 34px #000, inset 0 0 4px #000, 0 0 20px rgba(255,183,76,.09)}
.glass{background:linear-gradient(112deg,rgba(255,255,255,.15),transparent 18%,transparent 52%,rgba(255,214,134,.07) 64%,rgba(255,255,255,.05) 70%,transparent 79%),radial-gradient(circle at 50% -10%, rgba(255,224,122,.08), transparent 46%)}
.reel{background:linear-gradient(90deg,rgba(0,0,0,.24),transparent 14%,transparent 86%,rgba(0,0,0,.24)),radial-gradient(circle at 50% 0%, rgba(255,214,112,.05), transparent 24%),linear-gradient(180deg,#392040,#221228 42%,#130914 100%);border-color:rgba(255,221,132,.32);box-shadow:inset 0 10px 18px rgba(0,0,0,.42), inset 0 -10px 18px rgba(0,0,0,.42), 0 0 8px rgba(255,176,62,.05)}
.reel::before{background:linear-gradient(180deg,rgba(0,0,0,.42),transparent)}
.reel::after{background:linear-gradient(0deg,rgba(0,0,0,.42),transparent)}
.cell{background:linear-gradient(180deg, rgba(255,255,255,.015), rgba(255,255,255,0));border-bottom:1px solid rgba(255,220,136,.12)}
.cell img{filter:drop-shadow(0 6px 8px rgba(0,0,0,.56)) saturate(1.08) brightness(1.04)}
.cell.hl{background:radial-gradient(circle at 50% 50%, rgba(255,224,133,.20), rgba(255,172,62,.08) 55%, transparent 78%)}
.grid.haswin .cell:not(.hl) img{filter:brightness(.46) saturate(.62)}
.winflash{background:radial-gradient(circle at 50% 50%, rgba(255,243,181,.55), rgba(255,175,71,.18) 42%, transparent 70%)}
.lines-svg polyline{stroke-width:6;filter:drop-shadow(0 0 9px currentColor) drop-shadow(0 0 18px currentColor)}
.control{background:radial-gradient(circle at 50% 0%, rgba(255,231,152,.09), transparent 50%),linear-gradient(180deg,rgba(255,255,255,.11),rgba(30,16,10,.34));border-color:rgba(255,232,173,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 10px 22px rgba(0,0,0,.22)}
.meter{background:linear-gradient(180deg,#0b100f,#090908);border-color:rgba(255,215,118,.36);box-shadow:inset 0 0 12px #000, 0 0 12px rgba(255,193,66,.04)}
.meter small{color:#d0a55a}.meter b{color:#fff0af}
.pill-btn{background:linear-gradient(180deg,#1c241f,#0e1411);border-color:rgba(255,213,108,.42);color:#fff0d2;box-shadow:0 5px 14px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.05)}
.pill-btn.on{background:linear-gradient(180deg,#fff3c4,#ffcf65 50%,#e19e2d 78%,#a76414);box-shadow:0 0 20px rgba(255,197,66,.35), inset 0 1px 0 #fffbe8}
.bet-lbl{color:#d0a55a}.bet-val{color:#fff0af;text-shadow:0 0 12px rgba(255,193,66,.28)}
.spin-btn{color:#461803;background:linear-gradient(180deg,#fff8d6 0%,#ffe48e 20%,#ffca55 48%,#f0a82a 74%,#a85f10 100%);box-shadow:0 8px 0 #643d0c, 0 18px 34px rgba(0,0,0,.5), 0 0 28px rgba(255,189,66,.46), inset 0 2px 0 #fffdf0}
.spin-btn:disabled{filter:grayscale(.45) brightness(.88)}
.status{color:#e6cf9b;text-shadow:0 2px 2px #000, 0 0 10px rgba(255,200,88,.1)}
.status.win{color:#8dffc7;text-shadow:0 0 14px rgba(70,220,152,.8),0 2px 2px #000}.status.lose{color:#c6c0b4}.status.near{color:#ffe389;text-shadow:0 0 16px rgba(255,183,68,.85),0 2px 2px #000}
.topbar{gap:10px}
.icon-btn{background:linear-gradient(180deg,#241810,#0d0a08);border-color:rgba(255,213,111,.48);color:#ffd871;box-shadow:0 4px 12px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,241,193,.15), 0 0 10px rgba(255,191,66,.08)}
.xp-wrap{color:#d2ab60}.xp-fill{background:linear-gradient(90deg,#b96b10,#f0bb48,#fff0ae);box-shadow:0 0 12px rgba(255,193,66,.65)}
.dragon-power{background:linear-gradient(180deg,rgba(34,16,10,.96),rgba(9,7,6,.98));border-color:rgba(255,204,98,.48);box-shadow:inset 0 1px 0 rgba(255,236,170,.12),0 8px 22px rgba(0,0,0,.24),0 0 14px rgba(255,103,35,.08)}
.dp-head b{color:#fff0af}.dp-ready{color:#ffe88c}.dragon-power.ready{box-shadow:inset 0 1px 0 rgba(255,246,196,.18),0 0 26px rgba(239,79,25,.32), 0 0 56px rgba(255,188,66,.08)}
.momentum-card,.next-unlock,.quest-chest,.modal .box,details.paytable,.pack,.ach,.retention-btn,.daily-day,.quest,.hns,.hns-grid{box-shadow:0 12px 28px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.03)}
.momentum-card{background:linear-gradient(180deg,rgba(37,24,12,.98),rgba(11,8,6,.98));border-color:rgba(255,207,86,.28)}
.momentum-card.ready{box-shadow:0 0 22px rgba(255,145,37,.18), 0 12px 28px rgba(0,0,0,.18), inset 0 1px rgba(255,244,193,.12)}
.momentum-row b{color:#f8df90}.momentum-row em{color:#d2a654}.momentum-track{background:#0b0604;border-color:rgba(255,199,91,.12)}.momentum-track i{background:linear-gradient(90deg,#a22a16,#f07124,#ffd56a)}
.overlay{background:radial-gradient(circle at 50% 38%,rgba(255,224,131,.28),rgba(120,24,21,.58) 48%,rgba(0,0,0,.93))}
.overlay.show::after{background:radial-gradient(circle at 50% 45%,rgba(255,246,189,.24),transparent 36%)}
.overlay.mega{background:radial-gradient(circle at 50% 40%,rgba(255,212,104,.42),rgba(130,26,18,.7) 50%,rgba(0,0,0,.95))}
.overlay.epic{background:radial-gradient(circle at 50% 38%,rgba(255,230,122,.50),rgba(160,32,21,.76) 42%,rgba(10,2,3,.98) 80%)}
.overlay.jackpot{background:radial-gradient(circle at 50% 38%,rgba(255,120,95,.44),rgba(120,12,18,.78) 50%,rgba(0,0,0,.98))}
.bw-sub{color:#ead3a1}.bw-amt{color:#fff0af}
.bonus-stage{background:radial-gradient(circle at 50% 12%, rgba(255,213,96,.24), transparent 34%),radial-gradient(circle at 50% 58%, rgba(196,38,32,.42), rgba(7,4,5,.95) 72%)}
.hns{background:linear-gradient(165deg,#500d13,#861523 40%, #2a0710);border-color:rgba(255,212,109,.72);box-shadow:0 0 0 4px #180507, 0 0 50px rgba(255,182,74,.28), inset 0 1px 0 rgba(255,233,168,.34)}
.hns-grid{background:linear-gradient(180deg,#080808,#040404);border-color:rgba(255,211,108,.54)}
.hns-cell{background:radial-gradient(circle at 50% 34%, rgba(255,255,255,.09), transparent 46%), linear-gradient(180deg,#191613,#090706)}
details.paytable,.modal .box{background:linear-gradient(180deg,rgba(28,20,12,.98),rgba(9,7,6,.99));border-color:rgba(255,208,88,.32)}
footer{color:#9b865d}
@media(max-width:420px){body{padding-top:14px}.machine{padding:12px 10px}.jackpots{padding:9px}.screen{margin:18px 6px 16px}}


/* ═══════════════════════════════════════════════
   v6 Surgery 10 — Premium Art Pass
   Large perceived visual upgrade via premium generated art assets
   + low-risk CSS polish. No math / JS logic changes.
   ═══════════════════════════════════════════════ */
body{
  background:
    radial-gradient(circle at 50% -4%, rgba(255,229,139,.20), transparent 26%),
    linear-gradient(180deg, rgba(20,5,5,.10), rgba(8,2,4,.44) 34%, rgba(4,2,4,.82) 100%),
    url("../assets/bg/tex0.webp") center top / cover no-repeat,
    #120406;
}
body::before{
  opacity:.14;
  background-image:
    radial-gradient(circle, rgba(255,244,197,.96) 1px, transparent 1.7px),
    radial-gradient(circle, rgba(255,178,74,.60) 1px, transparent 1.9px);
  background-size:64px 64px, 96px 96px;
  background-position:0 0, 21px 35px;
}
body::after{
  z-index:-1;
  background:
    radial-gradient(circle at 50% 14%, rgba(255,230,129,.26), transparent 22%),
    radial-gradient(circle at 50% 34%, rgba(255,143,48,.12), transparent 26%),
    linear-gradient(180deg, transparent 0%, rgba(255,222,115,.03) 50%, transparent 100%);
  animation:s10Ambient 7s ease-in-out infinite alternate;
}
@keyframes s10Ambient{from{opacity:.88;transform:translateY(0)}to{opacity:1;transform:translateY(-4px)}}

.stage{position:relative}
.stage::before{
  content:"";position:absolute;left:50%;top:162px;transform:translateX(-50%);width:min(94vw,460px);height:620px;
  background:radial-gradient(circle at 50% 18%, rgba(255,245,199,.26), rgba(255,171,66,.15) 35%, rgba(255,76,24,.10) 56%, transparent 74%);
  filter:blur(18px);pointer-events:none;z-index:0;mix-blend-mode:screen;
}
.stage>*{position:relative;z-index:1}

.brand h1{
  font-size:clamp(29px,7vw,50px);
  filter:drop-shadow(0 3px 0 #4e2c09) drop-shadow(0 0 18px rgba(255,196,72,.44)) drop-shadow(0 0 36px rgba(255,133,47,.25));
}
.brand .sub{letter-spacing:.28em;color:#efd08a;text-shadow:0 0 12px rgba(255,181,74,.18)}

.jackpots{
  box-shadow:0 0 0 1px rgba(255,238,194,.10), 0 12px 34px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,245,204,.24), 0 0 22px rgba(255,178,76,.10);
}
.jp{overflow:hidden;position:relative}
.jp::after{
  content:"";position:absolute;inset:-30% auto -30% -36%;width:36%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.22), transparent);
  transform:skewX(-20deg);animation:s10Shine 3.8s linear infinite;
}
@keyframes s10Shine{0%,72%{left:-36%;opacity:0}80%{opacity:1}100%{left:120%;opacity:0}}

.machine{
  overflow:visible;
  box-shadow:
    0 0 0 4px #1b0608,
    0 0 0 5px rgba(255,214,112,.42),
    0 28px 68px rgba(0,0,0,.66),
    0 0 60px rgba(255,116,35,.18),
    inset 0 1px 0 rgba(255,245,204,.36),
    inset 0 -10px 22px rgba(80,10,16,.14);
}
.machine::after{
  content:"";position:absolute;left:-8px;right:-8px;top:-8px;bottom:-10px;border-radius:28px;
  border:1px solid rgba(255,229,152,.14);pointer-events:none;box-shadow:0 0 30px rgba(255,187,71,.10), inset 0 0 22px rgba(255,231,175,.04);
}
.screen{
  border-color:rgba(255,227,151,.54);
  box-shadow:inset 0 0 34px #000, inset 0 0 4px #000, 0 0 22px rgba(255,199,94,.18);
}
.reel-frame{
  left:-22px;top:-22px;width:calc(100% + 44px);height:calc(100% + 44px);
  filter:drop-shadow(0 10px 24px rgba(0,0,0,.62)) drop-shadow(0 0 18px rgba(255,193,86,.18));
  animation:s10FrameFloat 4.4s ease-in-out infinite;
}
@keyframes s10FrameFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
.glass{
  background:
    linear-gradient(112deg,rgba(255,255,255,.18),transparent 18%,transparent 52%,rgba(255,232,165,.11) 64%,rgba(255,255,255,.06) 70%,transparent 79%),
    radial-gradient(circle at 50% -10%, rgba(255,239,166,.10), transparent 46%);
}
.cell img{filter:drop-shadow(0 7px 9px rgba(0,0,0,.58)) saturate(1.10) brightness(1.06)}
.cell.hl{box-shadow:inset 0 0 0 1px rgba(255,241,184,.24)}

.icon-btn,
.pill-btn,
.momentum-card,
.next-unlock,
.retention-btn,
.quest,
.quest-chest,
.daily-day,
.modal .box,
.pack,
.ach,
.hns,
.hns-grid,
.dragon-power{
  backdrop-filter:blur(2px);
}
.spin-btn{
  animation:s10SpinBreath 1.7s ease-in-out infinite alternate;
}
@keyframes s10SpinBreath{from{filter:brightness(1)}to{filter:brightness(1.06)}}
body.reduce-motion .spin-btn,
body.reduce-motion .reel-frame,
body.reduce-motion .jp::after,
body.reduce-motion body::after{animation:none}

/* ═══════════════════════════════════════════════
   v6 Surgery 11 — Premium Win Cinematics
   Generated BIG / MEGA / EPIC / JACKPOT emblems integrated into live win overlay.
   ═══════════════════════════════════════════════ */
.bw-art{
  display:none;width:min(96vw,720px);max-height:48vh;object-fit:contain;margin:-20px auto -4px;
  filter:drop-shadow(0 14px 22px rgba(0,0,0,.62)) drop-shadow(0 0 22px rgba(255,181,43,.42));
  transform-origin:50% 56%;pointer-events:none;
}
.bw-box.has-art{width:min(98vw,760px);padding-top:4px}
.bw-box.has-art .dragon-sigil{display:none}
.bw-box.has-art .bw-art{display:block;animation:s11ArtEnter .78s cubic-bezier(.16,1.3,.25,1),s11ArtGlow 1.8s ease-in-out .78s infinite alternate}
.bw-box.has-art .bw-sub{margin-top:-4px;color:#ffe3a2;text-shadow:0 0 15px rgba(255,170,45,.48),0 2px 7px #000}
.bw-box.has-art .bw-title{
  font-family:'Cinzel',serif;font-size:clamp(13px,3.8vw,21px);letter-spacing:.26em;line-height:1.1;
  color:#ffe8a8;background:none;-webkit-background-clip:initial;background-clip:initial;
  filter:none;text-shadow:0 2px 8px #000,0 0 15px rgba(255,181,61,.36);margin-top:4px;
}
.bw-box.has-art .bw-amt{margin-top:10px;font-size:clamp(38px,11vw,72px);color:#fff3b7;text-shadow:0 0 20px rgba(255,206,86,.94),0 3px 0 #512307,0 0 42px rgba(255,98,24,.30)}
.bw-box.has-art .bw-coin-label{color:#e7c271}
.bw-box.has-art .bw-tap{margin-top:15px;color:#f0ddb0}
.overlay.big.show::before,.overlay.mega.show::before,.overlay.epic.show::before,.overlay.jackpot.show::before{opacity:.9}
.overlay.big .bw-art{width:min(92vw,670px)}
.overlay.mega .bw-art{width:min(96vw,720px);filter:drop-shadow(0 16px 24px rgba(0,0,0,.62)) drop-shadow(0 0 30px rgba(255,175,38,.58))}
.overlay.epic .bw-art{width:min(98vw,760px);filter:drop-shadow(0 16px 26px rgba(0,0,0,.64)) drop-shadow(0 0 36px rgba(255,121,22,.68))}
.overlay.jackpot .bw-art{width:min(98vw,760px);filter:drop-shadow(0 16px 26px rgba(0,0,0,.66)) drop-shadow(0 0 38px rgba(255,205,49,.65))}
@keyframes s11ArtEnter{
  0%{opacity:0;transform:scale(.48) translateY(24px);filter:brightness(2.2) blur(4px)}
  58%{opacity:1;transform:scale(1.07) translateY(-4px);filter:brightness(1.25) blur(0)}
  100%{transform:scale(1) translateY(0);filter:brightness(1)}
}
@keyframes s11ArtGlow{from{transform:scale(1);filter:brightness(1) saturate(1.03)}to{transform:scale(1.018);filter:brightness(1.08) saturate(1.10)}}
@media(max-width:420px){
  .bw-art{max-height:40vh;margin:-10px auto -2px}
  .bw-box.has-art .bw-sub{font-size:8px;letter-spacing:.26em}
  .bw-box.has-art .bw-title{font-size:11px;letter-spacing:.18em}
  .bw-box.has-art .bw-amt{font-size:clamp(34px,12vw,52px)}
}
body.reduce-motion .bw-box.has-art .bw-art{animation:none}
