:root{
  --bg:#0b0d17;--bg2:#121527;--card:#161a2e;--card2:#1c2140;--line:#2a3058;
  --text:#e9ecff;--muted:#8d94c2;--accent:#7c5cff;--accent2:#00d4ff;
  --win:#22e39b;--lose:#ff4d6d;--gold:#f5c542;
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Inter,Arial,sans-serif;
  -webkit-tap-highlight-color:transparent}
body{overflow-x:hidden}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
kbd{font:600 .7em ui-monospace,monospace;padding:.1em .4em;border-radius:5px;border:1px solid #ffffff33;
  background:#ffffff14;margin-left:.35em;vertical-align:middle;opacity:.8}
.bg-glow{position:fixed;inset:-20%;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 35% at 20% 10%,#7c5cff33,transparent 70%),
             radial-gradient(35% 30% at 85% 20%,#00d4ff22,transparent 70%),
             radial-gradient(50% 40% at 50% 100%,#ff4d6d14,transparent 70%);
  animation:drift 18s ease-in-out infinite alternate}
@keyframes drift{to{transform:translate3d(3%,2%,0) rotate(4deg)}}
#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:50}

.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px clamp(14px,3vw,32px);
  position:sticky;top:0;z-index:20;backdrop-filter:blur(10px);background:#0b0d17cc;border-bottom:1px solid #ffffff0d}
.brand{font-size:1.25rem;letter-spacing:.02em}
.brand b{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}
.logo{display:inline-block;animation:bob 3s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-3px) rotate(-8deg)}}
.top-actions{display:flex;gap:10px;align-items:center}
.balance{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.1rem;padding:8px 14px;border-radius:999px;
  background:linear-gradient(180deg,#2a2410,#1a160a);border:1px solid #f5c54255;color:#ffe08a;font-variant-numeric:tabular-nums;transition:transform .2s}
.balance.bump-up{animation:bumpUp .5s}
.balance.bump-down{animation:bumpDown .5s}
@keyframes bumpUp{40%{transform:scale(1.15);box-shadow:0 0 24px #22e39b88}}
@keyframes bumpDown{40%{transform:scale(.9);box-shadow:0 0 24px #ff4d6d88}}
.coin-ico{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6c9,#f5c542 45%,#a87700);box-shadow:inset 0 0 0 2px #b8860b}
.icon-btn{width:40px;height:40px;border-radius:12px;background:var(--card);border:1px solid var(--line);font-weight:800;transition:.15s}
.icon-btn:hover{background:var(--card2);transform:translateY(-1px)}

.layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:20px;padding:20px clamp(14px,3vw,32px) 40px;max-width:1240px;margin:0 auto}
@media (max-width:880px){.layout{grid-template-columns:1fr}}
.card{background:linear-gradient(180deg,var(--card),#13172a);border:1px solid #ffffff10;border-radius:var(--radius);padding:18px;box-shadow:0 10px 40px #0006}
.card h2{margin:0 0 12px;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between;align-items:baseline}
.card h2 small{font-size:.8rem;color:#b5bbe6;letter-spacing:0}
.side{display:flex;flex-direction:column;gap:20px}

.streak-banner{display:flex;justify-content:space-between;align-items:center;gap:10px}
.streak{display:flex;align-items:baseline;gap:6px;font-size:2.2rem;font-weight:900;font-variant-numeric:tabular-nums}
.streak small,.best small{font-size:.75rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.flame{font-size:1.6rem;filter:grayscale(1) opacity(.4);transition:.3s}
.flame.lit{filter:none;animation:flick .6s ease-in-out infinite alternate}
.flame.hot{font-size:2.1rem;filter:drop-shadow(0 0 10px #ff8a00)}
@keyframes flick{to{transform:scale(1.12) rotate(-6deg)}}
.best{display:flex;flex-direction:column;align-items:flex-end;font-size:1.4rem;font-weight:800}
.mult{padding:6px 12px;border-radius:999px;background:#ffffff0d;border:1px solid var(--line);font-weight:800;color:var(--muted);transition:.3s}
.mult.on{color:#1b1200;background:linear-gradient(90deg,#ffd166,#ff8a00);border-color:transparent;box-shadow:0 0 20px #ff8a0066;animation:pulse 1.2s infinite}
@keyframes pulse{50%{transform:scale(1.07)}}

.arena{position:relative;height:clamp(260px,42vw,340px);display:grid;place-items:center;perspective:900px;margin:6px 0 4px}
.arena.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes shake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-8px)}40%,60%{transform:translateX(8px)}}
.shadow{position:absolute;bottom:calc(var(--cs,180px)*-.32);width:80%;height:calc(var(--cs,180px)*.12);border-radius:50%;background:radial-gradient(#000a,transparent 70%);transition:transform .2s,opacity .2s}
.toss{transform-style:preserve-3d;will-change:transform}
.coin{--size:var(--cs,min(180px,44vw));--th:calc(var(--size)*.066);width:var(--size);height:var(--size);position:relative;transform-style:preserve-3d;will-change:transform;
  --c1:#fff3b0;--c2:#f5c542;--c3:#a87400;--ink:#7a4f00;--glow:#f5c54255}
.coin .face,.coin .layer{position:absolute;inset:0;border-radius:50%}
.coin .face{backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(circle at 32% 28%,var(--c1),var(--c2) 42%,var(--c3) 100%);
  box-shadow:inset 0 0 0 calc(var(--size)*.035) var(--c3),inset 0 0 0 calc(var(--size)*.06) var(--c2),inset 0 -10px 30px #0004,0 0 40px var(--glow);
  color:var(--ink);overflow:hidden}
.coin .face::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:linear-gradient(115deg,transparent 30%,#ffffff70 45%,transparent 60%);mix-blend-mode:overlay;opacity:.7}
.coin .heads{transform:translateZ(calc(var(--th)/2))}
.coin .tails{transform:rotateX(180deg) translateZ(calc(var(--th)/2))}
.coin .ring{position:absolute;inset:11%;border-radius:50%;border:2px dashed color-mix(in srgb,var(--ink) 55%,transparent)}
.coin .emblem{font-size:calc(var(--size)*.34);line-height:1;filter:drop-shadow(0 2px 0 #fff6) drop-shadow(0 -1px 0 #0005)}
.coin .label{font-weight:900;letter-spacing:.25em;font-size:calc(var(--size)*.08);margin-top:4px;text-shadow:0 1px 0 #fff6}
.coin .layer{background:var(--c3)}
.coin .edge{display:none}

/* skins */
.skin-silver{--c1:#ffffff;--c2:#c9d1dc;--c3:#6e7a8a;--ink:#3a4452;--glow:#c9d1dc44}
.skin-bronze{--c1:#ffd2a8;--c2:#cd7f32;--c3:#6b3a12;--ink:#4a2508;--glow:#cd7f3244}
.skin-neon{--c1:#c4fff9;--c2:#00e5ff;--c3:#7c00ff;--ink:#120033;--glow:#00e5ffaa}
.skin-ruby{--c1:#ffc2cf;--c2:#e0115f;--c3:#5c0020;--ink:#fff0f4;--glow:#e0115f88}
.skin-emerald{--c1:#c8ffe4;--c2:#1fbf75;--c3:#064d2c;--ink:#032b18;--glow:#1fbf7588}
.skin-galaxy{--c1:#ffb3ff;--c2:#5b2bff;--c3:#0a0030;--ink:#fff;--glow:#9b5cffaa}
.skin-galaxy .face{background:radial-gradient(circle at 30% 30%,#ffffffcc 0 1px,transparent 2px) 0 0/23px 19px,
  radial-gradient(circle at 70% 60%,#ffffff99 0 1px,transparent 2px) 0 0/31px 27px,
  radial-gradient(circle at 32% 28%,#ff7ad9,#5b2bff 45%,#0a0030)}
.skin-diamond{--c1:#ffffff;--c2:#b9f2ff;--c3:#4aa3c7;--ink:#0b3a4f;--glow:#b9f2ffcc}
.skin-diamond .face{background:conic-gradient(from 20deg,#e9fdff,#b9f2ff,#ffffff,#8fdcf5,#ffe9fb,#b9f2ff,#e9fdff)}
.skin-shadow{--c1:#5a5a6e;--c2:#25252f;--c3:#08080c;--ink:#c8c8ff;--glow:#7c5cff66}
.skin-rainbow .face{background:conic-gradient(#ff4d6d,#ffd166,#22e39b,#00d4ff,#7c5cff,#ff4d6d)}
.skin-rainbow{--c3:#3b1f6b;--ink:#fff;--glow:#ffffff55}
.skin-rainbow .face{animation:hue 4s linear infinite}
@keyframes hue{to{filter:hue-rotate(360deg)}}

.result{position:absolute;top:8px;left:50%;transform:translateX(-50%);font-weight:900;font-size:1.6rem;letter-spacing:.05em;opacity:0;white-space:nowrap;pointer-events:none}
.result.show{animation:pop .9s cubic-bezier(.2,1.6,.4,1) forwards}
.result.win{color:var(--win);text-shadow:0 0 24px #22e39b88}
.result.lose{color:var(--lose);text-shadow:0 0 24px #ff4d6d88}
@keyframes pop{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}100%{opacity:1;transform:translate(-50%,0) scale(1)}}

.pick{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.pick-btn{padding:14px;border-radius:14px;background:var(--card2);border:2px solid var(--line);font-weight:800;font-size:1.05rem;transition:.18s}
.pick-btn:hover{transform:translateY(-2px);border-color:#4a52a0}
.pick-btn.active{border-color:var(--accent);background:linear-gradient(180deg,#2b2266,#1d1a45);box-shadow:0 0 0 4px #7c5cff22,0 8px 24px #7c5cff33}

.bet{margin-top:14px}
.bet label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.bet-row{display:flex;gap:8px;margin-top:6px}
.bet-row input{flex:1;min-width:0;text-align:center;font-family:inherit;font-weight:800;font-size:1.15rem;color:var(--text);background:#0e1122;border:2px solid var(--line);border-radius:12px;padding:10px;outline:none}
.bet-row input:focus{border-color:var(--accent2)}
.chip{padding:0 12px;border-radius:12px;background:#ffffff0d;border:1px solid var(--line);font-weight:700;transition:.15s}
.chip:hover{background:#ffffff1a}
.bet-hint{margin-top:6px;font-size:.85rem;color:var(--muted);min-height:1.2em}
.bet-hint b{color:var(--win)}

.actions{display:flex;gap:10px;margin-top:14px}
.flip-btn{flex:1;padding:16px 20px;border-radius:16px;font-weight:900;font-size:1.25rem;letter-spacing:.12em;color:#fff;
  background:linear-gradient(90deg,var(--accent),#b04dff 50%,var(--accent2));background-size:200% 100%;box-shadow:0 10px 30px #7c5cff55;transition:.2s}
.flip-btn:hover:not(:disabled){background-position:100% 0;transform:translateY(-2px)}
.flip-btn:active:not(:disabled){transform:translateY(1px) scale(.99)}
.flip-btn:disabled{opacity:.55;cursor:not-allowed}
.ghost-btn{padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:#ffffff08;font-weight:700;transition:.15s}
.ghost-btn:hover{background:#ffffff14}
.ghost-btn.running{border-color:var(--win);color:var(--win);box-shadow:0 0 16px #22e39b44}
.ghost-btn.subtle{color:var(--muted);font-size:.85rem}

.history-wrap{margin-top:16px}
.history-title{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:8px}
.history{display:flex;gap:6px;flex-wrap:wrap;min-height:30px}
.h-chip{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:.75rem;border:2px solid transparent;animation:chipIn .35s cubic-bezier(.2,1.6,.4,1)}
.h-chip.H{background:#f5c54222;color:#ffe08a}
.h-chip.T{background:#00d4ff1f;color:#8beeff}
.h-chip.w{border-color:var(--win)}
.h-chip.l{border-color:#ff4d6d88;opacity:.75}
@keyframes chipIn{from{transform:scale(0)}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stats div{background:#0e1122;border:1px solid #ffffff0a;border-radius:12px;padding:10px 6px;text-align:center}
.stats span{display:block;font-weight:900;font-size:1.15rem;font-variant-numeric:tabular-nums}
.stats small{color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}
@media (max-width:420px){.stats{grid-template-columns:repeat(2,1fr)}}
.ratio{height:10px;border-radius:99px;background:#00d4ff55;margin-top:14px;overflow:hidden}
.ratio div{height:100%;width:50%;background:linear-gradient(90deg,#f5c542,#ffdd77);transition:width .5s}
.ratio-labels{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);margin-top:6px}

.skins{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px}
.skin{position:relative;aspect-ratio:1;border-radius:14px;background:#0e1122;border:2px solid #ffffff0a;display:grid;place-items:center;transition:.15s}
.skin:hover:not(.locked){transform:translateY(-2px)}
.skin.sel{border-color:var(--accent2);box-shadow:0 0 16px #00d4ff44}
.skin .mini{width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 32% 28%,var(--c1),var(--c2) 42%,var(--c3));box-shadow:0 0 12px var(--glow)}
.skin.skin-galaxy .mini{background:radial-gradient(circle at 32% 28%,#ff7ad9,#5b2bff 45%,#0a0030)}
.skin.skin-diamond .mini{background:conic-gradient(#e9fdff,#b9f2ff,#fff,#8fdcf5,#ffe9fb,#e9fdff)}
.skin.skin-rainbow .mini{background:conic-gradient(#ff4d6d,#ffd166,#22e39b,#00d4ff,#7c5cff,#ff4d6d)}
.skin.locked .mini{filter:grayscale(1) brightness(.35)}
.skin.locked::after{content:"🔒";position:absolute;font-size:1.1rem}
.skin .nm{position:absolute;bottom:3px;font-size:.6rem;color:var(--muted);font-weight:700}
.skin.skin-gold{--c1:#fff3b0;--c2:#f5c542;--c3:#a87400;--glow:#f5c54255}

.achs{display:grid;grid-template-columns:1fr;gap:8px;max-height:330px;overflow:auto;padding-right:4px}
.ach{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:#0e1122;border:1px solid #ffffff0a}
.ach .ic{font-size:1.4rem;width:34px;text-align:center}
.ach b{display:block;font-size:.9rem}
.ach small{color:var(--muted);font-size:.75rem}
.ach.locked .ic{filter:grayscale(1) opacity(.35)}
.ach.locked b{color:#8d94c2}
.ach.got{border-color:#22e39b44;background:linear-gradient(90deg,#22e39b14,#0e1122)}

.danger-zone{display:flex;flex-direction:column;gap:8px}

.toasts{position:fixed;right:16px;bottom:16px;pointer-events:none;display:flex;flex-direction:column;gap:10px;z-index:60;max-width:min(340px,calc(100vw - 32px))}
.toast{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:14px;background:linear-gradient(90deg,#2b2266,#1c2140);border:1px solid #7c5cff66;
  box-shadow:0 10px 30px #0008,0 0 20px #7c5cff44;animation:toastIn .45s cubic-bezier(.2,1.4,.4,1)}
.toast.out{animation:toastOut .35s forwards}
.toast .ic{font-size:1.8rem}
.toast small{display:block;color:#b5bbe6;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
@keyframes toastIn{from{transform:translateX(120%);opacity:0}}
@keyframes toastOut{to{transform:translateX(120%);opacity:0}}

.modal{position:fixed;inset:0;background:#05060cbb;backdrop-filter:blur(6px);display:grid;place-items:center;z-index:70;padding:20px}
.modal[hidden]{display:none}
.modal-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px;max-width:440px;width:100%;text-align:center;animation:pop2 .4s cubic-bezier(.2,1.4,.4,1)}
.modal-card .big{font-size:3.5rem}
.modal-card h3{margin:.2em 0;font-size:1.6rem}
.modal-card p{color:var(--muted)}
.help{text-align:left;color:#c8cdf3;line-height:1.55;padding-left:1.1em}
.keys{line-height:2.2;color:var(--muted);margin-bottom:16px}
@keyframes pop2{from{transform:scale(.85);opacity:0}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* ================= v2 ================= */
.topbar{flex-wrap:wrap;gap:10px}
.tabs{display:flex;gap:6px;background:#0e1122;border:1px solid var(--line);border-radius:14px;padding:4px}
.tab{position:relative;padding:8px 14px;border-radius:10px;font-weight:800;color:var(--muted);transition:.15s;white-space:nowrap}
.tab:hover{color:var(--text);background:#ffffff0a}
.tab.active{color:#fff;background:linear-gradient(90deg,#7c5cff,#5a3fd6);box-shadow:0 4px 16px #7c5cff55}
.tab-dot{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:var(--win);box-shadow:0 0 8px var(--win)}
@media (max-width:760px){.tabs{order:3;width:100%;justify-content:space-between}.tab{flex:1;padding:8px 6px;font-size:.9rem}}
.view[hidden]{display:none!important}
.muted{color:var(--muted);margin:.3em 0 0}

/* multi coins */
.coins{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:calc(var(--cs,180px)*.28) 14px;max-width:100%;padding-top:10px}
.coins[data-n="10"]{max-width:calc(5 * var(--cs) + 4 * 14px)}
.slot{position:relative;display:grid;place-items:center;transition:filter .3s}
.coins[data-n="5"] .label,.coins[data-n="10"] .label,.coins[data-n="3"] .label{display:none}
.coins[data-n="5"] .ring,.coins[data-n="10"] .ring{inset:9%}
.slot.w .coin .face{box-shadow:inset 0 0 0 calc(var(--size)*.035) var(--c3),0 0 0 3px var(--win),0 0 30px #22e39baa}
.slot.c .coin .face{box-shadow:inset 0 0 0 calc(var(--size)*.035) var(--c3),0 0 0 4px #ffd166,0 0 40px #ff8a00}
.slot.l{filter:grayscale(.7) brightness(.7)}
.result.push{color:#ffd166;text-shadow:0 0 24px #ffd16688}
.result.crit{color:#ffd166;text-shadow:0 0 30px #ff8a00;font-size:1.9rem}

.perks{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;min-height:26px}
.perk{font-size:.78rem;font-weight:800;padding:4px 9px;border-radius:999px;background:#ffffff0b;border:1px solid var(--line);color:#c8cdf3;white-space:nowrap}
.perk.ready{border-color:#22e39b88;color:var(--win)}
.perk.link{cursor:pointer;color:var(--accent2);border-style:dashed}
.multi{display:flex;gap:8px;margin-top:10px;align-items:center;flex-wrap:wrap}
.multi[hidden]{display:none}
.multi small{color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;margin-right:4px}
.multi button{padding:7px 12px;border-radius:10px;background:#ffffff0b;border:1px solid var(--line);font-weight:800}
.multi button.on{background:linear-gradient(90deg,#00d4ff33,#7c5cff33);border-color:var(--accent2);color:#fff}
.h-chip.c{border-color:#ffd166;box-shadow:0 0 10px #ff8a00}

/* skins v2 */
.skin-royal{--c1:#f3d9ff;--c2:#8e44ad;--c3:#3b0f52;--ink:#ffd76a;--glow:#b05cff88}
.skin-royal .face{background:radial-gradient(circle at 32% 28%,#e7b8ff,#8e44ad 42%,#2a0a3d);box-shadow:inset 0 0 0 calc(var(--size)*.045) #e5b73b,inset 0 0 0 calc(var(--size)*.07) #8e44ad,0 0 40px var(--glow)}
.skin-felt{--c1:#7be3a8;--c2:#0f6b3d;--c3:#06301b;--ink:#f5f5f5;--glow:#1fbf7566}
.skin.skin-royal .mini{background:radial-gradient(circle at 32% 28%,#e7b8ff,#8e44ad 45%,#2a0a3d);box-shadow:0 0 0 3px #e5b73b inset}

/* ================= blackjack ================= */
.table{position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 50% 0%,#167a4a 0%,#0e5634 45%,#08301e 100%);border:1px solid #2fdc8a33;
  box-shadow:inset 0 0 0 10px #3a2412,inset 0 0 0 12px #c9a14a55,0 10px 40px #0007;padding:24px 26px}
.table.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97)}
.table-top{display:flex;justify-content:space-between;align-items:flex-start;min-height:40px}
.bj-msg{font-weight:900;font-size:1.3rem;letter-spacing:.03em;text-shadow:0 2px 8px #0008;min-height:1.4em}
.bj-msg.win{color:#9dffcf}.bj-msg.lose{color:#ffb3c0}.bj-msg.push{color:#ffe08a}
.shoe{position:relative;width:62px;height:78px}
.shoe-card{position:absolute;width:48px;height:68px;border-radius:6px;right:0;top:0;border:3px solid #fff;
  background:repeating-linear-gradient(45deg,#7c5cff 0 5px,#5a3fd6 5px 10px);box-shadow:0 3px 8px #0007}
.shoe-card:nth-child(2){transform:translate(-4px,3px)}.shoe-card:nth-child(3){transform:translate(-8px,6px)}
.shoe small{position:absolute;bottom:-18px;right:0;font-size:.7rem;color:#bfe9d1;font-weight:700}
.area-label{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#bfe9d1;margin-bottom:8px}
.total{display:inline-block;margin-left:6px;padding:2px 9px;border-radius:999px;background:#00000055;color:#fff;font-size:.85rem;letter-spacing:0}
.total:empty{display:none}
.dealer-area{min-height:150px;margin-top:6px}
.felt-text{text-align:center;color:#ffffff38;font-weight:900;letter-spacing:.18em;font-size:.68rem;margin:10px 0 14px;border-top:1px solid #ffffff14;border-bottom:1px solid #ffffff14;padding:6px 0}
.cards{display:flex;min-height:calc(var(--cw) * 1.4);--cw:clamp(58px,11vw,84px)}
.card{position:relative;width:var(--cw);height:calc(var(--cw)*1.4);perspective:700px;flex:none}
.cards .card+.card{margin-left:calc(var(--cw) * -.42)}
.card .inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.3,.7,.3,1.2);transform:rotateY(180deg)}
.card.up .inner{transform:rotateY(0)}
.card .front,.card .back{position:absolute;inset:0;border-radius:calc(var(--cw)*.1);backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 4px 12px #0007}
.card .back{transform:rotateY(180deg);border:calc(var(--cw)*.05) solid #fff;
  background:radial-gradient(circle at 50% 50%,#ffffff33 0 12%,transparent 13%),repeating-linear-gradient(45deg,#7c5cff 0 6px,#5a3fd6 6px 12px)}
.card .front{background:linear-gradient(160deg,#ffffff,#eef0f6);color:#1a1d2e;font-weight:900}
.card.red .front{color:#d81b3c}
.card .cr{position:absolute;font-size:calc(var(--cw)*.2);line-height:.95;text-align:center}
.card .tl{top:6%;left:8%}.card .br{bottom:6%;right:8%;transform:rotate(180deg)}
.card .pip{position:absolute;inset:0;display:grid;place-items:center;font-size:calc(var(--cw)*.5)}
.card .pip.face{font-size:calc(var(--cw)*.45)}
.card .pip.face span{display:block;font-size:calc(var(--cw)*.2);text-align:center;margin-top:-6px}
.card.dbl{margin-top:calc(var(--cw)*.2)}
.card.dbl .inner{transform:rotateY(0) rotate(90deg)}
.hands{display:flex;flex-wrap:wrap;gap:22px;justify-content:center;min-height:calc(clamp(58px,11vw,84px)*1.4 + 40px)}
.hands-empty{color:#bfe9d1aa;font-weight:700;align-self:center}
.hand{padding:10px 12px;border-radius:14px;border:2px solid transparent;transition:.2s}
.hand.active{border-color:#ffd166;background:#ffd16614;box-shadow:0 0 20px #ffd16633}
.hand.done:not(.active){opacity:.92}
.hand-info{display:flex;gap:8px;align-items:center;margin-top:8px;font-size:.85rem;font-weight:800;flex-wrap:wrap}
.hand-info .total{margin:0}
.hbet{color:#ffe08a}
.tag{padding:2px 8px;border-radius:6px;font-size:.75rem;letter-spacing:.05em}
.tag:empty{display:none}
.tag.win{background:var(--win);color:#032b18}.tag.bj{background:linear-gradient(90deg,#ffd166,#ff8a00);color:#2a1600}
.tag.lose,.tag.bust{background:var(--lose);color:#fff}.tag.push{background:#ffd166;color:#2a1600}
.bj-controls{margin-top:18px}
.bj-play{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.bj-play[hidden],.bj-bet[hidden]{display:none}
.act-btn{padding:14px 6px;border-radius:14px;font-weight:900;font-size:1rem;background:#00000044;border:2px solid #ffffff2a;transition:.15s}
.act-btn:hover:not(:disabled){background:#ffffff1a;transform:translateY(-2px)}
.act-btn:disabled{opacity:.35;cursor:not-allowed}
#bjHit{border-color:#22e39b88}#bjStand{border-color:#ff4d6d88}#bjDouble{border-color:#ffd16688}#bjSplit{border-color:#00d4ff88}
.bj-bet{display:flex;flex-direction:column;gap:10px}
.bj-bet .bet-row input{background:#00000055;border-color:#ffffff2a}
.bj-bet .chip{background:#00000033}
.bj-chips{display:flex;gap:10px;justify-content:center}
.pchip{width:54px;height:54px;border-radius:50%;font-weight:900;font-size:.85rem;color:#fff;transition:.15s;
  border:4px dashed #ffffffcc;box-shadow:0 4px 0 #0006,inset 0 0 0 4px #0002}
.pchip:hover{transform:translateY(-3px) rotate(-8deg)}
.pchip:active{transform:translateY(1px)}
.pchip.c5{background:#d81b3c}.pchip.c25{background:#118a4e}.pchip.c100{background:#1a1d2e}.pchip.c500{background:#7c3aed}
.net-line{margin-top:12px;color:var(--muted);font-weight:700}
.net-line b.pos{color:var(--win)}.net-line b.neg{color:var(--lose)}
.rules ul{margin:0;padding-left:1.1em;color:#c8cdf3;line-height:1.6;font-size:.9rem}

/* ================= shop ================= */
.shop-view{max-width:1240px;margin:0 auto;padding:20px clamp(14px,3vw,32px) 40px;display:flex;flex-direction:column;gap:20px}
.shop-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.shop-summary{display:flex;gap:8px;flex-wrap:wrap}
.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.up-card{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--radius);background:linear-gradient(180deg,var(--card),#13172a);border:1px solid #ffffff10;transition:.2s}
.up-card.afford{border-color:#22e39b55;box-shadow:0 0 0 1px #22e39b22,0 10px 30px #22e39b14}
.up-card.max{border-color:#ffd16655}
.up-head{display:flex;gap:12px;align-items:center}
.up-ic{font-size:2rem;width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#0e1122;border:1px solid var(--line)}
.up-head b{display:block}.up-head small{color:var(--muted);font-size:.8rem}
.pips{display:flex;gap:4px}
.pips i{flex:1;height:7px;border-radius:99px;background:#ffffff14}
.pips i.on{background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:0 0 8px #00d4ff55}
.up-card.max .pips i.on{background:linear-gradient(90deg,#ffd166,#ff8a00)}
.up-vals{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:var(--muted);background:#0e1122;border-radius:10px;padding:8px 10px}
.up-vals b{color:var(--text)}.up-vals .nx b{color:var(--win)}
.up-lv{font-size:.75rem;color:var(--muted);font-weight:800;margin-left:auto;white-space:nowrap}
.buy{padding:12px;border-radius:12px;font-weight:900;letter-spacing:.04em;background:linear-gradient(90deg,#22e39b,#00d4ff);color:#04241a;transition:.15s}
.buy:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #22e39b44}
.buy:disabled{background:#ffffff10;color:var(--muted);cursor:not-allowed}
.buy.maxed{background:linear-gradient(90deg,#ffd166,#ff8a00);color:#2a1600;opacity:.9}
.up-card.bought{animation:bought .6s}
@keyframes bought{30%{transform:scale(1.04);box-shadow:0 0 40px #22e39b88}}

/* ===== v3 multi-seat ===== */
.hands .cards{--cw:var(--hcw,clamp(58px,11vw,84px))}
.hands{gap:12px}
.hands[data-n="4"] .hand,.hands[data-n="5"] .hand{padding:8px 8px}
.hand .seat{font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#bfe9d1;margin-bottom:6px;min-height:.9em}
.hand.active .seat{color:#ffd166}
.hands[data-n="4"] .hand-info,.hands[data-n="5"] .hand-info{font-size:.72rem;gap:4px}
.seat-sel{justify-content:center;margin-top:0}
.seat-sel button.locked{opacity:.55}
.seat-total{color:#ffe08a;font-weight:800;font-size:.85rem;margin-left:6px}
