:root{--primary:#58cc02;--primary-dark:#46a302;--primary-deep:#2f7001;--primary-light:#89e219;--primary-soft:#e4ffc7;--secondary:#2563eb;--secondary-dark:#1d4ed8;--secondary-light:#60a5fa;--secondary-soft:#dbeafe;--accent:#f5b50a;--accent-dark:#d99a06;--accent-soft:#fef3c7;--purple:#a78bfa;--purple-dark:#7c3aed;--purple-soft:#ede9fe;--pink:#f472b6;--pink-dark:#db2777;--pink-soft:#fce7f3;--success:#22c55e;--success-dark:#16a34a;--success-soft:#dcfce7;--danger:#ef4444;--danger-dark:#dc2626;--danger-deep:#c81e1e;--danger-soft:#fee2e2;--warning:#fb923c;--warning-dark:#ea7c1b;--warning-soft:#ffedd5;--info:#60a5fa;--bg:#fff;--bg-alt:#f6f5fb;--bg-card:#fff;--bg-dark:#0f0f24;--bg-sidebar:#fff;--text:#2a2a3c;--text-secondary:#55526b;--text-light:#6f6b87;--text-white:#fff;--border:#e7e4f0;--border-dark:#c9c4dc;--border-light:#f0eef7;--shadow-sm:0 2px 0 #3c286e0d;--shadow-md:0 4px 14px #3c286e1a;--shadow-lg:0 10px 28px #3c286e24;--shadow-xl:0 18px 50px #3c286e2e;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--font-sans:"Nunito", "Noto Sans JP", system-ui, -apple-system, sans-serif;--font-jp:"Noto Sans JP", "Nunito", sans-serif;--nav-height:64px;--sidebar-width:260px;--cat-words:var(--purple);--cat-kanji:var(--secondary);--cat-grammar:var(--success);--cat-streak:var(--warning);--cat-srs:var(--pink);--cat-listening:var(--secondary-light);--medal-gold:#f5b50a;--medal-gold-dark:#b77f04;--medal-silver:#a9b6bf;--medal-silver-dark:#7a8894;--medal-bronze:#ce8946;--medal-bronze-dark:#9c6229;--premium:#2d1b69;--premium-dark:#1a1040;--premium-light:#4a3690;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--bg:#131f24;--bg-alt:#1b2b32;--bg-card:#202f36;--bg-dark:#0e181d;--bg-sidebar:#182930;--text:#f1f7fb;--text-secondary:#afc1ca;--text-light:#8a9ea8;--border:#37464f;--border-dark:#465862;--border-light:#2b3a43;--primary-soft:#1e3a10;--primary-light:#79d622;--primary-deep:#79d622;--purple-soft:#2e2a50;--secondary-soft:#163350;--accent-soft:#3d300c;--warning-soft:#3e2812;--pink-soft:#3e1b33;--success-soft:#123b24;--danger-soft:#3e2022;--danger-deep:#f87171;--shadow-sm:0 2px 0 #00000059;--shadow-md:0 4px 14px #00000080;--shadow-lg:0 10px 28px #0009;--shadow-xl:0 18px 50px #000000a6;--medal-silver:#8e9ba5;--medal-silver-dark:#64727d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:var(--bg-card);color:var(--text);border-color:var(--border)}[data-theme=dark] [style*="background: white"],[data-theme=dark] [style*=background\:white],[data-theme=dark] [style*="background: rgb(255, 255, 255)"]{background:var(--bg-card)!important}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;font-family:inherit}input,select,textarea{outline:none;font-family:inherit}.jp{font-family:var(--font-jp)}h1,h2,h3,h4{color:var(--text);letter-spacing:-.01em;font-weight:800}.btn{--btn-bg:var(--primary);--btn-lip:var(--primary-dark);--btn-fg:#fff;font-family:var(--font-sans);letter-spacing:.6px;text-transform:uppercase;color:var(--btn-fg);background:var(--btn-bg);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;box-shadow:0 4px 0 var(--btn-lip);border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;padding:14px 22px;font-size:15px;font-weight:800;transition:filter .15s,transform 60ms,box-shadow 60ms,background .15s;display:inline-flex}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){box-shadow:0 0 0 var(--btn-lip);transform:translateY(4px)}.btn:focus-visible{outline:3px solid var(--text);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid var(--text)!important}.btn:disabled{cursor:default;opacity:1;--btn-bg:var(--border);--btn-lip:transparent;--btn-fg:var(--text-light);box-shadow:none}.btn--full{width:100%}.btn--lg{border-radius:18px;padding:17px 26px;font-size:17px}.btn--sm{box-shadow:0 3px 0 var(--btn-lip);border-radius:13px;padding:10px 16px;font-size:13px}.btn--sm:active:not(:disabled){transform:translateY(3px)}.btn--primary{--btn-bg:var(--primary);--btn-lip:var(--primary-dark)}.btn--blue{--btn-bg:var(--secondary);--btn-lip:var(--secondary-dark)}.btn--danger{--btn-bg:var(--danger);--btn-lip:var(--danger-dark)}.btn--gold{--btn-bg:var(--accent);--btn-lip:var(--accent-dark);--btn-fg:#4b3200}.btn--purple{--btn-bg:var(--purple);--btn-lip:var(--purple-dark)}.btn--secondary{--btn-fg:var(--text);background:var(--bg-card);border:2px solid var(--border);box-shadow:none;text-transform:none;color:var(--text-secondary);border-bottom-width:4px}.btn--secondary:active:not(:disabled){border-bottom-width:2px;transform:translateY(2px)}.btn--ghost{box-shadow:none;color:var(--text-secondary);text-transform:none;background:0 0;font-weight:700}.btn--ghost:active:not(:disabled){background:var(--bg-alt);transform:none}.btn-spinner{border:3px solid #fff6;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}.card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);padding:20px}.card--flat{border-color:var(--border-light)}.card--tappable{cursor:pointer;transition:transform .12s,border-color .15s,box-shadow .15s}.card--tappable:hover{border-color:var(--border-dark)}.card--tappable:active{transform:translateY(2px)scale(.995)}.field{border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg-alt);width:100%;font-family:var(--font-sans);color:var(--text);padding:15px 16px;font-size:15px;font-weight:600;transition:border-color .15s,background .15s}.field::placeholder{color:var(--text-light);font-weight:600}.field:focus{border-color:var(--secondary);background:var(--bg-card)}.field--error{border-color:var(--danger-deep)}.field-icon-pad{padding-left:46px}.progress{background:var(--border);border-radius:var(--radius-full);height:16px;position:relative;overflow:hidden}.progress>i{background:var(--primary);border-radius:var(--radius-full);height:100%;transition:width .4s cubic-bezier(.22,1,.36,1);display:block;position:relative}.progress>i:after{content:"";border-radius:var(--radius-full);background:#fff6;height:4px;position:absolute;top:3px;left:8px;right:8px}.progress--sm{height:10px}.progress--sm>i:after{height:2px;top:2px}.pill{border-radius:var(--radius-full);background:var(--bg-alt);color:var(--text-secondary);align-items:center;gap:5px;padding:5px 12px;font-size:13px;font-weight:800;display:inline-flex}.pill--green{background:var(--success-soft);color:var(--success-dark)}.pill--purple{background:var(--primary-soft);color:var(--primary-deep)}.pill--blue{background:var(--secondary-soft);color:var(--secondary-dark)}.pill--gold{background:var(--accent-soft);color:var(--accent-dark)}.pill--pink{background:var(--pink-soft);color:var(--pink-dark)}.pill--red{background:var(--danger-soft);color:var(--danger-dark)}.page{flex-direction:column;gap:20px;display:flex}.page--tight{gap:14px}.page-head{--ph-bg:var(--primary);--ph-bg2:var(--primary-light);--ph-lip:var(--primary-dark);border-radius:var(--radius-xl);background:linear-gradient(135deg, var(--ph-lip), var(--ph-bg) 58%, var(--ph-bg2));width:100%;box-shadow:0 5px 0 var(--ph-lip);color:#fff;align-items:center;gap:16px;padding:18px 22px;display:flex;position:relative;overflow:hidden}.page-head:before,.page-head:after{content:"";pointer-events:none;background:#ffffff1f;border-radius:50%;position:absolute}.page-head:before{width:150px;height:150px;top:-54px;right:64px}.page-head:after{background:#ffffff17;width:120px;height:120px;bottom:-62px;left:42%}.page-head>*{z-index:1;position:relative}.page-head-sticky{z-index:30;background:var(--bg);width:100%;margin-bottom:-12px;padding-bottom:12px;position:sticky;top:0}@media (width<=900px){.page-head-sticky{top:var(--nav-height)}}.page-head__icon{border-radius:var(--radius-md);background:#fff3;border:2px solid #ffffff47;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;display:flex}.page-head__body{flex:1;min-width:0}.page-head__title{color:#fff;letter-spacing:-.01em;font-size:24px;font-weight:900;line-height:1.2}.page-head__sub{opacity:.85;margin-top:2px;font-size:14px;font-weight:600}.page-head__actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.page-head__back{border-radius:var(--radius-md);color:#fff;background:#ffffff2e;border:2px solid #ffffff42;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:background .15s,transform .12s;display:flex}.page-head__back:hover{background:#ffffff4d}.page-head__back:active{transform:scale(.94)}.page-head--primary{--ph-bg:var(--primary);--ph-bg2:var(--primary-light);--ph-lip:var(--primary-dark)}.page-head--blue{--ph-bg:var(--secondary);--ph-bg2:var(--secondary-light);--ph-lip:var(--secondary-dark)}.page-head--purple{--ph-bg:var(--purple-dark);--ph-bg2:var(--purple);--ph-lip:#5b21b6}.page-head--pink{--ph-bg:var(--pink-dark);--ph-bg2:var(--pink);--ph-lip:#9d1c55}.page-head--gold{--ph-bg:var(--accent);--ph-bg2:#ffca3a;--ph-lip:var(--accent-dark)}.page-head--orange{--ph-bg:var(--warning);--ph-bg2:#fdba74;--ph-lip:var(--warning-dark)}.page-head--red{--ph-bg:var(--danger);--ph-bg2:#f87171;--ph-lip:var(--danger-dark)}.page-head--sm{border-radius:var(--radius-lg);box-shadow:0 4px 0 var(--ph-lip);padding:12px 16px}.page-head--sm .page-head__icon{width:40px;height:40px;font-size:20px}.page-head--sm .page-head__title{font-size:18px}.page-head--sm .page-head__sub{font-size:12px}@media (width<=600px){.page-head{gap:12px;padding:14px 16px}.page-head__title{font-size:20px}.page-head__icon{width:44px;height:44px;font-size:21px}.page-head__sub{font-size:13px}}.section-title{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.grid-auto{grid-template-columns:repeat(auto-fill, minmax(var(--col,220px), 1fr));gap:14px;display:grid}.grid-auto--sm{--col:150px}.grid-auto--lg{--col:300px}.stat-tile{border-radius:var(--radius-lg);background:var(--bg-card);border:2px solid var(--border);align-items:center;gap:12px;padding:14px 16px;display:flex}.stat-tile__icon{border-radius:var(--radius-md);background:var(--bg-alt);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-tile__value{color:var(--text);font-size:20px;font-weight:900;line-height:1.15}.stat-tile__label{color:var(--text-light);font-size:12px;font-weight:700}.row-item{border-radius:var(--radius-md);background:var(--bg-alt);border:2px solid #0000;align-items:center;gap:12px;padding:12px 14px;display:flex}.row-item--card{background:var(--bg-card);border-color:var(--border)}.row-item--active{background:var(--primary-soft);border-color:var(--primary)}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip-scroller{scrollbar-width:thin;gap:6px;width:100%;padding-bottom:4px;display:flex;overflow-x:auto}@media (width>=720px){.chip-scroller{flex-wrap:wrap;overflow-x:visible}}.chip{border-radius:var(--radius-full);background:var(--bg-alt);border:2px solid var(--border);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:800;text-decoration:none;transition:background .15s,color .15s,border-color .15s,transform .12s;display:inline-flex}.chip:hover{border-color:var(--border-dark)}.chip:active{transform:scale(.96)}.chip--active{background:var(--primary);border-color:var(--primary-deep);color:#fff}@media (pointer:coarse){.chip{padding:11px 16px}.page-head__back{width:44px;height:44px}.tap-target{position:relative}.tap-target:after{content:"";height:44px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.06)}to{transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.1)}70%{transform:scale(.95)}to{transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes flameFlicker{0%,to{transform:scale(1)rotate(-2deg)}50%{transform:scale(1.12)rotate(2deg)}}.footer-social-link{transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,background .3s}.footer-social-link:hover{background:#f7fcf2;transform:translateY(-8px)scale(1.06)rotate(-6deg);box-shadow:0 10px #2d7a00,0 18px 34px #00000038}.footer-social-link img{transition:transform .3s}.footer-social-link:hover img{transform:scale(1.12)rotate(6deg)}.footer-link{transition:color .2s,padding-left .2s}.footer-link:hover{color:#fff;padding-left:4px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes shine{0%{transform:translate(-120%)skew(-20deg)}to{transform:translate(220%)skew(-20deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes checkPop{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}.animate-in{animation:.4s ease-out backwards fadeIn}.anim-fade-up{animation:.5s cubic-bezier(.22,1,.36,1) backwards fadeInUp}.anim-scale-in{animation:.4s cubic-bezier(.22,1,.36,1) backwards scaleIn}.anim-pop{animation:.45s cubic-bezier(.22,1,.36,1) backwards popIn}.anim-bounce{animation:.6s cubic-bezier(.22,1,.36,1) backwards bounceIn}.page-transition{animation:.42s cubic-bezier(.22,1,.36,1) backwards fadeInUp}.stagger>*{animation:.5s cubic-bezier(.22,1,.36,1) backwards fadeInUp}.stagger>:first-child{animation-delay:40ms}.stagger>:nth-child(2){animation-delay:90ms}.stagger>:nth-child(3){animation-delay:.14s}.stagger>:nth-child(4){animation-delay:.19s}.stagger>:nth-child(5){animation-delay:.24s}.stagger>:nth-child(6){animation-delay:.29s}.stagger>:nth-child(7){animation-delay:.34s}.stagger>:nth-child(8){animation-delay:.39s}.stagger>:nth-child(n+9){animation-delay:.44s}.anim-spin{animation:1s linear infinite spin}.anim-float{animation:3s ease-in-out infinite float}.anim-pulse{animation:1.8s ease-in-out infinite pulse}.anim-flame{animation:1.4s ease-in-out infinite flameFlicker}.lift{transition:transform .2s,box-shadow .2s}.lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.press{transition:transform .12s}.press:active{transform:scale(.96)}.tappable{transition:transform .15s,box-shadow .15s,background .15s}.tappable:hover{transform:translateY(-2px)}.tappable:active{transform:scale(.97)}.glow{transition:box-shadow .25s,transform .2s}.glow:hover{box-shadow:0 0 0 4px #58cc021f}.progress-shine{position:relative;overflow:hidden}.progress-shine:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);width:60%;height:100%;animation:2.2s ease-in-out infinite shine;position:absolute;top:0;left:0}.skeleton{background:linear-gradient(90deg, var(--border-light) 25%, var(--bg-alt) 50%, var(--border-light) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}.nav-link{transition:background .18s,transform .15s}.nav-link:hover{background:#0000000a;transform:translate(4px)}:root[data-theme=dark] .nav-link:hover{background:#ffffff0f}.nav-link:hover svg{animation:.35s cubic-bezier(.34,1.56,.64,1) navIconPop}.flip-container{perspective:1000px}.flip-card{transform-style:preserve-3d;transition:transform .5s cubic-bezier(.22,1,.36,1);position:relative}.flip-card.flipped{transform:rotateY(180deg)}.flip-front,.flip-back{backface-visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.flip-back{transform:rotateY(180deg)}.glass{-webkit-backdrop-filter:blur(12px);background:#ffffffb3;border:1px solid #ffffff4d}.gradient-text{background:linear-gradient(135deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.count-up{display:inline-block}@keyframes confettiFall{0%{opacity:1;transform:translateY(-20px)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.anim-wiggle{animation:.5s ease-in-out wiggle}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";opacity:0;background:radial-gradient(circle,#ffffff4d 10%,#0000 10.01%) 50% no-repeat;width:100%;height:100%;transition:transform .5s,opacity .8s;position:absolute;top:0;left:0;transform:scale(10)}.ripple:active:after{opacity:1;transition:all;transform:scale(0)}@keyframes glowPulse{0%,to{box-shadow:0 0 5px #58cc024d}50%{box-shadow:0 0 20px #58cc0299}}.anim-glow-pulse{animation:2s ease-in-out infinite glowPulse}.stagger-grid>*{animation:.5s cubic-bezier(.22,1,.36,1) backwards fadeInUp}.stagger-grid>:first-child{animation-delay:30ms}.stagger-grid>:nth-child(2){animation-delay:60ms}.stagger-grid>:nth-child(3){animation-delay:90ms}.stagger-grid>:nth-child(4){animation-delay:.12s}.stagger-grid>:nth-child(5){animation-delay:.15s}.stagger-grid>:nth-child(6){animation-delay:.18s}.stagger-grid>:nth-child(7){animation-delay:.21s}.stagger-grid>:nth-child(8){animation-delay:.24s}.stagger-grid>:nth-child(n+9){animation-delay:.27s}.hover-scale{transition:transform .2s}.hover-scale:hover{transform:scale(1.03)}.card-interactive{transition:transform .2s,box-shadow .25s,border-color .2s}.card-interactive:hover{box-shadow:var(--shadow-md);border-color:#58cc0233;transform:translateY(-3px)}.card-interactive:active{transform:translateY(0)scale(.98)}.card-interactive:hover .lesson-icon{animation:.4s cubic-bezier(.34,1.56,.64,1) navIconPop}.card-interactive:hover .lesson-play{animation:.7s ease-in-out pulse}.card-interactive:hover .lesson-star{animation:.7s ease-in-out sparkle}.card-interactive:hover .lesson-star:nth-child(2){animation-delay:80ms}.card-interactive:hover .lesson-star:nth-child(3){animation-delay:.16s}@keyframes badgeBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.badge-bounce{animation:1s ease-in-out infinite badgeBounce}@keyframes cloudDrift{0%{transform:translate(-16px)}to{transform:translate(26px)}}@keyframes petalFall{0%{opacity:0;transform:translateY(-10px)rotate(0)}12%{opacity:.9}to{opacity:0;transform:translate(30px,230px)rotate(300deg)}}@keyframes nodeIn{0%{opacity:0}to{opacity:1}}@keyframes nodeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes trailDraw{0%{stroke-dashoffset:var(--trail-len,3000)}to{stroke-dashoffset:0}}@keyframes trailMarch{to{stroke-dashoffset:-300px}}@keyframes startBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.rm-scene{background:var(--bg);position:relative;overflow:hidden}.rm-svg{pointer-events:none;position:absolute;top:0;left:0}.rm-trail-bg{fill:none;stroke:var(--border);stroke-width:14px;stroke-linecap:round}:root[data-theme=dark] .rm-trail-bg{stroke:#2e3f48}.rm-trail-fill{fill:none;stroke:var(--primary);stroke-width:7px;stroke-linecap:round;opacity:.9;animation:1.5s ease-out .15s both trailDraw}.rm-trail-dots{fill:none;stroke:#ffffff80;stroke-width:4px;stroke-linecap:round;stroke-dasharray:1 16;animation:18s linear infinite trailMarch}.rm-node{animation:.5s both nodeIn,4s ease-in-out .5s infinite nodeFloat;position:absolute}.rm-island{display:none}.rm-decor{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.rm-cloud{background:var(--bg-card);opacity:.55;border-radius:999px;animation:9s ease-in-out infinite alternate cloudDrift;position:absolute}.rm-petal{background:var(--pink);opacity:0;border-radius:999px 0;width:9px;height:9px;animation:9s linear infinite petalFall;position:absolute}.rm-node-btn{z-index:1;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:66px;height:66px;transition:transform .15s;display:flex;position:absolute;top:-33px;left:-33px}.rm-node-btn:hover{transform:scale(1.09)}.rm-node-btn:active{transform:scale(.93)}.rm-node-done{background:var(--success);color:#fff;box-shadow:0 5px 0 var(--success-dark)}.rm-node-current{background:var(--primary);color:#fff;box-shadow:0 5px 0 var(--primary-dark), 0 0 0 5px #58cc024d;animation:1.8s ease-out infinite ringPulse}.rm-node-available{background:var(--bg-card);color:var(--text-secondary);box-shadow:0 5px 0 var(--border-dark)}.rm-node-locked{color:#fff;cursor:default;background:#b0b8ad;box-shadow:0 5px #8e958b}:root[data-theme=dark] .rm-node-done{background:var(--success);box-shadow:0 5px 0 var(--success-dark)}:root[data-theme=dark] .rm-node-current{background:var(--primary);box-shadow:0 5px 0 var(--primary-dark), 0 0 0 5px #58cc0240}:root[data-theme=dark] .rm-node-available{box-shadow:0 5px 0 var(--border-dark)}:root[data-theme=dark] .rm-node-locked{background:#3c4c55;box-shadow:0 5px #2c3941}.rm-start-wrap{text-align:center;pointer-events:none;z-index:2;width:120px;position:absolute;top:-66px;left:-60px}.rm-start{color:var(--primary-deep);letter-spacing:.5px;box-shadow:var(--shadow-md);background:#fff;border-radius:999px;padding:5px 13px;font-size:11px;font-weight:900;animation:1.2s ease-in-out infinite startBounce;display:inline-block;position:relative}.rm-start:after{content:"";border:5px solid #0000;border-top-color:#fff;margin-left:-5px;position:absolute;bottom:-5px;left:50%}:root[data-theme=dark] .rm-start{background:var(--bg-card);color:var(--primary-light)}:root[data-theme=dark] .rm-start:after{border-top-color:var(--bg-card)}.rm-node-title{text-align:center;width:132px;color:var(--text);z-index:1;font-size:12px;font-weight:800;position:absolute;top:40px;left:-66px}:root[data-theme=dark] .rm-node-title{color:var(--text)}@keyframes rmLocIn{0%{opacity:0;transform:translate(-50%)scale(.7)}60%{opacity:1;transform:translate(-50%)scale(1.06)}to{opacity:1;transform:translate(-50%)scale(1)}}.rm-loc{z-index:900;background:var(--primary);color:#fff;font-family:var(--font-sans);letter-spacing:.3px;cursor:pointer;white-space:nowrap;box-shadow:0 4px 0 var(--primary-dark), 0 8px 22px #0000002e;border:none;border-radius:999px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:800;transition:filter .15s;animation:.4s cubic-bezier(.22,1,.36,1) rmLocIn;display:inline-flex;position:fixed;transform:translate(-50%)}.rm-loc:hover{filter:brightness(1.06)}.rm-loc:active{filter:brightness(.96)}.rm-loc-up{top:176px}.rm-loc-down{bottom:28px}@media (width<=900px){.rm-loc-up{top:calc(var(--nav-height) + 150px)}.rm-loc-down{bottom:calc(76px + env(safe-area-inset-bottom))}}@keyframes tada{0%{transform:scale(1)}10%,20%{transform:scale(.92)rotate(-3deg)}30%,50%,70%,90%{transform:scale(1.08)rotate(3deg)}40%,60%,80%{transform:scale(1.08)rotate(-3deg)}to{transform:scale(1)rotate(0)}}.anim-tada{animation:.9s ease-in-out tada}.res-in{animation:.5s cubic-bezier(.34,1.56,.64,1) backwards popIn}.res-star{animation:.45s cubic-bezier(.34,1.56,.64,1) backwards checkPop;display:inline-block}@keyframes heartBeat{0%,to{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.18)}70%{transform:scale(1)}}.anim-heartbeat{animation:.85s ease-in-out heartBeat}@keyframes shakeX{0%,to{transform:translate(0)}15%,45%,75%{transform:translate(-8px)}30%,60%,90%{transform:translate(8px)}}.anim-shake{animation:.5s ease-in-out shakeX}@keyframes correctFlash{0%{box-shadow:0 0 #58cc028c}to{box-shadow:0 0 0 16px #58cc0200}}.anim-correct{animation:.6s ease-out correctFlash}.anim-check{animation:.4s cubic-bezier(.34,1.56,.64,1) backwards checkPop}@keyframes xpFloat{0%{opacity:0;transform:translateY(6px)scale(.7)}20%{opacity:1;transform:translateY(0)scale(1.15)}35%{transform:translateY(-2px)scale(1)}to{opacity:0;transform:translateY(-36px)scale(1)}}.anim-xp-float{animation:1.2s cubic-bezier(.22,1,.36,1) both xpFloat}@keyframes coinFlip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.anim-coin-flip{animation:.8s ease-in-out coinFlip}@keyframes navIconPop{0%{transform:scale(1)}45%{transform:scale(1.25)rotate(-6deg)}to{transform:scale(1)}}.anim-icon-pop{animation:.35s cubic-bezier(.34,1.56,.64,1) navIconPop}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.85;transform:scale(1.35)rotate(12deg)}}.anim-sparkle{animation:1.6s ease-in-out infinite sparkle}@keyframes breathe{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.03)translateY(-4px)}}.anim-breathe{animation:3.4s ease-in-out infinite breathe}@keyframes bottomNavPop{0%{transform:translateY(0)scale(1)}40%{transform:translateY(-4px)scale(1.18)}to{transform:translateY(0)scale(1)}}.bottom-nav-item{transition:color .2s}.bottom-nav-item.active svg{animation:.4s cubic-bezier(.34,1.56,.64,1) bottomNavPop}.btn-shine{position:relative;overflow:hidden}.btn-shine:before{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff59,#0000);width:40%;animation:2.8s ease-in-out infinite shine;position:absolute;top:0;bottom:0}.confetti-piece{opacity:0;pointer-events:none;border-radius:2px;width:8px;height:12px;animation:.9s cubic-bezier(.22,1,.36,1) both confettiPop;position:absolute;top:50%;left:50%}@keyframes confettiPop{0%{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(.6)}to{opacity:0;transform:translate(calc(-50% + var(--cx,40px)), calc(-50% + var(--cy,-60px))) rotate(var(--cr,240deg)) scale(1)}}@keyframes flameGlow{0%,to{filter:drop-shadow(0 0 4px #fb923c73);transform:scale(1)rotate(-2deg)}50%{filter:drop-shadow(0 0 12px #fb923ccc);transform:scale(1.1)rotate(2deg)}}.anim-flame-glow{animation:1.3s ease-in-out infinite flameGlow}@keyframes toastIn{0%{opacity:0;transform:translateY(-16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.anim-toast-in{animation:.35s cubic-bezier(.34,1.56,.64,1) both toastIn}.anim-badge-pop{animation:.7s .15s both badgeBounce}.anim-spark{animation:.9s .2s both sparkle}@keyframes deltaPop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}.anim-delta-pop{animation:.5s cubic-bezier(.34,1.56,.64,1) .5s both deltaPop}@keyframes ringPulse{0%{box-shadow:0 5px 0 var(--primary-dark), 0 0 0 0 #58cc0273}70%{box-shadow:0 5px 0 var(--primary-dark), 0 0 0 14px #58cc0200}to{box-shadow:0 5px 0 var(--primary-dark), 0 0 0 0 #58cc0200}}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}.delay-5{animation-delay:.4s}.delay-6{animation-delay:.48s}.reveal{opacity:0;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);transform:translateY(28px)}.reveal.reveal-visible{opacity:1;transform:translateY(0)}.reveal-scale{opacity:0;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transform:scale(.92)}.reveal-scale.reveal-visible{opacity:1;transform:scale(1)}@keyframes stampIn{0%{opacity:0;transform:scale(2.4)rotate(-30deg)}60%{opacity:1;transform:scale(.94)rotate(-9deg)}78%{transform:scale(1.05)rotate(-14deg)}to{opacity:1;transform:scale(1)rotate(-12deg)}}@keyframes stampRing{0%{opacity:0;transform:scale(.25)}35%{opacity:.5}to{opacity:0;transform:scale(1.9)}}.anim-stamp{animation:.62s cubic-bezier(.34,1.6,.64,1) both stampIn}.anim-stamp-ring{animation:.7s ease-out both stampRing}@keyframes lockOpen{0%{transform:rotate(0)scale(1)}35%{transform:rotate(-16deg)scale(1.08)}65%{transform:rotate(7deg)scale(1.12)}to{transform:rotate(0)scale(1)}}.anim-lock-open{animation:.5s cubic-bezier(.34,1.6,.64,1) both lockOpen}.anim-sparkle-burst{animation:.6s ease-in-out 3 both sparkle}.anim-unlock-label{animation:.45s cubic-bezier(.34,1.56,.64,1) .9s backwards checkPop}@media (prefers-reduced-motion:reduce){.res-in,.anim-stamp,.anim-stamp-ring,.anim-lock-open,.anim-unlock-label{animation-delay:0s!important}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
