/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid}}}@layer theme{:root,:host{--color-canvas:#0b0d0c;--color-surface:#111512;--color-surface-raised:#171c18;--color-text-primary:#f2f0e8;--color-text-secondary:#b6b8af;--color-text-muted:#92988f;--color-accent:#a8d895;--color-accent-strong:#c3eeb2;--color-on-accent:#10140f;--color-border:#2a302b;--color-border-strong:#3a443b;--color-diagram-grid:#3a443b66;--color-diagram-group:#1115129e;--color-diagram-edge:#5d685e;--color-accent-tint:#a8d8951f;--color-accent-tint-strong:#a8d89533;--font-sans:"Geist Sans", Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, Consolas, monospace;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--text-xs:.75rem;--text-sm:clamp(.8125rem, .79rem + .12vw, .875rem);--text-body:clamp(1rem, .96rem + .2vw, 1.125rem);--text-lead:clamp(1.125rem, 1.04rem + .38vw, 1.375rem);--text-title-sm:clamp(1.5rem, 1.3rem + .8vw, 2rem);--text-title:clamp(2rem, 1.55rem + 1.8vw, 3.5rem);--text-section:clamp(2.5rem, 1.75rem + 3vw, 5rem);--text-display:clamp(3rem, 1.7rem + 5.4vw, 5.5rem);--text-metric:clamp(3.5rem, 1.8rem + 7vw, 9rem);--spacing:.25rem;--radius-none:0;--radius-sm:.125rem;--radius-md:.375rem;--radius-pill:999px;--breakpoint-sm:40rem;--breakpoint-md:48rem;--breakpoint-lg:64rem;--breakpoint-xl:80rem;--breakpoint-2xl:100rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=100rem){.container{max-width:100rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}}@font-face{font-family:Geist Sans;src:url(/fonts/geist-sans-variable.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-variable.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:#f6f5ef;--color-surface:#eeede6;--color-surface-raised:#e5e4dc;--color-text-primary:#151916;--color-text-secondary:#434a44;--color-text-muted:#5a615b;--color-accent:#3b6b2e;--color-accent-strong:#2c5321;--color-on-accent:#f6f5ef;--color-border:#d9d8ce;--color-border-strong:#b9bab0;--color-diagram-grid:#b9bab073;--color-diagram-group:#eeede6b3;--color-diagram-edge:#7f867f;--color-accent-tint:#3b6b2e1a;--color-accent-tint-strong:#3b6b2e2b}@media (prefers-color-scheme:light){:root:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-canvas:#f6f5ef;--color-surface:#eeede6;--color-surface-raised:#e5e4dc;--color-text-primary:#151916;--color-text-secondary:#434a44;--color-text-muted:#5a615b;--color-accent:#3b6b2e;--color-accent-strong:#2c5321;--color-on-accent:#f6f5ef;--color-border:#d9d8ce;--color-border-strong:#b9bab0;--color-diagram-grid:#b9bab073;--color-diagram-group:#eeede6b3;--color-diagram-edge:#7f867f;--color-accent-tint:#3b6b2e1a;--color-accent-tint-strong:#3b6b2e2b}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--space-0:0;--space-0-5:.125rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--space-40:10rem;--page-gutter:var(--space-5);--section-space:clamp(5rem, 9vw, 10rem);--section-space-compact:clamp(3.5rem, 6vw, 6rem);--content-gap:clamp(1.5rem, 3vw, 3rem);--header-height:4.5rem;--header-compact-threshold:64px;--hero-min-height:42.5rem;--tap-target-min:3rem;--leading-display:.92;--leading-heading:1.02;--leading-title:1.12;--leading-lead:1.45;--leading-body:1.65;--leading-label:1.3;--tracking-display:-.045em;--tracking-heading:-.03em;--tracking-body:-.01em;--tracking-mono:.04em;--tracking-label:.12em;--container-max:87.5rem;--container-reading:45rem;--measure-body:68ch;--measure-lead:48ch;--measure-display:14ch;--measure-project-detail:72ch;--project-index-width:13.75rem;--project-metric-min-width:16rem;--aspect-project-media:4 / 3;--aspect-diagram:2 / 1;--aspect-diagram-narrow:4 / 3;--diagram-grid-size:var(--space-6);--diagram-mobile-row-height:9.5rem;--diagram-mobile-row-height-spacious:11.5rem;--diagram-node-min-height:var(--space-16);--diagram-node-min-width:9.5rem;--diagram-desktop-row-min-height:9rem;--diagram-desktop-column-gap:var(--space-6);--diagram-status-size:var(--space-2);--border-width-thin:.0625rem;--border-thin:var(--border-width-thin) solid var(--color-border);--border-strong:var(--border-width-thin) solid var(--color-border-strong);--focus-outline-width:.125rem;--focus-outline-offset:.1875rem;--duration-none:0s;--duration-instant:.12s;--duration-fast:.18s;--duration-base:.24s;--duration-reveal:.42s;--duration-flow:2.4s;--duration-flow-pause:1.6s;--duration-stagger:60ms;--duration-motion-fallback:2s;--ease-standard:cubic-bezier(.22, 1, .36, 1);--ease-enter:cubic-bezier(.16, 1, .3, 1);--ease-linear:linear;--motion-reveal-distance:var(--space-4);--motion-menu-distance:var(--space-3);--motion-arrow-distance:var(--space-1);--motion-header-scale:.96;--motion-rule-scale:.85;--opacity-reveal-hidden:0;--opacity-rule-start:.35;--opacity-flow-peak:.65;--diagram-flow-marker-size:var(--space-2);--z-base:0;--z-diagram-connectors:2;--z-diagram-labels:5;--z-raised:10;--z-sticky:30;--z-overlay:40;--z-modal:50;--z-skip-link:60;--page-grid-columns:4;--grid-gap:var(--space-3);--desktop-navigation-display:none;--desktop-resume-display:none;--mobile-navigation-display:flex;--mobile-toggle-display:inline-flex;--token-list-columns:1}@media (width<=22.4375rem){:root{--page-gutter:var(--space-4)}}@media (width>=40rem){:root{--page-gutter:var(--space-6);--page-grid-columns:6;--grid-gap:var(--space-4);--token-list-columns:2}}@media (width>=48rem){:root{--page-gutter:var(--space-8);--page-grid-columns:8;--grid-gap:var(--space-5)}}@media (width>=64rem){:root{--page-gutter:var(--space-10);--page-grid-columns:12;--grid-gap:var(--space-6);--desktop-navigation-display:block;--desktop-resume-display:inline-flex;--mobile-navigation-display:none;--mobile-toggle-display:none;--aspect-project-media:16 / 7}}@media (width>=80rem){:root{--page-gutter:3.5rem}}@media (width>=100rem){:root{--page-gutter:4.5rem;--grid-gap:1.75rem}}.hero{border-block-end:var(--border-thin)}.hero__grid{min-height:max(var(--hero-min-height), calc(100svh - var(--header-height)));padding-block:var(--section-space-compact);align-content:start;row-gap:var(--space-8)}.hero__eyebrow{order:1;grid-column:1/-1}.hero__title{max-width:var(--measure-display);margin:var(--space-0);font-size:var(--text-title);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-display);line-height:var(--leading-display);overflow-wrap:anywhere;order:2;grid-column:1/-1}.hero__title>span{display:block}.hero__title-accent{color:var(--color-accent)}.hero__annotation{margin:var(--space-0);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-mono);line-height:var(--leading-label);order:3;grid-column:1/-1}.hero__support{gap:var(--space-6);order:4;grid-column:1/-1;display:grid}.hero__support>p{max-width:var(--measure-lead);margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-lead);line-height:var(--leading-lead)}.hero__actions{gap:var(--space-3);display:grid}.text-link.hero__primary-action{width:100%;padding-inline:var(--space-5);border:var(--border-width-thin) solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent-tint);color:var(--color-accent-strong);font-weight:var(--font-weight-semibold);justify-content:center;text-decoration:none}.text-link.hero__primary-action:focus-visible{background:var(--color-accent-tint-strong);color:var(--color-accent-strong)}@media (hover:hover){.text-link.hero__primary-action:hover{background:var(--color-accent-tint-strong);color:var(--color-accent-strong)}}.hero__primary-action .text-link__label:before,.hero__primary-action .text-link__label:after,.project-title .text-link__label:before,.project-title .text-link__label:after,.contact__links .text-link__label:before{display:none}.hero__secondary-action{width:fit-content}.hero__socials{gap:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.hero__socials .text-link{color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm)}.hero__disciplines{gap:var(--space-2) var(--grid-gap);padding:var(--space-6) var(--space-0) var(--space-0);margin:var(--space-0);border-block-start:var(--border-thin);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-mono);line-height:var(--leading-label);text-transform:uppercase;order:5;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;display:grid}.section h2{margin:var(--space-0);font-size:var(--text-section);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);overflow-wrap:anywhere}.selected-work h2,.profile h2,.principles h2,.capabilities h2,.experience-education h2,.contact h2{grid-column:1/-1}.selected-work__introduction{max-width:var(--measure-lead);margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-lead);line-height:var(--leading-lead);grid-column:2/-1}.selected-work__projects{gap:var(--section-space);grid-column:1/-1;margin-block-start:var(--space-8);display:grid}.project-case{grid-template-columns:repeat(var(--page-grid-columns), minmax(0, 1fr));gap:var(--space-8) var(--grid-gap);border-block-start:var(--border-strong);padding-block-start:var(--section-space-compact);display:grid}.project-case>*{min-width:var(--space-0)}.project-case__meta,.project-case__heading,.project-case__hero-metric,.project-case__media,.project-case__details,.project-case__technical,.project-case__narrative,.project-case__metric-band,.project-case__secondary-evidence{grid-column:1/-1}.project-case__heading,.project-case__narrative,.project-case__details,.project-case__technical,.project-case__secondary-evidence{align-content:start;gap:var(--space-6);display:grid}.project-meta{gap:var(--space-2);color:var(--color-text-muted);flex-wrap:wrap;align-items:baseline;display:flex}.project-title{margin:var(--space-0);font-size:var(--text-title);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);overflow-wrap:anywhere}.project-title .text-link{min-height:auto;text-decoration:none;display:inline}.project-title__subtitle{color:var(--color-text-secondary);font-size:var(--text-title-sm);letter-spacing:var(--tracking-body);line-height:var(--leading-title);margin-block-start:var(--space-2);display:block}.project-case__summary{max-width:var(--measure-lead);margin:var(--space-0);color:var(--color-text-secondary);font-size:var(--text-lead);line-height:var(--leading-lead)}.metric-display{align-content:start;gap:var(--space-3);font-variant-numeric:tabular-nums;display:grid}.metric-display__value,.metric-display__comparison,.metric-display__context{margin:var(--space-0)}.metric-display__value{gap:var(--space-2);color:var(--color-accent);font-size:var(--text-title);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);flex-wrap:wrap;align-items:baseline;display:flex}.metric-display--hero .metric-display__value{font-size:var(--text-metric);line-height:var(--leading-display)}.metric-display__transition{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-title-sm);font-weight:var(--font-weight-normal)}.metric-display__comparison{gap:var(--space-2);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-title-sm);line-height:var(--leading-title);flex-wrap:wrap;display:flex}.metric-display__context{max-width:var(--measure-body);color:var(--color-text-secondary)}.project-media{margin:var(--space-0);border:var(--border-thin);border-radius:var(--radius-sm);background:var(--color-surface);overflow:hidden}.project-media--placeholder{min-height:var(--space-40);aspect-ratio:var(--aspect-project-media);align-content:space-between;gap:var(--space-8);padding:var(--content-gap);display:grid}.project-media__placeholder-heading{gap:var(--space-3);display:grid}.project-media__placeholder-heading p,.project-media figcaption{margin:var(--space-0)}.project-media__placeholder-heading p{max-width:var(--measure-lead);font-size:var(--text-title-sm);line-height:var(--leading-title)}.project-media figcaption{max-width:var(--measure-body);color:var(--color-text-secondary)}.project-media--image img{width:100%;height:auto;display:block}.project-highlights,.stack-list{gap:var(--space-4);display:grid}.project-highlights ul,.stack-list ul,.project-links{padding:var(--space-0);margin:var(--space-0);list-style:none}.project-highlights ul{gap:var(--space-3);color:var(--color-text-secondary);display:grid}.project-highlights li{border-block-start:var(--border-thin);padding-block-start:var(--space-3)}.stack-list ul{gap:var(--space-2) var(--space-3);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-label);flex-wrap:wrap;display:flex}.stack-list li{border-inline-end:var(--border-thin);padding-inline-end:var(--space-3)}.project-links{gap:var(--space-2) var(--space-6);flex-wrap:wrap;display:flex}.project-links .text-link{font-family:var(--font-mono);font-size:var(--text-sm)}.project-case__metric-band{gap:var(--space-8);border-block-start:var(--border-thin);padding-block-start:var(--space-8);display:grid}.project-case--supporting{gap:var(--space-6) var(--grid-gap);padding-block-end:var(--space-8)}.project-case--supporting>*{grid-column:1/-1}.project-case__supporting-title{gap:var(--space-6);display:grid}.project-case--supporting .project-case__summary{font-size:var(--text-body)}.profile h2{max-width:var(--measure-lead);font-size:var(--text-title);line-height:var(--leading-title)}.profile__support{gap:var(--space-4);border-block-start:var(--border-thin);grid-column:1/-1;padding-block-start:var(--space-6);display:grid}.profile__support p{max-width:var(--measure-body);margin:var(--space-0);color:var(--color-text-secondary)}.principles__list{padding:var(--space-0);margin:var(--space-0);grid-column:1/-1;list-style:none;display:grid}.principles__list li{gap:var(--grid-gap);padding-block:var(--space-6);border-block-start:var(--border-thin);grid-template-columns:repeat(4,minmax(0,1fr));align-items:baseline;display:grid}.principles__list li:first-child{border-block-start:var(--border-strong)}.principles__list .mono-label{grid-column:1}.principles__list p{margin:var(--space-0);font-size:var(--text-title-sm);letter-spacing:var(--tracking-heading);line-height:var(--leading-title);grid-column:2/5}.principles__list .text-link{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-label);grid-column:2/5}.capabilities h2{font-size:var(--text-title);line-height:var(--leading-title)}.capabilities__list{margin:var(--space-0);grid-column:1/-1;display:grid}.capabilities__row{gap:var(--space-2);padding-block:var(--space-6);border-block-start:var(--border-thin);display:grid}.capabilities__row:first-child{border-block-start:var(--border-strong)}.capabilities__row dt,.capabilities__row dd{margin:var(--space-0)}.capabilities__row dt{font-size:var(--text-title-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-heading);line-height:var(--leading-title)}.capabilities__row dd{color:var(--color-text-secondary)}.experience-education h2{max-width:var(--measure-lead);font-size:var(--text-title);line-height:var(--leading-title)}.experience-list{grid-column:1/-1;display:grid}.experience-item{gap:var(--space-4) var(--grid-gap);padding-block:var(--space-8);border-block-start:var(--border-thin);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.experience-item:first-child{border-block-start:var(--border-strong)}.experience-item__identity{gap:var(--space-1);grid-column:1/-1;display:grid}.experience-item__identity h3,.experience-item__identity p,.experience-item__dates{margin:var(--space-0)}.experience-item__identity h3{font-size:var(--text-title-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-heading);line-height:var(--leading-title)}.experience-item__identity p{color:var(--color-text-secondary)}.experience-item__identity p:first-of-type,.experience-item__dates{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-mono);line-height:var(--leading-label)}.experience-item__dates{gap:var(--space-2);grid-column:1/-1;display:flex}.experience-item__highlights{gap:var(--space-3);margin:var(--space-0);color:var(--color-text-secondary);grid-column:2/-1;padding-inline-start:var(--space-4);display:grid}.education-certifications{align-content:start;align-self:start;gap:var(--space-12);border-block-start:var(--border-strong);grid-column:1/-1;padding-block-start:var(--space-8);display:grid}.education-list,.certification-list{align-content:start;gap:var(--space-4);display:grid}.education-list>h3,.certification-list>h3{margin:var(--space-0);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--tracking-label);line-height:var(--leading-label);text-transform:uppercase}.education-list article{gap:var(--space-2);border-block-start:var(--border-thin);padding-block-start:var(--space-4);display:grid}.education-list h4,.education-list p{margin:var(--space-0)}.education-list h4{font-size:var(--text-body);font-weight:var(--font-weight-semibold);line-height:var(--leading-title)}.education-list p{color:var(--color-text-secondary)}.education-list p.education-list__dates{gap:var(--space-2);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-label);display:flex}.certification-list ul{padding:var(--space-0);margin:var(--space-0);list-style:none}.certification-list li{padding-block:var(--space-3);border-block-start:var(--border-thin);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-label)}.contact h2{font-size:var(--text-section)}.contact__context{align-content:start;gap:var(--space-6);grid-column:1/-1;display:grid}.contact__context>p{max-width:var(--measure-body);margin:var(--space-0);color:var(--color-text-secondary)}.contact__context ul{align-items:center;gap:var(--space-2);padding:var(--space-0);margin:var(--space-0);flex-wrap:wrap;list-style:none;display:flex}.contact__context li{border-inline-end:var(--border-thin);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-label);align-self:start;padding-inline-end:var(--space-3)}.contact__links{padding:var(--space-0);margin:var(--space-0);grid-column:1/-1;list-style:none;display:grid}.contact__links li{border-block-start:var(--border-thin)}.contact__links .text-link{justify-content:space-between;width:100%;text-decoration:none}.contact__email .text-link{color:var(--color-accent);font-size:var(--text-title-sm);letter-spacing:var(--tracking-heading);line-height:var(--leading-title);text-decoration:none}@media (width>=48rem){.hero__actions{grid-template-columns:repeat(2,minmax(0,max-content));align-items:center}.text-link.hero__primary-action{width:fit-content}.selected-work h2{grid-column:1/6}.selected-work__introduction{grid-column:6/9}.project-case__metric-band{grid-template-columns:repeat(2,minmax(0,1fr))}.profile h2{grid-column:1/7}.profile__support{grid-column:3/9}.principles h2{grid-column:1/7}.principles__list{grid-column:3/9}.capabilities h2{grid-column:1/4}.capabilities__list{grid-column:4/9}.capabilities__row{gap:var(--grid-gap);grid-template-columns:repeat(5,minmax(0,1fr))}.capabilities__row dt{grid-column:1/3}.capabilities__row dd{grid-column:3/6}.experience-education h2{grid-column:1/7}.experience-list{grid-column:1/9}.experience-item{grid-template-columns:repeat(8,minmax(0,1fr))}.experience-item__dates{grid-area:1/1/auto/3}.experience-item__identity{grid-area:1/3/auto/9}.experience-item__highlights,.education-certifications{grid-column:3/9}.contact h2{grid-column:1/8}.contact__context{grid-column:1/5}.contact__links{grid-column:5/9}}@media (width>=64rem){.section__marker{grid-area:1/1/auto/3}.hero__grid{align-content:space-between;row-gap:var(--space-8)}.hero__eyebrow{white-space:nowrap;grid-area:1/1/auto/7}.hero__title{font-size:var(--text-display);display:contents}.hero__title>span:first-child{grid-area:2/1/auto/12}.hero__title>span:last-child{grid-area:3/1/auto/8}.hero__support{grid-area:3/8/auto/13;align-self:end}.hero__annotation{grid-area:4/1/auto/8}.hero__disciplines{grid-area:5/1/auto/7;align-self:end}.selected-work h2{grid-area:1/3/auto/9}.selected-work__introduction{grid-area:1/9/auto/13}.selected-work__projects{grid-row:2}.project-case--lead .project-case__meta{grid-area:1/1/auto/3}.project-case--lead .project-case__heading{grid-area:1/3/auto/9}.project-case--lead .project-case__hero-metric{grid-area:1/9/auto/13}.project-case--lead .project-case__media{grid-area:2/3/auto/13}.project-case--lead .project-case__details{grid-area:3/3/auto/8}.project-case--lead .project-case__technical{grid-area:3/9/auto/13}.project-case--reverse .project-case__media{grid-area:1/1/auto/8}.project-case--reverse .project-case__narrative{grid-area:1/8/auto/13}.project-case--reverse .project-case__metric-band{grid-area:2/5/auto/13}.project-case--secondary .project-case__heading{grid-column:2/8}.project-case--secondary .project-case__secondary-evidence{grid-column:8/13}.project-case--supporting .project-meta{grid-column:1/3}.project-case--supporting .project-case__supporting-title{grid-column:3/7}.project-case--supporting .project-case__summary{grid-column:7/11}.project-case--supporting .project-links{grid-column:11/13}.profile h2{grid-area:1/3/auto/10}.profile__support{grid-area:2/8/auto/13;margin-block-start:var(--space-12)}.principles h2{grid-area:1/3/auto/8}.principles__list{grid-area:2/5/auto/13}.principles__list li{grid-template-columns:repeat(8,minmax(0,1fr))}.principles__list .mono-label{grid-column:1/3}.principles__list p{grid-column:3/8}.principles__list .text-link{grid-column:8/9}.capabilities h2{grid-area:1/3/auto/7}.capabilities__list{grid-area:1/7/3/13}.capabilities__row{grid-template-columns:repeat(6,minmax(0,1fr))}.capabilities__row dt{grid-column:1/3}.capabilities__row dd{grid-column:3/7}.experience-education h2{grid-area:1/3/auto/9}.experience-list{grid-area:2/3/auto/9}.experience-item{grid-template-columns:repeat(6,minmax(0,1fr))}.experience-item__dates{grid-column:1/3}.experience-item__identity,.experience-item__highlights{grid-column:3/7}.education-certifications{grid-area:2/9/auto/13;padding-block-start:var(--space-8)}.contact .section__marker{grid-row:1}.contact h2{grid-area:2/1/auto/11}.contact__context{grid-area:3/3/auto/8}.contact__links{grid-area:3/8/auto/13}}.architecture-diagram{gap:var(--space-4);padding:var(--space-4);margin:var(--space-0);background:var(--color-surface);color:var(--color-text-primary);display:grid}.architecture-diagram__visual,.architecture-diagram__header{gap:var(--space-4);display:grid}.architecture-diagram__title,.diagram-node p,.architecture-diagram figcaption{margin:var(--space-0)}.architecture-diagram__title,.diagram-node{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-label)}.architecture-diagram__title{color:var(--color-text-secondary);letter-spacing:var(--tracking-mono);text-transform:uppercase}.architecture-diagram__stage{min-width:var(--space-0);border:var(--border-strong);background-color:var(--color-canvas);background-image:linear-gradient(to right, var(--color-diagram-grid) var(--border-width-thin), transparent var(--border-width-thin)), linear-gradient(to bottom, var(--color-diagram-grid) var(--border-width-thin), transparent var(--border-width-thin));background-size:var(--diagram-grid-size) var(--diagram-grid-size);position:relative;overflow:hidden}.architecture-diagram--has-group-note .architecture-diagram__stage{--diagram-mobile-row-height:var(--diagram-mobile-row-height-spacious)}.diagram-groups,.diagram-connectors{inset:var(--space-3);width:calc(100% - var(--space-6));height:calc(100% - var(--space-6));pointer-events:none;position:absolute}.diagram-groups{z-index:var(--z-diagram-labels);grid-template-rows:repeat(var(--diagram-mobile-rows), var(--diagram-mobile-row-height));display:grid}.diagram-groups--desktop,.diagram-connectors--desktop{display:none}.diagram-group{min-width:var(--space-0);margin-block:var(--space-1);border:var(--border-thin);border-color:var(--color-border-strong);border-radius:var(--radius-sm);background:0 0;position:relative}.diagram-groups--mobile .diagram-group{grid-row:var(--diagram-group-mobile-start) / var(--diagram-group-mobile-end)}.diagram-group__label,.diagram-group__note{padding-inline:var(--space-2);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-label);letter-spacing:var(--tracking-mono);white-space:nowrap;position:absolute;inset-inline-start:var(--space-2)}.diagram-group__label{inset-block-start:var(--space-0);transform:translateY(-50%)}.diagram-group__note{width:max-content;max-width:calc(100% - var(--space-4));padding-block:var(--space-0-5);border:var(--border-thin);border-color:var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-primary);white-space:normal;inset-block-end:var(--space-2)}.architecture-diagram__nodes{z-index:var(--z-raised);grid-template-rows:repeat(var(--diagram-mobile-rows), var(--diagram-mobile-row-height));padding:var(--space-3);display:grid;position:relative}.diagram-node{height:auto;width:calc(100% - var(--space-12));min-height:var(--diagram-node-min-height);align-content:start;place-self:center;gap:var(--space-1);padding:var(--space-3);border:var(--border-strong);border-color:var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text-primary);grid-row:var(--diagram-mobile-order);display:grid}.diagram-node__meta{gap:var(--space-2);color:var(--color-text-muted);letter-spacing:var(--tracking-label);text-transform:uppercase;align-items:center;display:flex}.diagram-node__status{width:var(--diagram-status-size);height:var(--diagram-status-size);border:var(--border-width-thin) solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);flex:none}.diagram-node strong{color:var(--color-text-primary);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere}.diagram-node p{color:var(--color-text-secondary);overflow-wrap:anywhere}.diagram-connectors{z-index:var(--z-diagram-connectors);overflow:visible}.diagram-edge{fill:none;stroke:var(--color-diagram-edge);stroke-linecap:round;stroke-linejoin:round;stroke-width:var(--border-width-thin)}.diagram-edge--accent{stroke:var(--color-accent)}.diagram-arrow{stroke:none}.diagram-arrow--default{fill:var(--color-diagram-edge)}.diagram-arrow--accent{fill:var(--color-accent)}.diagram-flow-marker{fill:none;opacity:0;pointer-events:none;stroke:var(--color-accent);stroke-linecap:round;stroke-width:var(--diagram-flow-marker-size);transform-box:view-box;transform-origin:var(--space-0) var(--space-0)}.architecture-diagram figcaption{max-width:var(--measure-body);color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-body)}@media (width>=48rem){.architecture-diagram{gap:var(--space-6);padding:var(--space-6)}.architecture-diagram__header{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end}}@media (width>=80rem){.architecture-diagram__stage{aspect-ratio:var(--aspect-diagram)}.project-case--reverse .architecture-diagram__stage{aspect-ratio:var(--aspect-diagram-narrow)}.diagram-groups,.diagram-connectors{inset:var(--space-6);width:calc(100% - var(--space-12));height:calc(100% - var(--space-12))}.diagram-groups--mobile,.diagram-connectors--mobile{display:none}.diagram-groups--desktop{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(3, minmax(var(--diagram-desktop-row-min-height), auto));row-gap:var(--space-3);align-content:space-between;display:grid}.diagram-groups--desktop .diagram-group{grid-column:var(--diagram-group-column-start) / var(--diagram-group-column-end);grid-row:var(--diagram-group-row)}.diagram-groups--desktop .diagram-group__note{max-width:calc(100% - var(--space-4));inset-block-end:calc(-1 * var(--space-5));inset-inline-start:var(--space-2)}.diagram-connectors--desktop{display:block}.architecture-diagram__nodes{inset:var(--space-6);grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(3, minmax(var(--diagram-desktop-row-min-height), auto));column-gap:var(--diagram-desktop-column-gap);row-gap:var(--space-3);padding:var(--space-0);align-content:space-between;position:absolute}.diagram-node{width:100%;min-width:var(--space-0);min-inline-size:var(--diagram-node-min-width);margin-block:var(--space-6) var(--space-3);grid-column:var(--diagram-column) / span var(--diagram-column-span);grid-row:var(--diagram-row);align-content:start;place-self:stretch center}}@media (prefers-reduced-motion:reduce){.diagram-flow-marker{display:none}}*,:before,:after{box-sizing:border-box}html{background:var(--color-canvas);min-height:100%;color:var(--color-text-primary);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;scroll-behavior:auto}body{min-height:100%;margin:var(--space-0);background:var(--color-canvas);color:var(--color-text-primary);font-size:var(--text-body);line-height:var(--leading-body);letter-spacing:var(--tracking-body)}button,input,select,textarea{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}::selection{background:var(--color-accent);color:var(--color-on-accent)}:focus-visible{outline:var(--focus-outline-width) solid var(--color-accent);outline-offset:var(--focus-outline-offset)}.sr-only{width:var(--border-width-thin);height:var(--border-width-thin);padding:var(--space-0);margin:calc(var(--border-width-thin) * -1);clip:rect(0, 0, 0, 0);white-space:nowrap;border:var(--space-0);position:absolute;overflow:hidden}.skip-link{z-index:var(--z-skip-link);padding:var(--space-3) var(--space-4);transform:translateY(calc(-100% - var(--space-8)));background:var(--color-accent);color:var(--color-on-accent);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-label);text-decoration:none;position:fixed;inset-block-start:var(--space-4);inset-inline-start:var(--page-gutter)}.skip-link:focus-visible{transform:translateY(var(--space-0))}.site-shell{min-height:100svh}.container{width:100%;max-width:calc(var(--container-max) + (var(--page-gutter) * 2));padding-inline:var(--page-gutter);margin-inline:auto}.grid{grid-template-columns:repeat(var(--page-grid-columns), minmax(0, 1fr));gap:var(--grid-gap);display:grid}.section{padding-block:var(--section-space);scroll-margin-block-start:calc(var(--header-height) + var(--space-4))}.section__content{padding-block-start:var(--content-gap)}.section__marker{gap:var(--space-3);grid-column:1/-1;align-items:baseline;display:flex}.section__label{color:var(--color-text-secondary)}.rule{width:100%;height:var(--border-width-thin);margin:var(--space-0);border:var(--space-0);background:var(--color-border);transform-origin:0;transition-duration:var(--duration-reveal);transition-property:opacity,transform;transition-timing-function:var(--ease-standard)}.mono-label{color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-label);letter-spacing:var(--tracking-label);text-transform:uppercase}.numeral{text-transform:none}.text-link{min-height:var(--tap-target-min);color:var(--color-text-primary);align-items:center;text-decoration:none;display:inline-flex;position:relative}.text-link__label{position:relative}.text-link__label:before,.text-link__label:after{inset-inline:var(--space-0);height:var(--border-width-thin);content:"";pointer-events:none;position:absolute;inset-block-end:calc(var(--space-0-5) * -1)}.text-link__label:before{background:var(--color-border-strong)}.text-link__label:after{transform-origin:0;transition-duration:var(--duration-fast);transition-property:transform;transition-timing-function:var(--ease-standard);background:currentColor;transform:scaleX(0)}.text-link__arrow{transition-duration:var(--duration-fast);transition-property:transform;transition-timing-function:var(--ease-standard);display:inline-block}.text-link__arrow--spaced{margin-inline-start:var(--space-1)}.text-link:focus-visible{color:var(--color-accent-strong)}.text-link:focus-visible .text-link__label:after{transform:scaleX(1)}.text-link:focus-visible .text-link__arrow{transform:translateX(var(--motion-arrow-distance))}@media (hover:hover){.text-link:hover{color:var(--color-accent-strong)}.text-link:hover .text-link__label:after{transform:scaleX(1)}.text-link:hover .text-link__arrow{transform:translateX(var(--motion-arrow-distance))}}.site-brand .text-link__label:before,.site-brand .text-link__label:after,.mobile-menu__list .text-link__label:before,.mobile-menu__list .text-link__label:after{display:none}.site-header{z-index:var(--z-sticky);min-height:var(--header-height);isolation:isolate;border-block-end:var(--border-thin);background:var(--color-canvas);position:sticky;inset-block-start:var(--space-0)}.site-header:before{z-index:var(--z-base);inset:var(--space-0);background:var(--color-surface);content:"";opacity:0;pointer-events:none;transition-duration:var(--duration-base);transition-property:opacity;transition-timing-function:var(--ease-standard);position:absolute}.site-header[data-compact=true]:before{opacity:1}.site-header__inner{z-index:var(--z-raised);min-height:var(--header-height);grid-template-columns:repeat(var(--page-grid-columns), minmax(0, 1fr));gap:var(--grid-gap);align-items:center;display:grid;position:relative}.site-brand{font-weight:var(--font-weight-semibold);transform-origin:0;transition-duration:var(--duration-base);transition-property:transform;transition-timing-function:var(--ease-standard);grid-column:1/-3;justify-self:start;text-decoration:none}.site-header[data-compact=true] .site-brand{transform:scale(var(--motion-header-scale))}.desktop-navigation{display:var(--desktop-navigation-display);grid-column:5/10}.navigation-list,.mobile-menu__list{padding:var(--space-0);margin:var(--space-0);list-style:none}.navigation-list{gap:var(--space-6);justify-content:center;display:flex}.site-header__actions{justify-self:end;align-items:center;gap:var(--space-3);grid-column:-3/-1;display:flex}.resume-link{display:var(--desktop-resume-display)}.theme-toggle{min-width:var(--tap-target-min);min-height:var(--tap-target-min);padding:var(--space-0);border:var(--border-thin);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:focus-visible{border-color:var(--color-accent)}.theme-toggle__icon{width:var(--space-5);height:var(--space-5);stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.75px}:root:not([data-theme]) .theme-toggle{display:none}@media (width>=64rem){.site-brand{grid-column:1/4}.site-header__actions{gap:var(--space-5);grid-column:-4/-1}}.theme-toggle__icon--moon,:root[data-theme=light] .theme-toggle__icon--sun{display:none}:root[data-theme=light] .theme-toggle__icon--moon{display:block}@media (hover:hover){.theme-toggle:hover{border-color:var(--color-border-strong);color:var(--color-accent-strong)}}.menu-toggle,.mobile-menu__close{min-width:var(--tap-target-min);min-height:var(--tap-target-min);padding:var(--space-2) var(--space-3);border:var(--border-thin);border-radius:var(--radius-sm);background:var(--color-canvas);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-mono)}.menu-toggle{display:var(--mobile-toggle-display);justify-content:center;align-items:center}.mobile-menu{inset:var(--space-0);z-index:var(--z-overlay);display:var(--mobile-navigation-display);background:var(--color-surface);opacity:0;pointer-events:none;transition-duration:var(--duration-fast);transition-property:opacity;transition-timing-function:var(--ease-standard);justify-content:flex-end;position:fixed}.mobile-menu[hidden]{display:none}.mobile-menu__panel{gap:var(--space-12);width:100%;padding:var(--page-gutter);background:var(--color-surface-raised);transform:translateX(var(--motion-menu-distance));transition-duration:var(--duration-fast);transition-property:transform;transition-timing-function:var(--ease-enter);flex-direction:column;display:flex}.mobile-menu[data-state=open]{opacity:1;pointer-events:auto;transition-duration:var(--duration-base)}.mobile-menu[data-state=open] .mobile-menu__panel{transform:translateX(var(--space-0));transition-duration:var(--duration-base)}.mobile-menu__close{align-self:flex-end}.mobile-menu__list{gap:var(--space-2);display:grid}.mobile-menu__list .text-link{border-block-end:var(--border-thin);width:100%;font-size:var(--text-title-sm);text-decoration:none}[data-motion-reveal]{transition-duration:var(--duration-reveal);transition-property:opacity,transform;transition-timing-function:var(--ease-enter)}html[data-motion=ready] [data-motion-reveal]:not([data-revealed=true]){opacity:var(--opacity-reveal-hidden);transform:translateY(var(--motion-reveal-distance))}html[data-motion=ready] [data-motion-rule]:not([data-revealed=true]){opacity:var(--opacity-rule-start);transform:scaleX(var(--motion-rule-scale))}@media print{html[data-motion=ready] [data-motion-reveal],html[data-motion=ready] [data-motion-rule]{opacity:1;transform:none}}.page-shell{min-height:calc(100svh - var(--header-height));padding-block:var(--section-space-compact);align-items:center;display:flex}.page-shell h1,.tokens-page h1{max-width:var(--measure-display);margin:var(--space-0);font-size:var(--text-section);font-weight:var(--font-weight-semibold);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);overflow-wrap:anywhere}.site-footer{padding-block:var(--space-6);border-block-start:var(--border-thin)}.tokens-page{padding-block:var(--section-space-compact)}.tokens-page__header{max-width:var(--container-reading);gap:var(--space-4);display:grid}.tokens-page__header p{max-width:var(--measure-body);margin:var(--space-0);color:var(--color-text-secondary)}.token-section{padding-block-start:var(--section-space-compact)}.token-section h2{margin-block:var(--space-0) var(--space-8);font-size:var(--text-title-sm);line-height:var(--leading-title)}.token-list{grid-template-columns:repeat(var(--token-list-columns), minmax(0, 1fr));gap:var(--space-6);display:grid}.token-item,.type-token,.spacing-token{gap:var(--space-3);display:grid}.token-swatch{min-height:var(--space-16);border:var(--border-thin);border-radius:var(--radius-sm)}.type-token-list,.spacing-token-list{gap:var(--space-6);display:grid}.type-token,.spacing-token{border-block-end:var(--border-thin);padding-block-end:var(--space-6)}.type-token p{margin:var(--space-0);line-height:var(--leading-title);overflow-wrap:anywhere}.spacing-token{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center}.spacing-token__sample{min-width:var(--space-0-5);height:var(--space-6);background:var(--color-accent)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{animation-duration:var(--duration-none)!important;transition-duration:var(--duration-none)!important;scroll-behavior:auto!important;animation-iteration-count:1!important}html[data-motion=ready] [data-motion-reveal],html[data-motion=ready] [data-motion-rule]{opacity:1!important;transform:none!important}.site-header[data-compact=true] .site-brand,.text-link:hover .text-link__arrow,.text-link:focus-visible .text-link__arrow{transform:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}
