/* Home: a drawn architectural mark, a quiet curtain, then staggered pop-ins. */
.brand-intro{display:none;z-index:1000;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 43%,#102c58 0%,#061831 48%,#03112c 100%);transition:clip-path 650ms cubic-bezier(.76,0,.24,1);clip-path:inset(0 0 0 0)}
.intro-lock .brand-intro,.brand-intro.is-leaving{display:grid}
.brand-intro.is-leaving{clip-path:inset(0 0 100% 0);pointer-events:none}
.intro-inner{position:relative;width:min(900px,calc(100% - 40px));padding:32px 0;transform:translateY(-10px)}
.intro-guides{position:absolute;inset:34px;border:1px solid rgba(255,255,255,.07);pointer-events:none;animation:intro-guide-in 1100ms ease both}
.intro-guides:before,.intro-guides:after{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:linear-gradient(transparent,rgba(244,196,48,.14),transparent)}
.intro-guides:after{left:0;top:50%;width:100%;height:1px;background:linear-gradient(transparent,rgba(244,196,48,.1),transparent)}
.intro-corner{position:absolute;left:60px;top:61px;font-size:9px;letter-spacing:.25em;color:rgba(255,255,255,.44);animation:intro-caption-in 650ms 180ms both}
.intro-mark{width:clamp(116px,13vw,166px);height:auto;aspect-ratio:1;margin:0 auto 28px;border:0;animation:intro-symbol-in 1050ms cubic-bezier(.2,.8,.2,1) both}
.intro-mark svg{display:block;width:100%;height:100%;overflow:visible}
.intro-drawing path{stroke-dasharray:1;stroke-dashoffset:1;animation:intro-trace 1150ms 140ms cubic-bezier(.4,0,.2,1) forwards}
.intro-drawing path+path{animation-delay:320ms}
.intro-solid{opacity:0;animation:intro-caption-in 750ms 850ms forwards}
.intro-word{overflow:hidden;padding:5px 0 12px}
.intro-word span{font:500 clamp(34px,6.5vw,86px)/1.08 Manrope,sans-serif;letter-spacing:-.065em;animation:intro-name-in 950ms 460ms cubic-bezier(.16,1,.3,1) both}
.intro-word b{font-weight:500;color:var(--yellow)}
.intro-inner .intro-subtitle{margin:7px 0 0;color:rgba(255,255,255,.76);font-size:11px;letter-spacing:.55em;animation:intro-caption-in 700ms 1050ms both}
.intro-line{width:44px;height:2px;margin:29px auto 22px;background:var(--yellow);transform-origin:center;animation:intro-line-in 750ms 1150ms both}
.intro-signature{color:rgba(255,255,255,.5);font-size:13px;letter-spacing:.02em;animation:intro-caption-in 700ms 1350ms both}
.brand-intro.is-leaving .intro-inner{opacity:0;transform:translateY(-32px) scale(.97);transition:opacity 320ms ease,transform 550ms ease}
@keyframes intro-trace{to{stroke-dashoffset:0}}
@keyframes intro-symbol-in{from{opacity:0;transform:translateY(16px) scale(.9)}to{opacity:1;transform:none}}
@keyframes intro-name-in{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:none}}
@keyframes intro-caption-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes intro-line-in{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@keyframes intro-guide-in{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}

/* Visible by default: a JavaScript/network failure must never hide the content. */
.reveal,.entry-pop{opacity:1;transform:none}
.motion-ready .reveal,.motion-ready .entry-pop{opacity:0;transform:translateY(25px) scale(.955);transform-origin:50% 70%;transition:opacity 450ms ease,transform 720ms cubic-bezier(.16,1.25,.3,1);transition-delay:var(--pop-delay,0ms)}
.motion-ready .entry-pop{transform:translateY(12px) scale(.97);transform-origin:center}
.motion-ready .reveal.visible,.motion-ready .entry-pop.visible{opacity:1;transform:none}
.motion-ready .inner-page .page-hero .shell > :not(.visible){opacity:0;transform:translateY(25px) scale(.955)}
.inner-page .display{font-family:Manrope,Arial,sans-serif}
.motion-ready .inner-page .reveal.visible{transition:none;animation:inner-page-pop 1000ms var(--pop-delay,0ms) backwards}
@keyframes inner-page-pop{
  0%{opacity:0;transform:translateY(36px) scale(.93);animation-timing-function:cubic-bezier(.22,.65,.3,1)}
  72%{opacity:1;transform:translateY(-2px) scale(1.008);animation-timing-function:ease-out}
  100%{opacity:1;transform:none}
}
.hero-content{transform:none;transition:none}
.hero h1,.cookie-banner b{font-family:Manrope,Arial,sans-serif}
.hero-video{background-image:url('assets/images/obra-portada.jpg');background-size:cover;background-position:center}
.lead-nudge{transition:bottom .3s,opacity .4s ease,transform .65s cubic-bezier(.16,1.3,.3,1),background .2s;transition-delay:0s,.65s,.65s,0s}
.cookie-banner{transition:opacity .45s ease,transform .6s cubic-bezier(.16,1.15,.3,1)}
.cookie-banner.visible{transition-delay:.8s}
@media(max-width:980px){
  /* A filtered header contains fixed descendants: free the full-screen menu. */
  .menu-open .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}
  .nav{height:100dvh;overflow-y:auto}
}
@media(max-width:700px){
  .intro-guides{inset:18px}.intro-corner{left:32px;top:37px;font-size:7px;letter-spacing:.17em}
  .intro-inner{transform:translateY(-8px)}
  .intro-word span{font-size:clamp(30px,8.3vw,50px)}
  .intro-inner .intro-subtitle{font-size:9px;letter-spacing:.4em}
  .intro-signature{font-size:11px}.intro-mark{margin-bottom:25px}
  .motion-ready .reveal{transform:translateY(18px) scale(.97)}
  .motion-ready .reveal.visible{transform:none}
}
@media(prefers-reduced-motion:reduce){
  html.intro-lock,body.intro-lock{overflow:auto;overscroll-behavior:auto}
  .brand-intro,.intro-lock .brand-intro{display:none}
  .motion-ready .reveal,.motion-ready .entry-pop,.motion-ready .inner-page .page-hero .shell > :not(.visible){opacity:1;transform:none;transition:none}
  .hero{background:var(--navy) url('assets/images/obra-portada.jpg') center/cover}
  .lead-nudge,.cookie-banner{transition:none}
  .motion-ready .inner-page .reveal.visible{animation:none;transform:none;opacity:1}
}
