:root{--bg:#0c0f13;--panel:#141920;--panel-2:#1a2029;--border:#252e39;--text:#e5eaf0;--muted:#8794a3;--accent:#7aa2ff;--accent-ink:#0c1530;--ok:#46c08a;--warn:#eeb04e;--bad:#f0575c;--info:#5fb0ea;--radius:10px;--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#f5f6f8;--panel:#fff;--panel-2:#f0f2f5;--border:#dde2e8;--text:#18202a;--muted:#5d6977;--accent:#3461d9;--accent-ink:#fff;--ok:#18925c;--warn:#b7770d;--bad:#cf2f35;--info:#1f7ab8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:14px/1.5 var(--sans);margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2{margin:0;font-weight:600}h2{font-size:18px}main{max-width:1180px;margin:0 auto;padding:24px 16px 64px}.mono{font-family:var(--mono);font-size:13px}.muted{color:var(--muted)}.small{font-size:12px}.spacer{flex:1}.center{place-items:center;min-height:60vh;display:grid}.error{color:var(--bad)}.error-box{border:1px solid color-mix(in srgb, var(--bad) 50%, transparent);background:color-mix(in srgb, var(--bad) 12%, transparent);color:var(--text);border-radius:var(--radius);overflow-wrap:anywhere;padding:10px 12px}.stack{gap:10px;display:grid}.stack-lg{gap:22px;display:grid}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.section-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.empty{text-align:center;padding:28px}ul.plain{margin:0;padding-left:18px}button,.button{font:inherit;border:1px solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:7px 14px;text-decoration:none;display:inline-flex}button:hover,.button:hover{border-color:var(--muted);text-decoration:none}button:disabled{opacity:.6;cursor:default}.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.danger{border-color:color-mix(in srgb, var(--bad) 60%, transparent);color:var(--bad)}.ghost{background:0 0}button.small{padding:3px 10px;font-size:12px}.wide{width:100%}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px;width:100%;min-width:0;padding:7px 10px}textarea{resize:vertical}textarea.mono{font-family:var(--mono);font-size:13px}input:focus,select:focus,textarea:focus,button:focus-visible,.button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=checkbox]{width:auto}label{gap:4px;font-weight:500;display:grid}label .muted{font-weight:400}fieldset{border:1px solid var(--border);border-radius:8px;margin:0;padding:10px 12px}legend{padding:0 4px;font-weight:500}.row.wrap input{flex:180px;width:auto}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.span-2{grid-column:span 2}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);font-family:var(--mono);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:400;display:inline-flex}.check{align-items:flex-start;gap:8px;font-weight:400;display:flex}.check input{margin-top:3px}.toggle{color:var(--muted);align-items:center;gap:4px;font-size:12px;font-weight:400;display:inline-flex}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:0 0;border:0;border-radius:0;padding:4px 12px}.segmented button.on{background:var(--panel-2);color:var(--accent)}.topbar{border-bottom:1px solid var(--border);background:var(--panel);z-index:5;flex-wrap:wrap;align-items:center;gap:18px;padding:10px 16px;display:flex;position:sticky;top:0}.topbar nav{flex-wrap:wrap;gap:4px;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:4px 10px}.topbar nav a.active{color:var(--text);background:var(--panel-2)}.brand{letter-spacing:.02em;color:var(--text);align-items:center;gap:8px;font-weight:700;display:inline-flex}.brand.big{font-size:26px}.brand-mark{border:3px solid var(--accent);border-radius:50%;width:16px;height:16px;position:relative}.brand-mark:after{content:"";background:var(--accent);width:2px;height:5px;position:absolute;top:1px;left:50%;transform:translate(-50%)}.badge{border:1px solid var(--border);white-space:nowrap;--c:var(--muted);color:var(--c);border-radius:999px;align-items:center;gap:6px;padding:1px 8px;font-size:12px;display:inline-flex}.dot{background:var(--c);border-radius:50%;width:7px;height:7px}.s-queued,.s-provisioning,.s-starting{--c:var(--info)}.s-suspending{--c:var(--warn)}.s-suspended,.s-deleting{--c:var(--muted)}.s-running{--c:var(--accent)}.s-succeeded,.s-idle{--c:var(--ok)}.s-failed,.s-lost{--c:var(--bad)}.s-timed_out{--c:var(--warn)}.s-canceled{--c:var(--muted)}.s-running .dot,.s-provisioning .dot,.s-starting .dot,.s-suspending .dot{animation:1.4s ease-in-out infinite blink}@keyframes blink{50%{opacity:.25}}.slots{align-items:center;gap:5px;display:inline-flex}.slot{border:1px solid var(--border);border-radius:3px;width:12px;height:12px}.slot.on{background:var(--c,var(--muted));border-color:var(--c,var(--muted))}.tiles{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);--c:var(--muted);align-items:flex-start;gap:14px;padding:14px;display:flex}.tile:hover{border-color:var(--c);text-decoration:none}.tile.t-working{--c:var(--accent)}.tile.t-idle{--c:var(--ok)}.tile.t-starting{--c:var(--info)}.tile.t-suspending{--c:var(--warn)}.tile-ring{border:2px solid var(--c);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;display:grid;position:relative}.tile-ring span{background:var(--c);border-radius:50%;width:12px;height:12px}.tile-ring:after{content:"";border:2px solid var(--c);border-radius:50%;animation:2s ease-out infinite ripple;position:absolute;inset:-2px}.tile.t-starting .tile-ring:after{animation-duration:1s}.tile.t-idle .tile-ring:after{animation-duration:4s}@keyframes ripple{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}@media (prefers-reduced-motion:reduce){.tile-ring:after,.s-running .dot,.s-provisioning .dot{animation:none}}.tile-body{gap:4px;min-width:0;display:grid}.tile-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tile-stats{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hb{font-size:12px;font-family:var(--mono)}.hb-fresh{color:var(--ok)}.hb-stale{color:var(--warn)}.table-wrap{padding:0;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 14px}th{color:var(--muted);font-size:12px;font-weight:500}tbody tr:last-child td{border-bottom:0}tfoot th{color:var(--text);border-top:1px solid var(--border);border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.facts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px 18px;display:grid}.fact>div:last-child{overflow-wrap:anywhere}details>summary{cursor:pointer;font-weight:500}details[open]>summary{margin-bottom:10px}pre.code{background:var(--bg);border:1px solid var(--border);font-family:var(--mono);border-radius:8px;margin:0;padding:12px;font-size:13px;overflow-x:auto}.logs{padding:0;overflow:hidden}.logs-bar{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 14px;display:flex}.logs-body{background:var(--bg);height:min(62vh,640px);font-family:var(--mono);padding:10px 14px;font-size:12.5px;line-height:1.55;overflow:auto}.line{white-space:pre-wrap;overflow-wrap:anywhere}.l-stderr{color:var(--warn)}.l-system{color:var(--info)}.p-meta{color:var(--muted);font-style:italic}.p-text{font-family:var(--sans);margin:4px 0;font-size:13.5px}.p-tool{color:var(--accent)}.live-text{font-family:var(--sans);white-space:pre-wrap;margin:4px 0;font-size:13.5px}.live-text:after{content:"▍";color:var(--accent);animation:1s step-end infinite blink}.p-result{color:var(--muted)}.p-err{color:var(--bad)}.p-done{color:var(--ok);font-weight:600}.p-detail{color:var(--muted);font-weight:400}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{gap:16px;width:min(400px,100%);padding:28px;display:grid}.notice{border-color:var(--warn);gap:8px;display:grid}.token{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}@media (width<=640px){.form-grid{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:span 1}.hide-sm,.who{display:none}th,td{padding:8px 10px}}.warn-text{color:var(--warn)}.form-grid.inner{margin-top:12px;padding:0}form details>summary{cursor:pointer;font-weight:500}.transcript{gap:12px;display:grid}.turn{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:8px;min-width:0;padding:10px 14px;display:grid}.turn.boot{background:0 0;border-style:dashed}.turn.boot>summary{cursor:pointer}.turn-head{align-items:center;gap:10px;display:flex}.bubble{background:color-mix(in srgb, var(--accent) 14%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px 12px 12px 3px;justify-self:start;max-width:min(720px,100%);padding:8px 12px}pre.code.cmd{white-space:pre-wrap;overflow-wrap:anywhere;padding:6px 10px}.output{font-family:var(--mono);background:var(--bg);border-radius:8px;max-height:520px;padding:8px 10px;font-size:12.5px;line-height:1.55;overflow:auto}.composer{z-index:3;gap:8px;display:grid;position:sticky;bottom:8px;box-shadow:0 6px 24px #00000040}.composer .hint{flex:1;min-width:0}.session-page{--below:220px;gap:12px;display:grid}.session-page.view-conversation{--below:calc(var(--composer-h,200px) + 40px)}main:has(>.session-page){padding-bottom:8px}.session-head{top:var(--topbar-h,0px);z-index:4;max-height:calc(100dvh - var(--topbar-h,0px) - var(--below));background:var(--bg);border-bottom:1px solid var(--border);flex-direction:column;gap:10px;min-width:0;margin:-12px -16px 0;padding:12px 16px 10px;display:flex;position:sticky;overflow-y:auto}.session-page[data-unpinned] .session-head{max-height:none;position:static;overflow:visible}body:has(.session-page[data-unpinned]) .topbar{position:static}.session-head>*{flex-shrink:0}.session-head .section-head{margin-bottom:0}.session-head .actions{flex-wrap:wrap;gap:12px;display:flex}.session-mid{flex-shrink:1;gap:10px;min-height:3em;max-height:50vh;display:grid;overflow-y:auto}.session-details{gap:10px;display:grid}.session-mid[hidden],.session-details[hidden]{display:none}.session-head .capped{max-height:7.5em;overflow:auto}.session-head .then{margin-top:4px}.fold{border-color:#0000;padding:6px 8px}.chev{border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;transition:transform .15s;transform:translate(-1px)rotate(-45deg)}.fold[aria-expanded=true] .chev{transform:translateY(-2px)rotate(45deg)}@media (width<=640px){body:has(.session-page) .topbar{position:static}.session-page{--topbar-h:0px}.session-head{gap:8px;padding:10px 16px 8px}.session-head .section-head{gap:8px}.session-head .actions{scrollbar-width:thin;flex-wrap:nowrap;flex:1 0 100%;gap:8px;overflow-x:auto}.session-head .section-head :is(button,.button){padding:4px 10px;font-size:12px}}.terminal-panel{height:max(120px, calc(100dvh - var(--topbar-h,0px) - var(--session-head-h,0px) - 32px));flex-direction:column;padding:0;display:flex;overflow:hidden}.session-page[data-unpinned] .terminal-panel{height:max(120px,100dvh - 16px)}.terminal-panel .dot{--c:var(--muted);flex:none}.terminal-panel .dot.on{--c:var(--ok)}.terminal-host{background:#0c0f13;flex:1;min-height:0;overflow:hidden}.terminal-host .xterm{padding:6px 6px 6px 8px}.terminal-hint{border-top:1px solid var(--border);padding:8px 14px}.turf{--ink-working:#e2ff1f;--ink-idle:#1fe6c8;--ink-booting:#4f7dff;--ink-suspending:#ff8a1c;--ink-suspended:#a35cff;--ink-failed:#ff2e7e;--ink-deleting:#7b8091;--dust:#2c2a3f;--stage:#120f24;--stage-text:#f3f1ff;--stage-muted:#a29fc2;--stage-line:#262248;--ink:var(--ink-suspended)}.ink-working{--ink:var(--ink-working)}.ink-idle{--ink:var(--ink-idle)}.ink-booting{--ink:var(--ink-booting)}.ink-suspending{--ink:var(--ink-suspending)}.ink-suspended{--ink:var(--ink-suspended)}.ink-failed{--ink:var(--ink-failed)}.ink-deleting{--ink:var(--ink-deleting)}.t-wet{--tier:#4ff0ff}.t-tacky{--tier:#3cb2cc}.t-dry{--tier:#3c7a93}.t-crusted{--tier:#6a7590}.turf{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:14px;display:grid}.turf-stage{background:radial-gradient(circle at 50% 55%, #1d1840 0%, transparent 70%), var(--stage);color:var(--stage-text);border:1px solid var(--stage-line);border-radius:16px;min-width:0;overflow:hidden}.turf-hud,.turf-legend{flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 16px;display:flex}.turf-legend{padding-top:4px;font-size:12px}.turf-title{gap:2px;min-width:0;display:grid}.turf-title h2{letter-spacing:.01em;text-shadow:3px 3px 0 var(--ink-suspended);font-size:26px;font-style:italic;font-weight:900;line-height:1.1;transform:skew(-6deg)}.turf-hint{color:var(--stage-muted);font-size:12px}.turf-hud-label{text-transform:uppercase;letter-spacing:.08em;color:var(--stage-muted);font-size:11px;font-weight:800}.turf-hud-num{font:700 13px var(--mono)}.turf-tank,.turf-meter{align-items:center;gap:8px;display:inline-flex}.turf-slots{gap:4px;display:inline-flex}.turf-slot{border:2px solid var(--stage-line);background:#0a0816;border-radius:7px;width:14px;height:22px}.turf-slot.on{border-color:var(--ink);background:linear-gradient(to top, var(--ink) 70%, color-mix(in srgb, var(--ink) 40%, transparent))}.turf-meter-bar{border:2px solid var(--stage-line);border-radius:11px;width:300px;max-width:100%;height:22px;display:inline-flex;overflow:hidden}.turf-meter-bar span{white-space:nowrap;background:var(--tier);color:#0a0816;min-width:max-content;font:800 11px var(--sans);text-transform:uppercase;letter-spacing:.04em;place-items:center;padding:0 8px;display:grid}.turf-meter-bar span+span{border-left:2px solid var(--stage)}.turf-map{-webkit-user-select:none;user-select:none;width:100%;display:block}.turf-map.compact .splat:not(.is-center) .splat-name{display:none}.turf-grid-line{fill:none;stroke:var(--stage-line);stroke-width:1px;opacity:.6}.splat-ink{fill:color-mix(in oklab, var(--ink) var(--wet,100%), var(--dust))}.turf-floor{opacity:.13}.turf-floor path,.splat,.splat-body{transform-origin:0 0;transition:transform .65s cubic-bezier(.2,.8,.25,1.12)}.turf-guide{fill:none;stroke:var(--tier);stroke-width:1.5px;stroke-dasharray:2 7;stroke-linecap:round;opacity:.55}.turf-empty{fill:var(--stage-muted);font:800 italic 18px var(--sans);text-anchor:middle}.splat{cursor:pointer;outline:none}.splat-anim,.splat-drops,.splat-ripple,.burst circle{transform-origin:0 0}.splat-gloss{fill:#fff;pointer-events:none}.splat-x{fill:none;stroke:#1a0b14;stroke-width:.12px;stroke-linecap:round}.splat-ring{fill:none;stroke:var(--stage-text);stroke-width:2px;stroke-dasharray:4 5;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .15s}.splat:hover .splat-ring{opacity:.45}.splat:focus-visible .splat-ring{opacity:1;stroke:var(--accent);stroke-dasharray:none}.splat-ripple{fill:none;stroke:var(--ink);stroke-width:2.5px;vector-effect:non-scaling-stroke;animation:1.4s ease-out infinite turf-ripple}.ink-suspending .splat-ripple{animation-duration:2.6s}.ink-idle .splat-anim{animation:4s ease-in-out infinite turf-breathe}.ink-working .splat-drops{animation:7s linear infinite turf-spin}.ink-deleting{opacity:.5}.splat-name,.splat-sub{fill:var(--stage-text);font:700 11px var(--sans);text-anchor:middle;paint-order:stroke;stroke:var(--stage);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.is-center .splat-name{font-size:17px;font-style:italic;font-weight:900}.splat-sub{fill:var(--ink);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:800}.turf-crown{fill:#ffd23f;stroke:var(--stage);stroke-width:2.5px;stroke-linejoin:round}.burst circle{animation:.9s cubic-bezier(.1,.7,.3,1) forwards turf-burst}.turf-key{color:var(--stage-text);align-items:center;gap:6px;display:inline-flex}.turf-swatch{background:var(--ink);border-radius:50% 40% 55% 45%;width:12px;height:12px}.turf-card{gap:12px;display:grid;position:sticky;top:72px}.turf-tag{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:800;transform:skew(-8deg)}.turf-tag.on{color:#241a00;background:#ffd23f;border-color:#ffd23f}.turf-card-head{align-items:center;gap:12px;min-width:0;display:flex}.turf-card-splat{--dust:var(--panel-2);flex:none;width:44px;height:44px}.turf-card-name{overflow-wrap:anywhere;min-width:0;font-size:20px;font-style:italic;font-weight:900;line-height:1.2}.turf-fresh{background:color-mix(in srgb, var(--tier) 22%, transparent);border:1px solid color-mix(in srgb, var(--tier) 60%, transparent);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.turf-level{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.turf-lv{font-size:16px;font-style:italic;font-weight:900}.turf-xp{background:var(--panel-2);border:1px solid var(--border);border-radius:5px;height:10px;overflow:hidden}.turf-xp span{background:linear-gradient(90deg, var(--ink-suspended), var(--ink-failed));height:100%;display:block}.turf-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.turf-stats div{background:var(--panel-2);border-radius:8px;padding:6px 10px}.turf-stats dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.turf-stats dd{font:700 15px var(--mono);margin:0}.turf-repos{overflow-wrap:anywhere}@keyframes turf-ripple{0%{opacity:.9;transform:scale(.9)}to{opacity:0;transform:scale(1.8)}}@keyframes turf-breathe{50%{transform:scale(1.045)}}@keyframes turf-spin{to{transform:rotate(360deg)}}@keyframes turf-burst{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.3);opacity:0}}@media (width<=900px){.turf{grid-template-columns:minmax(0,1fr)}.turf-card{position:static}}@media (width<=640px){.turf-meter{flex:100%;min-width:0}.turf-meter-bar{flex:1;width:auto}.turf-meter-bar span{letter-spacing:0;padding:0 5px}}@media (prefers-reduced-motion:reduce){.turf *,.turf :after{transition:none!important;animation:none!important}}
