@import "https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-ink:#12233d;--color-paper:#faf8f4;--color-paper-raised:#fff;--color-teal:#2a7f72;--color-teal-soft:#e4efec;--color-amber:#c77d2e;--color-amber-soft:#f7ebda;--color-slate:#5b6472;--color-text:#1a1d23;--color-border:#e3ded2;--font-display:"Source Serif 4", Georgia, serif;--font-body:"Inter", -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);background:var(--color-paper);color:var(--color-text);-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--color-teal);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.gate{background:var(--color-ink);background-image:radial-gradient(circle at 20% 20%, #1b3357 0%, var(--color-ink) 60%);justify-content:center;align-items:center;height:100%;display:flex;position:relative;overflow:hidden}.gate:before{content:"";background:radial-gradient(circle,#2a7f722e 0%,#0000 70%);border-radius:50%;width:600px;height:600px;animation:18s ease-in-out infinite driftSlow;position:absolute;top:-200px;right:-150px}@keyframes driftSlow{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-30px,40px)scale(1.08)}}.gate-card{background:var(--color-paper-raised);border-radius:var(--radius-lg);width:min(360px,90vw);padding:2.5rem 2.25rem;animation:.5s cubic-bezier(.16,1,.3,1) gateRise;position:relative;box-shadow:0 24px 60px #00000059}@keyframes gateRise{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.gate-eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--color-teal);margin:0 0 .5rem;font-size:.7rem}.gate-title{font-family:var(--font-display);color:var(--color-ink);margin:0 0 .4rem;font-size:1.5rem}.gate-sub{color:var(--color-slate);margin:0 0 1.25rem;font-size:.875rem}.gate-card input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:.95rem;font-family:var(--font-body);margin-bottom:.75rem;padding:.75rem .9rem;transition:border-color .18s,box-shadow .18s}.gate-card input:focus{border-color:var(--color-teal);box-shadow:0 0 0 3px var(--color-teal-soft);outline:none}.gate-error{color:#b3432c;margin:-.4rem 0 .75rem;font-size:.8rem;animation:.35s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.gate-card button{background:var(--color-ink);color:#fff;border-radius:var(--radius-sm);border:none;width:100%;padding:.75rem;font-size:.95rem;font-weight:600;transition:background .18s,transform .12s}.gate-card button:hover:not(:disabled){background:#0d1a2e;transform:translateY(-1px)}.gate-card button:active:not(:disabled){transform:translateY(0)}.gate-card button:disabled{opacity:.6;cursor:not-allowed}.app-shell{grid-template-columns:260px 1fr;height:100vh;animation:.4s appFadeIn;display:grid}@keyframes appFadeIn{0%{opacity:0}to{opacity:1}}@media (width<=720px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}}.sidebar{background:var(--color-ink);color:#fff;flex-direction:column;padding:1.5rem 1.25rem;display:flex}.brand{align-items:center;gap:.75rem;margin-bottom:1.75rem;display:flex}.brand-mark{font-family:var(--font-mono);background:var(--color-teal);color:#fff;border-radius:var(--radius-sm);letter-spacing:.05em;padding:.35rem .5rem;font-size:.7rem;font-weight:600}.brand-name{font-family:var(--font-display);margin:0;font-size:1rem}.brand-sub{color:#9fb0c7;margin:.1rem 0 0;font-size:.72rem}.new-chat-btn{color:#fff;border-radius:var(--radius-sm);text-align:left;background:#ffffff14;border:1px solid #ffffff26;padding:.65rem .9rem;font-size:.85rem;transition:background .18s,border-color .18s,transform .12s}.new-chat-btn:hover{background:#ffffff26;border-color:#ffffff4d;transform:translate(2px)}.new-chat-btn:active{transform:translate(0)scale(.98)}.sidebar-footer{color:#7e91ab;border-top:1px solid #ffffff1a;margin-top:auto;padding-top:1rem;font-size:.75rem;line-height:1.5}.chat-main{flex-direction:column;height:100vh;display:flex;overflow:hidden}.chat-scroll{overflow-anchor:none;scroll-behavior:smooth;flex:1;width:100%;max-width:760px;margin:0 auto;padding:2rem 2rem 1rem;overflow-y:auto}.chat-scroll::-webkit-scrollbar{width:8px}.chat-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.chat-scroll::-webkit-scrollbar-thumb:hover{background:#cfc8b8}.empty-state{padding-top:8vh;animation:.5s cubic-bezier(.16,1,.3,1) emptyEnter}@keyframes emptyEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-eyebrow{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--color-teal);margin:0 0 .5rem;font-size:.7rem}.empty-title{font-family:var(--font-display);color:var(--color-ink);margin:0 0 1.75rem;font-size:1.9rem;font-weight:500}.suggested-grid{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}@media (width<=560px){.suggested-grid{grid-template-columns:1fr}}.suggested-card{background:var(--color-paper-raised);border:1px solid var(--color-border);border-left:3px solid var(--color-teal);border-radius:var(--radius-sm);text-align:left;color:var(--color-text);opacity:0;padding:.8rem 1rem;font-size:.88rem;transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s,border-left-width .16s,background .16s;animation:.4s cubic-bezier(.16,1,.3,1) forwards cardEnter}.suggested-card:first-child{animation-delay:30ms}.suggested-card:nth-child(2){animation-delay:80ms}.suggested-card:nth-child(3){animation-delay:.13s}.suggested-card:nth-child(4){animation-delay:.18s}.suggested-card:nth-child(5){animation-delay:.23s}.suggested-card:nth-child(6){animation-delay:.28s}@keyframes cardEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.suggested-card:hover{background:#fffdf9;border-left-width:5px;transform:translateY(-2px);box-shadow:0 8px 20px #12233d1a}.suggested-card:active{transform:translateY(-1px)}.message-row{gap:.75rem;margin-bottom:1.5rem;animation:.35s cubic-bezier(.16,1,.3,1) messageEnter;display:flex}@keyframes messageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-avatar{width:32px;height:32px;font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:600;transition:transform .2s;display:flex}.from-user .message-avatar{background:var(--color-teal-soft);color:var(--color-teal)}.from-assistant .message-avatar{background:var(--color-ink);color:#fff}.message-body{flex:1;min-width:0}.message-bubble{font-family:var(--font-display);color:var(--color-text);font-size:.98rem;line-height:1.6}.from-user .message-bubble{font-family:var(--font-body);font-weight:500}.message-bubble p{margin:0 0 .75rem}.message-bubble p:last-child{margin-bottom:0}.message-bubble ul,.message-bubble ol{margin:0 0 .75rem;padding-left:1.25rem}.streaming-cursor{background:var(--color-teal);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:.9s step-start infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.typing-dots{gap:4px;padding:.3rem 0;display:inline-flex}.typing-dots span{background:var(--color-slate);opacity:.5;border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite typingBounce}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}.source-chips{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.chip{font-family:var(--font-mono);background:var(--color-amber-soft);color:var(--color-amber);border-top:2px solid var(--color-amber);opacity:0;border-radius:0 0 6px 6px;padding:.3rem .55rem;font-size:.68rem;transition:transform .15s;animation:.3s forwards chipEnter;position:relative}.chip:hover{transform:translateY(1px)}@keyframes chipEnter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.guided-panel{background:var(--color-teal-soft);border-radius:var(--radius-md);margin:1rem 0;padding:1rem 1.1rem;animation:.4s cubic-bezier(.16,1,.3,1) guidedEnter}@keyframes guidedEnter{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.guided-prompt{color:var(--color-ink);margin:0 0 .6rem;font-size:.85rem;font-weight:600}.guided-options{flex-wrap:wrap;gap:.5rem;display:flex}.guided-chip{border:1px solid var(--color-teal);color:var(--color-teal);background:#fff;border-radius:999px;padding:.45rem .9rem;font-size:.8rem;font-weight:500;transition:background .16s,color .16s,transform .12s,box-shadow .16s}.guided-chip:hover{background:var(--color-teal);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #2a7f7240}.guided-chip:active{transform:translateY(0)}.composer{border-top:1px solid var(--color-border);gap:.6rem;width:100%;max-width:760px;margin:0 auto;padding:1rem 2rem 1.5rem;display:flex}.composer input{border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.92rem;font-family:var(--font-body);background:var(--color-paper-raised);flex:1;padding:.8rem 1rem;transition:border-color .18s,box-shadow .18s}.composer input:focus{border-color:var(--color-teal);box-shadow:0 0 0 3px var(--color-teal-soft);outline:none}.composer input:disabled{opacity:.6}.composer button{background:var(--color-ink);color:#fff;border-radius:var(--radius-md);border:none;align-items:center;gap:.4rem;padding:.8rem 1.4rem;font-size:.88rem;font-weight:600;transition:background .18s,opacity .18s,transform .12s;display:inline-flex}.composer button:hover:not(:disabled){background:#0d1a2e;transform:translateY(-1px)}.composer button:active:not(:disabled){transform:translateY(0)}.composer button:disabled{opacity:.4;cursor:not-allowed}.send-icon{width:15px;height:15px;transition:transform .18s}.composer button:hover:not(:disabled) .send-icon{transform:translate(2px)}
