*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg:#0d0d0f;--surface:#18181c;--border:#2a2a32;--accent:#f59e0b;--accent2:#ef4444;--accent3:#8b5cf6;--text:#f5f5f5;--muted:#8d95a3}body{font-family:Outfit,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100dvh;overflow-x:hidden;-webkit-user-select:none;user-select:none}button,input{font:inherit}.grid-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background-image:linear-gradient(rgba(245,158,11,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(245,158,11,.045) 1px,transparent 1px);background-size:40px 40px;transition:filter .35s ease,opacity .35s ease}.ability-vignette{position:fixed;top:-18%;right:-18%;bottom:-18%;left:-18%;z-index:0;pointer-events:none;opacity:0;transition:opacity .35s ease;background:radial-gradient(circle at 50% 34%,rgba(245,158,11,.26),transparent 28%),radial-gradient(circle at 50% 72%,rgba(239,68,68,.16),transparent 38%)}.app-shell{position:relative;z-index:1;min-height:100dvh;padding-bottom:48px;display:flex;flex-direction:column;align-items:center}.auth-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px}.auth-screen.hidden{display:none}.auth-logo{font-family:Bebas Neue,sans-serif;font-size:3.7rem;color:var(--accent);letter-spacing:4px}.auth-sub{font-size:.9rem;color:var(--muted);margin:4px 0 32px}.auth-tabs{display:flex;background:var(--surface);border-radius:12px;padding:4px;margin-bottom:24px;width:100%;max-width:320px}.auth-tab{flex:1;padding:10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.auth-tab.active{background:var(--accent);color:#0d0d0f}.auth-form{width:100%;max-width:320px;display:flex;flex-direction:column;gap:12px}.auth-input{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;color:var(--text);outline:none;width:100%}.auth-input:focus{border-color:var(--accent)}.auth-btn{background:linear-gradient(135deg,var(--accent),var(--accent2));border:0;border-radius:14px;color:#fff;font-family:Bebas Neue,sans-serif;font-size:1.35rem;letter-spacing:2px;padding:16px;cursor:pointer;width:100%}.auth-error{font-size:.82rem;color:#ef4444;text-align:center;min-height:20px}header{width:100%;max-width:760px;padding:36px 24px 16px;display:flex;justify-content:space-between;align-items:center}.logo{font-family:Bebas Neue,sans-serif;font-size:2rem;color:var(--accent);letter-spacing:2px}.user-badge{font-size:.75rem;color:var(--muted);cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:99px;padding:7px 12px}.score-wrap{text-align:center;margin:8px 0 4px}.score-num{font-family:Bebas Neue,sans-serif;font-size:5.4rem;line-height:1;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;transition:transform .1s ease}.score-num.bump{transform:scale(1.08)}.score-label{font-size:.8rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase}.xp-wrap,.resource-row,.stats-row,.ability-section,.streak-wrap,.section-title,.upgrades,.shop-shell{width:calc(100% - 48px);max-width:390px}.resource-row{display:flex;justify-content:center;margin:8px auto 14px}.resource-pill{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:15px 16px;text-align:center}.gold-bars{position:relative;width:94px;height:42px;margin-bottom:2px;filter:drop-shadow(0 12px 18px rgba(245,158,11,.2))}.gold-bars span{position:absolute;height:18px;border-radius:4px 4px 6px 6px;background:linear-gradient(145deg,#fff4b8,#facc15 28%,#d97706 68%,#7c2d12);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 2px 3px #ffffff8c,inset 0 -4px 8px #78350f73}.gold-bars span:after{content:"";position:absolute;left:12%;right:14%;top:4px;height:3px;border-radius:99px;background:#ffffff8c}.gold-bars span:nth-child(1){left:27px;top:0;width:40px}.gold-bars span:nth-child(2){left:6px;top:20px;width:40px}.gold-bars span:nth-child(3){right:6px;top:20px;width:40px}.resource-copy{display:grid;gap:2px;justify-items:center}.resource-pill span{font-size:.72rem;color:#fbbf24;letter-spacing:1.4px;text-transform:uppercase;font-weight:900}.resource-pill strong{font-family:Bebas Neue,sans-serif;font-size:2.35rem;line-height:1;letter-spacing:1px}.resource-pill em{font-style:normal;font-size:.72rem;color:#d1a74a;font-weight:900}.resource-pill.gold{border-color:#f59e0bad;background:linear-gradient(155deg,#2b1a05,#15110a 48%,#111)}.resource-pill.gold strong{color:#ffd166;text-shadow:0 0 18px rgba(245,158,11,.22)}.xp-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-bottom:6px}.xp-bar,.cd-bar{height:6px;background:var(--border);border-radius:99px;overflow:hidden}.xp-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent3),var(--accent));transition:width .4s ease}.stats-row{display:flex;gap:12px;margin:12px auto}.stat-card{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;text-align:center}.stat-val{font-size:1.2rem;font-weight:800;color:var(--accent)}.stat-key{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.tap-area{margin:16px auto;width:calc(100% - 48px);max-width:390px;height:220px;display:grid;place-items:center;position:relative}.tap-btn{width:200px;height:200px;border-radius:50%;border:0;background:radial-gradient(circle at 35% 35%,#f59e0b,#ef4444);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 20px 60px #ef44444d;transition:transform .08s ease;position:relative;overflow:hidden;color:#fff}.tap-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.25),transparent 60%)}.tap-btn:after{content:"";position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;border-radius:50%;border:2px solid rgba(255,255,255,.14);opacity:0;transform:scale(.9);pointer-events:none}.tap-btn:active{transform:scale(.92)}.tap-emoji{font-size:3.5rem;line-height:1;position:relative;z-index:1}.tap-hint{font-size:.75rem;color:#ffffffbf;font-weight:800;letter-spacing:1px;margin-top:4px;position:relative;z-index:1}.ability-side{position:absolute;top:0;bottom:0;width:96px;pointer-events:none;opacity:0;transition:opacity .25s ease;z-index:1;overflow:hidden}.side-left{left:-4px}.side-right{right:-4px}.ability-side span{position:absolute;top:-58px;left:28px;width:38px;height:38px;opacity:0;will-change:transform,opacity;filter:drop-shadow(0 12px 18px rgba(0,0,0,.38));--fall-time:2.2s;--delay:-.2s;--drift:0px;--spin:90deg}.ability-side span:before,.ability-side span:after{content:"";position:absolute;pointer-events:none}.ability-side span:nth-child(1){left:34px;--fall-time:2.15s;--delay:-.15s;--drift:-8px;--spin:130deg}.ability-side span:nth-child(2){left:6px;--fall-time:2.65s;--delay:-1s;--drift:13px;--spin:-160deg}.ability-side span:nth-child(3){left:48px;--fall-time:2.35s;--delay:-1.75s;--drift:-15px;--spin:220deg}.ability-side span:nth-child(4){left:18px;--fall-time:2.95s;--delay:-2.25s;--drift:17px;--spin:-210deg}.ability-side span:nth-child(5){left:50px;--fall-time:2.55s;--delay:-.65s;--drift:-12px;--spin:170deg}.side-right span:nth-child(1){left:18px;--drift:10px}.side-right span:nth-child(2){left:54px;--drift:-14px}.side-right span:nth-child(3){left:12px;--drift:18px}.side-right span:nth-child(4){left:42px;--drift:-16px}.side-right span:nth-child(5){left:28px;--drift:12px}.float-text{position:fixed;font-family:Bebas Neue,sans-serif;font-size:2rem;color:var(--accent);pointer-events:none;z-index:50;animation:floatUp .8s ease forwards;text-shadow:0 0 20px #f59e0b}@keyframes floatUp{to{opacity:0;transform:translateY(-80px) scale(1.4)}}.ability-title,.section-title,.lb-title{font-size:.75rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px}.ability-tabs{display:flex;gap:8px;margin-bottom:10px}.ability-tab{flex:1;padding:8px 4px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.78rem;font-weight:800;cursor:pointer;text-align:center;line-height:1.3}.ability-tab.active{border-color:var(--accent);color:var(--accent);background:#1f1a0d}.ability-tab.locked{opacity:.35;cursor:not-allowed}.ability-btn{width:100%;padding:16px;border:0;border-radius:8px;color:#fff;font-family:Bebas Neue,sans-serif;font-size:1.4rem;letter-spacing:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px}.ability-btn.frenzy{background:linear-gradient(135deg,#7c3aed,#a855f7)}.ability-btn.gold{background:linear-gradient(135deg,#d97706,#f59e0b)}.ability-btn.dice{background:linear-gradient(135deg,#059669,#10b981)}.ability-btn.cooling{background:var(--surface);border:1px solid var(--border);cursor:not-allowed;color:var(--muted)}.cd-bar{height:4px;margin-top:8px}.cd-fill{height:100%;border-radius:99px;transition:width .3s linear}.ability-desc{font-size:.72rem;color:var(--muted);text-align:center;margin-top:5px}body[class*=ability-active-] .ability-vignette{opacity:1;animation:abilityVibe 1.8s ease-in-out infinite}body[class*=ability-active-] .grid-bg{opacity:.88;filter:saturate(1.55) brightness(1.12)}body[class*=ability-active-] .score-num{animation:scoreSurge .75s ease-in-out infinite;text-shadow:0 0 28px rgba(245,158,11,.32)}body[class*=ability-active-] .tap-btn{animation:tapSurge .75s ease-in-out infinite}body[class*=ability-active-] .tap-btn:after{animation:ringBurst .9s ease-out infinite}body[class*=ability-active-] .ability-section{animation:panelSurge 1.2s ease-in-out infinite}body[class*=ability-active-] .ability-side{opacity:1}body[class*=ability-active-] .ability-side span{animation:sideFall var(--fall-time) linear infinite;animation-delay:var(--delay)}body.ability-active-frenzy .ability-vignette{background:radial-gradient(circle at 50% 35%,rgba(168,85,247,.36),transparent 30%),radial-gradient(circle at 50% 74%,rgba(124,58,237,.22),transparent 42%)}body.ability-active-frenzy .tap-btn{box-shadow:0 0 36px #a855f76b,0 24px 80px #7c3aed59;background:radial-gradient(circle at 35% 35%,#c084fc,#7c3aed)}body.ability-active-frenzy .ability-tab.active{box-shadow:0 0 22px #a855f759}body.ability-active-frenzy .ability-side span{width:28px;height:52px;background:linear-gradient(145deg,#f5d0fe,#a855f7 38%,#581c87);clip-path:polygon(58% 0,100% 0,68% 40%,95% 40%,22% 100%,42% 54%,12% 54%);box-shadow:0 0 24px #a855f785}body.ability-active-frenzy .ability-side span:before{inset:3px 9px auto 7px;height:34px;border-radius:99px;background:linear-gradient(180deg,#ffffffb8,#fff0);transform:rotate(10deg)}body.ability-active-gold .ability-vignette{background:radial-gradient(circle at 50% 31%,rgba(250,204,21,.38),transparent 30%),radial-gradient(circle at 50% 74%,rgba(217,119,6,.24),transparent 45%)}body.ability-active-gold .tap-btn{box-shadow:0 0 36px #facc155c,0 24px 80px #d977064d}body.ability-active-gold .resource-pill.gold{animation:goldSurge .75s ease-in-out infinite;border-color:#facc15;box-shadow:0 0 32px #f59e0b3d}body.ability-active-gold .gold-bars{animation:goldBarsSurge .75s ease-in-out infinite}body.ability-active-gold .ability-side span{width:46px;height:23px;border-radius:5px 5px 8px 8px;background:linear-gradient(145deg,#fff7c2,#facc15 28%,#d97706 68%,#7c2d12);border:1px solid rgba(255,255,255,.34);box-shadow:inset 0 2px 4px #ffffff94,inset 0 -5px 10px #78350f7a,0 0 24px #f59e0b57}body.ability-active-gold .ability-side span:before{left:12%;right:13%;top:5px;height:3px;border-radius:99px;background:#ffffff94}body.ability-active-gold .ability-side span:after{left:50%;top:50%;width:55%;height:42%;border:1px solid rgba(255,244,184,.24);border-radius:4px;transform:translate(-50%,-35%)}body.ability-active-dice .ability-vignette{background:radial-gradient(circle at 50% 36%,rgba(16,185,129,.34),transparent 30%),radial-gradient(circle at 50% 74%,rgba(5,150,105,.2),transparent 44%)}body.ability-active-dice .tap-btn{box-shadow:0 0 36px #10b98152,0 24px 80px #0596693d}body.ability-active-dice .ability-side span{width:36px;height:36px;border-radius:8px;background:linear-gradient(145deg,#fff,#d1fae5 52%,#34d399);border:1px solid rgba(255,255,255,.62);box-shadow:inset 4px 4px 8px #ffffffd1,inset -6px -7px 12px #065f4647,0 0 24px #10b98157}body.ability-active-dice .ability-side span:before{width:5px;height:5px;border-radius:50%;background:#064e3b;left:15px;top:15px;box-shadow:var(--pips)}body.ability-active-dice .ability-side span:nth-child(1){--pips:-9px -9px 0 #064e3b,9px 9px 0 #064e3b}body.ability-active-dice .ability-side span:nth-child(2){--pips:-9px -9px 0 #064e3b,9px 9px 0 #064e3b,-9px 9px 0 #064e3b,9px -9px 0 #064e3b}body.ability-active-dice .ability-side span:nth-child(3){--pips:-9px -9px 0 #064e3b,9px 9px 0 #064e3b,-9px 9px 0 #064e3b,9px -9px 0 #064e3b,0 -9px 0 #064e3b}body.ability-active-dice .ability-side span:nth-child(4){--pips:-9px -9px 0 #064e3b,9px 9px 0 #064e3b,9px -9px 0 #064e3b}body.ability-active-dice .ability-side span:nth-child(5){--pips:-9px -9px 0 #064e3b,9px 9px 0 #064e3b,-9px 9px 0 #064e3b,9px -9px 0 #064e3b,0 -9px 0 #064e3b,0 9px 0 #064e3b}@keyframes abilityVibe{50%{transform:scale(1.05) rotate(1deg);filter:saturate(1.25)}}@keyframes scoreSurge{50%{transform:scale(1.05)}}@keyframes tapSurge{50%{transform:scale(1.045)}}@keyframes ringBurst{0%{opacity:.55;transform:scale(.9)}to{opacity:0;transform:scale(1.22)}}@keyframes panelSurge{50%{filter:brightness(1.18)}}@keyframes goldSurge{50%{transform:translateY(-1px);box-shadow:0 0 46px #f59e0b57}}@keyframes goldBarsSurge{50%{transform:scale(1.08);filter:drop-shadow(0 16px 24px rgba(245,158,11,.34))}}@keyframes sideFall{0%{opacity:0;transform:translate3d(0,-42px,0) rotate(0) scale(.82)}12%{opacity:.98}82%{opacity:.98}to{opacity:0;transform:translate3d(var(--drift),282px,0) rotate(var(--spin)) scale(1.04)}}@media(prefers-reduced-motion:reduce){body[class*=ability-active-] .ability-vignette,body[class*=ability-active-] .score-num,body[class*=ability-active-] .tap-btn,body[class*=ability-active-] .tap-btn:after,body[class*=ability-active-] .ability-section,body[class*=ability-active-] .ability-side span,body.ability-active-gold .resource-pill.gold,body.ability-active-gold .gold-bars{animation:none}}.streak-wrap{margin:12px auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.streak-top{display:flex;justify-content:space-between;margin-bottom:10px}.streak-lbl{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.streak-cnt{font-family:Bebas Neue,sans-serif;font-size:1.1rem;color:var(--accent)}.streak-days{display:flex;gap:5px}.streak-day{flex:1;height:8px;border-radius:99px;background:var(--border)}.streak-day.done{background:linear-gradient(90deg,var(--accent2),var(--accent))}.streak-day.today{background:linear-gradient(90deg,var(--accent3),var(--accent))}.shop-shell{margin:4px auto 0}.shop-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px}.shop-tab{border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.4px;padding:9px 4px;cursor:pointer}.shop-tab.active{background:var(--accent);color:#111}.shop-panel{margin-top:10px}.shop-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.hidden{display:none!important}.upgrades{display:flex;flex-direction:column;gap:8px;margin:0 auto}.upgrade-separator{font-size:.7rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;padding:8px 0 4px}.upg-card,.lb-entry{background:var(--surface);border:1px solid var(--border);border-radius:8px}.upg-card{padding:12px 16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .15s ease}.upg-card.can{border-color:var(--accent);box-shadow:0 0 16px #f59e0b26}.upg-card.done{opacity:.4;pointer-events:none}.upg-icon{font-size:1.8rem;width:40px;text-align:center}.upg-info{flex:1}.upg-name{font-weight:800;font-size:.9rem}.upg-desc{font-size:.75rem;color:var(--muted);margin-top:2px}.upg-tag,.upg-lv,.upg-req{font-size:.65rem;color:#a855f7;font-weight:800;letter-spacing:1px;margin-top:3px}.upg-lv{color:#10b981}.upg-req{color:#9ca3af}.upg-req.met{color:#f59e0b}.upg-cost{font-family:Bebas Neue,sans-serif;font-size:1.1rem;color:var(--accent);white-space:nowrap}.upg-cost.grey{color:var(--muted)}.upg-cost.purple{color:#a855f7}.upg-cost.gold{color:#f59e0b}.lb-refresh{background:none;border:1px solid var(--border);border-radius:99px;color:var(--muted);font-size:.75rem;padding:5px 12px;cursor:pointer;white-space:nowrap}.lb-list{display:flex;flex-direction:column;gap:6px}.lb-entry{padding:10px 14px;display:flex;align-items:center;gap:10px}.lb-entry.me{border-color:var(--accent);background:#1f1a0d}.lb-rank{font-family:Bebas Neue,sans-serif;font-size:1.2rem;color:var(--muted);width:28px;text-align:center}.lb-rank.g{color:#f59e0b}.lb-rank.s{color:#9ca3af}.lb-rank.b{color:#b45309}.lb-name{flex:1;font-weight:800;font-size:.9rem}.lb-score{font-family:Bebas Neue,sans-serif;font-size:1.1rem;color:var(--accent)}.lb-empty{text-align:center;color:var(--muted);font-size:.85rem;padding:20px 0}.dice-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;opacity:0;pointer-events:none;transition:opacity .3s ease}.dice-modal.show{opacity:1;pointer-events:all}.dice-face{font-size:8rem;line-height:1;animation:diceRoll .12s ease infinite}.dice-face.landed{animation:none}.dice-result{text-align:center;opacity:0;transform:translateY(20px);transition:all .4s ease}.dice-result.show{opacity:1;transform:translateY(0)}.dice-rtitle{font-family:Bebas Neue,sans-serif;font-size:2.8rem;letter-spacing:3px;margin-bottom:8px}.dice-rdesc{font-size:1rem;color:#ffffffd9;max-width:280px;line-height:1.6}.dice-close-btn{background:#fff;color:#0d0d0f;border:0;border-radius:99px;padding:14px 40px;font-family:Bebas Neue,sans-serif;font-size:1.3rem;letter-spacing:2px;cursor:pointer}@keyframes diceRoll{50%{transform:rotate(20deg) scale(1.15)}}.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.8);background:linear-gradient(135deg,var(--accent3),var(--accent));color:#fff;border-radius:8px;padding:20px 32px;text-align:center;z-index:40;opacity:0;transition:all .3s ease;pointer-events:none;min-width:220px}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.toast-title{font-family:Bebas Neue,sans-serif;font-size:2.5rem;letter-spacing:2px}.toast-sub{font-size:.9rem;opacity:.9;margin-top:4px}
