:root{--bg:#f8f7ff;--ink:#24213e;--muted:#77728e;--primary:#7258f5;--primary2:#9b67f5;--accent:#ffb258;--panel:#fff;--cell:#f4f1ff;--cell-ink:#4b426d;--line:#e9e5f5;--shadow:0 18px 50px rgba(72,55,143,.13);font-family:Inter,ui-rounded,"SF Pro Rounded",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 15% 5%,rgba(255,255,255,.9),transparent 30%),linear-gradient(145deg,var(--bg),#eeeafe);-webkit-tap-highlight-color:transparent}.app{width:min(100%,760px);min-height:100dvh;margin:auto;padding:env(safe-area-inset-top) 18px calc(104px + env(safe-area-inset-bottom));position:relative}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:9px;align-items:center;font-weight:850;letter-spacing:-.4px}.brand-mark{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:linear-gradient(145deg,var(--primary),var(--primary2));color:white;box-shadow:0 7px 18px rgba(114,88,245,.3)}button{font:inherit;color:inherit;cursor:pointer}.icon-button,.close-button{border:1px solid rgba(130,115,180,.14);background:rgba(255,255,255,.7);box-shadow:0 6px 20px rgba(72,55,143,.08);width:40px;height:40px;border-radius:14px;font-size:18px}.hero{text-align:center;padding:6px 0 22px}.live-pill{display:inline-flex;gap:8px;align-items:center;background:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.8);padding:7px 11px;border-radius:99px;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:1.2px}.live-pill i{width:6px;height:6px;border-radius:99px;background:#54d599;box-shadow:0 0 0 4px rgba(84,213,153,.13)}.draw-stage{height:152px;position:relative;display:grid;place-items:center}.orb-glow{position:absolute;width:170px;height:85px;top:44px;background:var(--primary);filter:blur(45px);opacity:.15;border-radius:50%}.number-orb{position:relative;width:114px;height:114px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 32% 22%,#fff 0 7%,#f5f0ff 21%,var(--primary2) 75%,var(--primary));color:white;box-shadow:inset -10px -14px 28px rgba(44,26,122,.17),inset 7px 7px 15px rgba(255,255,255,.6),0 18px 38px rgba(104,75,218,.3);border:3px solid rgba(255,255,255,.75)}.number-orb strong{font-size:48px;line-height:1;letter-spacing:-3px;text-shadow:0 3px 7px rgba(54,34,125,.25)}.orb-letter{position:absolute;top:15px;font-size:12px;font-weight:900;opacity:.8}.number-orb.drawing{animation:draw .65s cubic-bezier(.2,.8,.2,1)}@keyframes draw{0%{transform:translateY(-30px) scale(.4) rotate(-25deg);opacity:.2}55%{transform:translateY(7px) scale(1.1) rotate(5deg)}100%{transform:none}}.sparkle{position:absolute;color:var(--accent);animation:twinkle 2s infinite}.s1{left:20%;top:38px}.s2{right:20%;bottom:30px;animation-delay:.8s}.s3{right:26%;top:20px;animation-delay:1.2s}@keyframes twinkle{50%{transform:scale(.4) rotate(35deg);opacity:.25}}.call-copy h1{font-size:23px;margin:2px 0 5px;letter-spacing:-.8px}.call-copy p{font-size:13px;color:var(--muted);margin:0}.recent{height:34px;margin-top:15px;display:flex;gap:7px;justify-content:center;align-items:center}.recent span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.72);border:1px solid var(--line);font-size:11px;font-weight:850;color:var(--cell-ink);animation:pop .3s ease}@keyframes pop{from{transform:scale(.2)}}.game-panel{background:var(--panel);border:1px solid rgba(255,255,255,.85);border-radius:27px;padding:20px 16px 16px;box-shadow:var(--shadow)}.panel-heading{display:flex;justify-content:space-between;align-items:center}.eyebrow{color:var(--primary);font-size:9px;font-weight:900;letter-spacing:1.4px}.panel-heading h2,.sheet-title h2{margin:3px 0 0;font-size:18px;letter-spacing:-.4px}.small-button{border:0;background:var(--cell);color:var(--primary);font-size:11px;font-weight:800;padding:9px 11px;border-radius:11px}.card-tabs{display:flex;gap:6px;margin:13px 0 5px}.card-tabs button{border:0;width:8px;height:8px;border-radius:10px;padding:0;background:var(--line)}.card-tabs button.active{width:24px;background:var(--primary)}.bingo-wrap{width:100%;aspect-ratio:1;max-height:435px}canvas{display:block;width:100%;height:100%}.progress-row{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;font-weight:650;margin-top:10px}.progress-track{height:4px;background:var(--line);border-radius:5px;margin-top:8px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary2));border-radius:5px;transition:width .4s}.controls{position:fixed;z-index:5;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,760px);padding:12px 18px calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1.45fr 1fr;gap:9px;background:linear-gradient(transparent,rgba(248,247,255,.92) 18%,var(--bg) 42%);backdrop-filter:blur(8px)}.control{height:64px;border:0;border-radius:19px;display:flex;align-items:center;justify-content:center;gap:8px}.control span:nth-child(2){display:flex;flex-direction:column;text-align:left}.control small{font-size:7px;font-weight:900;letter-spacing:.8px;opacity:.65}.control b{font-size:12px}.control-icon{font-size:18px}.control.secondary{background:white;box-shadow:0 6px 22px rgba(72,55,143,.1);color:var(--cell-ink)}.control.primary{color:white;background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 11px 26px rgba(114,88,245,.34)}.control.primary em{font-style:normal}dialog{border:0;padding:0;background:transparent;width:min(92%,480px)}dialog::backdrop{background:rgba(28,23,51,.38);backdrop-filter:blur(5px)}.sheet{background:var(--panel);padding:10px 22px 24px;border-radius:26px;box-shadow:var(--shadow)}.sheet-handle{width:38px;height:4px;background:var(--line);border-radius:10px;margin:0 auto 20px}.sheet-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.sheet label{display:block;font-size:11px;color:var(--muted);font-weight:800;margin-top:13px}.sheet select{display:block;width:100%;margin-top:7px;padding:13px;border-radius:12px;border:1px solid var(--line);background:var(--cell);color:var(--ink);font-weight:700}.sheet-action,.win-card button{width:100%;border:0;border-radius:14px;padding:14px;margin-top:20px;color:white;background:linear-gradient(135deg,var(--primary),var(--primary2));font-weight:800}.celebration{display:none;position:fixed;z-index:20;inset:0;background:rgba(30,24,55,.62);place-items:center;backdrop-filter:blur(7px)}.celebration.show{display:grid}.celebration canvas{position:absolute;inset:0}.win-card{position:relative;width:min(86%,350px);text-align:center;background:white;border-radius:28px;padding:32px;color:var(--ink);box-shadow:0 30px 80px rgba(20,12,60,.25);animation:win .5s cubic-bezier(.2,1.4,.4,1)}.win-card span{color:var(--primary);font-size:11px;font-weight:900;letter-spacing:2px}.win-card h2{font-size:33px;margin:9px 0 5px}.win-card p{color:var(--muted);font-size:13px}@keyframes win{from{transform:scale(.5) rotate(-4deg);opacity:0}}body[data-theme="classic"]{--bg:#fff7e9;--primary:#e94d58;--primary2:#ff7b4d;--accent:#f4b83f;--cell:#fff0e0;--cell-ink:#793a40;--line:#f3dfd3}body[data-theme="neon"]{--bg:#111027;--ink:#f7f5ff;--muted:#aaa5c5;--primary:#7b5cff;--primary2:#f13cdf;--accent:#37f3bc;--panel:#1d1938;--cell:#29234a;--cell-ink:#eee9ff;--line:#393157}body[data-theme="dark"]{--bg:#151622;--ink:#f3f3f8;--muted:#9a9caa;--primary:#5969e8;--primary2:#826ee8;--accent:#efbd65;--panel:#20212f;--cell:#2b2c3d;--cell-ink:#e6e6ef;--line:#38394b}body[data-theme="seasonal"]{--bg:#fff8e9;--primary:#f56d4d;--primary2:#ffad49;--accent:#4fc999;--cell:#fff0cf;--cell-ink:#695231;--line:#f2dec1}@media(min-width:700px){.app{padding-left:34px;padding-right:34px}.hero{padding-top:12px}.game-panel{padding:23px 26px}.bingo-wrap{margin:auto;width:min(100%,435px)}.controls{padding-left:34px;padding-right:34px}}@media(max-height:750px) and (orientation:landscape){.app{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px;padding-bottom:90px}.topbar{grid-column:1/-1;height:50px}.hero{align-self:center}.game-panel{grid-column:2;grid-row:2}.draw-stage{height:125px}.number-orb{width:95px;height:95px}.number-orb strong{font-size:40px}.call-copy h1{font-size:19px}.controls{height:78px}.bingo-wrap{max-height:330px}}
