/* ═══════════════════════════════════════════════════════════════
   CINEMATIC LAYER  |  rezaabdoli.com
   v3 — Multi-layer cursor · 3D tilt · Magnetic · Particles · Drift
   ═══════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════
   1. CUSTOM MULTI-LAYER CURSOR SYSTEM
   ═══════════════════════════════════════════════════════════════ */

/* Hide native cursor globally */
*, *::before, *::after { cursor: none !important; }

/* Precise gold dot — follows exactly */
#cin-dot {
  position: fixed;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--gold2);
  pointer-events: none;
  z-index: 10001;
  transform: translate(-50%, -50%);
  will-change: left, top;
  mix-blend-mode: screen;
}

/* Trailing ring — lerps behind dot */
#cin-ring {
  position: fixed;
  width: 38px; height: 38px;
  border-radius: 50%;
  border: 1px solid rgba(181,137,42,.55);
  pointer-events: none;
  z-index: 10000;
  transform: translate(-50%, -50%);
  will-change: left, top, width, height, border-color;
  transition: width .35s cubic-bezier(.16,1,.3,1),
              height .35s cubic-bezier(.16,1,.3,1),
              border-color .35s ease,
              opacity .3s ease;
}
/* Hover states — ring expands + glows */
body.cin-hover-link  #cin-ring { width: 72px; height: 72px; border-color: var(--gold2); opacity: .9; }
body.cin-hover-card  #cin-ring { width: 96px; height: 96px; border-color: rgba(181,137,42,.7); opacity: .8; }
body.cin-hover-img   #cin-ring { width: 120px; height: 120px; border-color: rgba(181,137,42,.4); opacity: .6; }

/* Label inside ring */
#cin-ring::after {
  content: attr(data-label);
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-size: 8px; font-weight: 500; letter-spacing: .22em;
  text-transform: uppercase; color: var(--gold2);
  opacity: 0; transition: opacity .25s ease;
  white-space: nowrap;
}
body.cin-hover-card #cin-ring::after,
body.cin-hover-img  #cin-ring::after { opacity: 1; }

/* Ambient glow — slowest lerp */
#cin-glow {
  position: fixed;
  width: 520px; height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(181,137,42,.07) 0%, transparent 65%);
  pointer-events: none;
  z-index: 9997;
  transform: translate(-50%, -50%);
  will-change: left, top;
}


/* ═══════════════════════════════════════════════════════════════
   2. PAGE LOAD CURTAIN
   ═══════════════════════════════════════════════════════════════ */

#cin-curtain {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--black); pointer-events: none;
  animation: cin-curtain-lift 1.6s cubic-bezier(.76,0,.24,1) forwards;
  animation-delay: .05s;
}
@keyframes cin-curtain-lift {
  0%   { clip-path: inset(0 0 0% 0); opacity: 1; }
  100% { clip-path: inset(0 0 100% 0); opacity: 0; }
}


/* ═══════════════════════════════════════════════════════════════
   3. HERO — KEN BURNS + ATMOSPHERE + VELOCITY SKEW
   ═══════════════════════════════════════════════════════════════ */

/* Film grain */
.hero::after {
  content: ''; position: absolute; inset: 0; z-index: 2;
  pointer-events: none; opacity: .04; mix-blend-mode: screen;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  background-size: 200px 200px;
}

/* Ken Burns */
@keyframes kb-zoom-tl  { 0%{transform:scale(1.0) translate(0,0)}      100%{transform:scale(1.12) translate(-1.8%,-1%)} }
@keyframes kb-zoom-br  { 0%{transform:scale(1.12) translate(1.8%,1%)} 100%{transform:scale(1.0)  translate(0,0)} }
@keyframes kb-pan-left { 0%{transform:scale(1.09) translate(2%,0)}    100%{transform:scale(1.09) translate(-2%,.3%)} }
@keyframes kb-pan-up   { 0%{transform:scale(1.09) translate(0,1%)}    100%{transform:scale(1.09) translate(.5%,-1%)} }

.hero-slide { will-change:transform,opacity; transform-origin:center; }
.hero-slide { transition: opacity 2.6s cubic-bezier(.4,0,.2,1); }
.hero-slide.on.s1 { animation: kb-zoom-tl  15s ease-in-out forwards; }
.hero-slide.on.s2 { animation: kb-zoom-br  15s ease-in-out forwards; }
.hero-slide.on.s3 { animation: kb-pan-left 18s linear      forwards; }
.hero-slide.on.s4 { animation: kb-pan-up   15s ease-in-out forwards; }

.hero-veil {
  background: linear-gradient(135deg,
    rgba(8,8,8,.92) 0%, rgba(8,8,8,.60) 42%,
    rgba(8,8,8,.22) 78%, rgba(8,8,8,.40) 100%) !important;
}
.hero-veil-bottom {
  height: 380px !important;
  background: linear-gradient(to top, rgba(8,8,8,.98) 0%, rgba(8,8,8,.28) 65%, transparent 100%);
}

/* Hero text entrances */
.hero-eyebrow { animation: cin-slide-x 1.1s cubic-bezier(.16,1,.3,1) both; animation-delay:.12s; }
.hero h1      { animation: cin-rise    1.6s cubic-bezier(.16,1,.3,1) both; animation-delay:.28s; }
.hero-sub     { animation: cin-fade-y  1.2s cubic-bezier(.16,1,.3,1) both; animation-delay:.65s; }
.hero-actions { animation: cin-fade-y  1.2s cubic-bezier(.16,1,.3,1) both; animation-delay:.85s; }
.hero-markets { animation: cin-fade-y  1.0s cubic-bezier(.16,1,.3,1) both; animation-delay:1.05s; }

@keyframes cin-rise    { from{opacity:0;transform:translateY(52px) skewY(1.2deg)} to{opacity:1;transform:none} }
@keyframes cin-fade-y  { from{opacity:0;transform:translateY(26px)} to{opacity:1;transform:none} }
@keyframes cin-slide-x { from{opacity:0;transform:translateX(-28px)} to{opacity:1;transform:none} }

/* Slide dots */
.sdot { transition: background .4s ease, width .4s ease !important; }
.sdot.on { box-shadow: 0 0 10px rgba(181,137,42,.5); }

/* Parallax layers */
.hero-slide-wrap { will-change: transform; }
.hero-content    { will-change: transform; }


/* ═══════════════════════════════════════════════════════════════
   4. INFINITE MARQUEE STRIP
   ═══════════════════════════════════════════════════════════════ */

.cin-marquee-bar {
  overflow: hidden; background: var(--black);
  border-top: 1px solid rgba(255,255,255,.05);
  padding: 16px 0; user-select: none;
}
.cin-marquee-inner {
  display: inline-flex; gap: 56px; white-space: nowrap;
  animation: marquee-scroll 36s linear infinite;
  font-size: 10px; font-weight: 500; letter-spacing: .34em;
  text-transform: uppercase; color: rgba(255,255,255,.22);
}
.cin-marquee-inner:hover { animation-play-state: paused; }
.cin-mx { color: var(--gold); opacity: .5; }
@keyframes marquee-scroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }


/* ═══════════════════════════════════════════════════════════════
   5. SCROLL-PINNED CINEMATIC SCENES
   ═══════════════════════════════════════════════════════════════ */

.cin-track { position: relative; }

.cin-scene {
  position: sticky; top: 0;
  height: 100vh; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}

/* Background layers */
.cin-scene-layer {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  will-change: transform, opacity; transform-origin: center;
}

/* Veils */
.cin-veil {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(135deg,
    rgba(8,8,8,.88) 0%, rgba(8,8,8,.52) 50%, rgba(8,8,8,.28) 100%);
}
.cin-veil-side {
  background: linear-gradient(to right,
    rgba(8,8,8,.1) 0%, rgba(8,8,8,.6) 46%, rgba(8,8,8,.96) 100%);
}
.cin-veil-center {
  background: radial-gradient(ellipse 80% 80% at 50% 50%,
    rgba(8,8,8,.85) 0%, rgba(8,8,8,.30) 100%);
}

/* Gold particles container */
.cin-particles {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
}
.cin-particle {
  position: absolute; border-radius: 50%;
  background: var(--gold2); pointer-events: none;
  animation: particle-rise linear infinite;
}
@keyframes particle-rise {
  0%   { transform: translateY(0)      scale(1);   opacity: .18; }
  40%  { opacity: .28; }
  100% { transform: translateY(-140px) scale(.1);  opacity: 0; }
}

/* Progress bar */
.cin-progress-bar {
  position: absolute; bottom: 0; left: 0;
  height: 2px; width: 0%;
  background: linear-gradient(to right, var(--gold), var(--gold2));
  z-index: 10; transition: width .06s linear;
}

/* Scene content */
.cin-scene-copy {
  position: relative; z-index: 3;
  max-width: 1200px; padding: 0 64px; width: 100%;
}
.cin-copy-right {
  display: flex; flex-direction: column;
  align-items: flex-start;
  max-width: 560px; margin-left: auto;
}
.cin-copy-center { text-align: center; margin: 0 auto; max-width: 920px; }

/* Label stamp */
.cin-stamp {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: 10px; font-weight: 500; letter-spacing: .38em;
  text-transform: uppercase; color: rgba(255,255,255,.35);
  margin-bottom: 32px;
  opacity: 0; transform: translateX(-24px);
  transition: opacity .9s ease, transform .9s ease;
}
.cin-stamp::before { content: ''; width: 26px; height: 1px; background: var(--gold); flex-shrink: 0; }
.cin-stamp.revealed { opacity: 1; transform: none; }
.cin-stamp-gold { color: var(--gold2); }
.cin-copy-center .cin-stamp { justify-content: center; }

/* Super quote */
.cin-super {
  font-family: var(--fd);
  font-size: clamp(52px, 9vw, 150px);
  font-weight: 300; line-height: .93;
  color: var(--white); margin: 0 0 52px;
}
.cin-super em { font-style: italic; color: var(--gold2); }

/* Word reveal — clip + drift entrance */
.cin-w {
  display: inline-block; overflow: hidden;
  vertical-align: bottom; line-height: 1.02;
  /* Subtle horizontal drift per word via JS data-dir */
}
.cin-w-inner {
  display: inline-block;
  transform: translateY(112%) translateX(var(--drift-x, -18px)) rotate(var(--drift-r, 2deg));
  opacity: 0;
  transition: transform 1.15s cubic-bezier(.16,1,.3,1),
              opacity   .85s ease;
}
/* Alternating drift directions set by CSS nth-child */
.cin-w:nth-child(even) .cin-w-inner { --drift-x: 18px; --drift-r: -2deg; }
.cin-w:nth-child(odd)  .cin-w-inner { --drift-x: -18px; --drift-r: 2deg; }
.cin-w-inner.revealed {
  transform: translateY(0) translateX(0) rotate(0deg) !important;
  opacity: 1;
}

/* Scene subtitle */
.cin-scene-sub {
  font-size: 16px; color: rgba(255,255,255,.55);
  line-height: 1.9; max-width: 460px;
  opacity: 0; transform: translateY(20px);
  transition: opacity .95s ease, transform .95s ease;
  margin: 0 0 36px;
}
.cin-scene-sub.revealed { opacity: 1; transform: none; }
.cin-copy-center .cin-scene-sub { margin: 0 auto 36px; }

/* CTA in scene */
.cin-scene-action {
  display: flex; gap: 14px; flex-wrap: wrap;
  opacity: 0; transform: translateY(22px);
  transition: opacity .9s ease, transform .9s ease;
}
.cin-scene-action.revealed { opacity: 1; transform: none; }
.cin-copy-center .cin-scene-action { justify-content: center; }

/* Mega stat numbers */
.cin-mega-stat { display: flex; flex-direction: column; }
.cin-mega-val {
  font-family: var(--fd);
  font-size: clamp(72px, 13vw, 196px);
  font-weight: 300; line-height: .88;
  color: var(--white); display: block; letter-spacing: -.02em;
  text-shadow: 0 0 120px rgba(181,137,42,.22);
  overflow: hidden;
}
.cin-mega-val sup { font-size: .3em; color: var(--gold2); vertical-align: super; }
.cin-mega-val sub { font-size: .3em; color: var(--gold2); }
.cin-mega-label {
  font-size: 10px; font-weight: 500; letter-spacing: .3em;
  text-transform: uppercase; color: rgba(255,255,255,.36);
  margin-top: 10px; margin-bottom: 36px; display: block;
}

/* Animated rule between stats */
.cin-stat-rule {
  height: 1px; width: 0%;
  background: linear-gradient(to right, var(--gold), rgba(181,137,42,0));
  margin-bottom: 40px;
  transition: width 1.4s cubic-bezier(.16,1,.3,1);
}
.cin-stat-rule.revealed { width: 72px; }

/* IMAGE-THROUGH-TEXT MASK for scene 3 headline */
.cin-mask-text {
  background-image: var(--mask-img, none);
  background-size: cover; background-position: center;
  -webkit-background-clip: text; background-clip: text;
  color: transparent;
  filter: brightness(1.3) saturate(1.1);
}


/* ═══════════════════════════════════════════════════════════════
   6. STANDARD SCROLL REVEALS
   ═══════════════════════════════════════════════════════════════ */

.cin-reveal {
  opacity: 0; transform: translateY(38px);
  transition: opacity 1.0s cubic-bezier(.16,1,.3,1),
              transform 1.0s cubic-bezier(.16,1,.3,1);
}
.cin-reveal.cin-left  { transform: translateX(-48px) translateY(0); }
.cin-reveal.cin-right { transform: translateX(48px)  translateY(0); }
.cin-reveal.cin-scale { transform: scale(.92) translateY(0); }
.cin-reveal.cin-clip  {
  transform: none; clip-path: inset(0 0 100% 0);
  transition: opacity .8s ease, clip-path 1.1s cubic-bezier(.16,1,.3,1);
}
.cin-reveal.cin-in { opacity: 1; transform: none; clip-path: inset(0 0 0% 0); }

.stg-child {
  opacity: 0; transform: translateY(28px);
  transition: opacity .75s cubic-bezier(.16,1,.3,1),
              transform .75s cubic-bezier(.16,1,.3,1);
}
.stg-child.stg-in { opacity: 1; transform: none; }


/* ═══════════════════════════════════════════════════════════════
   7. 3D CARD TILT + SPECULAR HIGHLIGHT
   ═══════════════════════════════════════════════════════════════ */

.prop-card {
  transform-style: preserve-3d;
  transition: transform .6s cubic-bezier(.16,1,.3,1),
              box-shadow .6s ease !important;
}
.prop-card:hover {
  box-shadow: 0 36px 100px rgba(0,0,0,.22), 0 8px 28px rgba(0,0,0,.12) !important;
}
/* Specular sheen layer */
.prop-img {
  position: relative;
}
.prop-img::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle 120px at var(--spec-x, 50%) var(--spec-y, 50%),
    rgba(255,255,255,.12), transparent 70%);
  pointer-events: none; z-index: 2;
  opacity: 0; transition: opacity .3s ease;
}
.prop-card:hover .prop-img::after { opacity: 1; }
.prop-img img {
  transition: transform 1.1s cubic-bezier(.16,1,.3,1) !important;
}
.prop-card:hover .prop-img img { transform: scale(1.09) !important; }

/* Neighborhood cards */
.nbh-card { transition: transform .7s cubic-bezier(.16,1,.3,1); overflow: hidden; }
.nbh-card:hover { transform: scale(1.028); z-index: 2; }
.nbh-card img   { transition: transform 1.4s cubic-bezier(.16,1,.3,1) !important; }
.nbh-card:hover img { transform: scale(1.14) !important; }
/* Gold bottom reveal on neighborhood hover */
.nbh-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 3px; background: linear-gradient(to right, var(--gold), var(--gold2));
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s cubic-bezier(.16,1,.3,1); z-index: 5;
}
.nbh-card:hover::after { transform: scaleX(1); }


/* ═══════════════════════════════════════════════════════════════
   8. MAGNETIC BUTTONS
   ═══════════════════════════════════════════════════════════════ */

.btn { position: relative; overflow: hidden; will-change: transform; }
.btn::after {
  content: ''; position: absolute; top: 50%; left: 50%;
  width: 0; height: 0; border-radius: 50%;
  background: rgba(255,255,255,.16);
  transform: translate(-50%,-50%);
  transition: width .6s ease, height .6s ease, opacity .6s ease;
  opacity: 0; pointer-events: none;
}
.btn:hover::after { width: 360px; height: 360px; opacity: 1; }


/* ═══════════════════════════════════════════════════════════════
   9. NAV + FOOTER REFINEMENTS
   ═══════════════════════════════════════════════════════════════ */

/* Gold underline slide on nav links */
#nav:not(.white-nav) .nav-link { position: relative; }
#nav:not(.white-nav) .nav-link::after {
  content: ''; position: absolute; bottom: 2px; left: 50%; right: 50%;
  height: 1px; background: var(--gold2);
  transition: left .3s ease, right .3s ease;
}
#nav:not(.white-nav) .nav-link:hover::after { left: 10px; right: 10px; }

/* Stat glow */
.num-val { text-shadow: 0 0 80px rgba(181,137,42,.15); }

footer a { transition: color .25s ease, letter-spacing .3s ease; }
footer a:hover { letter-spacing: .04em; }


/* ═══════════════════════════════════════════════════════════════
   10. MISCELLANEOUS UTILITIES
   ═══════════════════════════════════════════════════════════════ */

.cin-img-wrap { overflow: hidden; }
.cin-img-wrap img {
  transition: transform 1.3s cubic-bezier(.16,1,.3,1);
  will-change: transform;
}
.cin-img-wrap:hover img { transform: scale(1.07); }

.parallax-slow, .parallax-fast { will-change: transform; }

/* ── RA SIGNATURE ── */
.ra-sig {
  position: fixed;
  bottom: 20px;
  right: 24px;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 12px;
  font-weight: 300;
  letter-spacing: .14em;
  color: rgba(181,137,42,.4);
  pointer-events: none;
  z-index: 9000;
  text-transform: none;
}
.ra-sig em {
  font-style: italic;
  color: rgba(201,168,76,.55);
}


/* ═══════════════════════════════════════════════════════════════
   v4 MAXIMUM  |  Emil Kowalski + Polish + Impeccable
   Spring physics · Character stagger · Full hover coverage
   Page transitions · Scroll progress · Optical corrections
   ═══════════════════════════════════════════════════════════════ */


/* ── SPRING EASING TOKENS ── */
:root {
  --spring-bounce: cubic-bezier(.34,1.56,.64,1);
  --spring-snap:   cubic-bezier(.16,1,.3,1);
  --spring-glide:  cubic-bezier(.22,1,.36,1);
  --spring-out:    cubic-bezier(.4,0,.2,1);
}


/* ── SCROLL PROGRESS BAR ── */
#cin-scroll-progress {
  position: fixed; top: 0; left: 0;
  height: 1px; width: 0%;
  background: linear-gradient(to right, var(--gold), var(--gold2), rgba(181,137,42,0));
  z-index: 10002; pointer-events: none;
  will-change: width;
}


/* ── PAGE TRANSITION WIPE ── */
#cin-page-wipe {
  position: fixed; inset: 0;
  background: var(--black);
  z-index: 99999; pointer-events: none;
  clip-path: inset(100% 0 0 0);
}
#cin-page-wipe.wipe-out {
  animation: page-wipe-out .52s var(--spring-snap) forwards;
}
#cin-page-wipe.wipe-in {
  animation: page-wipe-in .52s var(--spring-snap) forwards;
}
@keyframes page-wipe-out {
  from { clip-path: inset(100% 0 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes page-wipe-in {
  from { clip-path: inset(0 0 0 0); }
  to   { clip-path: inset(0 0 100% 0); }
}


/* ── BLOG CARD HOVER ── */
.blog-card {
  transition: transform .6s var(--spring-snap),
              box-shadow .6s ease !important;
  overflow: hidden; position: relative;
}
.blog-card:hover {
  transform: translateY(-10px) !important;
  box-shadow: 0 28px 80px rgba(0,0,0,.20) !important;
}
.blog-card img {
  transition: transform 1.3s var(--spring-snap) !important;
}
.blog-card:hover img { transform: scale(1.08) !important; }
.blog-card::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(to right, var(--gold), var(--gold2));
  transform: scaleX(0); transform-origin: left;
  transition: transform .5s var(--spring-snap); z-index: 5;
}
.blog-card:hover::after { transform: scaleX(1); }


/* ── TESTIMONIAL CARD HOVER ── */
.test-card {
  transition: transform .6s var(--spring-snap),
              border-color .4s ease,
              box-shadow .6s ease !important;
}
.test-card:hover {
  transform: translateY(-7px) !important;
  border-color: rgba(181,137,42,.28) !important;
  box-shadow: 0 24px 64px rgba(0,0,0,.16) !important;
}


/* ── MARKET CARD HOVER ── */
.market-card {
  transition: transform .5s var(--spring-snap),
              border-color .35s ease !important;
  position: relative; overflow: hidden;
}
.market-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0;
  width: 2px; background: var(--gold);
  transform: scaleY(0); transform-origin: bottom;
  transition: transform .45s var(--spring-snap);
  z-index: 2;
}
.market-card:hover { transform: translateX(5px) !important; }
.market-card:hover::before { transform: scaleY(1); }


/* ── WHY ITEM HOVER ── */
.why-item {
  transition: transform .55s var(--spring-snap) !important;
}
.why-item:hover { transform: translateY(-6px) !important; }
.why-item .wi-icon, .why-item .why-icon, .why-item svg {
  transition: transform .55s var(--spring-bounce),
              color .3s ease,
              filter .3s ease !important;
}
.why-item:hover .wi-icon,
.why-item:hover .why-icon,
.why-item:hover svg {
  transform: scale(1.15) rotate(-4deg) !important;
  filter: drop-shadow(0 0 12px rgba(181,137,42,.4));
}


/* ── PROCESS STEP HOVER ── */
.process-step {
  transition: transform .55s var(--spring-snap) !important;
}
.process-step:hover { transform: translateY(-5px) !important; }
.process-step .ps-num, .process-step .step-num, .process-step .pn {
  transition: color .3s ease, text-shadow .4s ease !important;
}
.process-step:hover .ps-num,
.process-step:hover .step-num,
.process-step:hover .pn {
  color: var(--gold2) !important;
  text-shadow: 0 0 40px rgba(181,137,42,.35);
}


/* ── FEATURE ITEM HOVER ── */
.feature-item {
  transition: transform .5s var(--spring-snap),
              border-color .35s ease !important;
}
.feature-item:hover {
  transform: translateY(-5px) !important;
  border-color: rgba(181,137,42,.22) !important;
}


/* ── BUTTON ACTIVE PRESS STATE (Emil: spring return) ── */
.btn:active,
.nav-cta:active,
.link-arr:active,
[class*="btn-"]:active {
  transform: scale(.95) !important;
  transition: transform .06s ease !important;
}


/* ── WHITE-NAV LINK HOVER ── */
.white-nav .nav-link {
  position: relative;
  transition: color .25s ease !important;
}
.white-nav .nav-link::after {
  content: ''; position: absolute; bottom: -1px; left: 50%; right: 50%;
  height: 1px; background: currentColor; opacity: .6;
  transition: left .3s var(--spring-snap), right .3s var(--spring-snap);
}
.white-nav .nav-link:hover::after { left: 0; right: 0; }


/* ── LINK ARROW HOVER ── */
.link-arr, .link-arrow, .lnk-arr {
  display: inline-flex; align-items: center;
  transition: gap .35s var(--spring-snap),
              letter-spacing .3s ease !important;
}
.link-arr:hover, .link-arrow:hover, .lnk-arr:hover { gap: 10px !important; }
.link-arr svg, .link-arrow svg, .lnk-arr svg,
.link-arr .arr, .link-arrow .arr, .lnk-arr .arr {
  transition: transform .45s var(--spring-snap) !important;
}
.link-arr:hover svg,   .link-arrow:hover svg,   .lnk-arr:hover svg,
.link-arr:hover .arr,  .link-arrow:hover .arr,  .lnk-arr:hover .arr {
  transform: translate(5px, -5px) !important;
}


/* ── FOOTER SOCIAL HOVER ── */
.foot-social a, .social-link, .foot-socials a {
  display: inline-flex;
  transition: transform .5s var(--spring-bounce),
              opacity .3s ease,
              color .3s ease !important;
}
.foot-social a:hover, .social-link:hover, .foot-socials a:hover {
  transform: translateY(-5px) !important;
  opacity: 1 !important;
  color: var(--gold2) !important;
}


/* ── CHARACTER STAGGER SYSTEM ── */
.cin-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(38px) rotate(.8deg);
  transition: opacity .55s var(--spring-snap),
              transform .55s var(--spring-snap);
  transition-delay: calc(var(--char-i, 0) * 26ms);
}
.cin-char.revealed {
  opacity: 1;
  transform: none;
}
/* Space character - keep visible, no transform */
.cin-char.cin-space {
  transform: none;
  opacity: 1;
}


/* ── STAGGER INDEX UTILITIES (auto-assigned by JS) ── */
.stg-child { transition-delay: calc(var(--i, 0) * 75ms) !important; }

/* Pre-built nth-child delays for static grids */
.cin-stagger > *:nth-child(1)  { transition-delay: 0ms !important; }
.cin-stagger > *:nth-child(2)  { transition-delay: 75ms !important; }
.cin-stagger > *:nth-child(3)  { transition-delay: 150ms !important; }
.cin-stagger > *:nth-child(4)  { transition-delay: 225ms !important; }
.cin-stagger > *:nth-child(5)  { transition-delay: 300ms !important; }
.cin-stagger > *:nth-child(6)  { transition-delay: 375ms !important; }
.cin-stagger > *:nth-child(7)  { transition-delay: 450ms !important; }
.cin-stagger > *:nth-child(8)  { transition-delay: 525ms !important; }
.cin-stagger > *:nth-child(9)  { transition-delay: 600ms !important; }
.cin-stagger > *:nth-child(10) { transition-delay: 675ms !important; }
.cin-stagger > *:nth-child(11) { transition-delay: 750ms !important; }
.cin-stagger > *:nth-child(12) { transition-delay: 825ms !important; }


/* ── IMPECCABLE: FOCUS RINGS ── */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 1px solid rgba(181,137,42,.55);
  outline-offset: 3px;
  border-radius: 2px;
}


/* ── IMPECCABLE: STAT NUMBER OPTICAL POLISH ── */
.num-val {
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
}


/* ── IMPECCABLE: NAV CTA ACTIVE STATE ── */
.nav-cta {
  transition: transform .3s var(--spring-snap),
              background .25s ease,
              border-color .25s ease,
              color .25s ease !important;
}


/* ── IMAGE SHIMMER WHILE LOADING ── */
.cin-img-wrap {
  position: relative;
  background: rgba(255,255,255,.03);
}


/* ── VELOCITY SCROLL BLUR ── */
body.cin-vel-fast .hero-slide-wrap {
  filter: blur(.6px);
  transition: filter .25s ease;
}
body:not(.cin-vel-fast) .hero-slide-wrap {
  filter: none;
  transition: filter .5s ease;
}


/* ── RA SIGNATURE HOVER ── */
.ra-sig {
  transition: color .4s ease, letter-spacing .4s ease, opacity .4s ease;
}
.ra-sig:hover {
  color: rgba(181,137,42,.65) !important;
  letter-spacing: .2em;
  pointer-events: auto;
}
