:root{--soft-blue:#b6dfed;--navy:#002941;--coral:#fd6e6e;--warm-white:#f8f7f2;--blue-gray:#7893a0;--muted:#557282;--line:#0029412e;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius:2px;--header-height:4rem}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 1rem)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--warm-white);min-width:320px;color:var(--navy);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.65}h1,h2,h3,p,ul,dl,dd,figure{margin:0}ul{padding:0;list-style:none}img{max-width:100%;height:auto;display:block}h1,h2,h3{font-weight:600;line-height:1.2}h1{letter-spacing:-.02em;font-size:clamp(2.5rem,6vw,3.75rem)}h2{letter-spacing:-.01em;margin-bottom:2rem;font-size:1.75rem}h3{font-size:1.1875rem}a{color:inherit;text-decoration-line:underline;-webkit-text-decoration-color:var(--coral);text-decoration-color:var(--coral);text-underline-offset:.2em;text-decoration-thickness:2px}a:hover{-webkit-text-decoration-color:var(--navy);text-decoration-color:var(--navy)}:focus-visible{outline:2px solid var(--navy);outline-offset:3px}::selection{background:var(--soft-blue);color:var(--navy)}.container{width:min(1080px,100% - 3rem);margin-inline:auto}.section{padding-block:5rem}#resume,#skills,#about{border-top:1px solid var(--line)}.site-header{z-index:10;background:var(--warm-white);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header-inner{min-height:var(--header-height);justify-content:space-between;align-items:center;gap:.75rem 2rem;display:flex}.wordmark{font-size:1.1875rem;font-weight:600;text-decoration:none}.nav-list{gap:.5rem 1.75rem;font-size:.9375rem;display:flex}.nav-list a{text-decoration:none}.nav-list a:hover,.nav-list a[aria-current=page]{text-decoration:underline;-webkit-text-decoration-color:var(--coral);text-decoration-color:var(--coral);text-underline-offset:.35em;text-decoration-thickness:2px}.button{border-radius:var(--radius);border:1px solid #0000;padding:.65rem 1.25rem;font-size:.9375rem;font-weight:500;text-decoration:none;display:inline-block}.button-light{background:var(--soft-blue);border-color:var(--soft-blue);color:var(--navy)}.button-outline-light{border-color:var(--warm-white);color:var(--warm-white)}.button:hover{background:var(--warm-white);border-color:var(--warm-white);color:var(--navy)}.button-dark{background:var(--navy);border-color:var(--navy);color:var(--warm-white)}.button-outline{border-color:var(--navy);color:var(--navy)}.button-dark:hover,.button-outline:hover{background:var(--soft-blue);border-color:var(--navy);color:var(--navy)}.button-row{flex-wrap:wrap;gap:.75rem;margin-top:1.75rem;display:flex}.hero,.teaser{background:var(--navy);align-items:flex-end;display:flex;position:relative}.photo-fill{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.hero{min-height:clamp(30rem,82vh,46rem)}.hero-image{object-position:72% 50%}.teaser{min-height:26rem}.teaser-image{object-position:30% 55%}.hero-inner,.teaser-inner{position:relative}.teaser-inner{justify-content:flex-end;display:flex}.panel{background:var(--navy);max-width:100%;color:var(--warm-white);padding:2.5rem}.hero-panel{width:38rem}.teaser-panel{width:28rem}.panel p{margin-top:1rem}.panel h2{margin-bottom:0}.panel .button-row{margin-top:1.5rem}.panel :focus-visible{outline-color:var(--soft-blue)}.now{background:var(--soft-blue);padding-block:3.5rem}.now-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1.5rem;margin-bottom:2rem;display:flex}.now-heading h2{margin-bottom:0}.now-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;display:grid}.now-grid li{border-top:2px solid var(--navy);padding-top:1rem}.now-grid h3{margin-bottom:.4rem}.now-grid p{margin-bottom:.75rem}.now-grid a{-webkit-text-decoration-color:var(--navy);text-decoration-color:var(--navy);font-weight:500}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.project-card{border:1px solid var(--navy);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.project-media{aspect-ratio:16/9;background:var(--soft-blue);border-bottom:1px solid var(--navy);color:var(--navy);letter-spacing:-.01em;text-align:center;place-items:center;padding:1rem;font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:600;display:grid}.project-card:nth-child(2n) .project-media{background:var(--navy);color:var(--soft-blue)}.project-media img{object-fit:cover;width:100%;height:100%}.project-body{flex-direction:column;flex:1;gap:.75rem;padding:1.5rem;display:flex}.tag-list{flex-wrap:wrap;gap:.5rem;display:flex}.tag-list li{background:var(--soft-blue);border-radius:var(--radius);padding:.1rem .6rem;font-size:.875rem}.project-links{gap:1.25rem;margin-top:auto;padding-top:.5rem;font-weight:500;display:flex}.resume-layout{grid-template-columns:22rem minmax(0,1fr);align-items:start;gap:3rem;display:grid}.resume-preview img{border:1px solid var(--navy);width:100%}.resume-preview .button-row{margin-top:1rem}.resume-overview h3{margin-bottom:1.5rem;font-size:1.375rem}.overview-item{max-width:40rem}.overview-item+.overview-item{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.5rem}.overview-label{color:var(--muted);font-size:.9375rem}.overview-role{font-size:1.1875rem;font-weight:600;line-height:1.3}.overview-meta{color:var(--muted);margin-bottom:.75rem;font-size:.9375rem}.overview-points{margin-top:.75rem}.overview-points li{padding-left:1.1rem;position:relative}.overview-points li+li{margin-top:.4rem}.overview-points li:before{content:"";background:var(--blue-gray);width:.4rem;height:2px;position:absolute;top:.78em;left:0}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.5rem;display:grid}.skills-grid h3{color:var(--muted);margin-bottom:.75rem;font-size:1rem;font-weight:500}.about-layout{grid-template-columns:18rem minmax(0,1fr);align-items:start;gap:3rem;display:grid}.about-photo{top:calc(var(--header-height) + 1.5rem);width:100%;position:sticky}.about-text{background:var(--soft-blue);border-radius:var(--radius);padding:2.5rem}.about-text p{max-width:40rem}.about-text p+p{margin-top:1rem}.about-text .lead{font-size:1.25rem;font-weight:500;line-height:1.55}.facts{border-top:1px solid #00294159;gap:.5rem;max-width:40rem;margin-top:2rem;padding-top:1.5rem;display:grid}.facts div{grid-template-columns:11rem minmax(0,1fr);gap:1rem;display:grid}.facts dt{font-weight:500}.contact{background:var(--navy);color:var(--warm-white);padding-block:5rem}.contact h2{margin-bottom:1rem}.contact p+p{margin-top:.75rem}.contact :focus-visible,.site-footer :focus-visible{outline-color:var(--soft-blue)}.contact-email{overflow-wrap:anywhere;font-size:clamp(1.25rem,3.5vw,1.75rem);font-weight:500}.contact-links{gap:1.25rem;margin-top:1.5rem;display:flex}.site-footer{background:var(--navy);color:var(--soft-blue);border-top:1px solid #b6dfed40;font-size:.9375rem}.site-footer-inner{justify-content:space-between;gap:1rem;padding-block:1.5rem;display:flex}.photo-page{min-height:calc(100vh - var(--header-height));background:var(--navy);color:var(--warm-white);padding-block:4rem 5rem}.photo-page :focus-visible{outline-color:var(--soft-blue)}.photo-page-intro{color:var(--soft-blue);margin-top:1rem}.photo-page{--gap:20px}.photo-group{margin-top:3.5rem}.photo-group h2{margin-bottom:1.25rem}.photo-group>*+*{margin-top:var(--gap)}.photo{min-width:0}.photo-row{gap:var(--gap);flex-wrap:wrap;display:flex}.photo-row .photo{flex:var(--ratio) 1 calc(var(--ratio) * 240px)}.photo-trio{align-items:flex-start;gap:var(--gap);display:flex}.photo-trio-flip{flex-direction:row-reverse}.photo-trio>.photo,.photo-trio>.photo-stack{width:var(--w);flex:none}.photo-stack{gap:var(--gap);flex-direction:column;display:flex}.photo-stack .photo{width:100%}.gallery-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.gallery-button img{width:100%}.lightbox-bar span{opacity:.8;font-size:.875rem;display:block}.lightbox{max-width:100vw;max-height:100vh;color:var(--warm-white);background:0 0;border:0;margin:auto;padding:1rem}.lightbox::backdrop{background:#002941f0}.lightbox img{object-fit:contain;max-width:min(92vw,1400px);max-height:80vh;margin-inline:auto}.lightbox-bar{justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;display:flex}.lightbox-bar button{border:1px solid var(--warm-white);border-radius:var(--radius);color:var(--warm-white);font:inherit;cursor:pointer;background:0 0;padding:.4rem 1rem;font-size:.9375rem}.lightbox-bar button:hover{background:var(--warm-white);color:var(--navy)}.lightbox :focus-visible{outline-color:var(--soft-blue)}@media (width<=860px){.now-grid{grid-template-columns:1fr;gap:1.5rem}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-grid{grid-template-columns:1fr}.resume-layout{grid-template-columns:1fr;gap:2.5rem}.resume-preview{max-width:24rem}.about-layout{grid-template-columns:1fr;gap:2rem}.about-photo{max-width:18rem;position:static}}@media (width<=640px){:root{--header-height:5.5rem}.container{width:calc(100% - 2.5rem)}.section,.contact{padding-block:3.25rem}.now{padding-block:2.75rem}.site-header{position:static}.site-header-inner{flex-direction:column;align-items:flex-start;padding-block:1rem}html{scroll-padding-top:1rem}.hero,.teaser{min-height:0;display:block}.photo-fill{height:16rem;position:static}.hero-image{object-position:72% 50%}.hero-inner,.teaser-inner{width:100%}.panel{padding:1.75rem 1.25rem}.hero-panel,.teaser-panel{width:100%}.photo-page{padding-block:2.5rem 3.5rem}.photo-row .photo{flex:100%}.photo-trio,.photo-trio-flip{flex-direction:column}.photo-trio>.photo,.photo-trio>.photo-stack{width:100%}.about-text{padding:1.5rem 1.25rem}.about-text .lead{font-size:1.125rem}.skills-grid{grid-template-columns:1fr}.photo-group{margin-top:2.75rem}}
