@font-face{font-family:Quicksand;font-style:normal;font-display:swap;font-weight:500;src:url(./quicksand-latin-500-normal-_DbwbYKP.woff2)format("woff2"),url(./quicksand-latin-500-normal-7J1fbcAD.woff)format("woff")}@font-face{font-family:Quicksand;font-style:normal;font-display:swap;font-weight:700;src:url(./quicksand-latin-700-normal-Dpk7G9Y6.woff2)format("woff2"),url(./quicksand-latin-700-normal-HjJN-aaT.woff)format("woff")}:root{--bg1:#cfe3ff;--bg2:#e6efff;--bg3:#f6f1ff;--accent:#5b7cfa;--ink:#23284a;--ink-soft:#23284a9e;--glass:#ffffff9e;--glass-strong:#ffffffdb;--glass-line:#ffffffe6;--shadow:0 10px 30px #1e285a29;--heart:#ff5d7a;--star:#ffc93c;--font:"Quicksand", system-ui, -apple-system, sans-serif;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}:root[data-ui=dark]{--ink:#fff;--ink-soft:#ffffffb8;--glass:#ffffff24;--glass-strong:#ffffff38;--glass-line:#ffffff47;--shadow:0 10px 30px #00000040}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{font-family:var(--font);color:var(--ink);background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 55%, var(--bg3) 100%);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-weight:500;transition:background 1s}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}[hidden]{display:none!important}.ic svg,.round-btn svg{width:100%;height:100%;display:block}.backdrop,.stage{width:100%;height:100%;position:fixed;inset:0}.stage{touch-action:none}.screen{pointer-events:none;padding:calc(var(--sat) + 14px) 16px calc(var(--sab) + 18px);flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.screen>*{pointer-events:auto}.logo{align-items:center;gap:12px;display:inline-flex}.logo-mark{filter:drop-shadow(0 6px 12px #1e285a33);width:40px;height:40px}.logo h1{letter-spacing:-.5px;margin:0;font-size:30px;font-weight:700}.home-greeting{background:var(--glass);border-radius:99px;margin:10px auto 0;padding:6px 14px;font-weight:700;display:inline-block}.home{justify-content:flex-start;gap:10px}.home-head{justify-content:space-between;align-items:center;display:flex}.progress-card{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow);border-radius:22px;padding:14px 16px 12px}.pc-stats{text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.pc-stats b{justify-content:center;align-items:center;gap:4px;font-size:24px;font-weight:700;display:flex}.pc-stats span{color:var(--ink-soft);font-size:12px;font-weight:700}.pc-star{width:22px;height:22px;color:var(--star);display:inline-block}.pc-sky{justify-content:space-between;margin-top:12px;font-size:14px;font-weight:700;display:flex}.pc-bar{background:#7f7fa038;border-radius:4px;height:8px;margin-top:6px;overflow:hidden}.pc-bar i{background:var(--accent);border-radius:4px;height:100%;display:block}.pc-hint{color:var(--ink-soft);text-align:center;margin:8px 0 0;font-size:13px}.home-greeting{align-self:center}.path{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;min-height:0;padding:20px 0 30px;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 6% 92%,#0000);mask-image:linear-gradient(#0000,#000 6% 92%,#0000)}.path::-webkit-scrollbar{display:none}.node-row{justify-content:center;align-items:center;height:86px;display:flex;position:relative}.node{background:var(--glass-strong);border:1px solid var(--glass-line);width:64px;height:64px;box-shadow:var(--shadow), inset 0 -4px 0 #00000014;border-radius:22px;justify-content:center;align-items:center;display:flex;position:relative}.node b{font-size:22px;font-weight:700}.node b svg{width:22px;height:22px;display:block}.node.locked{opacity:.5}.node.current{background:var(--accent);color:#fff;border:0;border-radius:26px;width:76px;height:76px;animation:1.8s ease-in-out infinite node-pulse}:root[data-ui=dark] .node.current{color:#1c1f33}.node.special{clip-path:polygon(25% 4%,75% 4%,100% 50%,75% 96%,25% 96%,0 50%);color:#ff6a5c;background:linear-gradient(160deg,#2a2c34,#0d0e12);border:0;border-radius:0;width:74px;height:74px}.node.special.current{color:#fff;background:linear-gradient(160deg,#ff6a5c,#c8322a)}.node-stars{pointer-events:none;gap:1px;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.node-stars i{color:#7f7fa073;filter:drop-shadow(0 1px 1px #0003);width:17px;height:17px}.node-stars i:nth-child(2){transform:translateY(3px)}.node-stars i.on{color:var(--star)}.node-stars svg{width:100%;height:100%;display:block}.node-tag{color:#ff8a7e;white-space:nowrap;background:#15161b;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:700;position:absolute;left:calc(50% + 46px)}.tag-left .node-tag{left:auto;right:calc(50% + 46px)}.sky-sep{background:var(--glass);border-radius:14px;align-items:center;gap:8px;margin:6px 24px 10px;padding:8px 12px;font-size:14px;font-weight:700;display:flex}.sky-sep small{color:var(--ink-soft);margin-left:auto}@keyframes node-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent), var(--shadow)}50%{box-shadow:0 0 0 12px color-mix(in srgb, var(--accent) 0%, transparent), var(--shadow)}}.home-bottom{justify-content:center;align-items:center;gap:12px;display:flex}.daily-btn{padding:16px 18px}.play{background:var(--accent);color:#fff;min-width:200px;box-shadow:0 10px 24px color-mix(in srgb, var(--accent) 45%, transparent), inset 0 -4px 0 #00000024;border-radius:26px;flex-direction:column;align-items:center;padding:14px 36px 12px;transition:transform .12s;display:flex}:root[data-ui=dark] .play{color:#1c1f33}.play:active{transform:scale(.96)}.play-label{font-size:30px;font-weight:700;line-height:1.1}.play-level{opacity:.85;font-size:15px;font-weight:700}.home-row{gap:10px;display:flex}.pill-btn{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow);border-radius:99px;align-items:center;gap:8px;padding:11px 18px;font-weight:700;display:inline-flex;position:relative}.pill-btn.sq{padding:11px 13px}.pill-btn .ic{width:20px;height:20px}.dot-badge{background:var(--heart);border-radius:50%;width:9px;height:9px;position:absolute;top:6px;right:8px}.hud-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.round-btn{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);width:46px;height:46px;box-shadow:var(--shadow);border-radius:50%;flex:none;padding:11px}.round-btn.small{width:38px;height:38px;padding:9px}.hud-title{text-align:center;pointer-events:none}.hud-level{font-size:22px;font-weight:700}.hud-hearts{justify-content:center;gap:4px;margin-top:2px;display:flex}.heart{width:24px;height:24px;color:var(--heart);display:block}.heart.empty{opacity:.45}.heart.lost{animation:.5s heart-lost}@keyframes heart-lost{0%{transform:scale(1.5)}40%{transform:scale(.8)rotate(-12deg)}to{transform:scale(1)}}.hud-count{top:calc(var(--sat) + 76px);background:var(--glass-strong);border:1px solid var(--glass-line);box-shadow:var(--shadow);pointer-events:none;border-radius:99px;align-items:center;gap:6px;padding:6px 14px;font-size:18px;font-weight:700;display:flex;position:fixed;left:50%;transform:translate(-50%)}.hud-count .ic{width:18px;height:18px;color:var(--accent)}:root[data-ui=dark] .hud-count .ic{color:#fff}.hud-tip{left:50%;bottom:calc(var(--sab) + 112px);text-align:center;background:var(--glass-strong);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);width:min(88vw,400px);box-shadow:var(--shadow);pointer-events:none;border-radius:18px;padding:12px 16px;font-weight:700;animation:.35s rise;position:fixed;transform:translate(-50%)}.hud-bottom{justify-content:center;align-items:flex-end;gap:18px;display:flex}.tool{color:var(--ink);flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:700;display:flex;position:relative}.tool .ic{background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);width:52px;height:52px;box-shadow:var(--shadow);border-radius:18px;padding:14px}.tool.big .ic{background:var(--accent);color:#fff;border:0;border-radius:22px;width:64px;height:64px;padding:16px}:root[data-ui=dark] .tool.big .ic{color:#1c1f33}.tool.empty .ic{opacity:.55}.tool:active .ic{transform:scale(.94)}.tool .badge{color:#23284a;text-align:center;background:#fff;border-radius:12px;min-width:24px;height:24px;padding:0 6px;font-size:13px;line-height:24px;position:absolute;top:-6px;right:-8px;box-shadow:0 3px 8px #0000002e}.hand{pointer-events:none;width:54px;height:54px;box-shadow:0 0 0 4px var(--accent), 0 8px 20px #00000040;border:4px solid #fff;border-radius:50%;margin:-6px 0 0 -14px;animation:1.3s ease-in-out infinite tap-pulse;position:fixed;transform:translate(-30%,-30%)}@keyframes tap-pulse{0%,to{opacity:.95;transform:translate(-30%,-30%)scale(1)}50%{opacity:.6;transform:translate(-30%,-30%)scale(.72)}}.card-back,.sheet-back{opacity:0;background:#14183247;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.card-back.show,.sheet-back.show{opacity:1}.card{color:#23284a;text-align:center;background:#fffffff0;border-radius:28px;width:min(88vw,360px);padding:26px 22px 20px;transition:transform .3s cubic-bezier(.2,1.4,.4,1);transform:translateY(20px)scale(.96);box-shadow:0 20px 50px #14183c4d}.card-back.show .card{transform:none}.card h2{margin:8px 0 4px;font-size:30px;font-weight:700}.card-sub{color:#23284ab3;margin:0}.card-extra{background:#fff4cc;border-radius:99px;margin:12px auto 0;padding:6px 14px;font-weight:700;display:inline-block}.card-stars{justify-content:center;gap:6px;display:flex}.cs{color:#dfe3ef;width:54px;height:54px}.cs:nth-child(2){width:64px;height:64px;transform:translateY(-10px)}.cs.on{color:var(--star);filter:drop-shadow(0 4px 6px #ffaa0059);animation:.45s cubic-bezier(.2,1.6,.4,1) both star-pop}.cs.on:first-child{animation-delay:.25s}.cs.on:nth-child(2){animation-delay:.47s}.cs.on:nth-child(3){animation-delay:.69s}@keyframes star-pop{0%{opacity:0;scale:.2}to{opacity:1;scale:1}}.card-icon{width:64px;height:64px;color:var(--heart);margin:0 auto}.card-btns{gap:10px;margin-top:20px;display:flex}.btn{border-radius:16px;flex:1;padding:13px 16px;font-size:17px;font-weight:700}.btn.primary{background:var(--accent);color:#fff;box-shadow:inset 0 -3px #00000024}:root[data-ui=dark] .btn.primary{color:#1c1f33}.btn.ghost{color:#23284a;background:#eef0f7}.btn.wide{width:100%}.btn:active{transform:scale(.97)}.sheet-back{align-items:flex-end}.sheet{color:#23284a;width:min(100vw,520px);max-height:86vh;padding-bottom:var(--sab);background:#fffffff5;border-radius:26px 26px 0 0;flex-direction:column;transition:transform .3s cubic-bezier(.2,1.2,.4,1);display:flex;transform:translateY(30px);box-shadow:0 -10px 40px #14183c40}.sheet-back.show .sheet{transform:none}.sheet .round-btn{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#eef0f7;border:0}.sheet-head{justify-content:space-between;align-items:center;padding:16px 18px 8px;display:flex}.sheet-head h2{margin:0;font-size:24px;font-weight:700}.sheet-body{-webkit-overflow-scrolling:touch;padding:4px 18px 22px;overflow-y:auto}.lv-group h3{align-items:center;gap:8px;margin:14px 0 8px;font-size:16px;display:flex}.lv-group h3 small{color:#23284a8c;margin-left:auto;font-weight:500}.sw{border-radius:6px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #00000014}.lv-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.lv{aspect-ratio:1;background:#f1f3fa;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.lv b{font-size:18px}.lv.current{background:var(--accent);color:#fff}.lv.locked{opacity:.45}.lv-stars{gap:2px;height:12px;display:flex}.lv-stars svg{width:12px;height:12px}.lv-stars i{background:#d5d9e6;border-radius:50%;width:8px;height:8px;margin-top:2px}.lv-stars i.on{background:var(--star)}.daily-date{margin:4px 0 12px;font-weight:700}.week{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day{text-align:center;background:#f1f3fa;border-radius:14px;padding:8px 0;font-size:13px;font-weight:700}.day i{width:18px;height:18px;color:var(--star);margin:4px auto 0;display:block}.day.today{box-shadow:inset 0 0 0 2px var(--accent)}.day.done{background:#fff4cc}.streak{align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.streak .ic{color:#ff8a3c;width:22px;height:22px}.streak small{color:#23284a8c;font-weight:500}.note{color:#23284a99;text-align:center;font-size:14px}.note.small{font-size:12px}.set-row{border-bottom:1px solid #eef0f7;justify-content:space-between;align-items:center;padding:12px 0;font-weight:700;display:flex}.set-row small{color:#23284a8c;font-size:13px;font-weight:500;display:block}.switch{appearance:none;background:#d8dce8;border-radius:15px;flex:none;width:50px;height:30px;margin:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 4px #0003}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px)}.select{font:inherit;color:#23284a;background:#f6f7fb;border:1px solid #d8dce8;border-radius:12px;padding:8px 10px;font-weight:700}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;display:grid}.stats div{text-align:center;background:#f1f3fa;border-radius:16px;padding:10px}.stats b{font-size:22px;display:block}.stats span{color:#23284a99;font-size:13px}.jump{gap:8px;display:flex}.jump input{font:inherit;border:1px solid #d8dce8;border-radius:14px;flex:1;padding:10px 14px;font-size:17px}.banner{text-align:center;pointer-events:none;opacity:0;position:fixed;top:32%;left:50%;transform:translate(-50%)}.banner.show{animation:3s forwards banner}.banner small{letter-spacing:3px;text-transform:uppercase;color:var(--ink-soft);font-weight:700;display:block}.banner strong{white-space:nowrap;text-shadow:0 4px 20px #0000001f;font-size:38px;font-weight:700;display:block}@keyframes banner{0%{opacity:0;transform:translate(-50%,16px)}15%,75%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.toast{left:50%;bottom:calc(var(--sab) + 120px);color:#fff;text-align:center;background:#1e223ce6;border-radius:14px;width:max-content;max-width:88vw;padding:10px 16px;font-weight:700;animation:.3s rise;position:fixed;transform:translate(-50%)}@keyframes rise{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}.confetti{pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.nogl{color:#23284a;text-align:center;background:#fff;border-radius:16px;padding:16px;font-weight:700;position:fixed;top:40%;left:16px;right:16px}@media (prefers-reduced-motion:reduce){.node.current,.hand,.heart.lost,.cs.on{animation:none}}.pc-star svg{width:100%;height:100%;fill:var(--star);display:block}.card-icon.turn{color:#8b3dff}
