:root{--bg:#02040a;--ink:#dbe7ff;--ink-dim:#8796b8;--accent:#ffb454;--line:#dbe7ff29;--glass:#02040ab8;--mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.65 var(--mono);-webkit-font-smoothing:antialiased;overflow-x:hidden}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.accent{color:var(--accent)}.dim{color:var(--ink-dim)}#scene{opacity:0;width:100%;height:100%;transition:opacity .6s;position:fixed;inset:0}#scene.ready{opacity:1}header.top{z-index:10;padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top));pointer-events:none;justify-content:space-between;align-items:center;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0}header.top>*{pointer-events:auto}header.top nav{gap:18px;display:flex}header.top a{color:var(--ink-dim);text-decoration:none}header.top a:before{content:"[";color:var(--line)}header.top a:after{content:"]";color:var(--line)}header.top a:hover{color:var(--accent)}main{pointer-events:none;max-width:760px;margin:0 auto;padding:0 16px 140px;position:relative}main>*{pointer-events:auto}.hero{pointer-events:none;height:100svh}.panel{background:var(--glass);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);margin:0 0 22px;padding:22px;position:relative}.panel:before,.panel:after{content:"+";color:var(--accent);line-height:1;position:absolute}.panel:before{top:-8px;left:-5px}.panel:after{bottom:-8px;right:-5px}h2{font:500 18px/1.2 var(--mono);margin:0 0 14px}.panel p{color:var(--ink-dim);margin:0 0 10px}.todo{color:var(--ink-dim);opacity:.7}code{color:var(--accent)}.facts{margin:0;padding:0;list-style:none}.facts li{border-top:1px dashed var(--line);color:var(--ink-dim);padding:12px 0}.facts li:first-child{border-top:0;padding-top:0}.facts span{color:var(--accent);margin-bottom:2px;display:block}.facts span:before{content:"$ ";color:var(--ink-dim)}footer{color:var(--ink-dim);opacity:.7;text-align:center;padding-top:20px;font-size:12px}.castaway-tag{z-index:12;font:12px var(--mono);color:var(--accent);background:var(--glass);-webkit-backdrop-filter:blur(4px);border:1px solid var(--accent);cursor:pointer;white-space:nowrap;opacity:.8;padding:4px 8px;animation:2.6s ease-in-out infinite tag-breathe;position:fixed}.castaway-tag[hidden]{display:none}.castaway-tag:hover,.castaway-tag.hot{opacity:1;color:var(--bg);background:var(--accent);animation:none}@keyframes tag-breathe{50%{opacity:.45}}.chat{z-index:30;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);border:1px solid var(--accent);opacity:0;pointer-events:none;background:#02040ae6;flex-direction:column;width:min(420px,100vw - 32px);height:min(560px,100svh - 32px);transition:opacity .2s,transform .2s;display:flex;position:fixed;transform:translateY(12px)}.chat.open{opacity:1;pointer-events:auto;transform:none}.chat header{border-bottom:1px solid var(--line);color:var(--accent);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.chat-close{color:var(--ink-dim);font:13px var(--mono);cursor:pointer;background:0 0;border:0}.chat-close:hover{color:var(--accent)}.chat-log{flex-direction:column;flex:1;gap:12px;padding:14px;font-size:14px;display:flex;overflow-y:auto}.msg{white-space:pre-wrap;word-wrap:break-word}.msg.user{color:var(--accent)}.msg.user:before{content:"> "}.msg.assistant{color:var(--ink)}.msg.error{color:#ff8f8f}.msg.pending:after{content:"he's thinking. the rain picks up…";color:var(--ink-dim);animation:1.4s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.35}}.chips{flex-wrap:wrap;gap:8px;padding:0 14px 12px;display:flex}.chips button{font:12px var(--mono);color:var(--ink-dim);border:1px dashed var(--line);cursor:pointer;text-align:left;background:0 0;padding:6px 10px}.chips button:hover{color:var(--accent);border-color:var(--accent)}.chat form{border-top:1px solid var(--line);align-items:center;gap:8px;padding:10px 12px;display:flex}.chat textarea{resize:none;font:16px var(--mono);color:var(--ink);background:0 0;border:0;flex:1;padding:6px 0}.chat textarea:focus{outline:none}.chat form button{border:1px solid var(--line);color:var(--accent);font:16px var(--mono);cursor:pointer;background:0 0;padding:4px 10px}.chat form button:disabled{opacity:.4}@media (width<=560px){.chat{width:100vw;height:82svh;padding-bottom:env(safe-area-inset-bottom);border-width:1px 0 0;bottom:0;right:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.train{left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:15;font:12px/1.35 var(--mono);color:var(--ink-dim);border:1px solid var(--line);white-space:pre;pointer-events:none;background:#02040abf;margin:0;padding:10px 12px;transition:opacity .8s;position:fixed}.train.gone{opacity:0}
