:root{color-scheme:light;--color-background: #f4f6f2;--color-surface: #ffffff;--color-cream: #f7f2e6;--color-text: #172119;--color-muted: #626d64;--color-border: #d7ded2;--color-accent: #1f3b2e;--color-accent-strong: #122c21;--color-resume: #a94c1f;--color-resume-soft: #f0c8ae;--shadow-soft: 0 16px 50px rgba(21, 23, 29, .08);--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--max-width: 1120px}*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(180deg,#fbfcfb 0%,var(--color-background) 58%,var(--color-cream) 100%);color:var(--color-text);font-family:var(--font-sans);font-size:16px;line-height:1.6;text-rendering:optimizeLegibility}body::selection{background:var(--color-resume-soft);color:var(--color-text)}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--color-accent-strong);outline-offset:3px;box-shadow:0 0 0 6px var(--color-cream)}button{font:inherit}@property --header-height{syntax: "<length>"; inherits: true; initial-value: 76px;}@property --header-padding-block{syntax: "<length>"; inherits: true; initial-value: .1rem;}@property --brand-link-height{syntax: "<length>"; inherits: true; initial-value: 4.55rem;}@property --brand-wordmark-width{syntax: "<length>"; inherits: true; initial-value: 20rem;}@property --brand-icon-size{syntax: "<length>"; inherits: true; initial-value: 2.55rem;}.skip-link{position:fixed;inset-block-start:1rem;inset-inline-start:1rem;z-index:20;transform:translateY(-180%);border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);box-shadow:var(--shadow-soft);color:var(--color-text);font-size:.92rem;font-weight:700;padding:.7rem .9rem;text-decoration:none;transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}.site-shell{display:flex;min-height:100vh;flex-direction:column}.site-main{flex:1;width:min(100% - 2rem,var(--max-width));margin-inline:auto;padding-block:0 5rem;scroll-margin-top:5rem}.site-main:focus{outline:none}.site-header{--header-expanded-height: 76px;--header-compact-height: 58px;--header-expanded-padding: .1rem;--header-compact-padding: .165rem;--brand-wordmark-expanded-width: 20rem;--brand-wordmark-compact-width: 14.5rem;--brand-link-expanded-height: 4.55rem;--brand-link-compact-height: 3.3rem;--brand-icon-expanded-size: 2.55rem;--brand-icon-compact-size: 2.05rem;--header-height: var(--header-expanded-height);--header-padding-block: var(--header-expanded-padding);--brand-link-height: var(--brand-link-expanded-height);--brand-wordmark-width: var(--brand-wordmark-expanded-width);--brand-icon-size: var(--brand-icon-expanded-size);position:sticky;top:0;z-index:10;isolation:isolate;display:grid;grid-template-columns:auto 1fr auto;align-items:center;width:min(100% - 2rem,var(--max-width));min-height:var(--header-height);margin-inline:auto;padding-block:var(--header-padding-block)}.site-header:before{position:absolute;inset-block:0;left:50%;z-index:-1;width:100vw;border-block-end:1px solid rgba(215,222,210,.9);background:var(--color-surface);box-shadow:0 10px 28px #15171d12;content:"";transform:translate(-50%)}.brand-link{grid-column:1;display:inline-flex;align-items:center;min-width:0;min-height:var(--brand-link-height);color:var(--color-text);font-weight:800;text-decoration:none}.brand-wordmark{display:block;width:var(--brand-wordmark-width);max-width:42vw;height:auto}.brand-icon{display:none;width:var(--brand-icon-size);height:var(--brand-icon-size)}.desktop-navigation{grid-column:2;display:flex;justify-content:flex-end;gap:.2rem}.navigation-link{border-radius:6px;color:var(--color-muted);font-size:.95rem;font-weight:650;line-height:1;padding:.72rem .78rem;text-decoration:none;transition:background-color .16s ease,color .16s ease}.navigation-link:hover{background:#1f3b2e14;color:var(--color-accent-strong)}.navigation-link--active{color:var(--color-text);font-weight:800;box-shadow:inset 0 -.3em 0 var(--color-resume-soft)}.mobile-navigation-toggle{display:none;grid-column:3;justify-self:end;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);cursor:pointer}.mobile-navigation-toggle span{display:block;width:1.12rem;height:2px;grid-area:1 / 1;background:currentColor;border-radius:999px;transition:transform .18s ease,opacity .18s ease}.mobile-navigation-toggle span:nth-child(1){transform:translateY(-6px)}.mobile-navigation-toggle span:nth-child(3){transform:translateY(6px)}.site-header[data-menu-state=open] .mobile-navigation-toggle span:nth-child(1){transform:rotate(45deg)}.site-header[data-menu-state=open] .mobile-navigation-toggle span:nth-child(2){opacity:0}.site-header[data-menu-state=open] .mobile-navigation-toggle span:nth-child(3){transform:rotate(-45deg)}.mobile-navigation{grid-column:1 / -1;display:grid;gap:.2rem;max-height:0;overflow:hidden;border:1px solid transparent;border-radius:8px;opacity:0;transform:translateY(-.35rem);transition:max-height .22s ease,opacity .18s ease,transform .18s ease,border-color .18s ease,padding .18s ease}.mobile-navigation[hidden]{display:none}.mobile-navigation[data-open=true]{max-height:22rem;margin-block-start:.9rem;padding:.45rem;border-color:var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-soft);opacity:1;transform:translateY(0)}.mobile-navigation-link{border-radius:6px;color:var(--color-muted);font-size:1rem;font-weight:700;padding:.82rem .9rem;text-decoration:none}.mobile-navigation-link:hover{background:#1f3b2e14;color:var(--color-accent-strong)}.mobile-navigation-link--active{color:var(--color-text);box-shadow:inset 4px 0 0 var(--color-resume)}@keyframes shrink-site-header{to{min-height:var(--header-compact-height);padding-block:var(--header-compact-padding)}}@keyframes shrink-brand-link{to{min-height:var(--brand-link-compact-height)}}@keyframes shrink-brand-wordmark{to{width:var(--brand-wordmark-compact-width)}}@keyframes shrink-brand-icon{to{width:var(--brand-icon-compact-size);height:var(--brand-icon-compact-size)}}@media(prefers-reduced-motion:no-preference){@supports ((animation-timeline: scroll()) and (animation-range: 0% 100%)){.site-header,.brand-link,.brand-wordmark,.brand-icon{animation-duration:1ms;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(block root);animation-range:0 96px}.site-header{animation-name:shrink-site-header}.brand-link{animation-name:shrink-brand-link}.brand-wordmark{animation-name:shrink-brand-wordmark}.brand-icon{animation-name:shrink-brand-icon}}}.hero-section{position:relative;isolation:isolate;display:grid;min-height:min(64vh,43rem);align-items:end;margin-inline:calc(50% - 50vw);overflow:hidden;padding:clamp(4.5rem,9vw,7rem) max(1rem,calc((100vw - var(--max-width)) / 2)) clamp(3.2rem,6vw,5rem);color:var(--color-cream)}.hero-section:after{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#122c21e6,#122c21b3 40%,#122c2133),linear-gradient(180deg,#122c2133,#122c219e);content:""}.hero-section__media{position:absolute;inset:0;z-index:-2}.hero-section__media img{width:100%;height:100%;object-fit:cover}.hero-section__content{max-width:780px}.hero-kicker,.hero-proof{margin:0;color:#f7f2e6d6;font-size:.9rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.hero-proof{margin-block-start:1.25rem;letter-spacing:0;text-transform:none}.hero-section h1,.page-section h1,.not-found-section h1{max-width:14ch;margin:0;color:var(--color-text);font-size:4.2rem;line-height:1;letter-spacing:0}.hero-section h1{color:var(--color-cream);text-shadow:0 2px 28px rgba(0,0,0,.2)}.hero-section p,.page-section p,.not-found-section p{max-width:650px;margin:1.4rem 0 0;color:var(--color-muted);font-size:1.18rem}.hero-section p{color:#f7f2e6e0}.hero-actions,.not-found-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-block-start:2rem}.button-link,.not-found-links a{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-size:.96rem;font-weight:800;padding:.78rem 1rem;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.button-link:hover,.not-found-links a:hover{border-color:#1f3b2e52;box-shadow:0 12px 30px #15171d14;transform:translateY(-1px)}.button-link--primary{border-color:var(--color-resume);background:var(--color-resume);color:#fff}.home-section{padding-block:clamp(3.2rem,6vw,5rem);border-block-end:1px solid var(--color-border)}.section-heading{display:grid;gap:.65rem;max-width:48rem;margin-block-end:2rem}.section-kicker{margin:0;color:var(--color-resume);font-size:.82rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.section-heading h2,.home-close h2{margin:0;color:var(--color-text);font-size:2.1rem;line-height:1.12;letter-spacing:0}.recent-experience__rows{display:grid;border-block-start:1px solid var(--color-border)}.recent-experience__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding-block:1.15rem;border-block-end:1px solid var(--color-border)}.recent-experience__row h3,.leadership-list h3{margin:0;color:var(--color-text);font-size:1.05rem;line-height:1.25}.recent-experience__row p,.leadership-list p{margin:.3rem 0 0;color:var(--color-muted);font-size:.98rem}.recent-experience__row time{color:var(--color-accent-strong);font-size:.92rem;font-weight:850;white-space:nowrap}.leadership-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:0;border-block-start:1px solid var(--color-border);list-style:none}.leadership-list li{min-height:9.25rem;padding:1.15rem 1.1rem;border-block-end:1px solid var(--color-border);border-inline-end:1px solid var(--color-border)}.leadership-list li:nth-child(3n){border-inline-end:0}.home-close{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block-start:clamp(3rem,6vw,4.75rem)}.home-close__actions{margin-block-start:0}.page-section,.not-found-section{display:grid;min-height:50vh;align-content:center;padding-block:4rem}.page-section a{color:var(--color-accent-strong);font-weight:700}.contact-list{display:grid;max-width:46rem;margin:2.4rem 0 0;padding:0;border-block:1px solid var(--color-border)}.contact-list__item{display:grid;grid-template-columns:minmax(7.5rem,12rem) 1fr;gap:1rem;padding:1rem 0;border-block-end:1px solid var(--color-border)}.contact-list__item:last-child{border-block-end:0}.contact-list dt,.contact-list dd{margin:0}.contact-list dt{color:var(--color-muted);font-size:.9rem;font-weight:850}.contact-list dd{min-width:0;overflow-wrap:anywhere}.resume-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1.5rem,4vw,3rem);align-items:end;padding-block:clamp(2.5rem,6vw,4.75rem);border-block-end:1px solid var(--color-border)}.resume-hero h1{max-width:14ch;margin:0;color:var(--color-text);font-size:4.2rem;line-height:1;letter-spacing:0}.resume-hero p{max-width:720px;margin:1.2rem 0 0;color:var(--color-muted);font-size:1.12rem}.resume-hero__role{color:var(--color-accent-strong)!important;font-size:1.35rem!important;font-weight:850}.resume-hero__positioning{color:var(--color-text)!important;font-size:1rem!important;font-weight:850}.resume-hero__actions{display:flex;align-items:flex-end;justify-content:flex-end}.resume-document{display:grid;padding-block:1rem 0}.resume-section{display:grid;grid-template-columns:minmax(11rem,.36fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);padding-block:clamp(2rem,4vw,3rem);border-block-end:1px solid var(--color-border)}.resume-section__heading{display:grid;align-content:start;gap:.55rem}.resume-section__heading h2{margin:0;color:var(--color-text);font-size:1.55rem;line-height:1.15;letter-spacing:0}.resume-section__body{min-width:0}.resume-summary{display:grid;gap:.9rem}.resume-summary p,.resume-military p{margin:0;color:var(--color-muted);font-size:1.02rem}.resume-experience-list{display:grid}.resume-experience{padding-block:1.35rem;border-block-start:1px solid var(--color-border)}.resume-experience:first-child{padding-block-start:0;border-block-start:0}.resume-experience:last-child{padding-block-end:0}.resume-experience__header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}.resume-experience h3,.resume-skill-group h3,.resume-military h3{margin:0;color:var(--color-text);font-size:1.08rem;line-height:1.25}.resume-experience__header p,.resume-military__meta{margin:.3rem 0 0;color:var(--color-muted);font-size:.95rem}.resume-experience__context{color:var(--color-accent-strong)!important;font-weight:750}.resume-experience__date{color:var(--color-accent-strong)!important;font-size:.9rem!important;font-weight:850;text-align:end;white-space:nowrap}.resume-experience ul{display:grid;gap:.55rem;margin:.9rem 0 0;padding-inline-start:1.15rem}.resume-experience li{color:var(--color-text);font-size:.98rem}.resume-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.5rem}.resume-skill-group{padding-block:.95rem;border-block-start:1px solid var(--color-border)}.resume-skill-group:nth-child(-n+2){padding-block-start:0;border-block-start:0}.resume-skill-group p{margin:.45rem 0 0;color:var(--color-muted);font-size:.96rem}.resume-credentials,.resume-contact-list{display:grid;margin:0;border-block-start:1px solid var(--color-border)}.resume-credentials div,.resume-contact-list div{display:grid;grid-template-columns:minmax(8rem,13rem) minmax(0,1fr);gap:1rem;padding-block:.9rem;border-block-end:1px solid var(--color-border)}.resume-credentials dt,.resume-credentials dd,.resume-contact-list dt,.resume-contact-list dd{margin:0}.resume-credentials dt,.resume-contact-list dt{color:var(--color-muted);font-size:.9rem;font-weight:850}.resume-credentials dd,.resume-contact-list dd{min-width:0;overflow-wrap:anywhere;color:var(--color-text)}.resume-contact-list a{color:var(--color-accent-strong);font-weight:750;text-decoration-color:#1f3b2e59;text-decoration-thickness:2px;text-underline-offset:.25em}.resume-military{display:grid;gap:.6rem}.experience-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,.42fr);gap:clamp(1.5rem,4vw,3rem);align-items:end;padding-block:clamp(2.5rem,6vw,4.75rem);border-block-end:1px solid var(--color-border)}.experience-hero h1{max-width:16ch;margin:0;color:var(--color-text);font-size:4.2rem;line-height:1;letter-spacing:0}.experience-hero__lead{max-width:740px;margin:1.25rem 0 0;color:var(--color-muted);font-size:1.14rem}.experience-hero__facts{display:grid;margin:0;border-block-start:1px solid var(--color-border)}.experience-hero__facts div{padding-block:.95rem;border-block-end:1px solid var(--color-border)}.experience-hero__facts dt,.experience-hero__facts dd{margin:0}.experience-hero__facts dt{color:var(--color-resume);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.experience-hero__facts dd{margin-block-start:.35rem;color:var(--color-text);font-size:.97rem;font-weight:700;line-height:1.45}.experience-section{padding-block:0;border-block-end:1px solid var(--color-border)}.experience-section__heading{display:grid;gap:.65rem;max-width:48rem;margin-block-end:2.2rem}.experience-section__heading h2,.experience-military__heading h2{margin:0;color:var(--color-text);font-size:2.1rem;line-height:1.12;letter-spacing:0}.experience-section__heading p:last-child{margin:0;color:var(--color-muted);font-size:1.04rem}.experience-timeline{display:grid}.experience-role{display:grid;grid-template-columns:minmax(9rem,.24fr) minmax(0,1fr);gap:clamp(1.25rem,4vw,2.6rem);padding-block:clamp(1.5rem,4vw,2.25rem);border-block-end:1px solid var(--color-border)}.experience-role__date p{margin:0;color:var(--color-accent-strong);font-size:.92rem;font-weight:900}.experience-role__date span{display:inline-block;margin-block-start:.55rem;color:var(--color-resume);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.experience-role__body{min-width:0}.experience-role__header{display:grid;gap:.3rem}.experience-role__company,.experience-role__context,.experience-role__summary,.experience-role__technologies,.experience-military__meta,.experience-military__body p{margin:0}.experience-role__company{color:var(--color-muted);font-size:.95rem;font-weight:850}.experience-role h2,.experience-military h3{margin:0;color:var(--color-text);font-size:1.35rem;line-height:1.2}.experience-role__context{color:var(--color-accent-strong);font-size:.95rem;font-weight:750}.experience-role__summary{max-width:780px;margin-block-start:.85rem;color:var(--color-muted);font-size:1rem}.experience-role__details{display:grid;gap:1.15rem;margin-block-start:1.15rem}.experience-role h3{margin:0;color:var(--color-resume);font-size:.8rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.experience-role ul{display:grid;gap:.55rem;margin:.65rem 0 0;padding-inline-start:1.15rem}.experience-role li{color:var(--color-text);font-size:.98rem}.experience-role__technologies{margin-block-start:.45rem;color:var(--color-muted);font-size:.96rem}.experience-military{display:grid;grid-template-columns:minmax(11rem,.36fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);padding-block-start:clamp(2.5rem,5vw,4rem)}.experience-military__heading{display:grid;align-content:start;gap:.55rem}.experience-military__body{display:grid;gap:.65rem;padding-block-start:.1rem}.experience-military__meta{color:var(--color-accent-strong);font-size:.95rem;font-weight:850}.experience-military__body p:last-child{color:var(--color-muted);font-size:1rem}.projects-section{align-content:start}.project-list{display:grid;margin-block-start:3rem;border-block-start:1px solid var(--color-border)}.project-entry{display:grid;grid-template-columns:minmax(0,.9fr) minmax(18rem,1.1fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;padding-block:2rem;border-block-end:1px solid var(--color-border)}.project-entry__content h2{margin:0;color:var(--color-text);font-size:1.65rem;line-height:1.2}.project-entry__content p{margin:.8rem 0 0;color:var(--color-muted);font-size:1rem}.project-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-block-start:1.2rem}.project-links a{color:var(--color-accent-strong);font-size:.94rem;font-weight:850;text-decoration-color:#1f3b2e59;text-decoration-thickness:2px;text-underline-offset:.25em}.project-entry__media{margin:0}.project-entry__media img{display:block;width:100%;aspect-ratio:16 / 10;height:auto;object-fit:cover;object-position:top;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 12px 40px #15171d12}.project-breadcrumb{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-block-end:2rem;color:var(--color-muted);font-size:.92rem;font-weight:800}.project-breadcrumb a{color:var(--color-accent-strong);text-decoration-color:#1f3b2e59;text-decoration-thickness:2px;text-underline-offset:.25em}.project-detail{padding-block:clamp(2.5rem,6vw,4.75rem)}.project-detail__hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(20rem,1.1fr);gap:clamp(1.5rem,4vw,3rem);align-items:end;padding-block-end:clamp(2.5rem,5vw,4rem);border-block-end:1px solid var(--color-border)}.project-detail__intro h1{max-width:12ch;margin:0;color:var(--color-text);font-size:4.2rem;line-height:1;letter-spacing:0}.project-detail__intro p{max-width:680px;margin:1.15rem 0 0;color:var(--color-muted);font-size:1.08rem}.project-built-with{color:var(--color-text)!important;font-size:.96rem!important}.project-built-with span{color:var(--color-resume);font-size:.78rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.project-detail__media{margin:0}.project-detail__media img{display:block;width:100%;height:auto;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 18px 52px #15171d1a}.project-writeup{display:grid;gap:0;max-width:820px;padding-block-start:clamp(2.5rem,5vw,4rem)}.project-writeup h2{margin:clamp(2.5rem,5vw,4rem) 0 0;color:var(--color-text);font-size:2.1rem;line-height:1.12;letter-spacing:0}.project-writeup h2:first-child{margin-block-start:0}.project-writeup p{margin:.9rem 0 0;color:var(--color-muted);font-size:1.02rem}.project-screenshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,1.5rem);margin-block-start:1.5rem}.project-screenshot-grid figure{display:grid;gap:.65rem;margin:0}.project-screenshot-grid img{display:block;width:100%;height:auto;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 12px 34px #15171d12}.project-screenshot-grid figcaption{color:var(--color-muted);font-size:.9rem;line-height:1.45}.status-code{margin:0 0 1rem;color:var(--color-resume);font-size:.9rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.site-footer{border-top:1px solid var(--color-border);background:#ffffffad}.site-footer__inner{display:flex;width:min(100% - 2rem,var(--max-width));min-height:7rem;align-items:center;justify-content:space-between;gap:1rem;margin-inline:auto;padding-block:1.5rem}.site-footer__identity{margin:0;color:var(--color-muted);font-size:.95rem}.site-footer__links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.9rem}.site-footer__links a{color:var(--color-text);font-size:.94rem;font-weight:700;text-decoration-color:#1f3b2e59;text-decoration-thickness:2px;text-underline-offset:.25em}.site-footer__links a:hover{color:var(--color-accent-strong)}@media(max-width:840px){.site-header{--header-expanded-height: 68px;--header-compact-height: 56px;--header-expanded-padding: .75rem;--header-compact-padding: .375rem;--brand-link-expanded-height: 2.75rem;--brand-link-compact-height: 2.75rem;grid-template-columns:auto minmax(0,1fr) auto}.brand-wordmark{display:none}.brand-icon{display:block}.desktop-navigation{display:none}.mobile-navigation-toggle{display:grid}.hero-section h1,.page-section h1,.not-found-section h1{font-size:3rem}.recent-experience__row{grid-template-columns:1fr;gap:.45rem;align-items:start}.recent-experience__row time{white-space:normal}.leadership-list{grid-template-columns:1fr 1fr}.leadership-list li:nth-child(3n){border-inline-end:1px solid var(--color-border)}.leadership-list li:nth-child(2n){border-inline-end:0}.home-close{align-items:flex-start;flex-direction:column}.contact-list__item,.resume-hero,.resume-section,.experience-hero,.experience-role,.experience-military,.project-entry,.project-detail__hero{grid-template-columns:1fr}.resume-hero{align-items:start}.resume-hero__actions{justify-content:flex-start}.resume-hero h1,.experience-hero h1,.project-detail__intro h1{font-size:3rem}.resume-experience__header,.resume-skills{grid-template-columns:1fr}.resume-experience__date{text-align:start;white-space:normal}.resume-skill-group:nth-child(2){padding-block-start:.95rem;border-block-start:1px solid var(--color-border)}.project-entry{align-items:start}.site-footer__inner{align-items:flex-start;flex-direction:column}.site-footer__links{justify-content:flex-start}}@media(max-width:520px){.site-main{width:min(100% - 1.25rem,var(--max-width));padding-block:0 4rem}.site-header{width:min(100% - 1.25rem,var(--max-width));--brand-icon-expanded-size: 2.35rem}.hero-section{min-height:58vh}.hero-section h1,.page-section h1,.resume-hero h1,.experience-hero h1,.not-found-section h1{font-size:2.55rem}.hero-section p,.page-section p,.resume-hero p,.experience-hero__lead,.not-found-section p{font-size:1.05rem}.section-heading h2,.home-close h2,.experience-section__heading h2,.experience-military__heading h2{font-size:1.7rem}.leadership-list{grid-template-columns:1fr}.leadership-list li,.leadership-list li:nth-child(2n),.leadership-list li:nth-child(3n){min-height:auto;padding-inline:0;border-inline-end:0}.resume-credentials div,.resume-contact-list div{grid-template-columns:1fr;gap:.25rem}.project-screenshot-grid{grid-template-columns:1fr}}@media print{@page{margin:.55in}html{scroll-behavior:auto}body{min-width:0;background:#fff;color:#000;font-size:10pt;line-height:1.35}.skip-link,.site-header,.site-footer,.resume-hero__actions{display:none!important}.site-shell,.site-main{display:block;width:100%;min-height:0;margin:0;padding:0}.resume-hero{display:block;padding:0 0 .18in;border-block-end:1pt solid #999999}.resume-hero h1{max-width:none;color:#000;font-size:24pt}.resume-hero p,.resume-hero__role,.resume-hero__positioning,.resume-summary p,.resume-military p,.resume-skill-group p,.resume-experience li,.resume-experience__header p,.resume-military__meta{color:#000!important;font-size:10pt!important}.resume-hero p{max-width:none;margin-block-start:.06in}.section-kicker{color:#000;font-size:8pt}.resume-document{display:block;padding:0}.resume-section{display:block;padding-block:.18in;border-block-end:1pt solid #cccccc;break-inside:avoid}.resume-section__heading{display:block}.resume-section__heading h2{color:#000;font-size:13pt}.resume-section__body{margin-block-start:.08in}.resume-experience{padding-block:.12in;border-block-start:1pt solid #dddddd;break-inside:avoid}.resume-experience__header{grid-template-columns:minmax(0,1fr) auto}.resume-experience h3,.resume-skill-group h3,.resume-military h3{color:#000;font-size:10.5pt}.resume-experience ul{gap:.04in;margin-block-start:.06in}.resume-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 .18in}.resume-skill-group{padding-block:.07in;border-block-start:1pt solid #dddddd;break-inside:avoid}.resume-credentials,.resume-contact-list{border-block-start:1pt solid #dddddd}.resume-credentials div,.resume-contact-list div{grid-template-columns:1.55in minmax(0,1fr);padding-block:.06in;border-block-end:1pt solid #dddddd}.resume-credentials dt,.resume-contact-list dt,.resume-credentials dd,.resume-contact-list dd,.resume-contact-list a{color:#000;font-size:10pt}}@keyframes fieldbook-enter{0%{transform:translateY(5px)}to{transform:translateY(0)}}@keyframes fieldbook-calibrate{0%{background-size:35% 1px}to{background-size:100% 1px}}@media(prefers-reduced-motion:no-preference){.fieldbook-meta,.fieldbook-title,.fieldbook-intro,.fieldbook-actions,.fieldbook-evidence,.fieldbook-evidence__labels{animation:fieldbook-enter .46s cubic-bezier(.16,1,.3,1) both}.fieldbook-title{animation-delay:70ms}.fieldbook-intro{animation-delay:.15s}.fieldbook-actions{animation-delay:.24s}.fieldbook-evidence{animation-delay:.18s}.fieldbook-evidence__labels{animation-delay:.36s}.fieldbook-baseline{background-image:linear-gradient(var(--color-rule),var(--color-rule));background-position:left center;background-repeat:no-repeat;animation:fieldbook-calibrate .68s cubic-bezier(.16,1,.3,1) .1s both}.fieldbook-action svg{transition:transform .16s ease-out}.fieldbook-action:hover svg{transform:translate(3px)}}.fieldbook-content>.home-section{border-block-end:0}body .fieldbook-content>.portfolio-chat{margin-block:0}@media(max-width:900px){.fieldbook-content{padding-block:2.5rem}.fieldbook-content>.home-section{padding-block:2.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-property:none!important;animation-name:none!important}}@font-face{font-family:Chiron Hei HK;src:url(/assets/fonts/chiron-hei-hk-latin-variable.ttf) format("truetype");font-style:normal;font-weight:400 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Chiron Hei HK;src:url(/assets/fonts/chiron-hei-hk-latin-700.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--color-background: #082848;--color-surface: #0d304c;--color-cream: #f7f7f6;--color-text: #f7f7f6;--color-muted: #bdcbd1;--color-border: #506b7e;--color-rule: #6d7a86;--color-frame: #adb3b3;--color-accent: #d8f838;--color-accent-strong: #d8f838;--color-resume: #e46e58;--color-resume-soft: #784a49;--shadow-soft: 0 18px 44px rgba(0, 0, 0, .22);--font-display: "Chiron Hei HK", Inter, ui-sans-serif, system-ui, sans-serif;--font-sans: "Chiron Hei HK", Inter, ui-sans-serif, system-ui, sans-serif;--font-mono: "Menlo", "SFMono-Regular", Consolas, ui-monospace, monospace;--max-width: 1200px}html{background:var(--color-background);color:var(--color-text);scrollbar-color:var(--color-rule) var(--color-background)}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-sans);font-synthesis:none}::selection{background:var(--color-accent);color:var(--color-background)}a{text-decoration-color:color-mix(in srgb,currentColor 58%,transparent);text-underline-offset:.22em}a:focus-visible,button:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;box-shadow:none}input,textarea,button{accent-color:var(--color-accent);caret-color:var(--color-accent)}.skip-link{border:1px solid var(--color-accent);border-radius:0;background:var(--color-background);box-shadow:none;color:var(--color-text)}.site-main{width:min(100% - 2rem,var(--max-width));padding-block-end:clamp(3rem,7vw,6rem)}.site-header{position:relative;top:auto;z-index:12;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;width:min(87vw,1376px);height:99px;min-height:99px;margin-inline:auto;padding:27px 0 0;animation:none!important}body:has(.fieldbook-hero) .site-header{position:absolute;inset-block-start:0;left:50%;transform:translate(-50%)}.site-header:before{inset-block:auto;top:88px;left:0;z-index:0;width:calc(100% + 34px);height:1px;border:0;background:var(--color-rule);box-shadow:none;transform:none}.site-header__measurements{position:absolute;inset:0;z-index:1;pointer-events:none}.site-header__tick{position:absolute;top:82px;width:1px;height:12px;background:var(--color-rule)}.site-header__tick--one{left:19.3%}.site-header__tick--two{left:52%}.site-header__tick--three{left:84%}.site-header__registration{position:absolute;top:76px;right:-32px;width:24px;height:24px;background:linear-gradient(var(--color-cream),var(--color-cream)) center / 1px 100% no-repeat,linear-gradient(var(--color-cream),var(--color-cream)) center / 100% 1px no-repeat}.brand-link{position:relative;z-index:2;display:inline-flex;align-items:center;min-width:0;min-height:34px;color:var(--color-cream);font-family:var(--font-display);font-size:clamp(1.15rem,1.84vw,1.9rem);font-weight:600;letter-spacing:-.015em;line-height:1;text-decoration:none;animation:none!important}.brand-wordmark,.brand-icon{display:none!important}.desktop-navigation{position:relative;z-index:2;display:flex;grid-column:2;width:34vw;justify-content:space-between;gap:0;margin-inline-end:9.2vw;padding-block-start:12px}.navigation-link{border-radius:0;color:var(--color-cream);font-family:var(--font-mono);font-size:clamp(.72rem,.88vw,.95rem);font-weight:500;letter-spacing:.12em;line-height:1;padding:0;text-decoration:none;transition:color .18s ease}.navigation-link:hover,.navigation-link--active{background:none;color:var(--color-accent);box-shadow:none}.mobile-navigation-toggle{display:none;grid-column:3;width:44px;height:44px;border:1px solid var(--color-border);border-radius:0;background:var(--color-background);color:var(--color-cream)}.mobile-navigation-toggle span{border-radius:0;background:currentColor}.mobile-navigation{position:absolute;top:calc(100% - 10px);right:0;left:auto;z-index:10;width:min(100%,24rem);gap:0;max-height:0;border:1px solid transparent;border-radius:0;background:var(--color-background);box-shadow:none;opacity:0;transform:translateY(-.3rem);transition:max-height .22s cubic-bezier(.16,1,.3,1),opacity .16s ease,transform .16s ease,border-color .16s ease,padding .16s ease}.mobile-navigation[data-open=true]{max-height:22rem;margin-block-start:.7rem;padding:.45rem .8rem;border-color:var(--color-border);background:var(--color-background);box-shadow:none;opacity:1;transform:translateY(0)}.mobile-navigation-link{border-radius:0;border-block-end:1px solid color-mix(in srgb,var(--color-border) 72%,transparent);color:var(--color-cream);font-family:var(--font-mono);font-size:.88rem;font-weight:500;letter-spacing:.06em;padding:.9rem .25rem;text-decoration:none}.mobile-navigation-link:last-child{border-block-end:0}.mobile-navigation-link:hover,.mobile-navigation-link--active{background:none;color:var(--color-accent);box-shadow:none}body:has(.fieldbook-hero) .site-main{width:100%;max-width:none;margin:0;padding:0}.fieldbook-hero{position:relative;isolation:isolate;width:min(100vw,1586px);height:min(100svh,62.55vw,992px);margin-inline:auto;overflow:hidden;background:var(--color-background);container-type:inline-size}.fieldbook-meta{position:absolute;top:14.05%;left:6.62%;width:36%;margin:0;color:var(--color-cream);font-family:var(--font-mono);font-size:clamp(.62rem,.9cqw,.875rem);font-weight:500;letter-spacing:.11em;line-height:1.35;text-transform:uppercase}.fieldbook-title{position:absolute;top:22.85%;left:6.62%;width:27.2%;height:22.8%;margin:0;color:var(--color-cream);font-family:var(--font-display);font-size:clamp(2.7rem,4.58cqw,4.58rem);font-weight:600;letter-spacing:-.01em;line-height:.94}.fieldbook-title span{display:block;white-space:nowrap}.fieldbook-intro{position:absolute;top:55.2%;left:6.8%;width:19.6%;margin:0;color:var(--color-cream);font-family:var(--font-sans);font-size:clamp(.95rem,1.38cqw,1.38rem);font-weight:400;line-height:1.4}.fieldbook-actions{position:absolute;top:70.56%;left:5.67%;display:grid;width:38.52%;height:9.07%;grid-template-columns:minmax(0,.923fr) minmax(0,1fr);align-items:center;gap:1.8%}.fieldbook-action{position:relative;display:flex;width:calc(100% - 2.27cqw);height:56px;min-width:0;min-height:0;justify-self:center;align-items:center;justify-content:space-between;gap:.75rem;border:1px solid var(--color-accent);border-radius:0;background:transparent;color:var(--color-cream);font-family:var(--font-sans);font-size:clamp(.88rem,1.05cqw,1.06rem);font-weight:700;line-height:1.15;padding:0 1.1cqw;text-decoration:none;transition:color .18s ease,background-color .18s ease,border-color .18s ease}.fieldbook-action:before,.button-link:before,.not-found-links a:before{position:absolute;inset:-9px;background:linear-gradient(var(--color-accent),var(--color-accent)) left top / 18px 1.5px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) left top / 1.5px 18px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) right top / 18px 1.5px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) right top / 1.5px 18px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) left bottom / 18px 1.5px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) left bottom / 1.5px 18px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) right bottom / 18px 1.5px no-repeat,linear-gradient(var(--color-accent),var(--color-accent)) right bottom / 1.5px 18px no-repeat;content:"";pointer-events:none}.fieldbook-action:before{inset:-9px}.fieldbook-action--primary{background:var(--color-accent);color:var(--color-background)}.fieldbook-action:hover{border-color:var(--color-cream);background:var(--color-cream);color:var(--color-background)}.fieldbook-action--primary:hover{border-color:var(--color-accent);background:#e4ff72;color:var(--color-background)}.fieldbook-action svg,.button-link svg{display:block;flex:0 0 auto;width:23px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:square;stroke-linejoin:miter;stroke-width:1.5}.fieldbook-evidence{position:absolute;top:24.7%;left:50.44%;width:min(45.4%,calc(56.95svh * 1.2743));height:auto;aspect-ratio:720 / 565;margin:0}.fieldbook-evidence__plate,.fieldbook-evidence__mobile-shot{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.fieldbook-evidence__frame{position:absolute;top:7.7876%;left:1.9444%;z-index:2;width:96.1111%;height:76.6372%;border:1px solid var(--color-frame);pointer-events:none}.fieldbook-evidence__mobile-shot{display:none}.fieldbook-evidence__labels{position:absolute;inset:0;z-index:3;color:var(--color-resume);font-family:var(--font-mono);font-size:clamp(.55rem,.89cqw,.875rem);font-weight:500;letter-spacing:.09em;line-height:1.35;pointer-events:none}.fieldbook-evidence__label{position:absolute;display:inline-flex;min-height:26px;align-items:center;background:var(--color-background);padding-inline:10px;white-space:nowrap}.fieldbook-evidence__label:before{position:absolute;inset:-3px -6px;background:linear-gradient(currentColor,currentColor) left top / 9px 1.5px no-repeat,linear-gradient(currentColor,currentColor) left top / 1.5px 9px no-repeat,linear-gradient(currentColor,currentColor) right top / 9px 1.5px no-repeat,linear-gradient(currentColor,currentColor) right top / 1.5px 9px no-repeat,linear-gradient(currentColor,currentColor) left bottom / 9px 1.5px no-repeat,linear-gradient(currentColor,currentColor) left bottom / 1.5px 9px no-repeat,linear-gradient(currentColor,currentColor) right bottom / 9px 1.5px no-repeat,linear-gradient(currentColor,currentColor) right bottom / 1.5px 9px no-repeat;content:""}.fieldbook-evidence__label--aeris{top:-1.8%;left:34.72%;width:35.4%}.fieldbook-evidence__label--pace{top:92.92%;left:32.22%;width:39.2%}.fieldbook-ruler{position:absolute;top:14.8%;left:1.58%;display:grid;width:56px;height:77.8%;grid-template-rows:repeat(11,minmax(0,1fr));margin:0;padding:0;color:var(--color-accent);font-family:var(--font-mono);font-size:clamp(.48rem,.76cqw,.75rem);letter-spacing:.05em;line-height:1;list-style:none}.fieldbook-ruler:before{position:absolute;top:0;bottom:0;left:4px;width:1px;background:var(--color-rule);content:""}.fieldbook-ruler li{position:relative;min-height:0;padding:5px 0 0 22px}.fieldbook-ruler li:before{position:absolute;top:5px;left:0;width:13px;height:1px;background:var(--color-accent);content:""}.fieldbook-ruler li:after{position:absolute;top:17px;left:3px;width:8px;height:min(48px,72%);background:repeating-linear-gradient(to bottom,var(--color-rule) 0 1px,transparent 1px 12px);content:""}.fieldbook-baseline{position:absolute;right:4.47%;bottom:6.75%;left:6.18%;height:1px;background:var(--color-rule)}.fieldbook-baseline__mark{position:absolute;top:50%;width:24px;height:24px;background:linear-gradient(var(--color-cream),var(--color-cream)) center / 1px 100% no-repeat,linear-gradient(var(--color-cream),var(--color-cream)) center / 100% 1px no-repeat;transform:translate(-50%,-50%)}.fieldbook-baseline__mark--left{left:0}.fieldbook-baseline__mark--right{left:100%}.fieldbook-baseline__ratio{position:absolute;right:1.8%;bottom:-30px;color:var(--color-accent);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em}.fieldbook-content{width:min(100% - 3rem,var(--max-width));margin-inline:auto;padding-block:clamp(3.5rem,7vw,6rem)}.home-section,.resume-section,.experience-section,.experience-military,.project-list,.project-writeup{border-color:var(--color-border)}.home-section{padding-block:clamp(3.4rem,6vw,5.5rem);border-block-end:1px solid var(--color-border)}.section-heading,.experience-section__heading{display:grid;grid-template-columns:minmax(8rem,.26fr) minmax(0,1fr);column-gap:clamp(1.2rem,4vw,4rem);align-items:baseline;max-width:70rem;margin-block-end:2.2rem}.home-section .section-heading{grid-template-columns:minmax(0,1fr)}.section-kicker{grid-column:1;grid-row:1;margin:0;color:var(--color-resume);font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.1em;line-height:1.4;text-transform:uppercase}.section-heading h2,.experience-section__heading h2,.experience-military__heading h2,.home-close h2{grid-column:2;grid-row:1;margin:0;color:var(--color-text);font-family:var(--font-display);font-size:clamp(2rem,4vw,3.2rem);font-weight:700;letter-spacing:-.025em;line-height:1.08}.home-section .section-heading h2{grid-column:1}.section-heading{gap:0 clamp(1.2rem,4vw,4rem)}.section-heading h2{max-width:18ch}.recent-experience__rows,.experience-hero__facts,.resume-credentials,.resume-contact-list,.resume-document,.resume-experience-list,.resume-skills,.contact-list{border-color:var(--color-border)}.recent-experience__rows{border-block-start:1px solid var(--color-border)}.recent-experience__row,.resume-experience,.resume-credentials div,.resume-contact-list div,.contact-list__item{border-color:var(--color-border)}.recent-experience__row{grid-template-columns:minmax(0,1fr) minmax(8rem,auto);gap:2rem;padding-block:1.35rem}.recent-experience__row h3,.leadership-list h3,.resume-experience h3,.resume-skill-group h3,.resume-military h3,.experience-role h2,.experience-military h3,.project-entry__content h2,.project-writeup h2,.portfolio-chat__prepared h2,.portfolio-chat__fallback h2{color:var(--color-text);font-family:var(--font-display);font-weight:700;letter-spacing:-.015em}.recent-experience__row p,.leadership-list p,.resume-summary p,.resume-military p,.resume-experience__header p,.resume-skill-group p,.experience-role__summary,.experience-role__technologies,.experience-military__body p,.project-entry__content p,.project-writeup p,.page-section p,.resume-hero p,.experience-hero__lead,.not-found-section p{color:var(--color-muted)}.recent-experience__row time,.resume-experience__date,.experience-role__date p{color:var(--color-accent);font-family:var(--font-mono);font-size:.82rem;font-weight:500;letter-spacing:.04em;text-align:end}.leadership-list{grid-template-columns:repeat(3,minmax(0,1fr));border-block-start:1px solid var(--color-border)}.leadership-list li,.leadership-list li:nth-child(3n){min-height:0;padding:1.35rem clamp(1rem,2.3vw,2rem) 1.65rem 0;border-block-end:1px solid var(--color-border);border-inline-end:1px solid var(--color-border)}.leadership-list li:nth-child(3n){border-inline-end:0;padding-inline-start:clamp(1rem,2.3vw,2rem)}.leadership-list li:nth-child(3n+2){padding-inline:clamp(1rem,2.3vw,2rem)}.leadership-list h3{font-size:1.3rem}.leadership-list p{max-width:34ch;margin-block-start:.55rem;font-size:.98rem;line-height:1.55}.home-close{align-items:center;justify-content:space-between;gap:2rem;padding-block:clamp(3.5rem,7vw,5rem) 0;border-block-start:1px solid var(--color-border)}.home-close h2{max-width:14ch}.hero-actions{gap:1.3rem}.button-link,.not-found-links a{position:relative;min-height:3.4rem;border:1px solid var(--color-accent);border-radius:0;background:transparent;box-shadow:none;color:var(--color-text);font-size:.92rem;font-weight:700;line-height:1.2;padding:.8rem 1.1rem;text-decoration:none;transition:color .18s ease,background-color .18s ease,border-color .18s ease}.button-link:before,.not-found-links a:before{inset:-7px}.button-link--primary{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-background)}.button-link:hover,.not-found-links a:hover{border-color:var(--color-cream);background:var(--color-cream);color:var(--color-background);box-shadow:none;transform:none}.button-link--primary:hover{border-color:var(--color-accent);background:#e4ff72}.button-link svg{margin-inline-start:1rem}.page-section,.not-found-section{display:grid;min-height:50vh;align-content:center;padding-block:clamp(3.5rem,7vw,6rem)}.page-section h1,.not-found-section h1,.resume-hero h1,.experience-hero h1,.project-detail__intro h1{max-width:15ch;margin:0;color:var(--color-text);font-family:var(--font-display);font-size:clamp(3.2rem,6.5vw,5.6rem);font-weight:700;letter-spacing:-.03em;line-height:.98}.page-section>p,.resume-hero p,.experience-hero__lead,.project-detail__intro p,.not-found-section p{max-width:68ch;margin-block-start:1.2rem;color:var(--color-muted);font-size:1.08rem;line-height:1.6}.contact-section{align-content:start}.contact-list{max-width:52rem;margin-block-start:2.5rem;border-block:1px solid var(--color-border)}.contact-list dt,.resume-credentials dt,.resume-contact-list dt,.experience-hero__facts dt{color:var(--color-resume);font-family:var(--font-mono);font-size:.76rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.contact-list dd,.resume-credentials dd,.resume-contact-list dd{color:var(--color-text)}.contact-list a,.page-section a,.resume-contact-list a,.project-links a,.project-breadcrumb a,.portfolio-chat__message a,.portfolio-chat__contact-paths a{color:var(--color-accent);text-decoration-color:color-mix(in srgb,var(--color-accent) 62%,transparent)}.resume-hero,.experience-hero,.project-detail__hero,.resume-section,.experience-section,.experience-role,.experience-military,.project-list,.project-entry{border-color:var(--color-border)}.resume-hero,.experience-hero,.project-detail__hero{padding-block:clamp(3rem,6vw,5rem)}.resume-hero__role,.resume-hero__positioning,.experience-hero__facts dd,.experience-role__context,.experience-role__date span,.project-built-with span,.status-code{color:var(--color-resume)!important;font-family:var(--font-mono);font-size:.78rem!important;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.resume-section{padding-block:clamp(2rem,4vw,3.2rem)}.resume-section__heading h2,.experience-section__heading h2,.experience-military__heading h2,.project-writeup h2{color:var(--color-text);font-family:var(--font-display);font-size:clamp(1.75rem,3.5vw,2.6rem);font-weight:700;letter-spacing:-.025em;line-height:1.1}.resume-section__heading{grid-template-columns:minmax(5rem,.4fr) minmax(0,1fr);align-items:baseline;gap:.75rem}.resume-section__heading .section-kicker{grid-column:1;grid-row:1}.resume-section__heading h2{grid-column:2;grid-row:1}.resume-experience,.resume-skill-group,.resume-credentials,.resume-contact-list{border-color:var(--color-border)}.resume-experience li,.experience-role li{color:var(--color-text)}.experience-role{padding-block:clamp(1.5rem,3vw,2.3rem)}.experience-role__date p{text-align:start}.experience-role__company,.experience-role__technologies,.experience-military__meta,.project-built-with,.project-breadcrumb{color:var(--color-muted);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.06em}.experience-role h3{color:var(--color-resume);font-family:var(--font-mono);font-size:.77rem;font-weight:500;letter-spacing:.08em}.experience-military__heading{grid-template-columns:1fr;gap:.7rem}.experience-military__heading .section-kicker,.experience-military__heading h2{grid-column:1}.project-list{margin-block-start:2.5rem;border-block-start:1px solid var(--color-border)}.project-entry{padding-block:clamp(1.8rem,4vw,3rem)}.project-entry__content h2{font-size:clamp(1.65rem,3.2vw,2.4rem)}.project-entry__media img,.project-detail__media img,.project-screenshot-grid img{border:1px solid var(--color-border);border-radius:0;background:var(--color-surface);box-shadow:none}.project-detail{padding-block:clamp(2rem,4vw,3.5rem)}.project-writeup{padding-block-start:clamp(2rem,5vw,4rem)}.project-writeup h2{margin-block-start:clamp(2.2rem,4vw,3.5rem)}.project-screenshot-grid{gap:clamp(1rem,2vw,1.6rem)}.site-footer{border-block-start:1px solid var(--color-border);background:var(--color-background)}.site-footer__inner{width:min(100% - 3rem,var(--max-width));min-height:7rem}.site-footer__identity{color:var(--color-muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em}.site-footer__links a{color:var(--color-cream);font-family:var(--font-mono);font-size:.8rem;font-weight:500;letter-spacing:.04em}.site-footer__links a:hover{color:var(--color-accent)}body .portfolio-chat{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(1.5rem,4vw,3.5rem);margin-block:clamp(3rem,6vw,5rem);padding-block:clamp(2.5rem,5vw,4rem);border-block:1px solid var(--color-border)}body .portfolio-chat .portfolio-chat__eyebrow{display:none}body .portfolio-chat .portfolio-chat__intro h1{color:var(--color-text);font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:700;letter-spacing:-.03em;line-height:1.02}body .portfolio-chat .portfolio-chat__description{color:var(--color-muted);font-size:1.02rem;line-height:1.55}body .portfolio-chat .portfolio-chat__panel{gap:1rem;padding:clamp(1rem,2.5vw,1.6rem);border:1px solid var(--color-border);border-radius:0;background:var(--color-surface);box-shadow:none}body .portfolio-chat .portfolio-chat__transcript{scrollbar-color:var(--color-rule) var(--color-surface)}body .portfolio-chat .portfolio-chat__message{border-radius:0;font-family:var(--font-sans);font-size:.92rem}body .portfolio-chat .portfolio-chat__message--assistant{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text)}body .portfolio-chat .portfolio-chat__message--assistant a{color:var(--color-accent)}body .portfolio-chat .portfolio-chat__message--user{background:var(--color-accent);color:var(--color-background)}body .portfolio-chat .portfolio-chat__label,body .portfolio-chat .portfolio-chat__starters>p,body .portfolio-chat .portfolio-chat__prepared h2,body .portfolio-chat .portfolio-chat__fallback h2{color:var(--color-text);font-family:var(--font-mono);font-size:.78rem;font-weight:500;letter-spacing:.06em}body .portfolio-chat .portfolio-chat__composer{border:1px solid var(--color-border);border-radius:0;background:var(--color-background)}body .portfolio-chat .portfolio-chat__composer:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-accent) 26%,transparent)}body .portfolio-chat .portfolio-chat__composer textarea{color:var(--color-text)}body .portfolio-chat .portfolio-chat__composer textarea::placeholder{color:var(--color-muted);opacity:1}body .portfolio-chat .portfolio-chat__send,body .portfolio-chat .portfolio-chat__retry{border:1px solid var(--color-accent);border-radius:0;background:var(--color-accent);color:var(--color-background);font-family:var(--font-sans);font-weight:700}body .portfolio-chat .portfolio-chat__send:hover:not(:disabled),body .portfolio-chat .portfolio-chat__retry:hover:not(:disabled){background:#e4ff72}body .portfolio-chat .portfolio-chat__send:disabled,body .portfolio-chat .portfolio-chat__starter:disabled,body .portfolio-chat .portfolio-chat__retry:disabled{cursor:progress;opacity:.55}body .portfolio-chat .portfolio-chat__help,body .portfolio-chat .portfolio-chat__status{color:var(--color-muted)}body .portfolio-chat .portfolio-chat__starter{border:1px solid var(--color-border);border-radius:0;background:transparent;color:var(--color-cream);font-size:.8rem;font-weight:500;padding:.55rem .7rem}body .portfolio-chat .portfolio-chat__starter:hover:not(:disabled){border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 10%,var(--color-background));color:var(--color-accent)}body .portfolio-chat .portfolio-chat__prepared{border-color:var(--color-border)}body .portfolio-chat .portfolio-chat__faq,body .portfolio-chat .portfolio-chat__fallback{border:1px solid var(--color-border);border-radius:0;background:var(--color-background);color:var(--color-text)}body .portfolio-chat .portfolio-chat__faq summary,body .portfolio-chat .portfolio-chat__contact-paths a{color:var(--color-accent)}body .portfolio-chat .portfolio-chat__fallback>p{color:var(--color-muted)}@media(max-width:900px){.site-header{width:min(100% - 2rem,1376px);height:78px;min-height:78px;padding-block-start:17px}.site-header:before{top:70px;width:100%}.site-header__measurements,.desktop-navigation{display:none}.mobile-navigation-toggle{display:grid;grid-column:2;justify-self:end;place-items:center;margin-block-start:-1px;cursor:pointer}body:has(.fieldbook-hero) .site-header{left:0;width:100%;padding-inline:20px;transform:none}body:has(.fieldbook-hero) .site-header:before{width:calc(100% - 40px)}body:has(.fieldbook-hero) .site-main{width:100%}.fieldbook-hero{display:flex;width:100%;height:auto;min-height:100svh;flex-direction:column;gap:1.15rem;overflow:hidden;padding:112px clamp(1.25rem,5vw,2.5rem) 3.5rem}.fieldbook-ruler,.fieldbook-baseline{display:none}.fieldbook-meta,.fieldbook-title,.fieldbook-intro,.fieldbook-actions,.fieldbook-evidence{position:relative;inset:auto;width:100%;height:auto;margin:0}.fieldbook-meta{max-width:36rem;font-size:.73rem;letter-spacing:.08em;line-height:1.6}.fieldbook-title{max-width:10ch;font-size:clamp(3.35rem,11vw,5.25rem);letter-spacing:-.035em;line-height:.94}.fieldbook-intro{max-width:36ch;font-size:clamp(1rem,2.4vw,1.2rem);line-height:1.5}.fieldbook-actions{display:grid;height:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin-block:.75rem .35rem}.fieldbook-action{width:100%;height:auto;min-height:60px;justify-content:space-between;gap:.45rem;font-size:.82rem;padding-inline:.8rem}.fieldbook-action:before{inset:-6px}.fieldbook-action svg{width:18px;height:14px}.fieldbook-evidence{aspect-ratio:auto}.fieldbook-evidence__plate,.fieldbook-evidence__frame{display:none}.fieldbook-evidence__mobile-shot{display:block;width:100%;height:auto;border:1px solid var(--color-frame)}.fieldbook-evidence__labels{position:relative;inset:auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.9rem 1.1rem;margin-block-start:.9rem;font-size:clamp(.61rem,2vw,.76rem)}.fieldbook-evidence__label,.fieldbook-evidence__label--aeris,.fieldbook-evidence__label--pace{position:relative;inset:auto;width:auto;min-height:0;background:transparent;padding:.35rem .55rem;white-space:normal}.fieldbook-evidence__label--pace{margin-inline-start:auto;text-align:end}.fieldbook-content{width:min(100% - 2.5rem,var(--max-width))}.section-heading,.experience-section__heading{grid-template-columns:minmax(7rem,.35fr) minmax(0,1fr);column-gap:1.25rem}.leadership-list{grid-template-columns:repeat(2,minmax(0,1fr))}.leadership-list li,.leadership-list li:nth-child(3n),.leadership-list li:nth-child(3n+2){padding:1.15rem 1rem 1.35rem 0;border-inline-end:1px solid var(--color-border)}.leadership-list li:nth-child(2n){padding-inline:1rem 0;border-inline-end:0}.resume-hero,.resume-section,.experience-hero,.experience-role,.experience-military,.project-entry,.project-detail__hero{grid-template-columns:minmax(0,1fr)}body .portfolio-chat{grid-template-columns:minmax(0,1fr);gap:1.5rem}.home-close{align-items:flex-start;flex-direction:column}.home-close__actions{margin-block-start:0}.site-footer__inner{align-items:flex-start;flex-direction:column;padding-block:1.6rem}.site-footer__links{justify-content:flex-start}}@media(max-width:560px){.fieldbook-hero{gap:1rem;padding-inline:1.25rem;padding-block-end:2.5rem}.fieldbook-title{font-size:clamp(3.1rem,14vw,4.4rem)}.fieldbook-actions{grid-template-columns:minmax(0,1fr);gap:.85rem}.fieldbook-action{width:100%;height:auto;min-height:58px;font-size:.9rem}.section-heading,.experience-section__heading{grid-template-columns:minmax(5.6rem,.3fr) minmax(0,1fr);column-gap:.9rem}.section-kicker{font-size:.65rem;letter-spacing:.04em}.section-heading h2,.experience-section__heading h2,.experience-military__heading h2,.home-close h2{font-size:1.75rem}.recent-experience__row{grid-template-columns:minmax(0,1fr);gap:.45rem}.recent-experience__row time{text-align:start}.leadership-list{grid-template-columns:minmax(0,1fr)}.leadership-list li,.leadership-list li:nth-child(2n),.leadership-list li:nth-child(3n),.leadership-list li:nth-child(3n+2){padding-inline:0;border-inline-end:0}.contact-list__item,.resume-credentials div,.resume-contact-list div{grid-template-columns:minmax(0,1fr);gap:.3rem}.resume-hero__actions{justify-content:flex-start}.resume-experience__header,.resume-skills{grid-template-columns:minmax(0,1fr)}.resume-experience__date{text-align:start;white-space:normal}.project-screenshot-grid{grid-template-columns:minmax(0,1fr)}.fieldbook-content{width:min(100% - 2.5rem,var(--max-width))}body .portfolio-chat .portfolio-chat__panel{padding:.8rem}body .portfolio-chat .portfolio-chat__starter{width:100%;text-align:start}}@media print{html,body{background:#fff!important;color:#000!important;color-scheme:light}.fieldbook-hero,.site-header,.site-footer,.portfolio-chat{display:none!important}.site-main{width:100%;margin:0;padding:0}.resume-section__heading h2,.resume-hero h1,.resume-hero p,.resume-document,.resume-document *{color:#000!important}}
