/* NEXU — atmósfera: textura y luz sobre el negro, para que no sea un fondo plano.
   Capas: grano de película (toda la página), aurora dorada por sección, retícula de
   líneas finas en secciones alternas y curvas de nivel en héroes y cierres.
   Todo va en pseudo-elementos con pointer-events:none: no toca el contenido. */

/* ── Grano ─────────────────────────────────────────────────────── */
body::after{content:'';position:fixed;inset:-60px;z-index:200;pointer-events:none;opacity:.075;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1.1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px}

/* ── Secciones: aurora + temperatura ───────────────────────────── */
.section,.page-hero,.cta-band,.closing,.markets-strip{position:relative;isolation:isolate}
.section::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 46% at var(--ax,86%) var(--ay,12%),#d6ab6116,transparent 70%),
    radial-gradient(32% 40% at var(--bx,6%) var(--by,92%),#9a6c2e12,transparent 72%);
  background-size:130% 130%;background-position:0 0}
main>.section:nth-of-type(3n+2)::before{--ax:12%;--ay:18%;--bx:92%;--by:80%}
main>.section:nth-of-type(3n)::before{--ax:55%;--ay:0%;--bx:20%;--by:100%}
/* Negro cálido en secciones alternas sin fondo propio: da ritmo al bajar. */
main>.section:nth-of-type(even):not([style]):not(.leverage):not(.funding):not(.execution){background-color:#0b0a08}

/* ── Retícula de líneas finas (secciones pares) ────────────────── */
main>.section:nth-of-type(even)::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);
  background-size:72px 72px;background-position:center top;
  -webkit-mask:radial-gradient(60% 65% at 50% 35%,#000,transparent 75%);mask:radial-gradient(60% 65% at 50% 35%,#000,transparent 75%)}

/* ── Curvas de nivel ───────────────────────────────────────────── */
.page-hero::after,.cta-band::after,.closing::after,main>.section.leverage::after,main>.section.services::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:url('/sites/nexu/assets/contours.svg') center/cover no-repeat;opacity:.16;
  -webkit-mask:radial-gradient(75% 80% at 70% 30%,#000,transparent 80%);mask:radial-gradient(75% 80% at 70% 30%,#000,transparent 80%)}
.cta-band{overflow:hidden}
.cta-band::after{opacity:.22;-webkit-mask:radial-gradient(70% 90% at 50% 0,#000,transparent 85%);mask:radial-gradient(70% 90% at 50% 0,#000,transparent 85%)}
.closing::after{opacity:.2}
/* La sección clara (Ejecución) se queda limpia. */
.section.execution::before,.section.execution::after{display:none}

/* ── Hero de la portada: horizonte de luz bajo la composición ──── */
.hero::after{content:'';position:absolute;left:-10%;right:-10%;bottom:-1px;height:260px;z-index:-1;pointer-events:none;
  background:radial-gradient(50% 100% at 70% 100%,#d6ab611c,transparent 70%),linear-gradient(transparent,#08090c 92%)}
.hero-bg::after{content:'';position:absolute;inset:0;background:url('/sites/nexu/assets/contours.svg') 80% 40%/120% auto no-repeat;opacity:.12;
  -webkit-mask:radial-gradient(45% 60% at 72% 45%,#000,transparent 75%);mask:radial-gradient(45% 60% at 72% 45%,#000,transparent 75%)}

@media (prefers-reduced-motion:no-preference){
  @keyframes nxGrain{0%{translate:0 0}25%{translate:-24px 14px}50%{translate:18px -22px}75%{translate:-12px -8px}100%{translate:0 0}}
  @keyframes nxDrift{to{background-position:100% 100%}}
  @keyframes nxContour{to{background-position:60% 55%}}
  body::after{animation:nxGrain .9s steps(4) infinite}
  .section::before{animation:nxDrift 26s ease-in-out infinite alternate}
  main>.section:nth-of-type(3n+2)::before{animation-duration:32s;animation-direction:alternate-reverse}
  .hero-bg::after{animation:nxContour 40s ease-in-out infinite alternate}
}
