/* ============================================================
   ASSET PROJECT SOLUTIONS — black · gold · warm white
   ============================================================ */

:root{
  --black:      #070502;
  --black-2:    #0c0905;
  --black-soft: #120e08;
  --gold:       #c6a15b;
  --gold-bright:#e9cb8a;
  --gold-deep:  #8f7238;
  --gold-08:    rgba(198,161,91,.08);
  --gold-15:    rgba(198,161,91,.15);
  --gold-30:    rgba(198,161,91,.30);
  --white:      #f4eee1;
  --body:       rgba(244,238,225,.68);
  --body-dim:   rgba(244,238,225,.45);
  /* restrained warm grade so field photos sit on the black/gold palette; none to disable */
  --photo-grade:       saturate(.6) sepia(.14) brightness(.8) contrast(1.06);
  --font-display:'Antonio',sans-serif;
  --font-body:  'Manrope',sans-serif;
  --pad: clamp(1.25rem, 5vw, 6rem);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:auto; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

body{
  background:var(--black);
  color:var(--body);
  font-family:var(--font-body);
  font-weight:300;
  font-size:clamp(.95rem, .85rem + .3vw, 1.08rem);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
::selection{ background:var(--gold); color:var(--black); }

/* ---------- typography helpers ---------- */
.kicker{
  font-family:var(--font-body);
  font-weight:600;
  font-size:.68rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.4rem;
}
.h-display{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  color:var(--gold);
  font-size:clamp(2.6rem, 1.5rem + 6vw, 6.5rem);
  line-height:.98;
  letter-spacing:.015em;
}
.h-display--sm{ font-size:clamp(2rem, 1.2rem + 4vw, 4.4rem); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--font-body);
  font-weight:600; font-size:.72rem;
  letter-spacing:.32em; text-transform:uppercase;
  padding:1.05rem 2.4rem;
  border:1px solid var(--gold);
  color:var(--gold);
  background:transparent;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:color .5s cubic-bezier(.25,.1,.25,1);
}
.btn::before{
  content:""; position:absolute; inset:0;
  background:var(--gold);
  transform:scaleX(0); transform-origin:left;
  transition:transform .55s cubic-bezier(.65,.05,.36,1);
  z-index:0;
}
.btn:hover::before{ transform:scaleX(1); }
.btn:hover{ color:var(--black); }
.btn > *{ position:relative; z-index:1; }
.btn--gold{ }
.btn__arrow{ font-family:var(--font-body); letter-spacing:0; }
.btn:disabled{ opacity:.45; pointer-events:none; }

/* ============================================================
   PRELOADER
   ============================================================ */
.preloader{
  position:fixed; inset:0; z-index:1000;
  background:var(--black);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .9s ease, visibility .9s;
}
.preloader.is-done{ opacity:0; visibility:hidden; }
.preloader__mark{ text-align:center; color:var(--gold); }
.preloader__logo{ width:147px; height:auto; margin:0 auto 2rem; display:block; }
.preloader__bar{
  width:180px; height:1px; margin:0 auto 1.2rem;
  background:var(--gold-15); overflow:hidden;
}
.preloader__bar span{
  display:block; height:100%; width:0%;
  background:var(--gold);
  transition:width .3s ease;
}
.preloader__label{
  font-size:.6rem; letter-spacing:.5em; text-transform:uppercase;
  color:var(--body-dim); font-weight:500;
}

/* ============================================================
   NAVIGATION
   ============================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:900;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.1rem var(--pad);
  transition:background .6s ease, padding .6s ease, border-color .6s ease, backdrop-filter .6s ease;
  border-bottom:1px solid transparent;
  background:transparent;
}
.nav.is-scrolled{
  background:rgba(7,5,2,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--gold-15);
  padding-top:.7rem; padding-bottom:.7rem;
}
.nav__logo svg{ width:100px; height:auto; color:var(--gold); display:block; }
.nav__links{ display:flex; align-items:center; gap:2.4rem; }
.nav__links a{
  font-size:.66rem; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--body);
  position:relative;
  transition:color .4s ease;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:-6px;
  width:100%; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:right;
  transition:transform .45s cubic-bezier(.65,.05,.36,1);
}
.nav__links a:hover{ color:var(--gold-bright); }
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }
.nav__links a.nav__cta{
  border:1px solid var(--gold);
  color:var(--gold);
  padding:.65rem 1.3rem;
  transition:background .45s ease, color .45s ease;
}
.nav__links a.nav__cta::after{ display:none; }
.nav__links a.nav__cta:hover{ background:var(--gold); color:var(--black); }

.nav__burger{
  display:none;
  background:none; border:none; cursor:pointer;
  width:34px; height:24px; position:relative;
}
.nav__burger span{
  position:absolute; left:0; width:100%; height:1px;
  background:var(--gold);
  transition:transform .4s ease, top .4s ease, opacity .4s ease;
}
.nav__burger span:nth-child(1){ top:6px; }
.nav__burger span:nth-child(2){ top:17px; }
.nav__burger.is-open span:nth-child(1){ top:11px; transform:rotate(45deg); }
.nav__burger.is-open span:nth-child(2){ top:11px; transform:rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:890;
  background:rgba(7,5,2,.97);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transition:opacity .6s ease, visibility .6s;
}
.mobile-menu.is-open{ opacity:1; visibility:visible; }
.mobile-menu nav{ display:flex; flex-direction:column; gap:2.2rem; text-align:center; }
.mobile-menu a{
  font-family:var(--font-display);
  font-size:clamp(1.8rem, 8vw, 2.6rem);
  text-transform:uppercase;
  color:var(--white);
  letter-spacing:.06em;
  transition:color .4s ease;
}
.mobile-menu a:hover{ color:var(--gold); }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; }
.hero__stage{
  position:relative; height:100vh; width:100%;
  overflow:hidden;
  background:var(--black);
}
/* the scroll sequence: a camera move over the real photograph */
.hero__media{
  position:absolute; inset:0;
  will-change:transform;
  transform:translateZ(0);
}
.hero__photo{
  width:100%; height:100%;
  object-fit:cover; object-position:center 52%;
  display:block;
}
/* warm light rising over the machine as the visitor scrolls */
.hero__glow{
  position:absolute; inset:0; pointer-events:none; opacity:0;
  background:radial-gradient(60% 55% at 50% 52%, rgba(226,178,96,.30) 0%, rgba(198,161,91,.12) 45%, transparent 75%);
  mix-blend-mode:screen;
}
/* single soft pass of light across the casing */
.hero__sweep{
  position:absolute; top:-25%; bottom:-25%; left:-60%; width:70%;
  pointer-events:none; opacity:0;
  transform:rotate(8deg);
  background:linear-gradient(90deg, transparent 0%, rgba(233,203,138,.10) 35%, rgba(255,243,214,.20) 50%, rgba(233,203,138,.10) 65%, transparent 100%);
  filter:blur(22px);
  mix-blend-mode:screen;
}
.hero__shade{
  position:absolute; inset:0;
  background:var(--black);
  pointer-events:none;
}
.hero__vignette{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse at center, transparent 40%, rgba(7,5,2,.75) 100%),
    linear-gradient(to bottom, rgba(7,5,2,.55) 0%, transparent 25%, transparent 70%, rgba(7,5,2,.92) 100%);
}
.hero__content{
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  text-align:center;
  /* top clears the nav, bottom clears the scroll cue */
  padding:5.5rem var(--pad) 7.5rem;
  z-index:2;
}
.hero__eyebrow{
  font-size:.62rem; font-weight:600;
  letter-spacing:.5em; text-transform:uppercase;
  color:var(--body-dim);
  margin-bottom:clamp(1rem, 2.6vh, 2.2rem);
}
.hero__title{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  color:var(--gold);
  /* capped by screen height too, so the stack fits on laptop screens */
  font-size:clamp(3.2rem, min(2rem + 9vw, 12vh), 9.5rem);
  line-height:.95;
  letter-spacing:.01em;
}
.hero__title-line{ display:block; overflow:hidden; }
.hero__title-line span{ display:block; }
.hero__sub{
  margin-top:clamp(1rem, 2.4vh, 2rem);
  font-size:clamp(.8rem, .7rem + .5vw, 1.05rem);
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--body);
}
.hero__creed{
  margin-top:clamp(.8rem, 2vh, 1.6rem);
  font-size:clamp(.95rem, .85rem + .4vw, 1.2rem);
  color:var(--body-dim);
  line-height:1.6;
}
.hero__creed em{ font-style:normal; color:var(--white); }
.hero__content .btn{ margin-top:clamp(1.4rem, 3.4vh, 2.8rem); }
/* technical strip revealed over the machine mid-scroll */
.hero__specs{
  position:absolute; left:var(--pad); right:var(--pad); bottom:clamp(6rem,14vh,9rem);
  z-index:2; opacity:0; pointer-events:none;
  display:flex; flex-wrap:wrap; justify-content:center; gap:.9rem clamp(1.5rem,4vw,3.5rem);
  border-top:1px solid var(--gold-30);
  padding-top:1.1rem;
}
.hero__specs span{
  font-size:.6rem; font-weight:600;
  letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold);
  white-space:nowrap;
}
@media (max-width: 760px){
  .hero__specs span{ letter-spacing:.24em; white-space:normal; text-align:center; }
}
.hero__scrollcue{
  position:absolute; bottom:2.2rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.8rem;
  z-index:2;
  color:var(--gold);
}
.hero__scrollcue span{
  font-size:.58rem; font-weight:600; letter-spacing:.45em; text-transform:uppercase;
}
.hero__scrollcue i{
  width:1px; height:52px; background:var(--gold-30);
  position:relative; overflow:hidden;
}
.hero__scrollcue i::after{
  content:""; position:absolute; top:-40%; left:0;
  width:100%; height:40%;
  background:var(--gold);
  animation:cue 2.4s cubic-bezier(.65,.05,.36,1) infinite;
}
@keyframes cue{ 0%{ top:-40%; } 100%{ top:110%; } }
@media (max-height: 700px){
  .hero__scrollcue{ display:none; }
  .hero__content{ padding-bottom:1.5rem; }
}

/* ============================================================
   SECTION SHELL
   ============================================================ */
section{ position:relative; background:var(--black); }

/* ============================================================
   WHO WE ARE
   ============================================================ */
.who{ padding:clamp(6rem,12vw,11rem) var(--pad) 0; }
.who__inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2.5rem,6vw,6rem);
  align-items:center;
  max-width:1500px; margin:0 auto;
}
.who__statement{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(1.4rem, 1rem + 2vw, 2.4rem);
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--white);
  margin:2.2rem 0 1.8rem;
}
.who__copy p{ max-width:56ch; margin-bottom:1.2rem; }
.who__creed{ color:var(--gold-bright); font-weight:500; }
.who__media{ position:relative; }
.who__media-mask{
  overflow:hidden;
  border:1px solid var(--gold-15);
  aspect-ratio:4/3;
}
.who__media-mask img{
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.12);
  filter:var(--photo-grade);
  will-change:transform;
}
.who__media figcaption{
  margin-top:.9rem;
  font-size:.62rem; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold);
}
.who__principles{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(1.5rem,3vw,3rem);
  max-width:1500px;
  margin:clamp(5rem,9vw,8rem) auto 0;
  padding-bottom:clamp(6rem,12vw,11rem);
}
.principle{
  border-top:1px solid var(--gold-30);
  padding-top:1.8rem;
}
.principle__num{
  font-family:var(--font-display);
  color:var(--gold-deep);
  font-size:.95rem; letter-spacing:.15em;
}
.principle h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.2rem, 1rem + 1vw, 1.7rem);
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--gold);
  margin:.9rem 0 .8rem;
}
.principle p{ font-size:.95em; max-width:34ch; }

/* ============================================================
   SERVICES — pinned cinematic
   ============================================================ */
.services{ }
.services__pin{
  position:relative;
  height:100vh; overflow:hidden;
  background:var(--black);
}
.services__bgs{ position:absolute; inset:0; }
.services__bg{
  position:absolute; inset:-4%;
  background-size:cover; background-position:center;
  opacity:0;
  will-change:opacity, transform;
}
.services__bg:first-child{ opacity:1; }
.services__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(7,5,2,.92) 0%, rgba(7,5,2,.55) 45%, rgba(7,5,2,.25) 100%),
    linear-gradient(to bottom, rgba(7,5,2,.85) 0%, transparent 30%, transparent 75%, rgba(7,5,2,.9) 100%);
}
.services__head{
  position:absolute; top:clamp(5.5rem,10vh,8rem); left:var(--pad); z-index:3;
}
.services__slides{
  position:absolute; left:var(--pad); right:var(--pad);
  bottom:clamp(5rem,14vh,9rem);
  z-index:3;
  max-width:820px;
}
.service-slide{
  position:absolute; bottom:0; left:0; right:0;
  opacity:0; visibility:hidden;
}
.service-slide__num{
  font-family:var(--font-display);
  color:var(--gold-deep);
  font-size:.95rem; letter-spacing:.2em;
  display:block; margin-bottom:1rem;
}
.service-slide h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.9rem, 1.2rem + 3.4vw, 4rem);
  line-height:1.02;
  text-transform:uppercase;
  color:var(--gold);
  letter-spacing:.02em;
  margin-bottom:1.1rem;
}
.service-slide p{ max-width:52ch; color:var(--body); }
.services__progress{
  position:absolute; left:var(--pad); bottom:clamp(2.2rem,6vh,3.4rem);
  width:min(340px, 40vw); height:1px;
  background:var(--gold-15); z-index:3;
}
.services__progress span{
  display:block; height:100%; width:0%;
  background:var(--gold);
}

/* ============================================================
   ADDITIONAL CAPABILITIES
   ============================================================ */
.caps{ padding:clamp(6rem,12vw,10rem) var(--pad); }
.caps__head{ max-width:1500px; margin:0 auto 4rem; }
.caps__grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(2rem,4vw,4rem);
  max-width:1500px; margin:0 auto;
}
.caps__col{
  border-top:1px solid var(--gold-30);
  padding-top:1.8rem;
}
.caps__col h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.15rem, 1rem + .8vw, 1.55rem);
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--gold);
  margin-bottom:1.4rem;
  min-height:2.6em;
}
.caps__col li{
  padding:.65rem 0;
  border-bottom:1px solid var(--gold-08);
  font-size:.94em;
  position:relative;
  padding-left:1.4rem;
}
.caps__col li::before{
  content:""; position:absolute; left:0; top:1.25em;
  width:.55rem; height:1px; background:var(--gold);
}

/* ============================================================
   ROTATING EQUIPMENT
   ============================================================ */
.rotating{
  position:relative; overflow:hidden;
  padding:clamp(7rem,14vw,13rem) var(--pad);
}
.rotating__bg{ position:absolute; inset:0; }
.rotating__bg img{
  width:100%; height:118%; object-fit:cover;
  opacity:.4;
  will-change:transform;
}
.rotating__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(to bottom, var(--black) 0%, rgba(7,5,2,.45) 30%, rgba(7,5,2,.55) 70%, var(--black) 100%),
    linear-gradient(to right, rgba(7,5,2,.85) 0%, rgba(7,5,2,.3) 60%, rgba(7,5,2,.6) 100%);
}
.rotating__inner{ position:relative; z-index:2; max-width:1500px; margin:0 auto; }
.rotating__cols{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
  gap:clamp(2rem,5vw,5rem);
  margin-top:clamp(3rem,6vw,5rem);
  max-width:1000px;
}
.rotating__group h4{
  font-size:.68rem; font-weight:600;
  letter-spacing:.42em; text-transform:uppercase;
  color:var(--body-dim);
  margin-bottom:1.4rem;
}
.rotating__list li{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(1.15rem, 1rem + 1vw, 1.8rem);
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--white);
  padding:.75rem 0;
  border-bottom:1px solid var(--gold-15);
  transition:color .4s ease, padding-left .4s ease;
}
.rotating__list li:hover{ color:var(--gold-bright); padding-left:.6rem; }

/* ============================================================
   WHO WE WORK WITH
   ============================================================ */
.clients{
  padding:clamp(7rem,13vw,12rem) var(--pad);
  text-align:left;
  max-width:none;
}
.clients .kicker, .clients .h-display{ max-width:1500px; margin-left:auto; margin-right:auto; }
.clients .kicker{ display:block; }
.clients__list{
  max-width:1500px; margin:clamp(3rem,6vw,5rem) auto 0;
}
.clients__list li{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(2.4rem, 1.4rem + 6vw, 6.4rem);
  line-height:1.14;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--white);
  border-bottom:1px solid var(--gold-15);
  padding:1rem 0;
  display:flex; align-items:baseline; gap:1.6rem;
  transition:color .5s ease, padding-left .5s ease;
}
.clients__list li::before{
  content:counter(client, decimal-leading-zero);
  counter-increment:client;
  font-size:.9rem; color:var(--gold-deep);
  font-family:var(--font-display);
  letter-spacing:.15em;
}
.clients__list{ counter-reset:client; }
.clients__list li:hover{ color:var(--gold-bright); padding-left:1rem; }

/* ============================================================
   QUOTE
   ============================================================ */
.quote{ padding:clamp(6rem,12vw,10rem) var(--pad) clamp(4rem,7vw,6rem); }
.quote__head{ max-width:1100px; margin:0 auto clamp(3rem,6vw,4.5rem); }
.quote__sub{ margin-top:1.6rem; max-width:52ch; }
.quote__form{
  max-width:1100px; margin:0 auto;
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:2rem 2.5rem;
}
.field{ display:flex; flex-direction:column; gap:.6rem; position:relative; }
.field--full{ grid-column:1 / -1; }
.field label{
  font-size:.62rem; font-weight:700;
  letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold);
}
.field label i{ font-style:normal; color:var(--gold-bright); margin-left:.2rem; }
.field input, .field select, .field textarea{
  background:var(--black-2);
  border:1px solid var(--gold-15);
  color:var(--white);
  font-family:var(--font-body);
  font-weight:300;
  font-size:1rem;
  padding:.95rem 1.1rem;
  outline:none;
  border-radius:0;
  transition:border-color .4s ease, background .4s ease;
  width:100%;
  appearance:none;
  -webkit-appearance:none;
}
.field textarea{ resize:vertical; min-height:9rem; }
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--gold);
  background:var(--black-soft);
}
.field input::placeholder, .field textarea::placeholder{ color:var(--body-dim); }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea{
  border-color:rgba(233,203,138,.85);
  background:rgba(198,161,91,.05);
}
.field__err{
  font-size:.7rem; color:var(--gold-bright);
  letter-spacing:.08em;
  min-height:1em;
  opacity:0; transition:opacity .3s ease;
}
.field.is-invalid .field__err{ opacity:1; }
.select-wrap{ position:relative; }
.select-wrap::after{
  content:""; position:absolute; right:1.1rem; top:50%;
  width:.55rem; height:.55rem;
  border-right:1px solid var(--gold); border-bottom:1px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
}
.select-wrap select{ padding-right:2.6rem; cursor:pointer; }
.field select option{ background:var(--black-2); color:var(--white); }
.field--hp{ position:absolute !important; left:-9999px; opacity:0; height:0; overflow:hidden; }
.quote__actions{ margin-top:.5rem; align-items:flex-start; }
.quote__error{
  color:var(--gold-bright);
  font-size:.9rem;
  border-left:2px solid var(--gold);
  padding-left:1rem;
}
.quote__success{
  max-width:1100px; margin:0 auto;
  border:1px solid var(--gold-30);
  padding:clamp(2.5rem,6vw,4.5rem);
  text-align:center;
}
.quote__success h3{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1.8rem, 1.2rem + 2.6vw, 3.2rem);
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--gold);
  margin-bottom:1.2rem;
}
.quote__success p{ max-width:52ch; margin:0 auto; }

/* contact */
.contact{
  max-width:1100px;
  margin:clamp(4rem,8vw,6rem) auto 0;
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:2rem;
  border-top:1px solid var(--gold-15);
  padding-top:2.6rem;
}
.contact__item{ display:flex; flex-direction:column; gap:.5rem; }
.contact__label{
  font-size:.58rem; font-weight:700;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--gold);
}
.contact__value{ color:var(--body); font-size:.98rem; transition:color .35s ease; }
a.contact__value:hover{ color:var(--gold-bright); }

/* ============================================================
   FINALE
   ============================================================ */
.finale{ }
.finale__pin{
  position:relative; height:100vh; overflow:hidden;
  background:var(--black);
  display:flex; align-items:center; justify-content:center;
}
.finale__bg{ position:absolute; inset:0; }
.finale__photo{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center 50%;
  display:block;
  will-change:transform, opacity;
}
.finale__bg::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse at center, transparent 20%, rgba(7,5,2,.8) 85%),
             linear-gradient(to bottom, rgba(7,5,2,.6), transparent 30%, transparent 65%, var(--black));
}
.finale__content{
  position:relative; z-index:2;
  text-align:center;
  padding:0 var(--pad);
}
.finale__title{
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(2.2rem, 1.3rem + 5.5vw, 6rem);
  line-height:1.05;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:var(--gold);
}
.finale__brand{
  margin:2rem 0 2.6rem;
  font-size:.8rem; font-weight:500;
  letter-spacing:.4em; text-transform:uppercase;
  color:var(--body);
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
  background:var(--black);
  border-top:1px solid var(--gold-08);
  padding:2.6rem var(--pad);
  display:flex; align-items:center; justify-content:space-between;
  gap:2rem; flex-wrap:wrap;
}
.footer__mark{ width:84px; height:auto; color:var(--gold-deep); }
.footer p{
  font-size:.68rem; letter-spacing:.12em;
  color:var(--body-dim);
}

/* ============================================================
   REVEAL PRIMITIVES (JS adds .in)
   ============================================================ */
.fade-up{ opacity:0; transform:translateY(46px); }
html.no-js .fade-up, html.reduced .fade-up{ opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px){
  .who__inner{ grid-template-columns:1fr; }
  .who__media{ order:-1; }
  .caps__grid{ grid-template-columns:1fr; gap:2.6rem; }
  .caps__col h3{ min-height:0; }
  .who__principles{ grid-template-columns:1fr; gap:2.4rem; }
}
@media (max-width: 760px){
  .nav__links{ display:none; }
  .nav__burger{ display:block; }
  .quote__form{ grid-template-columns:1fr; }
  .contact{ grid-template-columns:1fr; gap:1.6rem; }
  .rotating__cols{ grid-template-columns:1fr; }
  .services__slides{ bottom:clamp(4.5rem,12vh,7rem); }
  .service-slide h3{ font-size:clamp(1.6rem, 8vw, 2.4rem); }
  .footer{ justify-content:center; text-align:center; }
}
