:root{--bg:#120e1f;--ink:#efeaff;--dim:#a79fc4;--lamp:#ffb454;--line:#2d2547;--card:#1b1530}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.6 Instrument Sans,system-ui,sans-serif}.shell{max-width:760px;margin:0 auto;padding:0 20px 60px}header{display:flex;justify-content:space-between;align-items:center;padding:18px 0}.logo{font:700 1.3rem Fraunces,serif;letter-spacing:.04em}.hero{position:relative;padding:48px 0 28px;text-align:center}.hero h1{position:relative;font:700 clamp(2.2rem,8vw,4rem)/1.05 Fraunces,serif;margin:0}.rings{position:absolute;left:50%;top:50%;width:min(520px,120%);transform:translate(-50%,-50%);fill:none;stroke:var(--lamp);stroke-width:1;opacity:.35}.rings circle{animation:pulse 4s ease-in-out infinite;transform-origin:center}@keyframes pulse{50%{opacity:.25;transform:scale(1.04)}}input{width:100%;padding:14px 16px;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:12px}input:focus,button:focus-visible{outline:2px solid var(--lamp);outline-offset:2px}button{font:600 1rem inherit;font-family:inherit;padding:14px 22px;border:0;border-radius:12px;background:var(--lamp);color:#1a1020;cursor:pointer}button:disabled{opacity:.6}.link{background:none;color:var(--dim);padding:8px 0;text-decoration:underline}.auth,.ask{position:relative;display:grid;gap:12px;max-width:420px;margin:0 auto}.ask{max-width:none}.ask label{font:500 1.4rem Fraunces,serif;text-align:center}.auth h2{font:500 1.5rem Fraunces,serif;margin:0;text-align:center}.row{display:flex;gap:10px}.note{color:var(--lamp);margin:0}.box{border:1px solid var(--line);padding:14px;border-radius:12px}code{background:var(--card);padding:2px 6px;border-radius:6px}.hi{text-align:center;color:var(--dim);font-size:.9rem}.shelf{display:grid;gap:14px;margin-top:40px}.shelf>div{border-left:2px solid var(--lamp);padding:2px 0 2px 16px}.shelf h3{margin:0;font:500 1.15rem Fraunces,serif}.shelf p{margin:4px 0 0;color:var(--dim)}@media (min-width:700px){.shelf{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:reduce){.rings circle{animation:none}}.chat{display:grid;gap:14px;padding-top:8px}.box{border:1px solid var(--line);padding:14px;border-radius:12px;display:grid;gap:10px}.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}.msgs{display:grid;gap:12px}.m{white-space:pre-wrap;padding:12px 14px;border-radius:12px;max-width:92%}.m.user{background:var(--card);justify-self:end;border:1px solid var(--line)}.m.assistant{border-left:2px solid var(--lamp);border-radius:0 12px 12px 0}.acts{display:flex;flex-wrap:wrap;gap:8px}.acts button{padding:8px 12px;font-size:.9rem}.bar{height:8px;background:var(--card);border-radius:8px;overflow:hidden}.bar i{display:block;height:100%;background:var(--lamp)}nav{display:flex;gap:14px;flex-wrap:wrap}nav .cur{color:var(--lamp)}.h2{font:500 1.6rem Fraunces,serif;margin:0}.graph{width:100%;aspect-ratio:4/3;background:var(--card);border:1px solid var(--line);border-radius:12px;touch-action:none;cursor:grab}.edge{stroke:var(--line);stroke-width:1.5}.edge.on{stroke:var(--lamp)}.node{cursor:pointer}.node circle{fill:var(--dim)}.node circle.sel{fill:var(--lamp)}.node text{fill:var(--ink);font-size:11px}.brain{display:grid;gap:12px}select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;flex:1;min-width:0}.opts{gap:8px}.caret{display:inline-block;width:7px;height:1em;background:var(--lamp);margin-left:2px;vertical-align:text-bottom;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}.m{will-change:contents;overflow-wrap:anywhere}.menu{position:relative;flex:1;min-width:0}.mbtn{width:100%;display:grid;grid-template-columns:1fr auto;text-align:left;padding:8px 12px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;gap:0 6px;font-weight:500}.mbtn small{grid-column:1/3;color:var(--dim);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.mbtn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mbtn i{color:var(--lamp);font-style:normal}.mlist{position:absolute;z-index:20;left:0;min-width:100%;top:calc(100% + 6px);margin:0;padding:6px;list-style:none;background:#1f1838;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 32px #000a;max-height:50vh;overflow:auto}.mlist button{width:100%;text-align:left;background:none;color:var(--ink);padding:10px 12px;border-radius:9px;font-weight:500;white-space:nowrap}.mlist button.on{background:var(--line);color:var(--lamp)}.mlist em{color:var(--dim);font-size:.8em}header{position:relative;z-index:5}.rings{pointer-events:none}.hero{overflow:hidden}.hero h1{pointer-events:none}.soil{fill:#2a1d3d}.hole{fill:#0a0714;animation:grow 1.6s ease-in-out infinite;transform-origin:80px 52px}@keyframes grow{50%{transform:scaleX(1.25)}}.bunny{animation:dig .5s ease-in-out infinite;transform-origin:80px 50px}@keyframes dig{50%{transform:translateY(3px) rotate(-6deg)}}.dirt{fill:#7a5a3a;opacity:0;animation:fling .9s ease-out infinite}@keyframes fling{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx),-34px)}}.dig{display:grid;justify-items:center;gap:2px;color:var(--dim)}.m{animation:rise .35s ease both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.mlist{animation:rise .2s ease both}button{transition:transform .15s,opacity .15s}button:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.m,.mlist,.bunny,.hole,.dirt{animation:none}}
