@font-face{font-family:Bricolage Grotesque;src:url(/_astro/bricolage-grotesque-latin-standard-normal.C5Lc8Qmc.woff2)format("woff2");font-weight:200 800;font-stretch:75% 100%;font-style:normal;font-display:swap}@font-face{font-family:Martian Mono;src:url(/_astro/martian-mono-latin-wght-normal.5W32yIyr.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}:root{--paper:#eef1f6;--paper-2:#e2e7f0;--card:#fbfcfe;--ink:#161a3b;--ink-2:#393e63;--muted:#575d81;--rule:#c7cedd;--accent:#2b3bd0;--accent-ink:#fff;--hard:#161a3b;--note:#fbefc4;--note-ink:#3a2c0d;--duck:#f4c430;--duck-ink:#3d2e10;--duck-beak:#e8892b;--cost:#d4612b;--term:#161a3b;--term-line:#2b3168;--term-ink:#e6e9f8;--term-dim:#9ea4cc;--term-pass:#6edba5;--term-skip:#f4c430;--term-run:#a3aeff;--font-body:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-mono:"Martian Mono", ui-monospace, "SFMono-Regular", monospace;--text-sm:.875rem;--text-base:1.0625rem;--text-lead:clamp(1.25rem, 2.1vw, 1.625rem);--text-h1:clamp(3.75rem, 11vw, 8.25rem);--text-h2:clamp(2.375rem, 5.2vw, 3.875rem);--text-h3:clamp(2rem, 3.4vw, 2.75rem);--gutter:clamp(1.25rem, 5vw, 3rem);--section-space:clamp(4.5rem, 10vw, 8rem);--radius-lg:22px;--radius-md:14px;--press:4px;--ease-out:cubic-bezier(.16, 1, .3, 1);color-scheme:light}:root[data-theme=dark]{--paper:#12152e;--paper-2:#1a1e3e;--card:#1c2146;--ink:#eceef8;--ink-2:#c5c9e3;--muted:#9ca2c8;--rule:#2f3562;--accent:#a3aeff;--accent-ink:#12152e;--hard:#070920;--note:#2c2a24;--note-ink:#f6e8b8;--cost:#f0905f;--term:#0b0e27;--term-line:#252a57;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-optical-sizing:auto;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-block-start:1.5rem}html,body{overflow-x:clip}body{font-size:var(--text-base);margin:0;line-height:1.6}h1,h2,h3,p,figure{margin:0}h1,h2,h3{color:var(--ink);text-wrap:balance;overflow-wrap:break-word;font-weight:760}h1{font-size:var(--text-h1);letter-spacing:0;font-weight:800;font-stretch:75%;line-height:.86}h2{font-size:var(--text-h2);letter-spacing:-.01em;font-stretch:80%;line-height:.95}h3{font-size:var(--text-h3);letter-spacing:-.02em;font-stretch:82%;line-height:1}p{text-wrap:pretty}a{color:inherit}button{font:inherit;color:inherit}[hidden]{display:none!important}::selection{background:var(--duck);color:var(--duck-ink)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}main:focus{outline:none}.sr-only{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--ink);color:var(--paper);border-radius:999px;padding:.75rem 1rem;font-weight:600;position:fixed;inset-block-start:1rem;inset-inline-start:var(--gutter);transform:translateY(-200%)}.skip-link:focus{transform:none}.page{max-inline-size:74rem;padding-inline:var(--gutter);margin-inline:auto;padding-block-end:max(1.5rem, env(safe-area-inset-bottom))}.btn{border:2px solid var(--ink);background:var(--paper);min-block-size:3rem;color:var(--ink);box-shadow:0 var(--press) 0 var(--hard);white-space:nowrap;cursor:pointer;transition:transform .12s var(--ease-out), box-shadow .12s var(--ease-out), background-color .12s;border-radius:999px;justify-content:center;align-items:center;padding:0 1.375rem;font-weight:650;text-decoration:none;display:inline-flex}.btn--solid{background:var(--accent);color:var(--accent-ink)}.btn:active{transform:translateY(var(--press));box-shadow:0 0 0 var(--hard)}.pill{border:2px solid var(--rule);min-block-size:2.75rem;font-size:var(--text-sm);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.5rem;padding:0 .875rem;font-weight:600;display:inline-flex}.text-link{min-block-size:2.75rem;text-decoration-color:var(--accent);text-underline-offset:.2em;align-items:center;font-weight:600;text-decoration-thickness:2px;display:inline-flex}.site-header,.header-actions,.site-nav{align-items:center;display:flex}.site-header{justify-content:space-between;gap:1rem;padding-block:1.25rem}.header-actions{gap:.75rem}.site-nav{gap:.125rem}.wordmark{letter-spacing:-.04em;align-items:center;min-block-size:2.75rem;font-size:2rem;font-weight:800;font-stretch:75%;text-decoration:none;display:inline-flex}.wordmark span{color:var(--accent)}.site-nav a{min-block-size:2.75rem;color:var(--ink-2);font-size:var(--text-sm);border-radius:999px;align-items:center;padding-inline:.75rem;font-weight:550;text-decoration:none;display:inline-flex}.theme-toggle{color:var(--ink-2)}.theme-icon--sun{display:none}[data-theme=dark] .theme-icon--sun{display:block}[data-theme=dark] .theme-icon--moon{display:none}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:clamp(2.5rem,6vw,5rem);padding-block:clamp(2.5rem,7vw,5.5rem) clamp(3rem,7vw,6rem);display:grid}.hero h1 span{display:block}.hero-lead{max-inline-size:21ch;color:var(--ink-2);font-size:var(--text-lead);margin-block-start:1.75rem;font-weight:500;line-height:1.3}.hero-actions{flex-wrap:wrap;gap:.875rem;margin-block-start:2.25rem;display:flex}.runner{border-radius:var(--radius-lg);background:var(--term);color:var(--term-ink);box-shadow:0 6px 0 var(--hard);font-family:var(--font-mono);font-size:.8125rem;line-height:1.5}:root[data-theme=dark] .runner{outline:1px solid var(--term-line)}.runner-bar{border-block-end:1px solid var(--term-line);justify-content:space-between;align-items:center;gap:1rem;min-block-size:3.5rem;padding:.5rem .75rem .5rem 1.25rem;display:flex}.runner-file{color:var(--term-dim)}.runner-again{border:1px solid var(--term-line);min-block-size:2.5rem;color:var(--term-ink);cursor:pointer;background:0 0;border-radius:999px;padding:0 .875rem;font-family:inherit;font-size:.75rem}.runner-again[aria-disabled=true]{opacity:.5;cursor:progress}.runner-again:focus-visible{outline-color:var(--term-run)}.runner-tests{gap:.75rem;margin:0;padding:1.375rem 1.25rem;list-style:none;display:grid}.t,.duck-test summary{grid-template-columns:1.25rem minmax(0,1fr) auto;align-items:baseline;gap:.75rem;display:grid}.t-icon{justify-content:center;display:inline-flex}.t-icon:before{content:"✓";color:var(--term-pass);font-weight:700}.t-ms{color:var(--term-dim);font-size:.75rem}.t[data-state=queued] .t-icon:before{content:"·";color:var(--term-dim)}.t[data-state=queued] .t-name{color:var(--term-dim)}.t[data-state=queued] .t-ms,.t[data-state=run] .t-ms{visibility:hidden}.t[data-state=run] .t-icon:before{content:"";border:2px solid var(--term-run);border-inline-end-color:#0000;border-radius:50%;align-self:center;block-size:.75em;inline-size:.75em;animation:.6s linear infinite spin}.t[data-state=skip] .t-icon:before{content:"○";color:var(--term-skip)}.t--duck{display:block}.duck-test summary{cursor:pointer;border-radius:4px;list-style:none}.duck-test summary::-webkit-details-marker{display:none}.duck-test summary:focus-visible{outline-color:var(--term-run)}.t[data-state=skip] .t-name{text-decoration:underline dotted var(--term-skip);text-underline-offset:.3em}.t[data-state=skip] .t-ms{color:var(--term-skip)}.duck-answer{font-family:var(--font-body);align-items:center;gap:.875rem;margin-block-start:.75rem;padding-inline-start:2rem;font-size:1rem;display:flex}.duck{transform-origin:50% 90%;flex:none;display:block}.duck__body,.duck__beak{stroke:var(--duck-ink);stroke-width:3px;stroke-linejoin:round}.duck__body{fill:var(--duck)}.duck__beak{fill:var(--duck-beak)}.duck__eye{fill:var(--duck-ink)}.duck__wing{stroke:var(--duck-ink);stroke-width:3px;stroke-linecap:round}.runner-summary{border-block-start:1px solid var(--term-line);color:var(--term-dim);padding:1rem 1.25rem}.sum-pass{color:var(--term-pass);font-weight:600}.section{padding-block-start:var(--section-space)}.section--first{padding-block-start:clamp(2.5rem,7vw,5rem)}.section-head{max-inline-size:42rem}.section-head p{color:var(--ink-2);margin-block-start:1rem;font-size:1.125rem}.page-title{font-size:var(--text-h2);font-stretch:80%;line-height:.95}.work-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start;gap:clamp(1.5rem,3vw,2.5rem);margin-block-start:clamp(2rem,4vw,3rem);display:grid}.project{border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2.25rem)}.project--seller{border:2px solid var(--ink);background:var(--card);box-shadow:0 6px 0 var(--hard)}.project--quest{background:var(--note);color:var(--note-ink);margin-block-start:2.5rem;transform:rotate(1.25deg)}.project--quest h3{color:inherit}.status{font-size:var(--text-sm);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.status:before{content:"";background:var(--duck);border:2px solid;border-radius:50%;block-size:.625rem;inline-size:.625rem}.project h3{margin-block-start:.875rem}.project-pitch{margin-block-start:.75rem;font-size:1.25rem;font-weight:650;line-height:1.35}.project-body{opacity:.85;max-inline-size:46ch;margin-block-start:.5rem}.ledger{border-radius:var(--radius-md);background:var(--paper-2);margin-block-start:1.75rem;padding:1.25rem}.ledger figcaption{color:var(--muted);font-size:var(--text-sm);margin-block-end:.875rem;font-weight:600}.ledger-rows{gap:.625rem;margin:0;padding:0;list-style:none;display:grid}.ledger-row{grid-template-columns:8.5rem minmax(0,1fr) 6.5rem;align-items:center;gap:.875rem;font-size:.9375rem;display:grid}.ledger-track{background:color-mix(in oklab, var(--rule) 45%, transparent);border-radius:999px;block-size:.875rem;position:relative}.ledger-bar{inline-size:var(--size);background:var(--ink-2);border-radius:999px;min-inline-size:4px;position:absolute;inset-block:0;inset-inline-start:var(--start)}.ledger-row--cost .ledger-bar{background:var(--cost)}.ledger-row--keep .ledger-bar{background:var(--accent)}.ledger-value{text-align:end;font-variant-numeric:tabular-nums;font-weight:600}.ledger-row--cost .ledger-value{color:var(--muted);font-weight:500}.ledger-row--keep{border-block-start:2px dashed var(--rule);margin-block-start:.375rem;padding-block-start:.875rem;font-weight:700}.ledger-row--keep .ledger-value{color:var(--accent);font-weight:750}.quest{border:0;margin:1.75rem 0 0;padding:0}.quest legend{margin-block-end:.75rem;padding:0;font-weight:700}.quest-steps{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.quest-step{border:2px dashed color-mix(in oklab, currentColor 45%, transparent);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.75rem;min-block-size:3rem;padding:.5rem .875rem;font-weight:600;display:flex}.quest-step:has(input:checked){border-style:solid;border-color:currentColor}.quest-step input{appearance:none;cursor:pointer;border:2px solid;border-radius:7px;flex:none;place-content:center;block-size:1.375rem;inline-size:1.375rem;margin:0;display:grid}.quest-step input:before{content:"✓";color:var(--note);transition:transform .16s var(--ease-out);font-size:.875rem;font-weight:800;line-height:1;transform:scale(0)}.quest-step input:checked{background:currentColor}.quest-step input:checked:before{transform:scale(1)}.quest-step input:focus-visible{outline-color:currentColor}.quest-status{min-block-size:1.6em;margin-block-start:.875rem;font-weight:650}.now{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:1.5rem clamp(2rem,6vw,5rem);display:grid}.now-updated{color:var(--muted);font-size:var(--text-sm);margin-block-start:.75rem}.now-list{margin:0;padding:0;list-style:none}.now-list li{border-block-start:2px solid var(--rule);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:baseline;gap:.25rem 2rem;padding-block:1.25rem;display:grid}.now-list li:last-child{border-block-end:2px solid var(--rule)}.now-list strong{letter-spacing:-.015em;font-size:1.5rem;font-weight:720;font-stretch:85%;line-height:1.15}.now-list span{color:var(--ink-2)}.log{margin:clamp(2rem,4vw,2.75rem) 0 0;padding:0;list-style:none;position:relative}.log:before{content:"";background:var(--rule);inline-size:2px;position:absolute;inset-block:1.75rem;inset-inline-start:calc(.75rem - 1px)}.log-entry{grid-template-columns:1.5rem minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding-block:1rem;display:grid;position:relative}.log-dot{border:2px solid var(--ink);background:var(--paper);border-radius:50%;justify-self:center;block-size:.875rem;inline-size:.875rem}.log-entry--current .log-dot{border-color:var(--accent);background:var(--accent);block-size:1.125rem;inline-size:1.125rem;box-shadow:0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent)}.log-role{display:grid}.log-title{font-size:clamp(1.125rem,2vw,1.375rem);font-weight:680;line-height:1.25}.log-company{color:var(--muted)}.log-years{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.empty{border:2px dashed var(--rule);border-radius:var(--radius-lg);color:var(--muted);margin-block-start:2rem;padding:clamp(1.5rem,4vw,2.25rem);font-size:1.125rem}.posts{margin:2rem 0 0;padding:0;list-style:none}.posts li{border-block-start:2px solid var(--rule)}.posts li:last-child{border-block-end:2px solid var(--rule)}.post-link{grid-template-columns:8rem minmax(0,1fr);gap:.25rem 1.5rem;padding-block:1.25rem;text-decoration:none;display:grid}.post-link time{color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;grid-row:span 2}.post-title{font-size:1.375rem;font-weight:700;line-height:1.25}.post-description{color:var(--ink-2)}.post .page-title{max-inline-size:18ch;margin-block-start:1rem}.post-meta{color:var(--muted);margin-block-start:1rem}.prose{max-inline-size:66ch;margin-block-start:2.5rem;font-size:1.125rem;line-height:1.7}.prose>*+*{margin-block-start:1.25em}.prose h2{margin-block-start:2em;font-size:2rem}.prose h3{margin-block-start:1.75em;font-size:1.5rem}.prose a{text-decoration-color:var(--accent);text-underline-offset:.2em}.prose code{font-family:var(--font-mono);font-size:.85em}.prose pre{border-radius:var(--radius-md);background:var(--term);color:var(--term-ink);padding:1.25rem;overflow-x:auto}.contact{padding-block-end:var(--section-space)}.contact h2{letter-spacing:0;font-size:clamp(3.25rem,9vw,7rem);font-weight:800;font-stretch:75%;line-height:.88}.contact-lead{max-inline-size:40ch;color:var(--ink-2);font-size:var(--text-lead);margin-block-start:1.5rem;line-height:1.35}.email{color:var(--accent);letter-spacing:-.02em;overflow-wrap:anywhere;text-underline-offset:.15em;margin-block-start:2rem;font-size:clamp(1.25rem,4.4vw,2.75rem);font-weight:720;font-stretch:85%;text-decoration-thickness:3px;display:inline-block}.contact-actions{flex-wrap:wrap;gap:.875rem;margin-block-start:1.75rem;display:flex}.site-footer{border-block-start:2px solid var(--rule);color:var(--muted);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:1rem;padding-block:1.25rem .5rem;display:flex}.social-links{gap:.25rem;display:flex}.social-link{block-size:2.75rem;inline-size:2.75rem;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}@media (hover:hover){.btn:hover{background:var(--paper-2)}.btn--solid:hover{background:var(--accent);filter:brightness(1.08)}.site-nav a:hover,.pill:hover{background:var(--paper-2);color:var(--ink)}.social-link:hover,.wordmark:hover{color:var(--accent)}.runner-again:not([aria-disabled=true]):hover{background:var(--term-line)}.duck-test summary:hover .t-name{color:var(--term-skip)}.post-link:hover .post-title{color:var(--accent)}}@media (width<=62rem){.hero{grid-template-columns:minmax(0,1fr)}.hero-lead{max-inline-size:26ch}.work-grid{grid-template-columns:minmax(0,1fr)}.project--quest{margin-block-start:0;transform:rotate(.75deg)}.now{grid-template-columns:minmax(0,1fr)}}@media (width<=44rem){.site-nav{display:none}.now-list li{grid-template-columns:minmax(0,1fr)}.project--quest{transform:none}.ledger-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value""track track";gap:.375rem .75rem}.ledger-label{grid-area:label}.ledger-value{grid-area:value}.ledger-track{grid-area:track}.log-entry{grid-template-columns:1.5rem minmax(0,1fr);gap:.25rem 1rem}.log-years{grid-column:2}.log-entry{align-items:start}.log-dot{margin-block-start:.4rem}.post-link{grid-template-columns:minmax(0,1fr)}.post-link time{grid-row:auto}.runner{font-size:.75rem}.duck-answer{padding-inline-start:0}}@media (width<=30rem){.hero-actions .btn,.contact-actions .btn{flex:100%}.site-footer{flex-direction:column-reverse;align-items:flex-start}}@media (prefers-reduced-motion:no-preference){.duck-test[open] .duck{animation:waddle-in .9s var(--ease-out) both}.duck-test[open] .duck-answer p{animation:.3s .7s both fade-in}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes waddle-in{0%{opacity:0;transform:translate(-2.5rem)rotate(0)}20%{opacity:1;transform:translate(-1.9rem)rotate(-8deg)}40%{transform:translate(-1.2rem)rotate(7deg)}60%{transform:translate(-.6rem)rotate(-6deg)}80%{transform:translate(-.1rem)rotate(4deg)}to{transform:translate(0)rotate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
