@font-face{font-family:ubuntu;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ubuntu-400.woff2)format("woff2")}@font-face{font-family:ubuntu;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ubuntu-500.woff2)format("woff2")}@font-face{font-family:ubuntu mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ubuntu-mono-400.woff2)format("woff2")}@font-face{font-family:ubuntu mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ubuntu-mono-700.woff2)format("woff2")}:root{--maroon:#721042;--maroon-deep:#4a0a2a;--maroon-tint:#f3e6ec;--amber:#f4a340;--amber-text:#8a5208;--paper:#fbf8f6;--white:#ffffff;--ink:#24121b;--ink-muted:#6b5561;--line:#e4dad5;--font-display:"Ubuntu Mono", ui-monospace, Menlo, Consolas, monospace;--font-body:"Ubuntu", system-ui, -apple-system, "Segoe UI", sans-serif;--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:40px;--space-6:64px;--radius-sm:6px;--radius-md:12px;--radius-lg:24px;--radius-pill:999px;--bg:var(--white);--band:var(--paper);--tint:var(--maroon-tint);--surface:var(--white);--text:var(--ink);--text-muted:var(--ink-muted);--heading:var(--maroon);--accent-text:var(--amber-text);--brand:var(--maroon);--on-brand:var(--white);--link:var(--maroon);--link-hover:var(--maroon-deep);--width-grid:1080px;--gutter:16px;--motion:150ms ease}@media(prefers-color-scheme:dark){:root{--bg:#141113;--band:#1b1719;--tint:#261a20;--surface:#211c1f;--text:#f5eff2;--text-muted:#b8acb2;--line:#372f33;--heading:#f5eff2;--accent-text:var(--amber);--brand:#9b2a62;--link:#e889b3;--link-hover:#f2b3d2}}@media(prefers-reduced-motion:reduce){:root{--motion:0ms}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.65 var(--font-body)}h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.1;letter-spacing:-.01em;margin:0 0 var(--space-3)}h1{font-size:clamp(40px,6vw,64px)}h2{font-size:clamp(28px,4vw,36px);color:var(--heading)}h3{font-size:22px;color:var(--heading)}p{margin:0 0 var(--space-3)}code,pre,kbd{font-family:var(--font-display);font-size:15px}kbd{background:var(--tint);border-radius:var(--radius-sm);padding:1px 6px}img,svg,video{max-width:100%;height:auto}a{color:var(--link);text-underline-offset:3px;transition:color var(--motion)}a:hover{color:var(--link-hover)}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.dot::after{content:"";display:inline-block;width:.22em;height:.22em;margin-left:.06em;border-radius:50%;background:var(--amber)}.eyebrow{font:700 14px/1.4 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);margin:0 0 var(--space-2)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-pill);font:500 16px/1 var(--font-body);text-decoration:none;cursor:pointer;border:2px solid transparent;transition:background var(--motion),color var(--motion)}.btn-primary{background:var(--brand);color:var(--on-brand)}.btn-primary:hover{background:var(--maroon-deep);color:var(--on-brand)}.btn-secondary{color:var(--link);border-color:initial}.btn-secondary:hover{background:var(--tint)}.btn-white{background:var(--white);color:var(--maroon)}.btn-white:hover{background:var(--maroon-tint);color:var(--maroon-deep)}.btn-ghost{color:var(--white);border-color:rgb(255 255 255/.6)}.btn-ghost:hover{color:var(--white);background:var(--maroon-deep)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.wrap{max-width:var(--width-grid);margin:0 auto;padding:0 var(--gutter)}.section{padding-block:var(--space-6)}.band{background:var(--band);border-block:1px solid var(--line)}.band-tint{background:var(--tint)}.band-brand{position:relative;isolation:isolate;overflow:hidden;background:var(--maroon);color:var(--on-brand)}@media(min-width:900px){.band-brand::after{content:"";position:absolute;inset:0 0 0 auto;width:32%;z-index:-1;background:url(/brand/arches-tile-maroon.svg)repeat;background-size:60px 120px;mask-image:linear-gradient(to left,black,transparent)}}.band-brand :is(h1,h2){color:var(--on-brand)}.lead{font-size:20px;line-height:1.55;color:var(--text-muted);max-width:60ch}.band-brand .lead{color:var(--white)}.measure{max-width:72ch}.split{display:grid;gap:var(--space-4)var(--space-5);align-items:center}@media(min-width:800px){.split{grid-template-columns:5fr 7fr}.split-reverse{grid-template-columns:7fr 5fr}.split-reverse>:first-child{order:2}.split-lead{grid-template-columns:7fr 5fr}.split-even{grid-template-columns:1fr 1fr}}.split-top{align-items:start}.split>*>:last-child{margin-bottom:0}.shot{display:block;width:100%;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--white)}.shot-bare{border:0;background:0 0}.shot-phone{max-width:300px;margin:0 auto;border-radius:var(--radius-lg)}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4)var(--gutter);max-width:var(--width-grid);margin:0 auto}.site-header .wordmark{display:block;line-height:0}.site-header .wordmark img{height:36px;width:auto;display:block}.site-nav{margin-left:auto}.site-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:var(--space-4)}.site-nav a{position:relative;text-decoration:none;color:var(--text);font-family:var(--font-display);font-size:15px}.site-nav a:hover{color:var(--link)}.site-nav a[aria-current]::after{content:"";position:absolute;left:50%;bottom:-9px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--amber)}@media(max-width:700px){.site-header{flex-wrap:wrap;padding-block:var(--space-3)0}.header-cta{margin-left:auto}.site-nav{order:3;flex:1 0 100%;margin:0;border-top:1px solid var(--line)}.site-nav ul{justify-content:space-between;gap:var(--space-3)}.site-nav a{display:block;padding:var(--space-3)0}.site-nav a[aria-current]::after{bottom:6px}}.hero{position:relative;overflow:hidden}.hero>.wrap{padding-block:var(--space-6)}.hero-content{max-width:680px}.hero-pattern{display:none}@media(min-width:900px){.hero-pattern{display:block;position:absolute;inset:0 0 0 auto;width:30%;background:url(/brand/arches-tile-light.svg)repeat;background-size:30px 60px;mask-image:linear-gradient(to left,black,transparent)}}@media(prefers-color-scheme:dark){.hero-pattern{display:none}}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-4)}.grid-3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4)}.card :is(h2,h3){font-size:22px;margin-bottom:var(--space-2)}.card p{color:var(--text-muted);font-size:16px}.card>:last-child{margin-bottom:0}.card-link{text-decoration:none}.card-link:hover{text-decoration:underline}.section-head{margin-bottom:var(--space-4)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0 0 var(--space-3);padding:0}.pills{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0}.pills li{border:1px solid rgb(255 255 255/.4);border-radius:var(--radius-pill);padding:4px 14px;font-size:15px}.rows{list-style:none;counter-reset:row;margin:0;padding:0}.rows>li{counter-increment:row;display:grid;gap:0 var(--space-5);padding:var(--space-5)0;border-top:1px solid var(--line)}.rows>li::before{content:counter(row,decimal-leading-zero);font:700 14px/1.6 var(--font-display);color:var(--accent-text)}.rows h2{font-size:clamp(24px,3vw,30px)}.rows h3{font-size:18px;margin:var(--space-4)0 var(--space-1)}.rows>li>:last-child>:last-child{margin-bottom:0}@media(min-width:800px){.rows>li{grid-template-columns:48px 4fr 7fr}}.list-lines{list-style:none;margin:0;padding:0}.list-lines li{padding:var(--space-4)0;border-top:1px solid var(--line)}.list-lines li:last-child{border-bottom:1px solid var(--line)}.list-lines h3{margin-bottom:var(--space-1)}.list-lines p{margin:0;color:var(--text-muted)}.stats{display:flex;flex-wrap:wrap;gap:var(--space-4)var(--space-6);margin:var(--space-5)0 0}.stats dt{font:700 36px/1.1 var(--font-display);color:var(--heading)}.stats dd{margin:0;font-size:15px;color:var(--text-muted);max-width:22ch}.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4)var(--space-5)}.steps{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-5)var(--space-4);margin:0;padding:0}.steps li{counter-increment:step;padding-top:var(--space-3);border-top:2px solid var(--line)}.steps li::before{content:counter(step,decimal-leading-zero);font:700 14px/1.6 var(--font-display);color:var(--accent-text)}.steps h3{font-size:20px;margin:var(--space-1)0 var(--space-2)}.steps p{margin:0;color:var(--text-muted)}.app-card{display:flex;flex-direction:column;gap:var(--space-2)}.app-card .actions{margin-top:auto}.app-icon{width:64px;height:64px;border-radius:var(--radius-md)}.app-page h1{font-size:clamp(34px,6vw,52px)}.app-name{display:flex;align-items:center;gap:var(--space-3);font:700 22px/1 var(--font-display);margin-bottom:var(--space-5)}.app-name .app-icon{width:56px;height:56px;border:1px solid rgb(255 255 255/.25);border-radius:14px}.version-tag{font:12px/1.5 var(--font-display);padding:2px 8px;border-radius:var(--radius-sm);background:var(--tint);color:var(--heading)}.app-price{font:700 17px/1.4 var(--font-display);margin:0}.faq>*{max-width:820px}.faq h3{font-size:20px;margin:var(--space-4)0 var(--space-1)}.fineprint{margin:var(--space-5)0 0;padding-top:var(--space-4);border-top:1px solid var(--line);font-size:14px;color:var(--text-muted)}.post-list{list-style:none;margin:0 0 var(--space-5);padding:0}.post-list li{display:flex;gap:var(--space-3);padding:var(--space-2)0;border-bottom:1px solid var(--line)}.post-list-date{font-family:var(--font-display);color:var(--accent-text);font-size:14px;flex:0 0 64px}.cta-band{text-align:center;padding:var(--space-6)var(--gutter)}.site-footer{padding:var(--space-5)var(--gutter);max-width:var(--width-grid);margin:0 auto;color:var(--text-muted);font-size:14px}.site-footer .footer-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.site-footer .footer-links{display:flex;flex-wrap:wrap;gap:var(--space-3);list-style:none;margin:0;padding:0}.site-footer a{color:var(--text-muted);white-space:nowrap}.site-footer .footer-meta{margin-top:var(--space-2)}.site-footer p{margin:0}article.prose{max-width:var(--width-grid);margin:0 auto;padding:var(--space-5)var(--gutter)}.post-meta{font-family:var(--font-display);color:var(--accent-text);font-size:14px;margin-bottom:var(--space-4)}article.prose h1{font-size:clamp(32px,5vw,44px)}article.prose h2{margin-top:var(--space-5)}article.prose h3{margin-top:var(--space-4)}article.prose :is(p,li){overflow-wrap:anywhere}article.prose img{border-radius:var(--radius-md)}article.prose blockquote{margin:var(--space-4)0;padding:0 var(--space-4);border-left:3px solid var(--tint);color:var(--text-muted)}article.prose table{width:100%;border-collapse:collapse}article.prose :is(th,td){border:1px solid var(--line);padding:var(--space-2);text-align:left}@media(min-width:800px){.prose.about>p:first-of-type{float:right;width:300px;margin:0 0 var(--space-4)var(--space-5)}.prose.about h2{clear:both}}#toc{background:var(--band);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3)var(--space-4);margin:0 0 var(--space-4)}#toc h2{font-size:15px;margin:0 0 var(--space-2)}pre{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);overflow:auto;margin:0 0 var(--space-4)}:not(pre)>code{background:var(--tint);border-radius:var(--radius-sm);padding:.1em .4em}@media(max-width:480px){.lead{font-size:18px}}.about-strip{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.about-photo{width:160px;height:160px;border-radius:var(--radius-lg);object-fit:cover;flex:none}.about-strip>div{flex:1 1 320px}