@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;1,9..144,500&family=Space+Grotesk:wght@400;500;600&display=swap";:root,:root[data-theme=dark]{--base:#08090c;--surface:#14161c;--primary:#4f8dff;--accent:#ffd24a;--text:#f3f5f9}:root[data-theme=light]{--base:#fff;--surface:#f1f5ff;--primary:#2563ff;--accent:#f5b417;--text:#0f1a3a}:root{--ink:var(--base);--paper:var(--text);--on-primary:#fff;--on-accent:#1a1304;--primary-soft:color-mix(in srgb, var(--primary) 14%, var(--base));--accent-soft:color-mix(in srgb, var(--accent) 16%, var(--base));--grad:linear-gradient(120deg, var(--primary), var(--accent));--hair:color-mix(in srgb, var(--text) 16%, var(--base));--hair-soft:color-mix(in srgb, var(--text) 9%, var(--base));--muted:color-mix(in srgb, var(--text) 56%, var(--base));--muted-2:color-mix(in srgb, var(--text) 38%, var(--base));--panel:color-mix(in srgb, var(--text) 4%, var(--base));--panel-2:color-mix(in srgb, var(--text) 7%, var(--base));--elev:color-mix(in srgb, var(--text) 6%, var(--base));--elev-2:color-mix(in srgb, var(--text) 9%, var(--base));--well:color-mix(in srgb, #000 45%, var(--base));--border-strong:color-mix(in srgb, var(--text) 24%, var(--base));--glow:color-mix(in srgb, var(--primary) 36%, transparent);--glow-accent:color-mix(in srgb, var(--accent) 40%, transparent)}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--ink);color:var(--paper);-webkit-font-smoothing:antialiased;font-family:Space Grotesk,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-weight:600}a{color:var(--paper);text-decoration:none}button{font:inherit;cursor:pointer}::selection{background:var(--paper);color:var(--ink)}.app-grain{z-index:3;pointer-events:none;opacity:.07;mix-blend-mode:screen;width:100%;height:100%;position:fixed;inset:0}.app-eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:500}.app-display{letter-spacing:-.03em;font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.02}.app-h1{font-size:clamp(2.2rem,4.5vw,3.2rem)}.app-h2{font-size:clamp(1.5rem,2.6vw,2rem)}.app-muted{color:var(--muted)}.app-card{background:var(--panel);border:1px solid var(--hair);border-radius:14px;transition:border-color .25s,transform .25s,background .25s}.app-card--link:hover{border-color:var(--paper);transform:translateY(-2px)}.app-rule{background:var(--hair);border:none;height:1px}.app-btn{border:1px solid #0000;border-radius:999px;align-items:center;gap:.5rem;padding:.62rem 1.25rem;font-size:.92rem;font-weight:600;line-height:1;transition:transform .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.app-btn:disabled{opacity:.5;cursor:default}.app-btn--accent{background:var(--primary);color:var(--on-primary)}.app-btn--accent:not(:disabled):hover{background:color-mix(in srgb, var(--primary) 88%, #fff);box-shadow:0 8px 24px color-mix(in srgb, var(--primary) 40%, transparent);transform:translateY(-2px)}.app-btn--ghost{color:var(--paper);border-color:var(--hair);background:0 0}.app-btn--ghost:not(:disabled):hover{border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}.app-btn--quiet{color:var(--muted);border-color:var(--hair-soft);background:0 0}.app-btn--quiet:not(:disabled):hover{color:var(--paper);border-color:var(--hair)}.app-input,.app-textarea,.app-select{background:var(--panel);width:100%;color:var(--paper);border:1px solid var(--hair);border-radius:10px;padding:.7rem .85rem;font-family:inherit;font-size:.95rem;transition:border-color .2s}.app-textarea{resize:vertical}.app-input:focus,.app-textarea:focus,.app-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent);outline:none}.composer{background:var(--elev);border:1px solid var(--hair);border-radius:20px;padding:.35rem .4rem .5rem;transition:border-color .2s,box-shadow .2s;box-shadow:inset 0 1px #ffffff0b,0 18px 44px #0006}.composer:focus-within{border-color:color-mix(in srgb, var(--primary) 65%, var(--hair));box-shadow:0 0 0 4px var(--glow), 0 18px 44px #00000073}.composer-textarea{resize:none;width:100%;color:var(--paper);background:0 0;border:none;outline:none;padding:1rem 1.05rem .5rem;font-family:inherit;font-size:1.05rem;line-height:1.55}.composer-textarea::placeholder{color:var(--muted-2)}.composer-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.3rem .5rem .2rem;display:flex}.composer-embed{border-top:1px solid var(--hair-soft);margin:.35rem .45rem 0;padding:.7rem .6rem .3rem}.composer-chip{color:var(--muted);border:1px solid var(--hair);cursor:pointer;background:0 0;border-radius:99px;align-items:center;gap:7px;padding:.4rem .85rem;font-size:.82rem;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.composer-chip:hover{color:var(--paper);border-color:var(--border-strong)}.composer-chip[data-active=true]{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 50%, transparent);background:color-mix(in srgb, var(--primary) 12%, transparent)}.composer-chip-plus{opacity:.8;font-size:1.05em;line-height:0}.seg{background:var(--well);border:1px solid var(--hair);border-radius:99px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:99px;padding:.4rem 1rem;font-size:.83rem;font-weight:500;transition:color .15s,background .15s}.seg button[data-active=true]{background:var(--primary);color:var(--on-primary)}.seg button:disabled{cursor:not-allowed}.sk-line{background:linear-gradient(90deg, var(--panel-2) 0%, var(--hair) 50%, var(--panel-2) 100%);background-size:200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite sk-shimmer}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sk-pulse{animation:1.4s ease-in-out infinite sk-pulse}@keyframes sk-pulse{0%,to{opacity:.35}50%{opacity:1}}.app-motion [data-reveal]{opacity:0;will-change:transform, opacity}@media (prefers-reduced-motion:reduce){.app-motion [data-reveal]{opacity:1!important;transform:none!important}.app-btn,.app-card{transition:none}.sk-line,.sk-pulse{animation:none}}
