.intro-details{--section-background:#e8eef5}.selected-projects{--section-background:#eef5fc}.current-feature{--section-background:#c5d6e8}.experience{--section-background:#e3edf0}.fencing{--section-background:#d8e4f2}.contact{--section-background:#eaf0f7}.portfolio-home :is(.intro-details,.selected-projects,.current-feature,.experience,.fencing,.contact){background:var(--section-background);box-shadow:0 0 0 100vmax var(--section-background);clip-path:inset(0 -100vmax)}.introduction{isolation:isolate;min-height:100svh;padding:calc(var(--header-height) + 65px) 44px 128px;background:var(--ink);color:#fff;text-align:center;place-items:center;display:grid;position:relative;overflow:hidden}.intro-background{z-index:-2;object-fit:cover;object-position:50% 42%;width:100%;height:100%;position:absolute;inset:0}.introduction:before{content:"";z-index:-1;background:linear-gradient(#0c182b80,#0c182b9e 45%,#0c182b7a);position:absolute;inset:0}.intro-title-group{text-shadow:0 2px 18px #00000038;max-width:100%}.portfolio-title{margin-bottom:25px;font-size:clamp(16px,1.7vw,23px);font-weight:500;line-height:1.5}.intro-details{border-bottom:1px solid var(--line);grid-template-columns:7fr 5fr;align-items:center;gap:64px;padding:50px 0;display:grid}.intro-scroll{color:#fff;border:1px solid #fff9;border-radius:50%;place-items:center;width:48px;height:48px;transition:background-color .2s,border-color .2s;display:grid;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.intro-scroll svg{transition:transform .2s}.intro-scroll:hover,.intro-scroll:focus-visible{background:#ffffff26;border-color:#fff;outline-color:#fff}.intro-scroll:hover svg{transform:translateY(3px)}.introduction h1{margin:0;font-size:clamp(64px,8vw,132px);line-height:1.05}.disciplines{color:var(--accent);font-size:14px}.university{color:var(--muted);margin-top:28px;font-size:18px;line-height:1.55}.intro-description{max-width:490px;color:var(--ink);justify-self:end;font-size:20px;line-height:1.75}.selected-projects{padding:30px 0 90px}.section-heading{justify-content:space-between;align-items:baseline;gap:25px;margin-bottom:32px;display:flex}.section-heading h2{letter-spacing:0;color:var(--accent);font-size:20px;font-weight:700;line-height:1.4}.current-feature{background:var(--panel);padding:60px 0 75px}.feature-grid{grid-template-columns:4fr 7fr;align-items:start;gap:80px;display:grid}.feature-copy h3,.experience-title h3,.fencing-copy h3{letter-spacing:-.025em;margin:0 0 23px;font-size:clamp(35px,3.4vw,52px)}.feature-copy>p,.fencing-copy>p{color:var(--ink);font-size:16px;line-height:1.85}.feature-copy>p+p,.fencing-copy>p+p{margin-top:16px}.feature-copy .role-line{color:var(--accent);margin-bottom:24px;font-size:18px;font-weight:700}.feature-copy .image-context{border-top:1px solid #c3d0e1;margin-top:28px;padding-top:18px;font-size:13px;line-height:1.7}.engineering-images>.media-figure img{object-fit:contain;max-height:530px}.technical-pair{grid-template-columns:1fr 1fr;gap:22px;margin-top:23px;display:grid}.technical-pair img{aspect-ratio:1.5;object-fit:contain;background:#fff;padding:10px}.experience{padding:70px 0 80px}.experience-title{margin-bottom:32px}.experience-title h3{margin-bottom:14px}.experience-title .annotation{font-size:12px}.lpd-editorial{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:42px 35px;display:grid}.lpd-lead-image{grid-column:1/9}.lpd-lead-image img{aspect-ratio:1.4;object-fit:cover}.lpd-introduction{grid-column:9/13;align-self:center}.lpd-editorial h4{margin:0 0 18px;font-size:25px;font-weight:700;line-height:1.2}.lpd-editorial p{color:var(--ink);font-size:16px;line-height:1.8}.lpd-detail-image{grid-column:2/6;margin-top:20px}.lpd-detail-image img{aspect-ratio:.8;object-fit:cover}.lpd-team-story{grid-column:7/13}.lpd-team-story .media-figure{margin:26px 0}.lpd-team-story img{aspect-ratio:1.4;object-fit:cover}.fencing{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:start;gap:38px 90px;padding:55px 0 75px;display:grid}.fencing>.section-heading{grid-column:1/-1;margin-bottom:0}.fencing-photo img{object-fit:cover;max-height:810px}.fencing-photo>.annotation{margin-top:12px;display:block}.fencing-copy>p{max-width:600px}.fencing-copy>.media-figure{width:72%;margin:30px auto 0}.contact{border-top:1px solid var(--line);grid-template-columns:2fr 8fr;gap:55px;padding:40px 0 65px;display:grid}.contact h2{letter-spacing:0;color:var(--accent);font-size:20px;font-weight:700}.email{letter-spacing:-.8px;color:var(--accent);overflow-wrap:anywhere;align-items:center;gap:35px;max-width:100%;font-size:clamp(22px,3vw,44px);display:inline-flex}.email span{flex-shrink:0;font-size:25px}.legacy-anchor{height:0;display:block}@media (width<=1000px){.intro-details{grid-template-columns:1.2fr 1fr;gap:36px}.intro-description{font-size:18px}.university{font-size:17px}.feature-grid{grid-template-columns:1fr 1.4fr;gap:35px}.feature-copy>p{font-size:15px}.lpd-lead-image{grid-column:1/8}.lpd-introduction{grid-column:8/13}.lpd-editorial{gap:28px}.lpd-editorial p{font-size:15px}.lpd-detail-image{grid-column:1/6}.fencing{gap:30px 40px}.contact{grid-template-columns:1fr 3fr;gap:30px}}@media (width<=650px){.introduction{padding:calc(var(--header-height) + 54px) 18px 120px}.introduction h1{font-size:clamp(52px,13vw,76px)}.intro-background{object-position:50% center}.portfolio-title{margin-bottom:20px;font-size:16px}.intro-details{padding:35px 0;display:block}.disciplines{font-size:13px}.university{margin-top:23px;font-size:16px}.intro-description{max-width:440px;margin-top:28px;font-size:16px}.selected-projects{padding:27px 0 48px}.section-heading{margin-bottom:25px}.section-heading h2{font-size:19px}.feature-grid{display:block}.current-feature{padding:35px 0 45px}.feature-copy h3,.experience-title h3,.fencing-copy h3{font-size:34px}.feature-copy .role-line{font-size:17px}.engineering-images{margin-top:28px}.technical-pair{gap:14px;margin-top:18px}.technical-pair img{padding:4px}.experience{padding:42px 0 48px}.experience-title{margin-bottom:27px}.lpd-editorial{flex-direction:column;gap:25px;display:flex}.lpd-lead-image{width:100%}.lpd-introduction{align-self:stretch}.lpd-detail-image{width:80%;margin:0 auto}.lpd-team-story{width:100%}.lpd-team-story .media-figure{margin:23px 0}.lpd-editorial h4{font-size:24px}.fencing{grid-template-columns:1fr;gap:27px;padding:35px 0 45px;display:grid}.fencing>.section-heading{grid-column:auto}.fencing-copy{grid-row:2}.fencing-photo{grid-row:3;width:100%}.fencing-photo img{object-position:center;max-height:580px}.fencing-copy>.media-figure{width:72%}.contact{padding:30px 0 40px;display:block}.contact h2{margin-bottom:19px}.email{letter-spacing:-.4px;gap:14px;font-size:clamp(19px,5.4vw,32px)}.email span{font-size:20px}}.contact>div{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.linkedin-link{color:var(--accent);gap:12px;font-size:16px}.intro-details{text-align:center;padding:50px 0;display:block}.intro-details .intro-description{max-width:840px;margin:0 auto;font-size:20px;line-height:1.8}@media (width<=650px){.intro-details{padding:35px 0}.intro-details .intro-description{font-size:17px}}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 32px;display:grid}.work-card{flex-direction:column;min-width:0;display:flex}.work-image{aspect-ratio:3/2;background:#dce5f0;display:block;overflow:hidden}.work-image .media-figure,.work-image img{width:100%;height:100%}.work-image img{object-fit:cover;transition:transform .4s}.work-image:hover img{transform:scale(1.015)}.work-drawing{background:#fff}.work-drawing img{object-fit:contain;background:#fff;padding:18px}.work-caption{flex-direction:column;flex:1;padding-top:20px;display:flex}.work-caption h3{letter-spacing:-.02em;max-width:600px;min-height:2.32em;font-size:clamp(24px,2.15vw,33px);line-height:1.16}.work-caption h3 a:hover{text-underline-offset:5px;text-decoration:underline 1px}.work-description{color:var(--muted);flex:1;max-width:580px;margin-top:12px;font-size:15px;line-height:1.7}.work-outcome{color:var(--accent);margin-top:19px;padding-top:14px;font-size:15px;line-height:1.5}.work-outcome strong{font-weight:700}.work-project-link{color:#fff;background:#173a5e;border:1px solid #173a5e;border-radius:4px;justify-content:space-between;align-self:flex-start;align-items:center;gap:28px;min-height:46px;margin-top:22px;padding:11px 18px;font-size:15px;font-weight:600;line-height:1.4;transition:background-color .2s;display:inline-flex}.work-project-link:hover,.work-project-link:focus-visible{background:#24527f}.work-project-link span{font-size:20px;line-height:1;transition:transform .2s}.work-project-link:hover span,.work-project-link:focus-visible span{transform:translate(3px)}.work-card:focus-within .work-image img{transform:scale(1.015)}.work-secondary{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:center;gap:32px;padding-top:32px;display:grid}.work-secondary .work-image{aspect-ratio:4/3;max-width:480px}.work-secondary .work-caption{max-width:660px;padding:0 0 0 10px}.work-secondary h3{min-height:0;font-size:clamp(24px,2vw,30px)}.work-secondary .work-outcome{border:0;margin-top:19px;padding-top:0}@media (width<=1000px){.work-grid{gap:30px 24px}.work-caption h3{font-size:26px}.work-secondary{grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:24px}.work-secondary .work-caption{padding-left:0}.work-description,.work-outcome{font-size:14px}}@media (width<=650px){.work-grid{grid-template-columns:1fr;gap:32px}.work-caption{padding-top:16px}.work-caption h3{min-height:0;font-size:27px}.work-description{margin-top:10px;font-size:15px}.work-outcome{margin-top:15px;font-size:14px}.work-secondary{grid-template-columns:1fr;gap:17px;padding-top:28px;display:grid}.work-secondary .work-image{aspect-ratio:1;width:78%;max-width:360px}.work-secondary .work-caption{padding:0}.work-secondary h3{font-size:25px}.work-drawing img{padding:12px}}.work-secondary .work-image{aspect-ratio:auto;background:0 0}.work-secondary .work-image .media-figure{height:auto}.work-secondary .work-image img{object-fit:contain;background:0 0;height:auto}
