/* =====================================================================
   Velvet Casino — styles for extras.js
   ===================================================================== */
.sec-h{font-family:var(--display);font-weight:500;font-size:22px;margin:0 0 10px}
.sub{color:var(--muted);font-size:12.5px}
.panel-lite{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(0,0,0,.2));border:1px solid var(--line);border-radius:16px;padding:16px;gap:10px}
.plain-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.plain-list li{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid var(--line);flex-wrap:wrap}
.plain-list .amt{color:var(--win);font-family:var(--mono)}
.pbar{height:8px;border-radius:8px;background:rgba(255,255,255,.07);overflow:hidden;margin:6px 0}
.pbar i{display:block;height:100%;background:var(--gold-grad);border-radius:inherit;transition:width .6s var(--ease)}
.btn.sm{padding:6px 12px;font-size:12.5px}
.btn.gold-outline{border-color:var(--gold);color:var(--gold-hi)}
.danger-text{color:var(--lose)!important}
.tab-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff4a3d;box-shadow:0 0 8px #ff4a3d;margin-left:2px;vertical-align:top}
.tab-dot[hidden]{display:none}
.pill.gold{background:var(--gold-grad);color:#17130a;border-color:#f6e2a2}

/* modal */
.xo{z-index:120}
.xo-sheet{position:relative;max-width:520px;width:100%;padding:24px;max-height:min(88vh,900px);overflow:auto}
.xo-sheet.wide{max-width:960px}
.xo-x{position:absolute;right:14px;top:12px;z-index:3}
.xo-title{font-family:var(--display);font-weight:500;font-size:26px;margin:0 36px 8px 0}
.xo-p{color:var(--ivory);opacity:.85;line-height:1.5;margin:0 0 14px}
.xo-hint{color:var(--muted);font-size:12.5px;margin:6px 0 0}
.xo-actions{justify-content:flex-end;gap:8px;margin-top:16px;flex-wrap:wrap}
.col-actions{display:grid;gap:8px}

/* names, levels and frames */
.nm-deco{color:var(--gold-hi);font-size:.9em;opacity:.9;margin:0 1px;flex:none}
.lvchip{flex:none;display:inline-grid;place-items:center;min-width:20px;height:16px;padding:0 5px;border-radius:5px;font-family:var(--mono);font-size:10px;font-weight:600;background:rgba(255,255,255,.08);color:var(--ivory);border:1px solid rgba(255,255,255,.12);line-height:1}
.lvchip.pre{background:linear-gradient(135deg,#3a2d10,#140e05);border-color:rgba(244,221,152,.55);color:var(--gold-hi)}
.av-ring{position:absolute;inset:-3px;border-radius:50%;pointer-events:none;z-index:1}
.av.sm .av-ring{inset:-2px}
.av.lg .av-ring{inset:-6px;border-width:3px!important}
.av.has-ring{box-shadow:none!important}
@keyframes frSpin{to{transform:rotate(360deg)}}
@keyframes frPulse{0%,100%{box-shadow:0 0 4px var(--fc)}50%{box-shadow:0 0 14px var(--fc),0 0 0 2px var(--fc2)}}
@keyframes cnShimmer{to{background-position:-200% 0}}
@keyframes cnFlow{to{background-position:-300% 0}}
@keyframes cnPulse{0%,100%{filter:drop-shadow(0 0 2px var(--glow))}50%{filter:drop-shadow(0 0 9px var(--glow))}}
@keyframes cnFire{to{background-position:0 -200%}}
@keyframes cnGlitch{0%,100%{transform:none}92%{transform:translate(1px,-1px);text-shadow:-2px 0 #22e5ff,2px 0 #ff3fb4}94%{transform:translate(-1px,1px)}96%{transform:none}}
@keyframes cnNeon{0%,100%{opacity:1}93%{opacity:1}94%{opacity:.5}95%{opacity:1}97%{opacity:.7}}
.me-lv{position:relative;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:conic-gradient(var(--gold-hi) calc(var(--p,0) * 360deg),rgba(255,255,255,.1) 0);flex:none}
.me-lv::before{content:"";position:absolute;inset:2.5px;border-radius:50%;background:#0b0a0e}
.me-lv b{position:relative;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--gold-hi)}
.me-lv[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.av-ring,[class*=" cn-"],[class^="cn-"]{animation:none!important}}

/* chips with a chip design equipped */
body.chipskin .chip,.ip-chipskin{background:radial-gradient(circle,var(--c) 0 52%,transparent 53%),repeating-conic-gradient(var(--c) 0 22.5deg,var(--cs-edge) 22.5deg 30deg);box-shadow:0 0 0 2px var(--cs-ring),0 3px 0 rgba(0,0,0,.5),inset 0 0 0 5px rgba(0,0,0,.12)}
body.chipskin .stack .disc{background:radial-gradient(circle,var(--c) 0 50%,transparent 51%),repeating-conic-gradient(var(--c) 0 22.5deg,var(--cs-edge) 22.5deg 30deg);box-shadow:0 2px 0 rgba(0,0,0,.55),0 0 0 1px var(--cs-deep)}

/* profile additions */
.prof-title{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:3px 10px;border-radius:999px;border:1px solid currentColor;margin-top:6px}
.prof-title.r-common{color:#b9b2a3}.prof-title.r-uncommon{color:#6fdc9a}.prof-title.r-rare{color:#6fb3ff}.prof-title.r-epic{color:#b57bff}
.prof-title.r-legendary{color:#f2c94c;box-shadow:0 0 12px rgba(242,201,76,.35)}.prof-title.r-mythic{color:#ff5d8f;box-shadow:0 0 14px rgba(255,93,143,.4)}.prof-title.r-limited{color:#ff8a3d;box-shadow:0 0 14px rgba(255,138,61,.4)}
.prof-level{display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;height:64px;border-radius:16px;background:linear-gradient(160deg,#3a2d10,#0b0a0e);border:1px solid rgba(244,221,152,.4);flex:none;align-self:flex-end}
.prof-level b{font-family:var(--display);font-size:26px;line-height:1;color:var(--gold-hi)}
.prof-level span{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.prof-actions{gap:8px;margin-top:14px;flex-wrap:wrap}
.hist-wrap{overflow:auto;max-height:60vh}
.hist-table{width:100%;border-collapse:collapse;font-size:13px}
.hist-table th,.hist-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left}
.hist-table .num{text-align:right;font-family:var(--mono)}
.hist-table .up{color:var(--win)}.hist-table .down{color:var(--lose)}

/* level up banner */
.lvl-banner{position:fixed;left:50%;top:84px;transform:translateX(-50%);z-index:130;display:flex;gap:14px;align-items:center;padding:12px 22px 12px 12px;border-radius:999px;background:linear-gradient(135deg,#2a2010,#0b0a0e);border:1px solid #f6e2a2;box-shadow:0 20px 60px rgba(0,0,0,.6),0 0 40px rgba(212,175,55,.4);animation:lvIn .5s var(--ease)}
.lvl-banner.out{opacity:0;transform:translate(-50%,-10px);transition:all .5s}
.lvl-num{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--gold-grad);color:#17130a;font-family:var(--display);font-size:24px;font-weight:700}
.lvl-banner b{display:block;font-family:var(--display);font-size:20px;color:var(--gold-hi)}
.lvl-banner span{font-size:12.5px;color:var(--ivory)}
@keyframes lvIn{from{opacity:0;transform:translate(-50%,-20px) scale(.9)}}

/* ===================== item cards ===================== */
.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(148px,100%),1fr));gap:10px}
.item-grid.small{grid-template-columns:repeat(auto-fill,minmax(min(118px,100%),1fr));gap:8px}
.icard{all:unset;box-sizing:border-box;position:relative;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:14px;border:1px solid color-mix(in srgb,var(--rc) 40%,transparent);background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--rc) 18%,transparent),transparent 70%),rgba(0,0,0,.35);transition:transform .15s,box-shadow .2s,border-color .2s;min-width:0}
.icard[tabindex="-1"]{cursor:default}
.icard:hover{transform:translateY(-2px);box-shadow:0 10px 30px -12px var(--rc)}
.icard:focus-visible{outline:2px solid var(--gold-hi)}
.icard.eq{border-color:var(--gold-hi);box-shadow:0 0 0 1px var(--gold-hi) inset}
.icard.picked{border-color:var(--win);box-shadow:0 0 0 2px var(--win),0 0 20px rgba(111,220,154,.4)}
.icard.owned{opacity:.55}
.icard.r-mythic,.icard.r-limited{animation:rareGlow 3s ease-in-out infinite}
@keyframes rareGlow{50%{box-shadow:0 0 18px -4px var(--rc)}}
.icard-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.icard-meta b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icard-sub{font-size:10.5px;color:var(--rc);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icard.small .icard-meta b{font-size:12px}
.icard-ed{position:absolute;top:8px;right:8px;font-family:var(--mono);font-size:10px;padding:2px 6px;border-radius:6px;background:rgba(255,138,61,.15);color:#ff8a3d;border:1px solid rgba(255,138,61,.45)}
.icard-eq{position:absolute;top:8px;left:8px;font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;padding:2px 6px;border-radius:6px;background:var(--gold-grad);color:#17130a}
.icard-fav{position:absolute;top:6px;right:8px;color:var(--gold-hi)}
.icard-count{position:absolute;bottom:8px;right:8px;font-family:var(--mono);font-size:11px;color:var(--muted)}
.icard-cost{font-family:var(--mono);font-size:12px;color:var(--lose)}
.icard-cost.ok{color:var(--win)}
.ip{height:70px;display:grid;place-items:center;border-radius:10px;background:rgba(0,0,0,.35);overflow:hidden;text-align:center;font-weight:700;font-size:15px;padding:4px}
.icard.small .ip{height:56px;font-size:13px}
.ip .nm-t{max-width:100%}
.ip.big{height:130px;font-size:22px;margin:-6px 0 12px}
.ip.big .av.md{width:72px;height:72px;font-size:28px}
.ip-bg{display:block;width:100%;height:100%;border-radius:8px}
.ip-chat{font-size:12px;font-weight:600}
.ip-felt{display:block;width:80%;height:70%;border-radius:40% 40% 50% 50%/30% 30% 60% 60%;box-shadow:inset 0 0 0 3px rgba(212,175,55,.4)}
.ip-slot{display:flex;gap:3px;padding:6px 8px;border-radius:8px;background:linear-gradient(160deg,var(--a),var(--b));box-shadow:0 0 0 2px var(--n),0 0 12px var(--n)}
.ip-slot i{font-style:normal;display:grid;place-items:center;width:18px;height:22px;background:#0b0a0e;border-radius:3px;color:#ff4a3d;font-family:var(--display);font-size:14px}
.ip-wf{position:relative;width:80%;height:80%}
.ip-wf i{position:absolute;width:9px;height:9px;left:calc(var(--i) * 16% + 4%);top:calc(50% + sin(calc(var(--i) * 70deg)) * 30%);animation:wfBob 1.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.2s)}
.ip-wf i.sh-star,.ip-wf i.sh-flake{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.ip-wf i.sh-heart{clip-path:polygon(50% 90%,10% 45%,15% 15%,40% 10%,50% 25%,60% 10%,85% 15%,90% 45%)}
.ip-wf i.sh-gem{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.ip-wf i.sh-coin,.ip-wf i.sh-spark,.ip-wf i.sh-flame,.ip-wf i.sh-petal{border-radius:50%}
@keyframes wfBob{50%{transform:translateY(-8px) rotate(30deg)}}
.ip-banner{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.05em;-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:cnShimmer 3s linear infinite}
.ip-sound{font-size:30px;color:var(--gold-hi)}
.ip .card.sm{--w:40px}
.item-drawer{max-width:460px}
.dust-pill{display:flex;gap:6px;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid rgba(181,123,255,.5);background:rgba(181,123,255,.1);color:#e2c8ff;font-family:var(--mono)}
.dust-pill b{color:#fff}

/* ===================== collection page ===================== */
.col-tabs{margin:6px 0 16px;flex-wrap:wrap}
.col-inv{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.col-inv{grid-template-columns:minmax(0,1fr)}}
.look-panel{position:sticky;top:130px}
@media (max-width:900px){.look-panel{position:static}}
.look-preview{display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 8px 18px;border-radius:12px;background:radial-gradient(ellipse at 50% 30%,rgba(212,175,55,.12),transparent 70%)}
.look-preview .namebtn{font-size:18px}
.look-slots{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.look-slot{all:unset;cursor:pointer;box-sizing:border-box;padding:7px 9px;border-radius:9px;border:1px solid var(--line);background:rgba(0,0,0,.25);display:flex;flex-direction:column;gap:2px;min-width:0}
.look-slot span{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.look-slot b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--dim)}
.look-slot.on{border-color:color-mix(in srgb,var(--rc) 55%,transparent)}
.look-slot.on b{color:var(--rc)}
.look-slot:hover{border-color:var(--gold)}
.col-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}
.col-filters .input{flex:1 1 140px;min-width:0;padding:8px 10px}
.col-filters select.input{flex:0 1 180px}
.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr));gap:14px}
.case-card{position:relative;padding:16px;border-radius:18px;border:1px solid color-mix(in srgb,var(--cc) 45%,transparent);background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--cc) 22%,transparent),transparent 70%),rgba(0,0,0,.35);display:flex;flex-direction:column;gap:10px}
.case-card.locked{opacity:.6}
.case-card h3{font-family:var(--display);font-weight:500;font-size:22px;margin:0}
.case-card p{margin:0;color:var(--muted);font-size:13px}
.case-art{height:96px;display:grid;place-items:center}
.case-box{position:relative;width:96px;height:72px;border-radius:12px;background:linear-gradient(160deg,color-mix(in srgb,var(--cc) 90%,#fff),color-mix(in srgb,var(--cc) 40%,#000));box-shadow:0 14px 30px -10px var(--cc),inset 0 2px 0 rgba(255,255,255,.4);animation:caseBob 3s ease-in-out infinite}
.case-box::before{content:"";position:absolute;left:-4px;right:-4px;top:16px;height:10px;border-radius:4px;background:rgba(0,0,0,.35)}
.case-box i{position:absolute;left:50%;top:10px;width:18px;height:24px;margin-left:-9px;border-radius:4px;background:#f4dd98;box-shadow:0 0 12px #f4dd98}
@keyframes caseBob{50%{transform:translateY(-6px) rotate(-2deg)}}
.case-rates{display:flex;flex-wrap:wrap;gap:4px}
.case-rates span{font-size:10.5px;padding:2px 7px;border-radius:999px;border:1px solid color-mix(in srgb,var(--rc) 45%,transparent);color:var(--rc)}
.case-rates b{color:#fff;font-weight:600}
.case-prev{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.case-prev .ip{height:44px;font-size:11px}
.case-prev .icard{padding:6px}
.case-prev .icard-meta{display:none}
.case-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.case-open .xo-title{text-align:center;margin-right:0}
.case-reel{position:relative;overflow:hidden;padding:14px 0;border-radius:14px;background:rgba(0,0,0,.45);border:1px solid var(--line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.case-strip{display:flex;gap:10px;width:max-content;padding-left:10px}
.case-strip .icard{width:130px;flex:none}
.case-strip .icard.winner{transform:scale(1.06);box-shadow:0 0 0 2px var(--rc),0 0 40px var(--rc);z-index:2}
.case-marker{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--gold-hi);box-shadow:0 0 12px var(--gold-hi)}
.case-marker::before,.case-marker::after{content:"";position:absolute;left:-7px;border:8px solid transparent}
.case-marker::before{top:0;border-top-color:var(--gold-hi)}.case-marker::after{bottom:0;border-bottom-color:var(--gold-hi)}
.case-result{margin-top:16px;text-align:center}
.case-won{display:flex;flex-direction:column;gap:6px;align-items:center;animation:wonIn .5s var(--ease)}
.case-won span{font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--rc)}
.case-won b{font-family:var(--display);font-size:30px;font-weight:500;color:#fff;text-shadow:0 0 24px var(--rc)}
.case-won em{font-style:normal;font-family:var(--mono);color:#ff8a3d}
.case-won small{color:var(--muted)}
@keyframes wonIn{from{opacity:0;transform:scale(.8)}}
.trade-make{margin-bottom:16px}
.trade-make .row .input{flex:1}
.trade-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}
@media (max-width:760px){.trade-cols{grid-template-columns:minmax(0,1fr)}}
.trade-side .item-grid{max-height:340px;overflow:auto;padding:2px}
.trade-card{margin-bottom:12px}
.trade-who{font-weight:700;margin-bottom:2px}
.trade-swap{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:10px}
.trade-arrow{font-size:28px;color:var(--gold-hi)}
@media (max-width:640px){.trade-swap{grid-template-columns:minmax(0,1fr)}.trade-arrow{text-align:center}}
.looks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:12px}
.look-card .row{gap:6px;flex-wrap:wrap}

/* ===================== rewards page ===================== */
.rw-level{display:flex;flex-direction:row;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.rw-lvnum{width:110px;height:110px;border-radius:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,#4a3a14,#0b0a0e);border:1px solid rgba(244,221,152,.5);box-shadow:0 0 40px -10px rgba(212,175,55,.6)}
.rw-lvnum b{font-family:var(--display);font-size:50px;line-height:1;color:var(--gold-hi)}
.rw-lvnum span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.rw-lvbar{flex:1 1 300px;min-width:0}
.rw-lvbar .pbar{height:12px}
.rw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:14px;margin-bottom:16px}
.rw-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:8px 0 12px}
.rw-day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px;border-radius:10px;border:1px solid var(--line);background:rgba(0,0,0,.3);text-align:center}
.rw-day span{font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.rw-day b{font-family:var(--mono);font-size:12px;color:var(--ivory)}
.rw-day em{font-style:normal;font-size:9px;color:var(--gold-hi)}
.rw-day.done{background:rgba(111,220,154,.08);border-color:rgba(111,220,154,.4)}
.rw-day.done b{color:var(--win)}
.rw-day.today{border-color:var(--gold-hi);box-shadow:0 0 16px rgba(212,175,55,.4);animation:turnpulse 1.6s ease-in-out infinite}
.rw-streak-n{display:flex;align-items:baseline;gap:10px;margin:4px 0}
.rw-streak-n b{font-family:var(--display);font-size:46px;color:#ff8a3d;line-height:1}
.rw-steps{display:flex;gap:6px;margin-top:8px}
.rw-steps span{flex:1;text-align:center;padding:6px 0;border-radius:8px;border:1px solid var(--line);font-family:var(--mono);font-size:12px;color:var(--muted)}
.rw-steps span.on{border-color:#ff8a3d;color:#ff8a3d;background:rgba(255,138,61,.1)}
.rw-mission{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.rw-mission:last-of-type{border-bottom:0}
.rw-mission b{font-size:14px}
.rw-mission.done b{color:var(--win)}
.rw-mission.claimed{opacity:.55}
.rw-season{margin-bottom:16px}
.rw-track{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 12px;scroll-snap-type:x proximity}
.rw-tier{all:unset;box-sizing:border-box;flex:none;width:112px;min-height:96px;padding:10px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.35);display:flex;flex-direction:column;gap:4px;scroll-snap-align:start;cursor:default;--rc:var(--gold)}
.rw-tier span{font-family:var(--mono);font-size:11px;color:var(--muted)}
.rw-tier b{font-size:12.5px;line-height:1.25}
.rw-tier em{font-style:normal;font-size:11px;color:var(--gold-hi)}
.rw-tier.special{border-color:color-mix(in srgb,var(--rc) 55%,transparent);background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--rc) 22%,transparent),rgba(0,0,0,.35) 70%)}
.rw-tier.special b{color:var(--rc)}
.rw-tier.locked{opacity:.45}
.rw-tier.can{cursor:pointer;border-color:var(--gold-hi);box-shadow:0 0 16px rgba(212,175,55,.45);animation:turnpulse 1.6s ease-in-out infinite}
.rw-tier.got{background:rgba(111,220,154,.08);border-color:rgba(111,220,154,.35)}
.rw-tier.got::after{content:"✓ Claimed";font-size:10px;color:var(--win);margin-top:auto}
.rw-keys{display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}
.rw-keys p{margin:0}
.rw-ach .seg{margin:4px 0 8px;flex-wrap:wrap}
.rw-det{border-bottom:1px solid var(--line)}
.rw-group{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:14px 2px;cursor:pointer;display:flex;justify-content:space-between}
.rw-group span{font-family:var(--mono);letter-spacing:0;color:var(--gold-hi)}
.rw-det .ach-grid{padding-bottom:14px}
@media (max-width:680px){.ach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ach{padding:8px}}
.ach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:8px}
.ach{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.3);opacity:.55}
.ach.have{opacity:1;border-color:color-mix(in srgb,var(--rc) 55%,transparent);background:radial-gradient(ellipse at 0% 0%,color-mix(in srgb,var(--rc) 16%,transparent),rgba(0,0,0,.3) 70%)}
.ach b{font-size:14px}
.ach.have b{color:var(--rc)}
.ach span{font-size:12px;color:var(--muted)}
.ach em{font-style:normal;font-size:11px;color:var(--gold-hi)}
.ach small{font-size:10.5px;color:var(--dim)}
.ach.secret{border-style:dashed}
.ach .btn{align-self:flex-start;margin-top:4px}

/* ===================== coinflip ===================== */
.cf-layout{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:16px;align-items:stretch}
@media (max-width:860px){.cf-layout{grid-template-columns:minmax(0,1fr)}}
.cf-make{display:flex;flex-direction:column;gap:12px}
.cf-make .field .sub{font-weight:400}
.cf-side button{display:flex;gap:6px;align-items:center;justify-content:center;flex:1}
.cf-mini{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--gold-grad);color:#5a3f0a;font-family:var(--display);font-weight:700;font-size:12px}
.cf-mini.t{background:linear-gradient(160deg,#e9edf2,#8a929c);color:#2a2f36}
.cf-stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:340px;border-radius:22px;background:radial-gradient(ellipse at 50% 40%,rgba(212,175,55,.18),transparent 60%),radial-gradient(ellipse at 50% 120%,var(--felt-2),var(--felt) 70%);border:1px solid rgba(244,221,152,.25);box-shadow:inset 0 0 90px rgba(0,0,0,.55);perspective:900px;padding:20px}
.coin3d{position:relative;width:170px;height:170px;transform-style:preserve-3d}
.coin3d .face{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;backface-visibility:hidden;-webkit-backface-visibility:hidden;font-family:var(--display);font-weight:700;font-size:80px;box-shadow:inset 0 0 0 8px rgba(0,0,0,.12),inset 0 0 0 12px rgba(255,255,255,.25),0 20px 40px rgba(0,0,0,.6)}
.coin3d .face span{filter:drop-shadow(0 2px 0 rgba(255,255,255,.4))}
.coin3d .face.h{background:radial-gradient(circle at 35% 30%,#fff3c4,#e2bf5a 45%,#8c6b1d);color:#6e4f10}
.coin3d .face.t{background:radial-gradient(circle at 35% 30%,#fff,#c9ced6 45%,#6d737d);color:#2a2f36;transform:rotateY(180deg)}
.coin3d .face::after{content:"";position:absolute;inset:16px;border-radius:50%;border:3px dashed rgba(0,0,0,.2)}
.coin3d.flipping{animation:coinRise 3s cubic-bezier(.3,.6,.3,1)}
@keyframes coinRise{30%{translate:0 -70px;scale:1.15}100%{translate:0 0}}
.cf-fair{max-width:100%;font-size:12px;color:var(--muted)}
.cf-fair .mono{word-break:break-all;margin:6px 0;font-size:11px}
.cf-lists{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}
@media (max-width:860px){.cf-lists{grid-template-columns:minmax(0,1fr)}}
.cf-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cf-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.3);flex-wrap:wrap;animation:slidein .25s var(--ease)}
.cf-row.done{opacity:.85}
.cf-who{display:flex;align-items:center;gap:6px;flex:1 1 150px;min-width:0}
.cf-who .vs{color:var(--dim);font-size:11px}
.cf-side-tag{font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}
.cf-side-tag.h{background:rgba(226,191,90,.15);color:var(--gold-hi)}
.cf-side-tag.t{background:rgba(201,206,214,.15);color:#dfe4ea}
.cf-amt{color:var(--gold-hi)}
.cf-win{font-size:12px;color:var(--win)}

/* ===================== slots ===================== */
.sx-pot{display:flex;flex-direction:column;align-items:flex-end;padding:8px 16px;border-radius:14px;border:1px solid rgba(255,138,61,.5);background:linear-gradient(160deg,rgba(255,106,0,.18),rgba(0,0,0,.4))}
.sx-pot span{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#ffb27a}
.sx-pot b{font-family:var(--mono);font-size:20px;color:#ffd9b3;text-shadow:0 0 14px rgba(255,138,61,.8)}
.sx-pot.big b{font-size:26px}
.sx-filter{margin:4px 0 14px;flex-wrap:wrap}
.sx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:14px}
.sx-card{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:flex;flex-direction:column;border-radius:20px;overflow:hidden;background:linear-gradient(170deg,var(--a),var(--b) 70%);border:1px solid color-mix(in srgb,var(--n) 50%,transparent);box-shadow:0 18px 40px -20px var(--a);transition:transform .2s var(--ease),box-shadow .2s}
.sx-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -20px var(--a),0 0 0 1px var(--n)}
.sx-card:focus-visible{outline:2px solid var(--gold-hi)}
.sx-card-lights{display:flex;justify-content:space-around;padding:8px 10px 0}
.sx-card-lights i{width:7px;height:7px;border-radius:50%;background:var(--n);box-shadow:0 0 8px var(--n);animation:bulb 1.2s infinite}
.sx-card-lights i:nth-child(2n){animation-delay:.6s}
@keyframes bulb{50%{opacity:.25}}
.sx-card-hero{font-size:64px;text-align:center;padding:6px 0 0;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5));line-height:1.2}
.sx-card-meta{padding:10px 16px 16px;background:linear-gradient(transparent,rgba(0,0,0,.55) 30%)}
.sx-card-meta h3{font-family:var(--display);font-weight:500;font-size:22px;margin:0;color:#fff}
.sx-card-meta p{margin:4px 0 8px;font-size:12.5px;color:rgba(255,255,255,.75);line-height:1.4}
.sx-feats{display:flex;flex-wrap:wrap;gap:4px}
.sx-feats span{font-size:10px;padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.4);color:var(--n);border:1px solid color-mix(in srgb,var(--n) 40%,transparent)}
.sx-vol{position:absolute;top:12px;right:12px;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.5);color:#fff}
.sx-jwins{margin-top:22px}
.sx-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.sx-cab{--cab-a:var(--a);--cab-b:var(--b);--cab-neon:var(--n);position:relative;max-width:980px;margin:0 auto;border-radius:30px;padding:16px 18px 18px;background:linear-gradient(170deg,color-mix(in srgb,var(--cab-a) 85%,#fff 15%),var(--cab-a) 20%,var(--cab-b) 75%);box-shadow:0 0 0 3px color-mix(in srgb,var(--cab-neon) 70%,transparent),0 0 40px -6px var(--cab-neon),0 40px 80px -30px #000,inset 0 2px 0 rgba(255,255,255,.35)}
.sx-cab.skinned{--a:var(--cab-a)}
.sx-marquee{text-align:center;padding:4px 0 12px}
.sx-marquee h2{font-family:var(--display);font-weight:700;font-size:clamp(24px,4vw,38px);margin:4px 0 0;color:#fff;text-shadow:0 0 18px var(--cab-neon),0 2px 0 rgba(0,0,0,.5);letter-spacing:.02em}
.sx-sub{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.sx-bulbs{display:flex;justify-content:space-between;padding:0 6px}
.sx-bulbs i{width:8px;height:8px;border-radius:50%;background:var(--cab-neon);box-shadow:0 0 10px var(--cab-neon);animation:bulb 1s infinite}
.sx-bulbs i:nth-child(3n){animation-delay:.33s}.sx-bulbs i:nth-child(3n+1){animation-delay:.66s}
.sx-cab.win .sx-bulbs i{animation-duration:.25s}
.sx-window{position:relative;border-radius:18px;padding:10px;background:linear-gradient(#000,#111);box-shadow:inset 0 0 0 2px rgba(0,0,0,.6),inset 0 10px 30px rgba(0,0,0,.9),0 0 0 4px color-mix(in srgb,var(--cab-neon) 35%,#000)}
.sx-reels{--cell:clamp(54px,calc((min(100vw,980px) - 110px) / var(--reels) * .78),118px);display:grid;grid-template-columns:repeat(var(--reels),minmax(0,1fr));gap:6px;height:calc(var(--cell) * var(--rows))}
.sx-reel{position:relative;overflow:hidden;border-radius:10px;background:linear-gradient(90deg,#0c0c10,#1c1b22 50%,#0c0c10);box-shadow:inset 0 14px 18px -10px #000,inset 0 -14px 18px -10px #000}
.sx-reel.tease{box-shadow:inset 0 0 0 2px var(--cab-neon),0 0 26px var(--cab-neon);animation:tease .4s infinite alternate}
@keyframes tease{to{box-shadow:inset 0 0 0 2px #fff,0 0 34px var(--cab-neon)}}
.sx-reel.wild-reel{animation:wildReel .6s ease-in-out}
@keyframes wildReel{50%{background:var(--cab-neon);box-shadow:0 0 40px var(--cab-neon)}}
.sx-reel.expand{animation:wildReel .45s ease-in-out}
.sx-strip{display:flex;flex-direction:column;will-change:transform}
.sx-sym{position:relative;height:calc(var(--cell));flex:none;display:grid;place-items:center;font-size:calc(var(--cell) * .55);line-height:1;user-select:none}
.sx-sym .g{filter:drop-shadow(0 4px 6px rgba(0,0,0,.6));transition:transform .2s}
.sx-sym em{position:absolute;bottom:6%;left:50%;transform:translateX(-50%);font-style:normal;font-size:calc(var(--cell) * .12);font-weight:900;letter-spacing:.06em;padding:1px 5px;border-radius:4px;background:rgba(0,0,0,.6);color:#fff;white-space:nowrap}
.sx-wild em{background:var(--gold-grad);color:#17130a}
.sx-scatter em{background:#ff3fb4}
.sx-bonus em{background:#22e5ff;color:#001a20}
.sx-jackpot em{background:#ff8a3d;color:#1a0800}
.sx-txt .g{font-family:var(--display);font-weight:700}
.sx-royal .g{font-size:calc(var(--cell) * .5);background:linear-gradient(180deg,#fff,var(--cab-neon) 55%,color-mix(in srgb,var(--cab-neon) 50%,#000));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 0 rgba(0,0,0,.8))}
.sx-rA .g{background:linear-gradient(180deg,#fff,#ff5d5d 55%,#7a0a0a);-webkit-background-clip:text;background-clip:text}
.sx-rK .g{background:linear-gradient(180deg,#fff,#5ab0ff 55%,#0b2a6e);-webkit-background-clip:text;background-clip:text}
.sx-rQ .g{background:linear-gradient(180deg,#fff,#b46bff 55%,#3a0f6e);-webkit-background-clip:text;background-clip:text}
.sx-rJ .g{background:linear-gradient(180deg,#fff,#6fdc9a 55%,#0b4a33);-webkit-background-clip:text;background-clip:text}
.sx-r10 .g{background:linear-gradient(180deg,#fff,#f2c94c 55%,#6e4f10);-webkit-background-clip:text;background-clip:text;font-size:calc(var(--cell) * .42)}
.sx-seven .g{font-size:calc(var(--cell) * .7);color:#ff3b30;-webkit-text-stroke:2px #fff3c4;text-shadow:0 0 14px rgba(255,59,48,.8),0 3px 0 #6e0c14}
.sx-bar .g{font-size:calc(var(--cell) * .18);line-height:1.15;padding:3px 7px;border-radius:5px;background:linear-gradient(#222,#000);color:#fff3c4;border:2px solid #f4dd98;letter-spacing:.08em;text-align:center}
.sx-mystery .g{filter:drop-shadow(0 0 10px #b46bff)}
.sx-sym.flip .g{animation:symFlip .5s ease-in-out}
@keyframes symFlip{50%{transform:rotateY(90deg) scale(1.2)}}
.sx-sym.hit{z-index:2;animation:symHit .7s ease-in-out infinite alternate}
.sx-sym.hit::before{content:"";position:absolute;inset:3px;border-radius:10px;box-shadow:inset 0 0 0 2px var(--cab-neon),0 0 22px var(--cab-neon);background:radial-gradient(circle,color-mix(in srgb,var(--cab-neon) 25%,transparent),transparent 70%)}
@keyframes symHit{to{transform:scale(1.08)}}
.sx-sym.sticky::after{content:"";position:absolute;inset:4px;border-radius:10px;border:2px dashed #a8e6ff;box-shadow:0 0 12px #a8e6ff}
.sx-scatter.land .g{animation:land .5s var(--ease)}
@keyframes land{40%{transform:scale(1.35)}}
.sx-x{position:absolute;top:6%;right:8%;font-family:var(--mono);font-size:calc(var(--cell) * .16);font-weight:700;padding:1px 5px;border-radius:6px;background:#ff3fb4;color:#fff;box-shadow:0 0 10px #ff3fb4}
.sx-lines{position:absolute;inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);pointer-events:none;overflow:visible}
.sx-lines polyline{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px currentColor);opacity:.9;stroke-dasharray:1200;stroke-dashoffset:1200;animation:drawLine .5s ease-out forwards}
@keyframes drawLine{to{stroke-dashoffset:0}}
.sx-fs-banner{position:absolute;inset:0;display:grid;place-items:center;z-index:5;font-family:var(--display);font-weight:700;font-size:clamp(22px,5vw,46px);color:#fff;text-align:center;text-shadow:0 0 20px var(--cab-neon),0 3px 0 #000;background:rgba(0,0,0,.55);border-radius:18px}
.sx-fs-banner.go{animation:fsIn .5s var(--ease)}
@keyframes fsIn{from{opacity:0;transform:scale(1.3)}}
.sx-cab.in-fs .sx-window{box-shadow:inset 0 0 0 2px rgba(0,0,0,.6),inset 0 10px 30px rgba(0,0,0,.9),0 0 0 4px #ff3fb4,0 0 40px #ff3fb4}
.sx-panel{display:flex;justify-content:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.sx-panel>div{min-width:120px;padding:6px 16px;border-radius:10px;background:#050406;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);text-align:center}
.sx-panel span{display:block;font-size:9.5px;letter-spacing:.24em;color:rgba(255,255,255,.55)}
.sx-panel b{font-family:var(--mono);font-size:20px;color:#ffd24d;text-shadow:0 0 10px rgba(255,210,77,.6)}
.sx-panel [hidden]{display:none}
.sx-msg{margin-top:10px}
.sx-controls{max-width:980px;margin:0 auto}
.sx-acts{flex-wrap:wrap}
.sx-acts [aria-pressed="true"]{border-color:var(--gold-hi);color:var(--gold-hi)}
.sx-spin{min-width:150px}
.sx-winbig{position:fixed;inset:0;z-index:140;display:grid;place-items:center;background:radial-gradient(circle,rgba(0,0,0,.4),rgba(0,0,0,.85));animation:fsIn .4s var(--ease);cursor:pointer}
.sx-winbig.out{opacity:0;transition:opacity .3s}
.sx-winbig-in{text-align:center;display:flex;flex-direction:column;gap:6px}
.sx-winbig b{font-family:var(--display);font-weight:700;font-size:clamp(40px,10vw,96px);line-height:1;background:linear-gradient(180deg,#fff,#ffd24d 50%,#c47a0a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 30px rgba(255,210,77,.6));animation:winPulse .6s ease-in-out infinite alternate}
.sx-winbig span{font-size:clamp(30px,7vw,64px);color:#fff;text-shadow:0 0 20px rgba(255,210,77,.8)}
.sx-winbig small{color:var(--muted);letter-spacing:.2em;text-transform:uppercase}
@keyframes winPulse{to{transform:scale(1.06)}}
.sx-bonus{position:fixed;inset:0;z-index:140;display:grid;place-items:center;background:rgba(0,0,0,.8);padding:16px;animation:fsIn .4s var(--ease)}
.sx-bonus.out{opacity:0;transition:opacity .3s}
.sx-bonus-in{max-width:460px;width:100%;text-align:center;padding:22px;border-radius:24px;background:linear-gradient(160deg,#2a1a40,#0b0614);border:1px solid #b46bff;box-shadow:0 0 60px -10px #b46bff}
.sx-bonus-in h3{font-family:var(--display);font-size:32px;margin:0;color:#fff}
.sx-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.sx-box{aspect-ratio:1;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(160deg,#4b1980,#1d0a4d);font-size:34px;cursor:pointer;transition:transform .15s;color:#fff}
.sx-box:hover:not(.open){transform:translateY(-3px) scale(1.03);box-shadow:0 0 20px #b46bff}
.sx-box.open{background:linear-gradient(160deg,#fff3c4,#e2bf5a);color:#17130a;animation:land .4s var(--ease);cursor:default}
.sx-box.open b{font-family:var(--mono);font-size:15px}
.sx-box.miss{opacity:.35;filter:grayscale(.6)}
.sx-bonus-total{font-size:18px}
.sx-bonus-total b{font-family:var(--mono);color:var(--gold-hi)}
.pay-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:8px}
.pay-row{--cell:64px;--cab-neon:var(--gold-hi);display:flex;gap:10px;align-items:center;padding:6px 10px;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid var(--line)}
.pay-row .sx-sym{width:64px;height:64px;flex:none}
.pay-vals{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--muted)}
.pay-vals b{color:var(--gold-hi);font-family:var(--mono)}
.pay-vals small{flex-basis:100%;color:var(--ivory);opacity:.8;line-height:1.4}
.line-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(70px,100%),1fr));gap:6px}
.line-mini{position:relative;display:grid;grid-template-columns:repeat(var(--r),1fr);gap:2px;padding:14px 4px 4px;border-radius:8px;background:rgba(0,0,0,.35);border:1px solid var(--line)}
.line-mini b{position:absolute;top:1px;left:5px;font-size:9px;color:var(--muted)}
.line-mini i{height:8px;border-radius:2px;background:rgba(255,255,255,.08)}
.line-mini i.on{background:var(--gold-hi)}
@media (max-width:680px){
  .sx-cab{padding:10px 8px 12px;border-radius:20px}
  .sx-window{padding:6px}
  .sx-reels{--cell:clamp(42px,calc((100vw - 60px) / var(--reels)),110px);gap:3px}
  .sx-panel>div{min-width:90px;padding:4px 10px}
  .sx-panel b{font-size:16px}
  .sx-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .sx-acts .sx-spin{grid-column:1/-1;order:-1;min-height:56px;font-size:18px}
  .sx-card-hero{font-size:52px}
}

/* ===================== friends ===================== */
.so-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:860px){.so-layout{grid-template-columns:minmax(0,1fr)}}
.so-add{gap:6px;margin-bottom:10px}
.so-add .input{flex:1;min-width:0}
.so-h{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.so-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.so-person{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.25)}
.so-person.on .sub{color:var(--win)}
.so-person.sel{border-color:var(--gold)}
.so-person .row{gap:6px;flex-wrap:wrap}
.so-chat{display:flex;flex-direction:column;min-height:420px;max-height:70vh;padding:0;overflow:hidden}
.so-chat>.empty{padding:40px;text-align:center}
.so-chat-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.so-chat-head .sub{flex:1}
.so-msgs{list-style:none;margin:0;padding:14px;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}
.so-msgs li{max-width:78%;align-self:flex-start;padding:8px 12px;border-radius:14px 14px 14px 4px;background:rgba(255,255,255,.06)}
.so-msgs li.mine{align-self:flex-end;border-radius:14px 14px 4px 14px;background:rgba(212,175,55,.14)}
.so-msgs li.sys{align-self:center;background:none;color:var(--dim);font-style:italic}
.so-msgs .txt{overflow-wrap:anywhere;font-size:14px}
.so-msgs time{display:block;font-size:10px;color:var(--dim);margin-top:2px}
.so-chat .chat-form .input{font-size:16px}
.so-tours{margin-top:22px}
.tour-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px}
.tour-card h4{font-family:var(--display);font-weight:500;font-size:20px;margin:0}
.tour-prizes{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}
.tour-prizes span{font-size:11px;padding:3px 8px;border-radius:999px;background:rgba(212,175,55,.1);border:1px solid rgba(212,175,55,.3)}
.tour-prizes b{color:var(--gold-hi);font-family:var(--mono)}
.tour-ends{font-family:var(--mono);font-size:12px;color:#ff8a3d}
.tour-top{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.tour-top li{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.025)}
.tour-top li.me{background:rgba(212,175,55,.1)}
.tour-top .rank{width:20px;text-align:center;font-family:var(--display);font-style:italic;color:var(--dim)}
.tour-top .v{margin-left:auto;font-family:var(--mono);color:var(--gold-hi);font-size:12.5px}
.tour-mine{margin-top:8px;font-size:12px;color:var(--muted)}
.tour-results{margin-top:14px}
.so-wins{margin-top:22px}
.wins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:8px}
.win-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.3)}
.win-card .amt{font-family:var(--mono);font-size:20px;color:var(--win)}
.win-card.jack{border-color:rgba(255,138,61,.5);background:linear-gradient(160deg,rgba(255,106,0,.15),rgba(0,0,0,.3))}
.win-card.jack .amt{color:#ffd9b3}

/* ===================== lounge ===================== */
.lg-hero{position:relative;padding:34px 26px;border-radius:24px;margin-bottom:16px;overflow:hidden;background:radial-gradient(ellipse at 80% 0%,rgba(212,175,55,.35),transparent 60%),linear-gradient(160deg,#2a0d13,#0b0a0e 70%);border:1px solid rgba(244,221,152,.35)}
.lg-hero h2{font-family:var(--display);font-weight:500;font-size:clamp(30px,5vw,48px);margin:10px 0 6px;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.lg-hero p{margin:0;color:var(--ivory);opacity:.8;max-width:560px}
.lg-locked{max-width:560px}
.lg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:12px;margin-bottom:14px}
.lg-table{display:flex;flex-direction:column;gap:8px}
.lg-table.locked{opacity:.55}
.lg-table h4{font-family:var(--display);font-weight:500;font-size:20px;margin:0}
.lg-felt{height:80px;border-radius:40% 40% 50% 50%/30% 30% 70% 70%;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,var(--felt-2),var(--felt));box-shadow:inset 0 0 0 3px rgba(212,175,55,.45);font-size:30px;color:rgba(244,221,152,.6)}
.lg-felt.priv{background:radial-gradient(ellipse at 50% 30%,#3a2d22,#140e0a)}
.lg-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;margin-bottom:14px}
.pt-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pt-grid .panel-lite{display:flex;flex-direction:column;gap:8px}
@media (max-width:560px){.pt-grid{grid-template-columns:minmax(0,1fr)}}
#bj-privbtn{margin:-4px 0 12px}
.tablepick .bj-vip{border-color:rgba(244,221,152,.45)}
.tablepick .bj-priv{border-style:dashed}

/* game card art for coinflip */
.art-cf{background:radial-gradient(circle at 50% 40%,rgba(212,175,55,.35),transparent 60%),linear-gradient(160deg,#2a2010,#0b0a0e)}
@media (max-width:680px){
  .rw-days{gap:3px}.rw-day{padding:6px 1px}.rw-day b{font-size:10.5px}
  .rw-lvnum{width:84px;height:84px}.rw-lvnum b{font-size:38px}
  .coin3d{width:130px;height:130px}.coin3d .face{font-size:60px}
  .cf-stage{min-height:260px}
  .item-grid{grid-template-columns:repeat(auto-fill,minmax(min(130px,100%),1fr))}
}
.cf-lh{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cf-lh .sec-h{margin-bottom:10px}
.cf-row .btn[disabled]{opacity:.6}

/* ===================== House Exclusive rarity ===================== */
.prof-title.r-exclusive{color:#ff5a5a;box-shadow:0 0 16px rgba(255,59,59,.5);background:rgba(255,59,59,.08)}
.icard.r-exclusive{animation:rareGlow 2.4s ease-in-out infinite;background:radial-gradient(ellipse at 50% 0%,rgba(255,59,59,.28),transparent 70%),repeating-linear-gradient(135deg,rgba(255,210,77,.06) 0 6px,transparent 6px 14px),rgba(0,0,0,.4)}
.fx-tag{flex:none;font-size:.95em;line-height:1;margin-left:2px}
.prof-name .fx-tag{font-size:.8em}

/* ===================== VIP high limit ===================== */
.cf-hl{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:linear-gradient(135deg,#a9c8ff,#6a5cff);color:#0b0a1e}
.tablepick .bj-hl,#bj-tables .bj-hl{border-color:rgba(169,200,255,.6)!important;background:linear-gradient(160deg,rgba(106,92,255,.18),rgba(0,0,0,.3))}
.lg-felt.hl{background:radial-gradient(ellipse at 50% 30%,#3b3f8f,#0b0a26)}
.lg-hl{border-color:rgba(169,200,255,.45)}
.pt-hl{display:flex;gap:8px;align-items:flex-start;padding:10px;border-radius:10px;border:1px solid rgba(169,200,255,.35);background:rgba(106,92,255,.08);font-size:13px;line-height:1.4}
.pt-hl input{margin-top:3px}
.pt-hl.locked{opacity:.55}

/* ===================== owner panel ===================== */
#hp-owner .ot-who{margin-bottom:12px}
#hp-owner .ot-who .row{gap:10px;flex-wrap:wrap}
#hp-owner .ot-who select{flex:1;min-width:200px}
.ot-grid{grid-template-columns:repeat(auto-fit,minmax(min(330px,100%),1fr))}
.ot-grid .hp-card{display:flex;flex-direction:column;gap:8px}
.ot-grid .hp-card h3{margin:8px 0 0}
.ot-fx{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr));gap:6px}
.ot-fxb{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;text-align:left;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:rgba(0,0,0,.3);color:var(--ivory);cursor:pointer;transition:border-color .2s,transform .15s}
.ot-fxb:hover{border-color:var(--gold);transform:translateY(-1px)}
.ot-fxb span{grid-row:1/3;font-size:24px;align-self:center}
.ot-fxb b{font-size:13px}
.ot-fxb small{font-size:10.5px;color:var(--muted);line-height:1.3}
.ot-tags{display:flex;gap:6px;flex-wrap:wrap}
.ot-tags .btn{font-size:18px;padding:6px 12px}
.ot-tags .btn.ghost{font-size:12.5px}
.ot-row{gap:6px;flex-wrap:wrap;align-items:center}
.ot-row .input{flex:1 1 90px;min-width:0}
.ot-prev{max-width:180px}

/* ===================== effects everyone can see ===================== */
body{transition:transform .8s var(--ease),filter .6s}
body.fx-flip{transform:rotate(180deg)}
body.fx-tiny{transform:scale(.55);transform-origin:50% 0}
body.fx-shake{animation:fxShake .12s linear infinite}
body.fx-disco{animation:fxDisco 1.2s linear infinite}
body.fx-spin{animation:fxSpin 2s var(--ease)}
body.fx-drunk{animation:fxDrunk 2.4s ease-in-out infinite}
@keyframes fxShake{0%{translate:0 0}25%{translate:-7px 3px}50%{translate:6px -4px}75%{translate:-4px -3px}100%{translate:0 0}}
@keyframes fxDisco{to{filter:hue-rotate(360deg) saturate(1.6)}}
@keyframes fxSpin{to{rotate:360deg}}
@keyframes fxDrunk{0%,100%{rotate:0deg;filter:blur(0)}25%{rotate:2.5deg;filter:blur(1.2px)}75%{rotate:-2.5deg;filter:blur(.6px)}}
.fx-layer{position:fixed;inset:0;pointer-events:none;z-index:300;overflow:hidden}
.fx-drop{position:absolute;top:-60px;animation:fxFall linear forwards}
@keyframes fxFall{to{transform:translateY(calc(100vh + 120px)) rotate(540deg)}}
.fx-over{position:fixed;inset:0;z-index:310;display:grid;place-items:center;background:radial-gradient(circle,rgba(0,0,0,.45),rgba(0,0,0,.88));padding:16px;animation:fsIn .35s var(--ease);cursor:pointer}
.fx-over.out{opacity:0;transition:opacity .35s}
.fx-over-in{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;max-width:560px}
.fx-jp{font-family:var(--display);font-size:clamp(44px,11vw,110px);line-height:1;background:linear-gradient(180deg,#fff,#ffd24d 50%,#c47a0a);-webkit-background-clip:text;background-clip:text;color:transparent;animation:winPulse .5s ease-in-out infinite alternate}
.fx-jpn{font-size:clamp(26px,6vw,54px);color:#fff;text-shadow:0 0 20px rgba(255,210,77,.8)}
.fx-over small{color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.fx-from{font-size:11px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:#ff5a5a}
.fx-over.msg .fx-over-in{padding:26px;border-radius:22px;background:linear-gradient(160deg,#2a0a10,#0b0a0e);border:1px solid #ff5a5a;box-shadow:0 0 60px -10px #ff3b3b}
.fx-over.msg p{font-family:var(--display);font-size:clamp(22px,4.5vw,34px);margin:0;color:#fff;overflow-wrap:anywhere}
.fx-over.spot p{font-family:var(--display);font-size:clamp(20px,4vw,30px);margin:0;color:#fff}
.fx-spot{display:flex;flex-direction:column;align-items:center;gap:10px}
.fx-spot .namebtn{font-size:30px;font-family:var(--display)}
body.fx-broke #bal{display:none}
.fx-zero{color:var(--lose);font-size:17px;animation:winPulse .4s ease-in-out infinite alternate}
.fx-dropbox{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:305;display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 22px;border-radius:20px;background:linear-gradient(160deg,#2a2010,#0b0a0e);border:1px solid #f6e2a2;box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 40px rgba(212,175,55,.5);animation:lvIn .5s var(--ease);width:min(360px,calc(100vw - 32px));text-align:center}
.fx-dropbox>b{font-family:var(--display);font-size:24px;letter-spacing:.1em;color:var(--gold-hi)}
.fx-dropbox .btn{width:100%}
.fx-dropbox small{color:var(--muted)}
.site-banner{position:sticky;top:0;z-index:19;text-align:center;padding:8px 16px;font-weight:700;font-size:13.5px;overflow-wrap:anywhere}
.site-banner.gold{background:var(--gold-grad);color:#17130a}
.site-banner.red{background:linear-gradient(90deg,#7a0010,#ff3b3b,#7a0010);color:#fff}
.site-banner.neon{background:linear-gradient(90deg,#1a0630,#ff3fb4,#22e5ff,#1a0630);color:#fff;text-shadow:0 0 6px #000}
.xp-boost{font-family:var(--mono);font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;background:linear-gradient(135deg,#9dff2e,#22e5ff);color:#04131a;white-space:nowrap}
@media (max-width:680px){.xp-boost{font-size:10px;padding:3px 7px}}
@media (prefers-reduced-motion:reduce){body.fx-shake,body.fx-disco,body.fx-drunk,body.fx-spin{animation-duration:3s}}
#hp-owner .ot-who h3{margin:0 0 2px}
#hp-owner .ot-who p{margin:0 0 10px}
.ot-hl li{gap:8px}
.ot-hl li b{flex:1}
