: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)}@media (width<=420px){header.top nav{gap:8px}}@media (width<=370px){header.top{font-size:12px}}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{border:1px solid var(--line);background:#02040adb;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);border:1px solid var(--accent);cursor:pointer;white-space:nowrap;opacity:.8;padding:4px 8px;animation:2.6s ease-in-out 3 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}}.bottle-tag{z-index:12;min-width:32px;min-height:32px;font:12px var(--mono);color:var(--accent);white-space:nowrap;opacity:.5;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 8px;text-decoration:none;transition:opacity .2s,background-color .2s,border-color .2s,margin .25s;display:inline-flex;position:fixed}.bottle-tag[hidden]{display:none}.bt-mark{font-size:14px;line-height:1}.bt-label{opacity:0;max-width:0;transition:max-width .25s,opacity .2s,margin .25s;overflow:hidden}.bottle-tag:hover,.bottle-tag.hot,.bottle-tag:focus-visible,.bottle-tag.peek{opacity:1;margin-left:var(--shift,0px);background:var(--glass);border-color:var(--accent)}.bottle-tag:hover .bt-label,.bottle-tag.hot .bt-label,.bottle-tag:focus-visible .bt-label,.bottle-tag.peek .bt-label{opacity:1;max-width:40ch;margin-left:6px}.bottle-tag:hover,.bottle-tag.hot{color:var(--bg);background:var(--accent)}.bottle-tag:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.bottle-tag.peek .bt-mark{animation:1.1s ease-in-out 3 bottle-pulse}@keyframes bottle-pulse{50%{opacity:.35}}.chat{z-index:30;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));border:1px solid var(--accent);opacity:0;visibility:hidden;pointer-events:none;background:#02040af0;flex-direction:column;width:min(420px,100vw - 32px);height:min(560px,100svh - 32px);transition:opacity .2s,transform .2s,visibility 0s linear .2s;display:flex;position:fixed;transform:translateY(12px)}.chat.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:none}.chat header{color:var(--accent);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.chat header span:before{content:"┤ ";color:var(--ink-dim)}.chat header span:after{content:" ├";color:var(--ink-dim)}.chat header.flicker span{animation:.18s step-end flick}@keyframes flick{0%{opacity:.2}30%{opacity:1}50%{opacity:.4}70%{opacity:1}}.rule{white-space:nowrap;color:#dbe7ff47;-webkit-user-select:none;user-select:none;flex:none;height:1em;font-size:13px;line-height:1;overflow:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chat.booting{animation:.2s linear both scan}@keyframes scan{0%{clip-path:inset(0 100% 98% 0)}50%{clip-path:inset(0 0 98%)}to{clip-path:inset(0)}}.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}}.msg.typing:after{content:"▌";color:var(--accent);animation:.9s step-end infinite caret}@keyframes caret{50%{opacity:0}}.chips{flex-wrap:wrap;gap:8px;padding:0 14px 12px;display:flex}.chips button{font:12px var(--mono);color:var(--ink-dim);cursor:pointer;text-align:left;background:0 0;border:0;padding:3px 0}.chips button:before{content:"[ "}.chips button:after{content:" ]"}.chips button:hover,.chips button:focus-visible{color:var(--bg);background:var(--accent);outline:none}.chat form{align-items:center;gap:8px;padding:8px 12px 10px;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}
