:root{--color-paper:oklch(97% .01 40);--color-paper-2:oklch(94% .012 40);--color-rule:oklch(84% .01 40);--color-neutral:oklch(58% .01 40);--color-muted:oklch(42% .008 35);--color-ink:oklch(19% .012 35);--color-accent:oklch(38% .13 22);--color-accent-strong:oklch(30% .13 22);--color-focus:oklch(50% .16 22);--color-hero-paper:oklch(14% .014 35);--color-hero-paper-2:oklch(18% .014 35);--color-hero-ink:oklch(95% .008 35);--color-hero-muted:oklch(72% .01 35);--color-hero-accent:oklch(64% .15 28);--font-display:"Fraunces", ui-serif, Georgia, serif;--font-body:"EB Garamond", ui-serif, Georgia, serif;--font-outlier:"Geist Mono", ui-monospace, "SFMono-Regular", monospace;--text-xs:.72rem;--text-sm:.85rem;--text-base:1.0625rem;--text-md:1.25rem;--text-lg:1.5625rem;--text-xl:1.9531rem;--text-2xl:2.4414rem;--text-3xl:3.0518rem;--text-display:clamp(2.75rem, 6vw + 1rem, 5.25rem);--text-display-s:clamp(2.25rem, 4vw + 1rem, 3.75rem);--space-3xs:.125rem;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2.5rem;--space-2xl:4rem;--space-3xl:6rem;--space-4xl:9rem;--page-gutter:clamp(1.25rem, 5vw, 4rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-modal:400;--z-toast:500;--z-tooltip:600;--radius-sm:2px;--rule-hairline:1px;--rule-thick:3px}@media (prefers-color-scheme:dark){:root{--color-paper:oklch(15% .012 40);--color-paper-2:oklch(19% .013 40);--color-rule:oklch(30% .01 40);--color-neutral:oklch(62% .01 40);--color-muted:oklch(74% .008 35);--color-ink:oklch(94% .008 35);--color-accent:oklch(66% .15 25);--color-accent-strong:oklch(72% .14 25);--color-focus:oklch(70% .16 25)}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;font-weight:400;line-height:1.6;overflow-x:clip}@media (prefers-color-scheme:dark){body{font-weight:350}}img,canvas{max-width:100%;display:block}a{color:inherit}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-weight:600;line-height:1.1}p{max-width:65ch;margin:0}::selection{background:var(--color-accent);color:var(--color-hero-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.container{max-width:78rem;padding-inline:var(--page-gutter);margin-inline:auto}.rule-thick{border:none;border-top:var(--rule-thick) solid var(--color-ink);margin:0}.rule-hairline{border:none;border-top:var(--rule-hairline) solid var(--color-rule);margin:0}.muted{color:var(--color-muted)}.nav-edge{padding:var(--space-lg) var(--page-gutter);inset-inline:0;z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:flex;position:absolute;top:0}.nav-edge__wordmark{font-family:var(--font-outlier);font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--color-hero-ink);white-space:nowrap;text-decoration:none}.nav-edge__cta{font-family:var(--font-outlier);font-size:var(--text-sm);letter-spacing:.04em;color:var(--color-hero-ink);white-space:nowrap;transition:border-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);border-bottom:1px solid oklch(95% .008 35/.4);padding-bottom:2px;text-decoration:none}.nav-edge__cta:hover{border-color:var(--color-hero-accent);color:var(--color-hero-accent)}.hero{background:var(--color-hero-paper);min-height:100dvh;color:var(--color-hero-ink);align-items:flex-end;display:flex;position:relative;overflow:hidden}.hero__scene{z-index:var(--z-base);position:absolute;inset:0}.hero__content{z-index:var(--z-raised);padding:var(--space-2xl) var(--page-gutter) var(--space-3xl);pointer-events:none;width:100%;position:relative}.hero__eyebrow{font-family:var(--font-outlier);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-hero-muted);margin-bottom:var(--space-md)}.hero__name{font-size:var(--text-display);overflow-wrap:anywhere;min-width:0;max-width:20ch}.hero__role{margin-top:var(--space-md);font-family:var(--font-body);font-style:italic;font-size:var(--text-lg);color:var(--color-hero-muted);max-width:48ch}.hero__scroll-cue{right:var(--page-gutter);bottom:var(--space-2xl);font-family:var(--font-outlier);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-hero-muted);writing-mode:vertical-rl;position:absolute}@media (width<=40rem){.hero__content{padding-bottom:var(--space-2xl)}.hero__name{font-size:var(--text-display-s)}.hero__scroll-cue{display:none}}.stat-strip{gap:var(--space-lg);padding:var(--space-2xl) var(--page-gutter);font-variant-numeric:tabular-nums;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.stat-strip__item b{font-family:var(--font-outlier);font-weight:500;font-size:var(--text-2xl);color:var(--color-ink);display:block}.stat-strip__item span{margin-top:var(--space-2xs);font-size:var(--text-sm);color:var(--color-muted);max-width:22ch;display:block}@media (width<=60rem){.stat-strip{row-gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr))}}.section{padding-block:var(--space-3xl);padding-inline:var(--page-gutter)}.section--tight{padding-block:var(--space-2xl)}.section__body{max-width:78rem;margin-inline:auto}.section__label{font-family:var(--font-outlier);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-top:var(--space-lg)}.steps{margin:var(--space-xl) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.steps>li{gap:var(--space-lg);padding-block:var(--space-xl);border-top:var(--rule-hairline) solid var(--color-rule);grid-template-columns:5rem 1fr;display:grid}.steps>li:last-child{border-bottom:var(--rule-hairline) solid var(--color-rule)}.step__stage{font-family:var(--font-outlier);font-size:var(--text-sm);color:var(--color-accent);font-variant-numeric:tabular-nums;padding-top:var(--space-3xs)}.step__role{font-size:var(--text-lg);margin-bottom:var(--space-2xs)}.step__meta{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-md)}.step__points{gap:var(--space-xs);max-width:62ch;margin:0;padding-left:1.1em;display:grid}.step__points li{font-size:var(--text-base)}@media (width<=40rem){.steps>li{gap:var(--space-sm);grid-template-columns:1fr}}.tag-row{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.tag{font-family:var(--font-outlier);font-size:var(--text-xs);letter-spacing:.02em;padding:var(--space-2xs) var(--space-sm);border:var(--rule-hairline) solid var(--color-rule);border-radius:var(--radius-sm);color:var(--color-muted)}.cert-list{margin:var(--space-lg) 0 0;gap:var(--space-sm);max-width:60ch;padding:0;list-style:none;display:grid}.cert-list li{padding-block:var(--space-sm);border-top:var(--rule-hairline) solid var(--color-rule);font-size:var(--text-base)}.contact__lede{max-width:52ch;font-size:var(--text-md);color:var(--color-muted)}.link-arrow{align-items:baseline;gap:var(--space-xs);margin-top:var(--space-xl);font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink);border-bottom:1px solid var(--color-rule);padding-bottom:var(--space-2xs);transition:color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out), transform var(--dur-short) var(--ease-out);text-decoration:none;display:inline-flex}.link-arrow:hover{color:var(--color-accent);border-color:var(--color-accent);transform:translate(2px)}.link-arrow__glyph{font-family:var(--font-outlier);font-size:var(--text-md)}.foot-letter{padding:var(--space-3xl) var(--page-gutter) var(--space-2xl);max-width:60ch;margin-inline:auto}.foot-letter__close{font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);line-height:1.4}.foot-letter__sign{font-style:normal;font-weight:600}.foot-letter__ps{font-size:var(--text-sm);margin-top:var(--space-md)}.foot-letter__ps a{color:var(--color-accent)}.reveal{opacity:0;animation:reveal var(--dur-long) var(--ease-out) forwards;animation-delay:calc(var(--i,0) * 70ms);transform:translateY(10px)}@keyframes reveal{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.15s!important;animation-duration:.15s!important;animation-iteration-count:1!important}.reveal{animation-name:reveal-reduced}@keyframes reveal-reduced{to{opacity:1;transform:none}}}
