:root{--bg: #0a0a0a;--surface: #161616;--surface-2: #1f1f1f;--border: #2a2a2a;--text: #f5f5f5;--text-dim: #9a9a9a;--accent: #f08c50;--accent-hover: #f5a06b;--slot-red: #7b1e2b;--slot-red-dark: #350912;--slot-panel: #10080b;--gold: #f7c948;--reel-symbol-height: 104px;--success: #22c55e;--danger: #ef4444;--font-mono: Arial, Helvetica, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font-family:Arial,Helvetica,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(720px 240px at 50% -80px,rgb(240 140 80 / 18%),transparent 70%),radial-gradient(580px 320px at 10% 12%,rgb(123 30 43 / 28%),transparent 64%),var(--bg)}button,a{font:inherit}.loading,.shell{min-height:100vh}.loading{display:grid;place-items:center}.shell{display:flex;flex-direction:column;gap:18px;width:min(1180px,calc(100% - 32px));margin:0 auto;padding:0 0 48px}.topbar{position:sticky;top:0;z-index:10;display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:16px;padding:0;border-bottom:1px solid var(--border);background:#0a0a0ae0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand{display:flex;min-width:0;align-items:center;gap:10px;font-size:18px;font-weight:800}.brand-mark{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgb(240 140 80 / 45%);border-radius:8px;background:#111}.brand-mark img{width:28px;height:28px;object-fit:contain}.brand-accent{color:var(--accent)}.session{display:flex;align-items:center;gap:10px;color:var(--text-dim);font-size:14px}.hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end;padding:44px 0 10px}.eyebrow{margin:0 0 12px;color:var(--gold);font-size:.82rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1{max-width:760px;margin:0;font-size:clamp(2.25rem,6vw,5.2rem);line-height:1;letter-spacing:0}.subcopy{max-width:620px;margin:18px 0 0;color:var(--text-dim);font-size:1.08rem;line-height:1.55}.claim-note{max-width:620px;margin:10px 0 0;color:var(--gold);font-size:.98rem;font-weight:800;line-height:1.35}.requirement{margin:14px 0 0;color:var(--text-dim);font-size:.98rem;font-weight:800}.requirement.met{color:var(--success)}.requirement.blocked{color:var(--danger)}.hero-logo{display:grid;width:clamp(112px,18vw,210px);aspect-ratio:1;place-items:center;border:1px solid rgb(247 201 72 / 38%);border-radius:12px;background:radial-gradient(circle at 50% 35%,rgb(247 201 72 / 16%),transparent 58%),linear-gradient(135deg,rgb(123 30 43 / 48%),transparent 46%),var(--surface);box-shadow:0 22px 80px #f08c5029}.hero-logo img{width:78%;height:78%;object-fit:contain}.btn,.ball{border:0;border-radius:8px;cursor:pointer}.btn{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;color:#000;background:var(--accent);font-weight:800;text-decoration:none}.btn:hover{background:var(--accent-hover)}.btn-secondary{color:var(--text);background:var(--surface-2);border-color:var(--border)}.btn-secondary:hover{background:#262626}.status{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:var(--border)}.status div{display:flex;min-height:96px;flex-direction:column;justify-content:center;padding:18px;background:var(--surface)}.status span{color:var(--text-dim);font-size:.88rem}.status strong{margin-top:5px;font-size:1.8rem}.panel{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.game{position:relative;display:grid;gap:22px;padding:30px;overflow:hidden;background:radial-gradient(circle at 50% 0%,rgb(247 201 72 / 18%),transparent 34%),linear-gradient(135deg,#7b1e2beb,#10080bf5);box-shadow:inset 0 0 0 1px #f7c9482e,inset 0 0 60px #0000006b}.game:before{content:"";position:absolute;top:18px;right:18px;bottom:18px;left:18px;pointer-events:none;border:2px solid rgb(247 201 72 / 26%);border-radius:8px;box-shadow:inset 0 0 0 8px #0000002e,0 0 34px #f7c9481a}.game:after{content:"";position:absolute;top:24px;left:50%;width:min(520px,70%);height:8px;pointer-events:none;border:0;border-radius:999px;background:linear-gradient(90deg,transparent,var(--gold),transparent);box-shadow:0 0 22px #f7c9488c;transform:translate(-50%,-50%)}.game-header{position:relative;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:12px;color:#fff}.game-header span{color:#ffffffb8;font-size:.82rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.game-header strong{color:var(--gold);font-size:1.25rem}.balls{position:relative;z-index:1;display:grid;grid-template-columns:repeat(5,minmax(72px,1fr));gap:10px;padding:18px;border:1px solid rgb(247 201 72 / 32%);border-radius:12px;background:linear-gradient(180deg,rgb(255 255 255 / 10%),transparent 18%),var(--slot-panel);box-shadow:inset 0 0 0 8px #00000047,0 18px 48px #00000047}.ball{display:block;min-height:168px;padding:0;color:var(--text);border:0;background:transparent;perspective:900px;transition:opacity .15s ease,transform .15s ease}.ball:not(:disabled):hover{transform:translateY(-2px)}.ball:disabled{cursor:not-allowed}.card-inner{position:relative;display:block;width:100%;min-height:168px}.card-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;min-height:168px;place-items:center;padding:16px;overflow:hidden;border:1px solid rgb(255 255 255 / 14%);border-radius:8px;box-shadow:inset 0 -5px #0000002e}.card-front{grid-template-rows:minmax(0,1fr) auto;gap:10px;background:linear-gradient(180deg,rgb(255 255 255 / 10%),transparent 26%),linear-gradient(135deg,#0c0c0ceb,#290c12eb)}.ball:not(:disabled):hover .card-front{border-color:#f7c948b8;background:radial-gradient(circle at 50% 38%,rgb(247 201 72 / 20%),transparent 48%),linear-gradient(135deg,#121212f5,#44121cf5)}.slot-window{position:relative;display:block;width:min(100%,112px);height:var(--reel-symbol-height);overflow:hidden;border:2px solid rgb(247 201 72 / 70%);border-radius:8px;background:linear-gradient(180deg,rgb(255 255 255 / 16%),transparent 22%,transparent 78%,rgb(0 0 0 / 24%)),#070707;box-shadow:inset 0 0 18px #000000b3,0 0 18px #f7c94824}.slot-window:before,.slot-window:after{content:"";position:absolute;right:0;left:0;z-index:1;height:14px;pointer-events:none}.slot-window:before{top:0;background:linear-gradient(180deg,rgb(0 0 0 / 72%),transparent)}.slot-window:after{bottom:0;background:linear-gradient(0deg,rgb(0 0 0 / 72%),transparent)}.reel-strip{display:grid;--reel-cycle-distance: calc(var(--reel-symbol-height) * 5 * -1);--reel-stop-near-distance: calc(var(--reel-symbol-height) * 2 * -1);--reel-stop-close-distance: calc(var(--reel-symbol-height) * 4 * -1);--reel-stop-distance: calc(var(--reel-symbol-height) * 5 * -1);animation:reel-idle 2.8s linear infinite}.ball.spinning.fast .reel-strip{animation:reel-spin .18s linear infinite}.ball.spinning.slow .reel-strip{animation:reel-spin .52s linear infinite}.ball.spinning.settling .reel-strip{animation:reel-settle .95s cubic-bezier(.08,.78,.22,1) forwards}.reel-symbol{display:grid;height:var(--reel-symbol-height);padding:8px;place-items:center;color:var(--gold);font-size:clamp(.68rem,1.25vw,.92rem);font-weight:800;line-height:1.15;overflow-wrap:anywhere;text-align:center;white-space:normal;text-shadow:0 0 16px rgb(247 201 72 / 34%)}.reel-symbol.reel-prize{color:var(--gold)}.slot-label{display:inline-flex;min-width:68px;min-height:28px;align-items:center;justify-content:center;border:1px solid rgb(247 201 72 / 36%);border-radius:999px;color:#000;background:var(--gold);font-size:.72rem;font-weight:900;letter-spacing:0}.slot-prize{position:relative;z-index:2;display:grid;height:100%;place-items:center;padding:8px;color:var(--gold);font-size:clamp(.68rem,1.25vw,.92rem);font-weight:800;line-height:1.15;text-align:center;overflow-wrap:anywhere;text-shadow:0 0 14px rgb(247 201 72 / 34%)}.ball.used .card-front{border-color:#f7c948a3;background:radial-gradient(circle at 50% 36%,rgb(247 201 72 / 16%),transparent 48%),linear-gradient(135deg,#0c0c0cf0,#290c12f0)}.ball.used .slot-window{border-color:#f7c948e0;box-shadow:inset 0 0 22px #000000c2,0 0 24px #f7c94838}.ball.used .slot-label{color:var(--gold);background:#00000057}.toast{position:fixed;top:18px;left:50%;z-index:20;max-width:min(420px,calc(100vw - 36px));width:max-content;padding:14px 16px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:#161616f5;box-shadow:0 18px 48px #0000006b;font-size:.95rem;font-weight:800;line-height:1.35;transform:translate(-50%);animation:toast-in .18s ease-out}.toast.success{border-color:#22c55e8c;color:#b9f6cf}.toast.error{border-color:#ef44448c;color:#fecaca}@keyframes reel-idle{0%{transform:translateY(0)}to{transform:translateY(var(--reel-cycle-distance))}}@keyframes reel-spin{0%{transform:translateY(0)}to{transform:translateY(var(--reel-cycle-distance))}}@keyframes reel-settle{0%{transform:translateY(0)}42%{transform:translateY(var(--reel-stop-near-distance))}72%{transform:translateY(var(--reel-stop-close-distance))}to{transform:translateY(var(--reel-stop-distance))}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.reel-strip,.ball.spinning .reel-strip,.toast{animation:none}.ball:not(:disabled):hover{transform:none}}@media(max-width:740px){.shell{--reel-symbol-height: 76px;width:min(100% - 24px,1120px);padding-top:18px}.hero,.status{grid-template-columns:1fr}.hero{align-items:start}.topbar,.session{justify-content:flex-start}.topbar{position:static;min-height:auto;align-items:flex-start;flex-direction:column;padding:14px 0}.session{width:100%;flex-wrap:wrap}.balls{grid-template-columns:1fr;gap:10px;padding:12px}.ball,.card-inner,.card-face{min-height:142px}.game{padding:16px}}
