.map-wrap{height:100%;display:flex;flex-direction:column;padding:max(12px,env(safe-area-inset-top)) 8px 8px}.map-header{text-align:center;padding:6px 0 2px}.map-header h1{font-size:var(--fs-title);color:var(--accent-glow);letter-spacing:4px;text-shadow:0 0 18px rgba(255,200,0,.35)}.map-header p{font-size:var(--fs-label);color:var(--text-dim-on-dark);margin-top:4px;letter-spacing:1px}.map-scroll-hint{text-align:center;font-size:var(--fs-label);color:var(--text-dim-on-dark);opacity:.6;letter-spacing:1px;padding:2px 0 4px;animation:hint-bob 2.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.map-scroll-hint{animation:none}}.map-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;background:var(--sky-bg);border-radius:14px}.map-svg{width:100%;height:auto;display:block}.dust{fill:var(--star-dust);opacity:.28}.dust.twinkle{animation:dust-breathe 6s ease-in-out infinite}@keyframes dust-breathe{0%,to{opacity:.12}50%{opacity:.5}}.bg-bright{opacity:.8}.bg-bright.gold{fill:#ffe08a}.bg-bright.blue{fill:#d3e6f2}.bg-glow.gold{fill:url(#glow-gold)}.bg-glow.blue{fill:url(#glow-blue)}.band-watermark{fill:var(--band-watermark);opacity:.2;font-size:7.5px;font-weight:900;letter-spacing:1.6px}.band-divider{stroke:#fff;stroke-width:.12;opacity:.06}.edge{stroke:var(--edge-silk);stroke-width:.11;opacity:.16;stroke-linecap:round}.edge.half{opacity:.4;stroke:var(--edge-half);stroke-width:.16}.edge.lit{stroke:var(--accent-glow);stroke-width:.32;opacity:.95}.edge.lit-glow{stroke:var(--accent-glow);stroke-width:.9;opacity:.22}.star{cursor:pointer}.star .hit{fill:transparent}.star .flare{fill:var(--star-flare);opacity:.5}.star .flare.cross{opacity:.3}.star .core{fill:var(--star-core);opacity:.8}.star.lit .flare{fill:var(--accent-glow);opacity:.95}.star.lit .flare.cross{fill:var(--star-flare-lit-cross);opacity:.8}.star.lit .core{fill:var(--star-core-lit);opacity:1}.star.lit .halo{animation:halo-breathe 4.5s ease-in-out infinite}.star.dim .flare{fill:var(--node-dim);opacity:.85}.star.dim .flare.cross{fill:var(--node-dim);opacity:.5}.star.dim .core{fill:var(--star-core-dim);opacity:.9}.star.coming .flare{opacity:.16}.star.coming .flare.cross{opacity:.1}.star.coming .core{fill:var(--star-core-coming);opacity:.35}.star.boss .flare.main{fill:var(--purple)}.star.boss .flare.cross{fill:var(--boss-flare-cross)}.star.boss .core{fill:var(--boss-core)}.star.boss:not(.lit) .flare.main{fill:var(--boss-flare-unlit);opacity:.75}.star.miniboss .flare.main{fill:var(--miniboss-flare)}.star.miniboss .flare.cross{fill:var(--miniboss-flare-cross)}.star.miniboss .core{fill:var(--miniboss-core)}.star.miniboss:not(.lit) .flare.main{fill:var(--miniboss-flare-unlit);opacity:.78}@keyframes halo-breathe{0%,to{opacity:.75}50%{opacity:1}}.star.white .flare.main{fill:var(--star-evo-white)}.star.white .flare.cross,.star.white .core{fill:var(--star-evo-white-core)}.star.white.lit .label{fill:var(--star-evo-white-label)}.star.blue .flare.main{fill:var(--star-evo-blue)}.star.blue .flare.cross{fill:var(--star-evo-blue-cross)}.star.blue .core{fill:var(--star-evo-blue-core)}.star.blue.lit .label{fill:var(--star-evo-blue-label)}.star.blue .flare{filter:drop-shadow(0 0 1px rgba(140,190,255,.9))}.star.blue .flare.main{transform:scale(1.12)}.paragon-ring{fill:none}.paragon-ring.charging{stroke:var(--paragon-charge);stroke-width:.4;animation:charge-breathe 4s ease-in-out infinite}.paragon-ring.ready{stroke:var(--accent-glow);stroke-width:.5;animation:ready-pulse 1.6s ease-in-out infinite}@keyframes charge-breathe{0%,to{opacity:.3}50%{opacity:.7}}@keyframes ready-pulse{0%,to{opacity:.5;stroke-width:.4}50%{opacity:1;stroke-width:.7}}.ready-label{fill:var(--accent-glow);font-size:2.6px;font-weight:700;text-anchor:middle;pointer-events:none}.progress-arc{fill:none;stroke:var(--accent-glow);stroke-width:.7;stroke-linecap:round;opacity:.85}.reco-ring{fill:none;stroke:var(--accent-glow);stroke-width:.5;stroke-dasharray:2 1.4;animation:reco-spin 7s linear infinite;transform-origin:0 0;opacity:.9}@keyframes reco-spin{to{transform:rotate(360deg)}}.reco-label{fill:var(--accent-glow);font-size:2.8px;font-weight:700;text-anchor:middle}.star .label{fill:var(--star-label);font-size:2.35px;letter-spacing:.25px;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--star-label-stroke);stroke-width:.62px;stroke-linejoin:round}.star.lit .label{fill:var(--star-label-lit)}.star.dim .label{fill:var(--star-label-dim)}.star.coming .label{fill:var(--star-label-coming);opacity:.72}.star.boss .label{fill:#e9c9ff;font-weight:700;stroke:#1a0f28;stroke-width:.72px}.star.boss.lit .label{fill:#f4dbff}.star.miniboss .label{fill:var(--miniboss-label);font-weight:700;stroke:var(--miniboss-label-stroke);stroke-width:.7px}.star.miniboss.lit .label{fill:var(--miniboss-label-lit)}@media(prefers-reduced-motion:reduce){.dust.twinkle,.star.lit .halo,.reco-ring,.paragon-ring.charging,.paragon-ring.ready{animation:none}}.star.ignite .flare.main{animation:ignite-bloom 2.2s var(--ease) both}.star.ignite .flare.cross{animation:ignite-bloom 2.2s var(--ease) both .12s}.star.ignite .halo{animation:ignite-halo 2.2s ease-out both}.ignite-ring{fill:none;stroke:var(--accent-glow);stroke-width:.5;animation:ignite-ring 1.6s ease-out both}.star.ignite.big .flare.main{animation-duration:3s}.star.ignite.big .ignite-ring{animation-duration:2.2s}@keyframes ignite-bloom{0%{transform:scale(.2);opacity:.2}45%{transform:scale(1.9);opacity:1}70%{transform:scale(.92)}to{transform:scale(1);opacity:1}}@keyframes ignite-halo{0%{opacity:0}40%{opacity:1}to{opacity:.85}}@keyframes ignite-ring{0%{r:2;opacity:.9;stroke-width:.7}to{r:16;opacity:0;stroke-width:.1}}.star .flare.main,.star .core{transition:transform .12s ease-out}.star:active .flare.main,.star:active .core{transform:scale(.82)}.star.sealed .flare{fill:var(--map-edge);opacity:.35}.star.sealed .core{fill:var(--map-edge)}.star.sealed .label{opacity:.5}.star.sealed .seal-cloud{fill:var(--purple);opacity:.22}.map-scroll-hint{opacity:.85}@keyframes hint-bob{0%,to{opacity:.85;transform:translateY(0)}50%{opacity:1;transform:translateY(3px)}}.star.coming .label{opacity:1}.star .flare{opacity:.65}.star.lit .flare{opacity:1}.star.sealed .flare{opacity:.35}.star .label{font-size:2.7px}.star:focus-visible{outline:none}.star:focus-visible .core{stroke:var(--secondary);stroke-width:1.2}.sheet{flex-shrink:0;background:#1f2e35e0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,200,0,.22);border-radius:var(--radius-card) var(--radius-card) 0 0;padding:10px 24px calc(20px + env(safe-area-inset-bottom));animation:sheet-in var(--dur-enter) var(--ease) both;box-shadow:0 -8px 32px #00000073}@keyframes sheet-in{0%{transform:translateY(105%)}to{transform:translateY(0)}}.sheet-handle{width:44px;height:4px;border-radius:2px;background:var(--text-dim-on-dark);opacity:.4;margin:4px auto 10px}.sheet-title{font-size:var(--fs-body);color:var(--accent-glow)}.sheet-grade{margin-left:10px;font-size:12px;font-weight:400;color:var(--text-dim-on-dark);border:1px solid var(--map-edge);border-radius:8px;padding:2px 8px;vertical-align:2px}.question-block{animation:pop-in .38s var(--ease) both;display:flex;flex-direction:column;gap:12px}.q-main{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}.q-answer{display:flex;flex-direction:column;gap:10px}.scratch-wrap{position:relative;border:2px dashed var(--map-edge);border-radius:12px;min-height:max(170px,calc(100dvh - 620px));flex:1;background:#8fa6b20a}.q-main:has(.qfig-wrap) .scratch-wrap{min-height:max(130px,calc(100dvh - 800px))}.cp-calc .scratch-wrap{min-height:150px;flex:none;margin:10px 0}@media(min-width:720px){.cp-calc .scratch-wrap{min-height:max(200px,calc(100dvh - 560px))}}.scratch-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;border-radius:10px;touch-action:none;cursor:crosshair}.scratch-head{position:absolute;top:6px;right:8px;display:flex;align-items:center;gap:10px;z-index:1;pointer-events:none}.scratch-label{font-size:12px;color:var(--text-dim-on-dark);opacity:.65;letter-spacing:1px}.scratch-clear{pointer-events:auto;border:1.5px solid var(--map-edge);background:var(--bg-child);color:var(--text-dim-on-dark);border-radius:var(--radius-btn);padding:4px 14px;min-height:var(--touch-min);font-family:inherit;font-size:var(--fs-caption);cursor:pointer}.scratch-clear:active{transform:scale(.94)}@keyframes pop-in{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.question-text{font-size:var(--fs-question);margin:12px 0 16px;line-height:1.6}.choices{display:flex;gap:12px;flex-wrap:wrap}.choice{min-height:var(--touch-min);min-width:108px;padding:10px 22px;border-radius:var(--radius-input);border:2px solid var(--map-edge);background:var(--bg-child);color:var(--text-on-dark);font-family:inherit;font-size:var(--fs-number);font-weight:700;cursor:pointer;transition:transform var(--dur-micro) var(--ease),border-color var(--dur-micro),background var(--dur-micro),opacity var(--dur-micro)}.choice.idle:active{transform:scale(.94)}.choice.correct{border-color:var(--primary);background:var(--primary);color:#fff;animation:correct-pop .5s var(--ease)}@keyframes correct-pop{0%{transform:scale(1)}45%{transform:scale(1.14)}to{transform:scale(1)}}.choice.wrong{border-color:var(--error-soft);color:var(--error-soft);opacity:.75;animation:gentle-shake .32s ease-in-out}@keyframes gentle-shake{0%,to{transform:translate(0)}30%{transform:translate(-4px)}60%{transform:translate(4px)}}.choice.muted{opacity:.35}.hint{margin-top:12px;color:var(--error-soft);font-size:var(--fs-label);animation:pop-in .3s var(--ease) both}.celebrate{margin-top:12px;color:var(--accent-glow);font-size:var(--fs-body);font-weight:700;animation:correct-pop .5s var(--ease) both}.coming{color:var(--text-dim-on-dark);margin:14px 0}.answer-entry{display:flex;flex-direction:column;gap:12px;max-width:340px}.answer-display{display:flex;align-items:baseline;justify-content:center;gap:8px;min-height:56px;padding:8px 16px;border:2px dashed var(--map-edge);border-radius:12px;background:transparent}.answer-display.correct{border-color:var(--primary)}.answer-display.shake{animation:gentle-shake .32s ease-in-out}.answer-value{font-size:var(--fs-number);font-weight:700;color:var(--text-on-dark);min-width:40px;text-align:center;min-height:1.2em}.answer-unit{font-size:var(--fs-body);color:var(--text-dim-on-dark)}.keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.keypad-key{min-height:52px;border:none;border-radius:14px;background:var(--bg-child);border:2px solid var(--map-edge);color:var(--text-on-dark);font-family:inherit;font-size:22px;font-weight:700;cursor:pointer;transition:transform var(--dur-micro) var(--ease)}.keypad-key:active{transform:scale(.92)}.keypad-key.del{color:var(--error-soft)}.keypad-key.ok{background:var(--primary);border:none;color:#fff;font-size:var(--fs-body);box-shadow:0 4px 0 var(--primary-press)}.keypad-key.ok:active{transform:translateY(4px);box-shadow:0 0 0 var(--primary-press)}.keypad-key.ok:disabled{opacity:.45;box-shadow:none;cursor:default}.keypad-key.span2{grid-column:span 2}.keypad-blank{min-height:52px}.keypad-key.frac{display:inline-flex;align-items:center;justify-content:center}.frac-icon{display:inline-flex;align-items:center;gap:2px}.frac-box{width:11px;height:11px;border:2px solid var(--secondary);border-radius:3px}.frac-slash{color:var(--secondary);font-size:20px;font-weight:900}.input-wrong-was{color:var(--error-soft);font-size:var(--fs-label)}.mode-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;flex-wrap:wrap}.mode-chip{display:inline-flex;align-items:center;gap:6px;min-height:var(--touch-min);padding:8px 18px;border-radius:var(--radius-btn);border:1.5px solid var(--star-flare);background:#8fa6b21a;color:var(--text-on-dark);font-family:inherit;font-size:var(--fs-label);cursor:pointer;transition:border-color var(--dur-micro),color var(--dur-micro),background var(--dur-micro)}.mode-chip.on{border-color:var(--purple);color:var(--purple);background:#ce82ff1f;font-weight:700}.mode-chip.locked{border-style:dashed;border-color:var(--map-edge);background:transparent;color:var(--text-dim-on-dark);cursor:default}.paragon-line{font-size:var(--fs-caption);color:var(--text-dim-on-dark);letter-spacing:.5px}.sheet-status{margin:12px 0 16px;font-size:var(--fs-body);line-height:1.65;text-align:center;color:var(--text-on-dark)}.sheet-actions.single{justify-content:center}.cta-main{font-size:var(--fs-body);padding:12px 40px}.relearn-link{display:block;margin:10px auto 0;background:none;border:none;color:var(--text-dim-on-dark);font-family:inherit;font-size:var(--fs-label);text-decoration:underline;cursor:pointer;min-height:36px}.sheet-actions{display:flex;gap:12px;margin-top:16px}@media(min-width:720px){.rp-stage .question-block{flex-direction:row;align-items:stretch;gap:32px;padding:0 12px}.q-main{flex:1;min-width:0}.q-answer{width:380px;flex-shrink:0;justify-content:center;gap:14px}.question-text{font-size:26px}.scratch-wrap{min-height:max(340px,calc(100dvh - 300px))}.q-main:has(.qfig-wrap) .scratch-wrap{min-height:max(240px,calc(100dvh - 500px))}.answer-entry{max-width:none}.answer-display{min-height:66px}.keypad{gap:10px}.keypad-key{min-height:64px;font-size:26px;border-radius:var(--radius-input)}.keypad-blank{min-height:64px}.q-answer .choices{flex-direction:column}.q-answer .choice{width:100%;min-height:60px}}.pp-ladder-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:24px;animation:pop-in .3s var(--ease) both}.pp-ladder-card{background:var(--bg-child-soft);border:1.5px solid var(--accent-glow);border-radius:var(--radius-card);padding:22px 20px;max-width:360px;text-align:center}.pp-ladder-title{font-size:var(--fs-body);color:var(--accent-glow);font-weight:700;margin-bottom:16px}.pp-ladder-row{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:20px}.pp-ladder-step{display:flex;flex-direction:column;align-items:center;gap:4px;width:88px}.pp-ladder-star{width:42px;height:42px}.pp-ladder-star.gold path{fill:var(--accent-glow)}.pp-ladder-star.white path{fill:var(--star-evo-white)}.pp-ladder-star.blue path{fill:var(--star-evo-blue)}.pp-ladder-label{font-size:var(--fs-note);color:var(--text-dim-on-dark);line-height:1.3;text-align:center}.pp-ladder-arrow{color:var(--text-dim-on-dark);font-size:15px}.choice,.keypad-key,.answer-display{border-color:var(--edge-ui)}.keypad-key.ok{color:var(--bg-child, #131F24)}.mode-chip.on{border-color:var(--star-gold, #FFC800);color:var(--star-gold, #FFC800);background:#ffc8001f}.mode-chip:not(.locked){transition:transform .12s ease-out,border-color var(--dur-micro),color var(--dur-micro),background var(--dur-micro)}.mode-chip:not(.locked):active{transform:scale(.95)}.mode-chip.locked,.scratch-wrap{border-color:var(--edge-ui)}.scratch-wrap{background-image:radial-gradient(rgba(143,166,178,.1) 1px,transparent 1px);background-size:22px 22px}.scratch-clear{transition:transform .12s ease-out;font-size:15px}.scratch-label{opacity:1}.keypad-key{transition:transform .11s ease-out}.relearn-link{min-height:var(--touch-min)}.relearn-link:active,.sheet-handle{opacity:.7}@keyframes sheet-out{to{transform:translateY(105%)}}.sheet.closing{animation:sheet-out .24s var(--ease-out) both}@keyframes fade-scale-out{to{opacity:0;transform:scale(.96)}}.pp-ladder-overlay.closing{animation:fade-scale-out .18s var(--ease-out) both}.pp-ladder-overlay.closing .pp-ladder-card{pointer-events:none}.q-next{width:100%;margin-top:12px;font-size:20px;min-height:58px}.sheet .cta-main{min-height:60px}.choice.correct{color:var(--bg-child, #131f24)}.tp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-teach);display:flex;flex-direction:column;padding:max(10px,env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));animation:tp-in var(--dur-enter) var(--ease) both}@keyframes tp-in{0%{opacity:0;transform:translateY(6%) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.tp-top{display:flex;align-items:center;gap:12px}.tp-icon{width:var(--touch-min);height:var(--touch-min);border-radius:50%;border:none;background:var(--bg-child-soft);color:var(--text-on-dark);font-size:18px;cursor:pointer}.tp-dots{flex:1;display:flex;justify-content:center;gap:8px}.tp-dot{width:10px;height:10px;border-radius:50%;background:var(--node-unlit);border:1.5px solid var(--map-edge);transition:transform var(--dur-micro) var(--ease),background var(--dur-micro),border-color var(--dur-micro),box-shadow var(--dur-micro)}.tp-dot.past{background:var(--primary);border-color:var(--primary)}.tp-dot.now{background:var(--accent-glow);border-color:var(--accent-glow);transform:scale(1.35);box-shadow:0 0 10px #ffc80099}.tp-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;animation:tp-scene-in .42s var(--ease) both}@keyframes tp-scene-in{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.tp-subtitle{text-align:center;font-size:var(--fs-body);line-height:1.7;padding:6px 10px;min-height:3.4em;color:var(--text-on-dark)}.tp-parent{text-align:center;margin:4px 0}.tp-parent-chip{border:1.5px dashed var(--secondary);background:transparent;color:var(--secondary);border-radius:var(--radius-btn);padding:6px 16px;min-height:36px;font-family:inherit;font-size:var(--fs-label);cursor:pointer}.tp-parent-text{margin-top:8px;font-size:var(--fs-label);color:var(--secondary);animation:tp-scene-in .3s var(--ease) both}.tp-nav{display:flex;justify-content:space-between;gap:12px;margin-top:8px}.tp-nav .btn3d:disabled{opacity:.4;cursor:default}.tp-icon{transition:transform .12s ease-out,background .12s}.tp-icon:active{transform:scale(.9);background:var(--map-edge)}.tp-parent-chip{min-height:var(--touch-min)}.tp-parent-chip:active{opacity:.7}.tp-dot{border-color:var(--edge-ui)}@media(min-width:700px){.td-scene-img{width:min(45vw,340px);height:min(45vw,340px)}.tp-subtitle{max-width:560px;margin-inline:auto}}@media(min-width:640px){.td-scene-img{width:min(55vw,380px);height:min(55vw,380px)}}.qfig-wrap{display:flex;justify-content:center;margin:4px 0 10px}.qfig{width:min(300px,78vw);height:auto;overflow:visible}.fig-line{stroke:var(--star-dust);stroke-width:2;stroke-linecap:round;fill:none}.fig-dash{stroke:var(--text-dim-on-dark);stroke-width:1.6;stroke-dasharray:4 4;fill:none}.fig-shape{stroke:var(--star-dust);stroke-width:2;fill:#8fa6b21a;stroke-linejoin:round}.fig-shape.dim{fill:#8fa6b20d}.fig-right{fill:none;stroke:var(--text-dim-on-dark);stroke-width:1.2}.fig-arc{stroke:var(--accent-glow);stroke-width:2;fill:none}.fig-dot{fill:var(--star-dust)}.fig-dot.hot{fill:var(--accent-glow)}.fig-hot-line{stroke:var(--accent-glow);stroke-width:2.4;stroke-linecap:round}.fig-num{fill:var(--text-on-dark);font-size:15px;font-weight:700;text-anchor:middle;font-family:inherit}.fig-num.side{text-anchor:end;dominant-baseline:middle}.fig-num.hot{fill:var(--accent-glow)}.fig-num.small{font-size:12px}.fig-num.onpie{fill:var(--bg-child);font-weight:900}.fig-label{fill:var(--text-dim-on-dark);font-size:12px;text-anchor:middle}.fig-bar{fill:#8fa6b266;stroke:var(--star-dust);stroke-width:1.2}.fig-bar.hot{fill:#ffc80080;stroke:var(--accent-glow)}.fig-pie{stroke:var(--bg-child);stroke-width:2}.fig-pie.hot{fill:var(--accent-glow)}.fig-pie.fig-pie-a{fill:var(--fig-cat-a)}.fig-pie.fig-pie-b{fill:var(--fig-cat-b)}.fig-pie.fig-pie-c{fill:var(--fig-cat-c)}.fig-pie.fig-pie-d{fill:var(--fig-cat-d)}.fig-pie.fig-pie-e{fill:var(--fig-cat-e)}.rp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-round);display:flex;flex-direction:column;padding:max(10px,env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));animation:tp-in var(--dur-enter) var(--ease) both}.rp-top{display:flex;align-items:center;gap:12px}.rp-progress{flex:1;display:flex;justify-content:center;gap:10px}.rp-dot{width:12px;height:12px;border-radius:50%;background:var(--node-unlit);border:1.5px solid var(--map-edge);transition:all var(--dur-micro) var(--ease)}.rp-dot.now{transform:scale(1.4);border-color:var(--accent-glow)}.rp-dot.ok{background:var(--primary);border-color:var(--primary)}.rp-dot.miss{background:var(--error-soft);border-color:var(--error-soft)}.rp-phase{font-size:var(--fs-label);color:var(--text-dim-on-dark);min-width:64px;text-align:right}.rp-hard-tag{color:var(--purple);font-weight:700;margin-right:6px}.rp-paragon{display:flex;align-items:center;gap:10px;margin:14px auto 0;max-width:320px}.rp-paragon-lv{font-size:var(--fs-label);color:var(--accent-glow);font-weight:700;white-space:nowrap}.rp-paragon-bar{flex:1;height:10px;border-radius:5px;background:var(--node-unlit);overflow:hidden}.rp-paragon-fill{display:block;height:100%;border-radius:5px;background:var(--accent-glow);transition:width .6s var(--ease)}.rp-paragon-num{font-size:13px;color:var(--text-dim-on-dark);white-space:nowrap}.rp-milestone{margin-top:12px;color:var(--purple);font-size:var(--fs-body);font-weight:700;animation:pop-in .4s var(--ease) both}.rp-tomorrow{margin:14px auto 0;max-width:340px;padding:10px 18px;border:1.5px dashed var(--accent-glow);border-radius:14px;color:var(--accent-glow);font-size:var(--fs-label);line-height:1.6;text-align:center;animation:pop-in .5s var(--ease) both .3s}.rp-stage{flex:1;min-height:0;display:flex;overflow-y:auto}.rp-stage .question-block{max-width:560px;width:100%;min-height:100%;margin:0 auto}@media(min-width:720px){.rp-stage .question-block{max-width:1080px}}.rp-nav{display:flex;justify-content:center;min-height:56px}.rp-breaker{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;animation:tp-in .32s var(--ease) both}.rp-breaker-card{background:var(--bg-child-soft);border:1.5px solid var(--secondary);border-radius:var(--radius-card);padding:28px 30px;max-width:400px;text-align:center;animation:pop-in .42s var(--ease) both}.rp-breaker-title{font-size:var(--fs-title);color:var(--secondary)}.rp-breaker-body{margin:12px 0 18px;font-size:var(--fs-body);line-height:1.6}.rp-breaker-actions{display:flex;flex-direction:column;gap:12px}.rp-done{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:12px 0}@media(max-height:720px){.rp-done{justify-content:flex-start}}.rp-mascot{animation:correct-pop .7s var(--ease) both}.rp-stars{display:flex;gap:10px;font-size:44px}.rp-star{color:var(--node-unlit);animation:star-in .5s var(--ease) both;animation-delay:calc(var(--i) * .16s)}.rp-star.earned{color:var(--accent-glow);text-shadow:0 0 18px rgba(255,200,0,.55)}@keyframes star-in{0%{opacity:0;transform:scale(0) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}.rp-sparklabel{font-size:var(--fs-label);color:var(--text-dim-on-dark);letter-spacing:1px}.rp-done-title{font-size:var(--fs-title);color:var(--accent-glow)}.rp-hard-unlock{margin-top:10px;color:var(--purple);font-weight:700;font-size:var(--fs-label)}.rp-done-body{font-size:var(--fs-body);color:var(--text-on-dark);line-height:1.6}.rp-done.lit .rp-done-title{text-shadow:0 0 22px rgba(255,200,0,.6);animation:correct-pop .6s var(--ease) both}.rp-done.lit .rp-star.earned{color:var(--accent-glow)}.rp-sparklabel{font-size:22px;color:var(--star-gold, #FFC800);font-weight:700}.rp-hard-unlock{background:#ce82ff1f;border-radius:var(--radius-btn);padding:8px 18px;display:inline-block}.rp-star{color:var(--edge-ui)}.rp-dot{border-color:var(--edge-ui)}.rp-breaker-actions .btn3d{min-height:var(--touch-min)}@keyframes rp-breaker-out{to{opacity:0}}.rp-breaker.closing{animation:rp-breaker-out .16s var(--ease-out) both}.rp-hard-tag{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--radius-btn);background:#ce82ff29;color:var(--purple);border:1.5px solid var(--purple);font-size:var(--fs-caption);font-weight:800}.cp-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-boss);display:flex;flex-direction:column;gap:10px;overflow-y:auto;padding:max(10px,env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));animation:tp-in var(--dur-enter) var(--ease) both}.cp-head{display:flex;align-items:center;gap:12px}.cp-title{flex:1;font-size:var(--fs-body);color:var(--purple);text-align:center}.cp-phase{font-size:var(--fs-label);color:var(--text-dim-on-dark);min-width:70px;text-align:right}.cp-problem{font-size:var(--fs-question);line-height:1.65;background:var(--bg-child-soft);border-left:4px solid var(--purple);border-radius:12px;padding:12px 16px}.cp-instruction{color:var(--text-dim-on-dark);font-size:var(--fs-label);margin-bottom:8px}.cp-order{display:flex;flex-direction:column;gap:12px;align-items:stretch}.cp-slots{display:flex;flex-direction:column;gap:8px}.cp-slots.shake{animation:gentle-shake .36s ease-in-out}.cp-slot{min-height:50px;border:2px dashed var(--map-edge);border-radius:12px;display:flex;align-items:center;padding:6px 14px;cursor:pointer}.cp-slot-card{color:var(--accent-glow);font-weight:700;font-size:var(--fs-body)}.cp-slot-empty{color:var(--text-dim-on-dark);font-size:var(--fs-label)}.cp-pool{display:flex;flex-wrap:wrap;gap:10px}.cp-card{border:2px solid var(--secondary);background:var(--bg-child-soft);color:var(--text-on-dark);border-radius:14px;padding:10px 16px;min-height:var(--touch-min);font-family:inherit;font-size:var(--fs-label);font-weight:700;cursor:pointer;transition:transform var(--dur-micro) var(--ease),opacity var(--dur-micro)}.cp-card:active{transform:scale(.95)}.cp-card.used{opacity:.28;border-style:dashed}.cp-calc{display:flex;flex-direction:column;gap:14px;animation:pop-in .38s var(--ease) both}.cp-chain{display:flex;flex-wrap:wrap;gap:6px}.cp-chain-node{font-size:13px;border-radius:8px;padding:4px 10px;border:1.5px solid var(--map-edge);color:var(--text-dim-on-dark)}.cp-chain-node.done{border-color:var(--primary);color:var(--primary)}.cp-chain-node.now{border-color:var(--accent-glow);color:var(--accent-glow);font-weight:700;box-shadow:0 0 10px #ffc8004d}.cp-step-q{font-size:var(--fs-question)}.cp-win{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center}.cp-win-badge{font-size:76px;animation:correct-pop .6s var(--ease) both}.cp-win-title{font-size:var(--fs-title);color:var(--purple)}.cp-win-body{font-size:var(--fs-body)}.cp-win-streak{font-size:var(--fs-label);color:var(--accent-glow);font-weight:700;margin-top:8px}.cp-insight{max-width:480px;background:linear-gradient(145deg,#2a2340,#1d1830);border:1.5px solid var(--purple);border-radius:var(--radius-card);padding:16px 20px;font-size:var(--fs-body);line-height:1.7;animation:pop-in .5s var(--ease) both .3s}.cp-win-actions{display:flex;gap:12px;margin-top:6px}@media(max-width:480px){.cp-problem{font-size:var(--fs-body);padding:10px 12px}.cp-slot{min-height:42px;padding:4px 10px}.cp-slot-card{font-size:var(--fs-label)}.cp-pool{gap:7px}.cp-card{padding:8px 12px;font-size:13px;min-height:40px}.cp-order{gap:9px}}.cp-slot{transition:transform var(--dur-micro) var(--ease),border-color var(--dur-micro);border-color:var(--edge-ui)}.cp-slot:active{transform:scale(.97);border-color:var(--secondary)}@media(max-width:480px){.cp-slot{min-height:var(--touch-min);padding:4px 10px}.cp-card{min-height:var(--touch-min);padding:6px 12px;font-size:13px}}.bo-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-break);background:var(--scrim-strong);display:flex;align-items:center;justify-content:center;animation:tp-in .4s var(--ease) both}.bo-card{background:var(--bg-child-soft);border:1.5px solid var(--accent-glow);border-radius:var(--radius-card);padding:30px 34px;max-width:380px;text-align:center;animation:pop-in .46s var(--ease) both}.bo-face{font-size:60px}.bo-title{font-size:var(--fs-title);color:var(--accent-glow);margin-top:8px}.bo-body{margin:12px 0 20px;font-size:var(--fs-body);line-height:1.7;color:var(--text-on-dark);text-align:justify;text-justify:inter-ideograph;text-wrap:balance;line-break:strict}.bo-actions{display:flex;flex-direction:column;gap:12px}.bo-parent-hint{margin-top:16px;font-size:var(--fs-caption);color:var(--text-dim-on-dark);opacity:.8}.bo-parent-hint{opacity:1}@keyframes bo-out{to{opacity:0}}.bo-overlay.closing{animation:bo-out var(--dur-exit) var(--ease-out) both}.ob-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-onboard);display:flex;align-items:center;justify-content:center;padding:20px}.ob-card{max-width:420px;width:100%;background:var(--bg-child-soft);border:1.5px solid var(--accent-glow);border-radius:var(--radius-card);padding:30px 28px;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center;animation:pop-in .48s var(--ease) both;box-shadow:0 0 40px #ffc80026}.ob-emoji{font-size:56px}.ob-title{font-size:var(--fs-title);color:var(--accent-glow);line-height:1.4}.ob-body{font-size:var(--fs-body);line-height:1.7;color:var(--text-on-dark)}.ob-note{font-size:var(--fs-label);color:var(--text-dim-on-dark);line-height:1.6}.ob-input{font-family:inherit;font-size:22px;text-align:center;padding:10px 16px;border-radius:14px;border:2px solid var(--map-edge);background:var(--bg-child);color:var(--text-on-dark);width:220px}.ob-input:focus{outline:none;border-color:var(--secondary)}.ob-grades{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.ob-grade{min-width:86px;min-height:var(--touch-min);border-radius:14px;border:2px solid var(--map-edge);background:var(--bg-child);color:var(--text-on-dark);font-family:inherit;font-size:var(--fs-body);font-weight:700;cursor:pointer;transition:all var(--dur-micro) var(--ease)}.ob-grade.picked{border-color:var(--accent-glow);background:#ffc8001f;color:var(--accent-glow);transform:scale(1.06)}.ob-star{background:none;border:none;cursor:pointer;font-size:84px;line-height:1;color:var(--accent-glow);text-shadow:0 0 26px rgba(255,200,0,.55);animation:ob-pulse 1.6s ease-in-out infinite;min-height:var(--touch-min);transition:transform var(--dur-celebrate) var(--ease)}.ob-star.ignited{animation:ob-ignite .9s var(--ease) both}@keyframes ob-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}@keyframes ob-ignite{0%{transform:scale(1)}45%{transform:scale(2.1) rotate(18deg);text-shadow:0 0 60px rgba(255,200,0,.95)}to{transform:scale(1.25)}}.ob-dots{display:flex;gap:8px;margin-top:4px}.ob-dot{width:8px;height:8px;border-radius:50%;background:var(--node-unlit);border:1px solid var(--map-edge)}.ob-dot.now{background:var(--accent-glow);border-color:var(--accent-glow)}.ob-dot.past{background:var(--primary);border-color:var(--primary)}.ob-star{transition:transform .12s ease-out}.ob-star:active,.ob-grade:active{transform:scale(.94)}.ob-grade{min-height:var(--touch-min)}.ob-input,.ob-grade{border-color:var(--edge-ui)}.ob-step{display:flex;flex-direction:column;align-items:center;animation:pop-in .32s var(--ease) both}.sh-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-spirit);display:flex;flex-direction:column;animation:tp-in .4s var(--ease) both}.sh-head{display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) 16px 8px}.sh-head h1{font-size:var(--fs-title);color:var(--accent-glow);letter-spacing:3px}.sh-scroll{flex:1;min-height:0;overflow-y:auto;padding:4px 14px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px;max-width:640px;width:100%;margin:0 auto}.sh-card{background:var(--bg-child-soft);border-radius:var(--radius-card);padding:18px;text-align:center}.sh-card h2{font-size:var(--fs-body);color:var(--text-on-dark);margin-bottom:12px;letter-spacing:1px}.sh-host{display:flex;justify-content:center;padding:4px 0 2px}.sh-nearest{background:#ffc80014;border:1px solid rgba(255,200,0,.3);border-radius:12px;padding:10px 14px;margin-bottom:12px;text-align:left}.sh-nearest-title{font-size:var(--fs-label);color:var(--accent-glow);font-weight:700;margin-bottom:4px}.sh-nearest-row{font-size:13px;color:var(--text-on-dark);line-height:1.6}.sh-dex-count{margin-left:8px;color:var(--accent-glow);font-size:var(--fs-label)}.sh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(min-width:720px){.sh-grid{grid-template-columns:repeat(4,1fr)}}.sh-cell{background:var(--bg-child);border-radius:14px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;border:1.5px solid transparent}.sh-cell.got{border-color:var(--accent-glow)}.sh-cell.got.rarity-legend{border-color:var(--purple);box-shadow:0 0 12px #ce82ff59}.sh-cell.rarity-legend{grid-column:1 / -1;padding:18px 12px}.sh-cell.rarity-legend .sh-pet-emoji{font-size:60px}.sh-cell.rarity-legend .sh-pet-img{width:76px;height:76px}.sh-cell.rarity-legend .sh-pet-name{font-size:15px}.sh-cell.rarity-legend .sh-pet-reason{font-size:12px}.sh-pet-emoji{font-size:34px;line-height:1;filter:grayscale(1) brightness(.7);opacity:.5}.sh-pet-emoji.got{filter:none;opacity:1}.sh-pet-img{width:52px;height:52px;object-fit:contain}.sh-cell.locked .sh-pet-img{filter:grayscale(1) brightness(.45);opacity:.6}.sh-pet-img.got{filter:none;opacity:1}.sh-pet-name{font-size:13px;color:var(--text-on-dark);font-weight:700}.sh-cell.locked .sh-pet-name{color:var(--text-dim-on-dark)}.sh-pet-reason{font-size:var(--fs-caption);color:var(--text-dim-on-dark);line-height:1.4}.sh-stats{list-style:none;display:flex;flex-direction:column;gap:8px;color:var(--text-on-dark);font-size:var(--fs-body)}.sh-stats b{color:var(--accent-glow);font-size:1.15em}.spirit-entry{position:absolute;top:max(10px,env(safe-area-inset-top));right:12px;width:52px;height:52px;border:2px solid var(--accent-glow);border-radius:50%;background:var(--bg-child-soft);padding:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:var(--z-map-ui)}.spirit-entry img{width:40px;height:40px;object-fit:contain}@keyframes sh-out{to{opacity:0;transform:translateY(3%) scale(.98)}}.sh-overlay.closing{animation:sh-out var(--dur-exit) var(--ease-out) both}.pz{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;overflow-y:auto;padding:max(14px,env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));animation:tp-in .38s var(--ease) both;font-size:var(--fs-p-body)}.pz-gate{max-width:360px;margin:12vh auto 0;text-align:center;display:flex;flex-direction:column;gap:14px}.pz-gate-title{font-size:var(--fs-p-title)}.pz-gate-sub{color:var(--text-dim)}.pz-pin{font-size:34px;text-align:center;letter-spacing:14px;padding:10px;border:2px solid #d0d0d0;border-radius:14px;width:220px;margin:0 auto;font-family:inherit}.pz-pin.error{border-color:var(--error-soft);animation:gentle-shake .32s ease-in-out}.pz-pin-error{color:var(--error-soft)}.pz-gate-actions{display:flex;gap:12px;justify-content:center}.pz-forgot{background:none;border:none;color:var(--text-dim);font-family:inherit;font-size:13px;text-decoration:underline;cursor:pointer;min-height:36px}.pz-add-form{display:inline-flex;gap:6px;align-items:center}.pz-add-input{font-family:inherit;font-size:14px;padding:8px 14px;border:1.5px solid var(--secondary);border-radius:var(--radius-btn);width:130px}.pz-head{display:flex;justify-content:space-between;align-items:center;max-width:720px;margin:0 auto 14px}.pz-head h1{font-size:var(--fs-p-title)}.pz-card{background:var(--bg-parent-card);border-radius:14px;padding:16px 18px;max-width:720px;margin:0 auto 14px;box-shadow:0 1px 4px #00000012}.pz-card h2{font-size:16px;margin-bottom:10px}.pz-hint{color:var(--text-dim);font-size:13px;margin-bottom:8px}.pz-empty{color:var(--text-dim)}.pz-children{display:flex;gap:10px;flex-wrap:wrap}.pz-grade-set{margin-top:14px}.pz-grade-set-label{font-size:13px;color:var(--text-dim)}.pz-grade-pick{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.pz-grade-btn{border:1.5px solid #d0d0d0;background:#fff;border-radius:10px;padding:6px 12px;min-height:38px;font-family:inherit;font-size:14px;cursor:pointer}.pz-grade-btn.active{border-color:var(--primary);background:#f0fae8;font-weight:700}.pz-child-chip{border:1.5px solid #d0d0d0;background:#fff;border-radius:var(--radius-btn);padding:8px 18px;min-height:40px;font-family:inherit;font-size:14px;cursor:pointer}.pz-child-chip.active{border-color:var(--primary);background:#f0fae8;font-weight:700}.pz-child-chip.add{border-style:dashed;color:var(--text-dim)}.pz-grade-lock{margin-left:10px;font-size:12px;font-weight:400;color:var(--secondary);border:1px solid var(--secondary);border-radius:8px;padding:2px 8px}.pz-grade-toggle{background:none;border:none;color:var(--text-dim);font-family:inherit;font-size:13px;text-decoration:underline;cursor:pointer;min-height:32px;margin-bottom:8px}.pz-grade-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.pz-grade-tab{border:1.5px solid #d0d0d0;background:#fff;border-radius:var(--radius-btn);padding:6px 16px;min-height:36px;font-family:inherit;font-size:13px;cursor:pointer}.pz-grade-tab.active{border-color:var(--secondary);background:#e8f6fd;font-weight:700}.pz-progress{list-style:none;display:flex;flex-direction:column;gap:8px}.pz-p-code{display:block;font-size:11.5px;color:var(--text-dim);margin-top:1px}.pz-progress-row{display:flex;align-items:center;gap:10px}.pz-p-icon{width:26px;text-align:center}.pz-p-name{flex:1}.pz-p-meta{color:var(--text-dim);font-size:13px;text-align:right}.pz-p-low{display:block;color:var(--parent-warn);font-size:11.5px}.pz-p-paragon{display:block;color:var(--secondary);font-size:11.5px}.pz-legend{margin-bottom:8px}.pz-advice{font-size:16px;line-height:1.7;font-weight:700;padding:12px 16px;border-radius:12px;background:color-mix(in srgb,var(--secondary) 10%,white);border-left:4px solid var(--secondary)}.pz-advice-reteach,.pz-advice-stuck{background:color-mix(in srgb,var(--error-soft) 10%,white);border-left-color:var(--error-soft)}.pz-advice-praise{background:color-mix(in srgb,var(--primary) 10%,white);border-left-color:var(--primary)}.pz-advice-go{margin-top:8px;border:none;background:var(--parent-action);color:#fff;font-family:inherit;font-size:13px;font-weight:700;border-radius:999px;padding:7px 16px;min-height:36px;cursor:pointer}.pz-weekly{margin-top:12px;font-size:14px;color:var(--parent-action);font-weight:700}.pz-hero{background:color-mix(in srgb,var(--error-soft) 10%,white);border:1.5px solid var(--error-soft);border-radius:12px;padding:14px 16px;margin-bottom:12px}.pz-hero-tag{font-size:12px;font-weight:700;color:var(--parent-warn);letter-spacing:1px;margin-bottom:6px}.pz-hero-desc{font-size:16px;font-weight:700;color:var(--text-main);line-height:1.6;margin-bottom:6px}.pz-hero-meta{font-size:13px;color:var(--text-dim);margin-bottom:12px}.pz-coach-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}@media(max-width:560px){.pz-coach-cols{grid-template-columns:1fr}}.pz-coach-cols h3{font-size:14px;margin-bottom:6px}.pz-coach-list{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-main)}.rc-svg{display:block;width:min(320px,88%);margin:0 auto}.rc-grid{fill:none;stroke:#d0d0d0;stroke-width:1}.rc-spoke{stroke:#d0d0d0;stroke-width:1}.rc-value{fill:color-mix(in srgb,var(--secondary) 30%,transparent);stroke:var(--secondary);stroke-width:2;stroke-linejoin:round}.rc-label{font-size:12.5px;font-weight:700;fill:var(--text-main)}.rc-label-meta{font-size:11px;font-weight:400;fill:var(--text-dim)}.rc-bars{display:flex;flex-direction:column;gap:10px}.rc-bar-row{display:flex;align-items:center;gap:10px}.rc-bar-label{width:72px;font-size:13px;font-weight:700}.rc-bar-track{flex:1;height:12px;border-radius:999px;background:#eee;overflow:hidden}.rc-bar-fill{height:100%;border-radius:999px;background:var(--secondary)}.rc-bar-meta{font-size:12px;color:var(--text-dim);width:44px;text-align:right}.rc-empty{text-align:center;color:var(--text-dim);padding:18px 0}.pz-grade-target{color:var(--parent-action);margin-left:6px}.pz-grade-prompt{color:var(--parent-warn);margin-left:8px}.pz-import-confirm{margin-top:12px;padding:14px 16px;border-radius:12px;background:color-mix(in srgb,var(--error-soft) 8%,white);border:1.5px solid var(--error-soft)}.pz-import-summary{font-size:14px;margin-bottom:6px}.pz-import-warn{font-size:13px;font-weight:700;color:var(--parent-warn);margin-bottom:12px}.pz-progress-row{position:relative}.pz-relearn-btn{flex-shrink:0;border:1px solid var(--parent-warn);background:transparent;color:var(--parent-warn);border-radius:999px;padding:4px 12px;min-height:32px;font-family:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.pz-relearn-btn:active{transform:scale(.95)}.pz-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#00000073;display:flex;align-items:center;justify-content:center;padding:24px}.pz-modal-card{background:var(--bg-parent-card);border-radius:var(--radius-card);padding:24px;max-width:380px;width:100%;box-shadow:0 12px 40px #0000004d}.pz-modal-title{font-size:var(--fs-p-title);color:var(--text-main);margin-bottom:10px}.pz-modal-body{font-size:14px;color:var(--text-main);line-height:1.7;margin-bottom:10px}.pz-reteach{list-style:none;display:flex;flex-direction:column;gap:10px}.pz-reteach-row{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.pz-r-count{background:#fff3e0;color:var(--error-soft);font-weight:700;border-radius:8px;padding:2px 10px;font-size:13px}.pz-r-desc{flex:1;min-width:200px}.pz-r-action{color:var(--parent-action);font-size:13px;font-weight:700}.pz-toggle-row{display:flex;align-items:center;gap:12px}.pz-switch{position:relative;width:52px;height:30px;border:none;border-radius:999px;background:#d0d0d0;cursor:pointer;padding:0;transition:background var(--dur-micro) var(--ease);flex-shrink:0}.pz-switch.on{background:var(--primary)}.pz-switch-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform var(--dur-micro) var(--ease)}.pz-switch.on .pz-switch-knob{transform:translate(22px)}.pz-toggle-label{font-size:14px;color:var(--text-main);font-weight:700}.pz-focus{display:flex;align-items:center;gap:10px}.pz-focus input{width:90px;font-size:20px;padding:8px 12px;border:1.5px solid #d0d0d0;border-radius:10px;font-family:inherit;text-align:center}.pz-backup-actions{display:flex;gap:12px;flex-wrap:wrap}.pz-tour{border:2px solid var(--parent-accent, #4a7dbd)}.pz-tour-steps{margin:8px 0 14px;padding-left:22px;display:grid;gap:8px}.pz-persist-warn{background:#fff3e0;color:#8a4a00;border-radius:8px;padding:8px 12px;font-size:14px;margin:6px 0}.pz-persist-ok{color:#2e7d32}.pz-faq{margin:6px 0}.pz-faq summary{cursor:pointer;font-weight:600;padding:6px 0;min-height:44px;display:flex;align-items:center}.pz-faq p{margin:4px 0 10px;padding-left:14px;color:var(--parent-text-soft, #555);line-height:1.6}.pz-about a{color:var(--parent-accent, #2a6dd0)}.pz-diag-btn{margin-top:8px;padding:10px 14px;min-height:44px;border-radius:10px;border:1px solid #c9d4e0;background:#f4f7fa;cursor:pointer;font-size:14px}.pz-unlock-full{border:2px solid #FFC800}.pz-unlock-points{margin:8px 0 10px;padding-left:22px;display:grid;gap:6px}.pz-promo-row{display:flex;gap:8px;align-items:center;margin-top:6px}.pz-pin-error,.pz-r-count{color:var(--parent-warn, #b45500)}.pz-grade-lock{color:var(--parent-action, #1069a8);border-color:var(--parent-action, #1069a8)}.pz-p-paragon{color:var(--parent-action, #1069a8)}.pz-grade-btn,.pz-child-chip,.pz-relearn-btn,.pz-grade-toggle,.pz-advice-go,.pz-forgot,.pz-grade-tab{min-height:var(--touch-min)}.td-scene{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:240px;padding:12px}.td-scene-img{width:min(220px,60vw);height:auto;filter:drop-shadow(0 6px 20px rgba(0,0,0,.35));animation:td-pop .5s var(--ease) both}.td-store{position:relative;text-align:center}.td-store-face{font-size:96px}.td-sign{display:inline-flex;flex-direction:column;align-items:center;background:var(--error-soft);color:#fff;border-radius:14px;padding:10px 26px;margin-top:8px;transform-origin:top center;animation:td-swing 2.6s ease-in-out infinite;box-shadow:0 6px 18px #00000059}.td-sign-small{font-size:var(--fs-label);opacity:.9}.td-sign-big{font-size:44px;font-weight:900;letter-spacing:4px}.td-confetti{position:absolute;top:-6px;right:-28px;font-size:34px;animation:td-pop .6s var(--ease) both .4s}@keyframes td-swing{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes td-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.td-price-tag{font-size:var(--fs-body);color:var(--text-dim-on-dark)}.td-coins{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.td-coin{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;color:#7a5b00;background:radial-gradient(circle at 35% 30%,#ffe27a,var(--accent-glow));border:2.5px solid #d9a400;animation:td-coin-in .42s var(--ease) both;animation-delay:calc(var(--i) * .11s)}.td-coin.keep{border-color:var(--error-soft);transform-origin:bottom;animation:td-coin-in .42s var(--ease) both,td-coin-lift .7s var(--ease) both 1.5s}@keyframes td-coin-in{0%{opacity:0;transform:translateY(18px) scale(.4)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes td-coin-lift{to{transform:translateY(-14px)}}.td-coin-labels{display:flex;gap:26px;font-size:var(--fs-label)}.pay-label{color:var(--primary);font-weight:700}.keep-label{color:var(--error-soft);font-weight:700}.td-bar{display:flex;gap:4px;width:min(92%,460px)}.td-cell{flex:1;height:56px;border-radius:8px;background:var(--node-unlit);border:1.5px solid var(--map-edge);animation:td-cell-in .38s var(--ease) both;animation-delay:calc(var(--i) * .13s)}.td-cell.paid{background:var(--primary);border-color:var(--primary)}.td-cell.kept{background:transparent;border-style:dashed;border-color:var(--error-soft)}@keyframes td-cell-in{0%{opacity:0;transform:scaleY(.2)}to{opacity:1;transform:scaleY(1)}}.td-bar-caption{display:flex;gap:26px;font-size:var(--fs-body)}.td-formula{text-align:center;display:flex;flex-direction:column;gap:14px}.td-f-line{font-size:var(--fs-question);animation:td-line-in .5s var(--ease) both;animation-delay:calc(var(--d) * .9s)}.td-f-line.big{font-size:34px;color:var(--accent-glow);font-weight:900}.td-f-line strong{font-size:42px}@keyframes td-line-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.td-try-q{font-size:var(--fs-question);text-align:center;line-height:1.6}.td-try-choices{display:flex;gap:16px}.td-spell{background:linear-gradient(145deg,#21323b,#17262d);border:2px solid var(--accent-glow);border-radius:var(--radius-card);padding:26px 34px;text-align:center;animation:td-pop .55s var(--ease) both;box-shadow:0 0 34px #ffc8002e}.td-spell-title{color:var(--accent-glow);font-size:var(--fs-body);font-weight:700}.td-spell-body{font-size:var(--fs-question);margin-top:12px;font-weight:900}.tc-shop{font-size:90px}.tc-tags{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.tc-tag{background:var(--bg-child-soft);border:1.5px solid var(--secondary);color:var(--text-on-dark);border-radius:var(--radius-btn);padding:8px 18px;font-size:var(--fs-body);animation:td-line-in .45s var(--ease) both;animation-delay:calc(var(--i) * .5s)}.tc-items{display:flex;align-items:center;gap:14px}.tc-item{display:flex;flex-direction:column;align-items:center;font-size:54px;animation:td-coin-in .42s var(--ease) both;animation-delay:calc(var(--i) * .35s)}.tc-item span{font-size:var(--fs-body);color:var(--accent-glow);font-weight:700}.tc-plus{font-size:34px;color:var(--text-dim-on-dark)}.tc-exchange{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}.tc-money{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 20px;border-radius:var(--radius-card);border:2px solid var(--map-edge);animation:td-coin-in .48s var(--ease) both;animation-delay:calc(var(--i) * .6s)}.tc-money .tc-bill{font-size:30px;font-weight:900}.tc-money .tc-cap{font-size:var(--fs-label);color:var(--text-dim-on-dark)}.tc-money.paid{border-color:var(--secondary)}.tc-money.store{border-color:var(--error-soft)}.tc-money.back{border-color:var(--primary);box-shadow:0 0 18px #58cc0240}.tpc-battery{display:flex;align-items:center}.tpc-battery-body{position:relative;width:220px;height:92px;border:4px solid var(--text-on-dark);border-radius:16px;overflow:hidden}.tpc-battery-fill{position:absolute;inset:4px auto 4px 4px;width:0;border-radius:9px;background:var(--primary);animation:tpc-charge 1.4s var(--ease) both .3s}@keyframes tpc-charge{to{width:calc(50% - 6px)}}.tpc-battery-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:900;color:var(--text-on-dark);text-shadow:0 1px 6px rgba(0,0,0,.5)}.tpc-battery-tip{width:10px;height:36px;background:var(--text-on-dark);border-radius:0 4px 4px 0}:root{--primary: #58cc02;--primary-press: #46a302;--secondary: #1cb0f6;--secondary-press: #1899d6;--accent-glow: #ffc800;--purple: #ce82ff;--purple-press: #a95fd6;--error-soft: #ff9600;--bg-child: #131f24;--bg-child-soft: #1f2e35;--text-on-dark: #f1f7fb;--text-dim-on-dark: #8fa6b2;--map-edge: #2e4450;--node-unlit: #24343d;--node-dim: #6b5a1e;--star-dust: #cfe3ee;--star-flare: #8fa6b2;--star-core: #c9dae4;--star-flare-lit-cross: #fff3c4;--star-core-lit: #fffbe8;--star-core-dim: #d8c98a;--star-core-coming: #7d92a0;--star-label: #ffffff;--star-label-stroke: #0b1519;--star-label-lit: #ffd75e;--star-label-dim: #cdbd83;--star-label-coming: #8ca2b0;--edge-silk: #9db8c9;--edge-half: #cbb469;--boss-flare-unlit: #7a5b96;--boss-flare-cross: #ecd6ff;--boss-core: #f6ebff;--miniboss-flare: #8a7be8;--miniboss-flare-cross: #d7cffb;--miniboss-core: #efe9ff;--miniboss-flare-unlit: #5f5788;--miniboss-label: #c7bcf4;--miniboss-label-stroke: #171033;--miniboss-label-lit: #ded3ff;--band-watermark: #d7e6f0;--fig-cat-a: #5a7d95;--fig-cat-b: #7a6ba8;--fig-cat-c: #46687c;--fig-cat-d: #8d86b8;--fig-cat-e: #3d5a6b;--star-evo-white: #f2f7ff;--star-evo-white-core: #ffffff;--star-evo-white-label: #eaf3ff;--star-evo-blue: #8fc2ff;--star-evo-blue-cross: #d8ebff;--star-evo-blue-core: #f2f9ff;--star-evo-blue-label: #cfe6ff;--paragon-charge: #d9a441;--sky-bg: radial-gradient(100% 50% at 50% 0%, #0d1720 0%, transparent 55%), linear-gradient(180deg, #0e1a22 0%, #131f24 42%, #10202a 100%);--bg-parent: #f7f7f7;--bg-parent-card: #ffffff;--text-main: #4b4b4b;--text-dim: #767676;--parent-warn: #b45500;--parent-action: #0f6e9e;--fs-question: 22px;--fs-number: 28px;--fs-body: 18px;--fs-label: 15px;--fs-title: 26px;--fs-p-body: 15px;--fs-p-title: 20px;--radius-card: 20px;--radius-btn: 999px;--touch-min: 44px;--edge-ui: #557284;--fs-caption: 13px;--fs-note: 12px;--radius-input: 14px;--radius-panel: 12px;--pad-modal: 28px 24px;--glow-focus: 0 0 10px rgba(255, 200, 0, .45);--glow-crown: 0 0 20px rgba(255, 200, 0, .55);--shadow-float: 0 6px 24px rgba(0, 0, 0, .4);--star-gold: #ffc800;--dur-micro: .25s;--dur-press: .12s;--dur-enter: .45s;--dur-exit: .2s;--ease-out: cubic-bezier(.33, 1, .68, 1);--scrim: rgba(19, 31, 36, .86);--scrim-strong: rgba(19, 31, 36, .9);--z-map-ui: 5;--z-round: 40;--z-boss: 45;--z-teach: 50;--z-spirit: 52;--z-modal: 55;--z-break: 70;--z-onboard: 80;--z-toast: 90;--dur-celebrate: .5s;--ease: cubic-bezier(.34, 1.4, .64, 1);--font-zh: "GenSenRounded", "jf-openhuninn", "Microsoft JhengHei", "Noto Sans TC", sans-serif}@media(prefers-reduced-motion:reduce){:root{--dur-micro: 0ms;--dur-celebrate: 0ms}}@font-face{font-family:GenSenRounded;src:url(/fonts/GenSenRounded-R.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:GenSenRounded;src:url(/fonts/GenSenRounded-B.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:GenSenRounded;src:url(/fonts/GenSenRounded-H.woff2) format("woff2");font-weight:900;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-zh);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.zone-child{background:var(--sky-bg);color:var(--text-on-dark);min-height:100%}@media(min-width:720px){.zone-child .sheet{max-width:640px;margin-left:auto;margin-right:auto}.zone-child .sheet .btn3d{font-size:20px;padding:16px 40px;min-height:58px}.zone-child .sheet .cta-main{font-size:22px;padding:16px 54px}.zone-child .choice{min-height:58px;min-width:132px;font-size:30px}.cp-order,.cp-calc,.cp-win,.rp-done{max-width:720px;margin-left:auto;margin-right:auto}.tp-stage,.tp-subtitle,.tp-nav{max-width:760px;margin-left:auto;margin-right:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;animation-delay:0ms!important;transition-delay:0ms!important}}.zone-parent{background:var(--bg-parent);color:var(--text-main);min-height:100%}.btn3d{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-min);padding:10px 28px;border:none;border-radius:var(--radius-btn);font-family:inherit;font-size:var(--fs-body);font-weight:700;color:#fff;cursor:pointer;background:var(--primary);box-shadow:0 4px 0 var(--primary-press);transition:transform var(--dur-micro) var(--ease),box-shadow var(--dur-micro) var(--ease)}.btn3d:active{transform:translateY(4px);box-shadow:0 0 0 var(--primary-press)}.btn3d.blue{background:var(--secondary);box-shadow:0 4px 0 var(--secondary-press)}.btn3d.blue:active{box-shadow:0 0 0 var(--secondary-press)}.btn3d.purple{background:var(--purple);box-shadow:0 4px 0 var(--purple-press)}.btn3d.purple:active{box-shadow:0 0 0 var(--purple-press)}.parent-entry{position:absolute;top:max(10px,env(safe-area-inset-top));right:12px;min-height:var(--touch-min);display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;border-radius:var(--radius-btn);background:var(--bg-child-soft);color:var(--text-dim-on-dark);font-family:inherit;font-size:14px;cursor:pointer;opacity:.85}.app-toast{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:var(--z-toast);background:var(--bg-child-soft);border:1.5px solid var(--secondary);color:var(--text-on-dark);border-radius:var(--radius-btn);padding:10px 22px;font-size:var(--fs-label);max-width:88vw;text-align:center;animation:pop-in .32s var(--ease) both;box-shadow:0 6px 24px #0006}.eb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px}.eb-card{max-width:340px;text-align:center;background:var(--bg-child-soft);border:1.5px solid var(--accent-glow);border-radius:var(--radius-card);padding:32px 28px}.eb-star{font-size:48px;color:var(--accent-glow);margin-bottom:10px}.eb-title{font-size:var(--fs-title);color:var(--accent-glow);margin-bottom:12px}.eb-body{font-size:var(--fs-body);color:var(--text-on-dark);line-height:1.7;margin-bottom:22px}.eb-copy{margin-top:14px;background:none;border:none;cursor:pointer;color:var(--text-dim-on-dark, #8fa6b2);font-size:13px;text-decoration:underline;min-height:44px}.btn3d{color:var(--bg-child, #131F24)}.spirit-entry,.parent-entry{transition:transform .12s ease-out}.spirit-entry:active{transform:scale(.92)}.parent-entry:active{transform:scale(.95);opacity:1}.app-toast{animation:toast-inout var(--toast-ms, 2.6s) both}@keyframes toast-inout{0%{opacity:0;transform:translate(-50%) translateY(8px)}8%,90%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(6px)}}.sr-only-focusable{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}.sr-only-focusable:focus-visible{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;z-index:var(--z-toast);padding:10px 16px;background:var(--bg-child-soft);color:var(--text-on-dark);border:2px solid var(--secondary);border-radius:10px}:focus-visible{outline:3px solid var(--secondary);outline-offset:2px}
