:root{--background:#000;--background-elevated:#1c1c1e;--background-secondary:#2c2c2e;--background-tertiary:#3a3a3c;--foreground:#fff;--text-primary:#fff;--text-secondary:#ebebf599;--text-tertiary:#ebebf54d;--text-muted:#ebebf599;--primary:#0a84ff;--primary-hover:#409cff;--primary-soft:#0a84ff26;--accent:#5e5ce6;--success:#30d158;--success-soft:#30d15826;--warning:#ff9f0a;--error:#ff453a;--card-bg:#1c1c1e;--card-border:#ffffff14;--secondary:#2c2c2e;--heading-gradient:linear-gradient(135deg,#fff 0%,#ffffffb3 100%);--word-of-day-bg:linear-gradient(135deg,#0a84ff 0%,#5e5ce6 100%);--word-of-day-text:white;--btn-inactive-text:#ebebf599;--font-pixel:"Press Start 2P",cursive;--font-heading:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",system-ui,sans-serif;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",system-ui,sans-serif;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006,0 2px 4px #0003;--shadow-lg:0 8px 24px #00000080,0 4px 8px #0000004d;--shadow-glow:0 0 20px #0a84ff4d;--ease-out:cubic-bezier(.25,.46,.45,.94);--ease-in-out:cubic-bezier(.65,0,.35,1);--spring:cubic-bezier(.34,1.56,.64,1);--blur-sm:10px;--blur-md:20px;--blur-lg:40px}[data-theme=sakura]{--background:#faf5f7;--background-elevated:#fff;--background-secondary:#fff0f4;--foreground:#1d1d1f;--text-primary:#1d1d1f;--text-secondary:#3c3c43d9;--text-tertiary:#3c3c4399;--text-muted:#3c3c4399;--primary:#ff2d55;--primary-hover:#ff4569;--primary-soft:#ff2d551a;--accent:#ff6b8a;--card-bg:#fff;--card-border:#0000000f;--secondary:#fff0f4;--heading-gradient:linear-gradient(135deg,#ff2d55 0%,#ff6b8a 100%);--word-of-day-bg:linear-gradient(135deg,#ff2d55 0%,#ff6b8a 100%);--btn-inactive-text:#3c3c4399;--nav-bg:#ffffffe6;--nav-border:#0000001a;--nav-text:#3c3c4399;--nav-text-hover:#3c3c43e6}[data-theme=ocean]{--background:#f5f9fc;--background-elevated:#fff;--background-secondary:#e8f4fd;--foreground:#1d1d1f;--text-primary:#1d1d1f;--text-secondary:#3c3c43d9;--text-tertiary:#3c3c4399;--text-muted:#3c3c4399;--primary:#007aff;--primary-hover:#3395ff;--primary-soft:#007aff1a;--accent:#34aadc;--card-bg:#fff;--card-border:#0000000f;--secondary:#e8f4fd;--heading-gradient:linear-gradient(135deg,#007aff 0%,#34aadc 100%);--word-of-day-bg:linear-gradient(135deg,#007aff 0%,#34aadc 100%);--btn-inactive-text:#3c3c4399;--nav-bg:#ffffffe6;--nav-border:#0000001a;--nav-text:#3c3c4399;--nav-text-hover:#3c3c43e6}[data-theme=forest]{--background:#f5faf5;--background-elevated:#fff;--background-secondary:#e8f5e9;--foreground:#1d1d1f;--text-primary:#1d1d1f;--text-secondary:#3c3c43d9;--text-tertiary:#3c3c4399;--text-muted:#3c3c4399;--primary:#34c759;--primary-hover:#4cd964;--primary-soft:#34c7591a;--accent:#30d158;--card-bg:#fff;--card-border:#0000000f;--secondary:#e8f5e9;--heading-gradient:linear-gradient(135deg,#34c759 0%,#30d158 100%);--word-of-day-bg:linear-gradient(135deg,#34c759 0%,#30d158 100%);--btn-inactive-text:#3c3c4399;--nav-bg:#ffffffe6;--nav-border:#0000001a;--nav-text:#3c3c4399;--nav-text-hover:#3c3c43e6}[data-theme=pixel]{--background:#fff9c4;--background-elevated:#fffde7;--background-secondary:#fff;--foreground:#000;--text-primary:#000;--text-secondary:#333;--text-tertiary:#666;--text-muted:#333;--primary:#000;--primary-hover:#333;--accent:#fdd835;--success:#000;--card-bg:#fffde7;--card-border:#000;--secondary:#fff;--heading-gradient:linear-gradient(to right,#000,#333);--font-sans:var(--font-pixel),"Courier New",monospace;--word-of-day-bg:#000;--word-of-day-text:#fdd835;--btn-inactive-text:#000;--radius-sm:0;--radius-md:0;--radius-lg:0;--radius-xl:0}[data-theme=pixel] .btn,[data-theme=pixel] .card,[data-theme=pixel] .input,[data-theme=pixel] .auth-card,[data-theme=pixel] .bottom-nav,[data-theme=pixel] .nav-item{border-radius:0!important}[data-theme=pixel] h1{-webkit-text-fill-color:initial;color:var(--foreground);background:0 0}[data-theme=pixel] .card,[data-theme=pixel] .btn,[data-theme=pixel] .auth-card{border:2px solid #000!important;box-shadow:4px 4px #000!important}[data-theme=pixel] .btn:active{transform:translate(2px,2px);box-shadow:2px 2px #000!important}[data-theme=pixel] .bottom-nav{background:#fff9c4;border-top:2px solid #000}[data-theme=neumorphism]{--background:#e0e5ec;--background-elevated:#e0e5ec;--background-secondary:#d1d9e6;--background-tertiary:#c8d0dd;--foreground:#3d4a5c;--text-primary:#3d4a5c;--text-secondary:#3d4a5cbf;--text-tertiary:#3d4a5c80;--text-muted:#3d4a5c99;--primary:#6366f1;--primary-hover:#818cf8;--primary-soft:#6366f126;--accent:#8b5cf6;--success:#10b981;--success-soft:#10b98126;--warning:#f59e0b;--error:#ef4444;--card-bg:#e0e5ec;--card-border:transparent;--secondary:#d1d9e6;--heading-gradient:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);--word-of-day-bg:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);--word-of-day-text:white;--btn-inactive-text:#3d4a5c99;--neu-shadow-light:#fff;--neu-shadow-dark:#a3b1c6;--neu-shadow-outset:6px 6px 12px var(--neu-shadow-dark),-6px -6px 12px var(--neu-shadow-light);--neu-shadow-inset:inset 4px 4px 8px var(--neu-shadow-dark),inset -4px -4px 8px var(--neu-shadow-light);--neu-shadow-sm:3px 3px 6px var(--neu-shadow-dark),-3px -3px 6px var(--neu-shadow-light);--nav-bg:#e0e5ec;--nav-border:transparent;--nav-text:#3d4a5c99;--nav-text-hover:#3d4a5ce6;--shadow-sm:var(--neu-shadow-sm);--shadow-md:var(--neu-shadow-outset);--shadow-lg:10px 10px 20px var(--neu-shadow-dark),-10px -10px 20px var(--neu-shadow-light);--shadow-glow:0 0 20px #6366f166;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:24px}[data-theme=neumorphism] .card{background:var(--card-bg);box-shadow:var(--neu-shadow-outset)!important;border:none!important}[data-theme=neumorphism] .card:hover{box-shadow:8px 8px 16px var(--neu-shadow-dark),-8px -8px 16px var(--neu-shadow-light)!important}[data-theme=neumorphism] .btn{background:var(--background);box-shadow:var(--neu-shadow-sm);border:none!important}[data-theme=neumorphism] .btn:hover{box-shadow:var(--neu-shadow-outset)}[data-theme=neumorphism] .btn:active{transform:none;box-shadow:var(--neu-shadow-inset)!important}[data-theme=neumorphism] .btn-primary{background:var(--primary);color:#fff;box-shadow:var(--neu-shadow-sm)}[data-theme=neumorphism] .btn-primary:hover{background:var(--primary-hover);box-shadow:var(--neu-shadow-outset)}[data-theme=neumorphism] .btn-primary:active{box-shadow:inset 4px 4px 8px #0003,inset -4px -4px 8px #ffffff1a!important}[data-theme=neumorphism] .input{background:var(--background);box-shadow:var(--neu-shadow-inset)!important;border:none!important}[data-theme=neumorphism] .input:focus{box-shadow:var(--neu-shadow-inset),0 0 0 3px var(--primary-soft)!important}[data-theme=neumorphism] .auth-card{background:var(--card-bg);box-shadow:var(--neu-shadow-outset)!important;border:none!important}[data-theme=neumorphism] .bottom-nav{background:var(--background);box-shadow:0 -4px 12px var(--neu-shadow-dark);border-top:none}[data-theme=neumorphism] .nav-item{border-radius:var(--radius-md);transition:all .2s var(--ease-out)}[data-theme=neumorphism] .nav-item:hover{background:var(--background-secondary)}[data-theme=neumorphism] .nav-item.active{box-shadow:var(--neu-shadow-inset);background:var(--background)}[data-theme=neumorphism] .level-tab{background:var(--background);box-shadow:var(--neu-shadow-sm);border:none!important}[data-theme=neumorphism] .level-tab:hover{box-shadow:var(--neu-shadow-outset)}[data-theme=neumorphism] .level-tab.active{background:var(--primary);color:#fff;box-shadow:var(--neu-shadow-inset)}[data-theme=neumorphism] h1{background:var(--heading-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}[data-theme=neumorphism] .form-group input{background:var(--background);box-shadow:var(--neu-shadow-inset)!important;border:none!important}[data-theme=neumorphism] .form-group input:focus{box-shadow:var(--neu-shadow-inset),0 0 0 3px var(--primary-soft)!important}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--background);max-width:100vw;color:var(--foreground);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1,"liga" 1;overflow-x:hidden}a{color:inherit;text-decoration:none}.container{max-width:600px;padding:var(--space-md);flex-direction:column;min-height:100vh;margin:0 auto;display:flex}h1{letter-spacing:-.02em;margin-bottom:var(--space-md);background:var(--heading-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700}h2{letter-spacing:-.01em;margin-bottom:var(--space-sm);color:var(--text-primary);font-size:1.375rem;font-weight:600}h3{letter-spacing:-.01em;color:var(--text-primary);font-size:1.125rem;font-weight:600}p{color:var(--text-secondary);line-height:1.6}.btn{border-radius:var(--radius-md);transition:all .2s var(--ease-out);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-sm);border:none;padding:12px 20px;font-size:15px;font-weight:500;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-md)}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm);transition:all .3s var(--ease-out)}.card:hover{box-shadow:var(--shadow-md);border-color:#ffffff1f}.hover-card:hover{transform:translateY(-2px)}.input{background:var(--background-secondary);border:1px solid var(--card-border);border-radius:var(--radius-md);width:100%;color:var(--foreground);transition:all .2s var(--ease-out);padding:14px 16px;font-size:17px}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.input::placeholder{color:var(--text-tertiary)}.bottom-nav{background:var(--nav-bg,#1c1c1ee6);-webkit-backdrop-filter:blur(var(--blur-md));border-top:1px solid var(--nav-border,#ffffff14);padding:8px 0;padding-bottom:max(8px,env(safe-area-inset-bottom));z-index:100;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--nav-text,var(--text-tertiary));transition:color .2s var(--ease-out);border-radius:var(--radius-md);flex-direction:column;align-items:center;gap:4px;padding:8px 16px;font-size:10px;font-weight:500;display:flex}.nav-item:hover{color:var(--nav-text-hover,var(--text-secondary))}.nav-item.active{color:var(--primary)}.nav-item .icon{font-size:24px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn .4s var(--ease-out)forwards}.animate-fade-in-up{animation:fadeInUp .5s var(--ease-out)forwards}.animate-scale-in{animation:scaleIn .3s var(--spring)forwards}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.auth-container{min-height:80vh;padding:var(--space-md);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-xl);padding:var(--space-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.auth-card h1{text-align:center;margin-bottom:var(--space-sm);font-size:1.75rem}.auth-subtitle{text-align:center;margin-bottom:var(--space-xl);color:var(--text-secondary);font-size:15px}.auth-form{gap:var(--space-lg);flex-direction:column;display:flex}.form-group{gap:var(--space-sm);flex-direction:column;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:600}.form-group input{border-radius:var(--radius-md);background:var(--background-secondary);border:1px solid var(--card-border);color:var(--foreground);transition:all .2s var(--ease-out);padding:14px 16px;font-size:17px}.form-group input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.auth-button{background:var(--primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all .2s var(--ease-out);margin-top:var(--space-sm);border:none;padding:14px;font-size:17px;font-weight:600}.auth-button:hover{background:var(--primary-hover)}.auth-button:active{transform:scale(.98)}.auth-button:disabled{opacity:.5;cursor:not-allowed}.auth-footer{text-align:center;margin-top:var(--space-lg);color:var(--text-secondary);font-size:15px}.auth-footer a{color:var(--primary);font-weight:600}.auth-footer a:hover{text-decoration:underline}.error-message{color:var(--error);border-radius:var(--radius-md);margin-bottom:var(--space-lg);text-align:center;background:#ff453a1a;border:1px solid #ff453a33;padding:12px;font-size:14px}@media print{.bottom-nav,.btn,header button{display:none!important}body{color:#000;background:#fff}.card{box-shadow:none;break-inside:avoid;border:1px solid #ccc}main{padding-bottom:0!important}}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake-screen,.shake{animation:.5s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes spin{to{transform:rotate(360deg)}}.challenge-map-container{width:100%;max-width:500px;padding:var(--space-md);align-items:center;gap:var(--space-xl);overflow-anchor:none;overscroll-behavior:contain;flex-direction:column;margin:0 auto;padding-bottom:6rem;display:flex}.level-tabs-container{z-index:50;width:100%;padding:var(--space-sm)0;background:linear-gradient(180deg,var(--background)0%,var(--background)80%,transparent 100%);margin-bottom:var(--space-sm);position:sticky;top:0;overflow:visible}.level-tabs{gap:var(--space-sm);padding:4px 0;padding-right:var(--space-xl);scrollbar-width:none;-ms-overflow-style:none;margin-right:-16px;display:flex;overflow-x:auto}.level-tabs:after{content:"";width:var(--space-md);flex-shrink:0}.level-tabs::-webkit-scrollbar{display:none}.level-tab{border-radius:var(--radius-md);border:1px solid var(--card-border);background:var(--card-bg);color:var(--text-secondary);cursor:pointer;transition:all .2s var(--ease-out);flex-direction:column;flex:1 0 0;align-items:center;gap:2px;min-width:0;padding:10px 8px;display:flex}.level-tab:hover{border-color:var(--primary);color:var(--text-primary)}.level-tab.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-glow);border-color:#0000}.level-tab-name{white-space:nowrap;font-size:13px;font-weight:600}.level-tab-progress{opacity:.7;font-size:11px}.level-tab.active .level-tab-progress{opacity:.9}.map-level-card{-webkit-user-select:none;user-select:none;flex-direction:column;gap:0;width:100%;display:flex;position:relative}.map-level-header{padding:var(--space-lg);border-radius:var(--radius-xl)var(--radius-xl)0 0;color:#fff;text-align:center;z-index:10;position:relative}.map-level-header h2{text-shadow:0 2px 4px #0003;color:#fff;margin:0;font-size:1.375rem;font-weight:700}.map-level-header p{opacity:.9;color:#fff;margin:4px 0 0;font-size:14px}.map-nodes-area{background:var(--card-bg);border-radius:0 0 var(--radius-xl)var(--radius-xl);border:1px solid var(--card-border);width:100%;min-height:850px;box-shadow:var(--shadow-md);border-top:none;position:relative;overflow:hidden}.map-decorations{pointer-events:none;z-index:1;width:100%;height:100%;color:var(--foreground);opacity:.5;position:absolute;top:0;left:0}.map-paths{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0;left:0}.map-loading{justify-content:center;align-items:center;gap:var(--space-md);min-height:300px;color:var(--text-secondary);flex-direction:column;display:flex}.map-loading-spinner{border:3px solid var(--card-border);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.map-node{z-index:20;position:absolute;transform:translate(-50%)translateY(-50%)}.map-node.label-right .map-node-label{position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.map-node.label-left .map-node-label{position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.map-node-btn{cursor:pointer;background:var(--background-secondary);width:64px;height:64px;box-shadow:var(--shadow-md);transition:all .3s var(--ease-out);touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.node-inner{border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.node-icon{font-size:1.75rem;line-height:1}.sparkle-effect{color:#ffd60a;animation:1.5s ease-in-out infinite sparkle;position:absolute;top:2px;right:2px}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.node-glow{background:radial-gradient(circle,var(--node-color,var(--primary))0%,transparent 70%);z-index:-1;opacity:.4;border-radius:50%;position:absolute;inset:-8px}.map-node-btn.locked{color:#a3a3a3;cursor:not-allowed;opacity:1;background:#e5e5e5;border:none;box-shadow:0 4px #d4d4d4}[data-theme=dark] .map-node-btn.locked{color:#636366;background:#3a3a3c;box-shadow:0 4px #2c2c2e}.map-node-btn.locked:hover{transform:none!important}.map-node-btn.completed{background:var(--success);color:#fff;box-shadow:0 4px 16px #30d15866}.map-node-btn.unlocked{color:var(--node-color,var(--primary));box-shadow:0 0 15px var(--node-color,#0a84ff80);border:3px solid var(--node-color,var(--primary));background:#fff}.completed-badge{background:var(--success);color:#fff;width:22px;height:22px;box-shadow:var(--shadow-sm);border:2px solid var(--card-bg);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-4px;right:-4px}.map-node-label{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);z-index:30;flex-direction:column;gap:2px;max-width:120px;padding:10px 12px;display:flex}.label-title{color:var(--text-primary);font-size:13px;font-weight:600;line-height:1.3}.label-type{color:var(--text-tertiary);text-transform:capitalize;font-size:11px}.stars-container{border-radius:var(--radius-full);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));background:#000000b3;gap:2px;padding:3px 6px;display:flex;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.star-filled{filter:drop-shadow(0 0 2px #ffd60a80)}.star-empty{opacity:.3}@keyframes pulse-glow{0%{box-shadow:0 0 15px var(--node-color,#0a84ff66),0 0 0 0 var(--node-color,#0a84ff4d)}70%{box-shadow:0 0 15px var(--node-color,#0a84ff66),0 0 0 12px transparent}to{box-shadow:0 0 15px var(--node-color,#0a84ff66),0 0 0 0 transparent}}.map-node-btn.unlocked{animation:2s ease-in-out infinite pulse-glow}.pinyin-stream-title{background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-weight:700}@media (max-width:400px){.map-node-btn{width:56px;height:56px}.node-icon{font-size:1.5rem}.map-node-label{max-width:100px;padding:8px 10px}.label-title{font-size:12px}}.badge{border-radius:var(--radius-full);background:var(--primary-soft);color:var(--primary);align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.progress-ring{transform:rotate(-90deg)}.progress-ring-circle{transition:stroke-dashoffset .5s var(--ease-out)}.skeleton{background:linear-gradient(90deg,var(--background-secondary)0%,var(--background-tertiary)50%,var(--background-secondary)100%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.skeleton-text{border-radius:var(--radius-sm);width:80%;height:1em}.skeleton-title{border-radius:var(--radius-sm);width:60%;height:2rem}.skeleton-circle{border-radius:50%}.skeleton-card{width:100%;height:120px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.animate-fade-in,.animate-fade-in-up,.animate-scale-in{opacity:1!important;animation:none!important;transform:none!important}.skeleton{background:var(--background-tertiary)!important;animation:none!important}}.card.hover-card,.level-tab,.nav-item,.story-card,.quick-action,button:not(:disabled),[role=button],a[href]{cursor:pointer}.card.hover-card:hover,.story-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.level-tab:hover:not(.active){background:var(--background-secondary);border-color:var(--primary)}:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.touch-target{justify-content:center;align-items:center;min-width:48px;min-height:48px;display:flex}.level-tab{min-height:48px}.elevation-0{box-shadow:none}.elevation-1{box-shadow:var(--shadow-sm)}.elevation-2{box-shadow:var(--shadow-md)}.elevation-3{box-shadow:var(--shadow-lg)}@keyframes celebrate-bounce{0%,to{transform:translateY(0)scale(1)}25%{transform:translateY(-10px)scale(1.05)}50%{transform:translateY(-5px)scale(1.02)}}@keyframes celebrate-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes star-pop{0%{opacity:0;transform:scale(0)rotate(-30deg)}50%{opacity:1;transform:scale(1.3)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-100%)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.celebrate-bounce{animation:celebrate-bounce .6s var(--spring)}.celebrate-pulse{animation:celebrate-pulse .4s var(--ease-out)}.star-pop{animation:star-pop .5s var(--spring)forwards}.completion-overlay{z-index:1000;animation:fadeIn .3s var(--ease-out);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.completion-modal{background:var(--card-bg);border-radius:var(--radius-xl);padding:var(--space-2xl);text-align:center;animation:scaleIn .4s var(--spring);width:320px;max-width:90%}h1,h2,h3{font-family:var(--font-display)}h1{font-weight:700}h2,h3{font-weight:600}.map-node-3d-container{background-color:var(--node-shadow-color,#d97706);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border-radius:50%;flex-direction:column;justify-content:flex-start;width:64px;height:64px;padding-bottom:6px;transition:all .1s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative;box-shadow:0 4px 10px #0003}.map-node-3d-container:active:not(.locked){padding-bottom:0;transform:translateY(6px);box-shadow:0 0 4px #0003}.map-node-3d-face{background-color:var(--node-main-color,#fbbf24);z-index:2;color:#fff;text-shadow:0 2px #0000001a;border:4px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.map-node-3d-container.locked{box-shadow:none;cursor:not-allowed;background-color:#d1d5db;padding-bottom:0;transform:none!important}.map-node-3d-container.locked .map-node-3d-face{color:#9ca3af;text-shadow:none;background-color:#e5e7eb;border-color:#d1d5db}.map-node-3d-face .completed-badge{background:#fbbf24;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;bottom:-2px;right:-2px;box-shadow:0 2px 4px #0000001a}.character-avatar-container{pointer-events:none;z-index:30;justify-content:center;align-items:center;width:70px;height:70px;display:flex;position:absolute;top:-72px;left:50%;transform:translate(-50%)}.character-avatar-inner{filter:drop-shadow(0 4px 6px #0000004d);font-size:48px;animation:2s ease-in-out infinite character-bounce}@keyframes character-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.stars-container-external{z-index:25;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;border-radius:12px;gap:3px;padding:2px 6px;display:flex;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.map-node-3d-face .node-glow{opacity:.5;background:0 0;border:2px solid #fff}
@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/cdf703449fd42bc8-s.665aa8c9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/3f10656f33c57dec-s.1b5b6537.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/56eb15be423b6220-s.23b201d9.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/96074e70a40501da-s.8c31978f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(../media/de161955856a921d-s.p.25da2b95.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Press Start 2P Fallback";src:local(Arial);ascent-override:44.58%;descent-override:0.0%;line-gap-override:0.0%;size-adjust:224.32%}.press_start_2p_14528d2b-module__c3mz2W__className{font-family:"Press Start 2P","Press Start 2P Fallback";font-style:normal;font-weight:400}.press_start_2p_14528d2b-module__c3mz2W__variable{--font-pixel:"Press Start 2P","Press Start 2P Fallback"}
