.scroll-top{right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:100;border:1px solid var(--border,#ffffff1a);background:color-mix(in oklch,var(--surface,#17181d)88%,transparent);width:40px;height:40px;color:var(--ink-muted,#ffffffb3);cursor:pointer;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(8px);border-radius:50%;place-items:center;padding:0;transition:opacity .2s,transform .2s cubic-bezier(.22,.61,.36,1),color .14s,border-color .14s;display:grid;position:fixed;transform:translateY(8px)}.scroll-top[data-visible]{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top:hover{color:var(--ink,#fff);border-color:var(--border-strong,#fff3)}.scroll-top:focus-visible{outline:2px solid var(--border-strong,#ffffff4d);outline-offset:2px}.scroll-top svg{display:block}[data-theme=light] .scroll-top{color:#0000008c;background:#ffffffeb}[data-theme=light] .scroll-top:hover{color:#000000d9}@media (prefers-reduced-motion:reduce){.scroll-top,.scroll-top[data-visible]{transition:opacity .12s linear;transform:none}}
.app-bar{top:var(--promo-banner-h,0);z-index:150;background:var(--surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;transition:background .18s,border-color .18s,box-shadow .18s,-webkit-backdrop-filter .18s,backdrop-filter .18s;display:flex;position:sticky}.app-bar[data-route=home]:not(.is-scrolled),.app-bar[data-route=pricing]:not(.is-scrolled){-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom-color:#0000}.app-bar[data-route=home]{width:100%;position:fixed;left:0;right:0}html[data-promo="1"] .app-bar[data-route=home]{width:auto;position:sticky}[data-theme=light] .app-bar[data-route=home]:not(.is-scrolled){color:#f8fafceb;background:linear-gradient(#0f1b3db8,#0f1b3d00);border-bottom-color:#0000}[data-theme=light] .app-bar[data-route=home]:not(.is-scrolled) .app-bar-brand,[data-theme=light] .app-bar[data-route=home]:not(.is-scrolled) .app-bar-btn,[data-theme=light] .app-bar[data-route=home]:not(.is-scrolled) .app-bar-icon-btn{color:#f8fafceb}[data-theme=light] .app-bar[data-route=home]:not(.is-scrolled) .app-bar-divider{background:#ffffff38}.app-bar[data-route=home].is-scrolled{background:var(--surface);border-bottom-color:var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.app-bar-brand{color:inherit;letter-spacing:.01em;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:4px 6px;font-size:14px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-flex}.app-bar-brand:hover{background:#7f7f7f14}.app-bar-brand img{border-radius:5px;display:block}.app-bar-actions{align-items:center;gap:6px;display:inline-flex}.app-bar-primary-links{align-items:center;gap:2px;display:inline-flex}.app-bar-divider{background:#7f7f7f40;width:1px;height:18px;margin:0 4px}.app-bar-btn,.app-bar-icon-btn{height:34px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.app-bar-icon-btn{justify-content:center;width:34px;padding:0}.app-bar-btn:hover,.app-bar-icon-btn:hover{background:#7f7f7f1f;border-color:#7f7f7f2e}.app-bar-btn.is-active{background:color-mix(in srgb,var(--accent)12%,transparent);border-color:color-mix(in srgb,var(--accent)26%,transparent);color:var(--accent-ink,var(--accent))}.app-bar-btn:focus-visible,.app-bar-icon-btn:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:2px}.app-bar-btn-donate{color:#f43f5e}.app-bar-btn-donate:hover{background:#f43f5e1f;border-color:#f43f5e40}.app-bar-btn svg,.app-bar-icon-btn svg{display:block}.app-bar-bell{text-decoration:none;position:relative}.app-bar-bell-dot{border:2px solid var(--bg,#0c0d10);background:#ef4444;border-radius:50%;width:8px;height:8px;animation:1.8s ease-out infinite app-bar-bell-pulse;position:absolute;top:7px;right:7px;box-shadow:0 0 #ef444499}[data-theme=light] .app-bar-bell-dot{border-color:#fff}@keyframes app-bar-bell-pulse{0%{box-shadow:0 0 #ef44448c}70%{box-shadow:0 0 0 8px #ef444400}to{box-shadow:0 0 #ef444400}}.app-bar-search{border:1px solid var(--border);background:var(--surface-raised);height:34px;color:var(--ink-muted);font-family:var(--font-body);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:13px;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.app-bar-search:hover{border-color:var(--border-strong);color:var(--ink-secondary)}.app-bar-search svg{flex-shrink:0}.app-bar-search-label{white-space:nowrap}.app-bar-search-kbd{border:1px solid var(--border);background:var(--surface);color:var(--ink-faint);font-family:var(--font-mono);border-radius:5px;align-items:center;padding:1px 6px;font-size:11px;display:inline-flex}@media (max-width:640px){.app-bar{gap:8px;padding:8px 12px}.app-bar-actions{gap:4px}.app-bar-brand span,.app-bar-primary-links,.app-bar-btn,.app-bar-divider{display:none}.app-bar-search{background:0 0;border-color:#0000;justify-content:center;width:34px;padding:0}.app-bar-search-label,.app-bar-search-kbd{display:none}}@media (max-width:900px){.app-bar-primary-links{display:none}}.app-bar-btn-auth{background:var(--accent-solid);color:#fff;letter-spacing:-.005em;border-color:#0000;padding:0 14px;font-weight:600;transition:background .16s,transform .12s,box-shadow .16s;box-shadow:inset 0 1px #ffffff2e,0 1px 2px #0a12282e,0 4px 12px -4px #2563eb73}.app-bar-btn-auth:hover{background:var(--accent-solid-hover);border-color:#0000;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff3d,0 2px 4px #0a122838,0 10px 22px -6px #2563eb8c}.app-bar-btn-auth:active{transform:translateY(0);box-shadow:inset 0 1px #ffffff24,0 1px 2px #0a122833}.app-bar-btn-auth svg{opacity:.94}.app-bar-btn-auth:hover svg{opacity:1}.app-bar-btn-auth-label{display:inline-block}[data-theme=light] .app-bar-btn-auth{box-shadow:inset 0 1px #ffffff5c,0 1px 2px #2563eb38,0 4px 12px -4px #2563eb66}[data-theme=light] .app-bar-btn-auth:hover{box-shadow:inset 0 1px #fff6,0 2px 4px #2563eb47,0 10px 22px -6px #2563eb80}.app-bar-avatar-btn{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:box-shadow .15s,transform .15s;display:inline-flex;position:relative}.app-bar-avatar-btn:hover,.app-bar-avatar-btn:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent)40%,transparent);outline:none}.app-bar-avatar-btn.is-pro{background:#eab308;padding:2px}.app-bar-avatar-btn.is-pro .app-bar-avatar{border:2px solid var(--surface,#fff)}[data-theme=dark] .app-bar-avatar-btn.is-pro .app-bar-avatar{border-color:var(--surface,#18181b)}.app-bar-avatar-btn.is-pro:hover,.app-bar-avatar-btn.is-pro:focus-visible{box-shadow:0 0 0 2px #eab30880,0 8px 18px -8px #ca8a0499}.app-bar-avatar-btn.is-pro-lifetime{background:#ca8a04;box-shadow:0 0 0 1px #fbbf2459,0 4px 14px -4px #ca8a0480}.app-bar-avatar-btn.is-pro-lifetime:hover,.app-bar-avatar-btn.is-pro-lifetime:focus-visible{box-shadow:0 0 0 2px #fbbf2499,0 10px 22px -8px #ca8a04b3}.app-bar-avatar-crown{pointer-events:none;filter:drop-shadow(0 1px 2px #00000059)drop-shadow(0 0 .5px #ffffffe6);justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex;position:absolute;bottom:-4px;right:-4px}[data-theme=dark] .app-bar-avatar-crown{filter:drop-shadow(0 1px 3px #0009)drop-shadow(0 0 .5px #fff9)}.app-bar-avatar{object-fit:cover;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.app-bar-avatar-stack{width:30px;height:30px;display:inline-block;position:relative}.app-bar-avatar-stack .app-bar-avatar{position:absolute;inset:0}.app-bar-avatar-img{opacity:0;background:0 0;transition:opacity .18s}.app-bar-avatar-img.is-loaded{opacity:1}.app-bar-avatar-fallback{background:var(--accent,#2563eb);color:#fff;font-size:12px;font-weight:700}.app-bar-menu{z-index:1000!important}.app-bar-menu-header{padding-bottom:10px!important}.app-bar-menu-meta{color:#7f7f7fd9;flex-wrap:wrap;align-items:baseline;gap:5px;font-size:11.5px;line-height:1.45;display:flex}.app-bar-menu-email{letter-spacing:-.005em;word-break:break-all;color:#7f7f7ff2;font-family:JetBrains Mono,monospace}.app-bar-menu-meta-sep{color:#7f7f7f66;flex-shrink:0;font-size:11px}.app-bar-menu-joined{color:#7f7f7fb3;white-space:nowrap;font-weight:500}.app-bar-menu-upgrade{color:#b45309;font-weight:600}[data-theme=dark] .app-bar-menu-upgrade{color:#fbbf24}.app-bar-menu-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 2px color-mix(in oklch,var(--accent)28%,transparent);vertical-align:middle;border-radius:50%;margin-left:8px;display:inline-block}.app-bar-pro-badge{font-family:var(--font-mono,monospace);letter-spacing:.1em;white-space:nowrap;vertical-align:middle;border-radius:999px;align-items:center;padding:2px 7px;font-size:9.5px;font-weight:700;line-height:1.4;display:inline-flex}.app-bar-pro-badge.variant-monthly{color:#fff;background:#ca8a04}.app-bar-pro-badge.variant-lifetime{color:#fde047;background:#713f12;box-shadow:inset 0 0 0 1px #fcd34d59}[data-theme=dark] .app-bar-pro-badge.variant-monthly{color:#fff;background:#d97706}[data-theme=dark] .app-bar-pro-badge.variant-lifetime{color:#fff;background:#b45309;box-shadow:inset 0 0 0 1px #fcd34d66}.app-bar-avatar-skeleton{background:color-mix(in srgb,currentColor 12%,transparent)}.app-bar-auth-skeleton{background:color-mix(in srgb,currentColor 7%,transparent);vertical-align:middle;border-radius:8px;width:92px;height:34px;display:inline-block;position:relative;overflow:hidden}.app-bar-auth-skeleton:after{content:"";background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,currentColor 9%,transparent)50%,transparent 100%);animation:1.4s linear infinite app-bar-auth-shimmer;position:absolute;inset:0}@keyframes app-bar-auth-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.app-bar-auth-skeleton:after{animation:none}}@media (max-width:640px){.app-bar-auth-skeleton{width:34px;height:34px}.app-bar-btn-auth{justify-content:center;width:34px;height:34px;padding:0;display:inline-flex}.app-bar-btn-auth-label{display:none}}@media (prefers-reduced-motion:reduce){.app-bar-bell-dot{animation:none}}.app-bar-btn-pricing{text-decoration:none}.app-bar-btn-pricing:hover{transform:none}.app-bar-lang{letter-spacing:.04em;align-items:center;gap:4px;font-size:11px;font-weight:700;display:inline-flex}.app-bar-icon-btn:has(.app-bar-lang){width:auto;padding:0 8px}
[cmdk-overlay]{z-index:300;-webkit-backdrop-filter:blur(3px);background:#00000073;animation:.14s pal-fade;position:fixed;inset:0}[data-theme=dark] [cmdk-overlay]{background:#0000009e}.pal{z-index:301;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);flex-direction:column;width:min(620px,100vw - 24px);max-height:70vh;animation:.16s cubic-bezier(.16,1,.3,1) pal-pop;display:flex;position:fixed;top:14vh;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 24px 60px #00000047,0 8px 20px #00000029}[data-theme=dark] .pal{box-shadow:0 24px 70px #0009}@keyframes pal-fade{0%{opacity:0}to{opacity:1}}@keyframes pal-pop{0%{opacity:0;transform:translate(-50%)translateY(6px)scale(.99)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.pal,[cmdk-overlay]{animation:none}}.pal-input-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.pal-input-icon{color:var(--ink-faint);flex-shrink:0}.pal [cmdk-input]{min-width:0;color:var(--ink);font-family:var(--font-body);background:0 0;border:none;outline:none;flex:1;font-size:1rem}.pal [cmdk-input]::placeholder{color:var(--ink-faint)}.pal-esc{border:1px solid var(--border);background:var(--surface-raised);color:var(--ink-muted);font-family:var(--font-mono);border-radius:6px;flex-shrink:0;padding:2px 7px;font-size:.7rem}.pal-list{scrollbar-width:thin;padding:6px;overflow-y:auto}.pal-loading,.pal-empty{text-align:center;color:var(--ink-muted);padding:28px 16px;font-size:.9rem}.pal [cmdk-group-heading]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:10px 10px 4px;font-size:.68rem;font-weight:700}.pal-item{border-radius:var(--radius);color:var(--ink-secondary);cursor:pointer;align-items:center;gap:10px;padding:9px 10px;scroll-margin:8px;display:flex}.pal-item svg{color:var(--ink-faint);flex-shrink:0}.pal-item-title{min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.92rem;overflow:hidden}.pal-item-sub{color:var(--ink-faint);font-size:.74rem;font-family:var(--font-mono);flex-shrink:0}.pal-item[data-selected=true]{background:var(--accent);color:#fff}.pal-item[data-selected=true] .pal-item-title{color:#fff}.pal-item[data-selected=true] svg,.pal-item[data-selected=true] .pal-item-sub{color:#ffffffb8}.pal-footer{border-top:1px solid var(--border);background:var(--surface-raised);color:var(--ink-muted);gap:16px;padding:9px 16px;font-size:.74rem;display:flex}.pal-footer span{align-items:center;gap:5px;display:inline-flex}.pal-footer kbd{border:1px solid var(--border);background:var(--surface);min-width:17px;height:17px;color:var(--ink-secondary);font-family:var(--font-mono);border-radius:5px;justify-content:center;align-items:center;padding:0 4px;font-size:.66rem;display:inline-flex}@media (max-width:540px){.pal{max-height:80vh;top:8vh}.pal-footer{display:none}}
.promo-banner{z-index:200;width:100%;font-family:var(--font-body);border-bottom:1px solid var(--border);font-size:.875rem;line-height:1.4;animation:.24s cubic-bezier(.22,1,.36,1) promo-slide-in;position:sticky;top:0;overflow:hidden}.promo-banner-inner{z-index:1;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:10px clamp(16px,4vw,32px);display:flex;position:relative}.promo-banner-message{flex:1;align-items:center;min-width:0;font-weight:500;display:inline-flex}.promo-banner-icon{color:var(--stripe-color);flex:none;margin-right:8px;display:inline-flex}.promo-banner-cta{white-space:nowrap;border-radius:var(--radius);background:var(--cta-bg);color:var(--cta-fg);padding:4px 12px;font-weight:600;text-decoration:none;transition:background .14s,transform .14s,box-shadow .14s;animation:3s ease-in-out infinite cta-breathe}.promo-banner-cta:hover{background:var(--cta-bg-hover);transform:translateY(-1px)}.promo-banner-cta:focus-visible{outline-offset:3px;border-radius:var(--radius);outline:2px solid}.promo-banner-close{cursor:pointer;border-radius:var(--radius);color:inherit;opacity:.65;background:0 0;border:0;justify-content:center;align-items:center;margin:-4px;padding:4px;transition:opacity .14s;display:inline-flex}.promo-banner-close:hover{opacity:1}.promo-banner-close:focus-visible{outline-offset:2px;opacity:1;outline:2px solid}.promo-banner:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(100deg,#0000 30%,#ffffff47 50%,#0000 70%);animation:5s ease-in-out infinite shine-sweep;position:absolute;inset:0;transform:translate(-100%)}[data-theme=dark] .promo-banner:before{background:linear-gradient(100deg,#0000 30%,#ffffff1a 50%,#0000 70%)}.promo-banner--promo{color:#312e81;--stripe-color:#4f46e5;--cta-bg:#4f46e5;--cta-fg:#fff;--cta-bg-hover:#4338ca;--glow-color:#4f46e566;background:#e0e7ff}[data-theme=dark] .promo-banner--promo{color:#e0e7ff;--stripe-color:#818cf8;--cta-bg:#818cf8;--cta-fg:#1e1b4b;--cta-bg-hover:#fff;--glow-color:#818cf866;background:#1e1b4b}.promo-banner--sale{color:#9f1239;--stripe-color:#e11d48;--cta-bg:#e11d48;--cta-fg:#fff;--cta-bg-hover:#be123c;--glow-color:#e11d4866;background:#ffe4e6}[data-theme=dark] .promo-banner--sale{color:#ffe4e6;--stripe-color:#fda4af;--cta-bg:#fda4af;--cta-fg:#4c0519;--cta-bg-hover:#fff;--glow-color:#fda4af66;background:#4c0519}.promo-banner--info{color:#1e40af;--stripe-color:#2563eb;--cta-bg:#2563eb;--cta-fg:#fff;--cta-bg-hover:#1d4ed8;--glow-color:#2563eb66;background:#dbeafe}[data-theme=dark] .promo-banner--info{color:#dbeafe;--stripe-color:#93c5fd;--cta-bg:#93c5fd;--cta-fg:#172554;--cta-bg-hover:#fff;--glow-color:#93c5fd66;background:#172554}.promo-banner--warning{color:#78350f;--stripe-color:#d97706;--cta-bg:#d97706;--cta-fg:#fff;--cta-bg-hover:#b45309;--glow-color:#d9770666;background:#fef3c7}[data-theme=dark] .promo-banner--warning{color:#fef3c7;--stripe-color:#fcd34d;--cta-bg:#fcd34d;--cta-fg:#451a03;--cta-bg-hover:#fff;--glow-color:#fcd34d66;background:#451a03}.promo-banner--closing{pointer-events:none;animation:.24s cubic-bezier(.3,.8,.25,1) forwards promo-collapse!important}@keyframes promo-slide-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes promo-collapse{0%{opacity:1;border-bottom-width:1px;max-height:80px}30%{opacity:0}to{opacity:0;border-bottom-width:0;max-height:0;padding-top:0;padding-bottom:0}}@keyframes shine-sweep{0%{transform:translate(-100%)}60%{transform:translate(120%)}to{transform:translate(120%)}}@keyframes cta-breathe{0%{box-shadow:0 0 0 0 var(--glow-color)}60%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@media (max-width:640px){.promo-banner-inner{gap:8px;padding:8px 14px;font-size:.8125rem}.promo-banner-message{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.promo-banner-cta{padding:3px 10px;font-size:.75rem}}@media (prefers-reduced-motion:reduce){.promo-banner,.promo-banner:before,.promo-banner-icon,.promo-banner-cta{transition:none!important;animation:none!important}}
