/* styles.css */

/* =========================
   Design Tokens
========================= */
:root{
  --bg:#0B0B0D;
  --bg2:#070709;

  --text: rgba(246,245,242,.92);
  --muted: rgba(246,245,242,.66);
  --muted2: rgba(246,245,242,.48);

  --stroke: rgba(246,245,242,.10);
  --stroke2: rgba(246,245,242,.06);

  --champ:#C6B89E;
  --metal:#8A8F98;

  --serif:"Fraunces", ui-serif, Georgia, serif;
  --sans:"Inter", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  --radius:24px;
  --radius2:18px;

  --shadow: 0 18px 60px rgba(0,0,0,.55);
  --shadow2: 0 12px 40px rgba(0,0,0,.38);

  --container: 1120px;

  --surface: rgba(11,11,13,.96);
  --surface-panel: rgba(14,14,18,.94);

  /* Driven by JS */
  --logoBlur: 0px;
  --headerA: .56;
  --bgY: 0px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; width:100%; }
html{ scroll-behavior:smooth; overflow-x:hidden; background-color: var(--bg); }
body{
  margin:0;
  background:
    radial-gradient(1200px 760px at 30% 20%, rgba(198,184,158,.06), transparent 62%),
    radial-gradient(900px 560px at 80% 32%, rgba(138,143,152,.04), transparent 66%),
    linear-gradient(180deg, var(--bg), var(--bg2));
  background-color: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  letter-spacing: .2px;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  overflow-x:hidden;
  overscroll-behavior-x: none;
}
@supports (overflow: clip){
  html, body{ overflow-x: clip; }
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline: 2px solid rgba(198,184,158,.6);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(198,184,158,.12);
}

/* =========================
   Subtle Grain Overlay
========================= */
.grain{
  position:fixed; inset:0;
  pointer-events:none;
  opacity:.10;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
  transform: translateZ(0);
}

/* =========================
   Cursor Glow (Lux, Very Subtle)
========================= */
.cursor-glow{
  position:fixed;
  width:520px; height:520px;
  left:0; top:0;
  transform: translate(-50%,-50%);
  border-radius:999px;
  pointer-events:none;
  background: radial-gradient(circle at center,
    rgba(198,184,158,.11),
    rgba(138,143,152,.06) 35%,
    transparent 68%);
  filter: blur(4px);
  opacity:.9;
  z-index:0;
}
@media (hover: none){
  .cursor-glow{ display:none; }
}

/* =========================
   Scroll Progress
========================= */
.scroll-progress{
  position:fixed; top:0; left:0; right:0;
  height:1px;
  background: transparent;
  z-index:9999;
  opacity:.7;
}
.scroll-progress span{
  display:block;
  height:100%;
  width:0%;
  background: linear-gradient(90deg, rgba(198,184,158,.0), rgba(198,184,158,.85), rgba(246,245,242,.55));
}

/* =========================
   Layout
========================= */
.container{
  width:min(var(--container), calc(100% - 48px));
  margin:0 auto;
  position:relative;
  z-index:1;
}
.section{
  padding: 108px 0;
  border-top: 1px solid var(--stroke2);
  background: var(--surface);
}
.section-solid{
  background: var(--surface);
}
.section-alt{
  background: var(--surface);
}
.grid-2{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 42px;
  align-items:start;
}
@media (max-width: 900px){
  .grid-2{ grid-template-columns:1fr; gap:26px; }
  .section{ padding: 86px 0; }
}

/* =========================
   Typography
========================= */
.section-title{
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: .2px;
  margin:0 0 14px 0;
  font-size: clamp(26px, 3.2vw, 44px);
  line-height: 1.08;
}
.lead{
  margin:0;
  color: var(--muted);
  font-size: 16.5px;
  line-height: 1.65;
  max-width: 62ch;
}
.muted{ color: var(--muted); }
.fine{
  margin: 12px 0 0 0;
  color: var(--muted2);
  font-size: 12.5px;
  line-height: 1.5;
}
.section-kicker{
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(246,245,242,.55);
  margin-bottom: 12px;
}

.manifest-copy .section-title,
.manifest-copy .lead{
  max-width: 48ch;
}

/* =========================
   Section Head
========================= */
.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  margin-bottom: 28px;
}
.section-head .muted{ max-width: 62ch; }
@media (max-width: 900px){
  .section-head{ flex-direction:column; align-items:flex-start; }
}

/* =========================
   Header
========================= */
.header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:999;
  padding: 16px 0;
  background: rgba(8,9,11, var(--headerA));
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(246,245,242,.06);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  text-decoration:none;
  color: var(--text);
}
.brand-mark{
  width: 14px; height: 14px;
  border-radius: 4px;
  background-image: url("assets/X_logo_tab.PNG");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: transparent;
  box-shadow: 0 0 0 6px rgba(198,184,158,.06);
}
.brand-text{
  font-size: 12.5px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(246,245,242,.86);
}

/* =========================
   Nav
========================= */
.nav{ display:flex; align-items:center; }
.nav-links{ display:flex; align-items:center; gap: 18px; }
.nav a{
  color: rgba(246,245,242,.76);
  text-decoration:none;
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 10px 10px;
  border-radius: 999px;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.nav a:hover{ color: rgba(246,245,242,.95); background: rgba(255,255,255,.04); }

.pill{
  border: 1px solid rgba(198,184,158,.30);
  background: linear-gradient(180deg, rgba(198,184,158,.12), rgba(198,184,158,.04));
}
.pill:hover{
  border-color: rgba(198,184,158,.55);
  background: rgba(198,184,158,.16);
}

.nav-toggle{
  display:none;
  width:42px; height:42px;
  border-radius: 12px;
  border: 1px solid rgba(246,245,242,.10);
  background: rgba(255,255,255,.03);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
  position:relative;
}
.nav-toggle span{
  display:block;
  width:18px; height:1px;
  background: rgba(246,245,242,.8);
}
@media (max-width: 900px){
  .nav-toggle{ display:flex; }
  .nav-links{
    position:fixed;
    top: 70px;
    right: 18px;
    left: 18px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap: 6px;
    padding: 12px;
    border-radius: 18px;
    border: 1px solid rgba(246,245,242,.08);
    background: rgba(10,10,12,.88);
    backdrop-filter: blur(14px);
    box-shadow: var(--shadow2);
  }
  .nav-links a{ text-align:center; }
  .nav-links.open{ display:flex; }
}
@media (max-width: 900px){
  .nav-toggle::after{
    content:"Menu";
    position:absolute;
    left:50%;
    bottom:-12px;
    transform: translateX(-50%);
    font-size: 9px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: rgba(246,245,242,.55);
    pointer-events:none;
  }
}

/* =========================
   Hero (Cinematic + Fluid Background)
========================= */
.hero{
  min-height: 100svh;
  display:flex;
  align-items:center;
  position:relative;
  padding-top: 88px;
}

.hero-bg{
  position:absolute;
  inset:0;
  overflow:hidden;
  z-index:0;
}

/* Cinematic background image layer (no frame, no edges) */
.hero-bg::before{
  content:"";
  position:absolute;
  inset:-10%;
  background-image: url("assets/hero-bg.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  opacity: .58;
  transform: translate3d(0, var(--bgY), 0) scale(1.06);
  will-change: transform;

  /* Blend into the layout (not “pasted”) */
  filter: saturate(.92) contrast(1.06) brightness(.82);

  /* Soft falloff so the image feels infinite */
  mask-image: radial-gradient(
    circle at 50% 40%,
    black 0%,
    black 46%,
    transparent 78%
  );

  z-index:0;
}
.hero-bg::after{
  content:"";
  position:absolute;
  inset:-20%;
  background: radial-gradient(900px 520px at 45% 40%, rgba(198,184,158,.12), transparent 62%);
  opacity:.35;
  mix-blend-mode: screen;
  pointer-events:none;
}

/* Grid lines: extremely subtle (avoid template feel) */
.lines{
  position:absolute; inset:-20%;
  opacity:.10;
  background:
    repeating-linear-gradient(90deg, rgba(246,245,242,.06) 0 1px, transparent 1px 120px),
    repeating-linear-gradient(0deg, rgba(246,245,242,.05) 0 1px, transparent 1px 120px);
  transform: rotate(-6deg);
  mask-image: radial-gradient(circle at 45% 45%, black 0 34%, transparent 70%);
}

.orb{
  position:absolute;
  border-radius:999px;
  filter: blur(2px);
  opacity:.85;
  animation: float 10s ease-in-out infinite;
}
.orb-1{
  width: 520px; height: 520px;
  left: -120px; top: 80px;
  background: radial-gradient(circle at 30% 30%, rgba(198,184,158,.16), rgba(198,184,158,.05), transparent 65%);
}
.orb-2{
  width: 620px; height: 620px;
  right: -220px; top: 40px;
  background: radial-gradient(circle at 30% 30%, rgba(138,143,152,.14), rgba(138,143,152,.05), transparent 65%);
  animation-duration: 12s;
}
.orb-3{
  width: 520px; height: 520px;
  right: 10%; bottom: -240px;
  background: radial-gradient(circle at 30% 30%, rgba(246,245,242,.09), rgba(246,245,242,.03), transparent 65%);
  animation-duration: 13s;
}

@keyframes float{
  0%,100%{ transform: translate3d(0,0,0); }
  50%{ transform: translate3d(0,-18px,0); }
}

/* Hero kicker */
.kicker{
  display:flex; align-items:center; gap:12px;
  color: rgba(246,245,242,.62);
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.kicker .dot{
  width:14px; height:14px; border-radius:4px;
  background-image: url("assets/X_logo_tab.PNG");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: transparent;
  box-shadow: 0 0 0 6px rgba(198,184,158,.06);
}

/* Hero copy */
.hero-title{
  font-family: var(--serif);
  font-weight: 400;
  margin: 18px 0 14px 0;
  font-size: clamp(44px, 6vw, 78px);
  line-height: 1.02;
  letter-spacing: .01em;
}
.accent{ color: rgba(198,184,158,.92); }

.hero-subtitle{
  margin: 0;
  color: rgba(246,245,242,.62);
  font-size: 16.8px;
  line-height: 1.7;
  max-width: 58ch;
}

.hero-cta{
  display:flex;
  gap: 14px;
  align-items:center;
  margin-top: 26px;
  flex-wrap:wrap;
}

.hero-meta{
  margin-top: 34px;
  color: rgba(246,245,242,.52);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap:wrap;
}
.hero-meta .sep{ opacity:.35; }

.hero-proof{
  margin-top: 14px;
  color: rgba(246,245,242,.44);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap:wrap;
}
.hero-proof .sep{ opacity:.35; }

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none;
  color: rgba(246,245,242,.9);
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 14px 18px;
  border: 1px solid rgba(246,245,242,.12);
  background: rgba(255,255,255,.025);
  cursor:pointer;
  transition: transform .15s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
  user-select:none;
  white-space: nowrap;
}
.btn:hover{
  transform: translateY(-1px);
  border-color: rgba(198,184,158,.46);
  background: rgba(255,255,255,.05);
  box-shadow: 0 16px 44px rgba(0,0,0,.45);
}
.btn:active{ transform: translateY(0px); }

.btn.primary{
  border-color: rgba(198,184,158,.34);
  background: linear-gradient(180deg, rgba(198,184,158,.16), rgba(198,184,158,.06));
}
.btn.ghost{
  border-color: rgba(246,245,242,.12);
  background: rgba(255,255,255,.02);
}
.btn.full{ width:100%; }
@media (hover: hover), (pointer: fine){
  .btn.primary:hover{
    border-color: rgba(198,184,158,.62);
    background: linear-gradient(180deg, rgba(198,184,158,.20), rgba(198,184,158,.08));
    box-shadow:
      0 22px 60px rgba(0,0,0,.55),
      0 0 0 1px rgba(198,184,158,.20);
  }
  .btn.ghost:hover{
    border-color: rgba(198,184,158,.30);
  }
}

/* Scroll hint */
.scroll-hint{
  position:absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 10px;
  color: rgba(246,245,242,.52);
  text-decoration:none;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  z-index:2;
}
.scroll-hint i{
  width:1px; height: 28px;
  background: linear-gradient(180deg, rgba(198,184,158,.0), rgba(198,184,158,.55), rgba(246,245,242,.0));
  position:relative;
  overflow:hidden;
}
.scroll-hint i::after{
  content:"";
  position:absolute;
  left:0; top:-12px;
  width:1px; height: 12px;
  background: rgba(246,245,242,.8);
  animation: scrollLine 1.5s ease-in-out infinite;
  opacity:.55;
}
@keyframes scrollLine{
  0%{ transform: translateY(0); opacity:.0; }
  20%{ opacity:.55; }
  100%{ transform: translateY(42px); opacity:0; }
}

/* =========================
   Apple-like Hero Stage
========================= */
.hero-product{ padding-top: 88px; }

.hero-stage{
  height: 180vh;
  position: relative;
}

.hero-sticky{
  position: sticky;
  top: 88px;
  height: calc(100vh - 88px);
  display: grid;
  align-items: center;
  z-index:2;
}

.hero-sticky-inner{
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 36px;
  align-items: center;
}

@media (max-width: 900px){
  .hero-sticky-inner{
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .hero-stage{ height: auto; }
  .hero-sticky{
    position: static;
    height: auto;
  }
}

.hero-logo-wrap{
  position: relative;
  display: grid;
  place-items: center;
  padding: 0;
  z-index:2;
}

/* The logo stays “integrated” and never looks framed */
.hero-logo{
  width: min(820px, 92vw);
  max-width: 820px;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;

  transform-origin: 50% 50%;
  transform: translateZ(0) scale(1);
  will-change: transform, opacity;

  filter:
    saturate(.92)
    contrast(1.06)
    drop-shadow(0 24px 76px rgba(0,0,0,.62))
    drop-shadow(0 0 36px rgba(198,184,158,.08))
    blur(var(--logoBlur));
}

/* Optional vignette around the logo zone for “editorial spotlight” */
.hero-logo-wrap::before{
  content:none;
}

.hero-copy{ will-change: transform, opacity; z-index:2; }

@media (max-width: 900px){
  .hero-logo{ width: min(720px, 95vw); }
  .hero-logo{
    margin: 0 auto;
    position: relative;
    left: 0;
  }
}
@media (max-width: 640px){
  .hero-logo{ left: -3%; }
}

/* =========================
   Cards
========================= */
.card{
  border-radius: var(--radius);
  border: 1px solid rgba(246,245,242,.08);
  background: var(--surface-panel);
  box-shadow: var(--shadow2);
  padding: 26px;
  position:relative;
  overflow:hidden;
}
.card-quote{
  margin:0 0 18px 0;
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.35;
  color: rgba(246,245,242,.86);
}
.card-row{
  display:flex;
  gap: 10px;
  flex-wrap:wrap;
}
.tag{
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(246,245,242,.62);
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(246,245,242,.10);
  background: rgba(255,255,255,.02);
}

/* =========================
   Authority
========================= */
.authority-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 22px;
  align-items: stretch;
}
@media (max-width: 900px){
  .authority-grid{ grid-template-columns: 1fr; }
}
.authority-card{
  border-radius: var(--radius);
  border: 1px solid rgba(246,245,242,.08);
  background: var(--surface-panel);
  box-shadow: var(--shadow2);
  padding: 22px;
  position:relative;
  overflow:hidden;
}
.authority-kicker{
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(246,245,242,.55);
  margin-bottom: 12px;
}
.authority-list{
  margin: 0;
  padding-left: 18px;
  color: rgba(246,245,242,.68);
  line-height: 1.7;
  font-size: 14px;
}
.authority-note{
  margin-top: 16px;
  color: rgba(246,245,242,.52);
  font-size: 12.5px;
  letter-spacing: .08em;
}

.card::after,
.division::after,
.authority-card::after,
.timeline::after,
.contact-card::after,
.form-luxe::after{
  content:"";
  position:absolute;
  inset:-40%;
  background: linear-gradient(120deg, transparent 40%, rgba(255,255,255,.10) 50%, transparent 60%);
  transform: translateX(-60%);
  animation: sheen 22s linear infinite;
  opacity:.08;
  pointer-events:none;
}

@keyframes sheen{
  0%{ transform: translateX(-60%); }
  100%{ transform: translateX(60%); }
}
.logo-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
}
@media (max-width: 520px){
  .logo-grid{ grid-template-columns: 1fr; }
}
.logo-chip{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height: 58px;
  border-radius: 16px;
  border: 1px solid rgba(246,245,242,.08);
  background: var(--surface-panel);
  color: rgba(246,245,242,.72);
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
}
@media (hover: hover), (pointer: fine){
  .card,
  .authority-card,
  .timeline,
  .metric,
  .deliverable,
  .logo-chip{
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  }
  .card:hover,
  .authority-card:hover,
  .timeline:hover,
  .metric:hover,
  .deliverable:hover,
  .logo-chip:hover{
    transform: translateY(-2px);
    border-color: rgba(198,184,158,.18);
    box-shadow: 0 22px 60px rgba(0,0,0,.45);
  }
}

/* =========================
   Editorial Gallery
========================= */
.editorial{
  background: var(--surface);
}
.editorial-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 16px;
  grid-auto-flow: dense;
}
@media (max-width: 980px){
  .editorial-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 700px){
  .editorial-grid{ grid-template-columns: 1fr; }
  .editorial-item.is-wide{
    grid-column: auto;
    aspect-ratio: 4 / 5;
  }
}
.editorial-item{
  margin:0;
  position:relative;
  border-radius: 20px;
  overflow:hidden;
  border: 1px solid rgba(246,245,242,.08);
  background: var(--surface-panel);
  box-shadow: var(--shadow2);
  aspect-ratio: 4 / 5;
  display:block;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.editorial-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter: saturate(.95) contrast(1.04);
  transform: scale(1);
  transition: transform .7s ease;
}
.editorial-item::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,.0) 40%, rgba(0,0,0,.55));
  opacity:.9;
  pointer-events:none;
}
.editorial-item figcaption{
  position:absolute;
  left: 16px;
  bottom: 14px;
  z-index:2;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(246,245,242,.86);
}
.editorial-item:hover img{
  transform: scale(1.03);
}
.editorial-item:hover{
  transform: translateY(-4px);
  border-color: rgba(198,184,158,.28);
  box-shadow: 0 22px 60px rgba(0,0,0,.45);
}
.editorial-item.is-wide{
  grid-column: span 2;
  aspect-ratio: 16 / 9;
}
.editorial-item.is-square{
  aspect-ratio: 1 / 1;
}
.editorial-item.is-tall{
  aspect-ratio: 3 / 4;
}
.editorial-cta{
  margin-top: 24px;
  display:flex;
  justify-content:flex-start;
}

/* =========================
   Divisions
========================= */
.cards-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 900px){
  .cards-3{ grid-template-columns:1fr; }
}

.division{
  border-radius: var(--radius);
  border: 1px solid rgba(246,245,242,.08);
  background: var(--surface-panel);
  padding: 22px 22px 20px;
  box-shadow: var(--shadow2);
  position:relative;
  overflow:hidden;
  transition: transform .2s ease, border-color .2s ease;
}
.division::before{
  content:"";
  position:absolute;
  inset:-1px;
  background: radial-gradient(340px 220px at 20% 20%, rgba(198,184,158,.14), transparent 60%);
  opacity:.0;
  transition: opacity .25s ease;
  pointer-events:none;
}
.division:hover{
  transform: translateY(-3px);
  border-color: rgba(198,184,158,.22);
}
.division:hover::before{ opacity:1; }
.division-top{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}
.division h3{
  margin:0;
  font-size: 13px;
  letter-spacing: .26em;
  text-transform: uppercase;
  font-weight: 600;
}
.division-id{
  font-size: 12px;
  color: rgba(198,184,158,.85);
  letter-spacing: .22em;
}
.division p{
  margin: 14px 0 12px 0;
  color: rgba(246,245,242,.72);
  line-height: 1.6;
}
.mini{
  margin:0;
  padding-left: 18px;
  color: rgba(246,245,242,.60);
  line-height: 1.7;
  font-size: 13px;
}

/* =========================
   Approach
========================= */
.stack{ margin-top: 18px; }
.pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin: 16px 0 20px;
}
.pill2{
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(246,245,242,.10);
  background: rgba(255,255,255,.02);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(246,245,242,.62);
}
.metrics{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
@media (max-width: 520px){
  .metrics{ grid-template-columns:1fr; }
}
.metric{
  border-radius: 18px;
  border: 1px solid rgba(246,245,242,.09);
  background: var(--surface-panel);
  padding: 16px;
}
.metric .num{
  font-family: var(--serif);
  font-size: 30px;
  color: rgba(198,184,158,.92);
  line-height: 1;
  margin-bottom: 8px;
}
.metric .lbl{
  color: rgba(246,245,242,.60);
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.deliverables{
  margin-top: 20px;
  border-top: 1px solid rgba(246,245,242,.06);
  padding-top: 16px;
}
.deliverables-head{
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(246,245,242,.52);
  margin-bottom: 12px;
}
.deliverables-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.deliverable{
  border-radius: 16px;
  border: 1px solid rgba(246,245,242,.08);
  background: rgba(255,255,255,.02);
  padding: 14px 16px;
}
.deliverable-title{
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(246,245,242,.78);
  margin-bottom: 6px;
}
.deliverable p{
  margin:0;
  color: rgba(246,245,242,.62);
  font-size: 13px;
  line-height: 1.6;
}

/* =========================
   Timeline
========================= */
.timeline{
  border-radius: var(--radius);
  border: 1px solid rgba(246,245,242,.08);
  background: var(--surface-panel);
  box-shadow: var(--shadow2);
  padding: 20px;
  position:relative;
  overflow:hidden;
}
.step{
  display:flex;
  gap: 14px;
  padding: 14px 10px;
  border-bottom: 1px solid rgba(246,245,242,.08);
}
.step:last-child{ border-bottom:none; }
.step-n{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display:grid;
  place-items:center;
  border: 1px solid rgba(198,184,158,.28);
  color: rgba(198,184,158,.85);
  font-size: 11px;
  letter-spacing: .12em;
}
.step h4{
  margin:0 0 6px 0;
  font-size: 13px;
  letter-spacing: .20em;
  text-transform: uppercase;
}
.step p{
  margin:0;
  color: rgba(246,245,242,.66);
  line-height: 1.6;
  font-size: 13px;
}

/* =========================
   CTA strip
========================= */
.cta-strip{
  padding: 74px 0;
  border-top: 1px solid var(--stroke2);
  border-bottom: 1px solid var(--stroke2);
  background: var(--surface);
}
.cta-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 18px;
}
@media (max-width: 900px){
  .cta-inner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width: 640px){
  .cta-strip{ padding: 86px 0; }
  .cta-inner{ gap: 22px; }
}
.cta-title{
  margin:0 0 10px 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(22px, 3vw, 40px);
  line-height: 1.1;
}

/* =========================
   Contact — Luxury Intake
========================= */
.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1.08fr;
  gap: 44px;
  align-items:start;
}
.contact{
  position:relative;
  overflow:hidden;
}
.contact::before{
  content:"";
  position:absolute;
  right:-15%;
  top:10%;
  width:520px;
  height:520px;
  background: radial-gradient(closest-side, rgba(198,184,158,.10), transparent 70%);
  opacity:.35;
  pointer-events:none;
}
.contact::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:120px;
  background: linear-gradient(180deg, rgba(11,11,13,0), rgba(11,11,13,.96));
  pointer-events:none;
}
@media (max-width: 980px){
  .contact-grid{ grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 640px){
  .contact-grid{ gap: 28px; }
  .contact-cards{ gap: 14px; margin: 0 0 26px 0; }
  .contact-note{ margin-top: 18px; padding-top: 18px; gap: 12px; }
}

.contact-title{
  font-family: var(--serif);
  font-weight: 400;
  margin: 0 0 12px 0;
  font-size: clamp(34px, 4vw, 56px);
  line-height: 1.05;
}
.contact-lead{
  margin: 0 0 26px 0;
  color: rgba(246,245,242,.66);
  line-height: 1.7;
  max-width: 52ch;
  font-size: 16.5px;
}

.contact-cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 12px;
  margin: 0 0 22px 0;
}
@media (max-width: 980px){
  .contact-cards{ grid-template-columns: 1fr; }
}

.contact-card{
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.06);
  background: var(--surface-panel);
  box-shadow: var(--shadow2);
  padding: 16px 16px 14px;
  position:relative;
  overflow:hidden;
  transition: transform .2s ease, border-color .25s ease, box-shadow .25s ease;
}
.contact-card:hover{
  transform: translateY(-2px);
  border-color: rgba(198,184,158,.22);
  box-shadow: 0 22px 60px rgba(0,0,0,.45);
}
.cc-k{
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(246,245,242,.50);
  margin-bottom: 8px;
}
.cc-v{
  font-family: var(--serif);
  font-weight: 400;
  color: rgba(198,184,158,.90);
  font-size: 18px;
  letter-spacing: .02em;
}

.contact-note{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.05);
  display:flex;
  flex-direction:column;
  gap: 10px;
  color: rgba(246,245,242,.56);
  font-size: 13px;
  line-height: 1.6;
}
.contact-rule{ display:flex; align-items:center; gap: 10px; }
.rule-dot{
  width:6px; height:6px;
  border-radius:999px;
  background: rgba(198,184,158,.85);
  box-shadow: 0 0 0 10px rgba(198,184,158,.08);
}

/* Form luxe */
.form-luxe{
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.07);
  background: var(--surface-panel);
  box-shadow: var(--shadow);
  padding: 22px;
  position:relative;
  overflow:hidden;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.form-luxe::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: inherit;
  background: radial-gradient(420px 260px at 20% 20%, rgba(198,184,158,.16), transparent 65%);
  opacity:0;
  transition: opacity .35s ease;
  pointer-events:none;
}
.form-luxe:hover{
  border-color: rgba(198,184,158,.24);
  box-shadow: 0 26px 70px rgba(0,0,0,.5);
}
.form-luxe:hover::before{ opacity:1; }

.form-head{
  padding: 6px 6px 18px 6px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  margin-bottom: 16px;
}
.form-title{
  font-family: var(--serif);
  font-weight: 400;
  font-size: 18px;
  color: rgba(246,245,242,.88);
}
.form-sub{
  margin-top: 6px;
  color: rgba(246,245,242,.52);
  font-size: 12.5px;
  letter-spacing: .06em;
}

.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 640px){
  .form-grid{ grid-template-columns: 1fr; gap: 14px; }
  .form-luxe{ padding: 24px; }
  .field span{ margin: 10px 0 10px; }
}

label{ display:block; margin-bottom: 0; }
.field{ margin:0; }
.field-full{ grid-column: 1 / -1; }

.field span{
  display:block;
  margin: 8px 0 8px;
  font-size: 11px;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(246,245,242,.52);
}

input, select, textarea{
  width:100%;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.018);
  color: rgba(246,245,242,.86);
  padding: 12px 12px;
  outline:none;
  font-family: var(--sans);
  font-size: 14px;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
textarea{ resize: vertical; min-height: 150px; }

input:focus, select:focus, textarea:focus{
  border-color: rgba(198,184,158,.34);
  background: rgba(255,255,255,.028);
}

.btn-send{
  padding: 16px 22px;
  letter-spacing: .28em;
}
.form-fine{
  margin: 10px 0 0 0;
  color: rgba(246,245,242,.42);
  text-align:center;
}

/* =========================
   Footer
========================= */
.footer{ padding: 44px 0 24px; }
.footer{
  background: var(--surface);
  border-top: 1px solid var(--stroke2);
}
.footer-inner{
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:flex-start;
}
@media (max-width: 900px){
  .footer-inner{ flex-direction:column; }
}
@media (max-width: 640px){
  .footer{ padding: 56px 0 36px; }
  .footer-inner{ gap: 24px; }
  .foot-right{ gap: 12px; }
  .foot-bottom{ margin-top: 22px; padding-top: 22px; gap: 16px; }
}
.foot-right{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
}
.foot-right a{
  color: rgba(246,245,242,.68);
  text-decoration:none;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(246,245,242,.08);
  background: rgba(255,255,255,.02);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.foot-right a:hover{ border-color: rgba(198,184,158,.22); }
.foot-bottom{
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(246,245,242,.06);
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

/* =========================
   Reveal
========================= */
.reveal{
  opacity:0;
  transform: translateY(22px);
  transition: opacity 1.4s cubic-bezier(0.16,1,0.3,1), transform 1.4s cubic-bezier(0.16,1,0.3,1);
  transition-delay: .06s;
}
.reveal.visible{
  opacity:1;
  transform: translateY(0);
}
@media (hover: hover), (pointer: fine){
  .reveal.visible.authority-card:hover{
    transform: translateY(-2px);
  }
  .reveal.visible.division:hover{
    transform: translateY(-3px);
  }
  .reveal.visible.editorial-item:hover{
    transform: translateY(-4px);
  }
}

/* =========================
   Toast
========================= */
.toast{
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid rgba(246,245,242,.12);
  background: rgba(10,10,12,.86);
  backdrop-filter: blur(12px);
  color: rgba(246,245,242,.86);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  display:none;
  z-index: 9999;
  box-shadow: var(--shadow2);
}

/* =========================
   Touch / Tablet Performance
========================= */
@media (pointer: coarse), (max-width: 1024px){
  .cursor-glow{ display:none; }
  .grain{ opacity:.06; }
  .header{
    backdrop-filter: none;
    background: rgba(8,9,11,.78);
  }
  .hero-bg::before{
    mask-image: none;
    filter: saturate(.9) contrast(1.04) brightness(.8);
  }
  .hero-bg::after{ opacity:.22; }
}

/* =========================
   Reduced motion
========================= */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ transition:none; }
  .orb{ animation:none; }
  .scroll-hint i::after{ animation:none; }
}
