:root{--bg:#0a0a14;--surface:hsla(0,0%,100%,.03);--surface-2:hsla(0,0%,100%,.04);--surface-3:hsla(0,0%,100%,.06);--header-bg:rgba(10,10,20,.78);--modal-bg:#14141e;--code-bg:rgba(0,0,0,.2);--border:hsla(0,0%,100%,.04);--border-1:hsla(0,0%,100%,.06);--border-2:hsla(0,0%,100%,.08);--border-3:hsla(0,0%,100%,.1);--text-strong:#fff;--text:#e0e0e0;--text-2:#c0c0c8;--text-3:#b0b0c0;--text-muted:#888;--text-fainter:#666;--text-faintest:#555;--text-placeholder:#444;--text-footer:#777;--text-footer-faint:#333;--accent-1:#6c63ff;--accent-2:#ff6b9d;--accent-soft:#a8a4ff;--accent-grad:linear-gradient(135deg,#6c63ff,#ff6b9d);--text-on-accent:#fff;--danger:#ff8080;--danger-bg:rgba(255,80,80,.08);--danger-bg-strong:rgba(255,80,80,.14);--danger-border:rgba(255,80,80,.2);--success:#80ffaa;--success-bg:rgba(128,255,170,.1);--success-border:rgba(128,255,170,.25);--warning:#ffd166;--warning-text:#d4b850;--warning-bg:rgba(255,200,0,.06);--warning-border:rgba(255,200,0,.18);--glow-1:rgba(108,99,255,.08);--glow-2:rgba(255,107,157,.06);--shadow-sm:0 4px 20px rgba(10,10,20,.06);--shadow-cta:0 8px 32px rgba(108,99,255,.3);--shadow-cta-hover:0 12px 40px rgba(108,99,255,.4);color-scheme:dark}:root[data-theme=light]{--bg:#fafafa;--surface:rgba(10,10,20,.025);--surface-2:rgba(10,10,20,.04);--surface-3:rgba(10,10,20,.06);--header-bg:hsla(0,0%,100%,.78);--modal-bg:#fff;--code-bg:rgba(10,10,20,.06);--border:rgba(10,10,20,.06);--border-1:rgba(10,10,20,.08);--border-2:rgba(10,10,20,.1);--border-3:rgba(10,10,20,.14);--text-strong:#0a0a14;--text:#1a1a24;--text-2:#2a2a34;--text-3:#3a3a44;--text-muted:#6a6a78;--text-fainter:#888896;--text-faintest:#9a9aa6;--text-placeholder:#b0b0bc;--text-footer:#707080;--text-footer-faint:#aaaab4;--accent-soft:#5550cc;--danger:#d9434a;--danger-bg:rgba(217,67,74,.06);--danger-bg-strong:rgba(217,67,74,.12);--danger-border:rgba(217,67,74,.3);--success:#1f9d55;--success-bg:rgba(31,157,85,.08);--success-border:rgba(31,157,85,.25);--warning:#b8860b;--warning-text:#8c6a0a;--warning-bg:rgba(255,200,0,.12);--warning-border:rgba(184,134,11,.3);--glow-1:rgba(108,99,255,.06);--glow-2:rgba(255,107,157,.05);--shadow-sm:0 4px 20px rgba(10,10,20,.06);--shadow-cta:0 8px 32px rgba(108,99,255,.25);--shadow-cta-hover:0 12px 40px rgba(108,99,255,.35);color-scheme:light}.app-logo[data-v-c58c3c9d]{display:inline-block;flex-shrink:0;vertical-align:middle}.splash[data-v-03b62596]{position:fixed;inset:0;z-index:9000;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.splash-glow[data-v-03b62596]{position:absolute;pointer-events:none;border-radius:50%;filter:blur(70px);opacity:.6;animation:splash-drift-03b62596 7s ease-in-out infinite}.splash-glow-1[data-v-03b62596]{top:8%;left:-12%;width:60%;height:60%;background:radial-gradient(circle,rgba(108,99,255,.45) 0,transparent 70%)}.splash-glow-2[data-v-03b62596]{bottom:4%;right:-12%;width:60%;height:60%;background:radial-gradient(circle,rgba(255,107,157,.4) 0,transparent 70%);animation-delay:-3.5s}@keyframes splash-drift-03b62596{0%,to{transform:translate(0) scale(1)}50%{transform:translate(30px,40px) scale(1.12)}}.splash-stack[data-v-03b62596]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px}.splash-logo[data-v-03b62596]{animation:splash-pulse-03b62596 2.2s ease-in-out infinite}@keyframes splash-pulse-03b62596{0%,to{transform:scale(1);filter:drop-shadow(0 12px 32px rgba(108,99,255,.35))}50%{transform:scale(1.06);filter:drop-shadow(0 18px 48px rgba(255,107,157,.5))}}.splash-name[data-v-03b62596]{margin:6px 0 0;font-family:Space Mono,monospace;font-size:32px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--text-strong) 0,var(--accent-soft) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:splash-up-03b62596 .55s ease-out .1s backwards}.splash-tagline[data-v-03b62596]{margin:0;color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:14px;letter-spacing:.02em;animation:splash-up-03b62596 .55s ease-out .2s backwards}@keyframes splash-up-03b62596{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.splash-dots[data-v-03b62596]{display:flex;gap:6px;margin-top:10px;animation:splash-up-03b62596 .55s ease-out .3s backwards}.splash-dots span[data-v-03b62596]{width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#6c63ff,#ff6b9d);animation:splash-dot-03b62596 1.2s ease-in-out infinite}.splash-dots span[data-v-03b62596]:nth-child(2){animation-delay:.15s}.splash-dots span[data-v-03b62596]:nth-child(3){animation-delay:.3s}@keyframes splash-dot-03b62596{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.splash-fade-leave-active[data-v-03b62596]{transition:opacity .5s ease}.splash-fade-leave-to[data-v-03b62596]{opacity:0}@media(prefers-reduced-motion:reduce){.splash-dots[data-v-03b62596],.splash-dots span[data-v-03b62596],.splash-glow[data-v-03b62596],.splash-logo[data-v-03b62596],.splash-name[data-v-03b62596],.splash-tagline[data-v-03b62596]{animation:none}}.install-banner[data-v-cd54ad13]{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 16px);left:50%;transform:translate(-50%);z-index:1000;width:calc(100vw - 24px);max-width:420px;padding:12px 14px;background:#10101cf2;border:1px solid var(--border-3);border-radius:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 32px #00000073;font-family:DM Sans,sans-serif;color:#f0f0f5}.install-row[data-v-cd54ad13]{display:flex;align-items:center;gap:10px}.install-emoji[data-v-cd54ad13]{font-size:20px;line-height:1}.install-text[data-v-cd54ad13]{flex:1;font-size:13px;font-weight:600;line-height:1.25}.install-cta[data-v-cd54ad13]{flex-shrink:0;padding:8px 14px;border:none;border-radius:999px;background:var(--accent-grad);color:var(--text-on-accent);font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-cta);transition:transform .15s ease,box-shadow .15s ease}.install-cta[data-v-cd54ad13]:active{transform:scale(.96)}.install-close[data-v-cd54ad13]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-3);cursor:pointer}.install-close[data-v-cd54ad13]:active{background:var(--surface-3)}.install-steps[data-v-cd54ad13]{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-2)}.install-step[data-v-cd54ad13]{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;color:#e0e0e6}.install-num[data-v-cd54ad13]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--accent-grad);color:var(--text-on-accent);font-size:11px;font-weight:700}.install-share[data-v-cd54ad13]{color:var(--accent-soft);vertical-align:middle}.install-done[data-v-cd54ad13]{width:100%;margin-top:4px;padding:9px;border:1px solid var(--border-3);border-radius:10px;background:var(--surface-2);color:#f0f0f5;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer}.install-done[data-v-cd54ad13]:active{background:var(--surface-3)}.install-slide-enter-active[data-v-cd54ad13],.install-slide-leave-active[data-v-cd54ad13]{transition:all .3s ease}.install-slide-enter-from[data-v-cd54ad13],.install-slide-leave-to[data-v-cd54ad13]{transform:translate(-50%) translateY(150%);opacity:0}.install-steps-enter-active[data-v-cd54ad13],.install-steps-leave-active[data-v-cd54ad13]{transition:all .2s ease;overflow:hidden}.install-steps-enter-from[data-v-cd54ad13],.install-steps-leave-to[data-v-cd54ad13]{opacity:0;max-height:0;margin-top:0;padding-top:0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-3);border-radius:3px}::-moz-placeholder{color:var(--text-placeholder)}::placeholder{color:var(--text-placeholder)}
