:root{--bg:#fff;--text:#1a1a1a;--muted:#5f6b76;--accent:#0f2e46;--accent-hover:#164060;--bubble-assistant:#f1f3f5;--bubble-user:#0f2e46;--bubble-user-text:#fff;--border:#e4e7eb;--error:#b42318;--radius:14px;--maxw:760px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100dvh;max-width:var(--maxw);margin:0 auto;padding:0 16px}.gate{padding:24px 0 64px}.gate-card{width:100%;max-width:560px;margin:0 auto}.headline{font-size:clamp(24px,5vw,34px);line-height:1.2;letter-spacing:-.02em;margin:0 0 20px;color:var(--text)}.subcopy{color:var(--muted);font-size:16px;margin:0 0 16px}.gate-form{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}.email-input{flex:1 1 240px;min-width:0;padding:14px 16px;font-size:16px;border:1px solid var(--border);border-radius:var(--radius);outline:none;color:var(--text);background:#fff}.email-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,46,70,.12)}.btn-primary{padding:14px 22px;font-size:16px;font-weight:600;color:#fff;background:var(--accent);border:none;border-radius:var(--radius);cursor:pointer;transition:background .15s ease}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:default}.error{color:var(--error);font-size:14px;margin:14px 0 0}.chat{flex:1 1;display:flex;flex-direction:column;min-height:0;padding-bottom:16px}.chat-subhead{font-weight:600;font-size:15px;color:var(--accent);padding:16px 4px 12px;border-bottom:1px solid var(--border)}.thread{flex:1 1;overflow-y:auto;padding:20px 2px;flex-direction:column;gap:12px}.bubble-row,.thread{display:flex}.bubble-row.user{justify-content:flex-end}.bubble-row.assistant{justify-content:flex-start}.bubble{max-width:80%;padding:12px 16px;border-radius:var(--radius);font-size:15.5px;white-space:pre-wrap;word-wrap:break-word}.bubble.assistant{background:var(--bubble-assistant);color:var(--text);border-bottom-left-radius:4px}.bubble.user{background:var(--bubble-user);color:var(--bubble-user-text);border-bottom-right-radius:4px}.typing{letter-spacing:2px;color:var(--muted)}.markdown{white-space:normal}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-weight:600;line-height:1.3;margin:16px 0 8px}.markdown h1{font-size:18px}.markdown h2{font-size:16.5px}.markdown h3,.markdown h4{font-size:15.5px}.markdown ol,.markdown ul{margin:0 0 10px;padding-left:22px}.markdown li{margin:3px 0}.markdown li>p{margin:0}.markdown strong{font-weight:600}.markdown a{color:var(--accent);text-decoration:underline}.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:rgba(15,46,70,.08);padding:1px 5px;border-radius:5px}.markdown pre{background:rgba(15,46,70,.06);padding:12px 14px;border-radius:8px;overflow-x:auto;margin:0 0 10px}.markdown pre code{background:none;padding:0}.markdown blockquote{margin:0 0 10px;padding:2px 0 2px 14px;border-left:3px solid var(--border);color:var(--muted)}.markdown hr{border:none;border-top:1px solid var(--border);margin:14px 0}.markdown table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:14px;margin:0 0 10px}.markdown td,.markdown th{border:1px solid var(--border);padding:6px 10px;text-align:left}.markdown th{background:rgba(15,46,70,.05);font-weight:600}.composer{display:flex;gap:10px;padding-top:12px;border-top:1px solid var(--border)}.composer-input{flex:1 1;min-width:0;padding:13px 16px;font-size:16px;border:1px solid var(--border);border-radius:var(--radius);outline:none;background:#fff;color:var(--text)}.composer-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,46,70,.12)}.send{flex:0 0 auto}.limit-note{margin-top:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bubble-assistant);color:var(--muted);font-size:15px;text-align:center}@media (max-width:480px){.bubble{max-width:88%}}