:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.8125rem;--text-sm:.9375rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.875rem;--text-3xl:2.25rem;--text-display-s:clamp(2.5rem, 4.5vw + .5rem, 4rem);--text-display:clamp(3rem, 7vw + .5rem, 6.25rem);--text-section:clamp(2.25rem, 3vw + 1rem, 4rem);--text-title:clamp(1.35rem, .8vw + 1rem, 1.75rem);--text-lead:clamp(1.125rem, .4vw + 1rem, 1.4rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--dur-micro:.16s;--dur-short:.28s;--dur-long:.68s;--dur-enter:.9s;--dur-hero:1.8s;--color-error:oklch(62% .18 25);--color-success:oklch(72% .12 155);--container:1280px;--gutter:48px;--gap-columns:28px;--section-gap-s:96px;--section-gap:120px;--section-gap-l:160px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--color-paper:oklch(14% .028 250);--color-paper-2:oklch(18% .03 248);--color-paper-3:oklch(22% .028 246);--color-ink:oklch(96% .012 85);--color-ink-2:oklch(84% .018 80);--color-muted:oklch(68% .02 78);--color-rule:oklch(32% .02 248);--color-rule-2:oklch(40% .022 248);--color-accent:oklch(74% .12 48);--color-accent-ink:oklch(18% .04 48);--color-accent-2:oklch(82% .1 55);--color-focus:oklch(78% .12 48);--color-panel:oklch(20% .025 250/.72);--color-panel-solid:oklch(22% .03 250);--color-bubble-in:oklch(28% .02 250);--color-bubble-out:oklch(42% .06 48);--color-settled:oklch(78% .11 155);--color-veil-strong:oklch(12% .03 250/.88);--color-veil-mid:oklch(12% .03 250/.55);--color-veil-soft:oklch(12% .03 250/.28);--color-veil-base:oklch(12% .03 250/.72);--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Figtree", ui-sans-serif, system-ui, sans-serif;--font-outlier:"IBM Plex Mono", ui-monospace, monospace;--radius-card:18px;--radius-input:12px;--radius-pill:999px;--radius-phone:28px;--rule-hair:1px;--shadow-card:0 24px 60px oklch(8% .03 250/.45);--shadow-soft:0 12px 40px oklch(8% .03 250/.35);--tracking-display:-.035em;--display-weight:500}*,:before,:after{box-sizing:border-box}html,body{overflow-x:clip}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:color-mix(in oklab, var(--color-accent) 22%, transparent);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-synthesis:none;overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}h1,h2,h3{font-weight:var(--display-weight);letter-spacing:var(--tracking-display);color:var(--color-ink);line-height:1.05}h1{max-width:14ch;font-size:var(--text-display);font-variation-settings:"SOFT" 50, "WONK" .4}h2{max-width:18ch;font-size:var(--text-section)}h3{max-width:28ch;font-size:var(--text-title);letter-spacing:-.02em;line-height:1.2}.lead{font-family:var(--font-body);font-size:var(--text-lead);max-width:34ch;color:var(--color-ink-2);font-weight:400;line-height:1.45}.skip{left:var(--space-md);top:var(--space-md);z-index:var(--z-tooltip);padding:var(--space-sm) var(--space-md);background:var(--color-accent);color:var(--color-accent-ink);border-radius:var(--radius-input);position:absolute;transform:translateY(-220%)}.skip:focus{transform:none}.fig{font-family:var(--font-outlier);font-variant-numeric:tabular-nums;font-size:var(--text-xs);letter-spacing:.02em;color:var(--color-muted)}.site-nav{z-index:var(--z-sticky-nav);background:color-mix(in oklab, var(--color-paper) 55%, transparent);border-bottom:var(--rule-hair) solid color-mix(in oklab, var(--color-ink) 8%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);position:fixed;inset:0 0 auto}.nav-row{justify-content:space-between;align-items:center;gap:var(--space-lg);min-height:72px;display:flex}.wordmark{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);letter-spacing:-.03em;color:var(--color-ink);text-decoration:none}.nav-links{align-items:center;gap:var(--space-lg);font-size:var(--text-sm);color:var(--color-ink-2);display:none}.nav-links a:not(.btn){text-decoration:none;position:relative}.nav-links a:not(.btn):after{content:"";background:var(--color-accent);transform-origin:0;width:100%;height:1px;transition:transform var(--dur-short) var(--ease-soft);position:absolute;bottom:-4px;left:0;transform:scaleX(0)}.nav-links a:not(.btn):hover{color:var(--color-ink)}.nav-links a:not(.btn):hover:after{transform:scaleX(1)}.nav-toggle{min-height:44px;padding:0 var(--space-md);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);color:var(--color-ink);cursor:pointer;background:0 0}.mobile-nav{gap:var(--space-sm);padding:var(--space-md) var(--gutter) var(--space-lg);border-top:var(--rule-hair) solid var(--color-rule);background:var(--color-paper-2);display:grid}.mobile-nav a:not(.btn){min-height:44px;color:var(--color-ink-2);align-items:center;text-decoration:none;display:inline-flex}@media (width>=60rem){.nav-links{display:flex}.nav-toggle,.mobile-nav{display:none!important}}.btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:48px;padding:0 var(--space-lg);border-radius:var(--radius-input);font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;transition:transform var(--dur-short) var(--ease-soft), background-color var(--dur-short) var(--ease-soft), border-color var(--dur-short) var(--ease-soft), color var(--dur-short) var(--ease-soft), box-shadow var(--dur-short) var(--ease-soft);border:0;line-height:1;text-decoration:none;display:inline-flex}.btn--accent{background:var(--color-accent);color:var(--color-accent-ink);box-shadow:0 10px 30px color-mix(in oklab, var(--color-accent) 28%, transparent)}.btn--accent:hover{background:var(--color-accent-2);box-shadow:0 16px 36px color-mix(in oklab, var(--color-accent) 34%, transparent);transform:translateY(-2px)}.btn--ghost{color:var(--color-ink);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--color-ink) 28%, transparent);background:0 0}.btn--ghost:hover{background:color-mix(in oklab, var(--color-ink) 8%, transparent);transform:translateY(-2px)}.btn:active{transform:translateY(1px)scale(.98)}.btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.hero{min-height:100svh;padding-block:calc(72px + var(--space-lg)) var(--space-xl);align-items:center;display:grid;position:relative;overflow:clip}.hero__media{z-index:0;position:absolute;inset:0}.hero__media img{object-fit:cover;width:100%;height:100%;animation:hero-settle var(--dur-hero) var(--ease-soft) both;transform:scale(1.05)}.hero__veil{z-index:1;background:linear-gradient(105deg, var(--color-veil-strong) 0%, var(--color-veil-mid) 48%, var(--color-veil-soft) 100%), linear-gradient(to top, var(--color-veil-base) 0%, transparent 38%, color-mix(in oklab, var(--color-paper) 35%, transparent) 100%);pointer-events:none;position:absolute;inset:0}.hero__grid{z-index:2;gap:var(--space-xl);align-items:center;width:100%;display:grid;position:relative}@media (width>=60rem){.hero__grid{gap:var(--gap-columns);grid-template-columns:minmax(0,1.05fr) minmax(18rem,.85fr)}}.hero__copy h1{margin-bottom:var(--space-lg);text-wrap:balance;gap:.08em;display:grid}.hero__copy .line{display:block}.hero-actions{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.hero__stage{gap:var(--space-md);justify-items:stretch;display:grid}.seg{gap:var(--space-2xs);padding:var(--space-2xs);border-radius:var(--radius-pill);background:color-mix(in oklab, var(--color-paper) 55%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--color-ink) 12%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:0;width:fit-content;margin:0;display:inline-flex}.seg input{opacity:0;width:1px;height:1px;position:absolute}.seg label{min-height:40px;padding:0 var(--space-md);border-radius:var(--radius-pill);cursor:pointer;color:var(--color-muted);font-size:var(--text-sm);transition:color var(--dur-short) var(--ease-soft), background-color var(--dur-short) var(--ease-soft), transform var(--dur-micro) var(--ease-soft);align-items:center;font-weight:500;display:inline-flex}.seg label:hover{color:var(--color-ink-2)}.seg input:checked+label{background:var(--color-ink);color:var(--color-paper)}.seg input:focus-visible+label{outline:2px solid var(--color-focus);outline-offset:2px}.phone{border-radius:var(--radius-phone);background:var(--color-panel-solid);border:var(--rule-hair) solid color-mix(in oklab, var(--color-ink) 14%, transparent);box-shadow:var(--shadow-card);padding:var(--space-md);gap:var(--space-md);grid-template-rows:auto 1fr auto;min-height:380px;display:grid}.phone--live{animation:soft-fade var(--dur-long) var(--ease-soft) both}.phone__chrome{align-items:center;gap:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:var(--rule-hair) solid color-mix(in oklab, var(--color-ink) 10%, transparent);grid-template-columns:auto 1fr auto;display:grid}.phone__dots{border-radius:var(--radius-pill);background:radial-gradient(circle at 6px 50%, var(--color-muted) 3px, transparent 3.5px), radial-gradient(circle at 18px 50%, var(--color-muted) 3px, transparent 3.5px), radial-gradient(circle at 30px 50%, var(--color-muted) 3px, transparent 3.5px);opacity:.7;width:42px;height:10px}.phone__title{font-size:var(--text-sm);color:var(--color-ink-2);text-align:center;font-weight:500}.phone__time{color:var(--color-muted)}.thread{gap:var(--space-sm);align-content:start;min-height:260px;margin:0;padding:0;list-style:none;display:grid}.bubble{max-width:88%;font-size:var(--text-sm);color:var(--color-ink);border-radius:16px;padding:.7rem .95rem;line-height:1.45}.bubble--guest{background:var(--color-bubble-in);border-bottom-left-radius:5px;justify-self:start}.bubble--agent{background:color-mix(in oklab, var(--color-accent) 42%, var(--color-paper-2));color:var(--color-ink);border-bottom-right-radius:5px;justify-self:end}.bubble.is-in{animation:bubble-in var(--dur-long) var(--ease-soft) both}.bubble--guest.is-in{animation-name:bubble-in-left}.bubble--agent.is-in{animation-name:bubble-in-right}.bubble--typing{gap:var(--space-2xs);min-height:38px;animation:soft-fade var(--dur-short) var(--ease-soft) both;align-items:center;display:inline-flex}.bubble--typing.bubble--guest{background:var(--color-bubble-in);justify-self:start}.bubble--typing.bubble--agent{background:color-mix(in oklab, var(--color-accent) 42%, var(--color-paper-2));justify-self:end}.bubble--typing span{background:var(--color-muted);width:6px;height:6px;animation:typing 1.35s var(--ease-in-out) infinite;border-radius:50%}.bubble--typing span:nth-child(2){animation-delay:.18s}.bubble--typing span:nth-child(3){animation-delay:.36s}.settled{opacity:0;font-family:var(--font-display);font-weight:600;font-size:var(--text-md);color:var(--color-settled);letter-spacing:-.02em;margin:0}.settled.is-in{animation:settled-in .9s var(--ease-soft) both}@keyframes soft-rise{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}@keyframes soft-fade{0%{opacity:0}to{opacity:1}}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes bubble-in-left{0%{opacity:0;transform:translate(-10px,6px)scale(.98)}to{opacity:1;transform:none}}@keyframes bubble-in-right{0%{opacity:0;transform:translate(10px,6px)scale(.98)}to{opacity:1;transform:none}}@keyframes settled-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes typing{0%,70%,to{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}@keyframes hero-settle{0%{transform:scale(1.08)}to{transform:scale(1.05)}}@keyframes line-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes item-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}html.js .hero__copy[data-enter]{opacity:1;transform:none}html.js .hero__copy[data-enter] .line{opacity:0;animation:line-rise var(--dur-enter) var(--ease-soft) both;animation-delay:calc(.12s + (var(--line,0) * .14s));display:block}html.js .hero__copy[data-enter] [data-enter-item]{opacity:0;animation:item-rise var(--dur-enter) var(--ease-soft) both}html.js .hero__copy[data-enter] .lead[data-enter-item]{animation-delay:.42s}html.js .hero__copy[data-enter] .hero-actions[data-enter-item]{animation-delay:.56s}html.js .hero__stage[data-enter]{opacity:0;animation:soft-rise var(--dur-enter) var(--ease-soft) both;animation-delay:.38s}.chapter{gap:var(--section-gap);padding-block:var(--section-gap);background:var(--color-paper);display:grid}.chapter__panel{gap:var(--space-lg);min-height:0;padding-inline:var(--gutter);max-width:var(--container);box-sizing:border-box;grid-template-columns:1fr;width:100%;margin-inline:auto;display:grid;position:relative;overflow:clip}@media (width>=60rem){.chapter__panel{align-items:center;gap:var(--gap-columns);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.chapter__panel--flip{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}.chapter__panel--flip .chapter__photo{order:2}}.chapter__photo{aspect-ratio:5/4;border-radius:var(--radius-card);border:var(--rule-hair) solid var(--color-rule);min-height:280px;transition:transform var(--dur-short) var(--ease-soft), box-shadow var(--dur-short) var(--ease-soft);margin:0;position:relative;overflow:hidden}.chapter__photo img{object-fit:cover;width:100%;height:100%}@media (hover:hover) and (pointer:fine){a.chapter__photo:hover,.chapter__panel:hover .chapter__photo{box-shadow:var(--shadow-soft);transform:translateY(-2px)}}.chapter__copy{z-index:1;max-width:34rem;box-shadow:none;background:0 0;border:0;padding:0;position:relative}.chapter__copy h2{margin-block:var(--space-sm) var(--space-md)}.chapter__copy p:last-child{color:var(--color-ink-2);max-width:48ch}.chapter__index{color:var(--color-accent-2)}.section{padding-block:var(--section-gap)}.section__intro{margin-bottom:var(--space-2xl)}.section-lead{margin-top:var(--space-md);color:var(--color-ink-2);font-size:var(--text-lead);max-width:42ch;line-height:1.45}.work{background:radial-gradient(80% 60% at 10% 0%, color-mix(in oklab, var(--color-accent) 12%, transparent), transparent 55%), var(--color-paper)}.rail{gap:var(--space-md);margin:0;padding:0;list-style:none;display:grid}@media (width>=48rem){.rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=70rem){.rail{grid-template-columns:repeat(4,minmax(0,1fr))}}.rail__card{min-height:220px;padding:var(--space-lg);border-radius:var(--radius-card);background:var(--color-panel-solid);color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule);transition:transform var(--dur-short) var(--ease-soft), border-color var(--dur-short) var(--ease-soft), box-shadow var(--dur-short) var(--ease-soft)}@media (hover:hover) and (pointer:fine){.rail__card:hover{border-color:color-mix(in oklab, var(--color-accent) 45%, var(--color-rule));box-shadow:var(--shadow-soft);transform:translateY(-2px)}}.rail__card h3{margin-block:var(--space-md) var(--space-sm)}.rail__card p{color:var(--color-ink-2);font-size:var(--text-sm);max-width:46ch}.method-head{max-width:40rem;margin-bottom:var(--space-2xl)}.steps{gap:var(--space-md);border-top:var(--rule-hair) solid var(--color-rule);margin:0;padding:0;list-style:none;display:grid}@media (width>=60rem){.steps{grid-template-columns:repeat(4,minmax(0,1fr))}}.steps li{gap:var(--space-md);padding:var(--space-xl) var(--space-md) var(--space-lg) 0;border-bottom:var(--rule-hair) solid var(--color-rule);min-height:180px;color:var(--color-ink-2);display:grid}@media (width>=60rem){.steps li{border-bottom:0;border-right:var(--rule-hair) solid var(--color-rule);padding-right:var(--space-lg)}.steps li:last-child{border-right:0}}.steps .fig{color:var(--color-accent-2)}.contact{padding-block:var(--section-gap-s) var(--section-gap)}.contact-panel{padding:var(--space-2xl);border-radius:calc(var(--radius-card) + 4px);background:var(--color-paper-2);color:var(--color-ink);border:var(--rule-hair) solid var(--color-rule-2);gap:var(--space-lg);align-content:center;min-height:380px;display:grid}.contact-lead{margin-top:0}.contact-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.fill-note{font-size:var(--text-sm);color:var(--color-muted)}.fill{border:1px dashed color-mix(in oklch, var(--color-muted) 70%, transparent);color:var(--color-muted);border-radius:3px;padding:0 .25em}.site-footer{border-top:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-2xl) var(--space-xl);background:var(--color-paper-2);color:var(--color-ink)}.footer-row{gap:var(--space-xl);margin-bottom:var(--space-xl);display:grid}@media (width>=48rem){.footer-row{grid-template-columns:1.4fr 1fr}}.colophon{margin-top:var(--space-sm);color:var(--color-ink-2);max-width:42ch;font-size:var(--text-sm)}.footer-links{gap:var(--space-md);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.photo-credits{gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-muted);display:grid}.photo-credits a{color:var(--color-ink-2)}.legal{color:var(--color-muted)}@media (prefers-reduced-motion:reduce){.hero__media img,.bubble.is-in,.settled.is-in,.phone--live,.bubble--typing,html.js .hero__copy[data-enter] .line,html.js .hero__copy[data-enter] [data-enter-item],html.js .hero__stage[data-enter]{opacity:1!important;animation:none!important;transform:none!important}.rail__card,.btn,.seg label,.chapter__photo{transition:none}}
