:root{--bg:#0b0d10;--panel:#141821;--line:#232a36;--fg:#d6dbe4;--dim:#7d8799;--acc:#5ee1c1}
*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--fg);font:16px/1.5 ui-sans-serif,system-ui,sans-serif}
header{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line)}
.brand{color:var(--acc);text-decoration:none;font-weight:700;font-family:ui-monospace,monospace}.brand span{color:var(--dim);font-weight:400}
nav a{color:var(--dim);text-decoration:none;margin-left:14px}nav a:hover{color:var(--fg)}
@media (max-width:480px){.brand{font-size:14px}nav a{margin-left:10px}}
code{word-break:break-all}
main{max-width:980px;width:100%;margin:0 auto;padding:40px 22px;flex:1}.hero h1{font-size:34px;line-height:1.15;margin:0 0 14px}.narrow{max-width:520px}
.early{color:var(--acc)}.dim{color:var(--dim)}.grid{margin-top:40px;border:1px dashed var(--line);border-radius:8px;padding:30px;text-align:center}
input{width:100%;background:#0f1218;border:1px solid var(--line);color:var(--fg);padding:12px;border-radius:6px;font-size:16px;margin:10px 0}
button{background:var(--acc);color:#04120e;border:0;padding:11px 18px;border-radius:6px;font-weight:700;cursor:pointer;font-size:15px}
a.primary{display:inline-block;background:var(--acc);color:#04120e;padding:10px 16px;border-radius:6px;font-weight:700;text-decoration:none}
footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:20px 22px;border-top:1px solid var(--line);color:var(--dim);font-size:13px}
textarea{width:100%;background:#0f1218;border:1px solid var(--line);color:var(--fg);padding:12px;border-radius:6px;font-size:15px;margin:10px 0;min-height:52px;font-family:inherit}
.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}button.primary{background:var(--acc)}button:not(.primary){background:#1c2230;color:var(--fg);border:1px solid var(--line)}
.chatlog{border:1px solid var(--line);border-radius:8px;padding:12px;min-height:200px;max-height:50vh;overflow:auto;margin:14px 0}.m{padding:8px 10px;border-radius:6px;margin:6px 0;white-space:pre-wrap}.m.user{background:#1c2230}.m.char{background:#12241f}.m.sys{color:var(--dim);font-size:13px}
.trait{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:10px;margin:8px 0}.trait .k{font-size:11px;color:var(--acc);text-transform:uppercase}.trait .c{white-space:pre-wrap;color:#b9c1cf;margin-top:4px}
