/* =========================================================
   LOGO PRELOADER
   The flow mark rises in, then "FlowBack AI" and CONSULTING
   follow; once the page is ready the logo lifts out and the
   black layer fades to reveal the page. Shown once per visit.
   The inline head script adds html.fbpl-on; without it (no JS,
   or a repeat page view) none of this is visible.
   ========================================================= */
#fbpl{display:none}
html.fbpl-on{overflow:hidden}
html.fbpl-on #fbpl{
  --fbpl-ease:cubic-bezier(.22,1,.36,1);
  --fbpl-out:cubic-bezier(.7,0,.2,1);
  position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;
  background:#0C0A08;color:#FFFFFF;
  font-family:'Inter','Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;
  transition:opacity .8s var(--fbpl-out) .18s,visibility 0s linear .98s;
  /* Backstop: if the script never runs, the layer clears itself */
  animation:fbplSafety .6s ease 4.5s forwards
}
.fbpl-logo{display:flex;flex-direction:column;align-items:center;text-align:center;
  transition:transform .75s var(--fbpl-out),opacity .6s var(--fbpl-out)}
.fbpl-mark{display:block;width:118px;height:auto;margin:0 0 22px;filter:invert(1);
  opacity:0;transform:translateY(28px);animation:fbplIn .9s var(--fbpl-ease) .05s forwards}
.fbpl-name{display:block;font-size:38px;font-weight:500;letter-spacing:-.025em;line-height:1;
  opacity:0;transform:translateY(22px);animation:fbplIn .9s var(--fbpl-ease) .2s forwards}
.fbpl-sub{display:block;margin-top:14px;padding-left:.52em;font-size:12px;font-weight:500;letter-spacing:.52em;text-transform:uppercase;color:rgba(255,255,255,.62);
  opacity:0;transform:translateY(14px);animation:fbplSub 1s var(--fbpl-ease) .38s forwards}
.fbpl-bar{position:relative;width:120px;height:1px;margin-top:30px;background:rgba(255,255,255,.14);overflow:hidden;
  opacity:0;animation:fbplFade .6s ease .55s forwards}
.fbpl-bar::after{content:"";position:absolute;inset:0;background:#FFFFFF;transform:scaleX(0);transform-origin:0 50%;
  animation:fbplBar 1.4s var(--fbpl-ease) .55s forwards}

/* Exit */
html.fbpl-on #fbpl.is-out{opacity:0;visibility:hidden}
#fbpl.is-out .fbpl-logo{transform:translateY(-48px);opacity:0}

@keyframes fbplIn{to{opacity:1;transform:none}}
@keyframes fbplSub{from{letter-spacing:.8em}to{opacity:1;transform:none;letter-spacing:.52em}}
@keyframes fbplFade{to{opacity:1}}
@keyframes fbplBar{to{transform:scaleX(1)}}
@keyframes fbplSafety{to{opacity:0;visibility:hidden}}

@media (max-width:560px){
  .fbpl-mark{width:96px;margin-bottom:18px}
  .fbpl-name{font-size:30px}
  .fbpl-sub{font-size:11px}
}
@media (prefers-reduced-motion:reduce){
  .fbpl-mark,.fbpl-name,.fbpl-sub,.fbpl-bar{animation:fbplFade .4s ease forwards;transform:none}
  .fbpl-bar::after{animation:none;transform:scaleX(1)}
  #fbpl.is-out .fbpl-logo{transform:none}
}
