:root{--bg-0: #080b14;--bg-1: #0d1224;--bg-2: #11172c;--ink: #eef0fb;--ink-soft: #a7add0;--ink-faint: #6b7299;--line: rgba(167, 173, 208, .14);--line-strong: rgba(167, 173, 208, .26);--surface: rgba(255, 255, 255, .04);--surface-raised: rgba(255, 255, 255, .07);--grad-a: #6f7bf7;--grad-b: #35c9d8;--grad-c: #f6b94e;--accent: #7c86ff;--accent-ink: #dfe1ff;--radius-lg: 26px;--radius-md: 18px;--radius-sm: 12px;--font-display: "Sora", "Segoe UI", system-ui, sans-serif;--font-body: "Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(ellipse 120% 80% at 50% -10%,#171e3d 0%,var(--bg-1) 45%,var(--bg-0) 100%);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}button,textarea{font-family:inherit;color:inherit}.app{position:relative;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.starfield{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.55;background-image:radial-gradient(1.5px 1.5px at 12% 22%,#ffffff 100%,transparent 0),radial-gradient(1px 1px at 28% 68%,#ffffff 100%,transparent 0),radial-gradient(1.5px 1.5px at 45% 12%,#ffffff 100%,transparent 0),radial-gradient(1px 1px at 62% 45%,#ffffff 100%,transparent 0),radial-gradient(1.5px 1.5px at 78% 78%,#ffffff 100%,transparent 0),radial-gradient(1px 1px at 85% 25%,#ffffff 100%,transparent 0),radial-gradient(1.5px 1.5px at 95% 60%,#ffffff 100%,transparent 0),radial-gradient(1px 1px at 8% 85%,#ffffff 100%,transparent 0),radial-gradient(1px 1px at 55% 90%,#ffffff 100%,transparent 0),radial-gradient(1.5px 1.5px at 35% 40%,#ffffff 100%,transparent 0);background-size:100% 100%;animation:twinkle 6s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:.65}}.app-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.brand{display:flex;align-items:center;gap:12px;border:none;background:none;padding:0;cursor:pointer;text-align:left}.brand:hover .brand-name{color:var(--accent, inherit)}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:.01em}.brand-tagline{font-size:12px;color:var(--ink-faint);letter-spacing:.02em}.app-header__actions{display:flex;align-items:center;gap:14px}.header-link{font-size:13px;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.header-link:hover{color:var(--accent-ink);border-color:var(--line-strong)}.new-chat-btn{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .15s ease,border-color .2s ease}.new-chat-btn:hover:not(:disabled){background:var(--surface-raised);border-color:var(--accent);transform:translateY(-1px)}.new-chat-btn:disabled{opacity:.35;cursor:default}.new-chat-btn__icon{font-size:15px;line-height:1}.mode-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--line-strong);border-radius:999px}.mode-toggle__option{border:none;background:transparent;color:var(--ink-soft);padding:6px 13px;border-radius:999px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s ease,color .2s ease}.mode-toggle__option:hover:not(:disabled):not(.is-active){color:var(--ink)}.mode-toggle__option.is-active{background:var(--accent);color:#0b0f1e}.mode-toggle__option:disabled{opacity:.4;cursor:not-allowed}.avatar-orb{position:relative;width:30px;height:30px;flex:none;border-radius:50%;background:conic-gradient(from 0deg,var(--grad-a),var(--grad-b),var(--grad-c),var(--grad-a));animation:orb-spin 6s linear infinite;box-shadow:0 0 16px #6f7bf759}.avatar-orb:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:var(--bg-1)}.avatar-orb__core{position:absolute;top:8px;right:8px;bottom:8px;left:8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0%,var(--grad-b) 45%,var(--grad-a) 100%);filter:blur(.2px)}.avatar-orb--pulsing{animation:orb-spin 2.2s linear infinite,orb-pulse 1.6s ease-in-out infinite}@keyframes orb-spin{to{transform:rotate(360deg)}}@keyframes orb-pulse{0%,to{box-shadow:0 0 10px #6f7bf74d}50%{box-shadow:0 0 26px #35c9d88c}}.chat-viewport{position:relative;z-index:1;flex:1;overflow-y:auto;display:flex;flex-direction:column;scroll-behavior:smooth}.chat-viewport::-webkit-scrollbar{width:8px}.chat-viewport::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px}.welcome{margin:auto;max-width:640px;width:100%;padding:40px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;animation:rise-in .7s cubic-bezier(.16,1,.3,1)}.welcome__orb{transform:scale(2.2);margin-bottom:34px}.welcome__title{font-family:var(--font-display);font-size:clamp(28px,5vw,42px);font-weight:700;margin:0 0 14px;letter-spacing:-.01em}.welcome__title-gradient{background:linear-gradient(100deg,var(--grad-a) 0%,var(--grad-b) 45%,var(--grad-c) 90%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradient-flow 8s ease-in-out infinite}@keyframes gradient-flow{0%,to{background-position:0% center}50%{background-position:100% center}}.welcome__subtitle{color:var(--ink-soft);font-size:15.5px;line-height:1.6;max-width:460px;margin:0 0 34px}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%}.quick-action{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font-size:14px;font-weight:500;text-align:left;cursor:pointer;opacity:0;animation:rise-in .5s cubic-bezier(.16,1,.3,1) forwards;transition:background .2s ease,border-color .2s ease,transform .2s ease}.quick-action:nth-child(1){animation-delay:.08s}.quick-action:nth-child(2){animation-delay:.16s}.quick-action:nth-child(3){animation-delay:.24s}.quick-action:nth-child(4){animation-delay:.32s}.quick-action:hover{background:var(--surface-raised);border-color:var(--accent);transform:translateY(-2px)}.quick-action__icon{display:flex;align-items:center;justify-content:center;color:var(--grad-b);flex:none}.thread{max-width:760px;width:100%;margin:0 auto;padding:28px 24px 20px;display:flex;flex-direction:column;gap:22px}.message{display:flex;align-items:flex-start;gap:12px;animation:rise-in .35s cubic-bezier(.16,1,.3,1)}.message--user{justify-content:flex-end}.bubble{font-size:15px;line-height:1.65;white-space:pre-wrap;word-break:break-word}.bubble--user{background:linear-gradient(155deg,#2a3363,#1c2244);border:1px solid var(--line-strong);padding:12px 16px;border-radius:20px 20px 4px;max-width:72%;color:var(--ink)}.bubble--assistant{background:var(--surface);border:1px solid var(--line);padding:12px 16px;border-radius:4px 20px 20px;max-width:78%;margin-top:3px}.bubble--typing{display:flex;align-items:center;gap:5px;padding:16px 18px}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-soft);animation:bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}.stream-cursor{display:inline-block;width:2px;height:14px;margin-left:2px;vertical-align:-2px;background:var(--grad-b);animation:blink .9s step-start infinite}@keyframes blink{50%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.error-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#f0645a14;border:1px solid rgba(240,100,90,.32);color:#ffd9d4;padding:12px 16px;border-radius:var(--radius-sm);font-size:13.5px;animation:rise-in .3s ease}.error-banner__icon{display:flex;align-items:center;flex:none;color:#ffb3ab}.error-banner__text{flex:1;min-width:180px}.error-banner__actions{display:flex;gap:8px}.error-banner__retry,.error-banner__dismiss{border:none;border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.error-banner__retry{background:#f0645a;color:#2a0a08}.error-banner__dismiss{background:transparent;color:#ffd9d4;border:1px solid rgba(255,217,212,.35)}.error-banner__retry:hover,.error-banner__dismiss:hover{transform:translateY(-1px)}.composer{position:relative;z-index:2;padding:14px 24px 20px}.composer__shell{max-width:760px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;background:var(--bg-2);border:1px solid var(--line-strong);border-radius:var(--radius-lg);padding:8px 8px 8px 20px;transition:border-color .25s ease,box-shadow .25s ease}.composer__shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px #7c86ff24,0 0 24px #35c9d81f}.composer__input{flex:1;resize:none;border:none;outline:none;background:transparent;color:var(--ink);font-size:15px;line-height:1.5;padding:8px 0;max-height:160px}.composer__input::placeholder{color:var(--ink-faint)}.composer__btn{flex:none;width:40px;height:40px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,opacity .2s ease,box-shadow .2s ease}.composer__btn--send{background:linear-gradient(135deg,var(--grad-a),var(--grad-b));color:#0a0d1a}.composer__btn--send:disabled{opacity:.3;cursor:default}.composer__btn--send:not(:disabled):hover{transform:scale(1.06);box-shadow:0 0 18px #6f7bf780}.composer__btn--stop{background:var(--surface-raised);border:1px solid var(--line-strong)}.composer__btn--stop:hover{border-color:var(--grad-c)}.stop-icon{width:12px;height:12px;background:var(--grad-c);border-radius:3px}.composer__hint{max-width:760px;margin:10px auto 0;text-align:center;font-size:11.5px;color:var(--ink-faint)}@media(max-width:560px){.app-header{padding:14px 16px}.header-link{display:none}.mode-toggle__option{padding:6px 10px;font-size:12px}.app-header__actions{gap:8px}.quick-actions{grid-template-columns:1fr}.thread{padding:20px 14px 14px}.bubble--user,.bubble--assistant{max-width:88%}.composer{padding:10px 12px 16px}}
