:root{--bg: #14111c;--bg-soft: #1d1828;--surface: #241e33;--border: #352c4a;--text: #ece7f5;--muted: #9a90b0;--accent: #e8a558;--accent-dim:#c98a3e;--user: #3a2f52;--radius: 14px;--font: "Onest", ui-sans-serif, system-ui, "Segoe UI", sans-serif;--font-ui: "Onest", ui-sans-serif, system-ui, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{width:0;height:0;display:none}body{background:radial-gradient(120% 80% at 50% -10%,#221a33 0%,var(--bg) 60%);color:var(--text);font-family:var(--font-ui);min-height:100vh}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}.center{display:grid;place-items:center;min-height:100vh}.muted{color:var(--muted)}.brand{font-family:var(--font);font-size:2.6rem;font-weight:800;letter-spacing:-.01em;color:var(--accent)}.brand.sm{font-size:1.5rem}.brand-sub{color:var(--muted);margin-top:4px;font-style:italic}.auth-wrap{display:grid;place-items:center;min-height:100vh;padding:20px}.auth-card{width:100%;max-width:360px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:40px 32px}.auth-form{display:grid;gap:12px;margin-top:28px}.auth-form input,.form input,.form textarea{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:12px 14px;color:var(--text);font-size:.95rem}input:focus,textarea:focus{outline:2px solid var(--accent-dim)}.btn-primary{background:var(--accent);color:#2a1c08;border:none;border-radius:10px;padding:12px;font-weight:600;font-size:.95rem;transition:filter .15s}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:disabled{opacity:.5;cursor:default}.btn-primary.sm{padding:8px 16px}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 14px;text-decoration:none;font-size:.9rem}.btn-ghost:hover{border-color:var(--accent-dim)}.link-btn{background:none;border:none;color:var(--muted);margin-top:18px;font-size:.85rem;text-decoration:underline}.error{color:#f3917f;font-size:.85rem;text-align:left}.page{max-width:1000px;margin:0 auto;padding:20px}.page.narrow{max-width:560px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:8px 0 24px}.topbar-right{display:flex;align-items:center;gap:12px}.section{margin-bottom:36px}.section-title{font-family:var(--font);font-size:1.2rem;color:var(--muted);margin-bottom:14px;font-weight:400}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;transition:border-color .15s,transform .15s}.card:hover{border-color:var(--accent-dim);transform:translateY(-2px)}.card-name{font-family:var(--font);font-size:1.25rem}.card-tagline{color:var(--muted);font-size:.85rem;flex:1}.avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-family:var(--font);font-size:1.4rem;color:var(--accent);background:linear-gradient(135deg,#2e2542,#3a2f52);border:1px solid var(--border)}.avatar.xs{width:28px;height:28px;font-size:.8rem}.chat-strip{display:flex;gap:10px;flex-wrap:wrap}.chat-pill{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:6px 14px 6px 6px;font-size:.9rem}.chat-pill:hover{border-color:var(--accent-dim)}.chat-page{display:flex;flex-direction:column;height:100vh;max-width:760px;margin:0 auto}.chat-header{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--border);color:var(--muted)}.back{background:none;border:none;color:var(--text);font-size:1.4rem}.messages{flex:1;overflow-y:auto;padding:24px 20px;display:flex;flex-direction:column;gap:14px}.bubble{max-width:78%;padding:12px 16px;border-radius:16px;line-height:1.5;white-space:pre-wrap;font-size:.97rem}.bubble.assistant{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start;font-family:var(--font)}.bubble.user{background:var(--user);border-bottom-right-radius:4px;align-self:flex-end}.bubble.typing{display:flex;gap:5px;align-self:flex-start}.bubble.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite both}.bubble.typing span:nth-child(2){animation-delay:.2s}.bubble.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{display:flex;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.composer input{flex:1;background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:12px 16px;color:var(--text);font-size:.97rem}.form{display:grid;gap:18px}.form label{display:grid;gap:6px;font-size:.9rem;color:var(--muted)}.form textarea{resize:vertical;line-height:1.5}.bubble.assistant .md-line{margin:0 0 6px}.bubble.assistant .md-line:last-child{margin-bottom:0}.md-action{color:var(--accent-dim);font-style:italic}.md-thought{margin:6px 0;padding:2px 0 2px 12px;border-left:2px solid var(--border);color:var(--muted);font-style:italic;font-size:.9rem}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
