/* ==========================================================================
   Hubert Mak, continuous visual journey
   ========================================================================== */

@view-transition { navigation: auto; }

::view-transition-old(mak-portrait),
::view-transition-new(mak-portrait) {
  animation-duration: 1150ms;
  animation-timing-function: var(--ease-out);
  mix-blend-mode: normal;
}

::view-transition-old(root) { animation: 850ms ease both journey-old; }
::view-transition-new(root) { animation: 1050ms ease both journey-new; }

@keyframes journey-old { to { opacity: 0; filter: blur(6px); } }
@keyframes journey-new { from { opacity: 0; filter: blur(5px); } }

.site-page.is-i18n-loading .site-main,
.site-page.is-i18n-loading .nav,
.site-page.is-i18n-loading .rail,
.site-page.is-i18n-loading .footer { visibility: hidden; }

.site-main { isolation: isolate; }
.site-main > section,
.site-main > .proof-band { position: relative; z-index: 2; }
html { scroll-behavior: auto; overflow-x: clip; }

/* --------------------------------------------------------------------------
   Fluid overture
   -------------------------------------------------------------------------- */

.from-gate .loader { display: none; }

.loader {
  background:
    radial-gradient(circle at 50% 50%, rgba(201,168,106,0.06), transparent 28%),
    #040405;
}

.loader__mark { color: var(--paper-58); }
.loader__track { width: clamp(10rem, 26vw, 18rem); }
.loader__fill { box-shadow: 0 0 12px rgba(201,168,106,0.65); }

.curtain { overflow: hidden; background: transparent; }
.curtain__panel {
  top: -4%;
  bottom: -4%;
  width: 55%;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.014), transparent 15%, rgba(201,168,106,0.026) 31%, transparent 47%, rgba(255,255,255,0.014) 68%, transparent 86%),
    radial-gradient(ellipse at 100% 50%, #111014 0%, #08080a 42%, #030304 88%);
  box-shadow: 0 0 90px rgba(0,0,0,0.94);
  transition: transform 1900ms cubic-bezier(0.74, 0, 0.16, 1), filter 1900ms ease;
}

.curtain__panel--l {
  left: -2%;
  clip-path: polygon(0 0, 92% 0, 99% 9%, 94% 23%, 100% 37%, 95% 52%, 100% 68%, 93% 83%, 98% 100%, 0 100%);
}
.curtain__panel--r {
  right: -2%;
  transform: scaleX(-1);
  clip-path: polygon(0 0, 92% 0, 99% 9%, 94% 23%, 100% 37%, 95% 52%, 100% 68%, 93% 83%, 98% 100%, 0 100%);
}
.curtain__seam {
  background: linear-gradient(180deg, transparent 2%, rgba(201,168,106,0.16) 20%, var(--gold-lift) 50%, rgba(18,108,88,0.20) 80%, transparent 98%);
  box-shadow: 0 0 9px rgba(226,202,160,0.76), 0 0 36px rgba(201,168,106,0.38);
  opacity: 0.72;
}
.curtain__seam::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #fff8dc;
  box-shadow: 0 0 8px #fff8dc, 0 0 26px var(--gold-lift), 0 0 72px var(--gold);
  opacity: 0;
}
.curtain.is-parting .curtain__seam::after { animation: site-spark 1200ms var(--ease-out) forwards; }
.curtain.is-open .curtain__panel--l { transform: translate3d(-108%,0,0) skewX(-2deg); filter: blur(1px); }
.curtain.is-open .curtain__panel--r { transform: translate3d(108%,0,0) scaleX(-1) skewX(-2deg); filter: blur(1px); }

@keyframes site-spark {
  0% { opacity: 0; transform: translate(-50%,-50%) scale(0.4); }
  16% { opacity: 1; transform: translate(-50%,-50%) scale(1.35); }
  48% { opacity: 0.9; transform: translate(-50%,-50%) scale(5); }
  100% { opacity: 0; transform: translate(-50%,-50%) scale(16); }
}

/* --------------------------------------------------------------------------
   Navigation and language access
   -------------------------------------------------------------------------- */

.nav__right { display: flex; align-items: center; gap: clamp(0.9rem, 2.5vw, 2rem); }

.nav__language {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  min-height: 2rem;
  padding: 0.3rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(6,6,7,0.34);
  color: var(--paper-38);
  font-size: 0.55rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  transition: color var(--t-1) ease, border-color var(--t-1) ease, background-color var(--t-1) ease, transform var(--t-1) var(--ease-out);
}

.nav__language svg {
  width: 1.22rem;
  aspect-ratio: 3 / 2;
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 2px 7px rgba(0,0,0,0.4);
}

.nav__language:hover { color: var(--gold-lift); border-color: var(--gold-40); background: var(--gold-08); }
.nav__language:active { transform: scale(0.95); }

/* --------------------------------------------------------------------------
   Hero, a portrait held inside the field
   -------------------------------------------------------------------------- */

.hero.hero--portrait {
  min-height: 100svh;
  display: block;
  padding: 0;
  text-align: center;
  overflow: clip;
  background:
    radial-gradient(ellipse 42% 42% at 50% 48%, rgba(201,168,106,0.055), transparent 72%),
    linear-gradient(180deg, rgba(6,6,7,0.12), transparent 74%);
}

.hero--portrait::before,
.hero--portrait::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.hero--portrait::before {
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(rgba(244,241,236,0.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,241,236,0.018) 1px, transparent 1px);
  background-size: clamp(5rem, 10vw, 9rem) clamp(5rem, 10vw, 9rem);
  -webkit-mask-image: radial-gradient(circle at 50% 46%, #000, transparent 74%);
          mask-image: radial-gradient(circle at 50% 46%, #000, transparent 74%);
}

.hero--portrait::after {
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  height: 26%;
  background: linear-gradient(180deg, transparent, rgba(6,6,7,0.72) 70%, var(--ink-900));
}

.hero__field { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.hero__arc {
  position: absolute;
  left: 50%;
  top: 48%;
  width: min(46vw, 38rem);
  aspect-ratio: 1;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  border: 1px solid rgba(201,168,106,0.10);
  animation: hero-orbit 22s linear infinite;
}
.hero__arc::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  border-top: 1px solid rgba(226,202,160,0.48);
  border-right: 1px solid transparent;
  transform: rotate(28deg);
}
.hero__arc--two {
  width: min(54vw, 44rem);
  border-color: rgba(18,108,88,0.13);
  animation-direction: reverse;
  animation-duration: 29s;
}
.hero__spark {
  position: absolute;
  left: calc(50% + min(20vw, 16rem));
  top: 30%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold-lift);
  box-shadow: 0 0 8px var(--gold), 0 0 28px rgba(201,168,106,0.62);
  animation: hero-spark 6s var(--ease-soft) infinite;
}

.hero__mast { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.hero__eyebrow,
.hero__statement,
.hero__name { position: absolute; left: 50%; width: min(92%, 90rem); transform: translateX(-50%); }

.hero__eyebrow[data-reveal],
.hero__statement[data-reveal] { transform: translate(-50%, 26px); }
.hero__eyebrow[data-reveal].is-visible,
.hero__statement[data-reveal].is-visible { transform: translate(-50%, 0); }

.hero__eyebrow {
  top: clamp(6.8rem, 15vh, 10rem);
  font-size: clamp(0.56rem, 0.8vw, 0.68rem);
  font-weight: 400;
  letter-spacing: 0.29em;
  text-transform: uppercase;
  color: var(--gold);
}

.hero__name {
  top: 31%;
  z-index: 4;
  font-size: clamp(4.5rem, 12.8vw, 12.4rem);
  line-height: 0.82;
  letter-spacing: -0.052em;
  white-space: nowrap;
  color: rgba(244,241,236,0.96);
  text-shadow: 0 2px 2px rgba(0,0,0,0.74), 0 12px 70px rgba(0,0,0,0.82);
}

.hero__statement {
  top: 66%;
  z-index: 6;
  max-width: 27ch;
  font-family: var(--serif);
  font-size: clamp(1.12rem, 2vw, 1.65rem);
  font-weight: 300;
  line-height: 1.35;
  color: var(--paper);
  text-shadow: 0 2px 2px #030304, 0 8px 22px #030304, 0 0 44px rgba(3,3,4,0.96);
}

.hero--portrait .hero__stage {
  position: absolute;
  left: 50%;
  top: 48%;
  bottom: auto;
  z-index: 2;
  width: min(46vw, 38rem);
  height: auto;
  aspect-ratio: 1;
  transform: translate3d(-50%, calc(-50% - var(--p) * 5vh), 0) scale(calc(1 + var(--p) * 0.045));
  opacity: calc(1 - var(--p) * 0.82);
}

.hero--portrait .cut--hero {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: end center;
}
.hero__arc,
.hero__spark { animation-play-state: paused; }
.hero.is-motion-active .hero__arc,
.hero.is-motion-active .hero__spark { animation-play-state: running; }

.hero__portrait-window {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(226,202,160,0.2);
  border-radius: 50%;
  background: #121218;
  box-shadow:
    inset 0 0 54px rgba(6,6,7,0.22),
    0 36px 100px rgba(0,0,0,0.58),
    0 0 70px rgba(201,168,106,0.06);
}

.hero__portrait-window::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(circle at 50% 48%, transparent 66%, rgba(6,6,7,0.24) 100%);
}

.hero--portrait .cut--hero .cut__img {
  position: absolute;
  top: -12.5%;
  left: 50%;
  width: 105.5%;
  height: auto;
  max-height: none;
  min-width: 0;
  min-height: 0;
  transform: translateX(-50%);
  object-fit: initial;
  object-position: center top;
  filter: contrast(1.04) saturate(0.96);
  view-transition-name: mak-portrait;
}
.hero--portrait .cut--hero .cut__aura { width: 145%; height: 135%; top: 50%; filter: blur(56px) saturate(138%); }
.hero--portrait .cut--hero .cut__dissolve { height: 18%; opacity: 0.42; }

.hero--portrait .hero__role {
  position: absolute;
  left: max(var(--gutter), var(--rail-w));
  bottom: clamp(7rem, 16vh, 10.5rem);
  z-index: 6;
  display: grid;
  gap: 0.46rem;
  margin: 0;
  max-width: 18rem;
  text-align: left;
  font-size: clamp(0.55rem, 0.72vw, 0.65rem);
  font-variant-caps: normal;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper-38);
}
.hero--portrait .hero__role i { width: 2rem; height: 1px; background: var(--line); }

.hero__award {
  position: absolute;
  right: var(--gutter);
  bottom: clamp(7rem, 16vh, 10.5rem);
  z-index: 6;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.9rem;
  max-width: 19rem;
  padding: 1rem 1.05rem;
  text-align: left;
  border: 1px solid var(--line);
  background: rgba(9,9,11,0.42);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.03), 0 18px 60px rgba(0,0,0,0.22);
}
.hero__award-mark {
  font-family: var(--serif);
  font-size: 1.65rem;
  font-style: italic;
  color: var(--gold);
  opacity: 0.72;
}
.hero__award p,
.hero__award span {
  display: block;
  font-size: 0.52rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-38);
}
.hero__award strong {
  display: block;
  margin: 0.2rem 0 0.3rem;
  font-family: var(--serif);
  font-size: 1.1rem;
  font-weight: 300;
  letter-spacing: -0.01em;
  color: var(--paper);
}
.hero--portrait .hero__corner { z-index: 7; bottom: clamp(1.5rem, 4vh, 2.8rem); }
.hero--portrait .cue { z-index: 8; }

@keyframes hero-orbit { to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes hero-spark {
  0%, 100% { opacity: 0.36; transform: scale(0.7); }
  50% { opacity: 1; transform: scale(1.5); }
}

/* --------------------------------------------------------------------------
   Proof line and chapter transitions
   -------------------------------------------------------------------------- */

.proof-band {
  overflow: hidden;
  border-block: 1px solid var(--line-soft);
  background: rgba(6,6,7,0.66);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.proof-band__track {
  display: flex;
  align-items: center;
  width: max-content;
  min-width: 200%;
  padding-block: 1rem;
  animation: proof-run 30s linear infinite;
  animation-play-state: paused;
}
.proof-band.is-motion-active .proof-band__track { animation-play-state: running; }
.proof-band__track span {
  padding-inline: clamp(1.8rem, 4vw, 4rem);
  font-size: 0.57rem;
  font-weight: 400;
  letter-spacing: 0.21em;
  text-transform: uppercase;
  color: var(--paper-38);
  white-space: nowrap;
}
.proof-band__track i { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 10px var(--gold-40); }
@keyframes proof-run { to { transform: translateX(-50%); } }

.home-book {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(2rem, 6vw, 6rem);
  padding: clamp(2.6rem, 5.5vw, 5rem) var(--gutter);
  padding-left: max(var(--gutter), var(--rail-w));
  border-bottom: 1px solid var(--line-soft);
  background:
    radial-gradient(ellipse 32% 100% at 78% 50%, rgba(201,168,106,0.08), transparent 72%),
    linear-gradient(90deg, rgba(11,58,48,0.08), transparent 46%);
}

.home-book__copy p {
  margin-bottom: 0.72rem;
  font-size: var(--fs-micro);
  letter-spacing: var(--track-micro);
  text-transform: uppercase;
  color: var(--gold);
}

.home-book__copy h2 {
  max-width: 19ch;
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 3.4rem);
  font-weight: 300;
  line-height: 1.02;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.book-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  min-width: clamp(12rem, 20vw, 16rem);
  min-height: 3.65rem;
  padding: 1rem 1.35rem;
  overflow: hidden;
  border: 1px solid var(--gold-40);
  border-radius: 999px;
  background: linear-gradient(110deg, rgba(201,168,106,0.18), rgba(201,168,106,0.06));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08), 0 18px 60px rgba(0,0,0,0.24), 0 0 52px rgba(201,168,106,0.06);
  font-size: 0.66rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--paper);
  transition: transform var(--t-1) var(--ease-out), border-color var(--t-1) ease, background-color var(--t-1) ease;
}

.book-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 18%, rgba(255,255,255,0.12) 48%, transparent 78%);
  transform: translateX(-120%);
  transition: transform 850ms var(--ease-out);
}
.book-cta span, .book-cta i { position: relative; z-index: 1; }
.book-cta i { width: 1.8rem; height: 1px; background: var(--gold); }
.book-cta i::after { content: ""; position: absolute; top: -3px; right: 0; width: 6px; height: 6px; border-top: 1px solid var(--gold); border-right: 1px solid var(--gold); transform: rotate(45deg); }
.book-cta:hover { transform: translateY(-2px); border-color: var(--gold); background: rgba(201,168,106,0.15); }
.book-cta:hover::before { transform: translateX(120%); }
.book-cta:active { transform: scale(0.98); }

.film::before,
.craft::before,
.honors::before,
.strip::before {
  content: "";
  position: absolute;
  inset: -18vh 0 auto;
  height: 36vh;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(ellipse 54% 40% at 50% 50%, rgba(201,168,106,0.05), transparent 72%);
}

.film {
  height: 175vh;
  background: linear-gradient(180deg, rgba(6,6,7,0.62), transparent 24%, transparent 80%, rgba(11,58,48,0.08));
}
.film__frame {
  width: min(70vw, 58rem);
  height: min(72svh, 46rem);
  max-width: none;
  aspect-ratio: auto;
  border-radius: clamp(0.9rem, 2vw, 1.5rem);
  isolation: isolate;
}
.film__frame::before {
  content: "";
  position: absolute;
  inset: -8%;
  z-index: 0;
  background: linear-gradient(rgba(5,5,7,0.38), rgba(5,5,7,0.62)), url("../assets/video/reel-poster.webp") center / cover no-repeat;
  filter: blur(22px) saturate(0.74);
  transform: scale(1.08);
}
.film__video {
  position: relative;
  z-index: 1;
  display: block;
  width: auto;
  height: 100%;
  margin-inline: auto;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  box-shadow: 0 0 80px rgba(0,0,0,0.72);
}
.film__edge { border-color: rgba(244,241,236,0.14); }
.film .sound { z-index: 3; }
.film__edge::before {
  content: "HM / 2026";
  position: absolute;
  top: 1rem;
  left: 1.1rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid rgba(244,241,236,0.16);
  background: rgba(6,6,7,0.34);
  font-size: 0.45rem;
  letter-spacing: 0.18em;
  color: var(--paper-58);
}

.craft {
  position: relative;
  background:
    radial-gradient(ellipse 36% 32% at 16% 46%, rgba(18,108,88,0.08), transparent 74%),
    radial-gradient(ellipse 30% 28% at 82% 68%, rgba(64,46,98,0.07), transparent 74%);
}
.craft__head { position: relative; }
.craft__head::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: clamp(-2rem, -3vw, -1rem);
  width: min(52vw, 24rem);
  height: 1px;
  background: linear-gradient(90deg, var(--gold-40), transparent);
}
.craft__stage-note {
  max-width: 30rem;
  margin: 1.2rem auto 0;
  font-size: 0.54rem;
  letter-spacing: 0.18em;
  line-height: 1.8;
  text-align: center;
  text-transform: uppercase;
  color: var(--paper-58);
  text-shadow: 0 2px 18px rgba(0,0,0,0.88);
}
.craft__grid { max-width: 90rem; margin-inline: auto; align-items: center; }
.craft__body { max-width: 37rem; }
.craft__body > p { color: var(--paper-80); }

@media (min-width: 62rem) {
  .craft__grid { grid-template-columns: minmax(0, 1.04fr) minmax(0, 0.96fr); }
  .craft__stage { position: relative; top: auto; align-self: start; }
}
.plate--inset figcaption {
  padding-top: 0.8rem;
  font-size: 0.63rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
}

.honors {
  position: relative;
  background:
    radial-gradient(ellipse 56% 30% at 50% 10%, rgba(201,168,106,0.07), transparent 72%),
    linear-gradient(180deg, transparent, rgba(32,24,46,0.08) 58%, transparent);
}

.honors__scene {
  position: relative;
  width: min(100%, 76rem);
  min-height: clamp(18rem, 50vw, 38rem);
  margin: 0 0 clamp(4rem, 9vw, 7rem);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.honors__scene::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, var(--ink-900), transparent 18%, transparent 82%, var(--ink-900)),
    linear-gradient(180deg, var(--ink-900), transparent 20%, transparent 74%, var(--ink-900));
  pointer-events: none;
}
.honors__scene-glow {
  position: absolute;
  inset: 14% 8%;
  background: radial-gradient(ellipse at center, rgba(201,168,106,0.17), rgba(18,108,88,0.09) 38%, transparent 72%);
  filter: blur(48px);
  animation: aura-still 15s var(--ease-soft) infinite;
}
.honors__scene img {
  position: relative;
  z-index: 1;
  width: 100%;
  filter: drop-shadow(0 28px 52px rgba(0,0,0,0.64)) saturate(0.92) contrast(1.04);
}
.honors__scene figcaption {
  position: absolute;
  left: clamp(1rem, 4vw, 3rem);
  bottom: clamp(1rem, 4vw, 3rem);
  z-index: 3;
  display: grid;
  gap: 0.25rem;
  text-align: left;
}
.honors__scene figcaption span {
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.5vw, 2rem);
}
.honors__scene figcaption i {
  font-style: normal;
  font-size: 0.57rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--paper-38);
}

.campaign {
  position: relative;
  padding: clamp(1.2rem, 3vw, 2.4rem);
  border: 1px solid var(--line-soft);
  background: linear-gradient(145deg, rgba(244,241,236,0.021), transparent 42%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.018), 0 36px 90px rgba(0,0,0,0.12);
}
.campaign + .campaign { margin-top: clamp(2rem, 5vw, 4rem); }
.campaign__place span { color: var(--paper); }
.honor { padding-inline: clamp(0.1rem, 1vw, 0.7rem); }

.strip { background: radial-gradient(ellipse 48% 32% at 50% 52%, rgba(18,108,88,0.07), transparent 72%); }
.plate__hit { border-radius: 0.18rem; }
.creed { margin-top: clamp(2rem, 7vh, 5rem); }
.contact__inner { position: relative; padding-top: clamp(7rem, 14vh, 10rem); }
.contact__inner::before {
  content: "";
  position: absolute;
  top: 0;
  left: max(var(--gutter), var(--rail-w));
  right: var(--gutter);
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-18), transparent);
}

.contact__links small {
  display: block;
  margin-bottom: 0.55rem;
  font-size: 0.48rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
}
.contact__links a span {
  font-family: var(--serif);
  font-size: clamp(1rem, 1.8vw, 1.35rem);
  font-weight: 300;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--paper-80);
}

/* --------------------------------------------------------------------------
   Responsive composition
   -------------------------------------------------------------------------- */

@media (max-width: 76rem) {
  .hero--portrait .hero__stage, .hero__arc { width: min(52vw, 32rem); }
  .hero__arc--two { width: min(61vw, 37rem); }
  .hero--portrait .hero__role { bottom: 15vh; }
  .hero__award { bottom: 15vh; max-width: 16rem; }
  .hero__award strong { font-size: 0.96rem; }
}

@media (max-width: 62rem) {
  .hero__name { top: 30%; font-size: clamp(4.6rem, 14vw, 8rem); }
  .hero--portrait .hero__stage, .hero__arc { width: min(58vw, 31rem); }
  .hero__arc--two { width: min(68vw, 36rem); }
  .hero__statement { top: 64%; }
  .hero--portrait .hero__role { left: var(--gutter); bottom: 13vh; max-width: 13rem; }
  .hero__award { right: var(--gutter); bottom: 13vh; max-width: 14rem; padding: 0.8rem; }
  .hero__award-mark { display: none; }
  .honors__scene { min-height: 24rem; }
}

@media (max-width: 46rem) {
  .nav__right { gap: 0.55rem; }
  .nav__language { padding: 0.25rem 0.38rem; }
  .nav__language svg { width: 1rem; }
  .nav__language span { display: none; }
  .nav__links { gap: 0.7rem; font-size: 0.51rem; }

  .hero.hero--portrait { min-height: 100svh; padding: 0; }
  .hero__eyebrow { top: 5.6rem; font-size: 0.5rem; letter-spacing: 0.18em; }
  .hero__name { top: 17.5%; z-index: 5; width: 100%; font-size: clamp(3.45rem, 16.5vw, 5.4rem); white-space: nowrap; line-height: 0.86; }
  .hero--portrait .hero__stage { top: 45%; bottom: auto; width: min(80vw, 22rem); }
  .hero__statement { top: 54.5%; z-index: 7; max-width: 22ch; padding-inline: 0.2rem; font-size: clamp(1.02rem, 4.2vw, 1.25rem); line-height: 1.28; }
  .hero__arc { top: 45%; width: min(80vw, 22rem); }
  .hero__arc--two { width: min(91vw, 25rem); }
  .hero--portrait .hero__role {
    left: 1rem;
    right: 1rem;
    bottom: 7.8rem;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.38rem 0.6rem;
    max-width: none;
    text-align: center;
    font-size: 0.48rem;
    letter-spacing: 0.1em;
    color: var(--paper-58);
  }
  .hero--portrait .hero__role i { width: 3px; height: 3px; border-radius: 50%; background: var(--gold-40); align-self: center; }
  .hero__award { left: 50%; right: auto; bottom: 1.35rem; width: min(90vw, 24rem); max-width: none; transform: translateX(-50%); display: block; justify-content: center; text-align: center; padding: 0.6rem 0.8rem; border-inline: 0; background: linear-gradient(90deg, transparent, rgba(9,9,11,0.78) 12%, rgba(9,9,11,0.78) 88%, transparent); backdrop-filter: blur(9px); }
  .hero__award[data-reveal] { transform: translate(-50%, 26px); }
  .hero__award[data-reveal].is-visible { transform: translate(-50%, 0); }
  .hero__award div { width: 100%; }
  .hero__award p { display: inline; font-size: 0.47rem; color: var(--paper-58); }
  .hero__award p::after { content: " · "; color: var(--gold); }
  .hero__award strong { display: inline; margin: 0; font-size: 0.76rem; }
  .hero__award span { display: block; margin-top: 0.28rem; font-size: 0.47rem; color: var(--paper-58); white-space: nowrap; }
  .hero--portrait .hero__corner { display: none; }
  .hero--portrait .cue { display: none; }

  .proof-band__track span { font-size: 0.5rem; }
  .home-book { align-items: flex-start; flex-direction: column; padding-block: 2.5rem; }
  .home-book__copy h2 { font-size: clamp(2rem, 9vw, 2.85rem); }
  .book-cta { width: 100%; min-height: 3.4rem; }
  .film { height: auto; }
  .film__pin { position: relative; top: auto; height: auto; min-height: 0; grid-template-rows: auto auto auto; padding: 4.8rem 0.9rem 1.3rem; gap: 1.2rem; }
  .film__frame { width: min(90vw, 27rem); height: min(63svh, 35rem); border-radius: 1rem; }
  .film__frame::before { inset: -4%; filter: blur(15px) brightness(0.76) saturate(0.78); }
  .film__video { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
  .film__edge::before { top: 0.7rem; left: 0.72rem; }
  .film__caption { margin-top: 0.1rem; }
  .craft { padding-top: clamp(2rem, 4.5vh, 2.8rem); }
  .honors__scene { min-height: 17rem; margin-inline: calc(var(--gutter) * -0.5); width: calc(100% + var(--gutter)); }
  .honors__scene figcaption { left: 0.8rem; bottom: 0.7rem; }
  .campaign { padding: 1rem; margin-inline: calc(var(--gutter) * -0.25); }
}

@media (max-height: 700px) and (min-width: 47rem) {
  .hero__eyebrow { top: 5rem; }
  .hero--portrait .hero__stage, .hero__arc { width: min(42vw, 28rem); }
  .hero__arc--two { width: min(49vw, 33rem); }
  .hero__statement { top: 64%; }
  .hero--portrait .hero__role, .hero__award { bottom: 10vh; }
}

@media (max-width: 46rem) and (max-height: 720px) {
  .hero--portrait .hero__stage, .hero__arc { top: 49%; }
  .hero__statement { top: 56.5%; }
}

@media (prefers-reduced-motion: reduce) {
  .hero__arc, .hero__spark, .proof-band__track, .honors__scene-glow { animation: none !important; }
  .proof-band__track { min-width: 100%; width: 100%; flex-wrap: wrap; justify-content: center; }
  .proof-band__track [aria-hidden="true"], .proof-band__track i[aria-hidden="true"] { display: none; }
  ::view-transition-group(*) { animation-duration: 0.001ms !important; }
}

/* ==========================================================================
   2026 refinement: hero philosophy, season ledger, social and gallery deck
   ========================================================================== */

/* The first chapter now has enough room for the portrait, philosophy and proof. */
.hero.hero--portrait { min-height: 132svh; }
.hero--portrait .hero__stage,
.hero__arc { top: 43%; }
.hero__statement { top: 57%; }
.hero--portrait .hero__role,
.hero__award { bottom: clamp(4.8rem, 8vh, 6.5rem); }

.hero--portrait .cut--hero {
  isolation: isolate;
  animation: hero-float 12.5s var(--ease-soft) infinite;
  animation-play-state: paused;
}

.hero--portrait .cut--hero::before,
.hero--portrait .cut--hero::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.hero--portrait .cut--hero::before {
  inset: -9%;
  z-index: 0;
  background:
    conic-gradient(from 18deg, transparent 0 18%, rgba(226,202,160,0.24) 27%, transparent 38% 62%, rgba(201,168,106,0.14) 73%, transparent 84%),
    radial-gradient(circle, rgba(201,168,106,0.17), rgba(18,108,88,0.08) 43%, transparent 70%);
  filter: blur(17px) saturate(130%);
  animation: hero-breathe 7.8s var(--ease-soft) infinite;
  animation-play-state: paused;
}

.hero--portrait .cut--hero::after {
  inset: -1.4%;
  z-index: 4;
  border: 1px solid rgba(226,202,160,0.22);
  box-shadow: 0 0 18px rgba(201,168,106,0.12), 0 0 56px rgba(201,168,106,0.08);
  animation: hero-ring-breathe 7.8s var(--ease-soft) infinite;
  animation-play-state: paused;
}

.hero.is-motion-active .cut--hero,
.hero.is-motion-active .cut--hero::before,
.hero.is-motion-active .cut--hero::after { animation-play-state: running; }

@keyframes hero-float {
  0%, 100% { transform: translate3d(-0.15rem, 0.1rem, 0) rotate(-0.18deg); }
  19% { transform: translate3d(0.35rem, -0.4rem, 0) rotate(0.22deg); }
  47% { transform: translate3d(-0.3rem, -0.12rem, 0) rotate(-0.1deg); }
  71% { transform: translate3d(0.22rem, 0.42rem, 0) rotate(0.16deg); }
}

@keyframes hero-breathe {
  0%, 100% { transform: scale(0.96) rotate(-4deg); opacity: 0.48; }
  50% { transform: scale(1.08) rotate(7deg); opacity: 0.94; }
}

@keyframes hero-ring-breathe {
  0%, 100% { transform: scale(0.995); opacity: 0.54; }
  50% { transform: scale(1.018); opacity: 1; }
}

.hero__creed {
  position: absolute;
  left: 0;
  right: 0;
  top: 68.5%;
  z-index: auto;
  width: 100%;
  height: clamp(8.5rem, 15vh, 10.5rem);
  padding: 0;
  overflow: visible;
  pointer-events: none;
}

.hero__creed::before {
  inset: -92% 0;
  z-index: 1;
}

.hero__creed .creed__figure {
  inset: -112% 0;
  z-index: 1;
  overflow: visible;
}

.hero__creed .creed__quote {
  position: absolute;
  inset: 0;
  z-index: 7;
  display: grid;
  place-content: center;
  margin: 0;
}

.hero__creed .creed__quote p {
  text-shadow: 0 3px 24px rgba(0,0,0,0.94), 0 0 54px rgba(6,6,7,0.72);
}

.hero__creed .creed__quote cite {
  margin-top: clamp(1.2rem, 3vh, 2rem);
}

/* A persistent, compact social dock. Each service remains its own button. */
.social-dock {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 135;
  display: flex;
  gap: 0.55rem;
  pointer-events: none;
}

.social-dock__link {
  --brand: var(--gold);
  position: relative;
  display: inline-grid;
  place-items: center;
  align-items: center;
  width: 3rem;
  height: 3rem;
  border: 1px solid color-mix(in srgb, var(--brand) 48%, transparent);
  border-radius: 50%;
  color: var(--brand);
  background: color-mix(in srgb, var(--brand) 8%, rgba(7,7,9,0.82));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.07),
    0 10px 30px rgba(0,0,0,0.34),
    0 0 22px color-mix(in srgb, var(--brand) 10%, transparent);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  pointer-events: auto;
  transition: transform 520ms var(--ease-out), border-color 520ms ease, background 520ms ease, box-shadow 520ms ease;
}

.social-dock__link--instagram { --brand: #c350c8; }
.social-dock__link--facebook { --brand: #408cf5; }
.social-dock__link--whatsapp { --brand: #32d56d; }
.social-dock__link svg {
  width: 1.22rem;
  height: 1.22rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.social-dock__link--facebook svg { fill: currentColor; stroke: none; }
.social-dock__link::before {
  content: "";
  position: absolute;
  inset: -0.25rem;
  border-radius: inherit;
}
.social-dock__link:hover,
.social-dock__link:focus-visible {
  transform: translateY(-4px) scale(1.055);
  border-color: color-mix(in srgb, var(--brand) 82%, transparent);
  background: color-mix(in srgb, var(--brand) 14%, rgba(7,7,9,0.9));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.1),
    0 14px 38px rgba(0,0,0,0.4),
    0 0 30px color-mix(in srgb, var(--brand) 20%, transparent);
}
.social-dock__link:active { transform: translateY(-1px) scale(0.96); }

/* Restore the transparent winning cutout and give it a broad medal glow. */
.honors__scene {
  width: min(100%, 78rem);
  min-height: 0;
  margin: 0 auto clamp(3rem, 7vw, 5.5rem);
  padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(2.2rem, 5vw, 4rem);
  overflow: visible;
  isolation: isolate;
}

.honors__scene::before {
  content: "";
  position: absolute;
  inset: 18% 5% 10%;
  z-index: -1;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 50% 58%, rgba(226,202,160,0.36), rgba(201,168,106,0.14) 36%, rgba(18,108,88,0.09) 58%, transparent 76%);
  filter: blur(36px) saturate(128%);
  animation: winner-aura 8.6s var(--ease-soft) infinite;
  animation-play-state: paused;
}

.honors__scene::after {
  inset: auto auto clamp(2.35rem, 5vw, 4rem) 0;
  width: min(72%, 34rem);
  height: clamp(5.5rem, 14vw, 9rem);
  z-index: 2;
  background: radial-gradient(ellipse at 22% 62%, rgba(3,3,5,0.96), rgba(3,3,5,0.76) 42%, transparent 78%);
  filter: blur(2px);
}

@keyframes winner-aura {
  0%, 100% { transform: translate3d(-2%, 1%, 0) scale(0.93); opacity: 0.48; }
  44% { transform: translate3d(2%, -2%, 0) scale(1.07); opacity: 1; }
  72% { transform: translate3d(0, 1%, 0) scale(1.01); opacity: 0.72; }
}

.honors__scene-glow {
  inset: 19% 4% 8%;
  z-index: -1;
  border-radius: 50%;
  background: conic-gradient(from 25deg, transparent, rgba(201,168,106,0.16), transparent 32%, rgba(18,108,88,0.1), transparent 68%, rgba(226,202,160,0.12), transparent);
  filter: blur(44px);
  animation: winner-orbit 17s linear infinite;
  animation-play-state: paused;
}
.honors.is-motion-active .honors__scene::before,
.honors.is-motion-active .honors__scene-glow { animation-play-state: running; }
@keyframes winner-orbit { to { transform: rotate(360deg); } }

.honors__scene img {
  width: min(100%, 76rem);
  filter: drop-shadow(0 34px 50px rgba(0,0,0,0.72)) saturate(1.02) contrast(1.035);
}

.honors__scene figcaption {
  left: clamp(0.8rem, 3vw, 2.4rem);
  bottom: clamp(2.75rem, 6vw, 4.8rem);
  gap: 0.22rem;
  padding: 0.8rem 1rem;
  text-shadow: 0 2px 15px rgba(0,0,0,0.98);
}
.honors__scene figcaption span { color: var(--paper); }
.honors__scene figcaption i { color: rgba(244,241,236,0.76); font-weight: 400; }

/* Two stops, one clear season. */
.awards-ledger {
  position: relative;
  display: grid;
  grid-template-columns: minmax(18rem, 0.72fr) minmax(28rem, 1.28fr);
  align-items: start;
  gap: clamp(1rem, 2.4vw, 2rem);
}

.awards-ledger::before {
  content: "";
  position: absolute;
  left: 4.2rem;
  right: calc(50% + 4rem);
  top: 4.5rem;
  height: 1px;
  display: none;
}

.award-event {
  position: relative;
  padding: clamp(1.15rem, 2.5vw, 2rem);
  border: 1px solid rgba(244,241,236,0.09);
  border-radius: clamp(1rem, 2vw, 1.5rem);
  background:
    radial-gradient(circle at 12% 5%, rgba(201,168,106,0.09), transparent 34%),
    linear-gradient(145deg, rgba(244,241,236,0.034), rgba(244,241,236,0.008));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 34px 90px rgba(0,0,0,0.22);
}
.award-event--laval { background: radial-gradient(circle at 10% 8%, rgba(181,189,198,0.1), transparent 36%), linear-gradient(145deg, rgba(244,241,236,0.03), rgba(244,241,236,0.006)); }

.award-event__head {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1rem;
  padding-bottom: clamp(1.1rem, 2.5vw, 1.8rem);
  border-bottom: 1px solid var(--line);
}

.award-seal {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(4.8rem, 7vw, 6rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(201,168,106,0.12), transparent 68%);
}
.award-seal svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; opacity: 0.74; }
.award-seal b { position: relative; font-family: var(--serif); font-size: 1.45rem; font-weight: 300; }
.award-seal--gold { color: var(--gold-lift); box-shadow: 0 0 30px rgba(201,168,106,0.12); }
.award-seal--silver { color: #c0c6cc; box-shadow: 0 0 30px rgba(192,198,204,0.08); }

.award-event__date { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; margin-bottom: 0.3rem; font-size: 0.5rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }
.award-event__date i { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; border: 1px solid var(--line); border-radius: 50%; font-style: normal; color: var(--paper-38); }
.award-event__head h3 { margin-bottom: 0.35rem; font-size: clamp(2rem, 4vw, 3.2rem); }
.award-event__head > div > p:last-child { font-size: 0.72rem; line-height: 1.45; color: var(--paper-58); }
.award-event__head > div > p:last-child span { display: block; margin-top: 0.18rem; font-size: 0.48rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--paper-38); }

.award-results { display: grid; gap: 0.75rem; padding-top: 0.9rem; }
.award-results--paris { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.award-result {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.8rem;
  min-width: 0;
  padding: 1rem;
  border: 1px solid rgba(244,241,236,0.065);
  border-radius: 0.85rem;
  background: rgba(6,6,8,0.38);
  transition: transform 600ms var(--ease-out), border-color 600ms ease, background-color 600ms ease;
}
.award-result--winner { grid-column: 1 / -1; padding: clamp(1.15rem, 2vw, 1.5rem); border-color: rgba(201,168,106,0.24); background: linear-gradient(110deg, rgba(201,168,106,0.1), rgba(6,6,8,0.42) 54%); }
.award-result:hover { transform: translateY(-3px); border-color: rgba(201,168,106,0.28); background-color: rgba(201,168,106,0.05); }
.award-result p { margin-bottom: 0.32rem; font-size: 0.48rem; font-weight: 500; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); }
.award-result h4 { margin: 0; font-family: var(--serif); font-size: clamp(1.05rem, 1.8vw, 1.42rem); font-weight: 300; line-height: 1.08; color: var(--paper); }
.award-result > div > span { display: block; margin-top: 0.58rem; font-size: 0.7rem; line-height: 1.55; color: var(--paper-58); }
.award-result__dot { width: 0.48rem; height: 0.48rem; margin-top: 0.28rem; border: 1px solid var(--gold); border-radius: 50%; box-shadow: 0 0 12px var(--gold-40); }
.award-result__medal { position: relative; width: 1.1rem; height: 1.3rem; margin-top: 0.1rem; border-radius: 50%; background: linear-gradient(145deg, #edf0f2, #929aa2); box-shadow: 0 0 18px rgba(192,198,204,0.24); }
.award-result__medal::before,
.award-result__medal::after { content: ""; position: absolute; top: -0.62rem; width: 0.42rem; height: 0.85rem; background: #676e77; }
.award-result__medal::before { left: 0.08rem; transform: rotate(-15deg); }
.award-result__medal::after { right: 0.08rem; transform: rotate(15deg); }
.award-result__trophy { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border: 1px solid rgba(201,168,106,0.28); border-radius: 50%; color: var(--gold-lift); background: rgba(201,168,106,0.08); box-shadow: 0 0 24px rgba(201,168,106,0.12); }
.award-result__trophy svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }

/* Six images at a glance, then a second snap point. */
.strip { height: auto !important; padding-block: clamp(5rem, 12vh, 9rem); }
.strip__pin {
  position: relative;
  top: auto;
  height: auto;
  min-height: 0;
  grid-template-rows: auto auto auto;
  gap: clamp(1rem, 2.5vh, 1.8rem);
  padding: 0;
  overflow: visible;
}
.strip__viewport {
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: max(var(--gutter), var(--rail-w));
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  touch-action: pan-x pan-y;
}
.strip__viewport::-webkit-scrollbar { display: none; }
.strip__viewport::before,
.strip__viewport::after { display: none; }
.strip__viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; }

.strip__track {
  display: flex;
  align-items: stretch;
  gap: clamp(0.8rem, 2vw, 1.5rem);
  height: auto;
  padding-inline: max(var(--gutter), var(--rail-w));
  transform: none !important;
  will-change: auto;
}

.gallery-page {
  flex: 0 0 min(82vw, 78rem);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: clamp(0.7rem, 1.6vw, 1.15rem);
  height: min(68svh, 45rem);
  scroll-snap-align: center;
  scroll-snap-stop: always;
  perspective: 1100px;
}

.strip .plate {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 0.48rem;
  margin: 0;
  width: auto;
  min-width: 0;
  align-self: stretch;
  justify-self: stretch;
  opacity: 1;
  transform: none;
}

.strip .plate__hit {
  --rx: 0deg;
  --ry: 0deg;
  --gx: 50%;
  --gy: 50%;
  height: 100%;
  min-height: 0;
  border: 1px solid rgba(244,241,236,0.11);
  border-radius: clamp(0.65rem, 1.3vw, 1rem);
  background: rgba(10,10,12,0.88);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.045), 0 20px 55px rgba(0,0,0,0.35);
  transform: perspective(900px) rotateX(var(--rx)) rotateY(var(--ry)) translateZ(0);
  transform-style: preserve-3d;
  transition: transform 380ms var(--ease-out), border-color 500ms ease, box-shadow 500ms ease;
}

.strip .plate__hit::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(circle at var(--gx) var(--gy), rgba(255,238,197,0.2), transparent 34%);
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity 500ms ease;
}
.strip .plate__hit::after { z-index: 1; background: linear-gradient(180deg, transparent 38%, rgba(4,4,6,0.72) 100%); }
.strip .plate__hit img { transform: scale(1.025); filter: contrast(1.06) saturate(0.94) brightness(0.92); }
.strip .plate__hit:hover { border-color: rgba(226,202,160,0.46); box-shadow: inset 0 1px 0 rgba(255,255,255,0.09), 0 28px 72px rgba(0,0,0,0.46), 0 0 38px rgba(201,168,106,0.13); }
.strip .plate__hit:hover::before { opacity: 1; }
.strip .plate__hit:hover img { transform: scale(1.065); filter: contrast(1.04) saturate(1.05) brightness(1); }
.strip .plate figcaption { gap: 0.45rem; min-width: 0; font-size: clamp(0.52rem, 0.72vw, 0.68rem); line-height: 1.35; color: var(--paper-58); }
.strip .plate figcaption span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.strip .plate figcaption i { flex: 0 0 auto; }
.strip__hint { display: flex; align-items: center; gap: 0.8rem; color: var(--paper-38); }
.strip__hint::before { content: ""; width: 2rem; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }
.strip__hint::after { content: "›"; color: var(--gold); font-size: 1rem; animation: gallery-arrow 2.2s var(--ease-soft) infinite; }
.strip:not(.is-motion-active) .strip__hint::after { animation-play-state: paused; }
@keyframes gallery-arrow { 0%, 100% { transform: translateX(0); opacity: 0.42; } 50% { transform: translateX(0.45rem); opacity: 1; } }
.strip.is-nudging .gallery-page:first-child { animation: gallery-nudge 1.8s var(--ease-soft) both; }
@keyframes gallery-nudge { 0%, 100% { transform: translateX(0); } 30% { transform: translateX(-0.9rem); } 58% { transform: translateX(0.25rem); } 78% { transform: translateX(-0.4rem); } }

/* Contact choices now look and behave like choices. */
.contact__links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}
.contact__links li { min-width: 0; }
.contact__links a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
  min-height: 6rem;
  padding: 1rem;
  overflow: visible;
  border: 1px solid rgba(244,241,236,0.09);
  border-radius: 1rem;
  background: linear-gradient(135deg, rgba(244,241,236,0.03), rgba(244,241,236,0.008));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 22px 56px rgba(0,0,0,0.2);
  transition: transform 600ms var(--ease-out), border-color 600ms ease, background-color 600ms ease, box-shadow 600ms ease;
}
.contact__links a::after { display: none; }
.contact__links a:hover { transform: translateY(-3px); border-color: var(--gold-40); background: rgba(201,168,106,0.045); box-shadow: inset 0 1px 0 rgba(255,255,255,0.055), 0 28px 70px rgba(0,0,0,0.28), 0 0 35px rgba(201,168,106,0.06); }
.contact__links a span { transition: none; }
.contact-link__icon {
  display: grid !important;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid rgba(201,168,106,0.24);
  border-radius: 50%;
  color: var(--gold-lift);
  background: rgba(201,168,106,0.065);
  box-shadow: 0 0 24px rgba(201,168,106,0.08);
}
.contact-link__icon svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; }
.contact-link__copy { display: block !important; min-width: 0; }
.contact__links .contact-link__copy small { margin-bottom: 0.34rem; color: var(--gold); }
.contact__links .contact-link__copy strong { display: block; overflow: hidden; font-family: var(--serif); font-size: clamp(0.9rem, 1.35vw, 1.12rem); font-weight: 300; line-height: 1.2; letter-spacing: -0.01em; color: var(--paper); text-overflow: ellipsis; }
.contact-link__arrow { position: relative; width: 1.35rem; height: 1px; background: var(--gold); opacity: 0.72; transition: transform 600ms var(--ease-out), opacity 600ms ease; }
.contact-link__arrow::after { content: ""; position: absolute; top: -3px; right: 0; width: 6px; height: 6px; border-top: 1px solid var(--gold); border-right: 1px solid var(--gold); transform: rotate(45deg); }
.contact__links a:hover .contact-link__arrow { transform: translateX(0.25rem); opacity: 1; }

.footer { display: grid; grid-template-columns: 1fr auto; align-items: baseline; }
.footer__credit { grid-column: 1 / -1; margin-top: 1rem; padding-top: 1.2rem; border-top: 1px solid var(--line-soft); font-size: 0.54rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--paper-38); text-align: right; }
.footer__credit a { color: var(--gold); transition: color 500ms ease; }
.footer__credit a:hover { color: var(--gold-lift); }

@media (max-width: 62rem) {
  .hero.hero--portrait { min-height: 124svh; }
  .hero--portrait .hero__stage,
  .hero__arc { top: 42.5%; }
  .hero__statement { top: 55%; }
  .hero__creed { top: 66.5%; width: 100%; }
  .hero--portrait .hero__role,
  .hero__award { bottom: 5vh; }
  .awards-ledger { grid-template-columns: 1fr; }
  .awards-ledger::before { display: none; }
  .contact__links { grid-template-columns: 1fr; }
}

@media (max-width: 46rem) {
  .hero.hero--portrait { min-height: 118svh; }
  .hero__eyebrow { top: 5.6rem; }
  .hero__name { top: 15.5%; }
  .hero--portrait .hero__stage,
  .hero__arc { top: 43%; }
  .hero--portrait .hero__stage { width: min(80vw, 22rem); }
  .hero__arc { width: min(80vw, 22rem); }
  .hero__arc--two { width: min(91vw, 25rem); }
  .hero__statement { top: 53%; }
  .hero__creed { top: 61.5%; width: 100%; height: clamp(8.5rem, 16svh, 9.5rem); }
  .hero__creed .creed__figure { inset: -125% 0; }
  .hero__creed .creed__quote { padding-inline: 1rem; transform: translateY(-0.85rem); }
  .hero__creed .creed__quote p { max-width: 20ch; }
  .hero--portrait .hero__role { top: 84%; bottom: auto; }
  .hero__award { top: 90%; bottom: auto; }
  .hero--portrait .hero__role,
  .hero__award { opacity: 1; }

  .social-dock { right: max(0.8rem, env(safe-area-inset-right)); bottom: max(0.8rem, env(safe-area-inset-bottom)); gap: 0.42rem; }
  .social-dock__link { width: 2.8rem; height: 2.8rem; }

  .honors__scene { width: calc(100% + 1rem); margin-inline: -0.5rem; padding-block: 1.4rem 2.4rem; }
  .honors__scene::after { bottom: 1.8rem; width: 92%; height: 5.8rem; }
  .honors__scene figcaption { left: 0.3rem; bottom: 2.15rem; max-width: 88%; padding: 0.65rem 0.75rem; }
  .honors__scene figcaption span { font-size: 1.2rem; }
  .honors__scene figcaption i { font-size: 0.48rem; line-height: 1.5; letter-spacing: 0.12em; }

  .award-event { padding: 0.9rem; }
  .award-event__head { grid-template-columns: 4.4rem 1fr; }
  .award-seal { width: 4.4rem; }
  .award-event__head h3 { font-size: 2.15rem; }
  .award-results--paris { grid-template-columns: 1fr 1fr; gap: 0.55rem; }
  .award-result { display: block; padding: 0.78rem; }
  .award-result--winner { display: grid; grid-template-columns: auto 1fr; }
  .award-result__dot { display: block; margin: 0 0 0.65rem; }
  .award-result > div > span { font-size: 0.62rem; }
  .award-result:not(.award-result--winner) > div > span { display: none; }

  .strip { padding-block: clamp(4.5rem, 10vh, 6.5rem); }
  .strip__head { padding-inline: 1rem; }
  .strip__track { gap: 0.75rem; padding-inline: 1rem; }
  .gallery-page { flex-basis: calc(100vw - 2rem); height: clamp(18rem, 82vw, 21rem); gap: 0.55rem; }
  .strip .plate { gap: 0.28rem; }
  .strip .plate__hit { border-radius: 0.62rem; }
  .strip .plate figcaption { gap: 0.2rem; font-size: 0.45rem; letter-spacing: 0; }
  .strip .plate figcaption span { white-space: nowrap; }
  .strip__hint { display: flex; padding-inline: 1rem; font-size: 0.48rem; letter-spacing: 0.18em; }

  .contact__links { gap: 0.65rem; }
  .contact__links a { min-height: 5.25rem; }
  .contact__links .contact-link__copy strong { font-size: 1rem; }
  .footer { grid-template-columns: 1fr; }
  .footer__meta { justify-content: space-between; }
  .footer__credit { text-align: left; }
}

@media (max-width: 46rem) and (max-height: 720px) {
  .hero.hero--portrait { min-height: 128svh; }
  .hero__name { top: 16%; }
  .hero--portrait .hero__stage,
  .hero__arc { top: 44%; }
  .hero__statement { top: 53.5%; }
  .hero__creed { top: 62%; height: 7.1rem; }
  .hero__creed .creed__quote { transform: translateY(-2.9rem); }
  .hero__creed .creed__quote p { font-size: 1.85rem; }
  .hero__creed .creed__quote cite { margin-top: 0.4rem; }
  .hero--portrait .hero__role { top: 83.5%; }
  .hero__award { top: 91%; }
  .social-dock { right: max(0.75rem, env(safe-area-inset-right)); bottom: max(0.25rem, env(safe-area-inset-bottom)); gap: 0.32rem; }
  .social-dock__link { width: 2.25rem; height: 2.25rem; }
  .social-dock__link svg { width: 1rem; height: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ambient__wash,
  .hero--portrait .cut--hero,
  .hero--portrait .cut--hero::before,
  .hero--portrait .cut--hero::after,
  .hero__creed .creed__aura,
  .hero__creed .creed__quote::after,
  .honors__scene::before,
  .honors__scene-glow,
  .strip__hint::after,
  .strip.is-nudging .gallery-page:first-child { animation: none !important; }
  .strip .plate__hit { transform: none !important; }
}
