/* Shared motion language: every project, on land, at sea or in the air. */
:root { --motion-ease:cubic-bezier(.16,1,.3,1); }
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .25s ease both page-out; }
::view-transition-new(root) { animation: .6s var(--motion-ease) both page-in; }
@keyframes page-out { to { opacity:0; transform:translateY(-12px); } }
@keyframes page-in { from { opacity:0; transform:translateY(24px); } }
html { scroll-padding-top:100px; }
html { overflow-x:clip; }
.contact-grid > *, .contact-layout > * { min-width:0; }
.contact-row { min-width:0; overflow-wrap:anywhere; }
body { font-size:16px; }
.reading-progress { position:fixed; inset:0 0 auto; height:3px; background:var(--ink); z-index:10001; transform:scaleX(0); transform-origin:left; pointer-events:none; }
nav { transition:background .4s,padding .4s; }
nav.is-scrolled { background:rgba(30,30,29,.94); }
.nav-links a::after { content:''; position:absolute; bottom:0; left:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .4s var(--motion-ease); }
.nav-links a:hover::after,.nav-links a[aria-current]::after { transform:scaleX(1); transform-origin:left; }
a:focus-visible,button:focus-visible { outline:2px solid var(--ink); outline-offset:6px; }
.hero { min-height:800px; min-height:100svh; align-items:flex-end; padding:100px 0 0; }
.hero-bg-stage { inset:0; width:100%; height:100%; aspect-ratio:auto; transform:none!important; }
.hero-slide { border-radius:0; opacity:0; transform:scale(1.09); transition:opacity 1.1s ease,transform 7s linear; background-position:center 48%; }
.hero-slide.active { opacity:1; transform:scale(1); }
.hero-slide::after { background:linear-gradient(90deg,rgba(15,16,17,.65),transparent 65%),linear-gradient(0deg,rgba(15,16,17,.95),transparent 65%); }
.hero-vignette { background:linear-gradient(180deg,rgba(15,16,17,.35),transparent 35%,rgba(15,16,17,.15)); }
.hero-meta-top { top:125px; left:4vw; max-width:90%; font-size:12px; gap:12px 32px; }
.hero-meta-top span:last-child { display:none; }
.hero-content { display:block; padding:90px 4vw 160px; }
.hero-title { font-size:clamp(64px,8.5vw,144px); max-width:none; line-height:.97; letter-spacing:-.06em; }
.hero-title .line { display:inline-block; overflow:visible; }
.hero-title .line + .line { margin-left:.12em; }
.hero-title .accent { color:var(--ink); }
.hero-tagline { max-width:460px; font-size:17px; }
.hero-stats { display:none; }
.hero .scroll-cue { display:none; }
.hero .now-showing { display:none; }
.project-switcher { position:absolute; z-index:7; left:4vw; right:4vw; bottom:28px; display:flex; gap:28px; align-items:end; }
.project-tabs { display:flex; flex:1; gap:24px; }
.project-tab { text-align:left; flex:1; padding:14px 0 18px; position:relative; color:#c8c8c5; min-height:64px; font-size:14px; letter-spacing:.04em; border-top:1px solid #ffffff40; }
.project-tab span { font-family:var(--mono); font-size:12px; margin-right:14px; opacity:.65; }
.project-tab::after { content:''; position:absolute; top:-1px; left:0; width:100%; height:2px; background:var(--ink); transform:scaleX(0); transform-origin:left; }
.project-tab[aria-pressed="true"] { color:white; }
.project-tab[aria-pressed="true"]::after { transform:scaleX(var(--slide-progress,0)); }
.project-open,.motion-pause { padding:14px 18px; border:1px solid #ffffff60; font-size:14px; white-space:nowrap; min-height:48px; transition:background .25s,color .25s; }
.project-open:hover,.motion-pause:hover { background:var(--ink); color:var(--bg); }
.motion-pause { min-width:48px; }
.motion-ready { opacity:0; translate:0 38px; transition:opacity .9s var(--motion-ease),translate 1.1s var(--motion-ease); }
.motion-ready.motion-in { opacity:1; translate:0 0; }
.section-label { transition:letter-spacing .7s var(--motion-ease); }
.section-label.motion-in { letter-spacing:.16em; }
.project-hero { perspective:1000px; }
a.project-hero img { transition:transform 1.3s var(--motion-ease),filter .7s!important; }
a.project-hero:hover img { transform:scale(1.055)!important; filter:contrast(1.04); }
.project-hero-tag { font-size:14px; }
.value,.pill { transition:background .3s,translate .4s var(--motion-ease),border-color .3s; }
.value:hover { translate:0 -6px; }
.pill:hover { translate:0 -3px; }
.reveal { transition-duration:1s!important; transition-timing-function:var(--motion-ease)!important; }
.cs-hero-bg,.bh-hero-bg,.au-hero-bg { scale:1.04; translate:0 var(--hero-offset,0px); }
.cs-hero-title,.bh-hero-title,.au-hero-title { animation:page-in 1.2s var(--motion-ease) both; }
@media (min-width:901px) {
  .project-header { position:sticky; top:88px; z-index:8; background:var(--bg); padding-top:18px; padding-bottom:18px; }
}
@media (max-width:900px) {
  .hero-content { padding-bottom:210px; }
  .hero-title .line { display:block; }
  .hero-title .line + .line { margin-left:0; }
  .project-switcher { flex-wrap:wrap; gap:12px; bottom:20px; }
  .project-tabs { flex-basis:100%; gap:16px; }
  .project-tab { font-size:12px; }
  .project-tab span { display:block; margin-bottom:6px; }
  .project-open { flex:1; text-align:center; }
  .hero-meta-top { font-size:12px; }
  .hero { min-height:780px; min-height:max(780px,100svh); }
  .contact-row { grid-template-columns:72px minmax(0,1fr) 16px; gap:10px; }
  .contact-row .value { min-width:0; overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .hero-title .line span,.hero-tagline { opacity:1!important; transform:none!important; }
  .reveal,.motion-ready { opacity:1!important; transform:none!important; translate:none!important; }
  .hero-slide,.cs-hero-bg,.bh-hero-bg,.au-hero-bg { transform:none!important; translate:none!important; scale:1!important; }
  .cursor { display:none!important; }
  ::view-transition-group(*) { animation:none!important; }
}
