:root{--bg:#070807;--term:#0d0f0d;--ink:#e6e8df;--dim:#7b8077;--line:#232622;--acc:#c6ff3d;--u:#7ee0ff;--card:#111411}
[data-theme=light]{--bg:#e9e6dc;--term:#f8f6ef;--ink:#151613;--dim:#696c64;--line:#d6d2c6;--acc:#1f7a2e;--u:#1f5bd6;--card:#f1eee5}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 "IBM Plex Mono",ui-monospace,monospace;-webkit-font-smoothing:antialiased}
a{color:inherit}
.wall{position:fixed;inset:0;width:100%;height:100%;opacity:.45;z-index:0}
.term{position:relative;z-index:1;max-width:1080px;margin:40px auto;border:1px solid var(--line);background:var(--term);border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.45);overflow:hidden}
.bar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line);font-size:12px;color:var(--dim)}
.dots i{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;background:#ff5f57}.dots i:nth-child(2){background:#febc2e}.dots i:nth-child(3){background:#28c840}
.title{flex:1}.switch{display:flex;gap:14px;align-items:center}.switch a{text-decoration:none}.switch a:hover{color:var(--acc)}
.theme-key{font:inherit;background:none;border:1px solid var(--line);color:var(--ink);padding:3px 8px;cursor:pointer}
.screen{padding:28px 36px 40px}
.ascii{color:var(--acc);font-size:11px;line-height:1.2;margin:0 0 28px;overflow:hidden}
.cmd{margin-bottom:64px;scroll-margin-top:20px}
.prompt{margin:0 0 14px;font-weight:500}.u{color:var(--acc)}.d{color:var(--u)}
.type::after,.cursor{content:"";display:inline-block;width:.6em;height:1.1em;background:var(--acc);vertical-align:-3px;margin-left:2px;animation:blink 1s steps(1) infinite}
.type.done::after{display:none}@keyframes blink{50%{opacity:0}}
.out{padding-left:18px;border-left:1px solid var(--line)}
h1{font-size:clamp(32px,5.6vw,64px);line-height:1.08;margin:6px 0 18px;font-weight:700;letter-spacing:-.03em}h1 .acc{color:var(--acc)}
h2{font-size:clamp(28px,4vw,44px);margin:6px 0 12px;font-weight:700;letter-spacing:-.02em}
h3{font-size:17px;margin:8px 0;font-weight:700}
.lede{max-width:680px;opacity:.85}
.btn{display:inline-block;background:var(--acc);color:#070807;padding:10px 16px;text-decoration:none;font-weight:700;margin-right:18px;transition:transform .15s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}.ghost{color:var(--dim)}.ghost:hover{color:var(--acc)}
.dim{color:var(--dim)}.ph{color:var(--acc)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid.two{grid-template-columns:1fr 1fr;margin-top:18px}
.card,.s{border:1px dashed var(--line);padding:18px;background:var(--card)}.card:hover,.s:hover{border-color:var(--acc)}.card p{margin:0;font-size:14px;opacity:.85}.perm{color:var(--dim);font-size:12px!important}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.s b{display:block;font-size:clamp(32px,4.5vw,52px);line-height:1;color:var(--acc);letter-spacing:-.03em;margin-bottom:10px}
.s span{display:block;font-size:13px;opacity:.85}.s .k{color:var(--u);text-transform:uppercase;font-size:12px;letter-spacing:.1em;opacity:1;margin-bottom:4px}
.s.total{grid-column:1/-1}.s.total b{font-size:clamp(56px,9vw,110px)}.s.total span{font-size:16px}
.tree{color:var(--dim);margin:0;font-size:14px;overflow-x:auto}
.help{display:grid;grid-template-columns:8ch 1fr;gap:10px 16px;margin:14px 0}.help dt{color:var(--acc);font-weight:700}.help dd{margin:0;opacity:.85}
.status{display:flex;margin:0;border-top:1px solid var(--line);background:var(--card);font-size:12px;color:var(--dim)}.status span{padding:6px 14px}.status .mode{background:var(--acc);color:#070807;font-weight:700}.status .pos{margin-left:auto}
.reveal{opacity:0;transition:opacity .5s}.reveal.in{opacity:1}
@media(max-width:820px){.term{margin:0;border-radius:0;border:0}.switch a,.title{display:none}.switch{margin-left:auto}.screen{padding:20px 16px}.grid,.grid.two,.stats{grid-template-columns:1fr}.ascii{font-size:4.6px}body{font-size:14px}}
@media(prefers-reduced-motion:reduce){.type::after,.cursor{animation:none}.reveal{opacity:1}}
.s.total{grid-column:span 2;grid-row:span 2;display:flex;flex-direction:column;justify-content:center}
.hero-stat{margin:20px 0}.hero-stat b{font-size:clamp(36px,5vw,60px);color:var(--acc);letter-spacing:-.03em;vertical-align:middle}.hero-stat span{color:var(--dim)}
.tree{white-space:pre}.card.wide{grid-column:1/-1}
@media(max-width:820px){.s.total{grid-column:auto;grid-row:auto}.tree{font-size:11px}}
.logos{list-style:none;padding:0;margin:0 0 10px;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.logos li{background:var(--card);display:flex;align-items:center;justify-content:center;height:84px;padding:14px}
.logos img{max-width:100%;max-height:34px;opacity:.75;transition:opacity .2s}.logos li:hover img{opacity:1}
[data-theme=light] .logos img{filter:invert(1)}
details{margin-top:10px;font-size:13px}summary{cursor:pointer;color:var(--acc);list-style:none}summary::-webkit-details-marker{display:none}
details[open] summary{margin-bottom:6px}details p{margin:0;opacity:.85}
.quote{margin:0;border:1px dashed var(--line);background:var(--card);padding:22px}.quote blockquote{margin:0 0 14px;line-height:1.7}
.quote figcaption{font-size:13px;color:var(--dim)}.quote b{color:var(--acc)}
@media(max-width:820px){.logos{grid-template-columns:repeat(3,1fr)}.logos li{height:64px;padding:10px}.logos img{max-height:24px}}
.posts{list-style:none;padding:0;margin:0 0 14px}.posts li{padding:8px 0;border-bottom:1px dashed var(--line);display:flex;gap:14px;flex-wrap:wrap;align-items:baseline}.posts time{color:var(--dim);font-size:13px;min-width:92px}.posts a{flex:1}.posts .tags{color:var(--dim);font-size:12px}
.post{max-width:720px}.post-title{font-size:clamp(26px,4vw,40px)}.post p,.post li{line-height:1.75}.post h2{margin-top:30px}.post pre{overflow:auto;background:var(--card);padding:14px;border:1px dashed var(--line)}
.posts li{flex-wrap:nowrap}.posts a{flex:1 1 0;min-width:0;overflow-wrap:anywhere}.posts .tags{flex:none;white-space:nowrap}.posts time{flex:none}
@media(max-width:600px){.posts li{flex-wrap:wrap;gap:4px 12px}.posts a{flex:1 1 100%;order:3}}
.posts li{padding-right:6px}
/* terminal green accents */
h2{color:var(--acc)}
.card h3,.help dt{color:var(--acc)}
.out a:not(.btn):not(.ghost),.post a{color:var(--acc);text-decoration-color:color-mix(in srgb,var(--acc) 45%,transparent);text-underline-offset:3px}
.out a:not(.btn):not(.ghost):hover,.post a:hover{text-decoration-color:var(--acc)}
.prompt .type,.prompt{color:var(--ink)}.prompt .u{color:var(--acc)}
.switch a{color:var(--dim)}.switch a:hover{color:var(--acc)}
.posts a{color:var(--ink)!important}.posts a:hover{color:var(--acc)!important}
.post h2{font-size:22px;margin:34px 0 10px;letter-spacing:-.01em}.post h2::before{content:"## ";color:var(--dim)}
.post h3{font-size:17px;margin:24px 0 8px;color:var(--acc)}.post h3::before{content:"### ";color:var(--dim)}
.post-title{color:var(--ink)}
.post strong{color:var(--acc);font-weight:600}
/* changelog (timeline layout) */
.cl-top{padding:8px 0 4px}
.cl-h{font-size:clamp(40px,6vw,72px);color:var(--ink);letter-spacing:-.04em;margin:4px 0 10px;line-height:1}
.cl-top .lede{color:var(--dim);opacity:1;font-size:15px}
.fr{position:absolute;opacity:0;pointer-events:none}
.tabs{display:flex;gap:22px;margin:26px 0 0;padding-bottom:26px;border-bottom:1px solid var(--line);font-size:14px}
.tabs label{cursor:pointer;color:var(--dim);padding:2px 0}
.tabs label:hover{color:var(--ink)}
#f-all:checked~.tabs label[for=f-all],#f-shipped:checked~.tabs label[for=f-shipped],#f-writing:checked~.tabs label[for=f-writing]{color:var(--acc)}
#f-all:checked~.tabs label[for=f-all]::before,#f-shipped:checked~.tabs label[for=f-shipped]::before,#f-writing:checked~.tabs label[for=f-writing]::before{content:"> "}
#f-all:focus-visible~.tabs label[for=f-all],#f-shipped:focus-visible~.tabs label[for=f-shipped],#f-writing:focus-visible~.tabs label[for=f-writing]{outline:2px solid var(--acc);outline-offset:3px}
#f-shipped:checked~.feed .entry.writing,#f-writing:checked~.feed .entry.shipped{display:none}
.feed{margin:0 0 40px}
.entry{position:relative;display:grid;grid-template-columns:200px minmax(0,680px);gap:0 48px;padding:56px 0 64px;border-bottom:1px solid var(--line);scroll-margin-top:20px}
.entry::before{content:"";position:absolute;left:3px;top:56px;bottom:0;width:1px;background:var(--line)}
.entry .when{position:sticky;top:24px;align-self:start;display:flex;flex-direction:column;gap:8px;padding-left:18px;font-size:13px}
.entry .when time{position:relative;color:var(--ink);font-weight:500}
.entry .when time::before{content:"";position:absolute;left:-18px;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--acc)}
.entry.writing .when time::before{background:var(--u)}
.badges{display:flex;flex-direction:column;gap:2px}
.kt{font-size:12px}.kt.shipped{color:var(--acc)}.kt.writing{color:var(--u)}
.st{color:var(--dim);font-size:12px}.st-live,.st-waitlist{color:var(--acc)}
.etitle{font-size:clamp(24px,2.8vw,34px);margin:-6px 0 26px;letter-spacing:-.025em;line-height:1.2;font-weight:700}
.etitle a{color:var(--ink)!important;text-decoration:none!important}.etitle a:hover{color:var(--acc)!important}
.shot,.tile{display:block;width:100%;border:1px solid var(--line);border-radius:12px;margin:0 0 30px;background:var(--card)}
.shot{height:auto}
.tile{aspect-ratio:16/7;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;padding:0 9%;font-size:13px;background:radial-gradient(120% 90% at 85% 10%,color-mix(in srgb,var(--acc) 7%,transparent),transparent 60%),var(--card)}
.tile b{font-size:clamp(30px,5vw,56px);color:var(--acc);letter-spacing:-.03em;line-height:1}
.prose p{font-size:16px;line-height:1.8;margin:0 0 18px;opacity:.92}
.etags{color:var(--u);font-size:12px!important;margin:0 0 18px!important}
.rows{border-top:1px solid var(--line);margin-top:10px}
.row{display:block;border-bottom:1px solid var(--line);font-size:14px}
a.row,.row summary{display:flex;justify-content:space-between;align-items:center;padding:14px 2px;color:var(--ink)!important;text-decoration:none!important;cursor:pointer;list-style:none;margin:0}
.row summary::-webkit-details-marker{display:none}
a.row:hover,.row summary:hover{color:var(--acc)!important}
.chev{color:var(--dim);transition:transform .15s;font-size:18px;line-height:1}
details.row[open] .chev{transform:rotate(90deg)}
details.row{margin:0}
.facts{display:grid;grid-template-columns:8ch 1fr;gap:6px 14px;margin:0 2px 16px;font-size:13px}.facts dt{color:var(--dim)}.facts dd{margin:0}.facts .etags{margin:0!important}
.clog .kt{flex:none;min-width:82px}
@media(max-width:900px){.entry{grid-template-columns:1fr;gap:14px;padding:40px 0 48px}.entry::before{display:none}
 .entry .when{position:static;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.badges{flex-direction:row;gap:10px}
 .etitle{margin:0 0 20px}.shot,.tile{margin-bottom:22px;border-radius:10px}.prose p{font-size:15px}}
@media(max-width:600px){.clog .kt{min-width:0}.tile{aspect-ratio:16/9;padding:0 7%}.tabs{gap:18px}}
/* image depth (soft, large, low-opacity shadow, subtle hairline) */
.shot,.tile{border:1px solid rgba(255,255,255,.07);border-radius:12px;box-shadow:0 0 0 1px rgba(0,0,0,.35),0 2px 4px rgba(0,0,0,.25),0 12px 28px -6px rgba(0,0,0,.45),0 40px 90px -20px rgba(0,0,0,.7)}
[data-theme=light] .shot,[data-theme=light] .tile{border-color:rgba(0,0,0,.08);box-shadow:0 1px 2px rgba(0,0,0,.06),0 12px 28px -8px rgba(0,0,0,.14),0 36px 80px -24px rgba(0,0,0,.22)}
@media(max-width:820px){.shot,.tile{box-shadow:0 0 0 1px rgba(0,0,0,.35),0 8px 20px -6px rgba(0,0,0,.45),0 24px 48px -16px rgba(0,0,0,.6)}}
