.site-header[data-astro-cid-vtybea45]{z-index:20;border-bottom:1px solid var(--color-line);background:color-mix(in srgb, var(--color-background) 92%, transparent);backdrop-filter:blur(10px);position:sticky;top:0}.header-inner[data-astro-cid-vtybea45]{justify-content:space-between;align-items:center;gap:1rem;min-height:3.8rem;display:flex}.monogram[data-astro-cid-vtybea45],.desktop-nav[data-astro-cid-vtybea45] a[data-astro-cid-vtybea45],.header-tools[data-astro-cid-vtybea45]{font:600 var(--text-label)/1 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;text-decoration:none}.monogram[data-astro-cid-vtybea45]{font-size:.95rem}.desktop-nav[data-astro-cid-vtybea45]{gap:clamp(.8rem,1.8vw,1.8rem);display:flex}.desktop-nav[data-astro-cid-vtybea45] a[data-astro-cid-vtybea45]{color:var(--color-muted);position:relative}.desktop-nav[data-astro-cid-vtybea45] a[data-astro-cid-vtybea45][aria-current=true]{color:var(--color-text)}.desktop-nav[data-astro-cid-vtybea45] a[data-astro-cid-vtybea45][aria-current=true]:after{background:var(--color-accent);content:"";height:1px;position:absolute;bottom:-.55rem;left:0;right:0}.header-tools[data-astro-cid-vtybea45],.mode-toggle[data-astro-cid-vtybea45]{align-items:center;gap:.55rem;display:flex}.mode-toggle[data-astro-cid-vtybea45] button[data-astro-cid-vtybea45],.theme-button[data-astro-cid-vtybea45],.menu-button[data-astro-cid-vtybea45]{appearance:none;color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:.5rem 0}.mode-toggle[data-astro-cid-vtybea45] button[data-astro-cid-vtybea45][aria-pressed=true]{color:var(--color-text)}.resume-link[data-astro-cid-vtybea45]{color:var(--color-text);text-decoration:none}.theme-button[data-astro-cid-vtybea45]{font-size:1rem}.menu-button[data-astro-cid-vtybea45]{width:2.75rem;min-height:2.75rem;margin-right:-.5rem;display:none}.menu-button[data-astro-cid-vtybea45] span[data-astro-cid-vtybea45]{background:currentColor;width:1.25rem;height:1px;margin:.28rem auto;display:block}.mobile-nav[data-astro-cid-vtybea45]{border-top:1px solid var(--color-line);padding:.75rem var(--container-gutter) 1rem;background:var(--color-background)}.mobile-nav[data-astro-cid-vtybea45] a[data-astro-cid-vtybea45]{border-bottom:1px solid var(--color-line);font:600 var(--text-small)/1.2 var(--font-mono);padding:.8rem 0;text-decoration:none;display:block}.mobile-mode-toggle[data-astro-cid-vtybea45]{font:600 var(--text-label)/1 var(--font-mono);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:.55rem;padding:.55rem 0 .75rem;display:flex}.mobile-mode-toggle[data-astro-cid-vtybea45] button[data-astro-cid-vtybea45]{appearance:none;color:var(--color-muted);cursor:pointer;background:0 0;border:0;padding:.5rem 0}.mobile-mode-toggle[data-astro-cid-vtybea45] button[data-astro-cid-vtybea45][aria-pressed=true]{color:var(--color-text)}@media (width<=850px){.desktop-nav[data-astro-cid-vtybea45],.mode-toggle[data-astro-cid-vtybea45],.resume-link[data-astro-cid-vtybea45]{display:none}.menu-button[data-astro-cid-vtybea45]{display:block}}.footer[data-astro-cid-yfu5idmn]{border-top:1px solid var(--color-line);padding-block:1.3rem}.footer-inner[data-astro-cid-yfu5idmn]{font:var(--text-label)/1.4 var(--font-mono);color:var(--color-muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.footer[data-astro-cid-yfu5idmn] button[data-astro-cid-yfu5idmn]{color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}@layer tokens{@layer tokens{:root{--color-background:#f2efe7;--color-surface:#e9e5da;--color-text:#171714;--color-muted:#65625c;--color-subtle:#8b877e;--color-line:#17171429;--color-line-strong:#17171461;--color-accent:#a9472c;--color-accent-soft:#a9472c1f;--font-sans:"Arial Nova", "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--container-width:94rem;--container-gutter:clamp(1.25rem, 3vw, 3rem);--space-section:clamp(4.5rem, 7vw, 8rem);--space-section-compact:clamp(3rem, 5vw, 5rem);--text-label:clamp(.68rem, .65rem + .1vw, .78rem);--text-small:clamp(.82rem, .78rem + .15vw, .95rem);--text-body:clamp(1rem, .95rem + .22vw, 1.18rem);--text-lead:clamp(1.28rem, 1.05rem + .8vw, 1.9rem);--text-project:clamp(2rem, 1.55rem + 1.7vw, 3.6rem);--text-section:clamp(2.7rem, 1.7rem + 3.4vw, 5.45rem);--text-hero:clamp(4.65rem, 2.3rem + 9vw, 11.5rem);--radius-minimal:2px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-standard:cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{--color-background:#1e1d19;--color-surface:#282620;--color-text:#f3efe5;--color-muted:#b7b0a1;--color-subtle:#898376;--color-line:#f3efe52e;--color-line-strong:#f3efe56b;--color-accent:#e98a67;--color-accent-soft:#e98a6724}}}@layer reset{@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body,h1,h2,h3,p,ul{margin:0}ul{padding:0}img{max-width:100%;display:block}button,input{font:inherit}a{color:inherit}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}}@layer base{@layer base{body{background:var(--color-background);min-width:320px;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-body);text-rendering:optimizelegibility;line-height:1.55;overflow-x:clip}main{overflow:clip}a{text-underline-offset:.18em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.skip-link{z-index:50;background:var(--color-text);color:var(--color-background);font:700 var(--text-label)/1 var(--font-mono);padding:.7rem .9rem;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-container{width:min(calc(100% - var(--container-gutter) * 2), var(--container-width));margin-inline:auto}.editorial-grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1rem,2vw,2.25rem);display:grid}.section{padding-block:var(--space-section);scroll-margin-top:4rem}.section-rule{border-top:1px solid var(--color-line)}.section-marker,.meta-label,.meta-value,.eyebrow,.record-index{font-family:var(--font-mono);font-size:var(--text-label);letter-spacing:.055em;text-transform:uppercase}.section-marker{color:var(--color-accent)}.section-heading{max-width:13ch;font-size:var(--text-section);letter-spacing:-.075em;margin:.75rem 0 clamp(2.5rem,6vw,5rem);font-weight:500;line-height:.92}.text-link{font:600 var(--text-small)/1.3 var(--font-mono);align-items:baseline;gap:.4rem;text-decoration:none;display:inline-flex}.text-link:after{content:"↗";color:var(--color-accent);transition:transform .18s var(--ease-out)}.text-link:hover:after{transform:translate(3px,-3px)}.mode-tech{display:none}:root[data-mode=tech] .mode-tech{display:revert}:root[data-mode=tech] .mode-pro{display:none}.reveal{animation:reveal .48s var(--ease-out) both;animation-timeline:view();animation-range:entry 8% cover 28%}@keyframes reveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.reveal{animation:none}}}@layer components{.section-heading>div{grid-column:1/3}.section-heading h2{font-size:var(--text-section);letter-spacing:-.075em;grid-column:3/11;margin:0;font-weight:500;line-height:.92}.about-image{grid-column:3/7;min-width:0}.about-image img{aspect-ratio:4/5;object-fit:cover;width:100%}.about-copy{grid-column:8/13;min-width:0}.about-copy p+p{margin-top:1.25rem}.fact-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2.5rem;display:grid}.fact-list div,.flagship-facts div{border-top:1px solid var(--color-line);min-width:0;padding-top:.55rem}.fact-list dt,.flagship-facts span,.tech-line span,.project-metadata b{color:var(--color-subtle);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase;display:block}.fact-list dd{font-size:var(--text-small);margin:.3rem 0 0}.ledger,.project-list{margin-left:calc(16.6667% + 2*clamp(1rem,2vw,2.25rem))}.ledger-row{border-top:1px solid var(--color-line);grid-template-columns:1.25fr 4fr 1.25fr;gap:1.5rem;padding:1.5rem 0;display:grid}.ledger-date,.ledger-location,.project-index,.project-category{color:var(--color-muted);font:var(--text-label)/1.3 var(--font-mono);text-transform:uppercase}.ledger-company{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.ledger-main h3,.stack-row h3,.project-title-wrap h3,.education-row h3{font-size:var(--text-project);letter-spacing:-.06em;margin:.4rem 0 1rem;font-weight:500;line-height:.94}.responsibilities{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.responsibilities span{color:var(--color-subtle);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.responsibilities p{font-size:var(--text-small);margin-top:.35rem}.tech-line{border-top:1px solid var(--color-line);font:var(--text-label)/1.45 var(--font-mono);margin-top:1.25rem;padding-top:.65rem}.tech-line span{margin-bottom:.3rem}.stack-list{margin-left:calc(16.6667% + 2*clamp(1rem,2vw,2.25rem))}.stack-row{border-top:1px solid var(--color-line);grid-template-columns:1fr 2.2fr 3fr;gap:1.5rem;padding:1.25rem 0;display:grid}.stack-row>div p{color:var(--color-muted);font-size:var(--text-small)}.stack-tools{font:var(--text-small)/1.45 var(--font-mono);flex-wrap:wrap;align-content:start;gap:.4rem .8rem;display:flex}.flagship{border-block:1px solid var(--color-line);padding-block:1.5rem}.flagship-label{color:var(--color-muted);font:var(--text-label)/1.25 var(--font-mono);text-transform:uppercase;grid-column:3/5;align-content:start;gap:.35rem;display:grid}.flagship-content{grid-column:5/13;min-width:0}.flagship-kicker{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.flagship-content h3{max-width:14ch;font-size:var(--text-project);letter-spacing:-.07em;margin:.65rem 0 1.25rem;font-weight:500;line-height:.92}.flagship-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem;display:grid}.flagship-facts p{font-size:var(--text-small);margin-top:.35rem}.project-row{border-top:1px solid var(--color-line);transition:background-color .18s var(--ease-out);grid-template-columns:.7fr 2.4fr 2fr .4fr;gap:1.25rem;padding:1.35rem 0;display:grid}.project-row:hover{background:var(--color-accent-soft)}.project-title-wrap,.project-metadata{min-width:0}.project-title-wrap h3 a,.project-arrow{text-decoration:none}.project-title-wrap h3 a{transition:color .18s var(--ease-out), transform .18s var(--ease-out)}.project-row:hover .project-title-wrap h3 a{color:var(--color-accent)}.project-metadata{font-size:var(--text-small)}.project-metadata p+p{margin-top:.7rem}.project-metadata b{margin-bottom:.25rem}[data-tech],:root[data-mode=tech] [data-pro]{display:none}:root[data-mode=tech] [data-tech]{display:block}.education-row{border-top:1px solid var(--color-line);grid-template-columns:1fr 3fr 2fr;gap:1.5rem;margin-left:calc(16.6667% + 2*clamp(1rem,2vw,2.25rem));padding-top:1.25rem;display:grid}.education-row>span,.education-row b{font:var(--text-label)/1.3 var(--font-mono);text-transform:uppercase}.contact-section{border-top:1px solid var(--color-line);padding-block:var(--space-section)}.contact-section h2{letter-spacing:-.09em;max-width:13ch;margin:1rem 0 3rem 16.66%;font-size:clamp(3.5rem,8.5vw,9rem);font-weight:500;line-height:.83}.contact-links{font:600 var(--text-small)/1.3 var(--font-mono);flex-wrap:wrap;gap:1rem 2rem;margin-left:16.66%;display:flex}.contact-links a:first-child{color:var(--color-accent)}@media (width<=700px){.section-heading>div,.section-heading h2,.about-image,.about-copy{grid-column:1/-1}.about-copy{margin-top:1.5rem}.ledger,.stack-list,.project-list{margin-left:0}.ledger-row,.stack-row,.project-row,.education-row{grid-template-columns:1fr;gap:.8rem}.responsibilities,.flagship-facts{grid-template-columns:1fr}.flagship-label,.flagship-content{grid-column:1/-1}.education-row,.contact-section h2,.contact-links{margin-left:0}.project-metadata{border-top:1px solid var(--color-line);padding-top:.65rem}.project-arrow{display:none}}}}@layer components{@layer components{.section-intro{grid-column:1/10}.section-intro h2,.section-heading h2{max-width:16ch;font-size:var(--text-section);letter-spacing:-.078em;font-weight:500;line-height:.9}.section-heading>div:first-child{grid-column:1/3}.section-heading h2{grid-column:3/12;margin:0}.about-image{grid-column:2/6;min-width:0;margin-top:clamp(2.5rem,6vw,6rem)}.about-image img{aspect-ratio:4/5;object-fit:cover;object-position:center 30%;width:100%;max-height:min(70vh,45rem)}.about-copy{grid-column:7/12;min-width:0;margin-top:clamp(2.5rem,6vw,6rem)}.about-copy p{max-width:59ch}.about-copy p+p{margin-top:1.2rem}.fact-list{border-top:1px solid var(--color-line);margin-top:2.5rem}.fact-list div{border-bottom:1px solid var(--color-line);grid-template-columns:7.5rem minmax(0,1fr);gap:1rem;padding:.65rem 0;display:grid}.fact-list dt{color:var(--color-subtle);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.fact-list dd{font-size:var(--text-small);margin:0}.ledger,.stack-list,.project-list{border-top:1px solid var(--color-line)}.ledger-row{border-bottom:1px solid var(--color-line);grid-template-columns:2fr 7fr 2fr;gap:clamp(1rem,2vw,2rem);padding:2rem 0;display:grid}.ledger-main{min-width:0}.ledger-company{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.ledger-main h3{letter-spacing:-.06em;margin:.45rem 0 1rem;font-size:clamp(1.8rem,1.45rem + 1.6vw,3rem);font-weight:500;line-height:.96}.ledger-mobile-location{display:none}.ledger-main>p{max-width:64ch;color:var(--color-muted)}.ledger-location{font:var(--text-label)/1.3 var(--font-mono);color:var(--color-muted);text-align:right}.responsibilities{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2rem 0;display:grid}.responsibilities div{min-width:0}.responsibilities span,.flagship-facts span{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.responsibilities p,.flagship-facts p{font-size:var(--text-small);margin-top:.45rem;line-height:1.4}.tech-line{border-top:1px solid var(--color-line);font:var(--text-label)/1.5 var(--font-mono);padding-top:.8rem;color:var(--color-text)!important}.tech-line span{color:var(--color-subtle);text-transform:uppercase;margin-right:.8rem}.stack-row{border-bottom:1px solid var(--color-line);grid-template-columns:1fr 4fr 6fr;gap:1.5rem;padding:1.5rem 0;display:grid}.stack-row>span{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono)}.stack-row h3{letter-spacing:-.045em;font-size:1.4rem;font-weight:500}.stack-row div p{color:var(--color-muted);font-size:var(--text-small);margin-top:.35rem}.stack-tools{letter-spacing:-.045em;max-width:30ch;font-size:clamp(1.1rem,.9rem + 1vw,1.65rem);line-height:1.35}.flagship{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding:1.6rem 0 3rem}.flagship-label{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase;grid-column:1/4;align-content:start;gap:.4rem;display:grid}.flagship-content{grid-column:4/12;min-width:0}.flagship-kicker{color:var(--color-accent);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.flagship h3{letter-spacing:-.08em;max-width:14ch;margin:1rem 0 0;font-size:clamp(2.7rem,1.8rem + 3.5vw,5.7rem);font-weight:500;line-height:.9}.flagship-content>p:not(.flagship-kicker):not(.tech-line){max-width:60ch;color:var(--color-muted);margin-top:2rem}.flagship-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2.5rem 0;display:grid}.project-row{border-bottom:1px solid var(--color-line);transition:background-color .18s var(--ease-out), padding .18s var(--ease-out);grid-template-columns:1fr 5fr 5fr 1fr;gap:1.5rem;padding:1.5rem 0;display:grid}.project-row:hover{background:var(--color-accent-soft);padding-inline:.65rem}.project-index,.project-title-wrap>p:first-child{color:var(--color-subtle);font:var(--text-label)/1.2 var(--font-mono);text-transform:uppercase}.project-index{color:var(--color-accent)}.project-title-wrap{min-width:0}.project-title-wrap h3{letter-spacing:-.065em;margin:.4rem 0 0;font-size:clamp(1.8rem,1.35rem + 2vw,3.3rem);font-weight:500;line-height:.96}.project-title-wrap h3 a,.project-arrow{text-decoration:none}.project-title-wrap>p:not(:first-child){color:var(--color-muted);font-size:var(--text-small);margin-top:.8rem}.project-metadata{color:var(--color-muted);font:var(--text-label)/1.5 var(--font-mono)}.project-metadata p{min-width:0;margin-top:.5rem}.project-metadata b{color:var(--color-text);font-weight:500}.project-technical{min-width:0;padding-top:.1rem}.project-arrow{transition:transform .18s var(--ease-out);font-size:1.6rem}.project-row:hover .project-arrow{transform:translate(3px,-3px)}.education-row{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);font:var(--text-small)/1.5 var(--font-mono);grid-template-columns:2fr 6fr 3fr;gap:1.5rem;padding:1.5rem 0;display:grid}.education-row h3{font:500 clamp(1.6rem, 1.3rem + 1.5vw, 2.6rem)/1 var(--font-sans);letter-spacing:-.055em}.education-row p{color:var(--color-muted);margin-top:.5rem}.contact-section{padding-block:var(--space-section)}.contact-section h2{letter-spacing:-.1em;max-width:13ch;margin:0;font-size:clamp(3.8rem,2rem + 7vw,9.5rem);font-weight:500;line-height:.8}.contact-links{border-top:1px solid var(--color-line);margin-top:4rem}.contact-links a{border-bottom:1px solid var(--color-line);padding:.75rem 0;font-size:clamp(1.15rem,1rem + 1vw,2rem);text-decoration:none;display:block}[data-tech],:root[data-mode=tech] [data-pro]{display:none}:root[data-mode=tech] [data-tech]{display:block}@media (prefers-reduced-motion:reduce){.project-row,.project-arrow{transition:none}}@media (width<=850px){.section-intro,.section-heading>div:first-child,.section-heading h2,.about-image,.about-copy,.flagship-label,.flagship-content{grid-column:1/-1}.about-image,.about-copy,.flagship-content{margin-top:2rem}.ledger-row{grid-template-columns:1fr;gap:.75rem}.ledger-location{text-align:left}.ledger-mobile-location{font:var(--text-label)/1.3 var(--font-mono);text-transform:uppercase;display:block;color:var(--color-muted)!important;margin:-.4rem 0 .8rem!important}.responsibilities,.flagship-facts{grid-template-columns:1fr}.stack-row{grid-template-columns:2rem 1fr;gap:1rem}.stack-tools{grid-column:2}.project-row{grid-template-columns:2.5rem minmax(0,1fr) 2rem;gap:.75rem}.project-metadata{grid-column:2}.project-arrow{grid-area:1/3}.education-row{grid-template-columns:1fr;gap:.5rem}}@media (width<=500px){.fact-list div{grid-template-columns:1fr;gap:.3rem}}.marquee-track{animation:52s linear infinite rail}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes rail{to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce),print{.marquee-track{animation:none;transform:none}}}}@layer utilities{@layer utilities{.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}@media print{@page{margin:.55in}.skip-link,.site-header,.footer,.marquee,.mode-toggle,.theme-button,.menu-button,.scroll-hint,[data-top]{display:none!important}*,:before,:after{transition:none!important;animation:none!important}html,body,main,section,.hero{min-height:auto!important;overflow:visible!important}body{font-size:10.5pt;color:#111!important;background:#fff!important}.site-container{width:100%}.section,.contact-section{break-inside:auto;padding-block:1.1rem!important}.hero{display:block;padding:0 0 1rem!important}.hero .editorial-grid{display:block!important}.availability,.hero-email{display:block;margin:.45rem 0!important}.hero-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .8rem!important;margin:.7rem 0!important;display:grid!important}.hero-meta div{padding-top:.3rem!important}.hero h1,.section-intro h2,.section-heading h2,.contact-section h2{font-size:22pt!important;line-height:.95!important}.hero h1{margin:.8rem 0!important;font-size:26pt!important}#about{grid-template-columns:minmax(0,.75fr) minmax(0,1fr);column-gap:.5in;display:grid!important}#about .section-intro{grid-column:1/-1}#about .about-image{grid-column:1;margin-top:.3rem!important}#about .about-copy{grid-column:2;margin-top:.3rem!important}.editorial-grid,.section-heading,.ledger-row,.stack-row,.project-row,.education-row{column-gap:.8rem!important}.about-image{break-inside:avoid}.about-image img{max-height:300px!important}.ledger-row,.stack-row,.project-row,.education-row,.about-image,.about-copy{break-inside:avoid}.project-row:hover{background:0 0}a{color:inherit!important}}}
