/* Capa de movimiento: se carga al final y solo añade, no reemplaza el diseño base. */
:root{--gold:#bda276;--gold-hi:#e4cf9f;--night-ink:#10131a;--ease-out:cubic-bezier(.16,1,.3,1)}

/* Textura de papel */
body::after{content:"";position:fixed;inset:0;z-index:9990;pointer-events:none;opacity:.07;mix-blend-mode:multiply;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='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .25 0 0 0 0 .15 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Preloader */
.preloader{display:none}
html.pre{overflow:hidden}
html.pre .preloader{display:grid;position:fixed;inset:0;z-index:10000;place-items:center;pointer-events:all}
.preloader::before,.preloader::after{content:"";position:absolute;left:0;right:0;height:50.5%;background:var(--night-ink);transition:transform 1s var(--ease-out) .1s}
.preloader::before{top:0}.preloader::after{bottom:0}
.preloader-inner{position:relative;z-index:1;text-align:center;color:var(--gold-hi);transition:opacity .35s ease,transform .6s var(--ease-out)}
.preloader-name{display:block;font-family:var(--serif);font-size:clamp(34px,6vw,72px);letter-spacing:-.03em;line-height:1;overflow:hidden;padding:.1em .05em .18em}
.preloader-name i{display:inline-block;font-style:normal;transform:translateY(110%);animation:pre-rise .9s var(--ease-out) forwards;animation-delay:calc(var(--i)*38ms + .1s)}
.preloader-role{display:block;margin-top:18px;font-family:var(--sans);font-size:11px;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);opacity:0;animation:pre-fade .8s ease .75s forwards}
.preloader-line{display:block;width:min(260px,52vw);height:1px;margin:26px auto 0;background:rgba(189,162,118,.25);overflow:hidden}
.preloader-line b{display:block;height:100%;background:linear-gradient(90deg,transparent,var(--gold-hi),transparent);transform:translateX(-100%);animation:pre-line 1.3s cubic-bezier(.65,0,.35,1) .2s forwards}
html.pre-out .preloader-inner{opacity:0;transform:translateY(-14px)}
html.pre-out .preloader::before{transform:translateY(-101%)}
html.pre-out .preloader::after{transform:translateY(101%)}
@keyframes pre-rise{to{transform:translateY(0)}}
@keyframes pre-fade{to{opacity:1}}
@keyframes pre-line{to{transform:translateX(0)}}

/* Los elementos de entrada del hero esperan al preloader */
html.pre .hero-enter{animation-play-state:paused}

/* Títulos por palabra */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em .02em .2em;margin:-.04em -.02em -.2em}
.split .wi{display:inline-block;transform:translateY(112%) rotate(3deg);transform-origin:0 100%;transition:transform 1.05s var(--ease-out);transition-delay:calc(var(--i)*55ms)}
.split.is-visible .wi{transform:none}
html.js .section-title.split,html.js .firm-world-line.split{opacity:1;transform:none}

/* Línea del índice de sección se dibuja */
html.js .section-index .index-line{transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease-out) .15s}
html.js .section-index.is-visible .index-line{transform:scaleX(1)}

/* Reveal más rico */
html.js .reveal{filter:blur(5px);transform:translateY(34px);transition:opacity .9s ease,transform 1s var(--ease-out),filter .9s ease}
html.js .reveal.is-visible{filter:none}

/* Imágenes: telón + zoom */
html.js .img-reveal{clip-path:inset(0 0 100% 0);transition:clip-path 1.3s var(--ease-out)}
html.js .img-reveal.is-visible{clip-path:inset(0 0 0 0)}
html.js .img-reveal img{transform:scale(1.22);transition:transform 1.8s var(--ease-out)}
html.js .img-reveal.is-visible img{transform:scale(1)}

/* Foco dorado del hero que sigue al puntero */
.hero-spot{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .6s ease;background:radial-gradient(520px circle at var(--mx,50%) var(--my,40%),rgba(228,207,159,.20),rgba(189,162,118,.07) 38%,transparent 65%);mix-blend-mode:screen}
.banner-hero:hover .hero-spot{opacity:1}

/* Marquesina */
.ticker{background:var(--night-ink);color:var(--gold-hi);overflow:hidden;border-top:1px solid rgba(189,162,118,.25);border-bottom:1px solid rgba(189,162,118,.25);padding:20px 0;user-select:none}
.ticker-track{display:flex;width:max-content;will-change:transform}
.ticker-group{display:flex;align-items:center;flex-shrink:0}
.ticker-group span{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,36px);letter-spacing:-.02em;white-space:nowrap;padding:0 clamp(18px,2.4vw,34px)}
.ticker-group span:nth-child(even){font-family:var(--sans);font-style:normal;font-size:clamp(10px,1vw,13px);letter-spacing:.34em;text-transform:uppercase;color:var(--gold);padding:0}
.ticker-group span:nth-child(even)::before{content:"✦"}

/* Tarjetas: brillo que sigue al puntero */
.glow-card{position:relative}
.glow-card>.glow{position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .4s ease;background:radial-gradient(360px circle at var(--gx,50%) var(--gy,50%),rgba(189,162,118,.26),transparent 62%);z-index:0}
.glow-card:hover>.glow{opacity:1}
.glow-card.tilting{transition:transform .14s linear!important;will-change:transform}

/* Cursor anillo */
.cursor-ring{position:fixed;left:0;top:0;z-index:10001;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid var(--gold);border-radius:50%;pointer-events:none;opacity:0;transition:opacity .3s ease,width .35s var(--ease-out),height .35s var(--ease-out),margin .35s var(--ease-out),background .3s ease,border-color .3s ease;mix-blend-mode:difference}
.cursor-ring.on{opacity:1}
.cursor-ring.big{width:72px;height:72px;margin:-36px 0 0 -36px;background:rgba(228,207,159,.18);border-color:var(--gold-hi)}
.cursor-ring.down{width:26px;height:26px;margin:-13px 0 0 -13px}

/* Botones magnéticos y brillo */
.magnetic{transition:transform .5s var(--ease-out)}
.magnetic.mag-on{transition:transform .12s linear}

/* Subrayado dibujado en enlaces de texto */
.text-link{background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .5s var(--ease-out)}
.text-link:hover,.text-link:focus-visible{background-size:100% 1px}

/* Barra de lectura dorada con brillo */
.reading-progress{box-shadow:0 0 12px rgba(228,207,159,.6)}

@media (hover:none),(max-width:900px){.cursor-ring{display:none}.hero-spot{display:none}}
@media (prefers-reduced-motion:reduce){
  .preloader{display:none!important}html.pre{overflow:auto}
  .split .wi,html.js .img-reveal,html.js .img-reveal img,html.js .section-index .index-line{transform:none!important;clip-path:none!important;transition:none!important}
  html.js .reveal{filter:none}
  .ticker-track{transform:none!important}.cursor-ring,.hero-spot{display:none}
}
.motion-paused .preloader{display:none!important}
.motion-paused .split .wi,.motion-paused .img-reveal,.motion-paused .img-reveal img,.motion-paused .section-index .index-line{transform:none!important;clip-path:none!important}
.motion-paused .reveal{filter:none}
.motion-paused .cursor-ring,.motion-paused .hero-spot{display:none}

html,body{overflow-x:clip}

/* Foto del hero sin fondo: halo dorado detrás de ella */
.banner-photo::before{content:"";position:absolute;inset:6% -6% 0 4%;z-index:-1;background:radial-gradient(ellipse 52% 58% at 52% 42%,rgba(228,207,159,.34),rgba(189,162,118,.12) 46%,transparent 72%);filter:blur(10px)}
.banner-photo::after{content:"";position:absolute;left:12%;right:2%;bottom:-2%;height:30%;z-index:-1;background:radial-gradient(ellipse at 50% 100%,rgba(189,162,118,.28),transparent 68%)}
.hero-banner-image{filter:drop-shadow(0 18px 40px rgba(0,0,0,.45))}
@media(max-width:900px){.banner-photo::before{inset:0 0 0 0}}

/* Fondo animado del hero */
.hero-net{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.hero-aurora{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.hero-aurora i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform}
.hero-aurora i:nth-child(1){width:46vw;height:46vw;left:-8%;top:-18%;background:radial-gradient(circle,rgba(189,162,118,.30),transparent 68%);animation:aurora-a 48s ease-in-out infinite alternate}
.hero-aurora i:nth-child(2){width:40vw;height:40vw;right:6%;top:8%;background:radial-gradient(circle,rgba(70,104,170,.38),transparent 68%);animation:aurora-b 56s ease-in-out infinite alternate}
.hero-aurora i:nth-child(3){width:34vw;height:34vw;left:30%;bottom:-24%;background:radial-gradient(circle,rgba(228,207,159,.22),transparent 68%);animation:aurora-c 64s ease-in-out infinite alternate}
@keyframes aurora-a{to{transform:translate(14vw,10vh) scale(1.2)}}
@keyframes aurora-b{to{transform:translate(-12vw,12vh) scale(.88)}}
@keyframes aurora-c{to{transform:translate(-16vw,-8vh) scale(1.25)}}
/* El velo izquierdo deja pasar la red para que el fondo se vea vivo */
@media(min-width:901px){.banner-veil{background:linear-gradient(90deg,rgba(12,16,23,.84) 0%,rgba(12,16,23,.82) 29%,rgba(12,16,23,.7) 40%,rgba(12,16,23,.45) 51%,rgba(12,16,23,.1) 66%,rgba(12,16,23,0) 81%),linear-gradient(0deg,#0c1017 0%,rgba(12,16,23,.72) 8%,transparent 38%),linear-gradient(180deg,rgba(12,16,23,.16),transparent 25%)}}
@media(max-width:900px){.hero-aurora i{filter:blur(50px)}}
@media (prefers-reduced-motion:reduce){.hero-aurora i{animation:none}}
.motion-paused .hero-aurora i{animation:none!important}
