/* Layout and controls. Game colours are supplied by theme.css. */
:root{--bg:var(--arcade-ground);--text:var(--arcade-ink);--muted:var(--arcade-muted);--faint:var(--arcade-faint);--line:var(--arcade-border);--teal:var(--arcade-brand);--accent:var(--arcade-brand);font-family:var(--arcade-font);scroll-behavior:smooth}
body{background:linear-gradient(var(--arcade-grid) 1px,transparent 1px) 0 0/40px 40px,linear-gradient(90deg,var(--arcade-grid) 1px,transparent 1px) 0 0/40px 40px,var(--bg)}
button{border-radius:0}
button:disabled{cursor:default;opacity:.45}
a:hover{color:var(--teal)}
::selection{background:var(--teal);color:var(--bg)}
.arcade-nav{max-width:1500px;margin:auto;padding:18px 36px;border-bottom:1px solid var(--arcade-border-strong);box-shadow:0 4px 0 var(--arcade-inset),0 5px 0 var(--arcade-border);display:flex;align-items:center;gap:32px;background:var(--arcade-ground)}
.arcade-brand{display:flex;align-items:center;gap:12px;font:400 13px/1.6 var(--arcade-pixel-font);letter-spacing:-.6px}
.brand-icon{display:grid;place-items:center;width:30px;height:30px;background:var(--arcade-metal);color:var(--arcade-key-ink);font:27px/1 Arial,Helvetica,sans-serif;border:2px solid var(--arcade-ink);border-right-color:var(--arcade-metal-shadow);border-bottom-color:var(--arcade-metal-shadow);box-shadow:2px 2px 0 #000;border-radius:0}
.brand-light{font-weight:400;margin-left:5px}
.arcade-nav nav{display:flex;gap:26px;font-size:13px;color:var(--arcade-muted);flex:1}
.arcade-nav nav span{font:10px 'Wheel Mono',monospace;margin-left:4px;color:var(--teal)}
.nav-wallet{display:flex;align-items:center;gap:18px}
.test-badge{font:10px 'Wheel Mono',monospace;letter-spacing:1px;color:var(--arcade-soft);white-space:nowrap}
.test-badge i,.live-dot{display:inline-block;width:6px;height:6px;background:currentColor;border-radius:50%;margin-right:6px}
.outline{border:1px solid var(--arcade-border-strong);padding:12px 16px;background:var(--arcade-inset);box-shadow:inset 0 1px 0 var(--arcade-raised),2px 2px 0 #02080c;font-size:12px}
.outline:hover{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 7%,transparent)}
.quiet,.text-link{background:none;border:0;color:var(--arcade-muted);padding:10px 0;font-size:12px}
.quiet:hover,.text-link:hover{color:var(--teal)}
main{max-width:1392px;margin:auto;padding:0 36px}
.kicker,.label{font:10px/1.5 'Wheel Mono',monospace;letter-spacing:1.4px;color:var(--arcade-muted)}
.intro-row{display:flex;justify-content:space-between;align-items:center;gap:28px;padding:30px 0}
.intro-heading{min-width:0}
.intro-row .kicker{margin:0 0 14px;color:var(--arcade-muted);font:12px/1.5 var(--arcade-font);letter-spacing:.1px}
h1{font:400 clamp(25px,3vw,38px)/1.55 var(--arcade-heading-font);letter-spacing:-1.5px;margin:0;color:var(--arcade-metal);text-shadow:0 2px 0 var(--arcade-metal-shadow),3px 5px 0 #000}
.intro-row h1 span{color:inherit}
.intro-description{font-size:13px;line-height:1.6;color:var(--arcade-muted);margin:12px 0 0}
.intro-side{display:flex;align-items:center;gap:24px}
.intro-copy{min-width:178px}
.demo-pass{display:flex;align-items:center;gap:12px;padding:15px 17px;border:2px solid var(--arcade-metal);border-bottom-color:var(--arcade-metal-shadow);border-right-color:var(--arcade-metal-shadow);background:var(--arcade-metal);color:var(--arcade-key-ink);box-shadow:3px 3px 0 #02080c;font:10px/1.6 var(--arcade-pixel-font)}
.demo-pass:hover{color:var(--arcade-key-ink);background:var(--arcade-brand-light)}
.demo-pass small{display:block;font:11px/1.5 var(--arcade-font);margin-top:4px}
.pass-icon{font:19px/1 monospace;border-right:1px dashed var(--arcade-metal-shadow);padding-right:12px}
.test-note{font:11px/1.65 var(--arcade-font);color:var(--arcade-faint);margin-top:10px;text-align:center}
.section-line{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}
.section-line h2{font:400 11px/1.8 var(--arcade-pixel-font);letter-spacing:-.3px;margin:0}
.section-line>span{font:10px 'Wheel Mono',monospace;letter-spacing:.8px;color:var(--arcade-faint)}
#collections{scroll-margin-top:20px;padding:17px 18px 19px;border:1px solid var(--arcade-border-strong);background:var(--arcade-surface);box-shadow:inset 0 2px 0 var(--arcade-raised),4px 4px 0 #02080c}
#collections>.section-line{margin-bottom:15px}
#collections>.section-line h2{font:10px/1.6 var(--arcade-pixel-font);color:var(--arcade-soft)}
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.collection{--card-hue:var(--card-accent);display:flex;align-items:stretch;gap:14px;min-height:112px;border:2px solid color-mix(in srgb,var(--card-hue) 30%,var(--arcade-border));background:linear-gradient(135deg,color-mix(in srgb,var(--card-hue) 14%,var(--arcade-ground)) 0%,var(--arcade-ground) 62%);text-align:left;padding:14px 16px 13px;position:relative;overflow:hidden;
 clip-path:polygon(0 8px,4px 8px,4px 4px,8px 4px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 4px,calc(100% - 4px) 4px,calc(100% - 4px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 4px) calc(100% - 8px),calc(100% - 4px) calc(100% - 4px),calc(100% - 8px) calc(100% - 4px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 4px),4px calc(100% - 4px),4px calc(100% - 8px),0 calc(100% - 8px));
 box-shadow:inset 0 3px 0 color-mix(in srgb,var(--card-hue) 70%,transparent),inset 0 -4px 0 #030a0e;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s}
.collection[data-machine="blue-chip"]{--card-hue:var(--arcade-collection-blue-chip)}
.collection[data-machine="neet"]{--card-hue:var(--arcade-collection-neet)}
.collection[data-machine="zcash"]{--card-hue:var(--arcade-collection-zcash)}
/* A light sweep crosses the card on hover. */
.collection::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,color-mix(in srgb,var(--card-hue) 22%,transparent) 50%,transparent 65%);transform:translateX(-110%);pointer-events:none}
.collection:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--card-hue) 65%,var(--arcade-border));background:linear-gradient(135deg,color-mix(in srgb,var(--card-hue) 22%,var(--arcade-ground)) 0%,var(--arcade-raised) 70%)}
.collection:hover::after{transform:translateX(110%);transition:transform .6s steps(8)}
.collection[aria-pressed=true]{border-color:var(--card-hue);color:var(--arcade-ink);background:linear-gradient(135deg,color-mix(in srgb,var(--card-hue) 28%,var(--arcade-ground)) 0%,color-mix(in srgb,var(--card-hue) 8%,var(--arcade-raised)) 75%);box-shadow:inset 0 3px 0 var(--card-hue),inset 0 -4px 0 color-mix(in srgb,var(--card-hue) 55%,#030a0e),inset 0 0 22px color-mix(in srgb,var(--card-hue) 18%,transparent)}
.collection-art{flex:none;display:grid;place-items:center;width:58px;align-self:center;aspect-ratio:1;background:repeating-linear-gradient(0deg,#0000 0 3px,#0000001f 3px 4px),color-mix(in srgb,var(--card-hue) 16%,#050d12);border:2px solid color-mix(in srgb,var(--card-hue) 45%,#02080c);box-shadow:inset 0 0 0 2px #02080c,inset 0 -3px 0 #0006}
.collection-icon{display:grid;place-items:center;width:36px;height:36px;color:var(--card-hue)}
.collection[aria-pressed=true] .collection-art{background:repeating-linear-gradient(0deg,#0000 0 3px,#0000001f 3px 4px),color-mix(in srgb,var(--card-hue) 30%,#050d12);border-color:var(--card-hue)}
.collection-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.collection-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.collection-head>strong{font:400 11px/1.6 var(--arcade-pixel-font);letter-spacing:-.4px;color:var(--arcade-ink);min-width:0}
.collection-meta{display:block;font:11px/1.5 var(--arcade-font);color:var(--arcade-faint)}
.collection-meta b{font-weight:400;white-space:nowrap;color:var(--arcade-soft)}
.collection-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}
.collection-coins{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.collection-coins i{font:normal 8px/1 'Wheel Mono',monospace;letter-spacing:.06em;padding:4px 5px 3px;border:1px solid color-mix(in srgb,var(--card-hue) 35%,var(--arcade-border));background:#02080c80;color:var(--arcade-soft)}
.collection-coins i.more{color:var(--card-hue)}
.collection-max{flex:none;font:8px/1 'Wheel Mono',monospace;letter-spacing:.08em;color:var(--arcade-faint);white-space:nowrap}
.collection-max b{font:400 9px/1 var(--arcade-pixel-font);color:var(--arcade-tier-legendary)}
.collection-check{flex:none;font:7px/1 var(--arcade-pixel-font);letter-spacing:.05em;padding:4px 5px 3px;color:#02080c;background:var(--card-hue);visibility:hidden}
.collection[aria-pressed=true] .collection-check{visibility:visible}
.arcade-play{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);margin:14px 0 34px;border:3px solid var(--arcade-metal-shadow);border-top-color:var(--arcade-metal);border-left-color:var(--arcade-border-strong);box-shadow:inset 0 0 0 1px #000,5px 5px 0 #02080c;background:var(--arcade-inset);overflow:hidden;scroll-margin-top:16px}
.device-panel{--text:#f3f8f8;--teal:#69aac1;--muted:#94aab2;--faint:#829ba5;--line:#233d46;--arcade-font:'Arcade Sora',ui-sans-serif,system-ui,sans-serif;font-family:var(--arcade-font);--arcade-soft:#c0d3da;--arcade-brand-light:#a4c5cf;min-width:0;background:radial-gradient(ellipse at 50% 48%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 69%),var(--arcade-device-bg);color:var(--arcade-device-ink);display:flex;flex-direction:column;justify-content:space-between}

.device-topline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 24px;border-bottom:1px solid var(--arcade-device-rule);font:10px 'Wheel Mono',monospace;letter-spacing:.4px}
.device-tools{display:flex;gap:18px;flex-wrap:wrap}
.device-topline .quiet{font:10px 'Wheel Mono',monospace;color:var(--arcade-device-ink);min-height:32px}
.device-topline .quiet:hover{color:var(--bg)}
.device-panel .machine-space{width:100%;margin:auto;max-width:790px;aspect-ratio:1.03}
.device-panel .machine-tilt{width:88%;margin-left:12%;transform-style:flat}

.device-panel .machine-display{position:static;display:inline;transform:none;fill:var(--screen-ink);text-shadow:none}
.device-panel #display-count{font:400 125.4px var(--arcade-pixel-font);letter-spacing:0}
.device-panel #screen-wordmark{font:400 48px var(--arcade-pixel-font);letter-spacing:0;filter:none}
/* The dragon head replaces the wordmark on the screen (kept for layout checks). */
.device-panel #screen-wordmark{visibility:hidden}
.device-panel .screen-dragon rect,.device-panel .screen-flames rect{shape-rendering:crispEdges}.device-panel .screen-edge-fire image{image-rendering:pixelated}
.device-panel .screen-brand-divider{display:none}
.device-panel .wheel-art{filter:var(--arcade-case-filter)}
.device-panel .button-cap image,.device-panel .button-sidewall{filter:var(--arcade-cap-filter)}
.device-panel .machine[data-button=hover] .button-plunger{filter:drop-shadow(2px 9px 6px #0009) drop-shadow(0 0 13px color-mix(in srgb,var(--arcade-tier-legendary) 40%,transparent)) brightness(1.09)}
.device-panel .display-caption{fill:var(--arcade-soft);font:400 22.6px var(--arcade-pixel-font);letter-spacing:0}
.device-panel .machine[data-display=price] .display-caption{font-size:20px}
.device-panel .display-status{fill:var(--screen-accent);font:400 12.5px var(--arcade-pixel-font);letter-spacing:0}
.device-panel .display-spin{display:none;fill:var(--screen-ink);shape-rendering:crispEdges}
.device-panel .machine[data-display=demo] .display-spin{display:block}
.device-panel .machine[data-display=demo] #display-count{display:none}
/* Machine screen show: ticker, attract scenes, pull steps, result, CRT boot. */
.device-panel .ticker-text{fill:var(--arcade-tier-legendary);font:400 18px var(--arcade-pixel-font)}
.device-panel .ticker-rule{fill:var(--arcade-tier-legendary);opacity:.45}
.device-panel .machine[data-display=max] #display-count{font-size:96px}
.device-panel .screen-odds rect,.device-panel .screen-steps rect,.device-panel .screen-sparks rect{shape-rendering:crispEdges}
.device-panel .odds-label{fill:var(--screen-ink);font:400 12.5px var(--arcade-pixel-font)}
.device-panel .screen-arrows{fill:var(--arcade-tier-legendary);font:400 56px var(--arcade-pixel-font)}
.device-panel .step-text{fill:var(--screen-ink);font:400 16px var(--arcade-pixel-font)}
.device-panel .step-box,.device-panel .coin-pip{fill:none;stroke:var(--screen-ink);stroke-width:2;opacity:.45}
.device-panel .step-box[data-state=done],.device-panel .coin-pip[data-state=done]{fill:var(--arcade-tier-rare);stroke:none;opacity:1}
.device-panel .step-box[data-state=active]{fill:var(--arcade-tier-legendary);stroke:none;opacity:1}
.device-panel .screen-result{font:400 36px var(--arcade-pixel-font)}
.device-panel .screen-booting{transform-box:fill-box;transform-origin:center;animation:screen-boot 1.1s linear both}
@keyframes screen-boot{0%{opacity:0;transform:scaleY(.02)}12%{opacity:1;transform:scaleY(.02)}28%{opacity:1;transform:none}36%{opacity:.3}44%{opacity:1}52%{opacity:.55}60%,100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.device-panel .screen-booting{animation:none}}
.device-caption{display:flex;justify-content:space-between;align-items:center;padding:17px 24px;border-top:1px solid var(--arcade-device-rule);font:9px/1.5 'Wheel Mono',monospace;gap:10px}
.device-caption .live-dot{width:5px;height:5px}
.checkout{padding:25px 28px;background:var(--arcade-inset);border-left:3px solid var(--arcade-border);box-shadow:inset 2px 0 0 #02080c;min-width:0}
.checkout>.kicker{color:var(--arcade-faint);font-size:9px;margin:0}
.checkout h2{font:400 20px/1.65 var(--arcade-heading-font);letter-spacing:-.8px;margin:12px 0 15px}
.wheel-legend{display:flex;flex-wrap:wrap;gap:10px 16px;list-style:none;margin:18px 0 0;padding:0;font:12px/1.4 var(--arcade-font);color:var(--arcade-soft)}
.wheel-legend li{display:flex;align-items:center;gap:7px;white-space:nowrap}
.wheel-legend i{width:10px;height:10px;flex:none;border-radius:50%;background:var(--dot);box-shadow:inset 0 1px 0 #ffffff80,0 0 0 2px #02090d}
.muted{font-size:13px;color:var(--arcade-muted);line-height:1.55;margin:0}
.price-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0;padding:16px;border:1px solid var(--arcade-border);border-top:2px solid #02080c;border-left:2px solid #02080c;background:var(--arcade-ground);box-shadow:1px 1px 0 var(--arcade-border-strong)}
.price-line strong{display:block;font:400 30px/1.4 var(--arcade-pixel-font);color:var(--arcade-brand-light);margin-top:10px;letter-spacing:-1px}
.price-line strong span{font-size:17px;color:var(--arcade-faint)}
.max-prize{font:8px/1.7 'Wheel Mono',monospace;color:var(--arcade-faint);text-align:right;letter-spacing:.2px}
.max-prize b{font-size:28px;color:var(--arcade-soft);font-weight:400}
.label{font-size:9px;letter-spacing:.5px}
#payment{border:0;padding:0;margin:0;min-width:0}
#payment legend{margin-bottom:9px}
#payment-options{display:flex;gap:7px}
#payment-options button{flex:1;border:1px solid var(--line);background:var(--arcade-ground);color:var(--arcade-muted);font-size:12px;padding:11px 12px;position:relative}
#payment-options button[aria-pressed=true]{border-color:var(--arcade-border-strong);color:var(--text)}
#payment-options button:only-child{display:flex;align-items:center;justify-content:space-between;text-align:left}
#payment-options small{display:block;font:9px 'Wheel Mono',monospace;color:var(--arcade-faint);margin-top:4px}
#payment-options button:only-child small{margin:0}
.payment-detail{display:flex;justify-content:space-between;margin:10px 0 18px;font:10px/1.5 'Wheel Mono',monospace;color:var(--arcade-muted);gap:10px;flex-wrap:wrap}
/* The main action wears the legendary tier's orange (user request, 29 Sep 2026). */
.pull-button{--pull:var(--arcade-tier-legendary);width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 16px;border:3px solid color-mix(in srgb,var(--pull),#fff 35%);border-bottom-color:color-mix(in srgb,var(--pull),#000 45%);border-right-color:color-mix(in srgb,var(--pull),#000 45%);background:var(--pull);color:var(--arcade-key-ink);font:400 11px/1.8 var(--arcade-pixel-font);box-shadow:0 4px 0 color-mix(in srgb,var(--pull),#000 62%),0 6px 0 #02080c;transition:transform .12s,filter .12s}
.pull-button:hover{filter:brightness(1.1)}
.pull-button:active{transform:translateY(3px);box-shadow:0 1px 0 color-mix(in srgb,var(--pull),#000 62%),0 3px 0 #02080c}
.pull-button>span:last-child{font-size:24px;font-weight:400}
.fee-note{font-size:11px;line-height:1.65;color:var(--arcade-faint);margin:10px 0 0}
.fee-note a{color:var(--arcade-soft);text-decoration:underline;text-underline-offset:3px}
.status{font-size:12px;color:var(--arcade-soft);line-height:1.6;margin:12px 0;overflow-wrap:anywhere}
.status[data-error=true]{color:var(--arcade-error)}
.faucet-row{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--arcade-faint);border-top:1px solid var(--line);padding:8px 0;margin-top:12px;gap:10px}
.faucet-row .text-link{font-size:11px;color:var(--arcade-soft)}
.reserve-card{border-top:1px solid var(--line);margin-top:5px;padding-top:12px;font-size:11px;color:var(--arcade-faint)}
.reserve-card>div{display:flex;justify-content:space-between;margin-bottom:8px;gap:8px}
.reserve-card>div:nth-child(2){justify-content:flex-start;align-items:baseline;gap:6px}
.reserve-card>div:nth-child(2) strong{margin-right:14px}
.reserve-card>div:first-child{justify-content:flex-start;align-items:center;color:var(--arcade-soft);margin-bottom:12px}
.reserve-card b,.reserve-card strong{font-weight:400}
.reserve-card strong{color:var(--arcade-soft);font:10px 'Wheel Mono',monospace;text-align:right}
.reserve-track{height:3px;background:var(--arcade-border-strong);overflow:hidden}
.reserve-track span{height:100%;background:var(--teal);width:0}
.inside-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(340px,1fr);gap:40px;margin-bottom:40px}
.contents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px;border-top:1px solid var(--line)}
.token-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:15px 0;min-width:0}
.token-icon{width:34px;height:34px;flex-shrink:0;background:var(--arcade-surface);border:2px solid var(--arcade-border-strong);color:var(--arcade-soft);border-radius:0;display:grid;place-items:center;font:9px var(--arcade-pixel-font);box-shadow:2px 2px 0 #02080c}
.token-row{color:inherit;text-decoration:none}
.token-row>strong{flex:1;min-width:0;font-size:12px;font-weight:600;overflow-wrap:anywhere}
.token-row:hover>strong,.token-row:focus-visible>strong{text-decoration:underline;text-underline-offset:3px}
.token-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.token-tags em{font:normal 9px 'Wheel Mono',monospace;letter-spacing:.04em;color:var(--arcade-muted);border:1px solid var(--arcade-border-strong);padding:3px 6px;white-space:nowrap}
.token-tags em[data-fee=false]{color:var(--arcade-faint);border-color:var(--line)}
.token-tags .tag-anchor{color:var(--arcade-tier-legendary);border-color:color-mix(in srgb,var(--arcade-tier-legendary) 55%,transparent)}
.odds-stats{display:flex;gap:10px;margin-top:16px}
.odds-stats span{flex:1;border:1px solid var(--line);background:var(--arcade-inset);padding:10px 12px;font-size:11px;color:var(--arcade-faint)}
.odds-stats b{display:block;font:15px 'Wheel Mono',monospace;color:var(--arcade-ink);margin-bottom:4px;font-weight:400}
.section-foot a,.bags-foot a{color:var(--arcade-soft);text-decoration:underline;text-underline-offset:3px}
.bags-foot{display:flex;gap:22px;flex-wrap:wrap;margin:22px 0 0;font-size:12px}
.bags-status:empty{display:none}
.hint{display:inline-grid;place-items:center;width:15px;height:15px;margin-left:6px;border:1px solid var(--arcade-border-strong);border-radius:50%;font:9px/1 'Wheel Mono',monospace;color:var(--arcade-muted);text-decoration:none;vertical-align:1px}
.hint:hover,.hint:focus-visible{color:var(--arcade-ink);border-color:var(--arcade-soft)}
/* Play and Your bags are two views of one page (client/arcade/views.js). */
:root[data-view=bags] main>:not(#bags){display:none}
:root:not([data-view=bags]) #bags{display:none}
:root[data-view=bags] .bags{border-top:0;padding-top:36px;min-height:52vh}
.arcade-nav nav a[aria-current=page]{color:var(--arcade-ink)}
.odds-head,.odds-row{display:grid;grid-template-columns:1.1fr 1fr .6fr;align-items:center;gap:10px}
.odds-head{font:9px 'Wheel Mono',monospace;color:var(--arcade-faint);padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.odds-head>span:last-child{text-align:right}
.odds-row{padding:15px 0;border-bottom:1px solid var(--line);font-size:12px}
.odds-row>span:first-child{display:flex;gap:10px;align-items:center}
.odds-row i{width:6px;height:6px;border-radius:1px;background:var(--tier);flex-shrink:0}
.odds-row strong{font:11px 'Wheel Mono',monospace;font-weight:400;color:var(--arcade-soft)}
.odds-row>span:last-child{text-align:right;color:var(--arcade-soft);font:11px 'Wheel Mono',monospace}
.fine-print{font-size:11px;line-height:1.8;color:var(--arcade-faint);margin:16px 0 0}
.bags{padding:30px 0;border-top:1px solid var(--line);scroll-margin-top:20px}
.bags .kicker{font-size:9px;margin:0 0 10px}
.bags h2{font-size:16px}
.bags h2 span{font-size:12px;color:var(--arcade-faint);margin-left:8px}
.bag-actions{display:flex;gap:20px;align-items:center}
.empty-bags{display:flex;align-items:center;gap:24px;padding:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--arcade-inset)}
.empty-bags>span{font:24px 'Wheel Mono',monospace;color:var(--arcade-brand)}
.empty-bags h3{font:400 12px/1.7 var(--arcade-pixel-font);margin:0 0 8px}
.empty-bags p{color:var(--arcade-faint);font-size:12px;margin:0;line-height:1.6}
.draw-row{display:flex;align-items:center;gap:16px;padding:17px 12px;border-bottom:1px solid var(--line)}
/* Reward points: meter to the two free pulls, referral link, join-by-code. */
.rewards{display:grid;gap:16px;padding:20px;margin:0 0 22px;border:1px solid var(--line);background:var(--arcade-inset)}
.rewards-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.rewards-top .kicker{margin:0 0 6px}
.rewards h3{font:400 12px/1.7 var(--arcade-pixel-font);margin:0}.rewards h3 b{font-size:18px;color:var(--accent)}
.rewards .fine-print{margin:0;font-size:11px;color:var(--arcade-faint)}
.rewards-meter{position:relative;height:12px;margin:0 0 22px;border:1px solid var(--arcade-border-strong);background:var(--arcade-ground)}
.rewards-meter i{display:block;height:100%;width:0;background:var(--accent);transition:width .4s}
.rewards-meter span{position:absolute;top:16px;transform:translateX(-100%);font:9px/1 'Wheel Mono',monospace;color:var(--arcade-muted);white-space:nowrap}
.rewards-meter span:first-of-type{transform:translateX(-50%)}
.rewards-free{display:flex;gap:10px;flex-wrap:wrap}.rewards-free:empty{display:none}.rewards-free .outline{flex:1 1 200px}
.rewards-ref{display:grid;gap:6px}.rewards-link{display:flex;align-items:center;gap:12px;min-width:0}
.rewards-link code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:9px 10px;border:1px dashed var(--arcade-border-strong);font-size:12px}
.rewards-ref small{font-size:11px;color:var(--arcade-faint)}
.rewards-join{display:grid;gap:8px;font-size:12px;color:var(--arcade-muted)}.rewards-join div{display:flex;gap:10px}
.rewards-join input{flex:1;min-width:0;max-width:200px;padding:10px;border:1px solid var(--arcade-border-strong);background:var(--arcade-ground);color:var(--text);font:13px 'Wheel Mono',monospace;letter-spacing:2px;text-transform:uppercase}
.free-pull{width:100%;margin:10px 0 0;padding:11px 14px;border:1px dashed var(--accent);background:none;color:var(--accent);font:11px/1.4 'Wheel Mono',monospace;letter-spacing:.5px;cursor:pointer}
.free-pull:hover:not(:disabled){background:color-mix(in srgb,var(--accent),transparent 88%)}
.draw-row .draw-title{flex:1}
.draw-row h3{font-size:13px;font-weight:400;margin:0 0 6px}
.draw-row small{font:9px/1.6 'Wheel Mono',monospace;color:var(--arcade-faint)}
.draw-row .draw-controls{display:flex;gap:14px;align-items:center}
.draw-row .draw-controls button,.draw-row a{font-size:11px}
.draw-row a{color:var(--arcade-muted)}
footer{border-top:1px solid var(--line);color:var(--arcade-faint)}
.reveal{width:min(420px,calc(100vw - 30px));padding:40px 32px 24px;border:1px solid color-mix(in srgb,var(--teal) 25%,transparent);border-radius:12px;background:radial-gradient(ellipse at 50% 23%,color-mix(in srgb,var(--teal) 6%,transparent),transparent 65%),var(--arcade-surface);color:var(--text);text-align:center}
.reveal::backdrop{background:color-mix(in srgb,var(--arcade-ground) 91%,transparent);backdrop-filter:blur(10px)}
.reveal .close{position:absolute;right:15px;top:12px;background:none;border:0;color:var(--arcade-faint);font-size:25px}
.reveal-coin{width:125px;height:125px;margin:26px auto;border:2px solid var(--accent);border-radius:50%;display:grid;place-items:center;font-size:35px;font-weight:700;color:var(--accent);box-shadow:0 0 65px color-mix(in srgb,var(--accent) 15%,transparent),inset 0 0 40px color-mix(in srgb,var(--accent) 10%,transparent);transform:rotate(-10deg)}
.tier-tag{font:8px 'Wheel Mono',monospace;letter-spacing:2px;color:var(--accent)}
.reveal h2{font:400 20px/1.6 var(--arcade-heading-font);letter-spacing:-1px;margin:17px 0 10px}
.reveal>p:not(.kicker){font-size:11px;color:var(--arcade-soft);line-height:1.6}
.reveal .pull-button{margin-top:25px;justify-content:center;font-size:13px}
.reveal .outline{width:100%;margin:15px 0 10px}
.reveal .fine-print{font-size:9px!important}
.basket-breakdown{margin:20px 0;text-align:left;border-top:1px solid var(--line)}
.basket-part{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}
.basket-part>strong{text-align:right;font-weight:500}
.basket-part small{display:block;margin-top:4px;color:var(--arcade-muted);font-size:9px;font-weight:400}
.basket-part[data-claimed=true]{opacity:.55}
.reveal:has(.basket-breakdown:not([hidden])) .reveal-coin{width:66px;height:66px;font-size:21px;margin:14px auto}
.reveal[open]{animation:reveal-card .3s ease-out}
#reveal-net{min-height:28px}
.wallet-picker{width:min(440px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:auto;padding:32px;border:1px solid var(--arcade-border-strong);border-radius:16px;background:var(--arcade-surface);color:var(--text)}
.wallet-picker::backdrop{background:#02080dde;backdrop-filter:blur(8px)}
.wallet-picker .close{position:absolute;right:14px;top:10px;background:none;border:0;font-size:25px;color:var(--muted)}
.wallet-picker h2{font-size:27px;letter-spacing:-1px;font-weight:500;margin:18px 0 12px}
.wallet-picker>p:not(.kicker){font-size:12px;line-height:1.7;color:var(--muted)}
.wallet-list{display:grid;gap:9px;margin:24px 0}
.wallet-option{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:14px;border:1px solid var(--line);background:var(--arcade-inset);color:var(--text);min-height:58px}
.wallet-option:hover{border-color:var(--teal);background:var(--arcade-ground)}
.wallet-option>span:nth-child(2){flex:1;overflow-wrap:anywhere;font-size:14px}
.wallet-option small{font:9px 'Wheel Mono',monospace;color:var(--teal)}
.wallet-monogram{display:grid;place-items:center;width:30px;height:30px;border-radius:0;background:color-mix(in srgb,var(--teal) 18%,transparent);color:var(--teal);flex-shrink:0}
.wallet-empty{padding:16px;border:1px dashed var(--line);border-radius:0}
.wallet-mobile-link{display:flex;justify-content:space-between;background:var(--teal);color:var(--bg);padding:16px;border-radius:0;font-size:13px;font-weight:600}
.wallet-mobile-link:hover{color:var(--bg);filter:brightness(1.12)}
.wallet-help{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font-size:10px;color:var(--faint)}
.wallet-picker [hidden]{display:none!important}
@media(max-width:400px){.wallet-picker{padding:26px 20px}.wallet-picker h2{font-size:24px}}


/* Theme switches change presentation without reinitializing a draw. */
/* Native selection supports keyboard and mobile theme menus. */
.theme-control{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;color:var(--arcade-soft)}
.theme-swatch{width:8px;height:8px;background:var(--arcade-brand);box-shadow:0 -8px 0 var(--arcade-metal),0 8px 0 var(--arcade-border-strong)}
.theme-toggle{min-height:44px;max-width:120px;border:1px solid var(--arcade-border-strong);border-radius:0;padding:8px 6px;background:var(--arcade-inset);color:var(--arcade-ink);font:11px 'Wheel Mono',monospace;cursor:pointer;color-scheme:dark}
.theme-toggle:focus-visible{outline:3px solid var(--arcade-brand);outline-offset:4px}
.reveal{max-height:calc(100svh - 32px);overflow-y:auto}
.wallet-picker,.reveal{border-radius:0;border:3px solid var(--arcade-border-strong);box-shadow:6px 6px 0 #000}
@media(max-width:1100px){
 .arcade-nav{gap:24px}.arcade-nav nav{gap:18px}.test-badge{display:none}
 .collection{gap:10px;padding:14px 12px}.collection-head>strong{font-size:9px}.collection-icon{width:32px;height:32px}.intro-row h1{font-size:28px}.intro-side{gap:18px}.demo-pass{padding:12px;font-size:9px}
 .arcade-play,.inside-grid{grid-template-columns:minmax(0,1.35fr) minmax(310px,1fr)}
 .checkout{padding:24px}.inside-grid{gap:28px}.contents{grid-template-columns:1fr}
 .device-topline{padding:10px 18px}.device-caption{padding:15px 18px;font-size:8px}
}
@media(max-width:760px){
 main{padding:0 20px}.arcade-nav{padding:12px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
 .arcade-nav>.arcade-brand{grid-column:1;grid-row:1;font-size:11px}.arcade-nav>.theme-control{grid-column:2;grid-row:1;justify-self:end}
 .arcade-nav nav{grid-column:1;grid-row:2;gap:18px;font-size:12px}.nav-wallet{grid-column:2;grid-row:2;margin:0}.nav-wallet .outline{font-size:11px;padding:10px}
 .intro-row{padding:25px 0;display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.intro-row h1{font-size:30px;line-height:1.6}.intro-row h1 span{display:block}.intro-row .kicker{font-size:11px;margin-bottom:9px}.intro-description{font-size:12px;max-width:28ch}.intro-side{display:contents}.intro-copy{grid-row:2;grid-column:1/-1;display:flex;align-items:center;gap:18px}.demo-pass{flex:none}.test-note{text-align:left;font-size:11px;margin:0}
 #collections{padding:14px 12px}.collection-grid{grid-template-columns:1fr;gap:8px}.collection{min-height:0;padding:12px;gap:12px}.collection-art{width:48px}.collection-icon{width:30px;height:30px}.collection-head>strong{font-size:9px;line-height:1.8}.collection-meta{font-size:10px}.collection-coins{flex-wrap:nowrap;overflow:hidden}
 .arcade-play{grid-template-columns:1fr;margin-top:12px;margin-bottom:30px}.device-panel .machine-space{max-width:580px}
 .checkout{border-left:0;border-top:1px solid var(--line);padding:25px}.checkout h2{font-size:20px}.device-caption{font-size:9px}.device-topline{font-size:9px}.device-tools{gap:14px}
 .inside-grid{grid-template-columns:1fr;gap:30px;margin-bottom:30px}.contents{grid-template-columns:repeat(2,minmax(0,1fr))}
 .section-line h2{font-size:10px}.bags h2{font-size:15px}.bags h2 span{display:block;margin:8px 0 0}.bag-actions{gap:14px}.bag-actions .outline{font-size:11px;padding:10px}
 .draw-row{flex-wrap:wrap;gap:12px;padding:17px 0}.draw-row .draw-controls{width:100%;justify-content:flex-end;flex-wrap:wrap}.draw-row .draw-title{min-width:190px}
 .screen-mascot{opacity:.75}
}
@media(max-width:500px){
 .intro-row{gap:14px 12px;padding:20px 0}.intro-row h1{font-size:26px;letter-spacing:-1px}.intro-description{font-size:11px}.intro-row .kicker{font-size:10px}.intro-copy{gap:15px}.demo-pass{padding:6px 9px;gap:8px;font-size:8px}.demo-pass small{font-size:10px}.pass-icon{font-size:16px;padding-right:8px}.test-note{font-size:10px}
 #collections{padding:12px 8px 14px}#collections>.section-line{padding:0 4px}#collections>.section-line h2{font-size:8px}.collection-grid{gap:6px}.collection-head>strong{font-size:8px;letter-spacing:-.5px}.collection{padding:12px 8px}.collection-meta{font-size:9px;line-height:1.6}.collection-icon svg{width:28px;height:28px}
 .contents{grid-template-columns:1fr}.token-row{padding:11px 0}
 .empty-bags{padding:24px 18px;gap:18px}.empty-bags>span{font-size:20px}.bags>.section-line{align-items:flex-start}.bag-actions{gap:7px}.bag-actions .outline{font-size:10px;padding:10px 8px}.bag-actions .quiet{font-size:10px}
}
@media(max-width:360px){
 main{padding:0 14px}.arcade-nav{padding:14px}.arcade-nav>.arcade-brand{font-size:9px;gap:7px}.brand-icon{width:26px;height:26px;font-size:24px}.arcade-nav nav{font-size:11px;gap:12px}.theme-toggle{font-size:10px;gap:6px}
 .collection-head>strong{font-size:7px;letter-spacing:-.5px}.collection-meta{font-size:8px}.intro-row h1{font-size:22px}.intro-row .kicker{font-size:9px}.checkout{padding:20px}.device-topline{padding:9px 14px;font-size:8px}.device-topline .quiet{font-size:9px}.device-caption{padding:14px;font-size:8px}.device-tools{gap:9px}
 .section-line>span{font-size:9px}
}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.collection,.theme-track>span{transition:none}}
/* Payout review uses the active skin and remains readable at phone widths. */
.payout-review{box-sizing:border-box;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:0;background:var(--arcade-surface);color:var(--text)}
.payout-review::backdrop{background:#000a}
.payout-review h2{margin:8px 0 16px}
.payout-review p{line-height:1.5;overflow-wrap:anywhere}
.payout-review dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:20px 0}
.payout-review dt,.payout-review dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.payout-review dd{text-align:right;font-variant-numeric:tabular-nums}
.payout-actions{display:grid;gap:10px;margin-top:20px}
.payout-actions button{width:100%}

.payout-review [hidden]{display:none!important}

/* Pixel screen UI sits inside the existing physical wheel. */
.device-panel .screen-pointer{stroke:var(--arcade-brand-light);stroke-width:2;stroke-linejoin:miter;filter:none}
.device-panel .machine[data-button=hover] .button-plunger{filter:drop-shadow(2px 9px 6px #0009) drop-shadow(0 0 13px #69aac166) brightness(1.09)}
:root[data-arcade-theme=og] .device-panel{--text:#f1f3e9;--teal:#d9ff65;--muted:#9fa894;--faint:#819573;--line:#e9f1d51a;--arcade-font:Arial,Helvetica,sans-serif;--arcade-soft:#d9dfd0;--arcade-brand-light:#b9ef78}
:root[data-arcade-theme=og] .device-panel .machine-display strong,:root[data-arcade-theme=og] .device-panel .display-caption{font-family:'Wheel Display',Arial,sans-serif}
:root[data-arcade-theme=og] .device-panel .display-caption{color:#bdb3cc}
:root[data-arcade-theme=og] .device-panel #screen-wordmark{font-family:Arial,Helvetica,sans-serif;font-weight:800}
:root[data-arcade-theme=og] .device-panel .screen-pointer{stroke:#cdfff6;filter:drop-shadow(0 0 7px #63eadf99)}
:root[data-arcade-theme=og] .device-panel .machine[data-button=hover] .button-plunger{filter:drop-shadow(2px 9px 6px #0009) drop-shadow(0 0 13px #63eadf55) brightness(1.09)}

/* Pixel: hard-edged game windows, cartridge keys and a candy-colour marquee.
   All selectors are scoped; the physical machine keeps its own CSS and tokens. */
:root[data-arcade-theme=pixel] body{background:radial-gradient(var(--arcade-grid) 1px,transparent 1px) 0 0/12px 12px,var(--bg)}
:root[data-arcade-theme=pixel] :is(.arcade-nav,.guide-header){background:var(--arcade-inset);border-bottom:4px solid var(--pixel-shadow);box-shadow:0 4px 0 var(--pixel-pink);gap:24px}
:root[data-arcade-theme=pixel] .arcade-brand{color:var(--pixel-yellow);font-size:12px;letter-spacing:-.5px}
:root[data-arcade-theme=pixel] .brand-icon{background:var(--pixel-pink);color:var(--pixel-shadow);border:0;box-shadow:3px 3px 0 var(--pixel-shadow);clip-path:polygon(4px 0,100% 0,100% calc(100% - 4px),calc(100% - 4px) 100%,0 100%,0 4px)}
:root[data-arcade-theme=pixel] .arcade-nav nav{font:9px/1.8 var(--arcade-pixel-font);gap:22px}
:root[data-arcade-theme=pixel] .arcade-nav nav span{background:var(--pixel-pink);color:var(--pixel-shadow);padding:3px 5px}
:root[data-arcade-theme=pixel] .theme-swatch{background:var(--pixel-pink);box-shadow:0 -8px 0 var(--pixel-yellow),0 8px 0 var(--teal)}
:root[data-arcade-theme=pixel] .theme-toggle{border:2px solid var(--arcade-border-strong);font:9px var(--arcade-pixel-font);box-shadow:3px 3px 0 var(--pixel-shadow);padding:8px}
:root[data-arcade-theme=pixel] :is(.outline,.wallet-option){border:2px solid var(--arcade-border-strong);box-shadow:3px 3px 0 var(--pixel-shadow);background:var(--arcade-surface);font-size:11px;line-height:1.5}
:root[data-arcade-theme=pixel] :is(.outline,.wallet-option):hover{background:var(--arcade-raised);border-color:var(--teal)}
:root[data-arcade-theme=pixel] :is(.outline,.pull-button,.wallet-option,.collection):active{transform:translate(2px,2px);box-shadow:none}
:root[data-arcade-theme=pixel] :is(button,a,input,select,summary):focus-visible{outline:3px solid var(--pixel-yellow);outline-offset:4px}
:root[data-arcade-theme=pixel] .nav-wallet .outline{border-color:var(--teal);color:var(--teal);font-size:11px;min-height:44px}
:root[data-arcade-theme=pixel] .test-badge{color:var(--pixel-yellow)}
:root[data-arcade-theme=pixel] .test-badge i{border-radius:0}
:root[data-arcade-theme=pixel] .intro-row{padding:36px 0 30px}
:root[data-arcade-theme=pixel] .intro-row h1{font-size:clamp(26px,3.3vw,44px);line-height:1.6;color:var(--pixel-yellow);text-shadow:3px 3px 0 var(--pixel-pink),6px 6px 0 var(--pixel-shadow);letter-spacing:-1.5px}
:root[data-arcade-theme=pixel] .intro-row .kicker{color:var(--teal);font-size:12px}
:root[data-arcade-theme=pixel] .intro-description{font-size:13px}
:root[data-arcade-theme=pixel] .demo-pass{background:var(--teal);border:3px solid var(--pixel-shadow);box-shadow:4px 4px 0 var(--pixel-shadow);color:var(--pixel-shadow);position:relative}
:root[data-arcade-theme=pixel] .demo-pass:hover{background:var(--arcade-brand-light)}
:root[data-arcade-theme=pixel] .pass-icon{border-right:2px dashed var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .test-note{font-size:10px;line-height:1.8}
:root[data-arcade-theme=pixel] #collections{border:3px solid var(--pixel-shadow);box-shadow:4px 4px 0 var(--pixel-shadow);background:var(--arcade-surface);padding:18px}
:root[data-arcade-theme=pixel] #collections>.section-line{margin:-18px -18px 18px;padding:12px 18px;border-bottom:3px solid var(--pixel-shadow);background:var(--arcade-inset)}
:root[data-arcade-theme=pixel] #collections>.section-line h2{color:var(--pixel-yellow)}
:root[data-arcade-theme=pixel] .collection{--cartridge:var(--teal);border:3px solid var(--cartridge);background:var(--arcade-ground);box-shadow:inset 0 -5px 0 var(--cartridge),4px 4px 0 var(--pixel-shadow);color:var(--cartridge);padding:16px;transition:none}
:root[data-arcade-theme=pixel] .collection:nth-child(2){--cartridge:var(--pixel-pink)}
:root[data-arcade-theme=pixel] .collection:nth-child(3){--cartridge:var(--pixel-yellow)}
:root[data-arcade-theme=pixel] .collection[aria-pressed=true]{background:var(--cartridge);color:var(--pixel-shadow);box-shadow:inset 0 -5px 0 #0003,4px 4px 0 var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .collection:hover{background:var(--arcade-raised)}
:root[data-arcade-theme=pixel] .collection[aria-pressed=true]:hover{background:var(--cartridge)}
:root[data-arcade-theme=pixel] .collection-icon{color:inherit}
:root[data-arcade-theme=pixel] .collection{--card-hue:var(--cartridge)}
:root[data-arcade-theme=pixel] .collection-check{color:var(--cartridge);background:var(--pixel-shadow);visibility:hidden}
:root[data-arcade-theme=pixel] .collection[aria-pressed=true] :is(.collection-max,.collection-max b,.collection-coins i,.collection-meta b){color:var(--pixel-shadow);border-color:var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .collection[aria-pressed=true] .collection-art{border-color:var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .collection[aria-pressed=true] .collection-check{visibility:visible}
:root[data-arcade-theme=pixel] .collection[aria-pressed=true] .collection-meta{color:var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .collection-head>strong{font-size:10px;line-height:1.8}
:root[data-arcade-theme=pixel] .collection-meta{color:var(--arcade-muted)}
:root[data-arcade-theme=pixel] .arcade-play{border:4px solid var(--teal);box-shadow:5px 5px 0 var(--pixel-shadow);margin-top:22px;overflow:visible}
:root[data-arcade-theme=pixel] .checkout{background:var(--pixel-pink-panel);border-left:4px solid var(--teal);box-shadow:none;padding:24px}
:root[data-arcade-theme=pixel] .checkout>.kicker{color:var(--pixel-pink)}
:root[data-arcade-theme=pixel] .checkout h2{color:var(--arcade-ink);text-shadow:3px 3px 0 var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .checkout :is(.muted,.fee-note,.fine-print,.payment-detail,.reserve-card){color:var(--arcade-soft)}
:root[data-arcade-theme=pixel] .price-line{border:3px solid var(--pixel-shadow);background:var(--arcade-ground);box-shadow:3px 3px 0 var(--pixel-pink);padding:16px}
:root[data-arcade-theme=pixel] .price-line strong{color:var(--pixel-yellow)}
:root[data-arcade-theme=pixel] .price-line strong span{color:var(--pixel-yellow);font-size:16px}
:root[data-arcade-theme=pixel] .max-prize{color:var(--arcade-muted)}
:root[data-arcade-theme=pixel] .max-prize b{color:var(--teal)}
:root[data-arcade-theme=pixel] #payment-options button{border:2px solid var(--pixel-pink);background:var(--arcade-ground);padding:12px}
:root[data-arcade-theme=pixel] .pull-button{border:3px solid var(--pixel-shadow);background:var(--pull);color:var(--pixel-shadow);box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--pull),#000 25%),4px 4px 0 var(--pixel-shadow);padding:17px 14px;transition:none}
:root[data-arcade-theme=pixel] .pull-button:hover{background:color-mix(in srgb,var(--pull),#fff 22%);filter:none}
:root[data-arcade-theme=pixel] .reserve-track{height:8px;border:2px solid var(--pixel-shadow);background:var(--arcade-ground)}
:root[data-arcade-theme=pixel] .inside-grid{gap:24px}
:root[data-arcade-theme=pixel] .inside-grid>div{min-width:0;border:3px solid var(--pixel-shadow);background:var(--arcade-inset);box-shadow:4px 4px 0 var(--pixel-shadow);padding:18px}
:root[data-arcade-theme=pixel] .inside-grid>div>.section-line{background:var(--arcade-surface);margin:-18px -18px 0;padding:15px 18px;border-bottom:3px solid var(--pixel-shadow);color:var(--teal)}
:root[data-arcade-theme=pixel] .contents{border-top:0;column-gap:18px}
:root[data-arcade-theme=pixel] .token-row{gap:9px}
:root[data-arcade-theme=pixel] .token-icon{border:2px solid var(--pixel-shadow);background:var(--teal);color:var(--pixel-shadow);box-shadow:3px 3px 0 var(--pixel-shadow);width:32px;height:32px}
:root[data-arcade-theme=pixel] .token-row:nth-child(3n + 2) .token-icon{background:var(--pixel-pink)}
:root[data-arcade-theme=pixel] .token-row:nth-child(3n) .token-icon{background:var(--pixel-yellow)}
:root[data-arcade-theme=pixel] .token-row>strong{font:8px/1.6 var(--arcade-pixel-font);overflow-wrap:anywhere}
:root[data-arcade-theme=pixel] .odds-head{border-top:0}
:root[data-arcade-theme=pixel] .odds-row i{width:8px;height:8px;border-radius:0;box-shadow:2px 2px 0 var(--pixel-shadow)}
:root[data-arcade-theme=pixel] .odds-row>span:first-child{color:var(--tier)}
:root[data-arcade-theme=pixel] .bags{border-top:4px solid var(--pixel-pink);padding:28px 0}
:root[data-arcade-theme=pixel] .bags h2{color:var(--pixel-yellow)}
:root[data-arcade-theme=pixel] .empty-bags{border:3px solid var(--pixel-shadow);box-shadow:4px 4px 0 var(--pixel-shadow);background:var(--arcade-surface)}
:root[data-arcade-theme=pixel] .empty-bags>span{color:var(--pixel-pink)}
:root[data-arcade-theme=pixel] .draw-row{background:var(--arcade-inset);border:2px solid var(--arcade-border);margin-top:10px;padding:16px}
:root[data-arcade-theme=pixel] .rewards{border:3px solid var(--pixel-shadow);box-shadow:4px 4px 0 var(--pixel-shadow);background:var(--arcade-surface)}
:root[data-arcade-theme=pixel] .rewards-meter{border:2px solid var(--pixel-shadow);height:14px}:root[data-arcade-theme=pixel] .rewards-meter i{transition:none}
:root[data-arcade-theme=pixel] .free-pull{border:2px dashed var(--accent)}
:root[data-arcade-theme=pixel] .draw-row h3{font-size:12px;line-height:1.6}
:root[data-arcade-theme=pixel] :is(.wallet-picker,.reveal,.payout-review){border:4px solid var(--pixel-pink);box-shadow:7px 7px 0 var(--pixel-shadow);border-radius:0;background:var(--arcade-inset);padding:28px 24px;color:var(--arcade-ink)}
:root[data-arcade-theme=pixel] :is(.wallet-picker,.reveal,.payout-review)::backdrop{background:#090925e8;backdrop-filter:none}
:root[data-arcade-theme=pixel] :is(.wallet-picker,.reveal,.payout-review) h2{font:16px/1.8 var(--arcade-pixel-font);color:var(--pixel-yellow);letter-spacing:-.6px}
:root[data-arcade-theme=pixel] :is(.wallet-picker,.reveal) .close{background:var(--pixel-pink);color:var(--pixel-shadow);border:2px solid var(--pixel-shadow);width:36px;height:36px;top:8px;right:8px}
:root[data-arcade-theme=pixel] .wallet-picker>.kicker{margin-top:24px;color:var(--teal)}
:root[data-arcade-theme=pixel] .wallet-monogram{background:var(--pixel-pink);color:var(--pixel-shadow);font-family:var(--arcade-pixel-font);font-size:10px}
:root[data-arcade-theme=pixel] .wallet-option>span:nth-child(2){font:10px/1.8 var(--arcade-pixel-font)}
:root[data-arcade-theme=pixel] .wallet-mobile-link{border:3px solid var(--pixel-shadow);box-shadow:3px 3px 0 var(--pixel-shadow);font-size:12px}
:root[data-arcade-theme=pixel] .reveal-coin{border-radius:0;background:var(--arcade-surface);border:4px solid var(--pixel-yellow);color:var(--pixel-yellow);box-shadow:6px 6px 0 var(--pixel-shadow);transform:none;font:22px var(--arcade-pixel-font);clip-path:polygon(12px 0,calc(100% - 12px) 0,calc(100% - 12px) 12px,100% 12px,100% calc(100% - 12px),calc(100% - 12px) calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,12px calc(100% - 12px),0 calc(100% - 12px),0 12px,12px 12px)}
:root[data-arcade-theme=pixel] .tier-tag{color:var(--pixel-pink);font-family:var(--arcade-pixel-font);line-height:1.8;letter-spacing:0}
:root[data-arcade-theme=pixel] .payout-review p{font-size:12px;line-height:1.8}
:root[data-arcade-theme=pixel] .payout-review :is(dt,dd){font-size:12px;line-height:1.6}
@media(max-width:1150px){
 :root[data-arcade-theme=pixel] .arcade-nav{gap:18px}
 :root[data-arcade-theme=pixel] .arcade-nav nav{font-size:8px;gap:14px}
 :root[data-arcade-theme=pixel] .intro-row h1{font-size:28px}
 :root[data-arcade-theme=pixel] .collection{padding:14px 10px}
 :root[data-arcade-theme=pixel] .collection-head>strong{font-size:9px}
 :root[data-arcade-theme=pixel] .collection-meta{font-size:10px}
 :root[data-arcade-theme=pixel] .price-line{padding:12px}
 :root[data-arcade-theme=pixel] .price-line strong{font-size:25px}
 :root[data-arcade-theme=pixel] .max-prize b{font-size:24px}
}
@media(max-width:760px){
 :root[data-arcade-theme=pixel] .arcade-nav{gap:12px}
 :root[data-arcade-theme=pixel] .arcade-nav>.arcade-brand{font-size:10px}
 :root[data-arcade-theme=pixel] .arcade-nav nav{font:10px/1.6 var(--arcade-font);gap:12px}
 :root[data-arcade-theme=pixel] .arcade-nav nav a{white-space:nowrap}
 :root[data-arcade-theme=pixel] .arcade-nav nav span{margin-left:2px;padding:2px 3px;font-size:9px}
 :root[data-arcade-theme=pixel] .intro-row{padding:24px 0;grid-template-columns:minmax(0,1fr) 140px;gap:20px 12px}
 :root[data-arcade-theme=pixel] .intro-row h1{font-size:28px;line-height:1.8;letter-spacing:-1px;text-shadow:2px 2px 0 var(--pixel-pink),4px 4px 0 var(--pixel-shadow)}
 :root[data-arcade-theme=pixel] .intro-row .kicker{font-size:10px}
 :root[data-arcade-theme=pixel] .intro-description{font-size:11px;line-height:1.8}
 :root[data-arcade-theme=pixel] .checkout{border-left:0;border-top:4px solid var(--teal)}
 :root[data-arcade-theme=pixel] .collection{min-height:132px;padding:12px 9px}
 :root[data-arcade-theme=pixel] .collection-head>strong{font-size:8px;letter-spacing:-.5px}
 :root[data-arcade-theme=pixel] .draw-row{flex-wrap:wrap}
 :root[data-arcade-theme=pixel] .draw-row .draw-controls{width:100%;flex-wrap:wrap}
}
@media(max-width:500px){
 :root[data-arcade-theme=pixel] #collections{padding:12px 8px}
 :root[data-arcade-theme=pixel] #collections>.section-line{margin:-12px -8px 12px;padding:12px 8px}
 :root[data-arcade-theme=pixel] #collections>.section-line h2{font-size:8px}
 :root[data-arcade-theme=pixel] #collection-count{font-size:9px;letter-spacing:0}
 :root[data-arcade-theme=pixel] .collection-grid{gap:8px}
 :root[data-arcade-theme=pixel] .collection{padding:10px 6px;border-width:2px}
 :root[data-arcade-theme=pixel] .collection-head>strong{font-size:7px}
 :root[data-arcade-theme=pixel] .collection-meta{font-size:9px}
 :root[data-arcade-theme=pixel] .intro-copy{gap:12px}
 :root[data-arcade-theme=pixel] .demo-pass{font-size:8px;padding:8px}
 :root[data-arcade-theme=pixel] .demo-pass small{font-size:9px}
 :root[data-arcade-theme=pixel] .test-note{font-size:9px}
 :root[data-arcade-theme=pixel] .inside-grid>div{padding:14px}
 :root[data-arcade-theme=pixel] .inside-grid>div>.section-line{margin:-14px -14px 0;padding:14px}
 :root[data-arcade-theme=pixel] .section-line h2{font-size:10px}
 :root[data-arcade-theme=pixel] .bag-actions{gap:8px}
 :root[data-arcade-theme=pixel] .bag-actions .outline{font-size:9px}
 :root[data-arcade-theme=pixel] .bags>.section-line{flex-wrap:wrap}
}
@media(max-width:360px){
 :root[data-arcade-theme=pixel] .arcade-nav>.arcade-brand{font-size:8px;gap:6px}
 :root[data-arcade-theme=pixel] .arcade-nav nav{font-size:9px;gap:8px}
 :root[data-arcade-theme=pixel] .nav-wallet .outline{font-size:9px;padding:8px}
 :root[data-arcade-theme=pixel] .theme-toggle{font-size:8px;padding:6px 2px}
 :root[data-arcade-theme=pixel] .intro-row h1{font-size:22px}
 :root[data-arcade-theme=pixel] .intro-row .kicker{font-size:9px}
 :root[data-arcade-theme=pixel] .collection-head>strong{font-size:6.5px}
 :root[data-arcade-theme=pixel] .collection-meta{font-size:8px}
 :root[data-arcade-theme=pixel] .checkout{padding:20px}
}

/* Current draws reveal only their tier. Token amounts are reviewed in the wallet. */
.reveal[data-prepared=true]{width:min(380px,calc(100vw - 32px));padding:58px 28px 30px}
.reveal[data-prepared=true] h2{font:400 clamp(18px,5vw,28px)/1.6 var(--arcade-heading-font);color:var(--result-tier);letter-spacing:-1px;margin:8px 0 14px;overflow-wrap:anywhere}
.reveal[data-prepared=true] #reveal-value{font:14px/1.6 var(--arcade-font);margin:0 0 28px;color:var(--arcade-soft)}
.reveal[data-prepared=true] .close{width:44px;height:44px;top:8px;right:8px}
.reveal[data-prepared=true] .pull-button{margin-top:18px;min-height:56px}
.reveal #reveal-status{font:12px/1.6 var(--arcade-font);color:var(--arcade-soft);margin:14px 0 0}
.reveal #reveal-status:empty{display:none}
.reveal #reveal-status[data-error=true]{color:var(--arcade-error)}
.reveal [hidden]{display:none!important}

/* The mascot returns to the wheel's courtyard; the site keeps its scenery. */
.device-scene{position:relative;isolation:isolate;overflow:hidden;margin:auto 0;width:100%}
.pixel-courtyard{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--arcade-device-bg)}
.pixel-courtyard canvas{display:block;image-rendering:pixelated;pointer-events:none}
.device-panel .machine-space{margin:0 auto}
.device-panel .device-topline,.device-panel .device-caption{position:relative;background:var(--arcade-device-bg)}

/* Keep the light points above the tinted glass so they match their colour key. */
.device-panel #wheel-track{z-index:2}

/* The wheel box is see-through over the shared world, so the encounter's fire
   shows behind it; chains hold the box up from the stage corners. */
body.has-site-world .arcade-play{background:transparent}
body.has-site-world .device-panel{background:transparent}
body.has-site-world #wheel-courtyard{display:none}
.wheel-chains{position:absolute;inset:0;z-index:3;pointer-events:none}
.wheel-chain-hook{position:absolute;width:0;height:0;pointer-events:none}

/* The header mascot holds his staff and casts a bolt at the page title. */
:root .arcade-brand .brand-icon.has-header-mage{width:38px;height:58px;margin:-14px 4px -10px 0;overflow:visible}
.header-mage{display:block;width:38px;height:58px;image-rendering:pixelated}
#arcade-title span{display:block}
@media (max-width:600px){:root .arcade-brand .brand-icon.has-header-mage{width:28px;height:43px;margin:-10px 2px -6px 0}.header-mage{width:28px;height:43px}}


/* Pull size: price tiers of the selected collection. */
.pull-sizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;margin:10px 0 16px}
.pull-sizes[hidden]{display:none}
.pull-sizes button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 6px;border:1px solid var(--line);background:var(--arcade-inset);color:var(--arcade-ink);font:600 15px/1 var(--arcade-heading-font);cursor:pointer}
.pull-sizes button small{font:9px/1 'Wheel Mono',monospace;letter-spacing:.5px;color:var(--arcade-muted)}
.pull-sizes button[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent)}
.pull-sizes button:hover{border-color:var(--teal)}

/* Play mode switches (Mix / Degen). */
.mode-switch{display:inline-flex;align-items:center;gap:0;border:1px solid var(--arcade-border-strong);background:var(--arcade-inset)}
.mode-switch button{border:0;background:none;color:var(--arcade-muted);font:600 11px 'Wheel Mono',monospace;letter-spacing:.06em;padding:7px 12px;text-transform:uppercase;cursor:pointer}
.mode-switch button[aria-pressed=true]{background:var(--arcade-tier-legendary);color:#1b0d03}
.mode-switch button:disabled{cursor:not-allowed;opacity:.55}
.mode-switch .mode-label{font:9px 'Wheel Mono',monospace;color:var(--arcade-faint);padding:0 8px;letter-spacing:.12em}
.arcade-nav .mode-global{margin-left:auto;margin-right:14px}
.collection-mode{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-4px 0 14px}
.mode-note{font:10px 'Wheel Mono',monospace;color:var(--arcade-tier-legendary);letter-spacing:.04em}
.collection[data-degen=true] .collection-head strong::after{content:'DEGEN';margin-left:8px;padding:2px 5px;font:600 8px 'Wheel Mono',monospace;letter-spacing:.08em;color:#1b0d03;background:var(--arcade-tier-legendary);vertical-align:2px}
@media(max-width:760px){.arcade-nav .mode-global{order:5;margin:0}.mode-switch button{padding:6px 9px}}

/* Dragon-egg reveal: pixel egg canvas, prize cards, tier flames, coin flight.
   Every pixel element scales by whole numbers and stays unrotated. */
.reveal{--egg-scale:4}
.reveal-stage{position:relative;display:grid;place-items:center;margin:4px -12px 6px;min-height:calc(84px*var(--egg-scale))}
.reveal-stage[hidden]{display:none}
.reveal-egg{width:calc(72px*var(--egg-scale));height:calc(84px*var(--egg-scale));image-rendering:pixelated;cursor:pointer}
.reveal-fire{position:fixed;inset:0;width:100vw;height:100vh;image-rendering:pixelated;pointer-events:none;z-index:-1}
.reveal-fire[hidden]{display:none}
.reveal.hatching #reveal-title,.reveal.hatching #reveal-value,.reveal.hatching #claim-bag,.reveal.hatching #claim-usdc,.reveal.hatching .fine-print{opacity:0;pointer-events:none}
.reveal.hatched #reveal-title,.reveal.hatched #reveal-value,.reveal.hatched #claim-bag{animation:hatch-in .36s steps(6) both}
.reveal.hatched #reveal-title{color:var(--result-tier)}
.reveal #reveal-title:focus{outline:none}
@keyframes hatch-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.prize-cards{position:absolute;inset:0 0 34px;display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:8px;pointer-events:none;opacity:0}
.prize-cards.risen{opacity:1;animation:card-rise .42s steps(7) both}
@keyframes card-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
.prize-card{--tier:var(--result-tier);position:relative;background:#0b1820;border:2px solid #141a3a;box-shadow:0 0 0 2px var(--tier),6px 6px 0 #04080c;text-align:center;color:var(--arcade-text,#e8f0f2)}
.prize-card img,.prize-card .coin-fallback{display:block;image-rendering:pixelated;margin:0 auto}
.prize-card.big{width:176px;padding:0 12px 12px}
.prize-card.big .stamp{display:block;margin:0 -12px 12px;padding:4px 0 3px;background:var(--tier);color:#0b1018;font:10px var(--arcade-pixel-font);letter-spacing:.12em}
.prize-card.big img,.prize-card.big .coin-fallback{width:96px;height:96px}
.prize-card.big strong{display:block;margin:10px 0 4px;font:400 17px/1.3 var(--arcade-heading-font)}
.prize-card.big strong b{display:block;font-size:11px;color:var(--tier);letter-spacing:.06em}
.prize-card.big small{display:block;font:11px/1.5 'Wheel Mono',monospace;color:var(--arcade-soft)}
.prize-card.mini{width:72px;padding:8px 4px 7px}
.prize-card.mini img,.prize-card.mini .coin-fallback{width:48px;height:48px}
.prize-card.mini b{display:block;margin-top:6px;font:600 9px 'Wheel Mono',monospace;color:var(--tier);overflow:hidden;text-overflow:ellipsis}
.prize-card.mini span{display:block;font:10px 'Wheel Mono',monospace}
.prize-total{flex-basis:100%;margin:4px 0 0;font:11px 'Wheel Mono',monospace!important;color:var(--arcade-soft);text-align:center}
.coin-fallback{border-radius:50%;background:#1f2856;border:2px solid #141a3a;display:grid!important;place-items:center;font:600 11px 'Wheel Mono',monospace;color:#c4dcf4;font-style:normal}
/* Epic and Legendary cards: a stepped foil glint crossing the face. */
.prize-card[data-tier="3"]::after,.prize-card[data-tier="4"]::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,241,173,.28) 46%,rgba(255,255,255,.4) 50%,rgba(255,241,173,.28) 54%,transparent 60%) no-repeat;background-size:300% 100%;animation:foil 2.4s steps(16) .5s infinite}
@keyframes foil{from{background-position:100% 0}to{background-position:-50% 0}}
/* Legendary: one stepped screen shake (the flame canvas stays put). */
.reveal.shake>:not(.reveal-fire){animation:dragon-shake .48s steps(12)}
@keyframes dragon-shake{0%,100%{transform:none}10%{transform:translate(-4px,2px)}20%{transform:translate(4px,-2px)}30%{transform:translate(-4px,-2px)}40%{transform:translate(4px,2px)}55%{transform:translate(-2px,2px)}70%{transform:translate(2px,-2px)}85%{transform:translate(-2px,0)}}
.coin-flight{position:fixed;z-index:2147483646;image-rendering:pixelated;pointer-events:none;border-radius:50%}
#bag-count.bump{animation:bag-bump .4s steps(4)}
@keyframes bag-bump{0%,100%{transform:none}40%{transform:translateY(-4px) scale(1.5);color:var(--arcade-tier-legendary)}}
@media(max-width:520px){.reveal{--egg-scale:3}.prize-card.big{width:150px}.prize-card.big img{width:96px;height:96px}.prize-card.mini{width:64px}}
@media(prefers-reduced-motion:reduce){.prize-cards.risen,.reveal.hatched #reveal-title,.reveal.hatched #reveal-value,.reveal.hatched #claim-bag,.prize-card::after,.reveal.shake>*{animation:none!important}}

/* Collection cards with a coin logo (site.collectionArt): a crisp pixel coin. */
.collection-coin{display:block;width:48px;height:48px;image-rendering:pixelated}
@media(max-width:760px){.collection-coin{width:40px;height:40px}}

/* Bigger result popup (playtester feedback) and Degen multi-pulls. Pixel art
   keeps whole-number scales: egg ×5 desktop / ×3 phone; coins 144 / 96 / 48px. */
.reveal[data-prepared=true]{width:min(560px,calc(100vw - 30px))}
.reveal{--egg-scale:5}
.reveal-stage{display:flex;justify-content:center;align-items:flex-start;gap:12px}
.egg-slot{position:relative;display:grid;place-items:center}
.prize-card.big{width:240px}
.prize-card.big img,.prize-card.big .coin-fallback{width:144px;height:144px}
.prize-card.big strong{font-size:22px}
.prize-card.big strong b{font-size:13px}
.prize-card.mini{width:104px;padding:10px 6px 9px}
.prize-card.mini img,.prize-card.mini .coin-fallback{width:96px;height:96px}
.prize-card.mini b{font-size:11px}
.prize-card.mini span{font-size:13px}
.reveal.multi{width:min(940px,calc(100vw - 30px));--egg-scale:4}
.reveal.multi .egg-slot{width:calc(52px*var(--egg-scale));overflow:hidden}
.reveal.multi .reveal-egg{margin:0 calc(-10px*var(--egg-scale))}
.reveal.multi .prize-cards{inset:0 0 28px}
.prize-card.big.compact{width:calc(100% - 14px);padding:0 8px 10px}
.prize-card.big.compact img,.prize-card.big.compact .coin-fallback{width:96px;height:96px}
.prize-card.big.compact strong{font-size:16px}
.prize-card.big.compact small{display:none}
/* Pull count (Degen): ×1–×3. */
.pull-count{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:8px 12px;border:1px solid var(--arcade-border-strong);background:var(--arcade-inset)}
.pull-count[hidden]{display:none}
.pull-count-label{font:9px 'Wheel Mono',monospace;letter-spacing:.12em;color:var(--arcade-faint)}
.pull-count input{flex:1;accent-color:var(--arcade-tier-legendary);cursor:pointer}
.pull-count output{font:600 14px var(--arcade-pixel-font);color:var(--arcade-tier-legendary);min-width:28px;text-align:right}
@media(max-width:520px){
 .reveal{--egg-scale:3}
 .prize-card.big{width:190px}.prize-card.big img,.prize-card.big .coin-fallback{width:96px;height:96px}
 .prize-card.mini{width:80px}.prize-card.mini img,.prize-card.mini .coin-fallback{width:48px;height:48px}
 .reveal.multi{--egg-scale:2;padding-left:10px;padding-right:10px}
 .reveal.multi .reveal-stage{gap:4px;margin-left:0;margin-right:0}
 .prize-card.big.compact img,.prize-card.big.compact .coin-fallback{width:48px;height:48px}
 .prize-card.big.compact strong{font-size:12px}
 .prize-card.big.compact .stamp{font-size:7px}
}
@media(max-width:520px){.prize-card.big.compact strong b{font-size:9px;overflow:hidden;text-overflow:ellipsis}}

/* $ARCADE contract address chip (shown once site.token.mint is set). */
.token-ca{display:inline-flex;align-items:center;gap:10px;margin-top:10px;padding:8px 12px;border:2px solid var(--arcade-tier-legendary);background:color-mix(in srgb,var(--arcade-tier-legendary) 10%,var(--arcade-inset));color:var(--text);font:10px 'Wheel Mono',monospace;cursor:pointer;box-shadow:3px 3px 0 #04080c}
.token-ca[hidden]{display:none}
.token-ca span{color:var(--arcade-tier-legendary);letter-spacing:.08em}
.token-ca b{font-weight:600;color:var(--arcade-faint)}

/* Basket rows show each coin's logo at its native 48px (crisp pixel coin). */
.token-icon:has(img){width:52px;height:52px;padding:0;background:var(--arcade-inset)}
.token-icon img{display:block;width:48px;height:48px;image-rendering:pixelated}
