.game-shell{position:relative;min-height:100dvh;width:100%}.game-hud-pill{position:fixed;top:12px;left:12px;z-index:100;display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;background:#0f0f1abf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:24px;pointer-events:auto}.hud-tokens{display:flex;align-items:center;gap:4px;font-size:.85rem;font-weight:700;color:gold}.hud-shop-link{background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:8px;transition:background .15s;-webkit-tap-highlight-color:transparent}.hud-shop-link:active{background:#ffd70026}.hud-token-icon{font-size:.9rem}.game-menu-btn{position:fixed;top:12px;right:12px;z-index:100;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#0f0f1abf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#eee;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:transform .15s}.game-menu-btn:active{transform:scale(.92)}.game-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#0006}.game-menu-panel{position:fixed;top:64px;right:12px;z-index:101;display:flex;flex-direction:column;gap:2px;background:#1a1a2ef2;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:6px;min-width:160px;box-shadow:0 8px 32px #00000080}.game-menu-item{display:flex;align-items:center;gap:10px;padding:12px 16px;background:none;border:none;border-radius:10px;color:#eee;font-size:.95rem;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s}.game-menu-item:active{background:#ffffff14}.game-menu-icon{font-size:1.1rem;width:24px;text-align:center}.game-shop-fab{position:fixed;top:56px;left:12px;z-index:100;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#0f0f1abf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#eee;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:transform .15s}.game-shop-fab:active{transform:scale(.92)}.onboarding{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:1.5rem;text-align:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#0a0a1a,#1a0a2e,#0a1a2e);background-size:200% 200%;animation:gradientShift 8s ease infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.onboarding-progress{display:flex;gap:.5rem;position:absolute;top:1.25rem;left:50%;transform:translate(-50%)}.progress-dot{width:10px;height:10px;border-radius:50%;background:var(--color-text-muted);opacity:.3;transition:opacity .3s,background-color .3s,transform .3s}.progress-dot--active{background:var(--color-primary);opacity:1;transform:scale(1.3)}.progress-dot--done{background:var(--color-primary);opacity:.6}.onboarding-step{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:420px;width:100%}.onboarding-step.slide-forward{animation:slideInRight .3s ease}.onboarding-step.slide-back{animation:slideInLeft .3s ease}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion: reduce){.onboarding-step.slide-forward,.onboarding-step.slide-back{animation:fadeInSimple .15s ease}@keyframes fadeInSimple{0%{opacity:0}to{opacity:1}}.progress-dot{transition:none}}.onboarding:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(2px 2px at 20% 30%,rgba(255,215,0,.6),transparent),radial-gradient(2px 2px at 80% 20%,rgba(79,195,247,.6),transparent),radial-gradient(2px 2px at 40% 70%,rgba(233,69,96,.5),transparent),radial-gradient(2px 2px at 70% 60%,rgba(255,215,0,.4),transparent),radial-gradient(1.5px 1.5px at 10% 80%,rgba(79,195,247,.5),transparent),radial-gradient(1.5px 1.5px at 90% 50%,rgba(233,69,96,.4),transparent),radial-gradient(2px 2px at 55% 15%,rgba(255,215,0,.5),transparent),radial-gradient(1.5px 1.5px at 30% 45%,rgba(79,195,247,.4),transparent);animation:sparkleFloat 6s ease-in-out infinite;pointer-events:none;z-index:0}@keyframes sparkleFloat{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-15px) scale(1.05);opacity:1}}.onboarding>*{position:relative;z-index:1}.onboarding-heroes{display:flex;justify-content:center;gap:.5rem;margin-bottom:.5rem}.onboarding-hero-img{width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4));animation:heroFloat 3s ease-in-out infinite}.onboarding-hero-img:nth-child(2){animation-delay:-.5s}.onboarding-hero-img:nth-child(3){animation-delay:-1s}.onboarding-hero-img:nth-child(4){animation-delay:-1.5s}.onboarding-hero-img:nth-child(5){animation-delay:-2s}@keyframes heroFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.onboarding-logo{font-size:3rem;font-weight:900;letter-spacing:.04em;background:linear-gradient(135deg,#e94560,gold,#4fc3f7);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s ease infinite;text-shadow:none}.onboarding h1{font-size:1.75rem;letter-spacing:.02em}.onboarding h2{font-size:1.4rem}.onboarding-subtitle{color:var(--color-text-muted);font-size:.95rem;line-height:1.4}.onboarding-input{width:100%;padding:.875rem 1rem;font-size:1.1rem;border:2px solid var(--color-text-muted);border-radius:12px;background:var(--color-surface);color:var(--color-text);outline:none;transition:border-color .15s}.onboarding-input:focus{border-color:var(--color-glow-blue);box-shadow:0 0 0 3px #4fc3f726}.onboarding-hint{color:var(--color-text-muted);font-size:.8rem}.onboarding-actions{display:flex;gap:.75rem;width:100%;margin-top:.5rem}.onboarding-error{color:#ef4444;font-size:.875rem}.grade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;width:100%}.grade-card:last-child:nth-child(3n+1){grid-column:2}.grade-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;border:2px solid transparent;border-radius:12px;background:var(--color-surface);color:var(--color-text);cursor:pointer;min-height:48px;transition:border-color .15s,transform .1s}.grade-card:hover{border-color:var(--color-text-muted)}.grade-card--selected{border-color:var(--color-primary);background:#e945601a}.grade-card-label{font-size:1.25rem;font-weight:700}.grade-card-desc{font-size:.7rem;color:var(--color-text-muted)}.character-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;width:100%}.character-card{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.75rem .5rem;border:2px solid transparent;border-radius:12px;background:var(--color-surface);color:var(--color-text);cursor:pointer;min-height:48px;transition:border-color .15s,transform .1s}.character-card:hover{border-color:var(--color-text-muted)}.character-card--selected{border-color:var(--color-primary);background:#e9456014}.character-card-name{font-size:.85rem;font-weight:600}.character-card-theme{font-size:.65rem;color:var(--color-text-muted)}.onboarding-import-link{background:none;border:none;color:var(--color-text-muted);font-size:.85rem;cursor:pointer;text-decoration:underline;padding:.5rem;min-height:48px;display:flex;align-items:center}.onboarding-import-link:hover{color:var(--color-text)}.onboarding-import-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.onboarding-import-modal{background:var(--color-surface);border-radius:16px;padding:1.5rem;max-width:380px;width:100%;display:flex;flex-direction:column;gap:.75rem;text-align:center;animation:slideInRight .2s ease}.btn-primary{flex:1;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:12px;cursor:pointer;min-height:48px;transition:opacity .15s}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-primary.btn-lg{padding:1rem 2rem;font-size:1.15rem}.btn-secondary{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;color:var(--color-text-muted);background:var(--color-surface);border:2px solid var(--color-text-muted);border-radius:12px;cursor:pointer;min-height:48px;transition:border-color .15s}.btn-secondary:hover{border-color:var(--color-text);color:var(--color-text)}.home-page{min-height:100dvh;width:100%;position:relative;overflow-x:hidden}.overworld-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:url(/assets/backgrounds/overworld-map.png) center / cover no-repeat;z-index:0}.overworld-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,#00000026,#00000059)}.home-loading{position:relative;z-index:1;color:var(--color-text-muted);text-align:center;padding:4rem 2rem;animation:pulse 1.5s ease-in-out infinite}.world-path{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:80px 20px 40px;gap:40px;min-height:100dvh}.path-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.world-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;width:160px;padding:0;background:none;border:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .2s}.world-node:active:not(:disabled){transform:scale(.95)}.world-node.left{align-self:flex-start;margin-left:8%}.world-node.right{align-self:flex-end;margin-right:8%}.world-node-img-wrap{position:relative;width:140px;height:100px;border-radius:16px;overflow:hidden;border:3px solid rgba(255,255,255,.15);box-shadow:0 4px 20px #00000080;transition:border-color .2s,box-shadow .2s}.world-node-img{width:100%;height:100%;object-fit:cover;display:block}.world-node-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;font-size:1.6rem}.world-node.current .world-node-img-wrap{border-color:var(--color-glow-blue);box-shadow:0 0 12px #4fc3f766,0 4px 20px #00000080}.world-node.completed .world-node-img-wrap{border-color:#4caf50}.world-node.locked{opacity:.5;cursor:not-allowed}.world-node-name{font-size:.85rem;font-weight:700;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.8);text-align:center;line-height:1.2}.world-node-progress{width:100px;height:4px;background:#ffffff26;border-radius:2px;overflow:hidden}.world-node-progress-fill{height:100%;background:#4caf50;border-radius:2px;transition:width .3s}.world-player-sprite{position:absolute;top:-28px;right:-16px;width:48px;height:48px;border-radius:50%;border:2px solid var(--color-glow-blue);background:#0f0f1ab3;object-fit:cover;object-position:center 20%;animation:playerBounce 2s ease-in-out infinite;z-index:2;pointer-events:none}@keyframes playerBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.world-tooltip{position:absolute;top:-52px;left:50%;transform:translate(-50%);background:#00bcd4e6;color:#fff;font-size:.8rem;font-weight:700;padding:6px 14px;border-radius:16px;white-space:nowrap;z-index:10;animation:tooltipBob 2s ease-in-out infinite;cursor:pointer;box-shadow:0 2px 12px #00bcd466}.world-tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,188,212,.9)}@keyframes tooltipBob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-4px)}}.level-map-page{min-height:100dvh;width:100%;position:relative;overflow-x:hidden;scrollbar-width:none;overscroll-behavior:none}.level-map-page::-webkit-scrollbar{display:none}.lm-bg{position:fixed;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;z-index:0}.lm-bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 40%,#0003,#00000073,#000000b3);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.level-map-page:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1.5px 1.5px at 15% 25%,rgba(255,215,0,.5),transparent),radial-gradient(2px 2px at 40% 70%,rgba(79,195,247,.45),transparent),radial-gradient(1px 1px at 70% 20%,rgba(255,215,0,.4),transparent),radial-gradient(1.5px 1.5px at 85% 60%,rgba(79,195,247,.4),transparent),radial-gradient(2px 2px at 55% 15%,rgba(255,215,0,.5),transparent),radial-gradient(1.5px 1.5px at 30% 50%,rgba(79,195,247,.35),transparent),radial-gradient(1px 1px at 60% 85%,rgba(255,215,0,.4),transparent),radial-gradient(1.5px 1.5px at 10% 80%,rgba(79,195,247,.3),transparent);animation:lmSparkleFloat 6s ease-in-out infinite;pointer-events:none;z-index:1}.lm-loading{position:relative;z-index:2;color:var(--color-text-muted);text-align:center;padding:4rem 2rem;animation:lmPulse 1.5s ease-in-out infinite}.lm-back-btn{position:fixed;top:108px;left:12px;z-index:101;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#0f0f1abf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#eee;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;transition:transform .15s}.lm-back-btn:active{transform:scale(.92)}.lm-banner{position:relative;z-index:2;margin:72px auto 0;padding:10px 28px;width:fit-content;border-radius:12px;border:2px solid rgba(255,255,255,.15);box-shadow:0 4px 16px #0006}.lm-banner-text{font-size:1.2rem;font-weight:800;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.6);letter-spacing:.02em}.lm-path{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;padding:24px 20px 100px;gap:0}.lm-path-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.lm-row{display:flex;flex-direction:column;align-items:center;position:relative;opacity:0;transform:translateY(20px) scale(.9);animation:lmNodeEnter .4s ease-out forwards}.lm-row-inner{display:flex;align-items:center;gap:12px}.lm-row-inner.left{transform:translate(-40px)}.lm-row-inner.right{transform:translate(40px)}.lm-node-group{position:relative;display:flex;align-items:center;gap:8px}.lm-branch-fork{display:flex;align-items:center;gap:6px}.lm-branch-connector{width:24px;height:6px;background:#444;border-radius:3px}.lm-node{width:84px;height:84px;border-radius:50%;border:3px solid #334;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.1),transparent 50%),radial-gradient(circle at 50% 50%,#1a1a2ee6,#0f0f1e);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative;-webkit-tap-highlight-color:transparent;overflow:visible;box-shadow:inset 0 -4px 8px #0006,inset 0 2px 4px #ffffff0d,0 4px 12px #0000004d}.lm-node:active:not(:disabled){transform:scale(.92)}.lm-node.locked{cursor:not-allowed;border-color:#3a3a52;filter:grayscale(.5) brightness(.85);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.06),transparent 50%),radial-gradient(circle at 50% 50%,#23233af2,#16162a);box-shadow:inset 0 -4px 8px #0006,0 2px 6px #00000040}.lm-node.unlocked{border-color:#4fc3f7;background:radial-gradient(circle at 35% 30%,rgba(79,195,247,.15),transparent 50%),radial-gradient(circle at 50% 50%,#1a2342e6,#0f1428);animation:lmNodeGlow 2s ease-in-out infinite}.lm-node.unlocked .lm-node-label{color:#fff;text-shadow:0 0 8px rgba(79,195,247,.6)}.lm-node.completed{border-color:#4caf50;background:radial-gradient(circle at 35% 30%,rgba(76,175,80,.15),transparent 50%),radial-gradient(circle at 50% 50%,#1a321ee6,#0f1e12);box-shadow:inset 0 0 12px #4caf5040,inset 0 -4px 8px #0000004d,0 4px 12px #0000004d}.lm-node.completed .lm-node-label{filter:drop-shadow(0 0 6px rgba(255,215,0,.6))}.lm-node.boss{width:100px;height:100px;border-width:4px}.lm-node.boss.unlocked{border-color:gold;animation:lmBossGlow 1.5s ease-in-out infinite}.lm-node.boss.completed{border-color:gold;background:radial-gradient(circle at 35% 30%,rgba(255,215,0,.12),transparent 50%),radial-gradient(circle at 50% 50%,#322d14e6,#1e1b0c);box-shadow:inset 0 0 12px #ffd70026,inset 0 -4px 8px #0000004d,0 4px 12px #0000004d}.lm-node.branch{width:68px;height:68px;border-style:dashed}.lm-boss-sprite{width:56px;height:56px;object-fit:contain;border-radius:50%}.lm-node-label{font-size:1.5rem;font-weight:800;color:#eee;line-height:1}.lm-node.locked .lm-node-label{font-size:1.1rem}.lm-node-tag{position:absolute;bottom:-8px;font-size:.5rem;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;background:#4fc3f7;color:#0a0a1a;white-space:nowrap}.lm-node-tag.boss-tag{background:gold;color:#1a1a00}.lm-node-reward{position:absolute;top:-12px;font-size:.55rem;font-weight:700;color:gold;white-space:nowrap;padding:2px 8px;border-radius:10px;background:#ffd7001f;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,215,0,.2);text-shadow:0 1px 4px rgba(0,0,0,.8)}.lm-enemy-preview{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6));opacity:.85;animation:lmEnemyBob 2.5s ease-in-out infinite}.lm-progress-pill{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:10px;padding:8px 16px;background:#0f0f1acc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px}.lm-progress-text{font-size:.8rem;font-weight:700;color:#eee;white-space:nowrap}.lm-progress-bar{width:80px;height:6px;background:#ffffff26;border-radius:3px;overflow:hidden}.lm-progress-bar-fill{height:100%;background:linear-gradient(90deg,#43a047,#66bb6a,#81c784);border-radius:3px;transition:width .3s;box-shadow:0 0 8px #4caf5080}@keyframes lmNodeGlow{0%,to{box-shadow:0 0 8px #4fc3f74d,inset 0 -4px 8px #0006,inset 0 2px 4px #ffffff0d}50%{box-shadow:0 0 22px #4fc3f78c,0 0 40px #4fc3f726,inset 0 -4px 8px #0006,inset 0 2px 4px #ffffff0d}}@keyframes lmBossGlow{0%,to{box-shadow:0 0 10px #ffd7004d,inset 0 -4px 8px #0006}50%{box-shadow:0 0 28px #ffd7008c,0 0 48px #ffd70026,inset 0 -4px 8px #0006}}@keyframes lmPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes lmSparkleFloat{0%,to{transform:translateY(0) scale(1);opacity:.6}50%{transform:translateY(-12px) scale(1.04);opacity:1}}@keyframes lmNodeEnter{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes lmEnemyBob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes lmMarchingAnts{to{stroke-dashoffset:-20}}.lm-path-connector-next{animation:lmMarchingAnts .8s linear infinite}.shop-page{padding-bottom:1rem}.shop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.shop-header h2{margin:0}.shop-balance{display:flex;align-items:center;gap:.375rem;font-size:1.1rem;font-weight:700;background:linear-gradient(135deg,#1e1e38,var(--color-surface));padding:.375rem .75rem;border-radius:20px;border:1px solid var(--color-card-border);color:var(--color-glow-gold)}.shop-balance .token-icon{font-size:1.15rem}.shop-balance .token-count{min-width:2ch;text-align:right}.shop-loading{text-align:center;color:var(--color-text-muted);padding:3rem 0}.shop-feedback{padding:.625rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;font-weight:600;text-align:center;animation:shopFeedbackIn .25s ease}.shop-feedback.success{background:#16c79a26;color:#16c79a;border:1px solid rgba(22,199,154,.3)}.shop-feedback.error{background:#e9456026;color:#e94560;border:1px solid rgba(233,69,96,.3)}@keyframes shopFeedbackIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.shop-items{display:flex;flex-direction:column;gap:.75rem}.shop-card{background:linear-gradient(180deg,#1e1e38,var(--color-surface));border-radius:12px;padding:.875rem;border:1px solid var(--color-card-border);border-bottom:3px solid #16162a;transition:border-color .15s,box-shadow .15s}.shop-card:not(.maxed):hover{border-color:#e945604d;box-shadow:0 2px 12px #e9456014}.shop-card.maxed{opacity:.5;border-bottom-width:1px}.shop-card-top{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.shop-item-icon{font-size:1.75rem;flex-shrink:0;width:2.75rem;height:2.75rem;text-align:center;line-height:2.75rem;background:#ffffff0a;border-radius:10px;border:1px solid var(--color-card-border)}.shop-item-info{flex:1;min-width:0}.shop-item-name{font-weight:700;font-size:.95rem;margin-bottom:.2rem}.shop-item-desc{font-size:.8rem;color:var(--color-text-muted);line-height:1.3}.shop-item-owned{font-size:.85rem;font-weight:600;color:var(--color-text-muted);flex-shrink:0;background:#ffffff0f;padding:.2rem .5rem;border-radius:6px}.shop-card-bottom{display:flex;align-items:center;gap:.75rem}.shop-cost{display:flex;align-items:center;gap:.25rem;font-weight:700;font-size:.9rem;flex-shrink:0}.cost-icon{font-size:.85rem}.shop-qty-selector{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.qty-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--color-card-border);background:#1a1a3e;color:var(--color-text);font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;min-height:44px;min-width:44px;-webkit-tap-highlight-color:transparent}.qty-btn:not(:disabled):active{background:#2a2a5e}.qty-btn:disabled{opacity:.3;cursor:not-allowed}.qty-value{font-weight:700;font-size:.95rem;min-width:1.5ch;text-align:center}.shop-buy-btn{margin-left:auto;padding:.5rem 1rem;border-radius:10px;border:2px solid var(--color-primary);border-bottom:4px solid #b8233e;background:linear-gradient(180deg,#e94560,#d63a54);color:#fff;font-weight:700;font-size:.85rem;cursor:pointer;transition:all .15s;white-space:nowrap;min-height:44px;-webkit-tap-highlight-color:transparent}.shop-buy-btn:not(:disabled):hover{box-shadow:0 0 12px #e945604d}.shop-buy-btn:not(:disabled):active{transform:translateY(2px);border-bottom-width:2px;background:linear-gradient(180deg,#d63a54,#c03048)}.shop-buy-btn:disabled{opacity:.35;cursor:not-allowed;border-bottom-width:2px}.shop-buy-btn.buying{animation:shopPulse .8s ease infinite}@keyframes shopPulse{0%,to{opacity:.6}50%{opacity:1}}.shop-maxed-label{font-weight:800;font-size:.8rem;color:#4caf50;letter-spacing:.15em;text-align:center;width:100%;padding:.3rem 0;background:#4caf5014;border-radius:6px;border:1px solid rgba(76,175,80,.2)}.settings-page{display:flex;flex-direction:column;gap:1.5rem}.settings-section{display:flex;flex-direction:column;gap:.5rem;background:var(--color-surface);padding:1rem;border-radius:12px}.settings-section h3{font-size:1.1rem;margin-bottom:.25rem}.settings-section h4{font-size:.95rem;margin-top:.5rem}.settings-label{font-size:.85rem;color:var(--color-text-muted);margin-top:.25rem}.settings-input{padding:.625rem .75rem;font-size:.95rem;border:2px solid var(--color-text-muted);border-radius:8px;background:var(--color-bg);color:var(--color-text);outline:none;transition:border-color .15s}.settings-input:focus{border-color:var(--color-primary)}.settings-select{padding:.625rem .75rem;font-size:.95rem;border:2px solid var(--color-text-muted);border-radius:8px;background:var(--color-bg);color:var(--color-text);outline:none;cursor:pointer}.settings-select:focus{border-color:var(--color-primary)}.settings-hint{font-size:.8rem;color:var(--color-text-muted);line-height:1.4}.settings-warning{font-size:.8rem;color:#f5a623;line-height:1.4}.settings-error{font-size:.8rem;color:#ef4444}.settings-success{font-size:.8rem;color:#16c79a}.settings-character-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.settings-character-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.625rem .375rem;border:2px solid transparent;border-radius:12px;background:var(--color-bg);color:var(--color-text);cursor:pointer;min-height:48px;position:relative;transition:border-color .15s}.settings-character-card:hover{border-color:var(--color-text-muted)}.settings-character-card--selected{border-color:var(--color-primary);background:#e9456014}.settings-character-name{font-size:.75rem;font-weight:600}.settings-character-check{position:absolute;top:4px;right:6px;font-size:.75rem;color:var(--color-primary)}.settings-id-display{display:flex;align-items:center;gap:.5rem}.settings-id-code{flex:1;padding:.5rem .625rem;font-size:.75rem;background:var(--color-bg);border-radius:6px;word-break:break-all;font-family:monospace}.btn-small{padding:.375rem .75rem;font-size:.8rem;font-weight:600;color:var(--color-primary);background:transparent;border:2px solid var(--color-primary);border-radius:8px;cursor:pointer;min-height:36px;white-space:nowrap;transition:background .15s}.btn-small:hover{background:#e945601a}.settings-qr{display:flex;justify-content:center;padding:.75rem;background:var(--color-surface);border-radius:8px}.settings-import-row{display:flex;gap:.5rem}.settings-import-row .settings-input{flex:1}.settings-import-row .btn-primary{flex:0;white-space:nowrap;padding:.625rem 1rem}.settings-scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.settings-scanner-modal{background:var(--color-surface);border-radius:16px;padding:1.5rem;max-width:380px;width:100%;display:flex;flex-direction:column;gap:1rem;text-align:center}.settings-scanner-area{width:100%;min-height:250px;border-radius:8px;overflow:hidden}.settings-reset-confirm{display:flex;flex-direction:column;gap:.5rem}.settings-reset-actions{display:flex;gap:.5rem}.btn-danger-outline{padding:.625rem 1rem;font-size:.9rem;font-weight:600;color:#ef4444;background:transparent;border:2px solid #ef4444;border-radius:8px;cursor:pointer;min-height:48px;transition:background .15s}.btn-danger-outline:hover{background:#ef44441a}.btn-danger{flex:1;padding:.625rem 1rem;font-size:.9rem;font-weight:600;color:#fff;background:#ef4444;border:none;border-radius:8px;cursor:pointer;min-height:48px;transition:opacity .15s}.btn-danger:hover{opacity:.9}.dev-problems{display:flex;flex-direction:column;gap:1rem;padding:1rem;max-width:600px;margin:0 auto;width:100%}.dev-header h2{margin-bottom:.25rem}.dev-hint{font-size:.8rem;color:var(--color-text-muted)}.dev-controls{display:flex;flex-direction:column;gap:.75rem;background:var(--color-surface);padding:1rem;border-radius:12px}.dev-control-row{display:flex;gap:.75rem}.dev-control-row label{flex:1;display:flex;flex-direction:column;gap:.25rem}.dev-control-row label span{font-size:.8rem;color:var(--color-text-muted)}.dev-control-row select,.dev-control-row input[type=range]{width:100%}.dev-control-row select{padding:.5rem;font-size:.9rem;border:2px solid var(--color-text-muted);border-radius:8px;background:var(--color-bg);color:var(--color-text);outline:none}.dev-control-row select:focus{border-color:var(--color-primary)}.dev-control-row input[type=range]{accent-color:var(--color-primary)}.dev-error{font-size:.85rem;color:#ef4444;padding:.5rem}.dev-problem-card{display:flex;flex-direction:column;gap:.75rem;background:var(--color-surface);padding:1.25rem;border-radius:12px}.dev-question{font-size:1.25rem;text-align:center;padding:.5rem}.dev-choices{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.dev-choice{padding:.75rem;font-size:1.1rem;font-weight:600;background:var(--color-bg);color:var(--color-text);border:2px solid var(--color-text-muted);border-radius:10px;cursor:pointer;min-height:48px;transition:border-color .15s,background .15s}.dev-choice:hover:not(:disabled){border-color:var(--color-primary)}.dev-choice:disabled{cursor:default;opacity:.7}.dev-choice.correct{border-color:#16c79a;background:#16c79a26}.dev-choice.incorrect{border-color:#ef4444;background:#ef444426}.dev-free-input{display:flex;gap:.5rem}.dev-free-input input{flex:1;padding:.625rem .75rem;font-size:1rem;border:2px solid var(--color-text-muted);border-radius:8px;background:var(--color-bg);color:var(--color-text);outline:none}.dev-free-input input:focus{border-color:var(--color-primary)}.dev-free-input .btn-primary{flex:0;white-space:nowrap;padding:.625rem 1.25rem}.dev-result{text-align:center;font-size:1.1rem;font-weight:700;padding:.5rem;border-radius:8px}.dev-result.correct{color:#16c79a;background:#16c79a1a}.dev-result.incorrect{color:#ef4444;background:#ef44441a}.dev-show-answer{background:none;border:none;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;text-decoration:underline;padding:.25rem;align-self:center}.dev-metadata{display:flex;flex-direction:column;gap:.375rem;padding:.75rem;background:var(--color-bg);border-radius:8px;font-size:.8rem}.dev-meta-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.dev-meta-row span:first-child{color:var(--color-text-muted)}.dev-meta-row code{font-family:monospace;font-size:.75rem;word-break:break-all;max-width:60%;text-align:right}.battle-page{display:flex;flex-direction:column;align-items:center;height:100dvh;background-color:#0a0a1a;background-size:cover;background-position:center;background-repeat:no-repeat;padding:0;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;position:relative}.battle-page:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 0%,transparent 30%,rgba(10,10,26,.5) 50%,rgba(10,10,26,.85) 70%,rgba(10,10,26,.95) 100%);pointer-events:none;z-index:0}.battle-page>*{position:relative;z-index:1}.battle-arena-zone{display:flex;flex-direction:column;align-items:center;width:100%;flex-shrink:0}.battle-controls-zone{display:flex;flex-direction:column;align-items:center;width:100%;flex:1;min-height:0;background:#0a0a1abf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px 20px 0 0;margin-top:-12px;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.08);overflow-y:auto}.battle-loading{display:flex;align-items:center;justify-content:center;min-height:100dvh;font-size:1.2rem;color:#999;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.battle-flee-row{width:100%;max-width:600px;display:flex;justify-content:space-between;align-items:center;padding:.35rem 1rem 0;min-height:36px}.flee-btn{padding:.35rem .85rem;font-size:.8rem;font-weight:600;color:#ffffffd9;background:#1e1e3c99;border:1px solid rgba(255,255,255,.25);border-radius:8px;cursor:pointer;height:36px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:color .15s,border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}.flee-btn:hover{color:#fff;border-color:#fff6;background:#282850b3}.flee-confirm{display:flex;align-items:center;gap:.5rem;background:#0a0a1ab3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:0 .75rem;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.15)}.flee-confirm-text{font-size:.8rem;font-weight:600;color:#ffc107}.flee-confirm-yes,.flee-confirm-no{padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:6px;cursor:pointer;min-height:32px;-webkit-tap-highlight-color:transparent}.flee-confirm-yes{color:#ff6b6b;background:#ef444426;border:1px solid #ef4444}.flee-confirm-yes:hover{background:#ef444440}.flee-confirm-no{color:#4fc3f7;background:#4fc3f726;border:1px solid #4fc3f7}.flee-confirm-no:hover{background:#4fc3f740}.battle-hud{width:100%;max-width:600px;display:flex;flex-direction:column;gap:.35rem;padding:.4rem 1rem;background:#0a0a1a80;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;margin:.15rem 1rem;border:1px solid rgba(255,255,255,.06)}.hp-row{display:flex;gap:1rem}.hp-section{flex:1;display:flex;flex-direction:column;gap:.25rem}.hp-label{font-size:.75rem;font-weight:600;color:#ccc;text-transform:uppercase;letter-spacing:.05em}.hp-bar-container{height:16px;background:#222244b3;border-radius:8px;overflow:hidden;border:1px solid #333366;box-shadow:inset 0 2px 4px #0006}.hp-bar-fill{height:100%;border-radius:8px;transition:width .4s ease}.hp-bar-fill.player{background:linear-gradient(90deg,#4caf50,#66bb6a);box-shadow:0 0 8px #4caf5066}.hp-bar-fill.enemy{background:linear-gradient(90deg,#e94560,#ff6b6b);box-shadow:0 0 8px #e9456066}.hp-text{font-size:.7rem;color:#999;text-align:right}.battle-status-indicators{display:flex;align-items:center;gap:.5rem}.status-badge{font-size:.65rem;font-weight:700;padding:.15rem .5rem;border-radius:10px;text-transform:uppercase}.status-badge.shield{background:#1565c055;color:#4fc3f7;border:1px solid #4fc3f7}.status-badge.power{background:#e6560055;color:#ff9800;border:1px solid #ff9800}.enemy-progress{display:flex;gap:.35rem}.enemy-dot{width:14px;height:14px;border-radius:50%;background:#e94560;border:2px solid #ff6b6b;transition:all .3s}.enemy-dot.defeated{background:#333;border-color:#555;opacity:.5}.enemy-dot.current{box-shadow:0 0 10px #e94560,0 0 20px #e945604d;transform:scale(1.3);animation:enemyDotPulse 1.2s ease-in-out infinite}@keyframes enemyDotPulse{0%,to{box-shadow:0 0 6px #e94560}50%{box-shadow:0 0 14px #e94560,0 0 24px #e9456066}}.battle-canvas{width:100%;max-width:600px;display:flex;justify-content:center;min-height:220px;flex-shrink:0}.battle-canvas canvas{max-width:100%}.battle-meters{display:flex;align-items:center;gap:.75rem;width:100%}.streak-display{display:flex;flex-direction:column;align-items:center;min-width:50px}.streak-label{font-size:.65rem;color:#888;text-transform:uppercase}.streak-value{font-size:1.2rem;font-weight:800;color:#4fc3f7;transition:all .2s}.streak-value.hot{color:gold;text-shadow:0 0 10px #ffd70088;animation:streakPulse .5s ease}@keyframes streakPulse{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.special-section{flex:1;display:flex;align-items:center;gap:.5rem}.special-bar-container{flex:1;height:10px;background:#222244b3;border-radius:5px;overflow:hidden;border:1px solid #333366}.special-bar-fill{height:100%;background:linear-gradient(90deg,#7c4dff,#b388ff);border-radius:5px;transition:width .3s ease}.special-bar-fill.ready{background:linear-gradient(90deg,gold,#ffab00);animation:specialGlow 1s ease-in-out infinite}@keyframes specialGlow{0%,to{box-shadow:0 0 4px gold}50%{box-shadow:0 0 12px gold}}.special-label{font-size:.75rem;font-weight:700;text-transform:uppercase;color:#888;min-width:50px;text-align:center}.special-label.ready{color:gold;animation:specialLabelGlow 1.5s ease-in-out infinite}@keyframes specialLabelGlow{0%,to{text-shadow:0 0 4px #ffd70044}50%{text-shadow:0 0 12px #ffd70088}}.battle-feedback{font-size:.85rem;color:#4fc3f7;padding:.25rem .75rem;animation:fadeInOut 2s ease}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-5px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1}to{opacity:0}}.problem-area{width:100%;max-width:600px;padding:.25rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}.problem-text{font-size:1.2rem;font-weight:700;text-align:center;color:#fff;padding:.25rem}.hint-text{font-size:.8rem;color:gold;background:#3204;padding:.3rem .75rem;border-radius:8px;border:1px solid #ffd70044}.choices-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;width:100%;max-width:360px}.choice-btn{padding:.75rem;font-size:1.2rem;font-weight:700;border:2px solid rgba(51,51,68,.8);border-bottom:4px solid rgba(34,34,34,.8);border-radius:12px;background:#1a1a3eb3;color:#eee;cursor:pointer;transition:all .15s;min-height:52px;-webkit-tap-highlight-color:transparent}.choice-btn:active:not(:disabled){transform:translateY(2px);border-bottom-width:2px;background:#2a2a5ecc;border-color:#4fc3f7}.choice-btn.eliminated{background:#1a0a0ab3;border-color:#422;color:#644;cursor:not-allowed}.choice-btn.eliminated s{color:#644}.choice-btn:disabled{cursor:not-allowed}.free-input-area{width:100%;max-width:300px;display:flex;flex-direction:column;align-items:center;gap:.35rem}.input-display{width:100%;padding:.4rem;font-size:1.3rem;font-weight:700;text-align:center;background:#1a1a3eb3;border:2px solid rgba(51,51,68,.8);border-radius:10px;color:#eee;min-height:38px}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;width:100%}.numpad-btn{padding:.4rem;font-size:1.1rem;font-weight:600;border:1px solid rgba(51,51,68,.8);border-radius:10px;background:#1a1a3eb3;color:#eee;cursor:pointer;transition:background .1s;min-height:40px;-webkit-tap-highlight-color:transparent}.numpad-btn:active{background:#2a2a5ecc}.numpad-btn.del{color:#e94560}.eliminated-list{font-size:.8rem;color:#644;display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}.eliminated-answer{color:#644}.submit-btn{width:100%;padding:.5rem;font-size:1rem;font-weight:700;border:2px solid #4fc3f7;border-radius:10px;background:#1a1a3eb3;color:#4fc3f7;cursor:pointer;transition:all .15s;min-height:40px}.submit-btn:active:not(:disabled){background:#2a2a5ecc;transform:scale(.97)}.submit-btn:disabled{opacity:.4;cursor:not-allowed}.item-bar{display:flex;gap:.4rem;padding:.4rem 1rem;width:100%;max-width:600px;justify-content:center;margin-top:auto}.item-btn{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .5rem;border:2px solid rgba(51,51,68,.8);border-bottom:3px solid rgba(34,34,34,.6);border-radius:12px;background:#1a1a3eb3;cursor:pointer;transition:all .15s;min-width:52px;min-height:52px;-webkit-tap-highlight-color:transparent}.item-btn:active:not(:disabled){background:#2a2a5ecc;transform:scale(.95)}.item-btn:disabled{opacity:.3;cursor:not-allowed}.item-icon{font-size:1.3rem}.item-qty{font-size:.75rem;color:#bbb;font-weight:700}.battle-end-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;min-height:100dvh;padding:2rem;text-align:center;z-index:1}.battle-end-card{background:#0a0a23d9;border:2px solid rgba(255,255,255,.1);border-radius:20px;padding:2.5rem 2rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1.25rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 32px #00000080,inset 0 1px #ffffff14;min-width:280px;max-width:360px;width:100%;position:relative;z-index:1;animation:cardFadeIn .4s ease both}.battle-end-screen.victory .battle-end-card{border-color:#ffd70040;box-shadow:0 8px 32px #00000080,0 0 40px #ffd70014,inset 0 1px #ffd70026}.battle-end-screen.defeat .battle-end-card{border-color:#e9456040;box-shadow:0 8px 32px #00000080,inset 0 1px #e945601a}@keyframes cardFadeIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.battle-end-screen h2{font-size:3rem;font-weight:900;letter-spacing:.02em}.battle-end-screen.victory h2{color:gold;text-shadow:0 0 20px #ffd70088;animation:victoryBounce .6s ease}@keyframes victoryBounce{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.15)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.battle-end-screen.defeat h2{color:#e94560;text-shadow:0 0 20px #e9456088}.tokens-earned{font-size:1.5rem;font-weight:700;color:gold;animation:tokensFadeUp .5s ease .3s both}@keyframes tokensFadeUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.battle-end-screen.victory:before,.battle-end-screen.victory:after{content:"";position:fixed;top:-10px;width:100%;height:100%;pointer-events:none;z-index:0}.battle-end-screen.victory:before{background-image:radial-gradient(4px 4px at 10% 20%,#ffd700,transparent),radial-gradient(3px 3px at 25% 10%,#e94560,transparent),radial-gradient(4px 4px at 40% 25%,#4fc3f7,transparent),radial-gradient(3px 3px at 55% 5%,#ffd700,transparent),radial-gradient(4px 4px at 70% 15%,#4caf50,transparent),radial-gradient(3px 3px at 85% 22%,#e94560,transparent),radial-gradient(4px 4px at 15% 50%,#4fc3f7,transparent),radial-gradient(3px 3px at 90% 45%,#ffd700,transparent);animation:confettiFall 3s linear infinite}.battle-end-screen.victory:after{background-image:radial-gradient(3px 3px at 5% 15%,#4caf50,transparent),radial-gradient(4px 4px at 20% 30%,#ffd700,transparent),radial-gradient(3px 3px at 35% 8%,#e94560,transparent),radial-gradient(4px 4px at 50% 18%,#4fc3f7,transparent),radial-gradient(3px 3px at 65% 28%,#ffd700,transparent),radial-gradient(4px 4px at 80% 12%,#4caf50,transparent),radial-gradient(3px 3px at 95% 35%,#e94560,transparent),radial-gradient(4px 4px at 45% 40%,#4fc3f7,transparent);animation:confettiFall 3s linear 1.5s infinite}@keyframes confettiFall{0%{transform:translateY(-10%) rotate(0);opacity:1}to{transform:translateY(110%) rotate(720deg);opacity:.3}}.defeat-message{font-size:1.1rem;color:#999}.battle-stats{display:flex;flex-direction:column;gap:.5rem;color:#bbb;font-size:.95rem}.battle-btn{padding:.75rem 2rem;font-size:1rem;font-weight:600;border:2px solid #334;border-radius:12px;background:#1a1a3eb3;color:#eee;cursor:pointer;min-width:180px;min-height:48px;transition:all .15s}.battle-btn.primary{border-color:#4fc3f7;color:#4fc3f7}.battle-btn:active{transform:scale(.97);background:#2a2a5ecc}.skip-problem-btn{padding:.3rem 1rem;font-size:.75rem;font-weight:600;color:#e94560;background:#e9456014;border:1px solid rgba(233,69,96,.3);border-radius:8px;cursor:pointer;transition:all .15s;min-height:30px;-webkit-tap-highlight-color:transparent}.skip-problem-btn:active:not(:disabled){background:#e945602e;transform:scale(.97)}.skip-problem-btn:disabled{opacity:.35;cursor:not-allowed}.choice-btn.correct-highlight{border-color:#4caf50!important;background:#4caf5040!important;color:#4caf50!important;box-shadow:0 0 12px #4caf5080;animation:correctPulse .5s ease}@keyframes correctPulse{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}.choice-btn.wrong-highlight{border-color:#e94560!important;background:#e9456033!important;color:#e94560!important}.correct-answer-reveal{font-size:1.1rem;font-weight:700;color:#4caf50;background:#4caf501f;border:1px solid rgba(76,175,80,.35);border-radius:8px;padding:.5rem 1rem;text-align:center;animation:correctPulse .5s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100dvh;line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}:root{--color-bg: #0f0f1a;--color-surface: #1a1a2e;--color-primary: #e94560;--color-text: #eee;--color-text-muted: #999;--color-card-border: #2a2a44;--color-glow-blue: #4fc3f7;--color-glow-gold: #ffd700;--font-family: system-ui, -apple-system, sans-serif}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text)}#root{min-height:100dvh;display:flex;flex-direction:column}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100dvh;color:var(--color-text-muted)}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-header{padding:.75rem 1rem;background:linear-gradient(180deg,#1e1e38,var(--color-surface));border-bottom:2px solid var(--color-primary)}.header-content{display:flex;align-items:center;justify-content:space-between;max-width:600px;margin:0 auto;width:100%}.header-content h1{font-size:1.25rem;letter-spacing:.05em}.header-player{display:flex;align-items:center;gap:.5rem}.header-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0}.header-name{font-size:.85rem;font-weight:600;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-tokens{display:flex;align-items:center;gap:.25rem;font-size:.9rem;font-weight:600}.token-icon{font-size:1rem}.app-main{flex:1;padding:1rem;max-width:600px;width:100%;margin:0 auto}.app-nav{display:flex;justify-content:space-around;padding:.75rem 0;background:linear-gradient(0deg,#1e1e38,var(--color-surface));border-top:2px solid var(--color-primary)}.app-nav a{color:var(--color-text-muted);text-decoration:none;font-size:.8rem;font-weight:600;padding:.375rem .75rem;border-radius:10px;min-height:48px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:color .15s,background .15s}.app-nav a.active{color:var(--color-primary);background:#e9456014}.nav-icon{font-size:1.1rem;line-height:1}.header-back-btn{background:none;border:2px solid #334;border-radius:10px;color:#eee;font-size:.85rem;font-weight:600;padding:.3rem .6rem;cursor:pointer;min-height:36px;display:flex;align-items:center;gap:4px;-webkit-tap-highlight-color:transparent;transition:all .15s}.header-back-btn:active{background:#1a1a3e;transform:scale(.95)}.page{padding:1rem 0}.page h2{margin-bottom:.5rem}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app-main>*,.game-page{animation:pageFadeIn .25s ease}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.game-page{min-height:100dvh;width:100%;position:relative}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
