@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-var.woff2)format("woff2-variations");font-weight:100 800;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-var.woff2)format("woff2-variations");font-weight:100 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-var-italic.woff2)format("woff2-variations");font-weight:100 700;font-style:italic;font-display:swap}:root{color-scheme:dark;--mineral-charcoal:#131516;--mineral-charcoal-lift:#1b1d1f;--mineral-bone:#ede6da;--mineral-silver:#a9b0b7;--mineral-turquoise:#2ba394;--mineral-turquoise-lit:#4fc4b4;--mineral-copper:#c47a4e;--mineral-slate:#2c3033;--ground:var(--mineral-charcoal);--surface:var(--mineral-charcoal-lift);--ink:var(--mineral-bone);--ink-muted:var(--mineral-silver);--rule:var(--mineral-slate);--accent-interactive:var(--mineral-turquoise-lit);--accent-interactive-dim:var(--mineral-turquoise);--accent-structural:var(--mineral-copper);--face-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--face-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-machine:var(--face-mono);--font-human:var(--face-sans);--focus-ring:var(--accent-interactive);--text-micro:.72rem;--text-small:.9rem;--text-body:1.125rem;--text-mid:1.406rem;--text-display:2.747rem;--leading-display:1.05;--leading-heading:1.25;--leading-list:1.55;--leading-prose:1.6;--measure:55ch;--gutter:max(1rem, 5vw);--space-xs:calc(var(--text-body) * var(--leading-prose) / 4);--space-s:calc(var(--text-body) * var(--leading-prose) / 2);--space-m:calc(var(--text-body) * var(--leading-prose));--space-l:calc(var(--text-body) * var(--leading-prose) * 2)}@media print{:root{color-scheme:light;--paper-white:#fff;--print-ink:#2b2b2b;--print-grey:#595959;--print-teal-pale:#bfe3dd;--ground:var(--paper-white);--surface:var(--paper-white);--ink:var(--print-ink);--ink-muted:var(--print-grey);--rule:var(--print-teal-pale);--accent-structural:var(--mineral-turquoise);--accent-interactive:var(--print-ink);--accent-interactive-dim:var(--print-ink);--text-micro:9.5pt;--text-small:10.5pt;--text-body:9.5pt;--text-mid:10.5pt;--text-display:26pt;--leading-heading:1.2;--leading-list:1.3;--leading-prose:1.35;--gutter:0;--measure:none}}body{background:var(--ground);color:var(--ink);font-family:var(--font-human);margin:0}h1,hero-tagline,resume-body h2,resume-body em{font-family:var(--font-machine);font-weight:400}site-hero,hero-lede,hero-tagline,hero-intro,hero-section,resume-page,resume-header,resume-preface,resume-body{display:block}type-cursor{display:inline}type-cursor:after{content:"_";font-family:var(--font-machine);color:var(--accent-interactive-dim)}a{color:var(--accent-interactive)}:where(a,button,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{background:var(--surface);color:var(--ink);z-index:10;padding:.75rem 1rem;top:0;left:0}hero-tagline,resume-body em,footer{color:var(--ink-muted)}resume-body h2{color:var(--accent-structural);border-bottom:1px solid var(--rule)}resume-body li::marker{color:var(--accent-structural)}header{border-bottom:1px solid var(--rule);background:var(--ground);z-index:1;position:sticky;top:0}footer{border-top:1px solid var(--rule)}body{font-size:var(--text-body);line-height:var(--leading-prose)}h1{font-size:min(8.4vw, var(--text-display));line-height:var(--leading-display);letter-spacing:-.02em;white-space:nowrap;margin-block:0 var(--space-xs)}@media screen{:is(site-hero,resume-page) h1{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}}hero-tagline{font-size:min(4.1vw, var(--text-small));letter-spacing:.06em}hero-tagline p{clip-path:inset(-100vh -100vw -100vh 0);flex-wrap:wrap;column-gap:1.5em;margin-inline-start:-6px;padding-inline-start:6px;display:flex}hero-tagline a{overflow-wrap:anywhere;position:relative}hero-tagline a:before{content:"·" / "";color:var(--ink-muted);margin-right:.42em;position:absolute;right:100%}resume-body p,resume-body ul{max-width:var(--measure)}resume-body li{line-height:var(--leading-list)}resume-body h2{font-size:var(--text-small);letter-spacing:.14em;text-transform:uppercase}resume-body h3{font-size:var(--text-mid);font-weight:600;line-height:var(--leading-heading)}.phrase{display:inline-block}resume-body em{font-size:var(--text-micro);letter-spacing:.04em;font-style:normal}nav{font-size:var(--text-small)}footer p{font-size:var(--text-micro)}header,main,footer{padding-inline:var(--gutter) max(var(--gutter), calc(100% - var(--measure) - var(--gutter)))}header{padding-block:var(--space-s)}:root{--site-header-h:calc(var(--text-body) * var(--leading-prose) + 2 * var(--space-s) + 1px)}@media (width>=768px){:root{--site-header-h:calc(var(--text-mid) * var(--leading-prose) + 2 * var(--space-s) + 1px)}}nav{align-items:baseline;gap:var(--space-xs) var(--space-m);flex-wrap:wrap;display:flex}nav .brand{font-family:var(--font-machine);font-size:var(--text-body);letter-spacing:-.02em;white-space:nowrap}nav .brand a{color:var(--ink);text-decoration:none}nav .brand a:is(:hover,:focus-visible){text-decoration:underline}@media (width>=768px){nav .brand{font-size:var(--text-mid)}}@media (width<=767.98px){nav{gap:var(--space-xs) var(--space-s)}}nav a[aria-current=page]{color:var(--ink)}main{padding-block:var(--space-l)}footer{padding-block:var(--space-m)}footer p{margin:0}address{color:var(--ink-muted);margin-block:var(--space-s);font-style:normal}address ul{gap:0 var(--space-m);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}@media screen{address{font-size:var(--text-micro)}address ul{gap:0 var(--space-xs)}address li+li:before{content:"·";margin-right:var(--space-xs)}address a{overflow-wrap:anywhere}}resume-body h2{margin-block:var(--space-l) var(--space-m);padding-bottom:var(--space-xs)}resume-body h3{margin-block:var(--space-l) var(--space-xs)}resume-body h2+h3{margin-top:0}resume-body p{margin-block:0 var(--space-s)}resume-body ul{margin-block:var(--space-s) 0}resume-body li+li{margin-top:var(--space-xs)}:is(site-hero,resume-preface) h2,:is(site-hero,resume-preface) dt{font-family:var(--font-machine);color:var(--accent-structural);letter-spacing:.14em;text-transform:uppercase;font-weight:400}:is(site-hero,resume-preface) h2{font-size:var(--text-small);border-bottom:1px solid var(--rule);margin-block:0 var(--space-m);padding-bottom:var(--space-xs)}:is(site-hero,resume-preface) dt{font-size:var(--text-micro)}:is(site-hero,resume-preface) dl,:is(site-hero,resume-preface) dd,hero-section p{margin:0}hero-section{margin-top:var(--space-l)}@media print{resume-preface,type-cursor{display:none}}main:has(>site-hero){--splash-gap:min(var(--space-l), 5vh);padding-block:var(--splash-gap)}site-hero h2{margin-bottom:var(--space-s)}body:has(site-hero) footer{padding-block:var(--space-xs)}hero-intro{margin-top:var(--space-s)}hero-intro p{margin:0}site-hero hero-section{margin-top:var(--splash-gap)}site-hero hero-section ul{margin:0;padding:0;list-style:none}site-hero h3{font-size:var(--text-body);font-weight:600;line-height:var(--leading-heading);margin:0}site-hero h3+p{font-size:var(--text-small);line-height:var(--leading-list)}hero-section dl{gap:var(--space-xs) var(--space-m);grid-template-columns:max-content 1fr;align-items:baseline;display:grid}hero-section dd ul{flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}hero-section dd li+li:before{content:"·" / "";color:var(--ink-muted);padding-inline:.5ch}.print-button{width:fit-content;margin-top:var(--space-s);cursor:pointer;font-family:var(--font-machine);font-size:var(--text-small);letter-spacing:.06em;color:var(--accent-interactive);border:1px solid var(--accent-interactive-dim);padding:var(--space-xs) var(--space-s);background:0 0;border-radius:0;display:block}.print-button:hover{background:var(--surface);border-color:var(--accent-interactive)}@media screen and (prefers-reduced-motion:no-preference){@keyframes blink{50%{opacity:0}}type-cursor:after{animation:1.5s step-end infinite blink}}mineral-surface{--surface-fit:center / cover no-repeat;z-index:-1;pointer-events:none;background:url(/mineral/stone.avif) var(--surface-fit), var(--ground);position:fixed;inset:0}mineral-surface:before,mineral-surface:after{content:"";position:absolute;inset:0}mineral-surface:before{--heat-hot:color-mix(in oklab, var(--accent-structural), var(--ink) 45%);--heat-r:22rem;background:radial-gradient(circle var(--heat-r) at var(--heat-x,50%) var(--heat-y,50%), color-mix(in srgb, var(--heat-hot) calc(var(--heat,0) * 100%), transparent) 0, color-mix(in srgb, var(--accent-structural) calc(var(--heat,0) * 85%), transparent) 30%, transparent 100%), radial-gradient(circle calc(var(--heat-r) * 1.5) at var(--warm-x,50%) var(--warm-y,50%), color-mix(in srgb, var(--accent-structural) calc(var(--warm,0) * 70%), transparent) 0, transparent 100%);mix-blend-mode:plus-lighter;mask:url(/mineral/seams.webp) var(--surface-fit)}mineral-surface:after{background:linear-gradient(to right, color-mix(in srgb, var(--ground) 80%, transparent) 0, color-mix(in srgb, var(--ground) 80%, transparent) calc(var(--gutter) + var(--measure)), transparent calc(var(--gutter) + var(--measure) + 16vw))}@media screen and (width<=47.99rem){mineral-surface:after{background:color-mix(in srgb, var(--ground) 70%, transparent)}body:has(resume-page) mineral-surface:after{background:color-mix(in srgb, var(--ground) 20%, transparent)}body{text-shadow:0 0 .3em var(--ground), 0 0 .7em var(--ground), 0 0 1.2em var(--ground)}}header{background:color-mix(in srgb, var(--ground) 45%, transparent);backdrop-filter:blur(10px)}@view-transition{navigation:auto}header{view-transition-name:site-header}::view-transition-old(root),::view-transition-new(root){animation-duration:.18s}@keyframes page-rise{0%{opacity:0;translate:0 var(--rise,1.25rem)}}@keyframes page-leave{to{opacity:0}}@media screen and (prefers-reduced-motion:no-preference){:root{--rise-ease:cubic-bezier(.22, .61, .36, 1)}::view-transition-old(root){z-index:1;mix-blend-mode:normal;animation:90ms linear both page-leave}::view-transition-new(root){animation:none}main,body>footer{animation:page-rise .6s var(--rise-ease) backwards}resume-timeline{animation:page-rise .6s var(--rise-ease) .2s backwards}main:has(>site-hero){animation:none}:is(hero-lede,selected-work)>*{--rise:2.75rem;animation:page-rise .6s var(--rise-ease) var(--stage,0s) backwards}hero-lede>:nth-child(3),selected-work>:first-child{--stage:.14s}hero-lede>:nth-child(4),selected-work>:nth-child(2){--stage:.28s}}@media print{mineral-surface{display:none}@page{size:8.5in 11in;margin:.55in .6in}body{print-color-adjust:exact}.skip-link,header,footer,.print-button{display:none}a{text-decoration:none}h1,h2,h3,resume-body h3+p{break-after:avoid}li,.phrase{break-inside:avoid}p,li{orphans:3;widows:3}h1{color:var(--accent-structural)}main{padding-block:0}}
