/* ---------- Splash screen: FML Capital logo ----------
   Replaces the theme's bouncing-dots preloader. Animation runs only when
   <html> has .fml-splash-anim (first view per session, motion allowed). */
.preloader.fml-splash{
  background:#FFFFFF;
  filter:none;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:opacity .7s cubic-bezier(.16,1,.3,1), visibility 0s linear .7s;
}
.fml-splash-logo{
  display:block;
  height:min(60vh, 460px);
  width:auto;
  max-width:70vw;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
}
.fml-splash.is-out{ opacity:0; visibility:hidden; }
.fml-splash.is-out .fml-splash-logo{ transform:scale(1.04); }

/* --- entrance sequence --- */
.fml-splash-anim .sp-globe > *{
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:spDraw 1.1s cubic-bezier(.65,0,.35,1) forwards;
}
.fml-splash-anim .sp-globe > :nth-child(2){ animation-delay:.12s; }
.fml-splash-anim .sp-globe > :nth-child(3){ animation-delay:.22s; }
.fml-splash-anim .sp-globe > :nth-child(4){ animation-delay:.32s; }
.fml-splash-anim .sp-globe > :nth-child(5){ animation-delay:.42s; }

.fml-splash-anim .sp-orbit{
  clip-path:inset(0 100% 0 0);
  animation:spSweep .9s cubic-bezier(.16,1,.3,1) .75s forwards;
}
.fml-splash-anim .sp-fml{
  opacity:0;
  animation:spRise .8s cubic-bezier(.16,1,.3,1) 1.05s forwards;
}
.fml-splash-anim .sp-rule{
  transform-box:fill-box;
  transform-origin:center;
  transform:scaleX(0);
  animation:spRule .7s cubic-bezier(.16,1,.3,1) 1.35s forwards;
}
.fml-splash-anim .sp-cap{
  opacity:0;
  animation:spFade .7s ease 1.6s forwards;
}
@keyframes spDraw{ to{ stroke-dashoffset:0; } }
@keyframes spSweep{ to{ clip-path:inset(0 0 0 0); } }
@keyframes spRise{ from{ opacity:0; translate:0 22px; } to{ opacity:1; translate:0 0; } }
@keyframes spRule{ to{ transform:scaleX(1); } }
@keyframes spFade{ to{ opacity:1; } }

@media (prefers-reduced-motion: reduce){
  .fml-splash-anim .fml-splash-logo *{ animation:none !important; }
  .fml-splash.is-out .fml-splash-logo{ transform:none; }
}
