:root{--bg:#0a0a0b;--bg-elev:#131317;--bg-elev2:#1a1a1f;--fg:#e8e8eb;--fg-dim:#c5c5cb;--muted:#8a8a92;--border:#232327;--border-strong:#303036;--accent:#ffffff;--accent-fg:#0a0a0b;--user-bubble:#1f1f24;--tool-ok:#22c55e;--tool-err:#ef4444;--tool-pending:#8a8a92;--serif:"Iowan Old Style","Source Serif Pro",Palatino,Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Monaco,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}a.link{color:var(--fg);border-bottom:1px solid var(--border-strong);transition:border-color .12s ease}a.link:hover{border-color:var(--fg)}button{font-family:inherit}::selection{background:rgba(255,255,255,.18)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:4px}.prose{color:var(--fg);font-size:14px;line-height:1.65;overflow-wrap:break-word}.prose p{margin:0 0 12px}.prose p:last-child{margin-bottom:0}.prose strong{color:var(--accent);font-weight:600}.prose em{color:var(--fg-dim)}.prose code{background:var(--bg-elev2);padding:1px 5px;border-radius:4px}.prose code,.prose pre{font-family:var(--mono);font-size:12.5px}.prose pre{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px;overflow-x:auto;margin:12px 0}.prose pre code{background:transparent;padding:0;border-radius:0}.prose ol,.prose ul{margin:8px 0 12px;padding-left:22px}.prose li{margin:4px 0}.prose h1,.prose h2,.prose h3{margin:18px 0 8px;line-height:1.3;font-weight:600}.prose h1{font-size:18px}.prose h2{font-size:16px}.prose h3{font-size:14px}.prose a{color:var(--fg);border-bottom:1px solid var(--border-strong)}.prose a:hover{border-bottom-color:var(--fg)}.prose blockquote{border-left:2px solid var(--border-strong);margin:8px 0;padding:0 0 0 12px;color:var(--fg-dim)}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}