@font-face{font-family:"Manrope";src:url("/fonts/manrope-latin-wght.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
:root{color-scheme:light dark;
--paper:oklch(97.6% 0.009 85);--surface:oklch(99.3% 0.004 85);--ink:oklch(24% 0.02 250);--muted:oklch(44% 0.018 250);--line:oklch(88% 0.012 85);
--accent:oklch(42% 0.065 190);--accent-hover:oklch(36% 0.06 190);--accent-ink:oklch(98% 0.006 85);--bubble:#fff;--bubble-ink:oklch(24% 0.02 250);--focus:oklch(48% 0.12 250);--err:#b3261e;
--font:"Manrope",ui-sans-serif,system-ui,sans-serif}
@media(prefers-color-scheme:dark){:root{--paper:oklch(24% 0.035 235);--surface:oklch(29% 0.04 230);--line:oklch(37% 0.035 230);--ink:oklch(94% 0.008 85);--muted:oklch(76% 0.012 85);
--accent:oklch(80% 0.075 185);--accent-hover:oklch(86% 0.06 185);--accent-ink:#181818;--bubble:oklch(40% 0.085 185);--bubble-ink:#fff;--focus:oklch(82% 0.1 250);--err:#ff9e96}}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font:400 1rem/1.6 var(--font);background:var(--paper);color:var(--ink);overflow-x:clip}
a{color:var(--accent);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:6px}
.wrap{max-width:42rem;margin:0 auto;padding:0 1rem}
.btn{display:inline-block;font:inherit;font-weight:700;text-decoration:none;border:2px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:.7rem 1.4rem;cursor:pointer}
.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}
.btn.alt{background:transparent;color:var(--accent)}
.btn.alt:hover{background:transparent;color:var(--accent-hover)}
.land{min-height:100vh;display:flex;align-items:center}
.land h1{font-size:2rem;line-height:1.15;margin:0 0 .5rem;letter-spacing:-.02em}
.land p{color:var(--muted)}
.row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}
.note{border:1px solid var(--err);color:var(--err);border-radius:12px;padding:.6rem .9rem;margin:1rem 0}
.note[hidden]{display:none}
/* chat */
body.chat{height:100vh;display:flex;flex-direction:column}
header{padding:.8rem 0;border-bottom:1px solid var(--line);background:var(--surface)}
header .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem}
h1.t{font-size:1.15rem;margin:0;font-weight:800}
.sub{margin:.15rem 0 0;color:var(--muted);font-size:.85rem}
header form{margin:0}
.link{font:inherit;font-size:.85rem;background:none;border:0;color:var(--accent);cursor:pointer;text-decoration:underline;padding:.25rem}
main{flex:1;overflow-y:auto;padding:1rem 0}
.msg{display:flex;flex-direction:column;margin:0 0 .9rem}
.msg.user{align-items:flex-end}.msg.bot{align-items:flex-start}
.bubble{padding:.6rem .9rem;border-radius:16px;max-width:90%;white-space:pre-wrap;overflow-wrap:anywhere}
.user .bubble{background:var(--accent);color:var(--accent-ink)}
.bot .bubble{background:var(--bubble);color:var(--bubble-ink);border:1px solid var(--line)}
.err .bubble{border-color:var(--err);color:var(--err);background:transparent}
.meta{font-size:.82rem;color:var(--muted);margin-top:.35rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.meta a.src{display:inline-block;min-width:1.7rem;text-align:center;border:1px solid var(--accent);border-radius:999px;padding:.05rem .55rem;font-weight:700;text-decoration:none}
.meta a.src:hover{background:var(--accent);color:var(--accent-ink)}
.tag{border:1px solid var(--line);border-radius:6px;padding:0 .4rem}
footer{border-top:1px solid var(--line);background:var(--surface);padding:.7rem 0 .9rem}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.7rem}.chips[hidden]{display:none}
.chip{font:inherit;font-size:.85rem;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:999px;padding:.35rem .8rem;cursor:pointer;text-align:left}
.chip:hover{border-color:var(--accent)}
form.ask{display:flex;gap:.5rem;align-items:flex-end;margin:0}
textarea{flex:1;font:inherit;resize:none;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:12px;padding:.6rem .75rem;min-width:0;max-height:140px}
button.send{font:inherit;font-weight:700;border:0;background:var(--accent);color:var(--accent-ink);border-radius:12px;padding:.65rem 1.1rem;cursor:pointer}
button:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}
.think{color:var(--muted);font-size:.85rem;min-height:1.3em;margin-top:.4rem}
.label{color:var(--muted);font-size:.78rem;margin:.4rem 0 0}
@media(prefers-reduced-motion:no-preference){.think.on{animation:p 1.2s ease-in-out infinite}@keyframes p{50%{opacity:.4}}}
