:root{--bg:#0c1a1f;--surface:#1c333a;--raised:#27474f;--border:#2c4c55;--border-strong:#567077;--border-soft:#23414a;--text:#e8f0ef;--text-prose:#cfdcda;--muted:#93aeb1;--dim:#6d878c;--accent:#ff6a3d;--accent-ink:#2a0f06;--idea:#f2b544;--live:#54d6a8;--gone:#7d8b8d;--margin-ink:#dcc39a;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--mono:ui-monospace,"Cascadia Mono","SF Mono","Segoe UI Mono",Menlo,Consolas,monospace;--gutter:20px;--maxw:880px;--measure:620px;--step--1:clamp(13px,0.80rem + 0.10vw,14px);--step-0:clamp(16px,0.98rem + 0.16vw,18px);--step-1:clamp(19px,1.10rem + 0.42vw,23px);--step-2:clamp(24px,1.32rem + 0.90vw,32px);--step-3:clamp(30px,1.55rem + 1.80vw,46px);--step-4:clamp(38px,1.80rem + 3.20vw,68px);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--space-section:clamp(32px,6vw,64px);color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--step-0);line-height:1.6;display:flex;flex-direction:column;min-height:100svh;-webkit-font-smoothing:antialiased}a{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}[id]{scroll-margin-top:76px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-ink);padding:var(--s3) var(--s4);border-radius:0 0 var(--s2) 0;z-index:100;font-weight:600;text-decoration:none}.skip-link:focus{left:0}.wrap{width:min(100% - var(--gutter) * 2,var(--maxw));margin-inline:auto;padding-block:clamp(28px,6vw,56px);flex:1 1}.hero h1{font-size:var(--step-4);font-weight:700;letter-spacing:-.03em;line-height:1.04;margin:0 0 var(--s3);text-wrap:balance}.hero p{color:var(--muted);margin:0 0 var(--s5)}.hero-lede{max-width:56ch}.hero-studio h1{font-size:var(--step-2);letter-spacing:-.025em}.hero-studio{margin-bottom:var(--s6)}.aside{font-family:var(--serif);font-style:italic;color:var(--margin-ink);max-width:46ch;margin:0 0 var(--s5);padding-left:var(--s4);border-left:2px solid color-mix(in srgb,var(--margin-ink) 38%,transparent)}@media (min-width:1080px){.hero,.prose{position:relative}.aside{position:absolute;top:0;left:calc(var(--measure) + var(--s5));width:calc(var(--maxw) - var(--measure) - var(--s5));max-width:none;margin:0;padding-left:var(--s3);font-size:var(--step--1);line-height:1.5}}.eyebrow{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.13em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:var(--s3)}.nav{border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--bg)}.nav-inner{width:min(100% - var(--gutter) * 2,var(--maxw));margin-inline:auto;padding-block:var(--s1);display:flex;justify-content:space-between;align-items:center;gap:var(--s4)}.nav-brand{color:var(--text);text-decoration:none;font-weight:700;letter-spacing:-.025em;display:inline-flex;align-items:center;min-height:44px}.nav-links{display:flex;gap:var(--s4);flex-wrap:wrap}.nav-links a{color:var(--muted);text-decoration:none;font-size:.93em;display:inline-flex;align-items:center;min-height:44px}.nav-links a[aria-current=page]{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.footer{border-top:1px solid var(--border);margin-top:var(--space-section)}.footer-cols{width:min(100% - var(--gutter) * 2,var(--maxw));margin-inline:auto;padding-block:var(--s6) var(--s5);display:grid;grid-gap:var(--s5);gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}.footer-col h2{font-family:var(--mono);font-size:var(--step--1);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 var(--s1)}.footer-col ul{list-style:none;margin:0;padding:0}.footer-col a{color:var(--dim);text-decoration:none;font-size:.88em;display:inline-flex;align-items:center;min-height:40px}.footer-inner{width:min(100% - var(--gutter) * 2,var(--maxw));margin-inline:auto;padding-block:var(--s4);border-top:1px solid var(--border-soft);display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap}.footer-inner p{margin:0;color:var(--dim);font-size:.85em}@media (hover:hover){.footer-col a:hover,.nav-links a:hover{color:var(--text)}}.section-heading{font-size:var(--step-0);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin:var(--space-section) 0 var(--s5);padding-bottom:var(--s3);border-bottom:1px solid var(--border-strong);display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);flex-wrap:wrap}.section-count{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.05em;color:var(--dim);text-transform:none;font-weight:400}.section-count a{color:var(--dim);text-decoration:none}.panel-heading{margin:0 0 var(--s2);font-size:var(--step-1);font-weight:600}.breadcrumb{margin:0 0 var(--s5);font-size:.88em;color:var(--dim)}.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb-sep{padding:0 var(--s2);color:var(--border-strong)}.muted-para{color:var(--muted);margin:0 0 var(--s3);max-width:var(--measure)}.rule{border:0;border-top:1px solid var(--border);margin:var(--s7) 0 var(--s5)}.featurelist{color:var(--muted);margin:0;padding-left:var(--s5);max-width:var(--measure)}.featurelist li{margin-bottom:var(--s2)}.product-blurb{margin:0 0 var(--s3);max-width:var(--measure)}.meta-mono{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);letter-spacing:.03em;margin:var(--s3) 0 0}.figure{margin:var(--s5) 0}.figure>img,.figure>video{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface)}.figure figcaption{color:var(--muted);font-size:var(--step--1);margin-top:var(--s2);line-height:1.5}.figure-wide{margin-inline:calc(var(--s5) * -1)}@media (max-width:720px){.figure-wide{margin-inline:0}}.tag{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);white-space:nowrap;border:1px solid var(--border-strong);border-radius:999px;padding:3px 10px}.tag-accent{color:var(--accent);border-color:var(--accent)}.tag-idea{color:var(--idea);border-color:color-mix(in srgb,var(--idea) 55%,transparent);border-style:dashed}.tag-building{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.tag-live{color:var(--live);border-color:color-mix(in srgb,var(--live) 55%,transparent)}.tag-shelved{color:var(--muted);border-color:color-mix(in srgb,var(--gone) 55%,transparent);border-style:dashed}.trail{display:flex;flex-wrap:wrap;margin:0 0 var(--s5);font-family:var(--mono);font-size:var(--step--1);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.trail,.trail>span{align-items:center;gap:var(--s3)}.trail>span{display:inline-flex}.trail-sep{color:var(--border-strong)}.trail-stop{display:inline-flex;align-items:center;gap:var(--s2)}.trail-stop:before{content:"";width:8px;height:8px;border-radius:50%;background:transparent;border:2px solid var(--border-strong);flex:0 0 auto}.trail-stop.is-done:before{background:var(--idea);border-color:var(--idea)}.trail-stop.is-on{color:var(--text);font-weight:700}.trail-stop.is-on:before{background:currentColor;border-color:currentColor}.trail-stop.is-idea{color:var(--idea)}.trail-stop.is-building{color:var(--accent)}.trail-stop.is-live{color:var(--live)}.trail-stop.is-gone{color:var(--gone)}.trail-stop.is-gone:before{background:var(--gone);border-color:var(--gone)}.grid{display:grid;grid-gap:clamp(14px,2vw,22px);gap:clamp(14px,2vw,22px);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.card{display:block;border:1px solid var(--border-strong);border-radius:10px;padding:var(--s5);color:inherit;background:var(--surface);position:relative;overflow:hidden;transition:border-color .16s,transform .16s}.card:after{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--stage-c,transparent)}.card-live{--stage-c:var(--live)}.card-building{--stage-c:var(--accent)}.card-idea{--stage-c:var(--idea)}.card-shelved{--stage-c:var(--gone);border-style:dashed}.card-shelved .card-name{color:var(--muted)}.card-link{color:inherit;text-decoration:none}.card-link:after{content:"";position:absolute;inset:0;z-index:1}.card :is(a,button):not(.card-link){position:relative;z-index:2}@media (hover:hover){.card:hover{border-color:color-mix(in srgb,var(--stage-c,var(--accent)) 55%,var(--border-strong));transform:translateY(-2px)}.card:hover .card-name{color:var(--accent)}}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);flex-wrap:wrap}.card-head h1{margin:0}.card-name{margin:0;font-size:var(--step-1);font-weight:600;letter-spacing:-.015em;transition:color .16s;line-height:1.25}.card-price{color:var(--muted);font-size:var(--step--1);font-family:var(--mono);letter-spacing:.02em}.card-blurb{color:var(--muted);font-size:.89em;margin:var(--s2) 0 var(--s3)}.card-foot{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.panel{border:1px solid var(--border-strong);border-radius:12px;padding:var(--s5);background:var(--surface)}.wrap>.panel{margin-top:var(--space-section)}.panel-call{border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.panel-lead{border-color:color-mix(in srgb,var(--accent) 38%,transparent);padding:clamp(22px,4vw,34px)}.lead-title{font-size:var(--step-3);font-weight:700;letter-spacing:-.03em;line-height:1.05;margin:0 0 var(--s2)}.lead-sub{color:var(--text-prose);max-width:50ch;margin:0;font-size:var(--step-1)}.btnrow{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s4)}.btn,.btnrow{align-items:center}.btn{display:inline-flex;justify-content:center;background:var(--accent);color:var(--accent-ink);font-weight:600;text-decoration:none;padding:0 var(--s5);min-height:46px;border-radius:var(--s2);border:0;cursor:pointer;font-size:.96em;font-family:inherit;letter-spacing:-.01em}.btnrow .btn{margin-top:0}.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border-strong)}.btn-quiet{color:var(--muted);text-decoration:underline;text-underline-offset:3px;font-size:.9em;display:inline-flex;align-items:center;min-height:44px}.lead-friction{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.05em;color:var(--live);margin:var(--s3) 0 0}.hint{color:var(--muted);font-size:.86em;margin-top:var(--s3)}.hint code{background:var(--raised);padding:2px 6px;border-radius:4px}.tiers{display:grid;grid-gap:var(--s3);gap:var(--s3);margin:var(--s4) 0 0;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.tier{border:1px solid var(--border-strong);border-radius:10px;padding:var(--s4);background:var(--surface)}.tier-name{font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.tier-price{font-size:var(--step-1);font-weight:600;letter-spacing:-.02em;margin:var(--s1) 0 var(--s2);color:var(--text)}.tier-period{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);font-weight:400;letter-spacing:.02em}.tier-note{color:var(--text-prose);font-size:.92em;margin:0}.price-source{color:var(--muted);font-size:.86em;margin:var(--s3) 0 0}.log{list-style:none;margin:0;padding:0 0 0 var(--s5);border-left:1px solid var(--border)}.log li{padding:0 0 var(--s6);position:relative}.log li:last-child{padding-bottom:0}.log li:before{content:"";position:absolute;left:-28px;top:var(--s2);width:7px;height:7px;border-radius:50%;background:var(--border-strong);border:3px solid var(--bg);box-sizing:content-box}.log li:first-child:before{background:var(--accent)}.log-date{color:var(--muted);text-decoration:none;display:inline-block;margin-bottom:var(--s1)}.log-date,.log-kind{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.05em}.log-kind{color:var(--dim)}.log-title{font-size:var(--step-1);font-weight:600;margin:0 0 var(--s2);letter-spacing:-.012em}.log-body p{color:var(--text-prose)}.tag-kind{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.11em;text-transform:uppercase;white-space:nowrap;color:var(--muted);border:1px solid var(--border-strong);border-radius:3px;padding:2px 7px;flex:0 0 auto}.tag-kind-note{color:var(--idea);border-color:color-mix(in srgb,var(--idea) 45%,transparent)}.tag-kind-log{color:var(--live);border-color:color-mix(in srgb,var(--live) 45%,transparent)}.postlist-meta{align-items:baseline;gap:var(--s3);min-width:0}.filters,.postlist-meta{display:flex;flex-wrap:wrap}.filters{gap:var(--s2);margin:0 0 var(--s5)}.filter-input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.filter-chip{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);cursor:pointer;border:1px solid var(--border-strong);border-radius:999px;display:inline-flex;align-items:center;min-height:36px;padding:0 var(--s3)}#filter-all:checked~.filters [for=filter-all],#filter-log:checked~.filters [for=filter-log],#filter-note:checked~.filters [for=filter-note],#filter-post:checked~.filters [for=filter-post]{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}#filter-all:focus-visible~.filters [for=filter-all],#filter-log:focus-visible~.filters [for=filter-log],#filter-note:focus-visible~.filters [for=filter-note],#filter-post:focus-visible~.filters [for=filter-post]{outline:2px solid var(--accent);outline-offset:3px}#filter-log:checked~.postlist>li:not([data-kind=log]),#filter-note:checked~.postlist>li:not([data-kind=note]),#filter-post:checked~.postlist>li:not([data-kind=post]){display:none}.postlist li{padding-top:var(--s4)}.postlist{list-style:none;margin:0;padding:0}.postlist li{padding:var(--s4) 0;border-bottom:1px solid var(--border-soft)}.postlist-link{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);text-decoration:none;color:inherit;flex-wrap:wrap}.postlist-title{font-weight:600;letter-spacing:-.012em}.postlist-date{color:var(--muted);font-size:var(--step--1);white-space:nowrap;font-family:var(--mono)}.postlist-summary{color:var(--muted);font-size:.87em;margin:var(--s2) 0 0;max-width:var(--measure)}@media (hover:hover){.postlist-link:hover .postlist-title{color:var(--accent)}}.prose{max-width:var(--measure);overflow-wrap:break-word}.prose a{overflow-wrap:anywhere}.prose h2{font-size:var(--step-2);font-weight:600;margin:var(--s7) 0 var(--s3);letter-spacing:-.02em}.prose h3{font-size:var(--step-1);font-weight:600;margin:var(--s6) 0 var(--s2)}.prose blockquote,.prose li,.prose p{color:var(--text-prose);font-family:var(--serif);font-size:clamp(17px,1.02rem + .2vw,19px);line-height:1.65}.prose p{margin:0 0 var(--s4)}.prose ol,.prose ul{padding-left:var(--s5)}.prose li{margin-bottom:var(--s2)}.prose code{padding:2px 6px;border-radius:4px;font-size:.88em;font-family:var(--mono)}.prose code,.prose pre{background:var(--raised)}.prose pre{border:1px solid var(--border);border-radius:var(--s2);padding:var(--s4);overflow-x:auto}.prose pre code{background:none;padding:0}.prose blockquote{margin:var(--s5) 0;padding-left:var(--s4);border-left:2px solid var(--border-strong);color:var(--muted)}.prose img{max-width:100%;height:auto;border-radius:var(--s2);border:1px solid var(--border);display:block;margin:var(--s5) 0}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--s5) 0}.prose table{width:100%;border-collapse:collapse}.prose td,.prose th{border:1px solid var(--border-strong);padding:var(--s2) var(--s3);text-align:left;font-size:.9em}.prose th{color:var(--text);font-weight:600}.faq h3{font-size:var(--step-1);font-weight:600;margin:var(--s5) 0 var(--s1)}.faq p{color:var(--muted);margin:0;max-width:var(--measure)}.share{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;margin-top:var(--space-section);padding-top:var(--s4);border-top:1px solid var(--border)}.share-label{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.share-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 var(--s4);border-radius:var(--s2);cursor:pointer;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent);background:transparent;font:inherit;font-size:.9em;font-weight:500}@media (hover:hover){.share-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.share-more{display:flex;gap:var(--s3);flex-wrap:wrap}.share-more a{color:var(--muted);font-size:.86em;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}@media (hover:hover){.share-more a:hover{color:var(--text)}}@media (max-width:480px){.share-btn{flex:1 1 100%}}.comments{margin-top:var(--s6);padding-top:var(--s5);border-top:1px solid var(--border)}.comments-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);flex-wrap:wrap}.comments-note{color:var(--muted);font-size:.86em;max-width:var(--measure);margin:var(--s2) 0 var(--s4)}.giscus,.giscus-frame{width:100%}.giscus-frame{border:0;color-scheme:normal}@media (prefers-reduced-motion:no-preference){.grid>.card{animation:rise .34s cubic-bezier(.2,.7,.3,1) backwards}.grid>.card:first-child{animation-delay:.04s}.grid>.card:nth-child(2){animation-delay:.09s}.grid>.card:nth-child(3){animation-delay:.14s}.grid>.card:nth-child(4){animation-delay:.19s}.grid>.card:nth-child(n+5){animation-delay:.24s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.trail-stop:before{transition:background-color .3s .15s,border-color .3s .15s}}