:root{--ink:#120f2a;--ink-2:#1c1740;--glass:#161234a8;--glass-hi:#282158c7;--line:#c4baff24;--line-hi:#c4baff47;--text:#f3efff;--mist:#b9b2e8;--dim:#7d76b0;--cyan:#4de8ff;--amber:#ffb347;--rose:#ff4fa8;--violet:#9a7cff;--ok:#7dffb0;--bad:#ff5a6e;--display:"Chakra Petch", system-ui, sans-serif;--body:"Chakra Petch", system-ui, -apple-system, sans-serif;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--tap:48px;--r-lg:24px;--r-md:16px;--r-sm:11px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;overscroll-behavior:none;background:#05040c;margin:0;font-weight:700;overflow:hidden}canvas#c{touch-action:none;outline:none;width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}[tabindex]:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.ic{flex:none;width:22px;height:22px;display:block}.hidden{display:none!important}#ui{pointer-events:none;z-index:2;position:fixed;top:0;bottom:0;left:0;right:0}#ui>*{pointer-events:none}.pe,.pe *{pointer-events:auto}.glass{background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(140%);border:1px solid var(--line);box-shadow:0 10px 30px #03020c73,inset 0 1px #ffffff0d}.rbtn{width:var(--tap);height:var(--tap);border-radius:50%;place-items:center;transition:transform .12s,background .2s,box-shadow .2s;display:grid;position:relative}.rbtn:active{transform:scale(.92)}.rbtn .badge{background:var(--rose);color:#fff;min-width:17px;height:17px;font:800 11px/17px var(--body);text-align:center;box-shadow:0 0 10px var(--rose);border-radius:9px;padding:0 4px;position:absolute;top:3px;right:3px}.rbtn .dot{background:var(--amber);width:9px;height:9px;box-shadow:0 0 8px var(--amber);border-radius:50%;position:absolute;top:7px;right:7px}#hud{padding:calc(var(--sat) + 10px) calc(var(--sar) + 12px) 0 calc(var(--sal) + 12px);align-items:flex-start;gap:10px;display:flex;position:absolute;top:0;left:0;right:0}#hud .left,#hud .right{align-items:center;gap:8px;display:flex}#hud .right{margin-left:auto}.chip{height:var(--tap);border-radius:26px;align-items:center;gap:10px;padding:0 16px 0 5px;display:flex}.rank{flex:none;place-items:center;width:38px;height:38px;display:grid;position:relative}.rank svg{position:absolute;top:0;bottom:0;left:0;right:0;transform:rotate(-90deg)}.rank .n{font:700 15px/1 var(--display);color:var(--amber);text-shadow:0 0 10px #ffb347b3}.dname{flex-direction:column;gap:3px;min-width:0;display:flex}.dname b{font:700 14px/1.1 var(--display);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;text-align:left;max-width:34vw;overflow:hidden}.vibe{align-items:center;gap:3px;display:flex}.vibe i{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);background:linear-gradient(90deg, var(--rose) var(--f,0%), #ffffff29 var(--f,0%));width:11px;height:11px;display:block}.vibe.pulse i{animation:.8s vpulse}@keyframes vpulse{50%{filter:drop-shadow(0 0 6px var(--rose));transform:scale(1.45)}}#tracker{text-align:left;left:calc(var(--sal) + 12px);top:calc(var(--sat) + 68px);border-radius:var(--r-md);flex-direction:column;gap:6px;width:min(300px,100vw - 24px);padding:10px 12px 11px;transition:opacity .3s,transform .3s;display:flex;position:absolute}#tracker.gone{opacity:0;transform:translateY(-8px);pointer-events:none!important}#tracker.behind{opacity:0}@media (min-width:880px) and (min-aspect-ratio:5/4){#tracker.behind{opacity:1}}.trk-row{grid-template-columns:1fr auto;align-items:center;gap:4px 10px;display:grid}.trk-row .t{font:700 13px/1.25 var(--body);color:var(--text)}.trk-row .c{font:700 11.5px/1 var(--display);color:var(--amber)}.trk-row .bar{background:#ffffff17;border-radius:2px;grid-column:1/-1;height:4px;overflow:hidden}.trk-row .bar i{background:linear-gradient(90deg, #ff9a3c, var(--amber));height:100%;box-shadow:0 0 8px var(--amber);border-radius:2px;transition:width .5s;display:block}.trk-row .d{font:600 12px/1.3 var(--body);color:var(--mist);grid-column:1/-1}.trk-row+.trk-row{border-top:1px solid var(--line);padding-top:7px}#tracker .more{font:700 11.5px var(--body);color:var(--dim);text-align:left}#dock{padding:0 calc(var(--sar) + 10px) calc(var(--sab) + 10px) calc(var(--sal) + 10px);flex-direction:column;align-items:stretch;gap:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.traywrap{border-radius:var(--r-lg);transform-origin:bottom;flex-direction:column;gap:8px;padding:8px 0 10px;transition:transform .22s cubic-bezier(.2,.9,.25,1.1),opacity .18s;display:flex}.traywrap.closed{opacity:0;transform:translateY(14px)scale(.98);pointer-events:none!important}.traywrap.closed *{pointer-events:none!important}.cats{scrollbar-width:none;scroll-snap-type:x proximity;gap:6px;margin:-7px 0;padding:7px 10px;scroll-padding:0 10px;display:flex;overflow-x:auto}.cats::-webkit-scrollbar{display:none}.tray::-webkit-scrollbar{display:none}.cat{height:40px;color:var(--mist);font:700 13px var(--body);scroll-snap-align:start;border-radius:20px;flex:none;align-items:center;gap:7px;padding:0 12px 0 9px;transition:color .2s,background .2s,box-shadow .2s;display:flex;position:relative}.cat .ic{width:20px;height:20px}.cat.on{color:var(--text);background:#4de8ff1f;box-shadow:inset 0 0 0 1.5px #4de8ffbf,0 0 14px #4de8ff40}.cat.on .ic{color:var(--cyan);filter:drop-shadow(0 0 4px #4de8ffcc)}.cat .dot{background:var(--amber);width:7px;height:7px;box-shadow:0 0 6px var(--amber);border-radius:50%;position:absolute;top:5px;right:6px}.tray{scrollbar-width:none;scroll-snap-type:x proximity;gap:8px;min-height:88px;padding:2px 10px;display:flex;overflow-x:auto}.item{border-radius:var(--r-md);border:1px solid var(--line);scroll-snap-align:start;background:#08061873;flex-direction:column;flex:none;justify-content:flex-start;align-items:center;width:80px;height:88px;padding-top:2px;transition:transform .12s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.item:active{transform:scale(.94)}.item canvas.thumb{width:66px;height:66px;display:block}.item .nm{font:700 10px/1.1 var(--body);color:var(--mist);text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:0 4px;overflow:hidden}.item.on{border-color:#4de8ffe6;box-shadow:0 0 0 1px #4de8ffe6,0 0 16px #4de8ff59,inset 0 0 18px #4de8ff1f}.item.on .nm{color:var(--text)}.item.locked canvas{filter:grayscale()brightness(.35)}.item.locked .lk{color:var(--mist);font:700 11px var(--display);align-content:center;place-items:center;gap:2px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.item.locked .lk .ic{width:18px;height:18px}.item .goalb{width:18px;height:18px;color:var(--amber);background:#ffb34733;border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;left:4px;box-shadow:0 0 8px #ffb34780}.item .goalb .ic{width:12px;height:12px}.showme{height:30px;color:var(--amber);font:700 12px var(--body);background:#ffb34724;border-radius:15px;grid-column:1/-1;justify-self:start;margin-top:4px;padding:0 12px;box-shadow:inset 0 0 0 1px #ffb34773}.item .new{background:var(--amber);color:#2a1600;font:800 9px/1.4 var(--body);border-radius:6px;padding:1px 5px;position:absolute;top:5px;right:5px}.item .skel{background:linear-gradient(110deg,#ffffff08 30%,#ffffff17 50%,#ffffff08 70%) 0 0/200% 100%;border-radius:12px;width:66px;height:66px;animation:1.2s linear infinite skel}@keyframes skel{to{background-position:-200% 0}}.palette{scrollbar-width:none;align-items:center;gap:10px;padding:2px 12px;display:flex;overflow-x:auto}.palette::-webkit-scrollbar{display:none}.seg{border:1px solid var(--line);background:#08061880;border-radius:20px;flex:none;padding:3px;display:flex}.seg button{height:34px;color:var(--mist);font:700 12.5px var(--body);border-radius:17px;align-items:center;gap:6px;padding:0 12px;display:flex}.seg button .ic{width:18px;height:18px}.seg button.on{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-hi);background:#ffffff1a}.sw{border-radius:50%;flex:none;width:38px;height:38px;transition:transform .12s;position:relative;box-shadow:inset 0 0 0 2px #ffffff1f}.sw.light{box-shadow:0 0 12px var(--c), inset 0 0 0 2px #ffffff40}.sw.off{box-shadow:inset 0 0 0 2px #ffffff26;background:repeating-linear-gradient(45deg,#1a1830 0 5px,#26224a 5px 10px)!important}.sw.on{box-shadow:0 0 0 3px var(--ink), 0 0 0 5px var(--text), 0 0 14px var(--c,#fff);transform:scale(1.12)}.sw.locked{opacity:.28}.sw.locked:after{content:"";color:#fff;background:currentColor;position:absolute;top:13px;bottom:13px;left:13px;right:13px;-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M6 10h12v11H6zM8.5 10V7.5a3.5 3.5 0 0 1 7 0V10\" fill=\"none\" stroke=\"black\" stroke-width=\"2.4\"/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M6 10h12v11H6zM8.5 10V7.5a3.5 3.5 0 0 1 7 0V10\" fill=\"none\" stroke=\"black\" stroke-width=\"2.4\"/></svg>") 50%/contain no-repeat}.tools{border-radius:30px;justify-content:space-between;align-items:center;gap:6px;padding:5px;display:flex}.tools .grp{gap:4px;display:flex}.tool{height:var(--tap);min-width:var(--tap);color:var(--mist);font:700 13px var(--body);border-radius:24px;justify-content:center;align-items:center;gap:7px;padding:0 12px;transition:color .2s,background .2s,box-shadow .2s,transform .1s;display:flex;position:relative}.tool:active{transform:scale(.93)}.tool .lbl{display:none}.tool.on{color:var(--text);background:#4de8ff21;box-shadow:inset 0 0 0 1.5px #4de8ffcc,0 0 16px #4de8ff47}.tool.on .ic{color:var(--cyan);filter:drop-shadow(0 0 4px #4de8ffe6)}.tool[data-tool=erase].on{background:#ff5a6e21;box-shadow:inset 0 0 0 1.5px #ff5a6ecc,0 0 16px #ff5a6e47}.tool[data-tool=erase].on .ic{color:var(--bad);filter:drop-shadow(0 0 4px #ff5a6ee6)}.tool[data-tool=paint].on{background:#ff4fa821;box-shadow:inset 0 0 0 1.5px #ff4fa8cc,0 0 16px #ff4fa847}.tool[data-tool=paint].on .ic{color:var(--rose);filter:drop-shadow(0 0 4px #ff4fa8e6)}.tool:disabled{opacity:.35}.tool.toggled .ic{color:var(--amber)}.sep{background:var(--line);width:1px;height:26px;margin:0 2px}#hint{left:50%;bottom:calc(var(--sab) + 190px);font:700 13px var(--body);color:var(--text);white-space:nowrap;border-radius:18px;padding:9px 14px;transition:opacity .25s;position:absolute;transform:translate(-50%)}#hint.gone{opacity:0}#selbar{border-radius:28px;gap:4px;padding:5px;transition:opacity .15s;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,-100%)}#selbar.gone{opacity:0;pointer-events:none!important}#selbar.gone *{pointer-events:none!important}#selbar .tool{min-width:42px;height:42px;padding:0 9px}@media (max-width:520px){#selbar .name{display:none}#selbar{gap:1px;padding:4px}#selbar .tool{min-width:40px;padding:0 8px}}#selbar .name{font:700 12px var(--display);color:var(--mist);white-space:nowrap;text-overflow:ellipsis;align-items:center;max-width:140px;padding:0 8px 0 10px;display:flex;overflow:hidden}#minipal{border-radius:22px;flex-wrap:wrap;justify-content:center;gap:8px;max-width:290px;padding:8px;display:flex;position:absolute;top:0;left:0;transform:translate(-50%,10px)}#bubble{border-radius:18px;min-width:min(230px,70vw);max-width:min(300px,80vw);padding:11px 14px 12px;transition:opacity .2s,transform .25s;position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 12px))}#bubble:after{content:"";background:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:14px;height:14px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}#bubble.gone{opacity:0;transform:translate(-50%,calc(-100% - 4px));pointer-events:none!important}#bubble .who{align-items:baseline;gap:8px;margin-bottom:4px;display:flex}#bubble .who b{font:700 13px var(--display);color:var(--rose)}#bubble .who span{font:700 11px var(--body);color:var(--dim)}#bubble p{font:700 14px/1.38 var(--body);color:var(--text);margin:0}#toasts{left:50%;top:calc(var(--sat) + 66px);flex-direction:column;align-items:center;gap:8px;width:min(420px,100vw - 24px);display:flex;position:absolute;transform:translate(-50%)}.toast{border-radius:var(--r-md);grid-template-columns:auto 1fr auto;align-items:center;gap:2px 12px;width:100%;padding:10px 14px 11px 12px;animation:.45s cubic-bezier(.2,.9,.25,1.15) both tin;display:grid}.toast.out{animation:.35s forwards tout}.toast .tic{width:38px;height:38px;color:var(--amber);background:#ffb34724;border-radius:12px;grid-row:span 2;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #ffb34773}.toast .tt{font:700 14px/1.2 var(--display)}.toast .ts{font:600 12.5px/1.3 var(--body);color:var(--mist)}.toast .xp{font:700 14px var(--display);color:var(--amber);text-shadow:0 0 10px #ffb34799;grid-row:span 2}.toast.story .tic{color:var(--rose);background:#ff4fa824;box-shadow:inset 0 0 0 1px #ff4fa880}.toast.story .xp{color:var(--rose);text-shadow:0 0 10px #ff4fa899}.toast.info .tic{color:var(--cyan);background:#4de8ff1f;box-shadow:inset 0 0 0 1px #4de8ff73}.toast.plain{text-align:center;grid-template-columns:1fr}@keyframes tin{0%{opacity:0;transform:translateY(-14px)scale(.96)}}@keyframes tout{to{opacity:0;transform:translateY(-10px)scale(.97)}}.scrim{pointer-events:auto;background:#04030e8c;animation:.25s both fade;position:absolute;top:0;bottom:0;left:0;right:0}.scrim.clear{background:0 0}@keyframes fade{0%{opacity:0}}.sheet{max-height:86vh;padding:8px 0 calc(var(--sab) + 12px);pointer-events:auto;border-radius:26px 26px 0 0;flex-direction:column;animation:.32s cubic-bezier(.2,.9,.25,1) both sheetin;display:flex;position:absolute;bottom:0;left:0;right:0}.sheet.out{animation:.24s forwards sheetout}.sheet.glass,.modal.glass{-webkit-backdrop-filter:blur(22px)saturate(130%);background:#0e0c22f0}@keyframes sheetin{0%{transform:translateY(100%)}}@keyframes sheetout{to{transform:translateY(100%)}}.sheet .grab{background:var(--line-hi);border-radius:3px;flex:none;width:44px;height:5px;margin:2px auto 8px}.sheet header{flex:none;align-items:center;gap:10px;padding:2px 16px 10px 20px;display:flex}.sheet header h2{font:700 21px/1.1 var(--display);letter-spacing:.005em;margin:0}.sheet header .sub{font:600 13px var(--body);color:var(--mist);margin-top:3px}.sheet header .x{margin-left:auto}.sheet .body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 16px 16px;overflow-y:auto}.tabs{scrollbar-width:none;flex:none;gap:6px;padding:0 16px 10px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{height:36px;color:var(--mist);font:700 13.5px var(--body);background:#ffffff0a;border-radius:18px;flex:none;padding:0 14px}.tabs button.on{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-hi);background:#ffffff1a}.tabs button .n{color:var(--dim);margin-left:4px;font-weight:700}.modal{text-align:center;pointer-events:auto;border-radius:28px;width:min(400px,100vw - 32px);max-height:calc(100vh - 60px);padding:26px 22px 20px;animation:.45s cubic-bezier(.2,.9,.25,1.2) both pop;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.modal.out{animation:.2s forwards popout}@keyframes pop{0%{opacity:0;transform:translate(-50%,-46%)scale(.92)}}@keyframes popout{to{opacity:0;transform:translate(-50%,-50%)scale(.95)}}.modal h2{font:700 26px/1.1 var(--display);margin:6px 0}.modal p{font:600 14.5px/1.45 var(--body);color:var(--mist);max-width:34ch;margin:0 auto 16px}.btn{height:50px;font:800 15px var(--body);border-radius:25px;justify-content:center;align-items:center;gap:8px;padding:0 22px;transition:transform .1s,box-shadow .2s;display:inline-flex}.btn:active{transform:scale(.96)}.btn.primary{color:#fff;background:linear-gradient(#ff6cb8,#ff3f9e);box-shadow:inset 0 0 0 1px #ffffff40,0 6px 22px #ff3f9e73}.btn.cyan{color:#06202a;background:linear-gradient(#7af0ff,#2fd3f0);box-shadow:inset 0 0 0 1px #ffffff4d,0 6px 22px #2fd3f066}.btn.amber{color:#2a1600;background:linear-gradient(#ffc56a,#ff9f2e);box-shadow:inset 0 0 0 1px #ffffff4d,0 6px 22px #ff9f2e66}.btn.ghost{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-hi);background:#ffffff0f}.btn.danger{color:#ff9aa8;background:#ff5a6e1f;box-shadow:inset 0 0 0 1px #ff5a6e80}.btn.wide{width:100%}.btnrow{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.rankring{place-items:center;width:128px;height:128px;margin:0 auto 8px;display:grid;position:relative}.rankring svg{position:absolute;top:0;bottom:0;left:0;right:0}.rankring .big{font:700 52px/1 var(--display);color:var(--amber);text-shadow:0 0 22px #ffb347cc,0 0 4px #fff3}.rtitle{font:700 15px var(--display);color:var(--amber);margin-bottom:14px}.unlocks{flex-wrap:wrap;justify-content:center;gap:8px;margin:4px 0 18px;display:flex}.unlocks .u{width:72px;font:700 10.5px/1.15 var(--body);color:var(--mist);flex-direction:column;align-items:center;gap:2px;display:flex}.unlocks .u canvas{width:60px;height:60px;box-shadow:inset 0 0 0 1px var(--line);background:#08061880;border-radius:14px}.unlocks .u .swb{border-radius:50%;width:42px;height:42px;margin:9px 0}.letterbox{pointer-events:none;background:#000;height:0;transition:height .6s cubic-bezier(.3,.8,.3,1);position:absolute;left:0;right:0}.letterbox.top{top:0}.letterbox.bot{bottom:0}.letterbox.on{height:11vh}.moment{text-align:center;pointer-events:auto;width:min(460px,100vw - 28px);position:absolute;bottom:calc(11vh + 18px);left:50%;transform:translate(-50%)}.moment .k{font:700 13px var(--display);color:var(--rose);text-shadow:0 0 12px #ff4fa8cc;opacity:0;margin-bottom:6px;animation:.6s .4s forwards fade}.moment h2{font:700 30px/1.08 var(--display);text-shadow:0 0 24px #ff4fa88c;opacity:0;margin:0 0 8px;animation:.8s cubic-bezier(.2,.9,.25,1) .7s forwards rise}.moment p{font:600 15.5px/1.5 var(--body);color:#e7e1ff;opacity:0;max-width:36ch;margin:0 auto 16px;animation:.8s cubic-bezier(.2,.9,.25,1) 1.2s forwards rise}.moment .btn{opacity:0;animation:.6s 1.8s forwards rise}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.moment .k{animation:.6s .3s forwards rise}.chap{margin:6px 0 16px}.chap h3{font:700 14px var(--display);color:var(--mist);justify-content:space-between;margin:0 0 8px 4px;display:flex}.chap h3 span{color:var(--dim)}.goal{border-radius:var(--r-md);background:#ffffff09;grid-template-columns:34px 1fr auto;align-items:center;gap:3px 12px;margin-bottom:6px;padding:11px 12px;display:grid}.goal .gi{width:34px;height:34px;color:var(--dim);background:#ffffff0d;border-radius:50%;grid-row:span 2;place-items:center;display:grid}.goal.done .gi{color:var(--amber);background:#ffb34729;box-shadow:0 0 12px #ffb34740}.goal .gt{font:700 14.5px/1.2 var(--body)}.goal .gd{font:600 12.5px/1.35 var(--body);color:var(--mist)}.goal.done .gd{color:var(--dim);font-style:italic}.goal .gx{font:700 12px var(--display);color:var(--amber);text-align:right;grid-row:span 2}.goal .gp{background:#ffffff14;border-radius:2px;grid-column:2/3;height:4px;margin-top:4px;overflow:hidden}.goal .gp i{background:var(--amber);border-radius:2px;height:100%;display:block}.goal.locked{opacity:.5}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.card{border-radius:var(--r-md);background:#ffffff0a;flex-direction:column;gap:4px;padding:12px;display:flex;position:relative;overflow:hidden}.card.found{background:linear-gradient(160deg,#ff4fa824,#ffffff08);box-shadow:inset 0 0 0 1px #ff4fa84d}.card h4{font:700 14px/1.2 var(--display);margin:0}.card p{font:600 12.5px/1.4 var(--body);color:var(--mist);margin:0}.card .q{font:700 34px/1 var(--display);color:var(--dim)}.card.res{flex-direction:row;align-items:center;gap:10px}.card.res canvas{background:#08061880;border-radius:12px;flex:none;width:64px;height:64px}.card.res .meta{flex-direction:column;gap:2px;min-width:0;display:flex}.card.res .role{font:700 11.5px var(--body);color:var(--rose)}.card.res.unmet canvas{filter:brightness(0)drop-shadow(0 0 1px #7d76b0)}.album{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.album .ph{transform:rotate(var(--rot,0deg));background:#eee8dc;border-radius:4px;padding:6px 6px 22px;position:relative;box-shadow:0 6px 18px #00000080}.album .ph img{aspect-ratio:1;object-fit:cover;border-radius:2px;width:100%;display:block}.album .ph span{font:700 10px var(--body);color:#4a4458;text-align:center;position:absolute;bottom:4px;left:8px;right:8px}.empty{text-align:center;color:var(--mist);font:600 14px/1.5 var(--body);padding:30px 10px}.dcard{box-shadow:inset 0 0 0 1px var(--line);background:#ffffff0a;border-radius:20px;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;margin-bottom:10px;padding:16px;display:grid;position:relative;overflow:hidden}.dcard:before{content:"";background:var(--acc);width:4px;box-shadow:0 0 14px var(--acc);position:absolute;top:0;bottom:0;left:0}.dcard h3{font:700 18px/1.15 var(--display);margin:0}.dcard .ch{font:700 12px var(--body);color:var(--acc)}.dcard p{font:600 13.5px/1.45 var(--body);color:var(--mist);grid-column:1/-1;margin:4px 0 6px}.dcard .prog{font:700 12px var(--display);color:var(--dim);grid-column:1/-1;align-items:center;gap:10px;display:flex}.dcard .prog .bar{background:#ffffff12;border-radius:3px;flex:1;height:5px;overflow:hidden}.dcard .prog .bar i{background:var(--acc);height:100%;display:block}.dcard.cur{box-shadow:inset 0 0 0 1.5px var(--acc)}.dcard.locked{opacity:.55}.dcard.locked .btn{pointer-events:none}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:56px;padding:12px 4px;display:flex}.row:last-child{border-bottom:0}.row .l{flex-direction:column;gap:2px;display:flex}.row .l b{font:700 14.5px var(--body)}.row .l span{font:600 12px var(--body);color:var(--dim)}.group-t{font:700 13px var(--display);color:var(--mist);margin:14px 4px 2px}.toggle{background:#ffffff1a;border-radius:15px;flex:none;width:52px;height:30px;transition:background .2s,box-shadow .2s;position:relative}.toggle:after{content:"";background:#d8d3f5;border-radius:50%;width:24px;height:24px;transition:transform .2s cubic-bezier(.3,.9,.3,1.2);position:absolute;top:3px;left:3px}.toggle.on{background:#4de8ff59;box-shadow:0 0 12px #4de8ff59}.toggle.on:after{background:#fff;transform:translate(22px)}input[type=range]{-webkit-appearance:none;appearance:none;background:0 0;flex:none;width:150px;height:30px}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--cyan) var(--v,50%), #ffffff1f var(--v,50%));border-radius:3px;height:6px}input[type=range]::-moz-range-track{background:#ffffff1f;border-radius:3px;height:6px}input[type=range]::-moz-range-progress{background:var(--cyan);border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:50%;width:22px;height:22px;margin-top:-8px;box-shadow:0 0 10px #4de8ffb3}input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:22px;height:22px}.choice{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.choice button{height:34px;color:var(--mist);font:700 12.5px var(--body);background:#ffffff0d;border-radius:17px;padding:0 12px}.choice button.on{color:var(--text);background:#4de8ff29;box-shadow:inset 0 0 0 1.5px #4de8ffb3}.select{flex:none;display:block;position:relative}.select select{-webkit-appearance:none;appearance:none;min-width:124px;height:36px;color:var(--text);font:700 13px var(--body);cursor:pointer;background:#4de8ff14;border:0;border-radius:18px;outline:none;padding:0 36px 0 16px;box-shadow:inset 0 0 0 1.5px #4de8ff8c}.select select:hover{background:#4de8ff21}.select select:focus-visible{box-shadow:inset 0 0 0 1.5px #4de8fff2,0 0 0 3px #4de8ff33}.select:after{content:"";border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan);pointer-events:none;width:7px;height:7px;margin-top:-6px;position:absolute;top:50%;right:15px;transform:rotate(45deg)}.select option{background:var(--ink);color:var(--text)}.moods{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:6px 0 4px;display:grid}.mood{height:64px;font:700 12.5px var(--body);color:#fff;text-shadow:0 1px 4px #000;box-shadow:inset 0 0 0 1px var(--line);border-radius:16px;align-items:flex-end;padding:8px 10px;display:flex;position:relative;overflow:hidden}.mood.on{box-shadow:inset 0 0 0 2px #fff,0 0 16px #ffffff40}.player{background:#ffffff0a;border-radius:18px;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;margin:6px 0 4px;padding:12px;display:grid}.player .art{background:linear-gradient(135deg,#ff4fa8,#6a3cff);border-radius:14px;place-items:center;width:52px;height:52px;display:grid;box-shadow:0 0 18px #ff4fa859}.player .art.spin .ic{animation:6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.player .tn{font:700 15px/1.2 var(--display)}.player .ta{font:600 12px var(--body);color:var(--mist)}.player .ctl{gap:4px;display:flex}.mlist{flex-direction:column;gap:6px;display:flex}.mitem{height:58px;font:700 15.5px var(--body);text-align:left;background:#ffffff0a;border-radius:18px;align-items:center;gap:14px;padding:0 16px;display:flex}.mitem .ic{color:var(--mist)}.mitem span{color:var(--dim);font:600 12.5px var(--body);margin-left:auto}textarea.code{border:1px solid var(--line-hi);width:100%;height:90px;color:var(--text);resize:none;-webkit-user-select:text;user-select:text;background:#0000004d;border-radius:14px;padding:10px;font:600 12px/1.4 ui-monospace,monospace}#photo{position:absolute;top:0;bottom:0;left:0;right:0}#photo .top{top:calc(var(--sat) + 10px);left:calc(var(--sal) + 12px);right:calc(var(--sar) + 12px);justify-content:space-between;gap:8px;display:flex;position:absolute}#photo .bottom{left:0;right:0;bottom:calc(var(--sab) + 14px);flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute}#photo .filters{scrollbar-width:none;border-radius:26px;gap:6px;max-width:calc(100vw - 24px);padding:5px;display:flex;overflow-x:auto}#photo .filters::-webkit-scrollbar{display:none}#photo .filters button{height:38px;color:var(--mist);font:700 13px var(--body);border-radius:19px;flex:none;padding:0 14px}#photo .filters button.on{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-hi);background:#ffffff1f}#photo .ctrls{border-radius:26px;align-items:center;gap:14px;padding:8px 14px;display:flex}#photo .ctrls label{font:700 12.5px var(--body);color:var(--mist);align-items:center;gap:8px;display:flex}#photo .ctrls input[type=range]{width:110px}.shutter{background:#ffffff1f;border-radius:50%;place-items:center;width:76px;height:76px;transition:transform .1s;display:grid;box-shadow:inset 0 0 0 4px #fff,0 0 24px #ffffff4d}.shutter:after{content:"";background:#fff;border-radius:50%;width:58px;height:58px}.shutter:active{transform:scale(.9)}.flash{pointer-events:none;background:#fff;animation:.5s forwards flash;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes flash{0%{opacity:.85}to{opacity:0}}.polaroid{pointer-events:auto;background:#efe9dc;border-radius:4px;width:min(300px,70vw);padding:10px 10px 40px;animation:.6s cubic-bezier(.2,.9,.25,1.2) both polin;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)rotate(-3deg);box-shadow:0 20px 50px #0009}.polaroid img{aspect-ratio:1;object-fit:cover;width:100%;display:block}.polaroid .cap{text-align:center;font:700 14px var(--display);color:#3a3448;position:absolute;bottom:10px;left:0;right:0}@keyframes polin{0%{opacity:0;transform:translate(-50%,-40%)rotate(8deg)scale(.8)}}.tiltline{pointer-events:none;border-top:1px dashed #ffffff59;height:0;position:absolute;left:0;right:0}#title{padding:calc(var(--sat) + 12vh) 20px calc(var(--sab) + 7vh);pointer-events:auto;background:radial-gradient(at 50% 20%,#0a081e00 0%,#05040e8c 100%);flex-direction:column;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#title.out{pointer-events:none;animation:.6s reverse forwards fade}#title.behind{opacity:0;pointer-events:none;transition:opacity .2s}#title.behind *{pointer-events:none!important}.logo{width:min(560px,92vw);display:block}.logo .tube{fill:none;stroke-linecap:round;stroke-linejoin:round}.logo .glow{filter:url(#neonblur)}.logo .on{animation:2.2s step-end both flickon}.logo .l2{animation-delay:.5s}.logo .l3{animation-delay:1.1s}@keyframes flickon{0%{opacity:0}8%{opacity:1}10%{opacity:.1}14%{opacity:1}22%{opacity:.2}25%,to{opacity:1}}.tag{font:700 15px var(--body);color:#fff;text-shadow:0 1px 8px #0000008c;text-align:center;letter-spacing:.01em;opacity:0;margin-top:10px;animation:.8s 1.8s forwards rise}.title-actions{opacity:0;flex-direction:column;gap:10px;width:min(320px,86vw);animation:.8s 2.2s forwards rise;display:flex}.title-actions .btn{width:100%}.title-foot{bottom:calc(var(--sab) + 12px);text-align:center;font:600 11.5px var(--body);color:var(--dim);position:absolute;left:0;right:0}#loader{z-index:10;background:#05040c;place-items:center;transition:opacity .6s;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}#loader.out{opacity:0;pointer-events:none}#loader .ld{flex-direction:column;align-items:center;gap:18px;display:flex}#loader .bar{background:#ffffff14;border-radius:2px;width:180px;height:3px;overflow:hidden}#loader .bar i{background:var(--rose);width:0;height:100%;box-shadow:0 0 10px var(--rose);transition:width .3s;display:block}#loader .msg{font:700 12px var(--display);color:var(--dim)}#loader .drop{background:var(--cyan);width:10px;height:16px;box-shadow:0 0 14px var(--cyan);border-radius:50%/60% 60% 40% 40%;animation:1s ease-in infinite dropf}@keyframes dropf{0%{opacity:0;transform:translateY(-20px)}30%{opacity:1}to{opacity:0;transform:translateY(22px)}}#coach{border-radius:20px;grid-template-columns:46px 1fr;align-items:center;gap:12px;width:min(360px,100vw - 24px);padding:12px 14px;animation:.5s both tin;display:grid;position:absolute;left:50%;transform:translate(-50%)}#coach .av{width:46px;height:46px;color:var(--cyan);background:#4de8ff1f;border-radius:14px;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #4de8ff73,0 0 16px #4de8ff40}#coach .av .ic{width:28px;height:28px}#coach b{font:700 13px var(--display);color:var(--cyan);margin-bottom:2px;display:block}#coach p{font:700 13.5px/1.4 var(--body);margin:0}body.modal-open #coach{opacity:0;pointer-events:none!important}body.modal-open #coach *{pointer-events:none!important}#coach{transition:opacity .25s}#coach .skip{font:700 12px var(--body);color:var(--dim);grid-column:1/-1;justify-self:end;padding:2px 4px}.pulse-target{animation:1.4s ease-in-out infinite ptarget}@keyframes ptarget{50%{box-shadow:inset 0 0 0 2px #4de8fff2,0 0 0 2px #4de8ff8c,0 0 10px #4de8ff8c}}#fps{right:calc(var(--sar) + 8px);bottom:calc(var(--sab) + 150px);color:var(--dim);font:700 11px ui-monospace,monospace;position:absolute}@media (min-width:880px) and (min-aspect-ratio:5/4){:root{--tap:46px}.dname b{max-width:30vw}#dock{flex-direction:column;align-items:flex-start;width:auto;top:auto;bottom:0;left:0;right:auto}.traywrap{transform-origin:0 100%;flex-direction:row;align-items:flex-start;gap:10px;max-height:calc(100vh - 170px);padding:10px}.traywrap.closed{transform:translate(-12px)scale(.98)}.cats{flex-direction:column;gap:4px;margin:-6px -7px;padding:6px 7px;scroll-padding:6px 0;overflow:hidden auto}.cat{width:132px}.tray{grid-template-columns:repeat(4,80px);grid-auto-rows:88px;align-content:start;max-height:calc(100vh - 190px);padding:0 2px;display:grid;overflow:hidden auto}.palette{flex-flow:column wrap;align-items:flex-start;max-width:380px}.palette .sws{flex-wrap:wrap;gap:10px;display:flex}.tools .lbl,.tool .lbl{display:inline}.tool{padding:0 14px}#tracker{top:calc(var(--sat) + 70px)}#hint{bottom:120px}.sheet{border-radius:26px;width:440px;max-height:none;animation-name:sidein;top:16px;bottom:16px;left:auto;right:16px}.sheet.out{animation-name:sideout}.sheet .grab{display:none}@keyframes sidein{0%{transform:translate(calc(100% + 20px))}}@keyframes sideout{to{transform:translate(calc(100% + 20px))}}#toasts{top:calc(var(--sat) + 14px)}}@media (max-width:380px){.tool{min-width:42px;padding:0 9px}.tools{gap:2px}.chip{padding-right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.chip-menu{width:22px;height:22px;color:var(--mist);opacity:.75;flex:none;place-items:center;margin-left:2px;display:grid}.chip-menu svg{width:18px;height:18px}#hud .right{gap:2px}#hud .right .rbtn.glass{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;width:42px}#hud .right .rbtn .ic{filter:drop-shadow(0 1px 3px #000000d9)drop-shadow(0 0 8px #05040e99);width:24px;height:24px}#hud .right .rbtn:hover .ic{color:var(--cyan)}@media (max-width:400px){#hud .right .rbtn.glass{width:38px}.chip-menu{display:none}}.build-tag{text-align:center;font:600 10.5px var(--body);letter-spacing:.06em;color:var(--mist);opacity:.72;text-shadow:0 1px 4px #000c;-webkit-user-select:text;user-select:text;margin-top:12px}.build-id{height:32px;box-shadow:inset 0 0 0 1px var(--line-hi);color:var(--mist);letter-spacing:.02em;background:#ffffff0d;border-radius:10px;padding:0 12px;font:600 12px ui-monospace,SF Mono,Menlo,monospace}.build-id:hover{color:var(--text);box-shadow:inset 0 0 0 1px #4de8ff99}.btn.hero{font-size:17px}#toasts{z-index:3;transition:top .25s}#hud .rbtn.pulse-target{box-shadow:none;animation:none}#hud .rbtn.pulse-target .ic{transform-origin:50%;animation:1.8s ease-in-out infinite icpulse}@keyframes icpulse{0%,to{color:var(--cyan);filter:drop-shadow(0 0 4px #4de8ffe6);transform:scale(1)}33%{color:var(--rose);filter:drop-shadow(0 0 9px #ff4fa8f2);transform:scale(1.22)}66%{color:var(--amber);filter:drop-shadow(0 0 7px #ffb347e6);transform:scale(1.1)}}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/chakra-petch-latin-500-normal-BR1ody1F.woff2)format("woff2"),url(/assets/chakra-petch-latin-500-normal-CnUQnZ4D.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/chakra-petch-latin-600-normal-DVQm9bgb.woff2)format("woff2"),url(/assets/chakra-petch-latin-600-normal-DQKfcdKo.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2)format("woff2"),url(/assets/chakra-petch-latin-700-normal-D1s_c2du.woff)format("woff")}
