/* Logo intro: one continuous transition from the opening lockup to the header logo (logo-intro.js).
   Layers: html.intro-active::before (pre-render veil, fails open at 4.5 s) -> #logoIntro.is-running
   (veil + flying box, fails open at 4.5 s) -> html.intro-lock (scroll lock, header logo hidden, fails open at 4.6 s).
   Scroll is unlocked during the 120 ms hold (html.intro-flying keeps the header logo hidden) so any reflow
   happens under the solid veil. html.intro-landed is set the instant the flying box covers the header logo; the real <img> is shown
   underneath it and the box fades out, so nothing swaps, duplicates or shifts. */
.logo-intro{display:none}
html.intro-active::before{content:"";position:fixed;inset:0;z-index:9998;background:#fff;animation:ula-intro-fail 0s 4.5s forwards}
html.intro-active.intro-rendered::before{display:none}
.logo-intro.is-running{display:block;position:fixed;inset:0;z-index:9999;overflow:hidden;cursor:pointer;isolation:isolate;animation:ula-intro-fail 0s 4.5s forwards!important}
.logo-intro.is-landing{cursor:default;pointer-events:none}
.logo-intro__veil{position:absolute;inset:0;background:radial-gradient(ellipse 75% 65% at 50% 50%,#fff 40%,#eef2fa 100%);pointer-events:none;will-change:opacity}
.logo-intro__anim{position:fixed;left:0;top:0;width:auto;aspect-ratio:auto;flex:none;transform-origin:0 0;will-change:transform,opacity;pointer-events:none}
.logo-intro__anim svg{display:block;width:100%;height:100%;overflow:hidden}
.logo-intro__anim .logo-intro__final{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;pointer-events:none}
.logo-intro__skip{position:absolute;inset-inline-end:18px;bottom:16px;background:none;border:0;padding:12px;color:#0c1d55;font:600 12px/1.4 var(--f-text,Arial,sans-serif);letter-spacing:.06em;cursor:pointer}
.intro-lock{overflow:hidden;scrollbar-gutter:stable;animation:ula-intro-unlock 0s 4.6s forwards}
.intro-lock .ula-header .logo img,html.intro-flying .ula-header .logo img{opacity:0;animation:ula-intro-logo 0s 4.6s forwards}
html.intro-landed .ula-header .logo img{opacity:1!important;animation:none!important}
@keyframes ula-intro-fail{to{opacity:0;visibility:hidden;pointer-events:none}}
@keyframes ula-intro-unlock{to{overflow:visible}}
@keyframes ula-intro-logo{to{opacity:1}}
@keyframes ula-intro-reduced{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
  html.intro-active::before,.logo-intro.is-running{display:none!important}
  .intro-lock{overflow:visible!important}
  .intro-lock .ula-header .logo img{opacity:1!important}
  html.intro-reduced body{animation:ula-intro-reduced .25s ease-out both!important}   /* wins over landing.css's global animation:none!important because this file loads later */
}
