@page{size:Letter;margin:.55in .62in .6in}.resume{--r-ink: #16191d;--r-muted: #4a535c;--r-navy: #1f3d57;--r-rule: #c9d2da;color:var(--r-ink);font-family:Calibri,Carlito,Segoe UI,Helvetica Neue,Arial,sans-serif;font-size:11pt;line-height:1.28;text-align:left;font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0;-webkit-print-color-adjust:exact;print-color-adjust:exact}.resume a{color:inherit;text-decoration:none}.resume h1,.resume h2,.resume h3,.resume p,.resume ul{margin:0;padding:0;font-family:inherit;font-weight:inherit;line-height:inherit;letter-spacing:normal;text-wrap:pretty}.resume .r-header{padding-bottom:7pt;border-bottom:1.4pt solid var(--r-navy);margin-bottom:8pt}.resume .r-name{font-family:Georgia,Times New Roman,serif;font-size:23pt;font-weight:700;line-height:1.1;color:var(--r-ink)}.resume .r-tagline{margin-top:3pt;font-size:10.5pt;font-weight:700;color:var(--r-navy)}.resume .r-contact{display:flex;flex-wrap:wrap;margin-top:3pt;font-size:10.2pt;color:var(--r-muted)}.resume .r-contact span+span:before{content:"|";margin:0 .45em;color:var(--r-rule)}.resume .r-contact a{overflow-wrap:anywhere}.resume .r-nowrap{white-space:nowrap}@media screen and (max-width: 640px){.resume .r-contact{flex-direction:column}.resume .r-contact span+span:before{content:none}}.resume .r-section{margin-top:9pt}.resume .r-section>h2{font-size:11.2pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--r-navy);padding-bottom:1.5pt;border-bottom:.6pt solid var(--r-rule);margin-bottom:4pt;break-after:avoid;page-break-after:avoid}.resume .r-entry{margin-top:5pt}.resume .r-entry--compact,.resume .r-entry--project{margin-top:4pt}.resume .r-line{display:flex;justify-content:space-between;align-items:baseline;gap:12pt}.resume .r-entry>.r-line:first-child{break-after:avoid;page-break-after:avoid}.resume .r-org{font-size:11.2pt;font-weight:700;color:var(--r-ink)}.resume .r-descriptor{font-weight:400}.resume .r-title{font-weight:700;color:var(--r-navy)}.resume .r-title--sub{font-weight:400;font-style:italic;color:var(--r-muted)}.resume .r-date{flex:none;font-size:10.2pt;color:var(--r-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.resume .r-role{margin-top:2pt}.resume .r-role>.r-line{break-after:avoid;page-break-after:avoid}.resume .r-entry--project,.resume .r-entry--compact{break-inside:avoid;page-break-inside:avoid}.resume .r-role+.r-role{margin-top:2.5pt}.resume .r-text{margin-top:1.5pt}.resume .r-label{font-weight:700}.resume .r-bullets{list-style:none;margin-top:1.5pt}.resume .r-bullets li{padding-left:11pt;margin-top:1.5pt;break-inside:avoid;page-break-inside:avoid}.resume .r-bullets li:before{content:"•";display:inline-block;width:11pt;margin-left:-11pt;padding-left:2pt;box-sizing:border-box;color:var(--r-navy)}@page engineering{size:Letter;margin:.42in .55in .4in}.resume--engineering{page:engineering;font-size:10.6pt;line-height:1.2}.resume--engineering .r-section{margin-top:6pt}.resume--engineering .r-entry{margin-top:3.5pt}:root{--bg: #07090d;--bg-raise: #0e1117;--bg-sunk: #050608;--ink: #ece8df;--ink-2: #b9bdc5;--ink-3: #8b919b;--rule: rgba(236, 232, 223, .13);--rule-strong: rgba(236, 232, 223, .3);--accent: #e2b45f;--accent-ink: #f0c97d;--plate: #f4f1ea;--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--wrap: 1180px;--gutter: clamp(16px, 4vw, 40px);--header-h: 64px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px);background:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:400 17px/1.62 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}@media (max-width: 720px){body{font-size:16px}}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}main:focus,section:focus{outline:none}h1,h2,h3{margin:0;font-family:var(--serif);font-weight:500;line-height:1.14;letter-spacing:-.01em;text-wrap:balance}p,dl,dd,figure{margin:0}::selection{background:#e2b45f59;color:var(--ink)}.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;background:var(--accent);color:#17130b;font-weight:600;text-decoration:none;border-radius:4px}.skip-link:focus{top:12px}.kicker{font:500 .74rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.note{margin-top:14px;font-size:.88rem;color:var(--ink-3)}.text-link{display:inline-block;margin-top:18px;color:var(--accent-ink);font-weight:500;text-decoration:none}.text-link:after{content:" →";content:" →" / ""}.text-link:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid var(--rule-strong);border-radius:4px;background:#07090d66;color:var(--ink);font:500 .95rem/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.button:hover{border-color:var(--ink-2)}.button--primary{background:var(--accent);border-color:var(--accent);color:#17130b}.button--primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.button--quiet{border-color:transparent;background:transparent;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:5px}.button--quiet:hover{border-color:transparent;text-decoration-color:var(--accent)}.site-header{position:fixed;inset:0 0 auto;z-index:50;height:var(--header-h);border-bottom:1px solid transparent;transition:background-color .25s ease,border-color .25s ease}.site-header.is-solid{background:#07090df0;border-bottom-color:var(--rule)}@supports (backdrop-filter: blur(8px)){.site-header.is-solid{background:#07090dd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}.site-header__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-header__name{font-family:var(--serif);font-size:1.12rem;text-decoration:none;white-space:nowrap}.site-nav ul{display:flex;gap:2px;margin:0;padding:0;list-style:none}.site-nav a{display:block;padding:10px 12px;color:var(--ink-2);font-size:.94rem;text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a.is-active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}@media (max-width: 900px),(max-width: 1100px) and (pointer: coarse){:root{--header-h: calc(88px + env(safe-area-inset-top, 0px)) }.wrap{padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}.site-header{padding-top:env(safe-area-inset-top,0px)}.site-header__inner{flex-direction:column;align-items:stretch;justify-content:center;gap:0}.site-header__name{display:flex;align-items:center;min-height:32px;font-size:clamp(.94rem,3.8vw,1.12rem);opacity:.7;transition:opacity .25s ease}.site-nav{display:block;color:var(--ink-2);opacity:.72;transition:opacity .25s ease,color .25s ease}.site-nav ul{justify-content:space-between;gap:0}.site-nav a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 4px;font-size:clamp(.75rem,3.2vw,.875rem);color:inherit}.site-nav a:hover,.site-nav a.is-active{color:var(--accent-ink)}.site-header.is-solid .site-nav{color:var(--ink)}.site-header.is-solid .site-nav,.site-header.is-solid .site-header__name,.site-nav:focus-within,.site-header__name:focus-visible{opacity:1}}.scene{position:fixed;inset:0 0 auto;height:100vh;z-index:0;overflow:hidden;background:#050810;pointer-events:none}@supports (height: 100lvh){.scene{height:100lvh}}.scene.is-offscreen{visibility:hidden}.scene__layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.scene__poster,.scene__video{object-fit:cover;object-position:center bottom}.scene__model canvas{display:block}.scene__shade{background:linear-gradient(90deg,#05070cd6,#05070c99 30%,#05070c1f 55%,#05070c00 70%),linear-gradient(180deg,#05070c80,#05070c00 20%,#05070c00 72%,#07090dd9)}@media (max-width: 720px){.scene__poster,.scene__video{object-position:56% bottom}.scene__shade{background:linear-gradient(180deg,#05070c66,#05070c00 22%,#05070c40,#05070cd1 62%,#07090df2)}}.hero{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h) + 32px) 0 64px}@supports (height: 100svh){.hero{min-height:100svh}}.nowrap{white-space:nowrap}.hero__name{max-width:13ch;font-size:clamp(2.6rem,min(6.2vw,9.5vh),5.4rem);line-height:1.02;letter-spacing:-.02em}.hero__lede{margin-top:20px;max-width:32ch;font-family:var(--serif);font-size:clamp(1.2rem,min(2vw,3.2vh),1.55rem);line-height:1.38}.hero__facts{margin-top:30px;max-width:33rem;border-top:1px solid var(--rule-strong)}.hero__facts>div{display:grid;grid-template-columns:6.2rem minmax(0,1fr);gap:16px;padding:10px 0;border-bottom:1px solid var(--rule)}.hero__facts dt{font:500 .74rem/1.95 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.hero__facts dd{display:flex;flex-direction:column;gap:2px;font-size:.98rem}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:30px}.hero__credit{position:absolute;inset:auto 0 14px;font:400 .7rem/1.4 var(--mono);color:#ece8dfc7;text-align:right;text-shadow:0 1px 3px rgba(0,0,0,.9)}@media (max-width: 720px),(orientation: portrait){.hero{justify-content:flex-end;padding-top:34vh;padding-bottom:56px}.hero__inner{display:flex;flex-direction:column}.hero__actions{order:3;margin-top:24px}.hero__facts{order:4;margin-top:28px}.hero__credit{text-align:left;inset:auto 0 16px}}@media (max-width: 720px){.hero{padding-top:30vh}.hero__lede{margin-top:16px;font-size:1.12rem}.hero__facts>div{grid-template-columns:5.2rem minmax(0,1fr);gap:12px}.hero__facts dd{font-size:.94rem}.hero__actions .button{flex:1 1 auto}}@media (max-width: 900px),(max-width: 1100px) and (pointer: coarse){.scene--mobile{height:100svh;will-change:opacity}.scene--mobile.is-offscreen{will-change:auto}.scene--mobile .scene__poster,.scene--mobile .scene__video{object-position:58% center;filter:brightness(1.35) saturate(1.08)}.scene--mobile .scene__shade{background:linear-gradient(180deg,rgba(5,7,12,.12),transparent 20%,transparent 50%,rgba(7,9,13,.42) 80%,rgba(7,9,13,.84))}.mobile-hero{--hero-opacity: 1;position:relative;z-index:1;height:155vh;height:155svh}.mobile-hero__viewport{position:sticky;top:0;display:flex;align-items:flex-end;height:100vh;height:100svh;padding:calc(var(--header-h) + 16px) 0 max(20px,env(safe-area-inset-bottom))}.mobile-hero__copy{opacity:var(--hero-opacity);text-shadow:0 2px 4px rgba(5,7,12,.95),0 0 18px rgba(5,7,12,.85)}.mobile-hero__copy>.kicker{margin-bottom:12px;color:var(--accent-ink);font-size:.65rem;letter-spacing:.07em}.mobile-hero__name{font-size:clamp(2rem,10.6vw,4.7rem);line-height:1.02;letter-spacing:-.025em}.mobile-hero__name span{display:block;white-space:nowrap}.mobile-hero__lede{margin-top:16px;color:var(--ink);font:400 clamp(1rem,3.8vw,1.3rem)/1.45 var(--serif)}.mobile-hero__scroll{display:flex;align-items:center;justify-content:space-between;min-height:48px;margin-top:24px;border-top:1px solid var(--rule-strong);color:var(--ink-2);font:400 .68rem/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase;text-decoration:none}.mobile-hero__scroll>span:last-child{color:var(--accent-ink);font-size:1.25rem}.mobile-intro{padding-top:36px;padding-bottom:56px}.mobile-intro__lede{max-width:38ch;margin-top:14px;font:400 clamp(1.35rem,4.5vw,1.9rem)/1.4 var(--serif)}.mobile-intro .hero__facts{max-width:none}.mobile-intro__credit{max-width:48ch;margin-top:24px;color:var(--ink-3);font:400 .65rem/1.6 var(--mono)}.main--home .mobile-hero+.page-body{box-shadow:none}.site-header.is-solid{background:#07090df7;-webkit-backdrop-filter:none;backdrop-filter:none}}@media (max-height: 540px) and (orientation: landscape) and (max-width: 1100px){.mobile-hero__copy{padding-right:48%}.mobile-hero__name{font-size:clamp(1.8rem,4.8vw,2.8rem)}.mobile-hero__scroll{margin-top:12px}.mobile-hero__lede{margin-top:10px;font-size:1rem}}.page-body{position:relative;z-index:2;background:var(--bg)}.main--home .page-body{box-shadow:0 -40px 60px 10px var(--bg)}.page-body--top{padding:calc(var(--header-h) + 56px) 0 104px;min-height:70vh}.page-body--top>.wrap{animation:enter .35s ease-out both}@keyframes enter{0%{opacity:0;transform:translateY(6px)}}.page-head{max-width:780px;margin-bottom:48px}.page-head h1{font-size:clamp(2.4rem,5vw,3.6rem)}.page-head__lede{margin-top:16px;max-width:60ch;font-size:1.13rem;color:var(--ink-2)}.section{padding:104px 0;border-top:1px solid var(--rule)}.section--first{border-top:0;padding-top:88px}@media (max-width: 720px){.section{padding:68px 0}.section--first{padding-top:56px}}.section-head{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:14px 48px;align-items:end;margin-bottom:52px}.section-head h2,.section-head h1{font-size:clamp(1.95rem,3.4vw,2.8rem)}.section-head p{max-width:54ch;color:var(--ink-2)}.section-head a{color:var(--accent-ink)}.section-foot{margin-top:48px}@media (max-width: 860px){.section-head{grid-template-columns:1fr;margin-bottom:36px}}.prose p,.prose li{max-width:66ch;color:var(--ink-2)}.prose p+p{margin-top:1em}.prose ul{margin:0;padding-left:1.15em}.prose li+li{margin-top:.7em}.prose li::marker{color:var(--accent)}.prose a{color:var(--accent-ink)}.figure__media{position:relative;overflow:hidden;background:var(--bg-raise)}.figure__media img,.figure__media video{width:100%;height:100%;object-fit:cover}.figure--plate .figure__media{background:var(--plate)}.figure--plate .figure__media img,.figure--plate .figure__media video{object-fit:contain;padding:clamp(8px,1.6vw,18px)}.figure__media video{object-fit:contain;background:#000}.figure figcaption{margin-top:10px;max-width:70ch;font-size:.86rem;line-height:1.5;color:var(--ink-3)}.xp-engineering{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.xp-org{padding-top:18px;border-top:2px solid var(--ink)}.xp-org__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}.xp-org h3{font-size:1.5rem}.xp-roles{margin:16px 0 0;padding:0;list-style:none}.xp-roles li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:.96rem}.xp-roles__dates{font:400 .8rem/1.9 var(--mono);color:var(--ink-3);white-space:nowrap}.xp-org>p:not(.note){margin-top:14px;color:var(--ink-2)}.xp-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;margin-top:72px}.xp-group-title{padding-bottom:10px;border-bottom:1px solid var(--rule-strong);font:500 .76rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.xp-list{margin:0;padding:0;list-style:none}.xp-row{display:grid;grid-template-columns:7.4rem minmax(0,1fr);gap:3px 16px;padding:13px 0;border-bottom:1px solid var(--rule)}.xp-row__years{grid-row:span 2;font:400 .78rem/1.95 var(--mono);color:var(--ink-3)}.xp-row__main strong{font-weight:500}.xp-row__earlier{color:var(--ink-3)}.xp-row__note{grid-column:2;font-size:.92rem;color:var(--ink-2)}@media (max-width: 860px){.xp-engineering,.xp-groups{grid-template-columns:1fr}.xp-groups{margin-top:56px}}@media (max-width: 480px){.xp-row{grid-template-columns:1fr}.xp-row__years{grid-row:auto}.xp-row__note{grid-column:1}.xp-roles li{flex-direction:column;gap:0}}.about{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);grid-template-areas:"head text" "portrait text";grid-template-rows:auto 1fr;gap:24px 48px;align-items:start}.about__head{grid-area:head;display:block;margin:0}.about__portrait{grid-area:portrait;width:176px;height:176px;object-fit:cover}.about__text{grid-area:text}.about__text p:first-child{font-family:var(--serif);font-size:clamp(1.2rem,1.9vw,1.42rem);line-height:1.5;color:var(--ink)}@media (max-width: 860px){.about{grid-template-columns:1fr;grid-template-areas:"head" "portrait" "text"}.about__portrait{width:128px;height:128px}}.contact__list{max-width:780px;border-top:1px solid var(--rule-strong)}.contact__list>div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:16px;padding:15px 0;border-bottom:1px solid var(--rule)}.contact__list dt{font:500 .76rem/2.1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.contact__list dd{font-size:1.08rem;overflow-wrap:anywhere}.contact__list a{text-decoration-color:var(--accent);text-underline-offset:5px}@media (max-width: 520px){.contact__list>div{grid-template-columns:1fr;gap:2px}}.file-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule-strong)}.file-list a{display:grid;grid-template-columns:6.4rem minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--rule);text-decoration:none}.file-list a:hover .file-list__label{text-decoration:underline;text-decoration-color:var(--accent)}.file-list__type{font:500 .72rem/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.file-list__note{font-size:.85rem;color:var(--ink-3);text-align:right}@media (max-width: 560px){.file-list a{grid-template-columns:5rem minmax(0,1fr);gap:4px 12px}.file-list__note{grid-column:2;text-align:left}}.resume-page__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.resume-sheet{max-width:8.5in;margin:0 auto;padding:.55in .62in .6in;background:#fff;color:#16191d;box-shadow:0 30px 80px #00000080}@media (max-width: 720px){.resume-sheet{margin:0 calc(-1 * var(--gutter));padding:28px 18px}.resume-sheet .resume{font-size:10.5pt}.resume-sheet .r-line{flex-wrap:wrap;gap:0 12pt}}.legal .prose{max-width:68ch}.legal .prose h2{margin:36px 0 10px;font-size:1.3rem}.legal .prose ul+h2,.legal .prose p+h2{margin-top:40px}.site-footer{position:relative;z-index:2;padding:40px 0 48px;background:var(--bg-sunk);border-top:1px solid var(--rule);font-size:.9rem;color:var(--ink-3)}.site-footer__inner{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px 40px;align-items:baseline}.site-footer__name{font-family:var(--serif);font-size:1.05rem;color:var(--ink)}.site-footer__links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 22px;margin:0;padding:0;list-style:none}.site-footer__links a{color:var(--ink-2);text-decoration:none}.site-footer__links a:hover{color:var(--ink);text-decoration:underline}.site-footer__note{grid-column:1 / -1;max-width:82ch;font-size:.8rem;line-height:1.55}@media (max-width: 720px){.site-footer__inner{grid-template-columns:1fr}.site-footer__links{justify-content:flex-start}.site-footer__links a{display:inline-block;padding:6px 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{:root{color-scheme:light;--bg: #fff;--bg-raise: #f3f3f3;--bg-sunk: #fff;--ink: #111;--ink-2: #333;--ink-3: #555;--rule: #ccc;--rule-strong: #999;--accent: #1f3d57;--accent-ink: #1f3d57}html,body{background:#fff;color:#111;overflow:visible}.site-header,.site-footer,.skip-link,.scene,.hero__credit,.case__pager,.resume-page__head,.hero__actions{display:none!important}.mobile-hero{height:auto}.mobile-hero__viewport{position:static;height:auto;padding:0 0 24px}.mobile-hero__copy{opacity:1}.mobile-hero__scroll,.mobile-intro__credit{display:none}.page-body--top{padding:0}.page-body--top>.wrap{animation:none}.hero{min-height:0;padding:0 0 24px}.resume-page .wrap{padding:0;max-width:none}.resume-sheet{max-width:none;padding:0;box-shadow:none}}:root{--header-h: 98px}.site-header{height:auto;min-height:var(--header-h);background:#07090d8c}.site-header__inner{height:64px}.site-nav a{position:relative;padding-inline:16px}.site-nav a.is-active{color:var(--accent-ink);box-shadow:none}.site-nav__track{position:absolute;bottom:3px;left:16px;right:16px;height:3px;background:var(--rule-strong)}.site-nav__track>span{display:block;height:100%;background:var(--accent);transform-origin:left}.reading-position{display:flex;justify-content:space-between;gap:16px;height:31px;font:400 .67rem/1.5 var(--mono);color:var(--ink-2);align-items:center}.reading-position>span:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.reading-position>span:last-child{color:var(--accent-ink);flex-shrink:0}.reading-position__actions{display:flex;align-items:center;gap:18px}.reading-position__actions>a{display:inline-flex;align-items:center;min-height:28px;text-decoration:none}.reading-position__actions>a:hover{text-decoration:underline}.hero__facts{margin-top:22px}.hero__facts>div{padding-block:8px}.hero__actions{max-width:650px;margin-top:22px}.hero__actions .button{font-size:.86rem;padding-inline:12px}.mobile-hero__availability{margin-top:12px;color:var(--accent-ink);font-size:.78rem}.engineering-overview{margin-top:32px}.engineering-overview__fit{max-width:76ch;color:var(--ink-2);font-size:1rem}.engineering-overview__fit strong{display:block;color:var(--ink);font-weight:500}.engineering-evidence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:28px}.engineering-evidence__item{display:flex;flex-direction:column;align-items:flex-start;border-top:2px solid var(--accent);padding-top:20px}.engineering-evidence__item .kicker{font-size:.65rem;color:var(--accent)}.engineering-evidence__item h3{margin:12px 0 14px;font-size:1.55rem;line-height:1.22}.engineering-evidence__item>p:not(.kicker){color:var(--ink-2);font-size:.92rem}.engineering-evidence__item .text-link{margin-top:auto;padding-top:18px;font-size:.85rem;min-height:44px}.capability-links{margin:30px 0;padding-top:22px;border-top:1px solid var(--rule)}.capability-links ul{display:flex;flex-wrap:wrap;gap:4px 24px;list-style:none;padding:0;margin:8px 0 0}.capability-links a{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--ink-2);font-size:.84rem}.capability-links a:hover{color:var(--accent-ink)}.project-entry__credentials{margin-top:20px;display:grid;gap:10px}.project-entry__credentials>div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:12px;font-size:.85rem}.project-entry__credentials dt{color:var(--accent)}.project-entry__credentials dd{color:var(--ink-2)}.contact__focus{color:var(--ink-2);max-width:70ch}.contact__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.resume-page__variants{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px}.resume-page__variants [aria-pressed=true]{border-color:var(--accent);color:var(--accent-ink)}.reading-progress{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:3px;border:0;background:var(--rule);color:var(--accent)}.reading-progress::-webkit-progress-bar{background:var(--rule)}.reading-progress::-webkit-progress-value{background:var(--accent)}.reading-progress::-moz-progress-bar{background:var(--accent)}.section-head .kicker{margin-bottom:12px;color:var(--accent)}.section-head h2{font-size:clamp(2.5rem,5vw,4rem)}.section-intro{padding-top:88px;padding-bottom:48px}.project-directory{display:flex;flex-wrap:wrap;gap:8px}.project-directory a{display:flex;align-items:center;gap:8px;min-height:44px;padding:7px 13px;border:1px solid var(--rule-strong);color:var(--ink-2);text-decoration:none;font-size:.83rem;line-height:1.4}.project-directory a:hover{color:var(--ink);border-color:var(--accent)}.project-directory a span{font:.68rem var(--mono);color:var(--accent)}.project-entry{padding:36px 0 56px;border-top:1px solid var(--rule-strong);background:var(--bg)}.project-entry:nth-of-type(2n){background:#0d1118}.project-entry__marker{display:flex;align-items:center;gap:22px;margin-bottom:26px;color:var(--ink-3);font:400 .72rem/1.5 var(--mono)}.project-entry__number{flex-shrink:0;color:var(--accent);font-size:1.2rem}.project-entry__number>span{color:var(--ink-3);font-size:.72rem}.project-entry__permalink{margin-left:auto;min-width:44px;min-height:44px;display:grid;place-items:center;font-size:1rem;text-decoration:none}.project-entry__opening{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-areas:"copy image" "detail image";grid-template-rows:auto 1fr;gap:20px 40px;align-items:start}.project-entry__head{grid-area:copy}.project-entry__hero{grid-area:image}.project-entry__takeaways{grid-area:detail}.project-index{margin-top:0}.project-index[open]{padding-bottom:16px}.project-entry__head h3{margin:10px 0 18px;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.12}.project-entry__summary{max-width:65ch;font-size:1.05rem;color:var(--ink-2)}.project-entry__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.project-entry__actions .button{gap:12px}.project-entry__highlights{padding-left:18px;margin:0;color:var(--ink-2);font-size:.93rem}.project-entry__highlights li+li{margin-top:10px}.project-entry__highlights li::marker{color:var(--accent)}.project-entry__status{margin-top:20px;padding:12px 0 0 14px;border-top:1px solid var(--rule);border-left:2px solid var(--accent);color:var(--ink-3);font-size:.83rem;line-height:1.5}.project-entry--text .project-entry__opening{grid-template-columns:1fr;grid-template-areas:"copy" "detail"}.project-entry--text .project-entry__head{max-width:780px}.project-entry__hero .figure__media{max-height:520px}.project-entry__hero .figure__media img{object-fit:contain}.project-entry__gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:32px;align-items:start}.project-entry__gallery:has(>.figure:only-child){grid-template-columns:1fr;max-width:760px;margin-inline:auto}.project-entry__gallery .figure__media{max-height:440px}.project-entry__gallery .figure__media img{object-fit:contain}.project-entry__gallery .figure--portrait .figure__media{max-height:420px}.project-entry__files{margin-top:32px}.project-entry h4,.background-block h4{font:500 .78rem/1.5 var(--mono);color:var(--ink)}.project-entry__files>h4{margin:0 0 12px}.project-entry__files .file-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}.project-entry__files .file-list a{height:100%;grid-template-columns:4.5rem minmax(0,1fr);gap:4px 12px;font-size:.9rem}.project-entry__files .file-list__note{grid-column:2;text-align:left;font-size:.79rem}.file-list__label{overflow-wrap:anywhere}.inline-notes{margin-top:28px;border-top:1px solid var(--rule-strong);border-bottom:1px solid var(--rule)}.inline-notes summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:52px;padding:12px 0;font-size:.9rem;color:var(--accent-ink);cursor:pointer;list-style:none}.inline-notes summary::-webkit-details-marker{display:none}.inline-notes summary>span{font:400 1.3rem var(--mono)}.inline-notes[open]>summary>span{transform:rotate(45deg)}.inline-notes__body{padding:8px 0 28px}.project-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;padding:0 0 28px}.project-facts dt,.skill-list dt{color:var(--accent);font:500 .73rem/1.5 var(--mono);margin-bottom:5px}.project-facts dd{color:var(--ink-2);font-size:.94rem}.project-note{margin-top:24px}.project-note>h4{margin:0 0 10px}.project-note .prose{font-size:.95rem}.xp-row__details{grid-column:2;min-width:0}.experience-notes{margin-top:16px}.xp-row .experience-notes{margin-top:5px;border:0}.xp-row .experience-notes>summary{min-height:44px;padding:7px 0;font-size:.83rem}.background-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;margin-top:64px}.background-block{min-width:0;border-top:1px solid var(--rule-strong);padding-top:24px}.background-block>h3{margin-bottom:22px;font-size:1.65rem}.background-block p,.background-block li{color:var(--ink-2);font-size:.95rem}.background-block .background-block__lead{color:var(--ink);font-size:1.12rem;margin-bottom:8px}.background-block ul{padding-left:18px}.background-block li{margin-top:10px}.background-block li::marker{color:var(--accent)}.background-block li>.note{display:block;margin-top:3px;font-size:.78rem}.credential-group+.credential-group{margin-top:26px}.credential-group>h4{color:var(--accent);margin:0}.skill-list{display:grid;gap:20px}.skill-list dd{color:var(--ink-2);font-size:.95rem}.project-entry:focus{outline:none}@media (max-width: 900px),(max-width: 1100px) and (pointer: coarse){:root{--header-h: calc(112px + env(safe-area-inset-top, 0px)) }.site-header__inner{height:78px}.site-header__name{min-height:30px}.site-nav{opacity:1}.site-nav a{padding:0 7px;font-size:.86rem}.site-nav__track{left:7px;right:7px;bottom:0}.reading-position{font-size:.61rem}.mobile-hero{height:100svh;min-height:700px}.mobile-hero__viewport{position:relative;height:100%}.mobile-hero__copy{opacity:1}.mobile-hero .hero__actions{margin-top:20px;gap:8px}.mobile-hero .hero__actions .button{flex:1 1 calc(50% - 8px);font-size:.82rem;padding-inline:10px}.mobile-hero .hero__actions .button--quiet{flex-basis:100%;min-height:44px}.engineering-evidence{grid-template-columns:1fr;gap:24px}.engineering-evidence__item h3{margin-block:10px}.engineering-evidence__item .text-link{padding-top:12px}.mobile-intro{padding-top:10px;padding-bottom:20px}.mobile-intro .hero__facts{margin-top:0}.mobile-intro__credit{margin-top:16px}.section-intro{padding-top:52px;padding-bottom:32px}.project-entry__opening{grid-template-columns:1fr;grid-template-areas:"copy" "image" "detail";grid-template-rows:auto;gap:26px}.project-entry__head{max-width:740px}.project-entry__hero .figure__media{max-height:560px}.project-entry__marker{gap:14px}.project-entry__gallery{gap:22px}}@media (max-width: 600px){.project-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.project-directory a{font-size:.72rem;padding:9px;gap:7px}.mobile-hero .hero__actions .button{flex-basis:calc(50% - 8px);font-size:.74rem}.mobile-hero .hero__actions .button--quiet{flex-basis:calc(50% - 8px)}.project-entry__credentials>div{grid-template-columns:4.3rem minmax(0,1fr)}.capability-links ul{display:block}.contact__actions>.button{flex:1 1 auto}.project-entry{padding-top:20px;padding-bottom:36px}.project-entry__marker{font-size:.62rem;margin-bottom:16px;gap:12px}.project-entry__number{font-size:1.05rem}.project-entry__number>span{font-size:.62rem}.project-entry__head h3{font-size:2rem;margin-top:12px}.project-entry__head>.kicker{font-size:.65rem}.project-entry__summary{font-size:1rem}.project-entry__highlights{font-size:.9rem}.project-entry__actions .button{flex:1 1 auto;font-size:.88rem;padding-inline:12px}.project-entry__gallery{grid-template-columns:1fr}.project-entry__hero .figure__media{max-height:420px}.project-entry__gallery .figure__media{max-height:400px}.project-entry__files .file-list,.project-facts,.background-grid{grid-template-columns:1fr}.project-facts{gap:16px}.background-grid{gap:32px;margin-top:40px}.xp-row__details{grid-column:1 / -1}}@media (max-height: 540px) and (orientation: landscape) and (max-width: 1100px){.mobile-hero{min-height:560px}.mobile-hero__copy{padding-right:var(--gutter);max-width:100%}.mobile-hero__copy>:not(.hero__actions){max-width:50%}.mobile-hero .hero__actions{max-width:560px}.mobile-hero .hero__actions .button--quiet{flex-basis:auto}}@media print{.resume-page__variants,.contact__actions,.project-directory,.project-entry__permalink,.project-entry__actions{display:none}.project-entry,.background-block{break-inside:avoid}.project-entry,.project-entry:nth-of-type(2n){background:#fff}}
