luckytri 1.2.1 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/docs/en/CHANGELOG.md +16 -0
  4. package/docs/en/architecture.md +10 -0
  5. package/docs/en/guide.md +2 -0
  6. package/docs/en/npm-release.md +6 -0
  7. package/docs/zh/CHANGELOG.md +16 -0
  8. package/docs/zh/architecture.md +10 -0
  9. package/docs/zh/guide.md +2 -0
  10. package/docs/zh/npm-release.md +8 -0
  11. package/package.json +2 -2
  12. package/public/app/assets/{ChatsPage-eDqFIg97.js → ChatsPage-o-exjdFu.js} +1 -1
  13. package/public/app/assets/{Empty-CAGOJsfD.js → Empty-uSyRBXOT.js} +1 -1
  14. package/public/app/assets/{Field-CRz-JmN1.js → Field-Bfa5dCkk.js} +1 -1
  15. package/public/app/assets/{HeartPage-BGWoeMrC.js → HeartPage-Q5ts7Ko6.js} +1 -1
  16. package/public/app/assets/{LifePage-iao3o3wt.js → LifePage-B4AsD_DM.js} +1 -1
  17. package/public/app/assets/{MemoryPage-Dwi2yi7E.js → MemoryPage-ijD6lsxo.js} +1 -1
  18. package/public/app/assets/{NaturePage-DniImo9U.js → NaturePage-B9-dv8vz.js} +1 -1
  19. package/public/app/assets/{PeoplePage-D-MC3JEt.js → PeoplePage-BG_XPian.js} +1 -1
  20. package/public/app/assets/{PluginsPage-D7dJTf96.js → PluginsPage-CPYYMown.js} +1 -1
  21. package/public/app/assets/SystemPage-B9M9g95D.css +1 -0
  22. package/public/app/assets/{SystemPage-C5CUHjGh.js → SystemPage-CTduZhr3.js} +1 -1
  23. package/public/app/assets/{TimePage-Dwhr3-92.js → TimePage-DScn8IN-.js} +1 -1
  24. package/public/app/assets/{index-L0bHax8C.js → index-5FMs9YYQ.js} +3 -3
  25. package/public/app/assets/{index-BHZcHUMh.css → index-cDDC-1dI.css} +1 -1
  26. package/public/app/assets/{knowledge-BTDNafzl.js → knowledge-Ces-Bx70.js} +1 -1
  27. package/public/app/assets/{media-BBzOAfNG.js → media-BsG-i0Lv.js} +1 -1
  28. package/public/app/assets/{mind-CBTkFje2.js → mind-D3mdwFW3.js} +1 -1
  29. package/public/app/index.html +4 -4
  30. package/public/guide.en.html +14 -3
  31. package/public/guide.html +15 -3
  32. package/public/tutorial.en.md +2 -0
  33. package/public/tutorial.md +2 -0
  34. package/scripts/service-supervisor.js +8 -13
  35. package/scripts/start-server.js +8 -1
  36. package/scripts/update-instance.js +93 -27
  37. package/server/app.js +8 -1
  38. package/server/channels/onebot/adapter.js +25 -1
  39. package/server/channels/onebot/index.js +5 -2
  40. package/server/core/dialogue-contract.js +1 -1
  41. package/server/core/image-preprocessor.js +41 -1
  42. package/server/core/message-scheduler.js +12 -2
  43. package/server/core/orchestrator.js +14 -0
  44. package/server/core/reply-delivery.js +72 -0
  45. package/server/core/turn-processor.js +25 -0
  46. package/server/core/turn.js +25 -1
  47. package/server/i18n/errors.js +50 -0
  48. package/server/runtime/update-errors.js +73 -0
  49. package/server/runtime/update-execution.js +13 -8
  50. package/server/runtime/update-manager.js +30 -8
  51. package/server/stickers/api.js +149 -0
  52. package/server/stickers/index.js +363 -0
  53. package/server/stickers/library.js +199 -0
  54. package/server/stickers/offer.js +123 -0
  55. package/server/stickers/schema.js +25 -0
  56. package/public/app/assets/SystemPage-C_Y5M7JU.css +0 -1
@@ -1 +1 @@
1
- .sky[data-v-d7604463]{z-index:0;contain:paint;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sky-base[data-v-d7604463]{background:radial-gradient(ellipse at 13% 16%, #ffffffd4, transparent 38%), radial-gradient(ellipse at 82% 8%, color-mix(in srgb, var(--glow-b) 36%, transparent), transparent 46%), linear-gradient(168deg, var(--sky-top) 0%, var(--sky-mid) 48%, var(--sky-bottom) 100%);position:absolute;inset:0}.garden[data-v-d7604463]{opacity:.22;background:url(/app/assets/liquid-garden-IMoHBwzc.png) 50% 58%/cover no-repeat;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 8%,#000 42% 100%);mask-image:linear-gradient(#0000 8%,#000 42% 100%)}.garden.custom[data-v-d7604463]{background-position:50%;background-size:cover;-webkit-mask-image:none;mask-image:none}.glow[data-v-d7604463]{opacity:calc(.55 + var(--intensity,.5) * .2);border-radius:50%;position:absolute}.g1[data-v-d7604463]{background:radial-gradient(circle, var(--glow-a) 0%, transparent 64%);width:58vmax;height:58vmax;animation:sky-drift-a-d7604463 calc(34s / var(--tempo,1)) ease-in-out infinite alternate;top:-20vmax;left:-18vmax}.g2[data-v-d7604463]{background:radial-gradient(circle, var(--glow-b) 0%, transparent 66%);width:48vmax;height:48vmax;animation:sky-drift-b-d7604463 calc(41s / var(--tempo,1)) ease-in-out infinite alternate;top:8vh;right:-16vmax}.g3[data-v-d7604463]{background:radial-gradient(circle, color-mix(in srgb, var(--glow-a) 70%, var(--glow-b)) 0%, transparent 68%);width:46vmax;height:46vmax;animation:sky-drift-a-d7604463 calc(47s / var(--tempo,1)) ease-in-out infinite alternate-reverse;bottom:-24vmax;left:22vw}.g4[data-v-d7604463]{background:radial-gradient(circle, color-mix(in srgb, white 55%, var(--glow-b)) 0%, transparent 70%);opacity:.45;width:28vmax;height:28vmax;animation:sky-drift-b-d7604463 calc(28s / var(--tempo,1)) ease-in-out infinite alternate-reverse;top:18vh;left:48vw}.horizon[data-v-d7604463]{background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--glow-a) 62%, transparent), transparent 68%);height:46%;position:absolute;bottom:-6%;left:-12%;right:-12%}.sheen[data-v-d7604463]{pointer-events:none;background:linear-gradient(115deg,#0000 36%,#ffffff24 50%,#0000 64%);position:absolute;inset:0}.vignette[data-v-d7604463]{background:radial-gradient(ellipse at 50% 40%, transparent 42%, color-mix(in srgb, var(--ink) 14%, transparent) 100%);position:absolute;inset:0}.moon[data-v-d7604463]{filter:drop-shadow(0 0 26px #fff0be73);opacity:.92;border-radius:50%;width:78px;height:78px;position:absolute;top:3vh;right:24vw;transform:rotate(-20deg);box-shadow:inset -20px -7px #fff4c2}.particles[data-v-d7604463]{opacity:.55;width:100%;height:100%;position:absolute;inset:0}.particles.off[data-v-d7604463]{display:none}@keyframes sky-drift-a-d7604463{to{transform:translate(6vmax,4vmax)scale(1.08)}}@keyframes sky-drift-b-d7604463{to{transform:translate(-5vmax,6vmax)scale(.94)}}@media (width<=760px){.moon[data-v-d7604463]{width:52px;height:52px;top:1.5vh;right:36vw;box-shadow:inset -13px -5px #fff4c2}}.landscape[data-v-d7604463]{contain:paint;opacity:.55;pointer-events:none;position:absolute;inset:0;overflow:hidden}.landscape i[data-v-d7604463]{background:radial-gradient(ellipse at 34% 42%, #ffffffd9, color-mix(in srgb, var(--glow-b) 53%, transparent) 38%, transparent 72%);border-radius:61% 39% 45% 55%/47% 65% 35% 53%;width:77vw;height:48vw;position:absolute;top:6vh;right:-20vw;transform:rotate(-24deg)}.landscape i[data-v-d7604463]:nth-child(2){opacity:.66;background:radial-gradient(ellipse at 44% 48%, #ffffffc2, color-mix(in srgb, var(--glow-a) 48%, transparent) 46%, transparent 74%);width:61vw;height:35vw;top:38vh;right:-19vw}.landscape i[data-v-d7604463]:nth-child(3){opacity:.72;background:radial-gradient(ellipse at 52% 52%, #ffffffdb, color-mix(in srgb, var(--glow-a) 52%, transparent) 43%, transparent 71%);width:72vw;height:43vw;top:32vh;left:-34vw;right:auto}.landscape i[data-v-d7604463]:nth-child(4){opacity:.58;background:radial-gradient(ellipse at 49% 31%, #ffffffeb, color-mix(in srgb, var(--glow-b) 38%, transparent) 55%, transparent 80%);width:69vw;height:28vw;top:74vh;left:5vw;right:auto}.ta-orb[data-v-3fb60aa5]{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:50%;flex:none;position:relative}.ta-orb.interactive[data-v-3fb60aa5]{cursor:pointer}.ta-orb[data-v-3fb60aa5]:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:4px}svg[data-v-3fb60aa5]{width:100%;height:100%;transition:filter .6s var(--ease), transform .6s var(--spring);overflow:visible}.aura[data-v-3fb60aa5]{transform-box:fill-box;transform-origin:50%;animation:orb-aura-3fb60aa5 calc(4.8s / var(--tempo,1)) ease-in-out infinite}.shadow[data-v-3fb60aa5]{fill:var(--ink);opacity:.1}.body[data-v-3fb60aa5]{filter:drop-shadow(0 8px 14px color-mix(in srgb, var(--orb-c) 40%, transparent))}.shine[data-v-3fb60aa5]{fill:#fff;opacity:.5}.shine.dot[data-v-3fb60aa5]{opacity:.7}.ink[data-v-3fb60aa5]{fill:var(--orb-face)}.line[data-v-3fb60aa5]{fill:none;stroke:var(--orb-face);stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round}.line.thin[data-v-3fb60aa5]{stroke-width:2.6px}.line.hair[data-v-3fb60aa5]{stroke-width:1.6px;opacity:.5}.glint[data-v-3fb60aa5]{fill:#fff}.tongue[data-v-3fb60aa5],.cheeks ellipse[data-v-3fb60aa5]{fill:var(--cheek)}.cheeks[data-v-3fb60aa5]{transition:opacity .5s var(--ease)}.squish[data-v-3fb60aa5]{transform-box:view-box;transform-origin:100px 180px}.is-press .squish[data-v-3fb60aa5]{transition:transform .2s var(--ease);transform:scale(1.06,.93)}.is-poke .squish[data-v-3fb60aa5]{animation:orb-squish-3fb60aa5 .65s var(--spring)}.is-pet .squish[data-v-3fb60aa5]{animation:1.4s ease-in-out orb-wiggle-3fb60aa5}.eye[data-v-3fb60aa5]{transform-box:fill-box;transform-origin:50%}.eyes.blinks .eye[data-v-3fb60aa5]{animation:orb-blink-3fb60aa5 calc(5.6s / var(--tempo,1)) var(--blink-delay,0s) infinite}.eyes.blinks .eye.wink[data-v-3fb60aa5]{animation:6.5s 2s infinite orb-wink-3fb60aa5}.talk[data-v-3fb60aa5],.yawn[data-v-3fb60aa5]{transform-box:fill-box;transform-origin:50%}.talk[data-v-3fb60aa5]{animation:.42s ease-in-out infinite alternate orb-talk-3fb60aa5}.yawn[data-v-3fb60aa5]{animation:6s ease-in-out infinite orb-yawn-3fb60aa5}.page[data-v-3fb60aa5]{fill:var(--paper,#fffdf6);stroke:var(--orb-face);stroke-width:1.8px;stroke-linejoin:round}.pen rect[data-v-3fb60aa5],.pen path[data-v-3fb60aa5]{fill:var(--accent);stroke:var(--orb-face);stroke-width:1.4px}.halo circle[data-v-3fb60aa5]{fill:none;stroke:var(--orb-b);stroke-width:2px;stroke-dasharray:3 9;opacity:.85;transform-box:view-box;transform-origin:100px 112px;animation:26s linear infinite orb-spin-3fb60aa5}.halo .halo-soft[data-v-3fb60aa5]{stroke-dasharray:none;stroke-width:10px;opacity:.18;animation:5s ease-in-out infinite orb-breathe-3fb60aa5}.fx .sparkle[data-v-3fb60aa5]{fill:var(--particle);stroke:color-mix(in srgb, var(--accent) 50%, transparent);stroke-width:.8px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite orb-twinkle-3fb60aa5}.fx .heart[data-v-3fb60aa5]{fill:var(--cheek);opacity:.85;transform-box:fill-box;transform-origin:50%;animation:3.6s ease-out infinite orb-rise-3fb60aa5}.fx .cloud[data-v-3fb60aa5]{fill:color-mix(in srgb, var(--orb-c) 55%, #fff);animation:3.5s ease-in-out infinite alternate orb-float-3fb60aa5}.storm .cloud[data-v-3fb60aa5]{fill:color-mix(in srgb, var(--orb-c) 75%, #444)}.drop[data-v-3fb60aa5]{stroke:var(--orb-c);stroke-width:2.2px;stroke-linecap:round;animation:1.35s linear infinite orb-drop-3fb60aa5}.scribble[data-v-3fb60aa5]{fill:none;stroke:var(--orb-c);stroke-width:2.4px;stroke-linecap:round;animation:.9s ease-in-out infinite alternate orb-float-3fb60aa5}.zz[data-v-3fb60aa5]{font:700 13px/1 var(--font-display);fill:var(--orb-face);opacity:.7;transform-box:fill-box;animation:3.2s ease-in-out infinite orb-z-3fb60aa5}[data-mood=night] .zz[data-v-3fb60aa5]{fill:var(--ink)}.moon[data-v-3fb60aa5]{fill:#fff4c2;filter:drop-shadow(0 0 6px #fff0b499)}.floating-page[data-v-3fb60aa5]{animation:3s ease-in-out infinite alternate orb-float-3fb60aa5}.think .puff[data-v-3fb60aa5]{fill:var(--surface-strong);stroke:var(--line);stroke-width:1.2px}.think .dot[data-v-3fb60aa5]{fill:var(--orb-face);transform-box:fill-box;animation:1.1s ease-in-out infinite orb-dots-3fb60aa5}.talkwaves path[data-v-3fb60aa5]{stroke:var(--accent);animation:1.2s ease-in-out infinite pulse-soft}.orb-say[data-v-3fb60aa5]{z-index:3;background:var(--surface-strong);border:1px solid var(--line);width:max-content;max-width:min(260px,70vw);box-shadow:var(--shadow-soft);color:var(--ink);text-align:left;pointer-events:none;border-radius:16px 16px 16px 4px;margin:0;padding:8px 14px;font-size:13px;font-weight:600;line-height:1.5;position:absolute;bottom:92%;left:50%}.orb-say.say-left[data-v-3fb60aa5]{border-radius:16px 16px 4px;bottom:56%;left:auto;right:88%}.orb-say-enter-active[data-v-3fb60aa5]{transition:opacity .25s var(--ease), transform .4s var(--spring)}.orb-say-leave-active[data-v-3fb60aa5]{transition:opacity .2s}.orb-say-enter-from[data-v-3fb60aa5]{opacity:0;transform:translateY(8px)scale(.9)}.orb-say-leave-to[data-v-3fb60aa5]{opacity:0}@keyframes orb-blink-3fb60aa5{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}@keyframes orb-wink-3fb60aa5{0%,86%,to{transform:scaleY(1)}90%,94%{transform:scaleY(.12)}}@keyframes orb-squish-3fb60aa5{0%{transform:scale(1)}18%{transform:scale(1.2,.76)}42%{transform:scale(.9,1.12)}66%{transform:scale(1.05,.96)}to{transform:scale(1)}}@keyframes orb-wiggle-3fb60aa5{0%,to{transform:rotate(0)}15%{transform:rotate(-6deg)}35%{transform:rotate(5deg)}55%{transform:rotate(-4deg)}75%{transform:rotate(2deg)}}@keyframes orb-aura-3fb60aa5{0%,to{opacity:.75;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}@keyframes orb-breathe-3fb60aa5{0%,to{opacity:.12}50%{opacity:.28}}@keyframes orb-talk-3fb60aa5{0%{transform:scaleY(.45)}to{transform:scaleY(1.1)}}@keyframes orb-yawn-3fb60aa5{0%,70%,to{transform:scale(.7)}80%,88%{transform:scale(1.35)}}@keyframes orb-spin-3fb60aa5{to{transform:rotate(360deg)}}@keyframes orb-twinkle-3fb60aa5{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.45)}}@keyframes orb-rise-3fb60aa5{0%{opacity:.85;transform:translateY(0)scale(1)}70%{opacity:.5}to{opacity:0;transform:translateY(-26px)scale(1.15)}}@keyframes orb-drop-3fb60aa5{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}@keyframes orb-z-3fb60aa5{0%{opacity:.7;transform:translate(0)scale(1)}to{opacity:0;transform:translate(10px,-16px)scale(1.15)}}@keyframes orb-dots-3fb60aa5{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes orb-float-3fb60aa5{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.menu-select[data-v-fc4ee90c]{min-width:0;position:relative}.menu-face[data-v-fc4ee90c]{background:linear-gradient(180deg, #ffffffb8, #fff6), var(--surface-strong);border:1px solid var(--glass-edge);width:100%;min-height:42px;box-shadow:var(--glass-sheen);text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.menu-face span[data-v-fc4ee90c]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-face i[data-v-fc4ee90c]{border-right:1.5px solid var(--ink-soft);border-bottom:1.5px solid var(--ink-soft);width:8px;height:8px;transform:translateY(-2px)rotate(45deg)}.menu-list[data-v-fc4ee90c]{z-index:200;background:var(--surface-strong);border:1px solid var(--glass-edge);max-height:280px;box-shadow:var(--glass-sheen), var(--shadow);transform-origin:top;animation:menu-pop-fc4ee90c .46s var(--jelly) both;border-radius:16px;margin:0;padding:6px;list-style:none;display:grid;position:fixed;overflow:auto}.menu-list.up[data-v-fc4ee90c]{transform-origin:bottom}@keyframes menu-pop-fc4ee90c{0%{opacity:0;transform:translateY(10px)scale(.92,.82)}70%{opacity:1;transform:translateY(-2px)scale(1.02,1.04)}to{transform:none}}.menu-list button[data-v-fc4ee90c]{text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:10px;width:100%;padding:8px 10px;font-weight:550}.menu-list button[aria-selected=true][data-v-fc4ee90c]{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--ink)}.empty[data-v-fc4ee90c]{color:var(--ink-soft);padding:8px 10px;font-size:13px}.menu-list button[data-v-fc4ee90c]:hover:not(:disabled){box-shadow:none;background:color-mix(in srgb, var(--accent) 10%, transparent);transform:none}.native[data-v-fc4ee90c]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.ta-chat[data-v-235059b5]{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.preview-meta[data-v-235059b5]{color:var(--ink-soft);font-size:12px}.ta-chat-log[data-v-235059b5]{flex-direction:column;flex:1;gap:10px;min-height:64px;padding:4px 2px;display:flex}.preview-bubble[data-v-235059b5]{overflow-wrap:anywhere;max-width:88%;animation:bubble-in-235059b5 .35s var(--spring);border-radius:18px;padding:9px 13px;font-size:14px;line-height:1.6}.preview-bubble p+p[data-v-235059b5]{margin-top:4px}.preview-bubble.me[data-v-235059b5]{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:6px;align-self:flex-end}.preview-bubble.bot[data-v-235059b5]{background:linear-gradient(135deg, color-mix(in srgb, var(--orb-a) 80%, var(--surface-strong)), color-mix(in srgb, var(--orb-b) 50%, var(--surface-strong)));color:var(--ink);border-bottom-left-radius:6px;align-self:flex-start}[data-mood=night] .preview-bubble.bot[data-v-235059b5]{background:color-mix(in srgb, var(--orb-b) 40%, var(--surface-strong))}.why[data-v-235059b5]{margin-top:6px;font-size:12px}.why summary[data-v-235059b5]{color:var(--ink-soft);font-weight:600}.why summary[data-v-235059b5]:before{content:"▸ "}.why[open] summary[data-v-235059b5]:before{content:"▾ "}.why p[data-v-235059b5]{color:var(--ink-soft);margin-top:4px}.typing[data-v-235059b5]{background:color-mix(in srgb, var(--orb-a) 70%, var(--surface-strong));border-radius:18px 18px 18px 6px;align-self:flex-start;gap:5px;padding:12px 14px;display:inline-flex}.typing i[data-v-235059b5]{background:var(--orb-face);opacity:.5;border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite typing-235059b5}.typing i[data-v-235059b5]:nth-child(2){animation-delay:.15s}.typing i[data-v-235059b5]:nth-child(3){animation-delay:.3s}.ta-chat-form[data-v-235059b5]{flex-shrink:0;gap:8px;display:grid}.ta-chat-options[data-v-235059b5]{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.where[data-v-235059b5]{flex:1;align-items:center;gap:8px;min-width:180px;display:flex}.where[data-v-235059b5] .menu-select{flex:1;min-width:0}.where span[data-v-235059b5]{white-space:nowrap}.where select[data-v-235059b5]{padding:6px 10px;font-size:13px}.composer[data-v-235059b5]{gap:8px;display:flex}.composer input[data-v-235059b5]{border-radius:999px;padding-inline:16px}@keyframes bubble-in-235059b5{0%{opacity:0;transform:translateY(6px)scale(.97)}}@keyframes typing-235059b5{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.companion[data-v-038fa72e]{z-index:80;pointer-events:none;justify-items:end;gap:10px;display:grid;position:fixed;bottom:16px;right:18px}.companion[data-v-038fa72e]>*{pointer-events:auto}.companion-dock[data-v-038fa72e]{align-items:flex-end;gap:4px;display:flex}.companion-talk[data-v-038fa72e]{opacity:1;transition:opacity .25s var(--ease), transform .3s var(--spring);margin-bottom:14px;padding:6px 12px;font-size:12px;transform:none}.companion-dock:hover .companion-talk[data-v-038fa72e],.companion-talk[data-v-038fa72e]:focus-visible,.companion-talk[aria-expanded=true][data-v-038fa72e]{opacity:1;transform:none}@media (hover:none){.companion-talk[data-v-038fa72e]{opacity:1;transform:none}}.scrim[data-v-038fa72e]{z-index:1;background:color-mix(in srgb, var(--ink) 32%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100vw;height:100dvh;box-shadow:none;cursor:pointer;border:none;border-radius:0;margin:0;padding:0;position:fixed;inset:0}.scrim[data-v-038fa72e]:hover:not(:disabled),.scrim[data-v-038fa72e]:active:not(:disabled){box-shadow:none;border:none;transform:none}.scrim-enter-active[data-v-038fa72e],.scrim-leave-active[data-v-038fa72e]{transition:opacity .2s var(--ease)}.scrim-enter-from[data-v-038fa72e],.scrim-leave-to[data-v-038fa72e]{opacity:0}.ta-drawer[data-v-038fa72e]{z-index:2;background:radial-gradient(ellipse at 0% 0%, #ffffffeb, transparent 50%), linear-gradient(145deg, #ffffffb8, #ebf3ff6e 65%, #f8e8fb94), var(--glass-fill);-webkit-backdrop-filter:blur(34px)saturate(1.8);backdrop-filter:blur(34px)saturate(1.8);border:1.5px solid #ffffffde;border-radius:34px;flex-direction:column;gap:12px;width:min(460px,100vw - 28px);height:min(640px,100dvh - 140px);padding:16px 18px 18px;display:flex;position:relative;box-shadow:inset 0 2px 1px #fff,0 28px 64px -27px #3452956b}.drawer-head[data-v-038fa72e]{align-items:center;gap:10px;display:flex}.drawer-title[data-v-038fa72e]{flex:1;justify-items:start;gap:3px;display:grid}.drawer-head h2[data-v-038fa72e]{font-size:16px}.drawer-enter-active[data-v-038fa72e]{transition:opacity .28s var(--ease), transform .55s var(--spring)}.drawer-leave-active[data-v-038fa72e]{transition:opacity .18s,transform .2s}.drawer-enter-from[data-v-038fa72e],.drawer-leave-to[data-v-038fa72e]{opacity:0;transform-origin:100% 100%;transform:translateY(34px)scale(.88)rotate(2deg)}@media (width<=760px){.companion[data-v-038fa72e]{right:12px;bottom:calc(84px + env(safe-area-inset-bottom))}.companion-dock[data-v-038fa72e] .ta-orb{width:58px!important;height:58px!important}.companion-talk[data-v-038fa72e]{margin-bottom:10px;padding:5px 10px}.ta-drawer[data-v-038fa72e]{height:min(520px,100dvh - 190px)}}.drawer-head[data-v-038fa72e] .ta-orb{flex:0 0 42px}.drawer-head[data-v-038fa72e]{border-bottom:1px solid var(--line);flex-shrink:0;padding-bottom:12px}.ta-drawer[data-v-038fa72e] .ta-chat{min-height:0;overflow:hidden}.companion-dock[data-v-038fa72e]{background:linear-gradient(140deg, #ffffffd1, #e8f2ff6b), var(--glass-fill);-webkit-backdrop-filter:blur(22px)saturate(1.75);backdrop-filter:blur(22px)saturate(1.75);transition:transform .42s var(--spring), box-shadow .32s ease;border:1.5px solid #ffffffe0;border-radius:999px;align-items:center;padding:5px 10px;box-shadow:inset 0 2px 1px #fff,0 15px 28px -17px #34529561}.companion-dock[data-v-038fa72e]:hover{transform:translateY(-5px)scale(1.035);box-shadow:inset 0 2px 1px #fff,0 23px 32px -17px #34529573}.companion-talk[data-v-038fa72e]{background:0 0;border:0;margin:0}@media (width<=760px){.companion-dock[data-v-038fa72e] .ta-orb{width:36px!important;height:36px!important}.companion-talk[data-v-038fa72e]{margin:0}}.locale-switch[data-v-bc942b38]{flex-wrap:nowrap;gap:2px;padding:3px}.locale-switch button[data-v-bc942b38]{letter-spacing:.02em;min-width:36px;padding:5px 10px;font-size:12.5px;font-weight:700}@media (width<=760px){.locale-switch button[data-v-bc942b38]{min-width:30px;padding:5px 8px}}.theme-picker[data-v-4e5670d2]{position:relative}.theme-toggle[data-v-4e5670d2]{width:100%;color:var(--ink-soft);text-align:left;background:0 0;border:none;border-radius:14px;align-items:center;gap:10px;padding:8px 12px;display:flex}.theme-toggle[data-v-4e5670d2]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--ink);box-shadow:none;transform:none}.swatch[data-v-4e5670d2]{background:radial-gradient(circle at 36% 30%, var(--orb-a), var(--orb-b) 58%, var(--orb-c));width:20px;height:20px;box-shadow:0 0 0 2px var(--surface-strong), 0 0 0 3px var(--line);border-radius:50%;flex:none}.swatch.auto[data-v-4e5670d2]{background:conic-gradient(#ffc15f,#ffa8cf,#7fdcbc,#99b2d8,#9a8cc4,#cdb6f7,#6f7ee6,#ffc15f)}.theme-menu[data-v-4e5670d2]{z-index:80;background:radial-gradient(ellipse at 0% 0%, #ffffffed, transparent 52%), linear-gradient(145deg, #ffffffb8, #edf3ff5e), var(--glass-fill);-webkit-backdrop-filter:blur(30px)saturate(1.8);backdrop-filter:blur(30px)saturate(1.8);border:1.5px solid #ffffffd9;border-radius:28px;gap:2px;width:250px;max-height:calc(100dvh - 64px);padding:8px;display:grid;position:fixed;top:96px;right:28px;overflow:auto;box-shadow:inset 0 2px 1px #fff,0 24px 58px -27px #34529566}.theme-menu.inline-menu[data-v-4e5670d2]{width:100%;box-shadow:none;position:static}@media (width>=761px) and (width<=1100px){.theme-menu[data-v-4e5670d2]{right:20px}}.theme-menu button[data-v-4e5670d2]{text-align:left;background:0 0;border:none;border-radius:14px;align-items:center;gap:12px;padding:8px 10px;font-weight:500;display:flex}.theme-menu button[data-v-4e5670d2]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 9%, transparent);box-shadow:none;transform:none}.theme-menu button[aria-checked=true][data-v-4e5670d2]{background:linear-gradient(120deg, #ffffffde, color-mix(in srgb, var(--glow-a) 40%, white));box-shadow:inset 0 1px 0 white, 0 8px 18px -13px var(--accent)}.theme-menu button>span[data-v-4e5670d2]:last-child{line-height:1.35;display:grid}.theme-menu b[data-v-4e5670d2]{font-size:13px}.theme-menu small[data-v-4e5670d2]{color:var(--ink-soft);font-size:11.5px}.pop-enter-active[data-v-4e5670d2]{transition:opacity .2s var(--ease), transform .3s var(--spring)}.pop-leave-active[data-v-4e5670d2]{transition:opacity .15s}.pop-enter-from[data-v-4e5670d2],.pop-leave-to[data-v-4e5670d2]{opacity:0;transform:translateY(6px)scale(.98)}.presence-dock[data-v-4625711b]{z-index:4;width:100%;height:calc(100dvh - 112px);max-height:calc(100dvh - 112px);color:var(--ink);background:linear-gradient(145deg,#ffffffeb,#f8fbffe0);border:1px solid #ffffffe0;border-radius:28px;align-content:start;align-self:start;gap:12px;padding:22px;display:grid;position:sticky;top:96px;overflow:auto;box-shadow:inset 0 1px #fffffff5,0 24px 48px -34px #2745808f}.presence-detail[data-v-4625711b]{align-content:start;gap:12px;min-width:0;display:grid}.mood-word[data-v-4625711b]{font-family:var(--font-display);letter-spacing:-.055em;background:linear-gradient(105deg, var(--ink) 4%, #83bcf2 52%, #dd9dca 95%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,3.5vw,70px);font-weight:750}.chips[data-v-4625711b]{gap:7px}.chips .chip[data-v-4625711b]{background:#ffffffa3;border-color:#ffffffd6}.activity-chip[data-v-4625711b]{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;line-height:1.5}.actions[data-v-4625711b]{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.actions>button[data-v-4625711b]{background:#ffffff8a;border-color:#ffffffe0;justify-content:center;width:100%}.actions>button.primary[data-v-4625711b]{color:#213e73;background:linear-gradient(120deg,#84bdfb,#a5b5f0 56%,#dfb4e5);box-shadow:0 16px 32px -16px #7ca9ef}.aside-bit[data-v-4625711b]{border-top:1px solid #ffffffb3;gap:4px;padding-top:10px;display:grid}.aside-bit p[data-v-4625711b]{font-size:13.5px;line-height:1.55}.aside-bit small[data-v-4625711b]{color:var(--ink-soft);font-size:12px}@media (width<=760px){.presence-dock[data-v-4625711b]{width:calc(100% - 28px);height:auto;max-height:none;margin:0 auto 8px;position:relative;top:auto}}.dialog-layer[data-v-2339e49c]{z-index:100;background:color-mix(in srgb, var(--sky-top) 44%, #3c51893d);-webkit-backdrop-filter:blur(13px)saturate(1.25);backdrop-filter:blur(13px)saturate(1.25);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-2339e49c]{background:radial-gradient(ellipse at 9% -10%, #fffffffa, transparent 53%), linear-gradient(148deg, #ffffffc2, #e5efff70 64%, #f8e7fb8c), var(--glass-fill);-webkit-backdrop-filter:blur(32px)saturate(1.7);backdrop-filter:blur(32px)saturate(1.7);border:1.5px solid #ffffffe3;border-radius:34px;gap:17px;width:min(420px,100%);padding:42px 30px 26px;display:grid;position:relative;box-shadow:inset 0 2px 1px #fff,0 30px 72px -28px #3452956e}.dialog h2[data-v-2339e49c]{font-size:18px}.dialog p[data-v-2339e49c]{color:var(--ink-soft);white-space:pre-line;font-size:14px;line-height:1.7}.dialog-orb[data-v-2339e49c]{background:radial-gradient(circle at 38% 30%, var(--orb-a), var(--orb-b) 60%, var(--orb-c));width:52px;height:50px;box-shadow:inset 0 3px 3px #ffffffe0, 0 13px 24px -9px var(--orb-c);border:2px solid #ffffffe3;border-radius:44% 56% 57% 43%/50% 43% 57% 50%;animation:4s ease-in-out infinite alternate dialog-orb-breathe-2339e49c;position:absolute;top:-24px;left:30px}.dialog-enter-active[data-v-2339e49c],.dialog-leave-active[data-v-2339e49c]{transition:opacity .2s var(--ease)}.dialog-enter-active .dialog[data-v-2339e49c]{transition:transform .52s var(--spring)}.dialog-enter-from[data-v-2339e49c],.dialog-leave-to[data-v-2339e49c]{opacity:0}.dialog-enter-from .dialog[data-v-2339e49c]{transform:translateY(22px)scale(.9)}@keyframes dialog-orb-breathe-2339e49c{to{transform:translateY(-5px)rotate(8deg)scale(1.07)}}.icon[data-v-69e2db74]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.sheet-layer[data-v-2c804a0d]{z-index:70;background:color-mix(in srgb, var(--sky-top) 42%, #3c518945);-webkit-backdrop-filter:blur(13px)saturate(1.3);backdrop-filter:blur(13px)saturate(1.3);justify-content:flex-end;padding:12px;display:flex;position:fixed;inset:0}.sheet[data-v-2c804a0d]{width:min(var(--sheet-w), calc(100vw - 24px));background:radial-gradient(ellipse at 0% 0%, #fffffff2, transparent 43%), linear-gradient(145deg, #ffffffba, #ecf4ff73 62%, #f6eafb99), var(--glass-fill);-webkit-backdrop-filter:blur(36px)saturate(1.8);backdrop-filter:blur(36px)saturate(1.8);border:1.5px solid #ffffffe0;border-radius:34px;outline:none;flex-direction:column;height:100%;display:flex;box-shadow:inset 0 2px 1px #fff,inset -1px -2px 2px #708fd221,0 32px 75px -28px #34529570}.sheet-head[data-v-2c804a0d]{border-bottom:1px solid #ffffffab;justify-content:space-between;align-items:flex-start;gap:12px;padding:26px 28px 18px;display:flex}.sheet-head h2[data-v-2c804a0d]{font-size:19px}.sheet-body[data-v-2c804a0d]{overscroll-behavior:contain;flex:1;padding:20px 28px 30px;overflow:auto}.sheet-enter-active[data-v-2c804a0d],.sheet-leave-active[data-v-2c804a0d]{transition:opacity .25s var(--ease)}.sheet-enter-active .sheet[data-v-2c804a0d],.sheet-leave-active .sheet[data-v-2c804a0d]{transition:transform .55s var(--spring)}.sheet-enter-from[data-v-2c804a0d],.sheet-leave-to[data-v-2c804a0d]{opacity:0}.sheet-enter-from .sheet[data-v-2c804a0d],.sheet-leave-to .sheet[data-v-2c804a0d]{transform:translate(74px)scale(.94)}@media (width<=760px){.sheet-layer[data-v-2c804a0d]{align-items:flex-end;padding:0}.sheet[data-v-2c804a0d]{border-radius:30px 30px 0 0;width:100vw;height:min(88dvh,100%)}.sheet-enter-from .sheet[data-v-2c804a0d],.sheet-leave-to .sheet[data-v-2c804a0d]{transform:translateY(40px)}}.card-head[data-v-2c88637b]{border-bottom:1px solid #ffffffb3;align-items:center;margin-bottom:19px;padding-bottom:13px;position:relative}.card-head h2[data-v-2c88637b]{letter-spacing:-.025em;margin-top:3px;font-size:clamp(18px,1.7vw,22px);font-weight:740}.card-head p[data-v-2c88637b]{margin-top:5px;line-height:1.55}.card-head .eyebrow[data-v-2c88637b]{color:var(--accent)}.meter-row[data-v-4f51518c]{grid-template-columns:minmax(64px,max-content) 1fr minmax(40px,max-content);align-items:center;gap:12px;font-size:12.5px;display:grid}.meter-label[data-v-4f51518c]{color:var(--ink-soft)}.meter-value[data-v-4f51518c]{text-align:right;font-variant-numeric:tabular-nums}.count[data-v-e8e03a3b]{opacity:.75;font-variant-numeric:tabular-nums;margin-left:6px;font-size:11px}.timeline[data-v-e79d18a9]{margin:0;padding:0;list-style:none;display:grid}.timeline li[data-v-e79d18a9]{content-visibility:auto;contain-intrinsic-size:auto 84px;grid-template-columns:24px minmax(0,1fr);gap:12px;display:grid}.stem[data-v-e79d18a9]{justify-items:center;display:grid;position:relative}.stem[data-v-e79d18a9]:before{content:"";background:linear-gradient(var(--glow-a), #ffffffd9, var(--glow-b));width:3px;box-shadow:0 0 10px color-mix(in srgb, var(--glow-a) 55%, transparent);border-radius:999px;position:absolute;top:0;bottom:0}.timeline li:first-child .stem[data-v-e79d18a9]:before{top:12px}.timeline li:last-child .stem[data-v-e79d18a9]:before{bottom:calc(100% - 14px)}.stem i[data-v-e79d18a9]{background:linear-gradient(145deg, white, var(--glow-a));width:13px;height:13px;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 33%, transparent), 0 0 13px var(--glow-a);border:2px solid #fff;border-radius:50%;margin-top:18px;position:relative}li[data-tone=warm] .stem i[data-v-e79d18a9]{border-color:var(--cheek);background:var(--cheek)}li[data-tone=quiet] .stem i[data-v-e79d18a9]{border-color:var(--ink-faint)}li[data-tone=glow] .stem i[data-v-e79d18a9]{background:var(--accent)}li[data-tone=night] .stem i[data-v-e79d18a9]{border-color:var(--orb-c);background:var(--orb-c)}.entry[data-v-e79d18a9]{background:linear-gradient(125deg, #ffffffa8, #fff3), var(--glass-fill);min-width:0;box-shadow:inset 0 1px 0 white, 0 8px 21px -18px var(--accent);transition:transform .48s var(--jelly);border:1px solid #ffffffc2;border-radius:18px;margin-bottom:10px;padding:11px 15px}.timeline li:hover .entry[data-v-e79d18a9]{transform:translate(4px)scale(1.01)}.wallpaper-picker[data-v-01d9dcb6]{z-index:6;-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);background:#ffffffd1;border:1px solid #ffffffdb;border-radius:22px;gap:12px;width:min(280px,100% - 32px);max-height:calc(100% - 78px);padding:14px;display:grid;position:absolute;top:62px;right:16px;overflow:auto;box-shadow:inset 0 1px #fff,0 18px 40px -24px #2745808c}header[data-v-01d9dcb6]{justify-content:space-between;align-items:center;display:flex}header b[data-v-01d9dcb6]{font-size:14px}.choice[data-v-01d9dcb6]{gap:8px;display:grid}.choice>span[data-v-01d9dcb6]{font-size:12.5px;font-weight:700}.row[data-v-01d9dcb6]{gap:8px;display:flex}.row button[data-v-01d9dcb6]{border-radius:999px;flex:1;min-height:32px;padding:6px 8px;font-size:12px}.opacity[data-v-01d9dcb6]{gap:4px;display:grid}.opacity span[data-v-01d9dcb6],.opacity small[data-v-01d9dcb6]{color:var(--ink-soft);font-size:12px}.opacity input[data-v-01d9dcb6]{width:100%;accent-color:var(--accent)}.now-presentation[data-v-663ff302]{min-height:450px;margin-bottom:26px;position:relative}.now-hero[data-v-663ff302]{isolation:isolate;background:linear-gradient(145deg, var(--sky-top), var(--sky-mid) 58%, var(--sky-bottom));height:450px;min-height:450px;color:var(--ink);border:2px solid #ffffffcf;border-radius:42px;margin:0;padding:0;display:block;position:relative;overflow:hidden;box-shadow:inset 0 2px #fffffff2,0 35px 90px -45px #5a7acc8c}.wallpaper-layer[data-v-663ff302]{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.wallpaper-layer img[data-v-663ff302]{object-fit:cover;object-position:50% 50%;width:100%;height:100%;transition:object-position .26s var(--ease-spring);-webkit-user-select:none;user-select:none;display:block}.wallpaper-layer[data-v-663ff302]:after{content:"";background:linear-gradient(100deg,#ffecf633 0%,#fff4fa14 42%,#0000 68%),linear-gradient(#301c4024,#0000 24% 72%,#3018282e);position:absolute;inset:0}.wallpaper-adjusting .wallpaper-layer img[data-v-663ff302]{transition:none}.wallpaper-drag-layer[data-v-663ff302]{z-index:2;cursor:grab;touch-action:none;background:radial-gradient(#0000 55%,#212f5214);position:absolute;inset:0}.wallpaper-drag-layer[data-v-663ff302]:active{cursor:grabbing}.wallpaper-tip[data-v-663ff302]{color:#29416d;-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);white-space:nowrap;pointer-events:none;background:#ffffffad;border:1px solid #ffffffd1;border-radius:999px;padding:10px 16px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 32px #23375e29,inset 0 1px #fff}.wallpaper-controls[data-v-663ff302]{z-index:4;-webkit-backdrop-filter:blur(20px)saturate(1.45);backdrop-filter:blur(20px)saturate(1.45);background:#ffffff80;border:1px solid #ffffffc2;border-radius:999px;align-items:center;gap:8px;padding:6px;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 10px 28px #30456b1a,inset 0 1px #fff}.wallpaper-controls button[data-v-663ff302]{border-radius:999px;min-height:34px;padding:7px 13px;font-size:12px}.wallpaper-controls .wallpaper-tip-inline[data-v-663ff302]{color:var(--muted);white-space:nowrap;padding:0 4px 0 9px;font-size:12px}.now-hero button.primary[data-v-663ff302]{color:#213e73;background:linear-gradient(120deg,#84bdfb,#a5b5f0 56%,#dfb4e5);box-shadow:0 16px 32px -16px #7ca9ef}.now-hero button[data-v-663ff302]:not(.primary){background:#ffffff7a;border-color:#ffffffe0}.notes[data-v-663ff302]{align-items:start;gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0 28px;display:grid}.note[data-v-663ff302]{background:linear-gradient(180deg, #ffffff52, transparent 55%), var(--surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-sheen), var(--shadow-soft);transition:transform .52s var(--jelly);border-top:1px solid #fffffff2;border-radius:27px;align-content:start;gap:8px;padding:24px;display:grid;position:relative}.note[data-v-663ff302]:hover{transform:translateY(-4px)scale(1.012)}.note .quote[data-v-663ff302]{font-size:16px;font-weight:600;line-height:1.6}.note small[data-v-663ff302]{color:var(--ink-soft);font-size:12px}.note .text-button[data-v-663ff302]{justify-self:start;margin-top:2px}.note .eyebrow[data-v-663ff302]{margin-bottom:8px}.note>p[data-v-663ff302],.note>ul[data-v-663ff302]{max-height:248px;overflow:auto}.recent-list[data-v-663ff302]{gap:11px;margin:0;padding:0;list-style:none;display:grid}.recent-list li[data-v-663ff302]{border-bottom:1px solid color-mix(in srgb, var(--glass-edge) 70%, transparent);padding-bottom:10px}.recent-list li[data-v-663ff302]:last-child{border-bottom:0;padding-bottom:0}.recent-list .quote[data-v-663ff302]{margin-bottom:3px}.note.ahead>ul[data-v-663ff302]{max-height:248px}.note li[data-v-663ff302]{gap:1px;font-size:13.5px;display:grid}.note li b[data-v-663ff302]{color:var(--accent);font-size:12px}.words[data-v-663ff302]{background:linear-gradient(150deg, color-mix(in srgb, var(--orb-a) 55%, var(--surface-strong)), var(--surface))}.now-grid[data-v-663ff302]{gap:var(--gap);grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;display:grid}.today-scroll[data-v-663ff302]{max-height:620px;margin-right:-8px;padding-right:8px}.entry-head[data-v-663ff302]{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.entry-head time[data-v-663ff302]{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:12px}.entry-head b[data-v-663ff302]{font-size:14px}.entry-head+p[data-v-663ff302]{margin-top:3px;font-size:13.5px;line-height:1.65}.entry-head+p small[data-v-663ff302]{color:var(--ink-soft)}.ledger-note[data-v-663ff302]{margin-top:12px}.small-text[data-v-663ff302]{font-size:13px}.grow[data-v-663ff302]{flex:1;min-width:0}.counts[data-v-663ff302]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.counts button[data-v-663ff302]{text-align:left;border-radius:16px;justify-items:start;gap:0;padding:12px 14px;display:grid}.counts b[data-v-663ff302]{font:700 24px var(--font-display);color:var(--accent)}.counts span[data-v-663ff302]{color:var(--ink-soft);font-size:12px;font-weight:500}@media (width<=1100px){.now-grid[data-v-663ff302]{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.now-presentation[data-v-663ff302]{min-height:0}.now-hero[data-v-663ff302]{text-align:center;height:420px;min-height:420px}.notes[data-v-663ff302]{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.now-hero[data-v-663ff302]{border-radius:30px;height:370px;min-height:370px;padding:0}.today-scroll[data-v-663ff302]{max-height:520px}.wallpaper-controls[data-v-663ff302]{top:10px;right:10px}.wallpaper-controls .wallpaper-tip-inline[data-v-663ff302]{display:none}.wallpaper-controls button[data-v-663ff302]{min-height:32px;padding:6px 10px}.wallpaper-tip[data-v-663ff302]{text-align:center;max-width:calc(100% - 34px);padding:9px 12px;font-size:12px}}.access-gate[data-v-299ced1e]{background:radial-gradient(circle at 25% 20%,#dbe7ec 0,#0000 45%),radial-gradient(circle at 85% 70%,#efdfdd 0,#0000 45%),#f4f5ef;place-items:center;min-height:100dvh;padding:72px 24px;display:grid}.access-language[data-v-299ced1e]{position:absolute;top:22px;right:24px}.access-card[data-v-299ced1e]{background:#ffffffe0;border:1px solid #fff;border-radius:28px;width:min(100%,420px);padding:36px;box-shadow:0 24px 70px #69838618}.access-card h1[data-v-299ced1e]{margin:14px 0;font-size:26px}.access-card>p[data-v-299ced1e]{color:var(--muted);line-height:1.8}.access-orb[data-v-299ced1e]{color:#8b889c;background:radial-gradient(circle at 35% 30%,#fff,#e5dde8 60%,#cedfd8);border-radius:50%;place-items:center;width:70px;height:70px;margin-bottom:24px;font-size:32px;display:grid}.access-form[data-v-299ced1e],.access-form label[data-v-299ced1e]{gap:12px;display:grid}.access-form[data-v-299ced1e]{gap:20px;margin-top:28px}.access-form input[data-v-299ced1e]{box-sizing:border-box;width:100%;font:inherit;background:#fff;border:1px solid #d6deda;border-radius:12px;padding:12px 14px}.access-form small[data-v-299ced1e]{color:var(--muted);line-height:1.7}.access-form button[data-v-299ced1e]{min-height:44px}.access-error[data-v-299ced1e]{color:#b34e5b;font-size:13px}.spinning[data-v-0e622eac] svg{animation:.7s linear infinite refresh-turn-0e622eac}@keyframes refresh-turn-0e622eac{to{transform:rotate(360deg)}}.startup[data-v-0e622eac]{z-index:1;text-align:center;place-content:center;justify-items:center;gap:10px;min-height:100dvh;padding:24px;display:grid;position:relative}.startup h1[data-v-0e622eac]{font-size:26px}.startup p[data-v-0e622eac]{color:var(--ink-soft)}.shell[data-v-0e622eac]{z-index:1;grid-template-columns:var(--dock-w) minmax(0, 1fr);min-height:100dvh;display:grid;position:relative}.skip-link[data-v-0e622eac]{z-index:120;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:8px 14px;transition:transform .2s;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link[data-v-0e622eac]:focus{transform:none}.dock[data-v-0e622eac]{background:linear-gradient(180deg, #ffffffb8, #ffffff24 46%, transparent 78%), var(--surface);height:calc(100dvh - 28px);color:var(--ink);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border-radius:34px;flex-direction:column;gap:16px;margin:14px 0 14px 14px;padding:14px 12px;display:flex;position:sticky;top:14px;overflow:hidden auto;box-shadow:inset 1px 1px #ffffffe6,0 22px 60px -34px #455e9457}.dock-ta[data-v-0e622eac]{text-align:left;background:0 0;border:none;border-radius:22px;align-items:center;gap:10px;padding:6px 10px 6px 4px;display:flex}.dock-ta[data-v-0e622eac]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);box-shadow:none;transform:none}.dock-ta.active[data-v-0e622eac]{background:var(--accent-soft)}.dock-ta-text[data-v-0e622eac]{min-width:0;line-height:1.3;display:grid}.dock-ta-text b[data-v-0e622eac]{font:700 16px var(--font-display);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dock-ta-text small[data-v-0e622eac]{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.dock-groups[data-v-0e622eac]{gap:14px;display:grid}.dock-group[data-v-0e622eac]{gap:2px;display:grid}.dock-group h2[data-v-0e622eac]{font:700 10.5px/1.4 var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);padding:0 12px 4px}.dock-link[data-v-0e622eac],.dock-tool[data-v-0e622eac]{width:100%;color:var(--ink-soft);text-align:left;background:0 0;border:none;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.dock-tool[data-v-0e622eac]{padding:8px 12px;font-size:13px}.dock-link[data-v-0e622eac]:hover:not(:disabled),.dock-tool[data-v-0e622eac]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 9%, transparent);color:var(--ink);box-shadow:none;transform:none}.dock-link.active[data-v-0e622eac]{background:linear-gradient(110deg, #ffffffeb, color-mix(in srgb, var(--glow-a) 44%, white));color:var(--accent);box-shadow:inset 0 1px 0 white, 0 9px 22px -14px var(--accent)}.dock-link.active[data-v-0e622eac]:after{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent);border-radius:50%;margin-left:auto}.dock-foot[data-v-0e622eac]{border-top:1px solid var(--line);gap:2px;margin-top:auto;padding-top:10px;display:grid}main[data-v-0e622eac]{outline:none;min-width:0;padding-bottom:32px}.topbar[data-v-0e622eac]{background:linear-gradient(180deg, #ffffffb8, transparent 70%), var(--surface);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(18px)saturate(1.5);border-radius:30px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;width:min(1232px,100% - 36px);margin:16px auto 8px;padding:16px 22px;display:flex;box-shadow:inset 0 1px #fff,0 16px 38px -28px #455e944d}.topbar h1[data-v-0e622eac]{font-family:var(--font-display);letter-spacing:-.03em;font-size:29px;font-weight:700}.topbar p[data-v-0e622eac]{color:var(--ink-soft);margin-top:2px;font-size:13.5px}.topbar-actions[data-v-0e622eac]{align-items:center;gap:10px;margin-left:auto;display:flex}#connection[data-v-0e622eac]{padding:7px 14px}#connection.offline[data-v-0e622eac]{cursor:pointer}.draft-banner[data-v-0e622eac]{background:color-mix(in srgb, var(--warn) 12%, var(--surface-strong));border:1px solid color-mix(in srgb, var(--warn) 28%, transparent);border-radius:999px;align-items:center;gap:10px;width:min(1224px,100% - 56px);margin:0 auto 14px;padding:9px 16px;font-size:13px;font-weight:600;display:flex}.at-now .topbar-title p[data-v-0e622eac]{display:block}.at-chats main[data-v-0e622eac]{flex-direction:column;height:calc(100dvh - 104px);padding-bottom:16px;display:flex;overflow:hidden}.at-chats .view[data-v-0e622eac]{flex-direction:column;flex:1;min-height:0;display:flex}.tabbar[data-v-0e622eac]{display:none}.more-grid[data-v-0e622eac]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.more-grid button[data-v-0e622eac]{text-align:left;border-radius:18px;justify-items:start;gap:4px;padding:14px;display:grid}.more-grid button.active[data-v-0e622eac]{border-color:var(--accent);background:var(--accent-soft)}.more-grid small[data-v-0e622eac]{color:var(--ink-soft);font-size:11.5px;font-weight:500}.more-title[data-v-0e622eac]{margin:20px 0 8px;font-size:14px}.more-tools[data-v-0e622eac]{margin-top:14px}@media (width<=1100px) and (width>=761px){.shell[data-v-0e622eac]{grid-template-columns:92px minmax(0,1fr)}.dock[data-v-0e622eac]{align-items:center;padding:14px 8px}.dock-ta[data-v-0e622eac]{padding:4px}.dock-link[data-v-0e622eac],.dock-tool[data-v-0e622eac]{justify-content:center;width:52px;padding:12px 0}.dock-group[data-v-0e622eac],.dock-foot[data-v-0e622eac]{justify-items:center}.dock[data-v-0e622eac] .theme-toggle{justify-content:center;width:52px;padding:10px 0}.dock-link.active[data-v-0e622eac]:after{display:none}.rail-label[data-v-0e622eac],.dock[data-v-0e622eac] .rail-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}}@media (width<=760px){.shell[data-v-0e622eac]{grid-template-columns:minmax(0,1fr)}.dock[data-v-0e622eac]{display:none}main[data-v-0e622eac]{padding-bottom:calc(128px + env(safe-area-inset-bottom))}.topbar[data-v-0e622eac]{align-items:center;padding:16px 14px 12px}.topbar h1[data-v-0e622eac]{font-size:22px}.topbar p[data-v-0e622eac]{display:none}.draft-banner[data-v-0e622eac]{width:calc(100% - 28px)}.at-chats main[data-v-0e622eac]{height:auto;padding-bottom:calc(96px + env(safe-area-inset-bottom));display:block;overflow:visible}.tabbar[data-v-0e622eac]{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:65;background:linear-gradient(180deg, #ffffff57, transparent 70%), var(--surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-sheen), var(--shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border-radius:24px;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:6px;display:grid;position:fixed}.tabbar button[data-v-0e622eac]{color:var(--ink-soft);background:0 0;border:none;border-radius:18px;justify-items:center;gap:2px;padding:7px 0 6px;font-size:11px;display:grid}.tabbar button[data-v-0e622eac]:hover:not(:disabled){box-shadow:none;transform:none}.tabbar button.active[data-v-0e622eac]{background:var(--accent-soft);color:var(--accent)}}@media (width>=761px){.shell[data-v-0e622eac]{padding-top:1px;display:block}.dock[data-v-0e622eac]{z-index:66;background:radial-gradient(ellipse at 12% -80%, #fffffff0, transparent 58%), linear-gradient(110deg, #ffffffc7, #f2f6ff9c 52%, #ffffffc7), color-mix(in srgb, var(--sky-mid) 82%, white);border:1.5px solid #ffffffd4;border-radius:999px;flex-direction:row;align-items:center;gap:14px;width:min(1460px,100% - 40px);height:auto;min-height:72px;margin:14px auto 0;padding:8px 12px;display:flex;position:sticky;top:14px;overflow:visible;box-shadow:inset 0 2px 1px #fff,inset 0 -2px 2px #708fd221,0 22px 44px -28px #34529561}.dock-ta[data-v-0e622eac]{border:1px solid #0000;border-radius:999px;flex:none;min-width:160px;padding:4px 12px 4px 4px}.dock-ta.active[data-v-0e622eac],.dock-ta[data-v-0e622eac]:hover:not(:disabled){box-shadow:inset 0 1px 0 white, 0 8px 17px -14px var(--accent);background:#ffffff6b;border-color:#ffffffc4;transform:translateY(-2px)scale(1.02)}.dock-groups[data-v-0e622eac]{flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;display:flex}.dock-group[data-v-0e622eac]{align-items:center;gap:2px;display:flex}.dock-group h2[data-v-0e622eac]{clip:rect(0 0 0 0);width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.dock-link[data-v-0e622eac]{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;gap:7px;width:auto;min-height:45px;padding:9px 12px;position:relative}.dock-link[data-v-0e622eac]:hover:not(:disabled){box-shadow:0 12px 18px -14px var(--accent);background:#ffffff85;border-color:#ffffffbf;transform:translateY(-3px)scale(1.045)}.dock-link.active[data-v-0e622eac]{color:var(--ink);background:linear-gradient(120deg, #fffffffa, color-mix(in srgb, var(--glow-a) 40%, white) 64%, color-mix(in srgb, var(--glow-b) 28%, white));box-shadow:inset 0 1px 0 white, 0 8px 19px -13px var(--accent);animation:dock-bloom-0e622eac .56s var(--spring) both;border-color:#fffffff7}.dock-link.active[data-v-0e622eac]:after{display:none}.dock-foot[data-v-0e622eac]{border:0;flex:none;align-items:center;gap:3px;margin:0;padding:0;display:flex}.dock-tool[data-v-0e622eac],.dock[data-v-0e622eac] .theme-toggle{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:flex}.dock-tool .rail-label[data-v-0e622eac],.dock[data-v-0e622eac] .theme-toggle .rail-label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dock-tool[data-v-0e622eac]:hover:not(:disabled),.dock[data-v-0e622eac] .theme-toggle:hover:not(:disabled){box-shadow:inset 0 1px white, 0 11px 17px -13px var(--accent);background:#ffffff9e;transform:translateY(-3px)scale(1.08)}main[data-v-0e622eac]{width:100%}.workspace[data-v-0e622eac]{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:22px;width:min(1480px,100% - 36px);margin:8px auto 0;display:grid}.workspace>main[data-v-0e622eac]{width:auto;min-width:0}.workspace .topbar[data-v-0e622eac]{width:calc(100% - 56px);box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none;align-items:center;margin:14px 28px 6px;padding:4px 22px 8px}.topbar h1[data-v-0e622eac]{font-size:clamp(28px,2.8vw,38px);font-weight:760}}@keyframes dock-bloom-0e622eac{0%{filter:brightness(1.15);transform:scale(.88)translateY(4px)}to{filter:brightness();transform:scale(1)translateY(0)}}@media (width>=761px) and (width<=1100px){.dock[data-v-0e622eac]{gap:6px;padding-inline:9px}.dock-ta[data-v-0e622eac]{min-width:145px}.dock-ta-text.rail-label[data-v-0e622eac]{clip:auto;width:auto;height:auto;display:grid;position:static!important}.dock-ta-text small[data-v-0e622eac]{display:none}.dock-link[data-v-0e622eac]{width:42px;min-width:42px;padding:10px}.dock-tool[data-v-0e622eac],.dock[data-v-0e622eac] .theme-toggle{width:38px;height:38px}}@media (width<=760px){.workspace[data-v-0e622eac]{width:100%;margin:0;display:block}.topbar[data-v-0e622eac]{width:calc(100% - 28px);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;gap:10px;margin-top:14px;padding:8px 5px 10px}.topbar-actions[data-v-0e622eac]{gap:6px}#connection[data-v-0e622eac]{padding:7px 10px;font-size:12px}.tabbar[data-v-0e622eac]{background:linear-gradient(130deg, #ffffffc4, #ffffff45 57%, #e6ecff8c), var(--glass-fill);border:1.5px solid #ffffffdb;box-shadow:inset 0 2px 1px #fff,0 20px 38px -24px #34529570}.tabbar button.active[data-v-0e622eac]{background:linear-gradient(130deg, white, color-mix(in srgb, var(--glow-a) 40%, white));box-shadow:0 6px 15px -10px var(--accent);animation:dock-bloom-0e622eac .48s var(--spring) both;border:1px solid #fff}}@property --sky-top{syntax:"<color>";inherits:true;initial-value:#c8f3e4}@property --sky-mid{syntax:"<color>";inherits:true;initial-value:#e7f7f1}@property --sky-bottom{syntax:"<color>";inherits:true;initial-value:#f6efe2}@property --glow-a{syntax:"<color>";inherits:true;initial-value:#5ddec0}@property --glow-b{syntax:"<color>";inherits:true;initial-value:#8eb6ff}@property --accent{syntax:"<color>";inherits:true;initial-value:#2c8465}@property --accent-soft{syntax:"<color>";inherits:true;initial-value:#dcf3e8}@property --ink{syntax:"<color>";inherits:true;initial-value:#14332d}@property --ink-soft{syntax:"<color>";inherits:true;initial-value:#466760}@property --surface{syntax:"<color>";inherits:true;initial-value:#ffffff94}@property --surface-strong{syntax:"<color>";inherits:true;initial-value:#ffffffe6}@property --line{syntax:"<color>";inherits:true;initial-value:#14332d1f}@property --orb-a{syntax:"<color>";inherits:true;initial-value:#c3f8e0}@property --orb-b{syntax:"<color>";inherits:true;initial-value:#7fdcbc}@property --orb-c{syntax:"<color>";inherits:true;initial-value:#4fa9c7}:root{--font-ui:"HarmonyOS Sans SC", "MiSans", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-display:"Segoe UI Variable Display", "Segoe UI", "SF Pro Rounded", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", sans-serif;--font-editorial:"Palatino Linotype", "Noto Serif SC", "Songti SC", "SimSun", serif;--font-mono:ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace;--r-xs:8px;--r-s:12px;--r-m:18px;--r-l:27px;--r-xl:40px;--gap:22px;--dock-w:224px;--topbar-h:76px;--ease:cubic-bezier(.2, .8, .2, 1);--spring:cubic-bezier(.22, 1.45, .42, 1);--jelly:cubic-bezier(.34, 1.56, .5, 1);--tempo:1;--intensity:.5;--glass-blur:12px;--glass-saturate:1.35;--glass-fill:#ffffffb8;--glass-highlight:#ffffffe0;--glass-shadow:0 24px 54px -28px #34529545;--shadow:0 28px 70px -36px color-mix(in srgb, var(--ink) 32%, transparent);--shadow-soft:0 12px 32px -20px color-mix(in srgb, var(--ink) 24%, transparent);--glass-edge:color-mix(in srgb, white 62%, var(--line));--glass-sheen:inset 0 1px 0 #ffffffbd}:root,[data-mood=calm]{--sky-top:#d9e9ff;--sky-mid:#f1f6ff;--sky-bottom:#fff5f2;--glow-a:#a6d8ff;--glow-b:#efd5fa;--accent:#466db8;--accent-ink:#fff;--accent-soft:#e5edff;--ink:#263e69;--ink-soft:#5c6f91;--ink-faint:#8798b1;--surface:#ffffff7a;--surface-strong:#ffffffd1;--line:#6082bf2e;--orb-a:#d8fff0;--orb-b:#5ed4ae;--orb-c:#3a9ec4;--orb-face:#143b34;--cheek:#ff9db1;--particle:#fff;--danger:#b03a3a;--warn:#9a6512;--ok:#478c82;--paper:#fffdf6;--paper-line:#78643c1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=sweet]{--sky-top:#f9e3f3;--sky-mid:#fdf1f9;--sky-bottom:#eeeaff;--glow-a:#f7badb;--glow-b:#cbd2ff;--accent:#8a3356;--accent-ink:#fff;--accent-soft:#ffe3ef;--ink:#3a2430;--ink-soft:#6e4d5c;--ink-faint:#8d6c7a;--surface:#ffffff94;--surface-strong:#ffffffe6;--line:#5a1e3c1f;--orb-a:#ffe0f0;--orb-b:#ff8fbf;--orb-c:#c5a6ff;--orb-face:#4a1f38;--cheek:#ff6f9f;--particle:#ffd0e6;--danger:#b03a4a;--warn:#9a6512;--ok:#2c8465;--paper:#fff9fb;--paper-line:#aa50781f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=bright]{--sky-top:#fff0ca;--sky-mid:#fff8eb;--sky-bottom:#ffebdf;--glow-a:#ffdc88;--glow-b:#ffc8b8;--accent:#b84312;--accent-ink:#fff;--accent-soft:#ffe4cc;--ink:#3d220c;--ink-soft:#7a4e28;--ink-faint:#9a6e48;--surface:#ffffff94;--surface-strong:#fffcf7eb;--line:#6e3c1424;--orb-a:#fff3ae;--orb-b:#ffc15f;--orb-c:#ff8a6b;--orb-face:#4a2a10;--cheek:#ff7b6b;--particle:#ffe08a;--danger:#b03a2a;--warn:#9a6512;--ok:#2c7a55;--paper:#fffbf0;--paper-line:#aa6e2824;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=blue]{--sky-top:#b7d0f2;--sky-mid:#d5e4f6;--sky-bottom:#e7eef8;--glow-a:#6aa4ee;--glow-b:#b7c8ea;--accent:#245488;--accent-ink:#fff;--accent-soft:#dce8f8;--ink:#172433;--ink-soft:#3e536c;--ink-faint:#627890;--surface:#ffffff8f;--surface-strong:#f8fbffe6;--line:#17243321;--orb-a:#e4eefc;--orb-b:#8aafdc;--orb-c:#5d7eae;--orb-face:#1e2b3f;--cheek:#c8a0b5;--particle:#d5e4f6;--danger:#a23c3c;--warn:#8a5e18;--ok:#2c7560;--paper:#f8fafd;--paper-line:#3c5a821f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=stormy]{--sky-top:#e3def4;--sky-mid:#eeebf7;--sky-bottom:#e8ecf6;--glow-a:#c8b8ed;--glow-b:#bcc9e5;--accent:#53368c;--accent-ink:#fff;--accent-soft:#ece4f8;--ink:#241c33;--ink-soft:#534866;--ink-faint:#746888;--surface:#ffffff8f;--surface-strong:#faf8ffe6;--line:#241c3324;--orb-a:#ece4f8;--orb-b:#a894d4;--orb-c:#6e5f9e;--orb-face:#231a36;--cheek:#c99ab8;--particle:#ddd2ee;--danger:#a53a48;--warn:#8a5e18;--ok:#2c7560;--paper:#faf9fd;--paper-line:#5a46821f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=drowsy]{--sky-top:#e8e0fa;--sky-mid:#f5eef9;--sky-bottom:#fff1e9;--glow-a:#d2c4f5;--glow-b:#f5d3c9;--accent:#634678;--accent-ink:#fff;--accent-soft:#f3e6ff;--ink:#2c2140;--ink-soft:#5c5074;--ink-faint:#7e7296;--surface:#ffffff94;--surface-strong:#fffcffe6;--line:#2c21401f;--orb-a:#f4e9ff;--orb-b:#d0b4f8;--orb-c:#f0b8d4;--orb-face:#30264a;--cheek:#f3a3c0;--particle:#eadbff;--danger:#a53a48;--warn:#8a5e18;--ok:#2c7560;--paper:#fffaf6;--paper-line:#966ea021;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=night]{--sky-top:#cbdafa;--sky-mid:#e5eafa;--sky-bottom:#f8edfa;--glow-a:#9db9f0;--glow-b:#cdbdf4;--accent:#5667ab;--accent-ink:#fff;--accent-soft:#e3e7fa;--ink:#29375e;--ink-soft:#606d96;--ink-faint:#8691b3;--surface:#ffffff75;--surface-strong:#ffffffd1;--line:#5d6ca530;--orb-a:#d0d8ff;--orb-b:#7d8ef0;--orb-c:#4d5cc0;--orb-face:#0f1433;--cheek:#c9a0e0;--particle:#fff;--danger:#b24c71;--warn:#936930;--ok:#478c82;--paper:#fbf9ff;--paper-line:#c8d2ff1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{transition:--sky-top 1.4s var(--ease), --sky-mid 1.4s var(--ease), --sky-bottom 1.4s var(--ease), --glow-a 1.4s var(--ease), --glow-b 1.4s var(--ease), --accent 1.1s var(--ease), --accent-soft 1.1s var(--ease), --ink .9s var(--ease), --ink-soft .9s var(--ease), --surface .9s var(--ease), --surface-strong .9s var(--ease), --line .9s var(--ease), --orb-a 1.2s var(--ease), --orb-b 1.2s var(--ease), --orb-c 1.2s var(--ease)}[data-motion=quiet]{transition:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:15px;overflow-x:clip}body{min-height:100dvh;font-family:var(--font-ui);color:var(--ink);background:var(--sky-mid);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6;overflow-x:clip}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.01em;margin:0;line-height:1.25}p{margin:0}a{color:var(--accent);text-underline-offset:3px}img,svg,canvas{display:block}code,pre,kbd{font-family:var(--font-mono);font-size:.92em}pre{white-space:pre-wrap;word-break:break-word;margin:0}::selection{background:color-mix(in srgb, var(--accent) 26%, transparent)}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--ink) 22%, transparent) transparent}button{font:inherit;color:var(--ink);background:var(--surface-strong);border:1px solid var(--line);cursor:pointer;transition:transform .2s var(--spring), background-color .2s, border-color .2s, box-shadow .2s, color .2s;border-radius:15px;padding:10px 16px;font-size:13px;font-weight:600;line-height:1.3}button:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 40%, var(--line));box-shadow:var(--shadow-soft);transform:translateY(-1px)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{color:var(--accent-ink);background:linear-gradient(125deg, color-mix(in srgb, var(--accent) 85%, #8cc8ff), var(--accent));box-shadow:inset 0 1px 0 #ffffff52, 0 12px 26px -15px var(--accent);border-color:#0000}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, var(--ink))}button.ghost{background:0 0}button.danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface-strong));border-color:color-mix(in srgb, var(--danger) 22%, transparent)}button.small{padding:5px 11px;font-size:12px}button.text-button{color:var(--accent);text-underline-offset:3px;background:0 0;border:none;border-radius:6px;padding:2px 4px;text-decoration:underline}button.text-button:hover:not(:disabled){box-shadow:none;transform:none}button.icon-button{place-items:center;width:38px;height:38px;padding:0;display:inline-grid}button.icon-button svg{width:18px;height:18px}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:color-mix(in srgb, var(--surface-strong) 86%, transparent);border:1px solid var(--glass-edge);border-radius:var(--r-s);box-shadow:var(--glass-sheen);padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}input[type=range]{accent-color:var(--accent);background:0 0;border:none;padding:0}input[type=range]:focus{box-shadow:none}label{color:var(--ink-soft);gap:6px;font-size:12.5px;font-weight:600;display:grid}label>small,.hint{color:var(--ink-soft);font-size:12px;font-weight:400}.check{color:var(--ink);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex}.switch{color:var(--ink);cursor:pointer;align-items:center;gap:10px;font-size:13px;font-weight:600;display:inline-flex}.switch input{appearance:none;background:color-mix(in srgb, var(--ink) 18%, transparent);cursor:pointer;border-radius:999px;flex:none;width:42px;height:24px;margin:0;transition:background-color .25s;position:relative}.switch input:after{content:"";background:var(--surface-strong);width:18px;height:18px;transition:transform .3s var(--spring);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0003}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(18px)}.switch input:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}.page{width:min(1280px,100%);margin:0 auto;padding:0 28px 48px}.page>*,.stack>*,.card>*{min-width:0}.stack{gap:var(--gap);align-content:start;display:grid}.stack.tight{gap:10px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.grid-2{gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:14px;display:grid}.form-grid>label{grid-template-rows:2.6em auto auto;align-content:start;gap:6px;display:grid}.form-grid>label.wide{grid-template-rows:auto auto auto}.form-grid .wide{grid-column:1/-1}.scroll-pane{overscroll-behavior:contain;overflow:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.card{background:linear-gradient(180deg, #ffffff9e, #ffffff0f 42%, transparent 72%), var(--surface);border:1px solid var(--glass-edge);border-radius:var(--r-l);padding:20px 22px;position:relative;box-shadow:inset 0 1px #ffffffed,0 20px 45px -32px #4962a14f}.card.flat{box-shadow:none}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;margin-bottom:14px;display:flex}.card-head h2{font-size:17px}.card-head p{color:var(--ink-soft);margin-top:3px;font-size:13px}.eyebrow{font:700 10.5px/1.4 var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:block}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint);font-size:12px}.lede{font-size:15px;line-height:1.8}.chip{background:var(--accent-soft);max-width:100%;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip[data-tone=warn]{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.chip[data-tone=danger]{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.chip[data-tone=quiet]{background:color-mix(in srgb, var(--ink) 7%, transparent);color:var(--ink-soft)}.chip[data-tone=ok]{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.pill{background:var(--surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-sheen);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 18%, transparent);border-radius:50%;flex:none;display:inline-block}.dot.off{background:var(--ink-faint);box-shadow:0 0 0 4px color-mix(in srgb, var(--ink-faint) 16%, transparent)}.dot.warn{background:var(--warn);box-shadow:0 0 0 4px color-mix(in srgb, var(--warn) 18%, transparent)}.meter{background:color-mix(in srgb, var(--ink) 9%, transparent);border-radius:999px;height:8px;overflow:hidden}.meter>i{border-radius:inherit;background:linear-gradient(90deg, var(--orb-b), var(--accent));height:100%;transition:width .7s var(--ease);display:block}.meter.warn>i{background:linear-gradient(90deg, #ffc15f, var(--warn))}.seg{background:var(--surface);border:1px solid var(--line);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.seg button{background:0 0;border:none;padding:7px 14px}.seg button:hover:not(:disabled){box-shadow:none;background:color-mix(in srgb, var(--accent) 10%, transparent);transform:none}.seg button.active,.seg button[aria-selected=true]{background:var(--accent);color:var(--accent-ink)}.empty{text-align:center;color:var(--ink-soft);justify-items:center;gap:6px;padding:30px 16px;font-size:13px;display:grid}.empty b{color:var(--ink);font-size:15px}.kv{grid-template-columns:max-content 1fr;gap:6px 16px;font-size:13px;display:grid}.kv dt{color:var(--ink-soft)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.list-row{border-radius:var(--r-m);background:color-mix(in srgb, var(--surface-strong) 70%, transparent);border:1px solid var(--line);align-items:center;gap:12px;padding:10px 14px;display:flex}.pagination{color:var(--ink-soft);justify-content:center;align-items:center;gap:12px;padding-top:10px;font-size:12.5px;display:flex}.notice{border-radius:var(--r-m);background:color-mix(in srgb, var(--warn) 12%, var(--surface-strong));border:1px solid color-mix(in srgb, var(--warn) 26%, transparent);color:var(--ink);padding:12px 16px;font-size:13px}.error-text{color:var(--danger);font-size:13px}.bubble{overflow-wrap:anywhere;background:var(--surface-strong);border:1px solid var(--line);border-radius:18px;max-width:min(560px,86%);padding:10px 14px;font-size:14px;line-height:1.6;position:relative}.bubble.ta{background:linear-gradient(135deg, color-mix(in srgb, var(--orb-a) 80%, var(--surface-strong)), color-mix(in srgb, var(--orb-b) 55%, var(--surface-strong)));color:var(--ink);border-color:#0000}[data-mood=night] .bubble.ta{background:linear-gradient(135deg, color-mix(in srgb, var(--orb-b) 45%, var(--surface-strong)), color-mix(in srgb, var(--orb-c) 45%, var(--surface-strong)))}#toast{z-index:90;background:var(--surface-strong);border:1px solid var(--line);max-width:min(360px,100vw - 32px);box-shadow:var(--shadow);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .25s var(--ease), transform .35s var(--spring);border-radius:20px 20px 6px;padding:12px 18px;font-size:13.5px;font-weight:600;position:fixed;bottom:34px;right:96px;transform:translateY(10px)scale(.96)}#toast.show{opacity:1;transform:none}#toast.error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.route-page{animation:page-arrive .32s var(--spring) both}[data-visibility=hidden] *,[data-visibility=hidden] :before,[data-visibility=hidden] :after{animation-play-state:paused!important}.route-page>:nth-child(-n+6){animation:section-arrive .4s var(--spring) both}.route-page>:nth-child(2){animation-delay:25ms}.route-page>:nth-child(3){animation-delay:45ms}.route-page>:nth-child(4){animation-delay:65ms}.route-page>:nth-child(5){animation-delay:85ms}.route-page>:nth-child(6){animation-delay:.105s}@keyframes section-arrive{0%{opacity:.45;transform:translateY(12px)scale(.99)}to{opacity:1;transform:none}}@keyframes page-arrive{0%{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}.rise-enter-active,.rise-move{transition:opacity .35s var(--ease), transform .45s var(--spring)}.rise-enter-from{opacity:0;transform:translateY(10px)}@keyframes float-y{0%{transform:translateY(0)}to{transform:translateY(-6px)}}@keyframes pulse-soft{0%,to{opacity:.55}50%{opacity:1}}[data-motion=quiet] *,[data-motion=quiet] :before,[data-motion=quiet] :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=900px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.page{padding:0 14px 28px}.card{border-radius:var(--r-m);padding:16px}#toast{right:16px;bottom:calc(86px + env(safe-area-inset-bottom))}}.page{overflow-wrap:anywhere}.page>*,.card,.card>*,.field,.row>*,.kv dd{min-width:0}.eyebrow{letter-spacing:.18em}.card{border-top-color:color-mix(in srgb, white 70%, var(--line))}.card-head{flex-wrap:wrap;gap:14px}.save-bar,form>.actions{z-index:4;border:1px solid var(--glass-edge);background:linear-gradient(180deg, #ffffff47, transparent 60%), var(--surface-strong);box-shadow:var(--glass-sheen), var(--shadow-soft);border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px;display:flex;position:sticky;bottom:12px}@media (width<=760px){.save-bar,form>.actions{bottom:84px}}.card,.list-row,.bubble,.pill,.seg,.save-bar,form>.actions{background:radial-gradient(ellipse at 4% 0%, #ffffffe6, transparent 43%), linear-gradient(145deg, #ffffff9e, #ffffff2b 58%, #e2e9ff52), var(--glass-fill);box-shadow:inset 0 1.5px 1px #fffffff5, inset 1px 0 1px #ffffffb3, inset -1px -2px 2px #708fd221, var(--glass-shadow);border-color:#ffffffc2}.card{border-radius:var(--r-l);transition:transform .56s var(--jelly)}.card:hover{border-color:#fffffff7;transform:translateY(-4px)scale(1.012)}button:where(:not(.text-button):not(.ghost)){transition:transform .52s var(--jelly);background-image:linear-gradient(145deg,#ffffffc7,#ffffff38);border-color:#ffffffb8;box-shadow:inset 0 1px #ffffffeb,0 7px 20px -14px #415b9b52}button:hover:where(:not(:disabled):not(.text-button)){transform:translateY(-3px)scale(1.035)}button:active:where(:not(:disabled):not(.text-button)){transition-duration:90ms;transform:translateY(2px)scale(.9,1.06)}button.primary:where(:not(.ghost)){color:#244676;background-color:color-mix(in srgb, var(--glow-a) 44%, white);background-image:radial-gradient(circle at 15% 0,#ffffffeb,#0000 45%),linear-gradient(115deg,#a7d8fb,#c0c6fb 55%,#f4cce8);border-color:#ffffffd1;box-shadow:inset 0 2px 1px #ffffffde,0 13px 24px -12px #5d7fcd6b}button.primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--glow-a) 58%, white);background-image:radial-gradient(circle at 35% -10%,#fff,#0000 48%),linear-gradient(115deg,#9ed9ff,#b9c3fa 55%,#f4c5e1)}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{background:linear-gradient(150deg, #ffffffab, #ffffff47), var(--glass-fill);transition:transform .42s var(--jelly), border-color .26s ease;border-color:#ffffffd4;border-radius:17px;box-shadow:inset 0 2px 3px #5371b31a,inset 0 -1px 1px #fff}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus{border-color:color-mix(in srgb, var(--accent) 48%, white);box-shadow:inset 0 1px 2px #5371b314, 0 0 0 4px color-mix(in srgb, var(--glow-a) 42%, transparent), 0 12px 22px -17px var(--accent);transform:translateY(-1px)}.chip{background:color-mix(in srgb, var(--accent-soft) 44%, #ffffff85);box-shadow:inset 0 1px 0 #ffffffe6, 0 4px 12px -9px var(--accent);border:1px solid #ffffffb3}.seg{border-radius:999px;padding:5px}.seg button.active,.seg button[aria-selected=true]{color:var(--ink);background:linear-gradient(120deg, #fffffff2, color-mix(in srgb, var(--glow-a) 42%, white));box-shadow:0 5px 14px -9px var(--accent), inset 0 1px 0 white;animation:glass-settle .48s var(--spring) both;border:1px solid #fffffff5}.list-row{transition:transform .48s var(--jelly);border-radius:18px}.list-row:hover{transform:translate(4px)scale(1.01)}.meter{background:#ffffff70;border:1px solid #ffffffb8;height:10px;padding:2px;box-shadow:inset 0 2px 3px #425c9921,0 1px #fff}.meter>i{box-shadow:inset 0 1px 0 #ffffffe0, 0 0 13px color-mix(in srgb, var(--glow-a) 55%, transparent);transition:width .9s var(--spring)}.bubble{border-radius:22px}.bubble.ta{background:linear-gradient(125deg, color-mix(in srgb, var(--orb-a) 54%, white), color-mix(in srgb, var(--glow-a) 40%, #fff9));border-color:#ffffffd1}@keyframes glass-settle{0%{opacity:.5;transform:scale(.86,.78)translateY(6px)}70%{opacity:1;transform:scale(1.04,.98)translateY(-1px)}to{opacity:1;transform:none}}.card,.list-row,.bubble,.pill,.seg,.note,.chip,.message .text,.session-row,.feedback-item,.face-card,.entry,.facts,.fold,.preview-bubble,button,input,textarea,select{-webkit-backdrop-filter:none!important}
1
+ .sky[data-v-d7604463]{z-index:0;contain:paint;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sky-base[data-v-d7604463]{background:radial-gradient(ellipse at 13% 16%, #ffffffd4, transparent 38%), radial-gradient(ellipse at 82% 8%, color-mix(in srgb, var(--glow-b) 36%, transparent), transparent 46%), linear-gradient(168deg, var(--sky-top) 0%, var(--sky-mid) 48%, var(--sky-bottom) 100%);position:absolute;inset:0}.garden[data-v-d7604463]{opacity:.22;background:url(/app/assets/liquid-garden-IMoHBwzc.png) 50% 58%/cover no-repeat;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000 8%,#000 42% 100%);mask-image:linear-gradient(#0000 8%,#000 42% 100%)}.garden.custom[data-v-d7604463]{background-position:50%;background-size:cover;-webkit-mask-image:none;mask-image:none}.glow[data-v-d7604463]{opacity:calc(.55 + var(--intensity,.5) * .2);border-radius:50%;position:absolute}.g1[data-v-d7604463]{background:radial-gradient(circle, var(--glow-a) 0%, transparent 64%);width:58vmax;height:58vmax;animation:sky-drift-a-d7604463 calc(34s / var(--tempo,1)) ease-in-out infinite alternate;top:-20vmax;left:-18vmax}.g2[data-v-d7604463]{background:radial-gradient(circle, var(--glow-b) 0%, transparent 66%);width:48vmax;height:48vmax;animation:sky-drift-b-d7604463 calc(41s / var(--tempo,1)) ease-in-out infinite alternate;top:8vh;right:-16vmax}.g3[data-v-d7604463]{background:radial-gradient(circle, color-mix(in srgb, var(--glow-a) 70%, var(--glow-b)) 0%, transparent 68%);width:46vmax;height:46vmax;animation:sky-drift-a-d7604463 calc(47s / var(--tempo,1)) ease-in-out infinite alternate-reverse;bottom:-24vmax;left:22vw}.g4[data-v-d7604463]{background:radial-gradient(circle, color-mix(in srgb, white 55%, var(--glow-b)) 0%, transparent 70%);opacity:.45;width:28vmax;height:28vmax;animation:sky-drift-b-d7604463 calc(28s / var(--tempo,1)) ease-in-out infinite alternate-reverse;top:18vh;left:48vw}.horizon[data-v-d7604463]{background:radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--glow-a) 62%, transparent), transparent 68%);height:46%;position:absolute;bottom:-6%;left:-12%;right:-12%}.sheen[data-v-d7604463]{pointer-events:none;background:linear-gradient(115deg,#0000 36%,#ffffff24 50%,#0000 64%);position:absolute;inset:0}.vignette[data-v-d7604463]{background:radial-gradient(ellipse at 50% 40%, transparent 42%, color-mix(in srgb, var(--ink) 14%, transparent) 100%);position:absolute;inset:0}.moon[data-v-d7604463]{filter:drop-shadow(0 0 26px #fff0be73);opacity:.92;border-radius:50%;width:78px;height:78px;position:absolute;top:3vh;right:24vw;transform:rotate(-20deg);box-shadow:inset -20px -7px #fff4c2}.particles[data-v-d7604463]{opacity:.55;width:100%;height:100%;position:absolute;inset:0}.particles.off[data-v-d7604463]{display:none}@keyframes sky-drift-a-d7604463{to{transform:translate(6vmax,4vmax)scale(1.08)}}@keyframes sky-drift-b-d7604463{to{transform:translate(-5vmax,6vmax)scale(.94)}}@media (width<=760px){.moon[data-v-d7604463]{width:52px;height:52px;top:1.5vh;right:36vw;box-shadow:inset -13px -5px #fff4c2}}.landscape[data-v-d7604463]{contain:paint;opacity:.55;pointer-events:none;position:absolute;inset:0;overflow:hidden}.landscape i[data-v-d7604463]{background:radial-gradient(ellipse at 34% 42%, #ffffffd9, color-mix(in srgb, var(--glow-b) 53%, transparent) 38%, transparent 72%);border-radius:61% 39% 45% 55%/47% 65% 35% 53%;width:77vw;height:48vw;position:absolute;top:6vh;right:-20vw;transform:rotate(-24deg)}.landscape i[data-v-d7604463]:nth-child(2){opacity:.66;background:radial-gradient(ellipse at 44% 48%, #ffffffc2, color-mix(in srgb, var(--glow-a) 48%, transparent) 46%, transparent 74%);width:61vw;height:35vw;top:38vh;right:-19vw}.landscape i[data-v-d7604463]:nth-child(3){opacity:.72;background:radial-gradient(ellipse at 52% 52%, #ffffffdb, color-mix(in srgb, var(--glow-a) 52%, transparent) 43%, transparent 71%);width:72vw;height:43vw;top:32vh;left:-34vw;right:auto}.landscape i[data-v-d7604463]:nth-child(4){opacity:.58;background:radial-gradient(ellipse at 49% 31%, #ffffffeb, color-mix(in srgb, var(--glow-b) 38%, transparent) 55%, transparent 80%);width:69vw;height:28vw;top:74vh;left:5vw;right:auto}.ta-orb[data-v-3fb60aa5]{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-radius:50%;flex:none;position:relative}.ta-orb.interactive[data-v-3fb60aa5]{cursor:pointer}.ta-orb[data-v-3fb60aa5]:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:4px}svg[data-v-3fb60aa5]{width:100%;height:100%;transition:filter .6s var(--ease), transform .6s var(--spring);overflow:visible}.aura[data-v-3fb60aa5]{transform-box:fill-box;transform-origin:50%;animation:orb-aura-3fb60aa5 calc(4.8s / var(--tempo,1)) ease-in-out infinite}.shadow[data-v-3fb60aa5]{fill:var(--ink);opacity:.1}.body[data-v-3fb60aa5]{filter:drop-shadow(0 8px 14px color-mix(in srgb, var(--orb-c) 40%, transparent))}.shine[data-v-3fb60aa5]{fill:#fff;opacity:.5}.shine.dot[data-v-3fb60aa5]{opacity:.7}.ink[data-v-3fb60aa5]{fill:var(--orb-face)}.line[data-v-3fb60aa5]{fill:none;stroke:var(--orb-face);stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round}.line.thin[data-v-3fb60aa5]{stroke-width:2.6px}.line.hair[data-v-3fb60aa5]{stroke-width:1.6px;opacity:.5}.glint[data-v-3fb60aa5]{fill:#fff}.tongue[data-v-3fb60aa5],.cheeks ellipse[data-v-3fb60aa5]{fill:var(--cheek)}.cheeks[data-v-3fb60aa5]{transition:opacity .5s var(--ease)}.squish[data-v-3fb60aa5]{transform-box:view-box;transform-origin:100px 180px}.is-press .squish[data-v-3fb60aa5]{transition:transform .2s var(--ease);transform:scale(1.06,.93)}.is-poke .squish[data-v-3fb60aa5]{animation:orb-squish-3fb60aa5 .65s var(--spring)}.is-pet .squish[data-v-3fb60aa5]{animation:1.4s ease-in-out orb-wiggle-3fb60aa5}.eye[data-v-3fb60aa5]{transform-box:fill-box;transform-origin:50%}.eyes.blinks .eye[data-v-3fb60aa5]{animation:orb-blink-3fb60aa5 calc(5.6s / var(--tempo,1)) var(--blink-delay,0s) infinite}.eyes.blinks .eye.wink[data-v-3fb60aa5]{animation:6.5s 2s infinite orb-wink-3fb60aa5}.talk[data-v-3fb60aa5],.yawn[data-v-3fb60aa5]{transform-box:fill-box;transform-origin:50%}.talk[data-v-3fb60aa5]{animation:.42s ease-in-out infinite alternate orb-talk-3fb60aa5}.yawn[data-v-3fb60aa5]{animation:6s ease-in-out infinite orb-yawn-3fb60aa5}.page[data-v-3fb60aa5]{fill:var(--paper,#fffdf6);stroke:var(--orb-face);stroke-width:1.8px;stroke-linejoin:round}.pen rect[data-v-3fb60aa5],.pen path[data-v-3fb60aa5]{fill:var(--accent);stroke:var(--orb-face);stroke-width:1.4px}.halo circle[data-v-3fb60aa5]{fill:none;stroke:var(--orb-b);stroke-width:2px;stroke-dasharray:3 9;opacity:.85;transform-box:view-box;transform-origin:100px 112px;animation:26s linear infinite orb-spin-3fb60aa5}.halo .halo-soft[data-v-3fb60aa5]{stroke-dasharray:none;stroke-width:10px;opacity:.18;animation:5s ease-in-out infinite orb-breathe-3fb60aa5}.fx .sparkle[data-v-3fb60aa5]{fill:var(--particle);stroke:color-mix(in srgb, var(--accent) 50%, transparent);stroke-width:.8px;transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite orb-twinkle-3fb60aa5}.fx .heart[data-v-3fb60aa5]{fill:var(--cheek);opacity:.85;transform-box:fill-box;transform-origin:50%;animation:3.6s ease-out infinite orb-rise-3fb60aa5}.fx .cloud[data-v-3fb60aa5]{fill:color-mix(in srgb, var(--orb-c) 55%, #fff);animation:3.5s ease-in-out infinite alternate orb-float-3fb60aa5}.storm .cloud[data-v-3fb60aa5]{fill:color-mix(in srgb, var(--orb-c) 75%, #444)}.drop[data-v-3fb60aa5]{stroke:var(--orb-c);stroke-width:2.2px;stroke-linecap:round;animation:1.35s linear infinite orb-drop-3fb60aa5}.scribble[data-v-3fb60aa5]{fill:none;stroke:var(--orb-c);stroke-width:2.4px;stroke-linecap:round;animation:.9s ease-in-out infinite alternate orb-float-3fb60aa5}.zz[data-v-3fb60aa5]{font:700 13px/1 var(--font-display);fill:var(--orb-face);opacity:.7;transform-box:fill-box;animation:3.2s ease-in-out infinite orb-z-3fb60aa5}[data-mood=night] .zz[data-v-3fb60aa5]{fill:var(--ink)}.moon[data-v-3fb60aa5]{fill:#fff4c2;filter:drop-shadow(0 0 6px #fff0b499)}.floating-page[data-v-3fb60aa5]{animation:3s ease-in-out infinite alternate orb-float-3fb60aa5}.think .puff[data-v-3fb60aa5]{fill:var(--surface-strong);stroke:var(--line);stroke-width:1.2px}.think .dot[data-v-3fb60aa5]{fill:var(--orb-face);transform-box:fill-box;animation:1.1s ease-in-out infinite orb-dots-3fb60aa5}.talkwaves path[data-v-3fb60aa5]{stroke:var(--accent);animation:1.2s ease-in-out infinite pulse-soft}.orb-say[data-v-3fb60aa5]{z-index:3;background:var(--surface-strong);border:1px solid var(--line);width:max-content;max-width:min(260px,70vw);box-shadow:var(--shadow-soft);color:var(--ink);text-align:left;pointer-events:none;border-radius:16px 16px 16px 4px;margin:0;padding:8px 14px;font-size:13px;font-weight:600;line-height:1.5;position:absolute;bottom:92%;left:50%}.orb-say.say-left[data-v-3fb60aa5]{border-radius:16px 16px 4px;bottom:56%;left:auto;right:88%}.orb-say-enter-active[data-v-3fb60aa5]{transition:opacity .25s var(--ease), transform .4s var(--spring)}.orb-say-leave-active[data-v-3fb60aa5]{transition:opacity .2s}.orb-say-enter-from[data-v-3fb60aa5]{opacity:0;transform:translateY(8px)scale(.9)}.orb-say-leave-to[data-v-3fb60aa5]{opacity:0}@keyframes orb-blink-3fb60aa5{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.12)}}@keyframes orb-wink-3fb60aa5{0%,86%,to{transform:scaleY(1)}90%,94%{transform:scaleY(.12)}}@keyframes orb-squish-3fb60aa5{0%{transform:scale(1)}18%{transform:scale(1.2,.76)}42%{transform:scale(.9,1.12)}66%{transform:scale(1.05,.96)}to{transform:scale(1)}}@keyframes orb-wiggle-3fb60aa5{0%,to{transform:rotate(0)}15%{transform:rotate(-6deg)}35%{transform:rotate(5deg)}55%{transform:rotate(-4deg)}75%{transform:rotate(2deg)}}@keyframes orb-aura-3fb60aa5{0%,to{opacity:.75;transform:scale(.94)}50%{opacity:1;transform:scale(1.04)}}@keyframes orb-breathe-3fb60aa5{0%,to{opacity:.12}50%{opacity:.28}}@keyframes orb-talk-3fb60aa5{0%{transform:scaleY(.45)}to{transform:scaleY(1.1)}}@keyframes orb-yawn-3fb60aa5{0%,70%,to{transform:scale(.7)}80%,88%{transform:scale(1.35)}}@keyframes orb-spin-3fb60aa5{to{transform:rotate(360deg)}}@keyframes orb-twinkle-3fb60aa5{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.45)}}@keyframes orb-rise-3fb60aa5{0%{opacity:.85;transform:translateY(0)scale(1)}70%{opacity:.5}to{opacity:0;transform:translateY(-26px)scale(1.15)}}@keyframes orb-drop-3fb60aa5{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}@keyframes orb-z-3fb60aa5{0%{opacity:.7;transform:translate(0)scale(1)}to{opacity:0;transform:translate(10px,-16px)scale(1.15)}}@keyframes orb-dots-3fb60aa5{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes orb-float-3fb60aa5{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.menu-select[data-v-fc4ee90c]{min-width:0;position:relative}.menu-face[data-v-fc4ee90c]{background:linear-gradient(180deg, #ffffffb8, #fff6), var(--surface-strong);border:1px solid var(--glass-edge);width:100%;min-height:42px;box-shadow:var(--glass-sheen);text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.menu-face span[data-v-fc4ee90c]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-face i[data-v-fc4ee90c]{border-right:1.5px solid var(--ink-soft);border-bottom:1.5px solid var(--ink-soft);width:8px;height:8px;transform:translateY(-2px)rotate(45deg)}.menu-list[data-v-fc4ee90c]{z-index:200;background:var(--surface-strong);border:1px solid var(--glass-edge);max-height:280px;box-shadow:var(--glass-sheen), var(--shadow);transform-origin:top;animation:menu-pop-fc4ee90c .46s var(--jelly) both;border-radius:16px;margin:0;padding:6px;list-style:none;display:grid;position:fixed;overflow:auto}.menu-list.up[data-v-fc4ee90c]{transform-origin:bottom}@keyframes menu-pop-fc4ee90c{0%{opacity:0;transform:translateY(10px)scale(.92,.82)}70%{opacity:1;transform:translateY(-2px)scale(1.02,1.04)}to{transform:none}}.menu-list button[data-v-fc4ee90c]{text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:10px;width:100%;padding:8px 10px;font-weight:550}.menu-list button[aria-selected=true][data-v-fc4ee90c]{background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--ink)}.empty[data-v-fc4ee90c]{color:var(--ink-soft);padding:8px 10px;font-size:13px}.menu-list button[data-v-fc4ee90c]:hover:not(:disabled){box-shadow:none;background:color-mix(in srgb, var(--accent) 10%, transparent);transform:none}.native[data-v-fc4ee90c]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.ta-chat[data-v-235059b5]{flex-direction:column;gap:10px;height:100%;min-height:0;display:flex}.preview-meta[data-v-235059b5]{color:var(--ink-soft);font-size:12px}.ta-chat-log[data-v-235059b5]{flex-direction:column;flex:1;gap:10px;min-height:64px;padding:4px 2px;display:flex}.preview-bubble[data-v-235059b5]{overflow-wrap:anywhere;max-width:88%;animation:bubble-in-235059b5 .35s var(--spring);border-radius:18px;padding:9px 13px;font-size:14px;line-height:1.6}.preview-bubble p+p[data-v-235059b5]{margin-top:4px}.preview-bubble.me[data-v-235059b5]{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:6px;align-self:flex-end}.preview-bubble.bot[data-v-235059b5]{background:linear-gradient(135deg, color-mix(in srgb, var(--orb-a) 80%, var(--surface-strong)), color-mix(in srgb, var(--orb-b) 50%, var(--surface-strong)));color:var(--ink);border-bottom-left-radius:6px;align-self:flex-start}[data-mood=night] .preview-bubble.bot[data-v-235059b5]{background:color-mix(in srgb, var(--orb-b) 40%, var(--surface-strong))}.why[data-v-235059b5]{margin-top:6px;font-size:12px}.why summary[data-v-235059b5]{color:var(--ink-soft);font-weight:600}.why summary[data-v-235059b5]:before{content:"▸ "}.why[open] summary[data-v-235059b5]:before{content:"▾ "}.why p[data-v-235059b5]{color:var(--ink-soft);margin-top:4px}.typing[data-v-235059b5]{background:color-mix(in srgb, var(--orb-a) 70%, var(--surface-strong));border-radius:18px 18px 18px 6px;align-self:flex-start;gap:5px;padding:12px 14px;display:inline-flex}.typing i[data-v-235059b5]{background:var(--orb-face);opacity:.5;border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite typing-235059b5}.typing i[data-v-235059b5]:nth-child(2){animation-delay:.15s}.typing i[data-v-235059b5]:nth-child(3){animation-delay:.3s}.ta-chat-form[data-v-235059b5]{flex-shrink:0;gap:8px;display:grid}.ta-chat-options[data-v-235059b5]{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.where[data-v-235059b5]{flex:1;align-items:center;gap:8px;min-width:180px;display:flex}.where[data-v-235059b5] .menu-select{flex:1;min-width:0}.where span[data-v-235059b5]{white-space:nowrap}.where select[data-v-235059b5]{padding:6px 10px;font-size:13px}.composer[data-v-235059b5]{gap:8px;display:flex}.composer input[data-v-235059b5]{border-radius:999px;padding-inline:16px}@keyframes bubble-in-235059b5{0%{opacity:0;transform:translateY(6px)scale(.97)}}@keyframes typing-235059b5{0%,to{opacity:.4;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.companion[data-v-038fa72e]{z-index:80;pointer-events:none;justify-items:end;gap:10px;display:grid;position:fixed;bottom:16px;right:18px}.companion[data-v-038fa72e]>*{pointer-events:auto}.companion-dock[data-v-038fa72e]{align-items:flex-end;gap:4px;display:flex}.companion-talk[data-v-038fa72e]{opacity:1;transition:opacity .25s var(--ease), transform .3s var(--spring);margin-bottom:14px;padding:6px 12px;font-size:12px;transform:none}.companion-dock:hover .companion-talk[data-v-038fa72e],.companion-talk[data-v-038fa72e]:focus-visible,.companion-talk[aria-expanded=true][data-v-038fa72e]{opacity:1;transform:none}@media (hover:none){.companion-talk[data-v-038fa72e]{opacity:1;transform:none}}.scrim[data-v-038fa72e]{z-index:1;background:color-mix(in srgb, var(--ink) 32%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100vw;height:100dvh;box-shadow:none;cursor:pointer;border:none;border-radius:0;margin:0;padding:0;position:fixed;inset:0}.scrim[data-v-038fa72e]:hover:not(:disabled),.scrim[data-v-038fa72e]:active:not(:disabled){box-shadow:none;border:none;transform:none}.scrim-enter-active[data-v-038fa72e],.scrim-leave-active[data-v-038fa72e]{transition:opacity .2s var(--ease)}.scrim-enter-from[data-v-038fa72e],.scrim-leave-to[data-v-038fa72e]{opacity:0}.ta-drawer[data-v-038fa72e]{z-index:2;background:radial-gradient(ellipse at 0% 0%, #ffffffeb, transparent 50%), linear-gradient(145deg, #ffffffb8, #ebf3ff6e 65%, #f8e8fb94), var(--glass-fill);-webkit-backdrop-filter:blur(34px)saturate(1.8);backdrop-filter:blur(34px)saturate(1.8);border:1.5px solid #ffffffde;border-radius:34px;flex-direction:column;gap:12px;width:min(460px,100vw - 28px);height:min(640px,100dvh - 140px);padding:16px 18px 18px;display:flex;position:relative;box-shadow:inset 0 2px 1px #fff,0 28px 64px -27px #3452956b}.drawer-head[data-v-038fa72e]{align-items:center;gap:10px;display:flex}.drawer-title[data-v-038fa72e]{flex:1;justify-items:start;gap:3px;display:grid}.drawer-head h2[data-v-038fa72e]{font-size:16px}.drawer-enter-active[data-v-038fa72e]{transition:opacity .28s var(--ease), transform .55s var(--spring)}.drawer-leave-active[data-v-038fa72e]{transition:opacity .18s,transform .2s}.drawer-enter-from[data-v-038fa72e],.drawer-leave-to[data-v-038fa72e]{opacity:0;transform-origin:100% 100%;transform:translateY(34px)scale(.88)rotate(2deg)}@media (width<=760px){.companion[data-v-038fa72e]{right:12px;bottom:calc(84px + env(safe-area-inset-bottom))}.companion-dock[data-v-038fa72e] .ta-orb{width:58px!important;height:58px!important}.companion-talk[data-v-038fa72e]{margin-bottom:10px;padding:5px 10px}.ta-drawer[data-v-038fa72e]{height:min(520px,100dvh - 190px)}}.drawer-head[data-v-038fa72e] .ta-orb{flex:0 0 42px}.drawer-head[data-v-038fa72e]{border-bottom:1px solid var(--line);flex-shrink:0;padding-bottom:12px}.ta-drawer[data-v-038fa72e] .ta-chat{min-height:0;overflow:hidden}.companion-dock[data-v-038fa72e]{background:linear-gradient(140deg, #ffffffd1, #e8f2ff6b), var(--glass-fill);-webkit-backdrop-filter:blur(22px)saturate(1.75);backdrop-filter:blur(22px)saturate(1.75);transition:transform .42s var(--spring), box-shadow .32s ease;border:1.5px solid #ffffffe0;border-radius:999px;align-items:center;padding:5px 10px;box-shadow:inset 0 2px 1px #fff,0 15px 28px -17px #34529561}.companion-dock[data-v-038fa72e]:hover{transform:translateY(-5px)scale(1.035);box-shadow:inset 0 2px 1px #fff,0 23px 32px -17px #34529573}.companion-talk[data-v-038fa72e]{background:0 0;border:0;margin:0}@media (width<=760px){.companion-dock[data-v-038fa72e] .ta-orb{width:36px!important;height:36px!important}.companion-talk[data-v-038fa72e]{margin:0}}.locale-switch[data-v-bc942b38]{flex-wrap:nowrap;gap:2px;padding:3px}.locale-switch button[data-v-bc942b38]{letter-spacing:.02em;min-width:36px;padding:5px 10px;font-size:12.5px;font-weight:700}@media (width<=760px){.locale-switch button[data-v-bc942b38]{min-width:30px;padding:5px 8px}}.theme-picker[data-v-4e5670d2]{position:relative}.theme-toggle[data-v-4e5670d2]{width:100%;color:var(--ink-soft);text-align:left;background:0 0;border:none;border-radius:14px;align-items:center;gap:10px;padding:8px 12px;display:flex}.theme-toggle[data-v-4e5670d2]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);color:var(--ink);box-shadow:none;transform:none}.swatch[data-v-4e5670d2]{background:radial-gradient(circle at 36% 30%, var(--orb-a), var(--orb-b) 58%, var(--orb-c));width:20px;height:20px;box-shadow:0 0 0 2px var(--surface-strong), 0 0 0 3px var(--line);border-radius:50%;flex:none}.swatch.auto[data-v-4e5670d2]{background:conic-gradient(#ffc15f,#ffa8cf,#7fdcbc,#99b2d8,#9a8cc4,#cdb6f7,#6f7ee6,#ffc15f)}.theme-menu[data-v-4e5670d2]{z-index:80;background:radial-gradient(ellipse at 0% 0%, #ffffffed, transparent 52%), linear-gradient(145deg, #ffffffb8, #edf3ff5e), var(--glass-fill);-webkit-backdrop-filter:blur(30px)saturate(1.8);backdrop-filter:blur(30px)saturate(1.8);border:1.5px solid #ffffffd9;border-radius:28px;gap:2px;width:250px;max-height:calc(100dvh - 64px);padding:8px;display:grid;position:fixed;top:96px;right:28px;overflow:auto;box-shadow:inset 0 2px 1px #fff,0 24px 58px -27px #34529566}.theme-menu.inline-menu[data-v-4e5670d2]{width:100%;box-shadow:none;position:static}@media (width>=761px) and (width<=1100px){.theme-menu[data-v-4e5670d2]{right:20px}}.theme-menu button[data-v-4e5670d2]{text-align:left;background:0 0;border:none;border-radius:14px;align-items:center;gap:12px;padding:8px 10px;font-weight:500;display:flex}.theme-menu button[data-v-4e5670d2]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 9%, transparent);box-shadow:none;transform:none}.theme-menu button[aria-checked=true][data-v-4e5670d2]{background:linear-gradient(120deg, #ffffffde, color-mix(in srgb, var(--glow-a) 40%, white));box-shadow:inset 0 1px 0 white, 0 8px 18px -13px var(--accent)}.theme-menu button>span[data-v-4e5670d2]:last-child{line-height:1.35;display:grid}.theme-menu b[data-v-4e5670d2]{font-size:13px}.theme-menu small[data-v-4e5670d2]{color:var(--ink-soft);font-size:11.5px}.pop-enter-active[data-v-4e5670d2]{transition:opacity .2s var(--ease), transform .3s var(--spring)}.pop-leave-active[data-v-4e5670d2]{transition:opacity .15s}.pop-enter-from[data-v-4e5670d2],.pop-leave-to[data-v-4e5670d2]{opacity:0;transform:translateY(6px)scale(.98)}.presence-dock[data-v-4625711b]{z-index:4;width:100%;height:calc(100dvh - 112px);max-height:calc(100dvh - 112px);color:var(--ink);background:linear-gradient(145deg,#ffffffeb,#f8fbffe0);border:1px solid #ffffffe0;border-radius:28px;align-content:start;align-self:start;gap:12px;padding:22px;display:grid;position:sticky;top:96px;overflow:auto;box-shadow:inset 0 1px #fffffff5,0 24px 48px -34px #2745808f}.presence-detail[data-v-4625711b]{align-content:start;gap:12px;min-width:0;display:grid}.mood-word[data-v-4625711b]{font-family:var(--font-display);letter-spacing:-.055em;background:linear-gradient(105deg, var(--ink) 4%, #83bcf2 52%, #dd9dca 95%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,3.5vw,70px);font-weight:750}.chips[data-v-4625711b]{gap:7px}.chips .chip[data-v-4625711b]{background:#ffffffa3;border-color:#ffffffd6}.activity-chip[data-v-4625711b]{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%;line-height:1.5}.actions[data-v-4625711b]{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.actions>button[data-v-4625711b]{background:#ffffff8a;border-color:#ffffffe0;justify-content:center;width:100%}.actions>button.primary[data-v-4625711b]{color:#213e73;background:linear-gradient(120deg,#84bdfb,#a5b5f0 56%,#dfb4e5);box-shadow:0 16px 32px -16px #7ca9ef}.aside-bit[data-v-4625711b]{border-top:1px solid #ffffffb3;gap:4px;padding-top:10px;display:grid}.aside-bit p[data-v-4625711b]{font-size:13.5px;line-height:1.55}.aside-bit small[data-v-4625711b]{color:var(--ink-soft);font-size:12px}@media (width<=760px){.presence-dock[data-v-4625711b]{width:calc(100% - 28px);height:auto;max-height:none;margin:0 auto 8px;position:relative;top:auto}}.dialog-layer[data-v-2339e49c]{z-index:100;background:color-mix(in srgb, var(--sky-top) 44%, #3c51893d);-webkit-backdrop-filter:blur(13px)saturate(1.25);backdrop-filter:blur(13px)saturate(1.25);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-2339e49c]{background:radial-gradient(ellipse at 9% -10%, #fffffffa, transparent 53%), linear-gradient(148deg, #ffffffc2, #e5efff70 64%, #f8e7fb8c), var(--glass-fill);-webkit-backdrop-filter:blur(32px)saturate(1.7);backdrop-filter:blur(32px)saturate(1.7);border:1.5px solid #ffffffe3;border-radius:34px;gap:17px;width:min(420px,100%);padding:42px 30px 26px;display:grid;position:relative;box-shadow:inset 0 2px 1px #fff,0 30px 72px -28px #3452956e}.dialog h2[data-v-2339e49c]{font-size:18px}.dialog p[data-v-2339e49c]{color:var(--ink-soft);white-space:pre-line;font-size:14px;line-height:1.7}.dialog-orb[data-v-2339e49c]{background:radial-gradient(circle at 38% 30%, var(--orb-a), var(--orb-b) 60%, var(--orb-c));width:52px;height:50px;box-shadow:inset 0 3px 3px #ffffffe0, 0 13px 24px -9px var(--orb-c);border:2px solid #ffffffe3;border-radius:44% 56% 57% 43%/50% 43% 57% 50%;animation:4s ease-in-out infinite alternate dialog-orb-breathe-2339e49c;position:absolute;top:-24px;left:30px}.dialog-enter-active[data-v-2339e49c],.dialog-leave-active[data-v-2339e49c]{transition:opacity .2s var(--ease)}.dialog-enter-active .dialog[data-v-2339e49c]{transition:transform .52s var(--spring)}.dialog-enter-from[data-v-2339e49c],.dialog-leave-to[data-v-2339e49c]{opacity:0}.dialog-enter-from .dialog[data-v-2339e49c]{transform:translateY(22px)scale(.9)}@keyframes dialog-orb-breathe-2339e49c{to{transform:translateY(-5px)rotate(8deg)scale(1.07)}}.icon[data-v-69e2db74]{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.sheet-layer[data-v-2c804a0d]{z-index:70;background:color-mix(in srgb, var(--sky-top) 42%, #3c518945);-webkit-backdrop-filter:blur(13px)saturate(1.3);backdrop-filter:blur(13px)saturate(1.3);justify-content:flex-end;padding:12px;display:flex;position:fixed;inset:0}.sheet[data-v-2c804a0d]{width:min(var(--sheet-w), calc(100vw - 24px));background:radial-gradient(ellipse at 0% 0%, #fffffff2, transparent 43%), linear-gradient(145deg, #ffffffba, #ecf4ff73 62%, #f6eafb99), var(--glass-fill);-webkit-backdrop-filter:blur(36px)saturate(1.8);backdrop-filter:blur(36px)saturate(1.8);border:1.5px solid #ffffffe0;border-radius:34px;outline:none;flex-direction:column;height:100%;display:flex;box-shadow:inset 0 2px 1px #fff,inset -1px -2px 2px #708fd221,0 32px 75px -28px #34529570}.sheet-head[data-v-2c804a0d]{border-bottom:1px solid #ffffffab;justify-content:space-between;align-items:flex-start;gap:12px;padding:26px 28px 18px;display:flex}.sheet-head h2[data-v-2c804a0d]{font-size:19px}.sheet-body[data-v-2c804a0d]{overscroll-behavior:contain;flex:1;padding:20px 28px 30px;overflow:auto}.sheet-enter-active[data-v-2c804a0d],.sheet-leave-active[data-v-2c804a0d]{transition:opacity .25s var(--ease)}.sheet-enter-active .sheet[data-v-2c804a0d],.sheet-leave-active .sheet[data-v-2c804a0d]{transition:transform .55s var(--spring)}.sheet-enter-from[data-v-2c804a0d],.sheet-leave-to[data-v-2c804a0d]{opacity:0}.sheet-enter-from .sheet[data-v-2c804a0d],.sheet-leave-to .sheet[data-v-2c804a0d]{transform:translate(74px)scale(.94)}@media (width<=760px){.sheet-layer[data-v-2c804a0d]{align-items:flex-end;padding:0}.sheet[data-v-2c804a0d]{border-radius:30px 30px 0 0;width:100vw;height:min(88dvh,100%)}.sheet-enter-from .sheet[data-v-2c804a0d],.sheet-leave-to .sheet[data-v-2c804a0d]{transform:translateY(40px)}}.card-head[data-v-2c88637b]{border-bottom:1px solid #ffffffb3;align-items:center;margin-bottom:19px;padding-bottom:13px;position:relative}.card-head h2[data-v-2c88637b]{letter-spacing:-.025em;margin-top:3px;font-size:clamp(18px,1.7vw,22px);font-weight:740}.card-head p[data-v-2c88637b]{margin-top:5px;line-height:1.55}.card-head .eyebrow[data-v-2c88637b]{color:var(--accent)}.meter-row[data-v-4f51518c]{grid-template-columns:minmax(64px,max-content) 1fr minmax(40px,max-content);align-items:center;gap:12px;font-size:12.5px;display:grid}.meter-label[data-v-4f51518c]{color:var(--ink-soft)}.meter-value[data-v-4f51518c]{text-align:right;font-variant-numeric:tabular-nums}.count[data-v-e8e03a3b]{opacity:.75;font-variant-numeric:tabular-nums;margin-left:6px;font-size:11px}.timeline[data-v-e79d18a9]{margin:0;padding:0;list-style:none;display:grid}.timeline li[data-v-e79d18a9]{content-visibility:auto;contain-intrinsic-size:auto 84px;grid-template-columns:24px minmax(0,1fr);gap:12px;display:grid}.stem[data-v-e79d18a9]{justify-items:center;display:grid;position:relative}.stem[data-v-e79d18a9]:before{content:"";background:linear-gradient(var(--glow-a), #ffffffd9, var(--glow-b));width:3px;box-shadow:0 0 10px color-mix(in srgb, var(--glow-a) 55%, transparent);border-radius:999px;position:absolute;top:0;bottom:0}.timeline li:first-child .stem[data-v-e79d18a9]:before{top:12px}.timeline li:last-child .stem[data-v-e79d18a9]:before{bottom:calc(100% - 14px)}.stem i[data-v-e79d18a9]{background:linear-gradient(145deg, white, var(--glow-a));width:13px;height:13px;box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 33%, transparent), 0 0 13px var(--glow-a);border:2px solid #fff;border-radius:50%;margin-top:18px;position:relative}li[data-tone=warm] .stem i[data-v-e79d18a9]{border-color:var(--cheek);background:var(--cheek)}li[data-tone=quiet] .stem i[data-v-e79d18a9]{border-color:var(--ink-faint)}li[data-tone=glow] .stem i[data-v-e79d18a9]{background:var(--accent)}li[data-tone=night] .stem i[data-v-e79d18a9]{border-color:var(--orb-c);background:var(--orb-c)}.entry[data-v-e79d18a9]{background:linear-gradient(125deg, #ffffffa8, #fff3), var(--glass-fill);min-width:0;box-shadow:inset 0 1px 0 white, 0 8px 21px -18px var(--accent);transition:transform .48s var(--jelly);border:1px solid #ffffffc2;border-radius:18px;margin-bottom:10px;padding:11px 15px}.timeline li:hover .entry[data-v-e79d18a9]{transform:translate(4px)scale(1.01)}.wallpaper-picker[data-v-01d9dcb6]{z-index:6;-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);background:#ffffffd1;border:1px solid #ffffffdb;border-radius:22px;gap:12px;width:min(280px,100% - 32px);max-height:calc(100% - 78px);padding:14px;display:grid;position:absolute;top:62px;right:16px;overflow:auto;box-shadow:inset 0 1px #fff,0 18px 40px -24px #2745808c}header[data-v-01d9dcb6]{justify-content:space-between;align-items:center;display:flex}header b[data-v-01d9dcb6]{font-size:14px}.choice[data-v-01d9dcb6]{gap:8px;display:grid}.choice>span[data-v-01d9dcb6]{font-size:12.5px;font-weight:700}.row[data-v-01d9dcb6]{gap:8px;display:flex}.row button[data-v-01d9dcb6]{border-radius:999px;flex:1;min-height:32px;padding:6px 8px;font-size:12px}.opacity[data-v-01d9dcb6]{gap:4px;display:grid}.opacity span[data-v-01d9dcb6],.opacity small[data-v-01d9dcb6]{color:var(--ink-soft);font-size:12px}.opacity input[data-v-01d9dcb6]{width:100%;accent-color:var(--accent)}.now-presentation[data-v-663ff302]{min-height:450px;margin-bottom:26px;position:relative}.now-hero[data-v-663ff302]{isolation:isolate;background:linear-gradient(145deg, var(--sky-top), var(--sky-mid) 58%, var(--sky-bottom));height:450px;min-height:450px;color:var(--ink);border:2px solid #ffffffcf;border-radius:42px;margin:0;padding:0;display:block;position:relative;overflow:hidden;box-shadow:inset 0 2px #fffffff2,0 35px 90px -45px #5a7acc8c}.wallpaper-layer[data-v-663ff302]{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.wallpaper-layer img[data-v-663ff302]{object-fit:cover;object-position:50% 50%;width:100%;height:100%;transition:object-position .26s var(--ease-spring);-webkit-user-select:none;user-select:none;display:block}.wallpaper-layer[data-v-663ff302]:after{content:"";background:linear-gradient(100deg,#ffecf633 0%,#fff4fa14 42%,#0000 68%),linear-gradient(#301c4024,#0000 24% 72%,#3018282e);position:absolute;inset:0}.wallpaper-adjusting .wallpaper-layer img[data-v-663ff302]{transition:none}.wallpaper-drag-layer[data-v-663ff302]{z-index:2;cursor:grab;touch-action:none;background:radial-gradient(#0000 55%,#212f5214);position:absolute;inset:0}.wallpaper-drag-layer[data-v-663ff302]:active{cursor:grabbing}.wallpaper-tip[data-v-663ff302]{color:#29416d;-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);white-space:nowrap;pointer-events:none;background:#ffffffad;border:1px solid #ffffffd1;border-radius:999px;padding:10px 16px;font-size:13px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 32px #23375e29,inset 0 1px #fff}.wallpaper-controls[data-v-663ff302]{z-index:4;-webkit-backdrop-filter:blur(20px)saturate(1.45);backdrop-filter:blur(20px)saturate(1.45);background:#ffffff80;border:1px solid #ffffffc2;border-radius:999px;align-items:center;gap:8px;padding:6px;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 10px 28px #30456b1a,inset 0 1px #fff}.wallpaper-controls button[data-v-663ff302]{border-radius:999px;min-height:34px;padding:7px 13px;font-size:12px}.wallpaper-controls .wallpaper-tip-inline[data-v-663ff302]{color:var(--muted);white-space:nowrap;padding:0 4px 0 9px;font-size:12px}.now-hero button.primary[data-v-663ff302]{color:#213e73;background:linear-gradient(120deg,#84bdfb,#a5b5f0 56%,#dfb4e5);box-shadow:0 16px 32px -16px #7ca9ef}.now-hero button[data-v-663ff302]:not(.primary){background:#ffffff7a;border-color:#ffffffe0}.notes[data-v-663ff302]{align-items:start;gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));margin:8px 0 28px;display:grid}.note[data-v-663ff302]{background:linear-gradient(180deg, #ffffff52, transparent 55%), var(--surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-sheen), var(--shadow-soft);transition:transform .52s var(--jelly);border-top:1px solid #fffffff2;border-radius:27px;align-content:start;gap:8px;padding:24px;display:grid;position:relative}.note[data-v-663ff302]:hover{transform:translateY(-4px)scale(1.012)}.note .quote[data-v-663ff302]{font-size:16px;font-weight:600;line-height:1.6}.note small[data-v-663ff302]{color:var(--ink-soft);font-size:12px}.note .text-button[data-v-663ff302]{justify-self:start;margin-top:2px}.note .eyebrow[data-v-663ff302]{margin-bottom:8px}.note>p[data-v-663ff302],.note>ul[data-v-663ff302]{max-height:248px;overflow:auto}.recent-list[data-v-663ff302]{gap:11px;margin:0;padding:0;list-style:none;display:grid}.recent-list li[data-v-663ff302]{border-bottom:1px solid color-mix(in srgb, var(--glass-edge) 70%, transparent);padding-bottom:10px}.recent-list li[data-v-663ff302]:last-child{border-bottom:0;padding-bottom:0}.recent-list .quote[data-v-663ff302]{margin-bottom:3px}.note.ahead>ul[data-v-663ff302]{max-height:248px}.note li[data-v-663ff302]{gap:1px;font-size:13.5px;display:grid}.note li b[data-v-663ff302]{color:var(--accent);font-size:12px}.words[data-v-663ff302]{background:linear-gradient(150deg, color-mix(in srgb, var(--orb-a) 55%, var(--surface-strong)), var(--surface))}.now-grid[data-v-663ff302]{gap:var(--gap);grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);align-items:start;display:grid}.today-scroll[data-v-663ff302]{max-height:620px;margin-right:-8px;padding-right:8px}.entry-head[data-v-663ff302]{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.entry-head time[data-v-663ff302]{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:12px}.entry-head b[data-v-663ff302]{font-size:14px}.entry-head+p[data-v-663ff302]{margin-top:3px;font-size:13.5px;line-height:1.65}.entry-head+p small[data-v-663ff302]{color:var(--ink-soft)}.ledger-note[data-v-663ff302]{margin-top:12px}.small-text[data-v-663ff302]{font-size:13px}.grow[data-v-663ff302]{flex:1;min-width:0}.counts[data-v-663ff302]{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.counts button[data-v-663ff302]{text-align:left;border-radius:16px;justify-items:start;gap:0;padding:12px 14px;display:grid}.counts b[data-v-663ff302]{font:700 24px var(--font-display);color:var(--accent)}.counts span[data-v-663ff302]{color:var(--ink-soft);font-size:12px;font-weight:500}@media (width<=1100px){.now-grid[data-v-663ff302]{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.now-presentation[data-v-663ff302]{min-height:0}.now-hero[data-v-663ff302]{text-align:center;height:420px;min-height:420px}.notes[data-v-663ff302]{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.now-hero[data-v-663ff302]{border-radius:30px;height:370px;min-height:370px;padding:0}.today-scroll[data-v-663ff302]{max-height:520px}.wallpaper-controls[data-v-663ff302]{top:10px;right:10px}.wallpaper-controls .wallpaper-tip-inline[data-v-663ff302]{display:none}.wallpaper-controls button[data-v-663ff302]{min-height:32px;padding:6px 10px}.wallpaper-tip[data-v-663ff302]{text-align:center;max-width:calc(100% - 34px);padding:9px 12px;font-size:12px}}.access-gate[data-v-299ced1e]{background:radial-gradient(circle at 25% 20%,#dbe7ec 0,#0000 45%),radial-gradient(circle at 85% 70%,#efdfdd 0,#0000 45%),#f4f5ef;place-items:center;min-height:100dvh;padding:72px 24px;display:grid}.access-language[data-v-299ced1e]{position:absolute;top:22px;right:24px}.access-card[data-v-299ced1e]{background:#ffffffe0;border:1px solid #fff;border-radius:28px;width:min(100%,420px);padding:36px;box-shadow:0 24px 70px #69838618}.access-card h1[data-v-299ced1e]{margin:14px 0;font-size:26px}.access-card>p[data-v-299ced1e]{color:var(--muted);line-height:1.8}.access-orb[data-v-299ced1e]{color:#8b889c;background:radial-gradient(circle at 35% 30%,#fff,#e5dde8 60%,#cedfd8);border-radius:50%;place-items:center;width:70px;height:70px;margin-bottom:24px;font-size:32px;display:grid}.access-form[data-v-299ced1e],.access-form label[data-v-299ced1e]{gap:12px;display:grid}.access-form[data-v-299ced1e]{gap:20px;margin-top:28px}.access-form input[data-v-299ced1e]{box-sizing:border-box;width:100%;font:inherit;background:#fff;border:1px solid #d6deda;border-radius:12px;padding:12px 14px}.access-form small[data-v-299ced1e]{color:var(--muted);line-height:1.7}.access-form button[data-v-299ced1e]{min-height:44px}.access-error[data-v-299ced1e]{color:#b34e5b;font-size:13px}.spinning[data-v-0e622eac] svg{animation:.7s linear infinite refresh-turn-0e622eac}@keyframes refresh-turn-0e622eac{to{transform:rotate(360deg)}}.startup[data-v-0e622eac]{z-index:1;text-align:center;place-content:center;justify-items:center;gap:10px;min-height:100dvh;padding:24px;display:grid;position:relative}.startup h1[data-v-0e622eac]{font-size:26px}.startup p[data-v-0e622eac]{color:var(--ink-soft)}.shell[data-v-0e622eac]{z-index:1;grid-template-columns:var(--dock-w) minmax(0, 1fr);min-height:100dvh;display:grid;position:relative}.skip-link[data-v-0e622eac]{z-index:120;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:8px 14px;transition:transform .2s;position:fixed;top:10px;left:10px;transform:translateY(-160%)}.skip-link[data-v-0e622eac]:focus{transform:none}.dock[data-v-0e622eac]{background:linear-gradient(180deg, #ffffffb8, #ffffff24 46%, transparent 78%), var(--surface);height:calc(100dvh - 28px);color:var(--ink);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border-radius:34px;flex-direction:column;gap:16px;margin:14px 0 14px 14px;padding:14px 12px;display:flex;position:sticky;top:14px;overflow:hidden auto;box-shadow:inset 1px 1px #ffffffe6,0 22px 60px -34px #455e9457}.dock-ta[data-v-0e622eac]{text-align:left;background:0 0;border:none;border-radius:22px;align-items:center;gap:10px;padding:6px 10px 6px 4px;display:flex}.dock-ta[data-v-0e622eac]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 8%, transparent);box-shadow:none;transform:none}.dock-ta.active[data-v-0e622eac]{background:var(--accent-soft)}.dock-ta-text[data-v-0e622eac]{min-width:0;line-height:1.3;display:grid}.dock-ta-text b[data-v-0e622eac]{font:700 16px var(--font-display);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dock-ta-text small[data-v-0e622eac]{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.dock-groups[data-v-0e622eac]{gap:14px;display:grid}.dock-group[data-v-0e622eac]{gap:2px;display:grid}.dock-group h2[data-v-0e622eac]{font:700 10.5px/1.4 var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);padding:0 12px 4px}.dock-link[data-v-0e622eac],.dock-tool[data-v-0e622eac]{width:100%;color:var(--ink-soft);text-align:left;background:0 0;border:none;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.dock-tool[data-v-0e622eac]{padding:8px 12px;font-size:13px}.dock-link[data-v-0e622eac]:hover:not(:disabled),.dock-tool[data-v-0e622eac]:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 9%, transparent);color:var(--ink);box-shadow:none;transform:none}.dock-link.active[data-v-0e622eac]{background:linear-gradient(110deg, #ffffffeb, color-mix(in srgb, var(--glow-a) 44%, white));color:var(--accent);box-shadow:inset 0 1px 0 white, 0 9px 22px -14px var(--accent)}.dock-link.active[data-v-0e622eac]:after{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 10px var(--accent);border-radius:50%;margin-left:auto}.dock-foot[data-v-0e622eac]{border-top:1px solid var(--line);gap:2px;margin-top:auto;padding-top:10px;display:grid}main[data-v-0e622eac]{outline:none;min-width:0;padding-bottom:32px}.topbar[data-v-0e622eac]{background:linear-gradient(180deg, #ffffffb8, transparent 70%), var(--surface);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(18px)saturate(1.5);border-radius:30px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;width:min(1232px,100% - 36px);margin:16px auto 8px;padding:16px 22px;display:flex;box-shadow:inset 0 1px #fff,0 16px 38px -28px #455e944d}.topbar h1[data-v-0e622eac]{font-family:var(--font-display);letter-spacing:-.03em;font-size:29px;font-weight:700}.topbar p[data-v-0e622eac]{color:var(--ink-soft);margin-top:2px;font-size:13.5px}.topbar-actions[data-v-0e622eac]{align-items:center;gap:10px;margin-left:auto;display:flex}#connection[data-v-0e622eac]{padding:7px 14px}#connection.offline[data-v-0e622eac]{cursor:pointer}.draft-banner[data-v-0e622eac]{background:color-mix(in srgb, var(--warn) 12%, var(--surface-strong));border:1px solid color-mix(in srgb, var(--warn) 28%, transparent);border-radius:999px;align-items:center;gap:10px;width:min(1224px,100% - 56px);margin:0 auto 14px;padding:9px 16px;font-size:13px;font-weight:600;display:flex}.at-now .topbar-title p[data-v-0e622eac]{display:block}.at-chats main[data-v-0e622eac]{flex-direction:column;height:calc(100dvh - 104px);padding-bottom:16px;display:flex;overflow:hidden}.at-chats .view[data-v-0e622eac]{flex-direction:column;flex:1;min-height:0;display:flex}.tabbar[data-v-0e622eac]{display:none}.more-grid[data-v-0e622eac]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.more-grid button[data-v-0e622eac]{text-align:left;border-radius:18px;justify-items:start;gap:4px;padding:14px;display:grid}.more-grid button.active[data-v-0e622eac]{border-color:var(--accent);background:var(--accent-soft)}.more-grid small[data-v-0e622eac]{color:var(--ink-soft);font-size:11.5px;font-weight:500}.more-title[data-v-0e622eac]{margin:20px 0 8px;font-size:14px}.more-tools[data-v-0e622eac]{margin-top:14px}@media (width<=1100px) and (width>=761px){.shell[data-v-0e622eac]{grid-template-columns:92px minmax(0,1fr)}.dock[data-v-0e622eac]{align-items:center;padding:14px 8px}.dock-ta[data-v-0e622eac]{padding:4px}.dock-link[data-v-0e622eac],.dock-tool[data-v-0e622eac]{justify-content:center;width:52px;padding:12px 0}.dock-group[data-v-0e622eac],.dock-foot[data-v-0e622eac]{justify-items:center}.dock[data-v-0e622eac] .theme-toggle{justify-content:center;width:52px;padding:10px 0}.dock-link.active[data-v-0e622eac]:after{display:none}.rail-label[data-v-0e622eac],.dock[data-v-0e622eac] .rail-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}}@media (width<=760px){.shell[data-v-0e622eac]{grid-template-columns:minmax(0,1fr)}.dock[data-v-0e622eac]{display:none}main[data-v-0e622eac]{padding-bottom:calc(128px + env(safe-area-inset-bottom))}.topbar[data-v-0e622eac]{align-items:center;padding:16px 14px 12px}.topbar h1[data-v-0e622eac]{font-size:22px}.topbar p[data-v-0e622eac]{display:none}.draft-banner[data-v-0e622eac]{width:calc(100% - 28px)}.at-chats main[data-v-0e622eac]{height:auto;padding-bottom:calc(96px + env(safe-area-inset-bottom));display:block;overflow:visible}.tabbar[data-v-0e622eac]{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:65;background:linear-gradient(180deg, #ffffff57, transparent 70%), var(--surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-sheen), var(--shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border-radius:24px;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:6px;display:grid;position:fixed}.tabbar button[data-v-0e622eac]{color:var(--ink-soft);background:0 0;border:none;border-radius:18px;justify-items:center;gap:2px;padding:7px 0 6px;font-size:11px;display:grid}.tabbar button[data-v-0e622eac]:hover:not(:disabled){box-shadow:none;transform:none}.tabbar button.active[data-v-0e622eac]{background:var(--accent-soft);color:var(--accent)}}@media (width>=761px){.shell[data-v-0e622eac]{padding-top:1px;display:block}.dock[data-v-0e622eac]{z-index:66;background:radial-gradient(ellipse at 12% -80%, #fffffff0, transparent 58%), linear-gradient(110deg, #ffffffc7, #f2f6ff9c 52%, #ffffffc7), color-mix(in srgb, var(--sky-mid) 82%, white);border:1.5px solid #ffffffd4;border-radius:999px;flex-direction:row;align-items:center;gap:14px;width:min(1460px,100% - 40px);height:auto;min-height:72px;margin:14px auto 0;padding:8px 12px;display:flex;position:sticky;top:14px;overflow:visible;box-shadow:inset 0 2px 1px #fff,inset 0 -2px 2px #708fd221,0 22px 44px -28px #34529561}.dock-ta[data-v-0e622eac]{border:1px solid #0000;border-radius:999px;flex:none;min-width:160px;padding:4px 12px 4px 4px}.dock-ta.active[data-v-0e622eac],.dock-ta[data-v-0e622eac]:hover:not(:disabled){box-shadow:inset 0 1px 0 white, 0 8px 17px -14px var(--accent);background:#ffffff6b;border-color:#ffffffc4;transform:translateY(-2px)scale(1.02)}.dock-groups[data-v-0e622eac]{flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;display:flex}.dock-group[data-v-0e622eac]{align-items:center;gap:2px;display:flex}.dock-group h2[data-v-0e622eac]{clip:rect(0 0 0 0);width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.dock-link[data-v-0e622eac]{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;gap:7px;width:auto;min-height:45px;padding:9px 12px;position:relative}.dock-link[data-v-0e622eac]:hover:not(:disabled){box-shadow:0 12px 18px -14px var(--accent);background:#ffffff85;border-color:#ffffffbf;transform:translateY(-3px)scale(1.045)}.dock-link.active[data-v-0e622eac]{color:var(--ink);background:linear-gradient(120deg, #fffffffa, color-mix(in srgb, var(--glow-a) 40%, white) 64%, color-mix(in srgb, var(--glow-b) 28%, white));box-shadow:inset 0 1px 0 white, 0 8px 19px -13px var(--accent);animation:dock-bloom-0e622eac .56s var(--spring) both;border-color:#fffffff7}.dock-link.active[data-v-0e622eac]:after{display:none}.dock-foot[data-v-0e622eac]{border:0;flex:none;align-items:center;gap:3px;margin:0;padding:0;display:flex}.dock-tool[data-v-0e622eac],.dock[data-v-0e622eac] .theme-toggle{border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:flex}.dock-tool .rail-label[data-v-0e622eac],.dock[data-v-0e622eac] .theme-toggle .rail-label{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.dock-tool[data-v-0e622eac]:hover:not(:disabled),.dock[data-v-0e622eac] .theme-toggle:hover:not(:disabled){box-shadow:inset 0 1px white, 0 11px 17px -13px var(--accent);background:#ffffff9e;transform:translateY(-3px)scale(1.08)}main[data-v-0e622eac]{width:100%}.workspace[data-v-0e622eac]{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:22px;width:min(1480px,100% - 36px);margin:8px auto 0;display:grid}.workspace>main[data-v-0e622eac]{width:auto;min-width:0}.workspace .topbar[data-v-0e622eac]{width:calc(100% - 56px);box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:none;align-items:center;margin:14px 28px 6px;padding:4px 22px 8px}.topbar h1[data-v-0e622eac]{font-size:clamp(28px,2.8vw,38px);font-weight:760}}@keyframes dock-bloom-0e622eac{0%{filter:brightness(1.15);transform:scale(.88)translateY(4px)}to{filter:brightness();transform:scale(1)translateY(0)}}@media (width>=761px) and (width<=1100px){.dock[data-v-0e622eac]{gap:6px;padding-inline:9px}.dock-ta[data-v-0e622eac]{min-width:145px}.dock-ta-text.rail-label[data-v-0e622eac]{clip:auto;width:auto;height:auto;display:grid;position:static!important}.dock-ta-text small[data-v-0e622eac]{display:none}.dock-link[data-v-0e622eac]{width:42px;min-width:42px;padding:10px}.dock-tool[data-v-0e622eac],.dock[data-v-0e622eac] .theme-toggle{width:38px;height:38px}}@media (width<=760px){.workspace[data-v-0e622eac]{width:100%;margin:0;display:block}.topbar[data-v-0e622eac]{width:calc(100% - 28px);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;gap:10px;margin-top:14px;padding:8px 5px 10px}.topbar-actions[data-v-0e622eac]{gap:6px}#connection[data-v-0e622eac]{padding:7px 10px;font-size:12px}.tabbar[data-v-0e622eac]{background:linear-gradient(130deg, #ffffffc4, #ffffff45 57%, #e6ecff8c), var(--glass-fill);border:1.5px solid #ffffffdb;box-shadow:inset 0 2px 1px #fff,0 20px 38px -24px #34529570}.tabbar button.active[data-v-0e622eac]{background:linear-gradient(130deg, white, color-mix(in srgb, var(--glow-a) 40%, white));box-shadow:0 6px 15px -10px var(--accent);animation:dock-bloom-0e622eac .48s var(--spring) both;border:1px solid #fff}}@property --sky-top{syntax:"<color>";inherits:true;initial-value:#c8f3e4}@property --sky-mid{syntax:"<color>";inherits:true;initial-value:#e7f7f1}@property --sky-bottom{syntax:"<color>";inherits:true;initial-value:#f6efe2}@property --glow-a{syntax:"<color>";inherits:true;initial-value:#5ddec0}@property --glow-b{syntax:"<color>";inherits:true;initial-value:#8eb6ff}@property --accent{syntax:"<color>";inherits:true;initial-value:#2c8465}@property --accent-soft{syntax:"<color>";inherits:true;initial-value:#dcf3e8}@property --ink{syntax:"<color>";inherits:true;initial-value:#14332d}@property --ink-soft{syntax:"<color>";inherits:true;initial-value:#466760}@property --surface{syntax:"<color>";inherits:true;initial-value:#ffffff94}@property --surface-strong{syntax:"<color>";inherits:true;initial-value:#ffffffe6}@property --line{syntax:"<color>";inherits:true;initial-value:#14332d1f}@property --orb-a{syntax:"<color>";inherits:true;initial-value:#c3f8e0}@property --orb-b{syntax:"<color>";inherits:true;initial-value:#7fdcbc}@property --orb-c{syntax:"<color>";inherits:true;initial-value:#4fa9c7}:root{--font-ui:"HarmonyOS Sans SC", "MiSans", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-display:"Segoe UI Variable Display", "Segoe UI", "SF Pro Rounded", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", sans-serif;--font-editorial:"Palatino Linotype", "Noto Serif SC", "Songti SC", "SimSun", serif;--font-mono:ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace;--r-xs:8px;--r-s:12px;--r-m:18px;--r-l:27px;--r-xl:40px;--gap:22px;--dock-w:224px;--topbar-h:76px;--ease:cubic-bezier(.2, .8, .2, 1);--spring:cubic-bezier(.22, 1.45, .42, 1);--jelly:cubic-bezier(.34, 1.56, .5, 1);--tempo:1;--intensity:.5;--glass-blur:12px;--glass-saturate:1.35;--glass-fill:#ffffffb8;--glass-highlight:#ffffffe0;--glass-shadow:0 24px 54px -28px #34529545;--shadow:0 28px 70px -36px color-mix(in srgb, var(--ink) 32%, transparent);--shadow-soft:0 12px 32px -20px color-mix(in srgb, var(--ink) 24%, transparent);--glass-edge:color-mix(in srgb, white 62%, var(--line));--glass-sheen:inset 0 1px 0 #ffffffbd}:root,[data-mood=calm]{--sky-top:#d9e9ff;--sky-mid:#f1f6ff;--sky-bottom:#fff5f2;--glow-a:#a6d8ff;--glow-b:#efd5fa;--accent:#466db8;--accent-ink:#fff;--accent-soft:#e5edff;--ink:#263e69;--ink-soft:#5c6f91;--ink-faint:#8798b1;--surface:#ffffff7a;--surface-strong:#ffffffd1;--line:#6082bf2e;--orb-a:#d8fff0;--orb-b:#5ed4ae;--orb-c:#3a9ec4;--orb-face:#143b34;--cheek:#ff9db1;--particle:#fff;--danger:#b03a3a;--warn:#9a6512;--ok:#478c82;--paper:#fffdf6;--paper-line:#78643c1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=sweet]{--sky-top:#f9e3f3;--sky-mid:#fdf1f9;--sky-bottom:#eeeaff;--glow-a:#f7badb;--glow-b:#cbd2ff;--accent:#8a3356;--accent-ink:#fff;--accent-soft:#ffe3ef;--ink:#3a2430;--ink-soft:#6e4d5c;--ink-faint:#8d6c7a;--surface:#ffffff94;--surface-strong:#ffffffe6;--line:#5a1e3c1f;--orb-a:#ffe0f0;--orb-b:#ff8fbf;--orb-c:#c5a6ff;--orb-face:#4a1f38;--cheek:#ff6f9f;--particle:#ffd0e6;--danger:#b03a4a;--warn:#9a6512;--ok:#2c8465;--paper:#fff9fb;--paper-line:#aa50781f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=bright]{--sky-top:#fff0ca;--sky-mid:#fff8eb;--sky-bottom:#ffebdf;--glow-a:#ffdc88;--glow-b:#ffc8b8;--accent:#b84312;--accent-ink:#fff;--accent-soft:#ffe4cc;--ink:#3d220c;--ink-soft:#7a4e28;--ink-faint:#9a6e48;--surface:#ffffff94;--surface-strong:#fffcf7eb;--line:#6e3c1424;--orb-a:#fff3ae;--orb-b:#ffc15f;--orb-c:#ff8a6b;--orb-face:#4a2a10;--cheek:#ff7b6b;--particle:#ffe08a;--danger:#b03a2a;--warn:#9a6512;--ok:#2c7a55;--paper:#fffbf0;--paper-line:#aa6e2824;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=blue]{--sky-top:#b7d0f2;--sky-mid:#d5e4f6;--sky-bottom:#e7eef8;--glow-a:#6aa4ee;--glow-b:#b7c8ea;--accent:#245488;--accent-ink:#fff;--accent-soft:#dce8f8;--ink:#172433;--ink-soft:#3e536c;--ink-faint:#627890;--surface:#ffffff8f;--surface-strong:#f8fbffe6;--line:#17243321;--orb-a:#e4eefc;--orb-b:#8aafdc;--orb-c:#5d7eae;--orb-face:#1e2b3f;--cheek:#c8a0b5;--particle:#d5e4f6;--danger:#a23c3c;--warn:#8a5e18;--ok:#2c7560;--paper:#f8fafd;--paper-line:#3c5a821f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=stormy]{--sky-top:#e3def4;--sky-mid:#eeebf7;--sky-bottom:#e8ecf6;--glow-a:#c8b8ed;--glow-b:#bcc9e5;--accent:#53368c;--accent-ink:#fff;--accent-soft:#ece4f8;--ink:#241c33;--ink-soft:#534866;--ink-faint:#746888;--surface:#ffffff8f;--surface-strong:#faf8ffe6;--line:#241c3324;--orb-a:#ece4f8;--orb-b:#a894d4;--orb-c:#6e5f9e;--orb-face:#231a36;--cheek:#c99ab8;--particle:#ddd2ee;--danger:#a53a48;--warn:#8a5e18;--ok:#2c7560;--paper:#faf9fd;--paper-line:#5a46821f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=drowsy]{--sky-top:#e8e0fa;--sky-mid:#f5eef9;--sky-bottom:#fff1e9;--glow-a:#d2c4f5;--glow-b:#f5d3c9;--accent:#634678;--accent-ink:#fff;--accent-soft:#f3e6ff;--ink:#2c2140;--ink-soft:#5c5074;--ink-faint:#7e7296;--surface:#ffffff94;--surface-strong:#fffcffe6;--line:#2c21401f;--orb-a:#f4e9ff;--orb-b:#d0b4f8;--orb-c:#f0b8d4;--orb-face:#30264a;--cheek:#f3a3c0;--particle:#eadbff;--danger:#a53a48;--warn:#8a5e18;--ok:#2c7560;--paper:#fffaf6;--paper-line:#966ea021;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-mood=night]{--sky-top:#cbdafa;--sky-mid:#e5eafa;--sky-bottom:#f8edfa;--glow-a:#9db9f0;--glow-b:#cdbdf4;--accent:#5667ab;--accent-ink:#fff;--accent-soft:#e3e7fa;--ink:#29375e;--ink-soft:#606d96;--ink-faint:#8691b3;--surface:#ffffff75;--surface-strong:#ffffffd1;--line:#5d6ca530;--orb-a:#d0d8ff;--orb-b:#7d8ef0;--orb-c:#4d5cc0;--orb-face:#0f1433;--cheek:#c9a0e0;--particle:#fff;--danger:#b24c71;--warn:#936930;--ok:#478c82;--paper:#fbf9ff;--paper-line:#c8d2ff1a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{transition:--sky-top 1.4s var(--ease), --sky-mid 1.4s var(--ease), --sky-bottom 1.4s var(--ease), --glow-a 1.4s var(--ease), --glow-b 1.4s var(--ease), --accent 1.1s var(--ease), --accent-soft 1.1s var(--ease), --ink .9s var(--ease), --ink-soft .9s var(--ease), --surface .9s var(--ease), --surface-strong .9s var(--ease), --line .9s var(--ease), --orb-a 1.2s var(--ease), --orb-b 1.2s var(--ease), --orb-c 1.2s var(--ease)}[data-motion=quiet]{transition:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:15px;overflow-x:clip}body{min-height:100dvh;font-family:var(--font-ui);color:var(--ink);background:var(--sky-mid);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6;overflow-x:clip}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.01em;margin:0;line-height:1.25}p{margin:0}a{color:var(--accent);text-underline-offset:3px}img,svg,canvas{display:block}code,pre,kbd{font-family:var(--font-mono);font-size:.92em}pre{white-space:pre-wrap;word-break:break-word;margin:0}::selection{background:color-mix(in srgb, var(--accent) 26%, transparent)}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--ink) 22%, transparent) transparent}button{font:inherit;color:var(--ink);background:var(--surface-strong);border:1px solid var(--line);cursor:pointer;transition:transform .2s var(--spring), background-color .2s, border-color .2s, box-shadow .2s, color .2s;border-radius:15px;padding:10px 16px;font-size:13px;font-weight:600;line-height:1.3}button:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 40%, var(--line));box-shadow:var(--shadow-soft);transform:translateY(-1px)}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{color:var(--accent-ink);background:linear-gradient(125deg, color-mix(in srgb, var(--accent) 85%, #8cc8ff), var(--accent));box-shadow:inset 0 1px 0 #ffffff52, 0 12px 26px -15px var(--accent);border-color:#0000}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, var(--ink))}button.ghost{background:0 0}button.danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface-strong));border-color:color-mix(in srgb, var(--danger) 22%, transparent)}button.small{padding:5px 11px;font-size:12px}button.text-button{color:var(--accent);text-underline-offset:3px;background:0 0;border:none;border-radius:6px;padding:2px 4px;text-decoration:underline}button.text-button:hover:not(:disabled){box-shadow:none;transform:none}button.icon-button{place-items:center;width:38px;height:38px;padding:0;display:inline-grid}button.icon-button svg{width:18px;height:18px}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:color-mix(in srgb, var(--surface-strong) 86%, transparent);border:1px solid var(--glass-edge);border-radius:var(--r-s);box-shadow:var(--glass-sheen);padding:9px 12px;font-size:14px;transition:border-color .2s,box-shadow .2s}textarea{resize:vertical;line-height:1.6}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}input::placeholder,textarea::placeholder{color:var(--ink-faint)}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}input[type=range]{accent-color:var(--accent);background:0 0;border:none;padding:0}input[type=range]:focus{box-shadow:none}label{color:var(--ink-soft);gap:6px;font-size:12.5px;font-weight:600;display:grid}label>small,.hint{color:var(--ink-soft);font-size:12px;font-weight:400}.check{color:var(--ink);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex}.switch{color:var(--ink);cursor:pointer;align-items:center;gap:10px;font-size:13px;font-weight:600;display:inline-flex}.switch input{appearance:none;background:color-mix(in srgb, var(--ink) 18%, transparent);cursor:pointer;border-radius:999px;flex:none;width:42px;height:24px;margin:0;transition:background-color .25s;position:relative}.switch input:after{content:"";background:var(--surface-strong);width:18px;height:18px;transition:transform .3s var(--spring);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0003}.switch input:checked{background:var(--accent)}.switch input:checked:after{transform:translate(18px)}.switch input:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}.page{width:min(1280px,100%);margin:0 auto;padding:0 28px 48px}.page>*,.stack>*,.card>*{min-width:0}.stack{gap:var(--gap);align-content:start;display:grid}.stack.tight{gap:10px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.grid-2{gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:14px;display:grid}.form-grid>label{grid-template-rows:2.6em auto auto;align-content:start;gap:6px;display:grid}.form-grid>label.wide{grid-template-rows:auto auto auto}.form-grid .wide{grid-column:1/-1}.scroll-pane{overscroll-behavior:contain;overflow:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.card{background:linear-gradient(180deg, #ffffff9e, #ffffff0f 42%, transparent 72%), var(--surface);border:1px solid var(--glass-edge);border-radius:var(--r-l);padding:20px 22px;position:relative;box-shadow:inset 0 1px #ffffffed,0 20px 45px -32px #4962a14f}.card.flat{box-shadow:none}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;margin-bottom:14px;display:flex}.card-head h2{font-size:17px}.card-head p{color:var(--ink-soft);margin-top:3px;font-size:13px}.eyebrow{font:700 10.5px/1.4 var(--font-display);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);display:block}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint);font-size:12px}.lede{font-size:15px;line-height:1.8}.chip{background:var(--accent-soft);max-width:100%;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chip[data-tone=warn]{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.chip[data-tone=danger]{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.chip[data-tone=quiet]{background:color-mix(in srgb, var(--ink) 7%, transparent);color:var(--ink-soft)}.chip[data-tone=ok]{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.pill{background:var(--surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-sheen);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--ok) 18%, transparent);border-radius:50%;flex:none;display:inline-block}.dot.off{background:var(--ink-faint);box-shadow:0 0 0 4px color-mix(in srgb, var(--ink-faint) 16%, transparent)}.dot.warn{background:var(--warn);box-shadow:0 0 0 4px color-mix(in srgb, var(--warn) 18%, transparent)}.meter{background:color-mix(in srgb, var(--ink) 9%, transparent);border-radius:999px;height:8px;overflow:hidden}.meter>i{border-radius:inherit;background:linear-gradient(90deg, var(--orb-b), var(--accent));height:100%;transition:width .7s var(--ease);display:block}.meter.warn>i{background:linear-gradient(90deg, #ffc15f, var(--warn))}.seg{background:var(--surface);border:1px solid var(--line);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.seg button{background:0 0;border:none;padding:7px 14px}.seg button:hover:not(:disabled){box-shadow:none;background:color-mix(in srgb, var(--accent) 10%, transparent);transform:none}.seg button.active,.seg button[aria-selected=true]{background:var(--accent);color:var(--accent-ink)}.empty{text-align:center;color:var(--ink-soft);justify-items:center;gap:6px;padding:30px 16px;font-size:13px;display:grid}.empty b{color:var(--ink);font-size:15px}.kv{grid-template-columns:max-content 1fr;gap:6px 16px;font-size:13px;display:grid}.kv dt{color:var(--ink-soft)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.list-row{border-radius:var(--r-m);background:color-mix(in srgb, var(--surface-strong) 70%, transparent);border:1px solid var(--line);align-items:center;gap:12px;padding:10px 14px;display:flex}.pagination{color:var(--ink-soft);justify-content:center;align-items:center;gap:12px;padding-top:10px;font-size:12.5px;display:flex}.notice{border-radius:var(--r-m);background:color-mix(in srgb, var(--warn) 12%, var(--surface-strong));border:1px solid color-mix(in srgb, var(--warn) 26%, transparent);color:var(--ink);padding:12px 16px;font-size:13px}.error-text{color:var(--danger);font-size:13px}.bubble{overflow-wrap:anywhere;background:var(--surface-strong);border:1px solid var(--line);border-radius:18px;max-width:min(560px,86%);padding:10px 14px;font-size:14px;line-height:1.6;position:relative}.bubble.ta{background:linear-gradient(135deg, color-mix(in srgb, var(--orb-a) 80%, var(--surface-strong)), color-mix(in srgb, var(--orb-b) 55%, var(--surface-strong)));color:var(--ink);border-color:#0000}[data-mood=night] .bubble.ta{background:linear-gradient(135deg, color-mix(in srgb, var(--orb-b) 45%, var(--surface-strong)), color-mix(in srgb, var(--orb-c) 45%, var(--surface-strong)))}#toast{z-index:90;background:var(--surface-strong);border:1px solid var(--line);max-width:min(360px,100vw - 32px);box-shadow:var(--shadow);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .25s var(--ease), transform .35s var(--spring);border-radius:20px 20px 6px;padding:12px 18px;font-size:13.5px;font-weight:600;position:fixed;bottom:34px;right:96px;transform:translateY(10px)scale(.96)}#toast.show{opacity:1;transform:none}#toast.error{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.route-page{animation:page-arrive .32s var(--spring) both}[data-visibility=hidden] *,[data-visibility=hidden] :before,[data-visibility=hidden] :after{animation-play-state:paused!important}.route-page>:nth-child(-n+6){animation:section-arrive .4s var(--spring) both}.route-page>:nth-child(2){animation-delay:25ms}.route-page>:nth-child(3){animation-delay:45ms}.route-page>:nth-child(4){animation-delay:65ms}.route-page>:nth-child(5){animation-delay:85ms}.route-page>:nth-child(6){animation-delay:.105s}@keyframes section-arrive{0%{opacity:.45;transform:translateY(12px)scale(.99)}to{opacity:1;transform:none}}@keyframes page-arrive{0%{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}.rise-enter-active,.rise-move{transition:opacity .35s var(--ease), transform .45s var(--spring)}.rise-enter-from{opacity:0;transform:translateY(10px)}@keyframes float-y{0%{transform:translateY(0)}to{transform:translateY(-6px)}}@keyframes pulse-soft{0%,to{opacity:.55}50%{opacity:1}}[data-motion=quiet] *,[data-motion=quiet] :before,[data-motion=quiet] :after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=900px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.page{padding:0 14px 28px}.card{border-radius:var(--r-m);padding:16px}#toast{right:16px;bottom:calc(86px + env(safe-area-inset-bottom))}}.page{overflow-wrap:anywhere}.page>*,.card,.card>*,.field,.row>*,.kv dd{min-width:0}.eyebrow{letter-spacing:.18em}.card{border-top-color:color-mix(in srgb, white 70%, var(--line))}.card-head{flex-wrap:wrap;gap:14px}.save-bar,form>.actions{z-index:4;border:1px solid var(--glass-edge);background:linear-gradient(180deg, #ffffff47, transparent 60%), var(--surface-strong);box-shadow:var(--glass-sheen), var(--shadow-soft);border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px;display:flex;position:sticky;bottom:12px}@media (width<=760px){.save-bar,form>.actions{bottom:84px}}.card,.list-row,.bubble,.pill,.seg,.save-bar,form>.actions{background:radial-gradient(ellipse at 4% 0%, #ffffffe6, transparent 43%), linear-gradient(145deg, #ffffff9e, #ffffff2b 58%, #e2e9ff52), var(--glass-fill);box-shadow:inset 0 1.5px 1px #fffffff5, inset 1px 0 1px #ffffffb3, inset -1px -2px 2px #708fd221, var(--glass-shadow);border-color:#ffffffc2}.card{border-radius:var(--r-l);transition:transform .56s var(--jelly)}.card:hover{border-color:#fffffff7;transform:translateY(-4px)scale(1.012)}button:where(:not(.text-button):not(.ghost)){transition:transform .52s var(--jelly);background-image:linear-gradient(145deg,#ffffffc7,#ffffff38);border-color:#ffffffb8;box-shadow:inset 0 1px #ffffffeb,0 7px 20px -14px #415b9b52}button:hover:where(:not(:disabled):not(.text-button)){transform:translateY(-3px)scale(1.035)}button:active:where(:not(:disabled):not(.text-button)){transition-duration:90ms;transform:translateY(2px)scale(.9,1.06)}button.primary:where(:not(.ghost)){color:#244676;background-color:color-mix(in srgb, var(--glow-a) 44%, white);background-image:radial-gradient(circle at 15% 0,#ffffffeb,#0000 45%),linear-gradient(115deg,#a7d8fb,#c0c6fb 55%,#f4cce8);border-color:#ffffffd1;box-shadow:inset 0 2px 1px #ffffffde,0 13px 24px -12px #5d7fcd6b}button.primary:hover:not(:disabled){background-color:color-mix(in srgb, var(--glow-a) 58%, white);background-image:radial-gradient(circle at 35% -10%,#fff,#0000 48%),linear-gradient(115deg,#9ed9ff,#b9c3fa 55%,#f4c5e1)}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{background:linear-gradient(150deg, #ffffffab, #ffffff47), var(--glass-fill);transition:transform .42s var(--jelly), border-color .26s ease;border-color:#ffffffd4;border-radius:17px;box-shadow:inset 0 2px 3px #5371b31a,inset 0 -1px 1px #fff}input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,select:focus,textarea:focus{border-color:color-mix(in srgb, var(--accent) 48%, white);box-shadow:inset 0 1px 2px #5371b314, 0 0 0 4px color-mix(in srgb, var(--glow-a) 42%, transparent), 0 12px 22px -17px var(--accent);transform:translateY(-1px)}.chip{background:color-mix(in srgb, var(--accent-soft) 44%, #ffffff85);box-shadow:inset 0 1px 0 #ffffffe6, 0 4px 12px -9px var(--accent);border:1px solid #ffffffb3}.seg{border-radius:999px;padding:5px}.seg button.active,.seg button[aria-selected=true]{color:var(--ink);background:linear-gradient(120deg, #fffffff2, color-mix(in srgb, var(--glow-a) 42%, white));box-shadow:0 5px 14px -9px var(--accent), inset 0 1px 0 white;animation:glass-settle .48s var(--spring) both;border:1px solid #fffffff5}.list-row{transition:transform .48s var(--jelly);border-radius:18px}.list-row:hover{transform:translate(4px)scale(1.01)}.meter{background:#ffffff70;border:1px solid #ffffffb8;height:10px;padding:2px;box-shadow:inset 0 2px 3px #425c9921,0 1px #fff}.meter>i{box-shadow:inset 0 1px 0 #ffffffe0, 0 0 13px color-mix(in srgb, var(--glow-a) 55%, transparent);transition:width .9s var(--spring)}.bubble{border-radius:22px}.bubble.ta{background:linear-gradient(125deg, color-mix(in srgb, var(--orb-a) 54%, white), color-mix(in srgb, var(--glow-a) 40%, #fff9));border-color:#ffffffd1}@keyframes glass-settle{0%{opacity:.5;transform:scale(.86,.78)translateY(6px)}70%{opacity:1;transform:scale(1.04,.98)translateY(-1px)}to{opacity:1;transform:none}}.card,.list-row,.bubble,.pill,.seg,.note,.chip,.message .text,.session-row,.feedback-item,.face-card,.entry,.facts,.fold,.preview-bubble,button,input,textarea,select{-webkit-backdrop-filter:none!important}.switches{gap:12px;margin-bottom:20px;display:grid}.switches .switch{box-shadow:inset 0 1px 0 white, 0 10px 22px -23px var(--accent);-webkit-backdrop-filter:blur(18px)saturate(1.5);backdrop-filter:blur(18px)saturate(1.5);transition:transform .35s var(--spring), background-color .2s;background:#ffffff69;border:1px solid #ffffffc7;border-radius:22px;align-items:flex-start;padding:18px}.switches .switch:hover{background:#ffffffa3;transform:translateY(-3px)scale(1.008)}
@@ -1 +1 @@
1
- import{m as e}from"./Empty-CAGOJsfD.js";async function t(t){return e(`/core/memories?session=`+encodeURIComponent(t))}async function n(t){return e(`/core/memories`,`POST`,t)}async function r(t,n){return e(`/core/memories/`+t,`PATCH`,n)}async function i(t){return e(`/core/memories/batch-delete`,`POST`,t)}async function a(t){return e(`/core/memory-summary?session=`+encodeURIComponent(t))}async function o(t){return e(`/core/memory/consolidate`,`POST`,{session:t})}async function s(t){return e(`/core/knowledge/collections?session=`+encodeURIComponent(t))}async function c(t){return e(`/core/knowledge/documents?collection=`+encodeURIComponent(t))}async function l(t){return e(`/core/knowledge/documents`,`POST`,t)}async function u(t,n){return e(`/core/knowledge/search`,`POST`,{session:t,text:n})}export{s as a,a as c,l as i,r as l,o as n,c as o,i as r,t as s,n as t,u};
1
+ import{m as e}from"./Empty-uSyRBXOT.js";async function t(t){return e(`/core/memories?session=`+encodeURIComponent(t))}async function n(t){return e(`/core/memories`,`POST`,t)}async function r(t,n){return e(`/core/memories/`+t,`PATCH`,n)}async function i(t){return e(`/core/memories/batch-delete`,`POST`,t)}async function a(t){return e(`/core/memory-summary?session=`+encodeURIComponent(t))}async function o(t){return e(`/core/memory/consolidate`,`POST`,{session:t})}async function s(t){return e(`/core/knowledge/collections?session=`+encodeURIComponent(t))}async function c(t){return e(`/core/knowledge/documents?collection=`+encodeURIComponent(t))}async function l(t){return e(`/core/knowledge/documents`,`POST`,t)}async function u(t,n){return e(`/core/knowledge/search`,`POST`,{session:t,text:n})}export{s as a,a as c,l as i,r as l,o as n,c as o,i as r,t as s,n as t,u};
@@ -1 +1 @@
1
- import{St as e,st as t}from"./Empty-CAGOJsfD.js";function n(n){let r=matchMedia(n),i=e(r.matches),a=e=>i.value=e.matches;return r.addEventListener(`change`,a),t(()=>r.removeEventListener(`change`,a)),i}export{n as t};
1
+ import{St as e,st as t}from"./Empty-uSyRBXOT.js";function n(n){let r=matchMedia(n),i=e(r.matches),a=e=>i.value=e.matches;return r.addEventListener(`change`,a),t(()=>r.removeEventListener(`change`,a)),i}export{n as t};
@@ -1 +1 @@
1
- import{I as e,M as t,P as n,j as r,m as i}from"./Empty-CAGOJsfD.js";var a=new Map;function o(e,t){let n=JSON.stringify([e,t]),r=a.get(n);return r||(r=new Intl.DateTimeFormat(e,t),a.set(n,r),a.size>64&&a.delete(a.keys().next().value)),r}var s={overview:()=>i(`/mind`),mood:()=>i(`/mind/mood`),notes:(e=``)=>i(`/mind/thoughts?q=`+encodeURIComponent(e)),presence:()=>i(`/mind/presence`),today:()=>i(`/mind/today`),person:e=>i(`/mind/people/`+encodeURIComponent(e)),self:()=>i(`/mind/self`),thread:e=>i(`/mind/self/`+encodeURIComponent(e)),bonds:()=>i(`/mind/bonds`),relationships:()=>i(`/mind/relationships`),saveRelationship:e=>i(`/mind/relationships`,`PUT`,e),endRelationship:(e,t)=>i(`/mind/relationships/`+encodeURIComponent(e),`DELETE`,t),bondChanges:(e,t)=>i(`/mind/bonds/${e}/`+encodeURIComponent(t)),faces:e=>i(`/mind/faces/`+encodeURIComponent(e)),life:(e=``,t)=>i(`/mind/life?q=`+encodeURIComponent(e)+(t?`&before=`+t:``)),day:e=>i(`/mind/day/`+e),chapter:e=>i(`/mind/chapters/`+e),story:()=>i(`/mind/story`),nature:()=>i(`/mind/nature`),saveNature:e=>i(`/mind/nature`,`PUT`,e),saveSettings:e=>i(`/mind/settings`,`PUT`,e),reflect:()=>i(`/mind/reflect`,`POST`,{}),review:()=>i(`/mind/review`,`POST`,{}),revoke:(e,t,n=``)=>i(`/mind/revoke`,`POST`,{kind:e,id:t,reason:n}),thought:(e,t)=>i(`/mind/thoughts/`+encodeURIComponent(e),`PATCH`,t),removeThought:e=>i(`/mind/thoughts/`+encodeURIComponent(e),`DELETE`,{}),preview:e=>i(`/mind/preview`,`POST`,e),savePrompts:e=>i(`/core/prompts`,`PUT`,e)},c=n({promise:r(`答应的事`),plan:r(`想做的事`),event:r(`别人的安排`),date:r(`每年的日子`)}),l=n({pending:r(`还在等`),lapsed:r(`悄悄错过了`),done:r(`做到了`),missed:r(`错过了`),let_go:r(`不再惦记`),revoked:r(`已撤销`)}),u=n({turn:r(`聊天时`),direct:r(`聊天时`),group:r(`聊天时`),solitude:r(`独处时`),daily:r(`写日记时`),weekly:r(`回顾时`),memory:r(`从 TA 说过的话里`),migration:r(`旧版本`)}),d=n({activity:r(`做自己的事`),solitude:r(`独处`),expression:r(`自己的念头`),daily:r(`写日记`),weekly:r(`回顾这段日子`),night:r(`夜里整理`)}),f=n({running:r(`进行中`),written:r(`留下了东西`),state:r(`心情变了`),empty:r(`没什么新的`),error:r(`出了点问题`),skipped:r(`跳过了`),cancelled:r(`作废了`),interrupted:r(`重启中断`)}),p=n({active:r(`已经是 TA 的一部分`),emerging:r(`刚开始有这种感觉`),closed:r(`已经放下`)}),m={interest:`#ffc15f`,view:`#7fc8ff`,trait:`#ff9a8b`,habit:`#b9a4ff`,intention:`#6fe0b8`,care:`#ff8fbf`,curiosity:`#9ef0ff`},h=n({warmer:r(`更亲近了一点`),closer:r(`走近了`),trust_up:r(`更信任了`),trust_down:r(`有点失望`),friction:r(`有了别扭`),repair:r(`和好了`),distance:r(`疏远了一点`),impression:r(`印象`)}),g=new Set([`friction`,`trust_down`,`distance`]),_=n([[`familiarity`,r(`熟悉`)],[`closeness`,r(`亲近`)],[`trust`,r(`信任`)],[`tension`,r(`别扭`)]]),v=n({open:r(`公开`),private:r(`私下知道`),secret:r(`要 TA 保密`)}),y=n({妹妹:r(`妹妹`),姐姐:r(`姐姐`),弟弟:r(`弟弟`),哥哥:r(`哥哥`),朋友:r(`朋友`),伙伴:r(`伙伴`),年长手足:r(`年长手足`),年幼手足:r(`年幼手足`)}),b=n({confirmed:r(`TA 这样认为`),superseded:r(`已被新的取代`),candidate:r(`旧版待确认`),disputed:r(`有争议`),expired:r(`已过期`),deleted:r(`已撤销`)}),x=n({planned:r(`等合适的时候`),sending:r(`正在发`),sent:r(`说出口了`),declined:r(`TA 后来决定不说`),skipped:r(`时机不合适`),cancelled:r(`没有发`),uncertain:r(`投递未确认`)}),S=n({speak:r(`开口`),react:r(`简短反应`),decline:r(`说不想聊`),silent:r(`没出声`)});function C(n,r=`Asia/Shanghai`){return n?o(t(),{timeZone:r,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(n):e(`还没有`)}function w(e){return`${Math.round(Math.max(0,Math.min(1,Number(e)||0))*100)}%`}export{w as _,g as a,m as c,x as d,y as f,s as g,p as h,S as i,b as l,f as m,l as n,_ as o,d as p,h as r,v as s,c as t,u,C as v,o as y};
1
+ import{I as e,M as t,P as n,j as r,m as i}from"./Empty-uSyRBXOT.js";var a=new Map;function o(e,t){let n=JSON.stringify([e,t]),r=a.get(n);return r||(r=new Intl.DateTimeFormat(e,t),a.set(n,r),a.size>64&&a.delete(a.keys().next().value)),r}var s={overview:()=>i(`/mind`),mood:()=>i(`/mind/mood`),notes:(e=``)=>i(`/mind/thoughts?q=`+encodeURIComponent(e)),presence:()=>i(`/mind/presence`),today:()=>i(`/mind/today`),person:e=>i(`/mind/people/`+encodeURIComponent(e)),self:()=>i(`/mind/self`),thread:e=>i(`/mind/self/`+encodeURIComponent(e)),bonds:()=>i(`/mind/bonds`),relationships:()=>i(`/mind/relationships`),saveRelationship:e=>i(`/mind/relationships`,`PUT`,e),endRelationship:(e,t)=>i(`/mind/relationships/`+encodeURIComponent(e),`DELETE`,t),bondChanges:(e,t)=>i(`/mind/bonds/${e}/`+encodeURIComponent(t)),faces:e=>i(`/mind/faces/`+encodeURIComponent(e)),life:(e=``,t)=>i(`/mind/life?q=`+encodeURIComponent(e)+(t?`&before=`+t:``)),day:e=>i(`/mind/day/`+e),chapter:e=>i(`/mind/chapters/`+e),story:()=>i(`/mind/story`),nature:()=>i(`/mind/nature`),saveNature:e=>i(`/mind/nature`,`PUT`,e),saveSettings:e=>i(`/mind/settings`,`PUT`,e),reflect:()=>i(`/mind/reflect`,`POST`,{}),review:()=>i(`/mind/review`,`POST`,{}),revoke:(e,t,n=``)=>i(`/mind/revoke`,`POST`,{kind:e,id:t,reason:n}),thought:(e,t)=>i(`/mind/thoughts/`+encodeURIComponent(e),`PATCH`,t),removeThought:e=>i(`/mind/thoughts/`+encodeURIComponent(e),`DELETE`,{}),preview:e=>i(`/mind/preview`,`POST`,e),savePrompts:e=>i(`/core/prompts`,`PUT`,e)},c=n({promise:r(`答应的事`),plan:r(`想做的事`),event:r(`别人的安排`),date:r(`每年的日子`)}),l=n({pending:r(`还在等`),lapsed:r(`悄悄错过了`),done:r(`做到了`),missed:r(`错过了`),let_go:r(`不再惦记`),revoked:r(`已撤销`)}),u=n({turn:r(`聊天时`),direct:r(`聊天时`),group:r(`聊天时`),solitude:r(`独处时`),daily:r(`写日记时`),weekly:r(`回顾时`),memory:r(`从 TA 说过的话里`),migration:r(`旧版本`)}),d=n({activity:r(`做自己的事`),solitude:r(`独处`),expression:r(`自己的念头`),daily:r(`写日记`),weekly:r(`回顾这段日子`),night:r(`夜里整理`)}),f=n({running:r(`进行中`),written:r(`留下了东西`),state:r(`心情变了`),empty:r(`没什么新的`),error:r(`出了点问题`),skipped:r(`跳过了`),cancelled:r(`作废了`),interrupted:r(`重启中断`)}),p=n({active:r(`已经是 TA 的一部分`),emerging:r(`刚开始有这种感觉`),closed:r(`已经放下`)}),m={interest:`#ffc15f`,view:`#7fc8ff`,trait:`#ff9a8b`,habit:`#b9a4ff`,intention:`#6fe0b8`,care:`#ff8fbf`,curiosity:`#9ef0ff`},h=n({warmer:r(`更亲近了一点`),closer:r(`走近了`),trust_up:r(`更信任了`),trust_down:r(`有点失望`),friction:r(`有了别扭`),repair:r(`和好了`),distance:r(`疏远了一点`),impression:r(`印象`)}),g=new Set([`friction`,`trust_down`,`distance`]),_=n([[`familiarity`,r(`熟悉`)],[`closeness`,r(`亲近`)],[`trust`,r(`信任`)],[`tension`,r(`别扭`)]]),v=n({open:r(`公开`),private:r(`私下知道`),secret:r(`要 TA 保密`)}),y=n({妹妹:r(`妹妹`),姐姐:r(`姐姐`),弟弟:r(`弟弟`),哥哥:r(`哥哥`),朋友:r(`朋友`),伙伴:r(`伙伴`),年长手足:r(`年长手足`),年幼手足:r(`年幼手足`)}),b=n({confirmed:r(`TA 这样认为`),superseded:r(`已被新的取代`),candidate:r(`旧版待确认`),disputed:r(`有争议`),expired:r(`已过期`),deleted:r(`已撤销`)}),x=n({planned:r(`等合适的时候`),sending:r(`正在发`),sent:r(`说出口了`),declined:r(`TA 后来决定不说`),skipped:r(`时机不合适`),cancelled:r(`没有发`),uncertain:r(`投递未确认`)}),S=n({speak:r(`开口`),react:r(`简短反应`),decline:r(`说不想聊`),silent:r(`没出声`)});function C(n,r=`Asia/Shanghai`){return n?o(t(),{timeZone:r,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(n):e(`还没有`)}function w(e){return`${Math.round(Math.max(0,Math.min(1,Number(e)||0))*100)}%`}export{w as _,g as a,m as c,x as d,y as f,s as g,p as h,S as i,b as l,f as m,l as n,_ as o,d as p,h as r,v as s,c as t,u,C as v,o as y};
@@ -14,11 +14,11 @@
14
14
  if (pinned) document.documentElement.dataset.mood = pinned;
15
15
  } catch (e) {}
16
16
  </script>
17
- <script type="module" crossorigin src="/app/assets/index-L0bHax8C.js"></script>
18
- <link rel="modulepreload" crossorigin href="/app/assets/Empty-CAGOJsfD.js">
19
- <link rel="modulepreload" crossorigin href="/app/assets/mind-CBTkFje2.js">
17
+ <script type="module" crossorigin src="/app/assets/index-5FMs9YYQ.js"></script>
18
+ <link rel="modulepreload" crossorigin href="/app/assets/Empty-uSyRBXOT.js">
19
+ <link rel="modulepreload" crossorigin href="/app/assets/mind-D3mdwFW3.js">
20
20
  <link rel="stylesheet" crossorigin href="/app/assets/Empty-DmUB2-Bk.css">
21
- <link rel="stylesheet" crossorigin href="/app/assets/index-BHZcHUMh.css">
21
+ <link rel="stylesheet" crossorigin href="/app/assets/index-cDDC-1dI.css">
22
22
  </head>
23
23
  <body>
24
24
  <div id="app"></div>
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1" />
6
- <title>LuckyTri v1.2.1 · Getting Started</title>
6
+ <title>LuckyTri v1.2.3 · Getting Started</title>
7
7
  <style>
8
8
  * {
9
9
  box-sizing: border-box;
@@ -269,7 +269,7 @@
269
269
  <body>
270
270
  <header>
271
271
  <div>
272
- <b>LuckyTri · Handbook</b><small>TIME · MEMORY · CHOICE / v1.2.1</small>
272
+ <b>LuckyTri · Handbook</b><small>TIME · MEMORY · CHOICE / v1.2.3</small>
273
273
  </div>
274
274
  <nav>
275
275
  <a href="/#setup">Back to the studio</a
@@ -1061,11 +1061,22 @@ npm start
1061
1061
  allowance; locally granted extra opportunities are recorded without
1062
1062
  clearing history.
1063
1063
  </p>
1064
+ <p>
1065
+ For systemd or PM2 deployments, use
1066
+ <code>luckytri start --home /existing-instance</code> as the managed
1067
+ entry point. The 1.2.0–1.2.1 foreground supervisor may start the old
1068
+ server prematurely during memory migration. Back up and stop the
1069
+ managed service, manually install the fixed release with
1070
+ <code>npm install -g luckytri@1.2.2</code>, then restart with the same
1071
+ account and instance directory. Retain existing data and
1072
+ <code>runtime/</code>; see
1073
+ <a href="npm-release.md">server update guidance</a>.
1074
+ </p>
1064
1075
  </article>
1065
1076
  </div>
1066
1077
  <footer>
1067
1078
  LuckyTri · so that experience and choice stay coherent. This guide matches
1068
- the v1.2.1 interface.
1079
+ the v1.2.3 interface.
1069
1080
  </footer>
1070
1081
  </body>
1071
1082
  </html>
package/public/guide.html CHANGED
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1" />
6
- <title>LuckyTri v1.2.1 · 使用教程</title>
6
+ <title>LuckyTri v1.2.3 · 使用教程</title>
7
7
  <style>
8
8
  * {
9
9
  box-sizing: border-box;
@@ -269,7 +269,7 @@
269
269
  <body>
270
270
  <header>
271
271
  <div>
272
- <b>LuckyTri · 上手手册</b><small>TIME · MEMORY · CHOICE / v1.2.1</small>
272
+ <b>LuckyTri · 上手手册</b><small>TIME · MEMORY · CHOICE / v1.2.3</small>
273
273
  </div>
274
274
  <nav>
275
275
  <a href="/#setup">返回管理台</a
@@ -869,8 +869,20 @@ npm start
869
869
  <code>runtime/releases/</code>,源码和全局 npm
870
870
  安装保持原样;启动命令会选择已更新的程序。安装了同版本或更新版本的全局包或源码后,以该安装为准。天性页的剩余修改次数以服务端额度为准;本地维护额外授予的机会有独立记录,不清空原版本。
871
871
  </p>
872
+ <p>
873
+ 服务器使用 systemd、PM2 等托管时,启动入口使用
874
+ <code>luckytri start --home /原实例目录</code>。1.2.0–1.2.1
875
+ 的前台守护器可能在记忆迁移时提前启动旧实例,升级到修复版 1.2.2
876
+ 应先备份并停止托管服务,手动执行
877
+ <code>npm install -g luckytri@1.2.2</code
878
+ >,再用原账号、原实例目录启动。不要删除数据或
879
+ <code>runtime/</code>;详细部署与故障说明见
880
+ <a href="npm-release.md#%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%9B%B4%E6%96%B0"
881
+ >服务器更新</a
882
+ >。
883
+ </p>
872
884
  </article>
873
885
  </div>
874
- <footer>LuckyTri · 让经历和选择彼此连贯。教程与 v1.2.1 界面同步。</footer>
886
+ <footer>LuckyTri · 让经历和选择彼此连贯。教程与 v1.2.3 界面同步。</footer>
875
887
  </body>
876
888
  </html>
@@ -210,3 +210,5 @@ People → Relationships binds a person or another robot by account, with recipr
210
210
  An absent person can still be recalled by name or relationship role. Current facts, actual encounters and her own feelings inform that recognition together. Earlier opinions remain history rather than overriding current facts, and relevant replies are checked before delivery. She still chooses how to interact and address people without reciting management fields.
211
211
 
212
212
  System → Runtime → Version and updates checks npm and links release notes. Update and restart downloads and validates the new program while the instance keeps running, then saves a verified backup and switches. Failed startup attempts recovery of the previous program and data. Managed programs live under the instance's `runtime/releases/`, leaving source and global npm installations untouched; launch commands select the updated program. A manually installed equal or newer source/global package takes precedence. The Nature page uses the server's remaining edit allowance; locally granted extra opportunities are recorded without clearing history.
213
+
214
+ For systemd or PM2 deployments, use `luckytri start --home /existing-instance` as the managed entry point. The 1.2.0–1.2.1 foreground supervisor may start the old server prematurely during memory migration. Back up and stop the managed service, manually install the fixed release with `npm install -g luckytri@1.2.2`, then restart with the same account and instance directory. Retain existing data and `runtime/`; see [server update guidance](npm-release.md).
@@ -210,3 +210,5 @@ TA 的一切都存在这一个数据库里,所以服务运行时会自动备
210
210
  对方不在当前会话,也可以因名字或关系称呼被想起。当前关系、实际相处与自己的感受共同参与理解;关系更新前的看法作为历史保留,不再直接代表当前事实。相关回复发送前会再次核对。她仍选择如何相处和称呼,不机械播报关系字段。
211
211
 
212
212
  「系统 → 运行开关 → 版本与更新」可检查 npm 最新版本、查看发布说明,随后点击「更新并重启」。下载检查期间继续运行,切换前保留校验备份,启动失败时尝试恢复原版本和数据。新程序装在实例的 `runtime/releases/`,源码和全局 npm 安装保持原样;启动命令会选择已更新的程序。安装了同版本或更新版本的全局包或源码后,以该安装为准。天性页的剩余修改次数以服务端额度为准;本地维护额外授予的机会有独立记录,不清空原版本。
213
+
214
+ 服务器使用 systemd、PM2 等托管时,启动入口使用 `luckytri start --home /原实例目录`。1.2.0–1.2.1 的前台守护器可能在记忆迁移时提前启动旧实例,升级到修复版 1.2.2 应先备份并停止托管服务,手动执行 `npm install -g luckytri@1.2.2`,再用原账号、原实例目录启动。不要删除数据或 `runtime/`;详细部署与故障说明见 [服务器更新](npm-release.md#服务器更新)。
@@ -1,17 +1,9 @@
1
1
  import { readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
- import { processAlive } from "../server/runtime/update-manager.js";
4
-
5
- const ACTIVE_UPDATE = new Set([
6
- "queued",
7
- "downloading",
8
- "checking",
9
- "stopping",
10
- "backup",
11
- "restarting",
12
- "verifying",
13
- "restoring",
14
- ]);
3
+ import {
4
+ processAlive,
5
+ isUpdateFinished,
6
+ } from "../server/runtime/update-manager.js";
15
7
 
16
8
  function readJob(home) {
17
9
  try {
@@ -34,7 +26,10 @@ export async function updatedServerAfterExit(
34
26
  while (true) {
35
27
  const job = read();
36
28
  if (!job || job.parent !== parentPid) return { matched: false, pid: null };
37
- if (!ACTIVE_UPDATE.has(job.status))
29
+ // This supervisor can outlive its installed release. A future worker may
30
+ // introduce stages this older process does not know; only explicit terminal
31
+ // states permit handover while the worker is still alive.
32
+ if (isUpdateFinished(job.status))
38
33
  return { matched: true, pid: alive(job.childPid) ? job.childPid : null };
39
34
  if (!alive(job.workerPid))
40
35
  return { matched: true, pid: alive(job.childPid) ? job.childPid : null };
@@ -30,7 +30,12 @@ else console.log("未检测到系统代理,外部 API 请求将直连。");
30
30
  let currentPid;
31
31
  for (const signal of ["SIGINT", "SIGTERM"])
32
32
  process.on(signal, () => {
33
- if (currentPid) process.kill(currentPid, signal);
33
+ if (currentPid)
34
+ try {
35
+ process.kill(currentPid, signal);
36
+ } catch (error) {
37
+ if (error.code !== "ESRCH") throw error;
38
+ }
34
39
  });
35
40
 
36
41
  async function start(root) {
@@ -71,6 +76,7 @@ try {
71
76
  } else {
72
77
  await waitForProcessExit(tracked.pid);
73
78
  }
79
+ currentPid = undefined;
74
80
 
75
81
  const update = await updatedServerAfterExit(paths.home, tracked.pid);
76
82
  if (!update.matched) break;
@@ -80,6 +86,7 @@ try {
80
86
  // after rollback). Keep this foreground process alive so systemd does not
81
87
  // kill that process or any still-running update work in the same cgroup.
82
88
  tracked = { pid: update.pid };
89
+ currentPid = update.pid;
83
90
  direct = false;
84
91
  continue;
85
92
  }