/* Resolution-independent type, native touch scrolling and bounded layouts. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:clip}
img{max-width:100%}
.page-view,.intro-grid>*{min-width:0}
.contact-page-grid>*{min-width:0}
.contact-details a{overflow-wrap:anywhere}
.hero-scroll-orbit svg{shape-rendering:geometricPrecision}
.project-cursor{left:0!important;top:0!important;pointer-events:none;will-change:transform}
.page-transition{will-change:auto}
.page-transition.is-active{will-change:transform}
.gallery-card{contain:paint}
@media(pointer:coarse){.magnetic,.footer-email,.footer-cta{translate:none!important}.project-cursor{display:none}}
@media(min-width:1920px){
  :root{--gutter:max(140px,calc((100vw - 1640px)/2))}
  .footer-content{width:min(100% - 160px,1280px)}
  .footer-heading{font-size:clamp(112px,6vw,150px)}
  .about-opening h1,.work-opening h1{font-size:clamp(110px,5vw,160px)}
  .intro-grid h2{font-size:clamp(46px,2.7vw,72px)}
  .intro-aside p,.about-story p,.about-copy p{font-size:20px}
  .gallery-card{max-height:560px}
}
@media(max-width:380px){
  .intro-aside{gap:16px}.intro-aside p{max-width:none;flex:1;font-size:13px}
  .intro-aside .circle-button{width:100px;height:100px}
  .footer-content{width:calc(100% - 40px)}
  .footer-heading{font-size:clamp(36px,11vw,43px)}
  .footer-email{padding-left:20px;padding-right:20px;font-size:15px}
  .menu-panel{padding-left:25px;padding-right:25px}
}
@media(max-width:760px) and (max-height:700px){[data-page="home"] .hero{min-height:560px}}
@media(prefers-reduced-motion:reduce){.hero-portrait,.name-track,.gallery-strip,.footer-content,.hero-scroll-orbit svg{will-change:auto;transform:none!important}}
/* Desktop signature: the credit slides away and reveals the surname. */
.header .signature-text{position:relative;display:block;width:8.5em;height:1.6em;overflow:hidden;gap:0}
.signature-code,.signature-name{position:absolute;top:0;white-space:nowrap;transition:transform .65s var(--ease),opacity .5s var(--ease)}
.signature-code{left:0}.signature-name{left:3.8em}.signature-surname{opacity:0;transition:opacity .45s var(--ease)}
@media(hover:hover) and (pointer:fine) and (min-width:761px){
 .signature:hover .signature-code,.signature:focus-visible .signature-code{transform:translateX(-110%);opacity:0}
 .signature:hover .signature-name,.signature:focus-visible .signature-name{transform:translateX(-3.8em)}
 .signature:hover .signature-surname,.signature:focus-visible .signature-surname{opacity:1}
}
/* The location pill is intentionally limited to the desktop home hero. */
[data-page="home"] .desktop-location{top:50%;padding:14px 14px 14px 40px;gap:34px;line-height:1.2}
.desktop-location-copy{display:block;width:100px;font-size:16px;line-height:1.2}
.location-globe{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#999d9f;flex-shrink:0}
.location-globe svg{width:54px;height:54px;stroke:#fff;stroke-width:1.2;transform:rotate(var(--scroll-turn,-18deg));will-change:transform}
.location-longitudes{transform-box:fill-box;transform-origin:center;animation:locationOrbit 6s linear infinite}
@keyframes locationOrbit{to{transform:rotateY(360deg)}}
[data-page="home"] .work-row{grid-template-columns:1fr 230px}
[data-page="work"] .work-row{grid-template-columns:40px 1fr 230px}
@media(max-width:760px){
 [data-page="home"] .desktop-location{display:none}
 .header .signature-text{width:6em}.signature-surname{display:none}
 [data-page="home"] .work-row{grid-template-columns:1fr}
 [data-page="work"] .work-row{grid-template-columns:28px minmax(0,1fr)}
 [data-page="work"] .work-type{grid-column:2;grid-row:2}
}
@media(prefers-reduced-motion:reduce){.location-longitudes{animation:none}.location-globe svg{will-change:auto}}
