.home-page{--home-gap:clamp(24px,3vw,48px);--home-section-space:clamp(72px,8vw,120px);--link-underline-offset:6px}
.home-page .site-header nav{gap:clamp(12px,2vw,28px);margin-right:24px}
.home-page .home-section,.home-page .home-footer{scroll-margin-top:88px}
.home-page .hero.home-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--home-gap);align-items:start;align-content:center;min-height:clamp(620px,78svh,820px);padding:140px var(--page-gutter) 70px;background:#fff}
.home-page .hero-source{position:relative;width:100%;max-width:none;z-index:1}
/* Compensate for the large heading's bottom leading so the visible gaps match. */
.home-page .hero-source h1{font:600 clamp(36px,4.2vw,64px)/1.22 var(--sans);max-width:none;margin:0 0 -.15em}
.home-page .hero-source h1 span{display:block;white-space:normal}
.home-page .hero-source h1 .home-name-line{white-space:nowrap}
.home-position{position:relative;z-index:1;width:100%;max-width:400px;justify-self:end}
.home-page .hero-source,.home-position{display:flex;flex-direction:column;gap:28px}
.home-position>p:first-child{font-size:17px;line-height:1.45;margin:0;text-wrap:pretty}
.home-mobile-break{display:none}
.home-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px}
.home-page .home-current-mobile{display:none;font-size:13px;line-height:1.6;margin:0;color:#444}
.home-page .hero-intro-link{margin:0}
.home-page .hero-intro-link:hover{transform:none}
.home-contact-link{padding:12px 0;text-decoration:none;text-decoration-thickness:1px;text-underline-offset:var(--link-underline-offset);font-size:14px}
.home-contact-link:is(:hover,:focus-visible){text-decoration-line:underline}
.home-orbit-field{position:relative;z-index:1;width:100%;max-width:480px;height:320px;justify-self:end;align-self:center}
.home-orbits{position:absolute;top:0;left:0;width:min(171px,calc(37.5% - 9px))}
.home-orbit{display:block;position:relative;aspect-ratio:1;width:100%;padding:0;border:0;background:none;color:var(--ink);border-radius:50%;cursor:grab;appearance:none;touch-action:none;user-select:none;-webkit-user-select:none}
.home-orbit.is-dragging{cursor:grabbing}
.home-page .home-orbit svg{display:block;width:100%;height:100%;fill:currentColor;stroke:none;animation:home-orbit-turn 44s linear infinite reverse;animation-play-state:paused}
.home-orbit text{font:500 20px var(--sans)}
.home-orbits.is-running .home-orbit svg{animation-play-state:running}
.home-orbit:focus-visible{outline:2px solid currentColor;outline-offset:4px}
@keyframes home-orbit-turn{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.home-page .home-orbit svg{animation:none}}
.home-section{padding:var(--home-section-space) var(--page-gutter)}
.home-section-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:24px 32px;margin-bottom:44px}
.home-page h2{font:600 clamp(36px,4.2vw,64px)/1.05 var(--sans);margin:0;max-width:13ch}
.home-page .home-section h2{max-width:none;white-space:nowrap;flex-shrink:0}
.home-section-heading>p{margin:0;max-width:400px;font-size:17px;line-height:1.45}
.home-featured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 24px}
.home-case{display:block;min-width:0}
.home-case-image{overflow:hidden;background:#e8e7e2}
.home-case-image{transform:perspective(900px) rotateX(var(--cover-rx,0deg)) rotateY(var(--cover-ry,0deg));transition:transform .22s ease-out,box-shadow .25s ease-out}
@media(hover:hover) and (pointer:fine){.home-case-image:hover{box-shadow:0 8px 20px rgba(21,21,21,.14)}}
@media(prefers-reduced-motion:reduce){.home-case-image{transform:none;transition:none}}
.home-case-image img{display:block;width:100%;height:auto;aspect-ratio:1.2;object-fit:cover;transition:transform .3s ease}
.home-case:hover img{transform:scale(1.025)}
.home-case:is(:hover,:focus-visible) .home-case-head h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:var(--link-underline-offset)}
.home-case-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}
.home-page svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}
.home-case h3{font-size:clamp(27px,2.5vw,38px);line-height:1.1;margin:0}
.home-case-task{font-size:20px;line-height:1.35;margin:12px 0 8px;max-width:30ch}
.home-case-copy{font-size:15px;line-height:1.5;margin:0;color:#50504d;max-width:50ch}
.home-case-role{font-size:12px;margin:16px 0 0;color:#50504d}
.home-more{margin-top:64px;padding-top:28px;border-top:1px solid var(--line)}
.home-more>h3{font-size:24px;margin:0 0 24px}
.home-more-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.home-more-grid>a{display:block;min-width:0}
.home-more-image{display:block;overflow:hidden}
.home-more-grid img{display:block;width:100%;height:auto;aspect-ratio:1.3;object-fit:cover;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.home-more-grid>a:is(:hover,:focus-visible) img{transform:scale(1.04)}
.home-more-grid>a:is(:hover,:focus-visible) h4{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:var(--link-underline-offset)}
.home-more-grid h4{font-size:22px;margin:14px 0 6px}
.home-more-grid p{font-size:13px;margin:0;color:#50504d}
.home-approach{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home-approach-list article{display:grid;grid-template-columns:1fr 1fr;gap:var(--home-gap);padding:30px 0;border-top:1px solid var(--line)}
.home-approach-list h3{font-size:clamp(24px,2.3vw,34px);line-height:1.15;margin:0}
.home-approach-list p{font-size:17px;line-height:1.55;margin:0 0 20px;max-width:58ch}
.home-approach-list a{position:relative;display:inline-flex;align-items:center;gap:12px;font-size:14px;text-decoration:none;text-decoration-thickness:1px;text-underline-offset:var(--link-underline-offset)}
.home-approach-list a:is(:hover,:focus-visible){text-decoration-line:underline}
.home-approach-list svg{width:16px;height:16px}
.home-experience .section-label{display:block;margin-bottom:44px}
.home-experience .timeline{margin:0}
.home-experience .job{grid-template-columns:1fr 1.5fr 2fr;gap:32px;padding:28px 0;border-color:var(--line)}
.home-experience .job h3{font:600 25px/1.2 var(--sans)}
.home-experience .job>p{font-size:16px;line-height:1.5;max-width:none;color:var(--ink)}
.home-experience .role{font-size:12px;line-height:1.5}
.home-lab{border-top:1px solid var(--line)}
.home-lab-link{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--home-gap);align-items:center}
.home-lab-images{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.home-lab-image{display:block;overflow:hidden}
.home-lab-images img{width:100%;height:auto;display:block;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.home-lab-link:is(:hover,:focus-visible) img{transform:scale(1.04)}
.home-lab-copy h3 .home-lab-letter{display:inline-block;font:inherit;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.home-lab-link:is(:hover,:focus-visible) .home-lab-letter{transform:translate(var(--letter-x),var(--letter-y)) rotate(var(--letter-angle))}
.home-lab-link:is(:hover,:focus-visible) .home-lab-copy>span,
.home-footer-links a:is(:hover,:focus-visible){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:var(--link-underline-offset)}
.home-lab-copy svg{transition:transform .2s ease}
.home-lab-link:is(:hover,:focus-visible) .home-lab-copy svg{transform:translate(3px,-3px)}
.home-lab-copy h3{font-size:32px;margin:0 0 18px}
.home-lab-copy h3{white-space:nowrap;text-decoration:none}
.home-lab-copy p{font-size:17px;line-height:1.5;margin:0 0 24px;max-width:34ch}
.home-lab-copy span{display:inline-flex;align-items:center;gap:14px;font-size:15px}
body.home-page>footer.home-footer{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;padding:80px var(--page-gutter) 28px;background:var(--ink);color:var(--paper)}
body.home-page>footer.home-footer h2{font-size:clamp(40px,5vw,72px);line-height:1;margin:0 0 24px}
.home-footer p{font-size:17px;line-height:1.5;margin:0}
.home-footer-links{display:flex;flex-direction:column;align-items:start;align-self:center;gap:24px}
.home-footer-links a{display:flex;align-items:center;gap:18px;font-size:clamp(15px,1.8vw,24px);overflow-wrap:anywhere}
.home-footer-bottom{grid-column:1/-1;display:flex;justify-content:flex-end;gap:20px;border-top:1px solid #555;padding-top:24px;font-size:12px}
.home-page a:focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(max-width:899px){
 .home-orbit-field{display:none}
 .home-page .home-current-mobile{display:block}
 .home-page .hero.home-hero{grid-template-columns:1fr;padding-top:110px;gap:36px;min-height:0}
 .home-position{justify-self:end;max-width:400px}
 .home-experience .job{grid-template-columns:1fr 2fr}
 .home-experience .job>p{grid-column:2}
 .home-lab-link{grid-template-columns:1fr}
 .home-more-grid{gap:16px}
}
@media(max-width:600px){
 .home-mobile-break{display:initial}
 .home-page{--mobile-display:clamp(2rem,9.2vw,2.5rem);--mobile-subheading:1.5rem;--mobile-body:1rem;--mobile-caption:.875rem}
 .home-position>p:first-child{font-size:var(--mobile-body);line-height:1.5}
 .home-page .hero-source h1,.home-page .home-section h2{font-size:var(--mobile-display)}
 .home-page .home-section h2{white-space:normal;line-height:1.15;text-wrap:balance;letter-spacing:-.03em!important}
 .home-page .hero-source h1{font-size:clamp(22px,8vw,32px)}
 .home-page .hero-source h1 .home-name-line{white-space:nowrap;text-wrap:initial}
 .home-page .hero-source,.home-position{gap:20px;min-width:0}
 .home-page .hero.home-hero{padding-bottom:48px;min-height:calc((var(--home-mobile-hero-content-height,0px) + 110px + 48px)*1.2)}
 .home-section-heading{display:block;margin-bottom:28px}
 .home-section-heading>p{font-size:1.125rem;line-height:1.45;margin-top:20px}
 .home-section-heading br{display:none}
 .home-featured-grid{grid-template-columns:1fr;gap:40px}
 .home-case-task{font-size:18px}
 .home-case h3,.home-more>h3,.home-approach-list h3,.home-experience .job h3,.home-lab-copy h3{font-size:var(--mobile-subheading);line-height:1.2}
 .home-case-copy,.home-approach-list p,.home-experience .job>p,.home-lab-copy p{font-size:var(--mobile-body);line-height:1.5}
 .home-case-role,.home-more-grid p,.home-experience .role,.home-experience .job-period,.home-page .home-current-mobile{font-size:var(--mobile-caption);line-height:1.5}
 .home-page .hero-intro-link,.home-contact-link,.home-approach-list a,.home-lab-copy>span{font-size:var(--mobile-body);line-height:1.4}
 .home-hero-actions{gap:16px;flex-wrap:nowrap}
 .home-page .hero-intro-link{font-size:14px;padding:12px 16px;gap:8px;white-space:nowrap}
 .home-page .hero-intro-link>span[aria-hidden]{font-size:14px}
 .home-contact-link{font-size:14px;white-space:nowrap;padding:12px 0;margin-left:0}
 .home-more-grid{grid-template-columns:1fr 1fr;gap:28px 16px}
 .home-more-grid h4{font-size:1.25rem;line-height:1.2}
 .home-approach-list article{grid-template-columns:1fr;gap:16px;padding:24px 0}
 .home-experience .job{grid-template-columns:1fr;gap:12px}
 .home-experience .job>p{grid-column:1}
 body.home-page>footer.home-footer{grid-template-columns:1fr;gap:36px;padding-top:56px}
 body.home-page>footer.home-footer h2{font-size:var(--mobile-display);line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
 .home-footer-links a{font-size:var(--mobile-body);line-height:1.5}
 .home-footer-bottom{font-size:var(--mobile-caption);line-height:1.5}
}
@media(max-width:360px){
 .home-page .home-section h2{font-size:1.75rem;letter-spacing:-.04em!important}
}
@media(max-width:300px){
 .home-page{--page-gutter:16px}
 .home-hero-actions{gap:12px}
 .home-page .hero-intro-link{font-size:13px;padding-inline:12px;gap:6px}
 .home-contact-link{font-size:13px}
}
@media(prefers-reduced-motion:reduce){.home-case-image img,.home-more-grid img,.home-lab-images img,.home-lab-copy svg{transition:none}.home-more-grid>a:is(:hover,:focus-visible) img,.home-lab-link:is(:hover,:focus-visible) img,.home-lab-link:is(:hover,:focus-visible) .home-lab-copy svg{transform:none}}
@media(prefers-reduced-motion:reduce){.home-lab-copy h3 .home-lab-letter,.home-lab-link:is(:hover,:focus-visible) .home-lab-letter{transition:none;transform:none}}
