/* ============================================================
   SERVEQUE — Mission-control preloader + liftoff reveal
   Self-contained (no dependency on main.css load order).
   Fails safe: auto-hides after 7s even if JS never runs.
   ============================================================ */
#preloader{
  position:fixed; inset:0; z-index:99999; background:#06090F;
  display:flex; align-items:center; justify-content:center; overflow:hidden;
  transition: transform .9s cubic-bezier(.7,0,.2,1);
  animation: pl-failsafe 0s linear 7s forwards;
}
@keyframes pl-failsafe{ to{ opacity:0; visibility:hidden; pointer-events:none; } }
#preloader.pl-launch{ transform:translateY(-110%); }

.pl-grain{ position:absolute; inset:-50%; opacity:.05; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.pl-aura{ position:absolute; width:60vw; height:60vw; left:50%; top:46%; transform:translate(-50%,-50%); border-radius:50%;
  background:radial-gradient(circle, rgba(31,95,160,.4), transparent 68%); filter:blur(60px); opacity:.7; }

.pl-core{ position:relative; z-index:2; text-align:center; width:min(420px,82vw); }
.pl-brand{ font-family:'Space Grotesk',sans-serif; font-size:.7rem; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:#5AB4E8; margin-bottom:30px; }
.pl-rocket{ width:36px; margin:0 auto 20px; animation: pl-vibe .12s infinite alternate; }
.pl-rocket svg{ width:100%; display:block; filter:drop-shadow(0 6px 16px rgba(90,180,232,.4)); }
#preloader.pl-launch .pl-rocket{ animation: pl-shoot .9s cubic-bezier(.55,0,.3,1) forwards; }
@keyframes pl-vibe{ from{ transform:translate(-.6px,0) } to{ transform:translate(.6px,-1px) } }
@keyframes pl-shoot{ to{ transform:translateY(-66vh) scale(.55); opacity:0; } }

.pl-num{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(3.2rem,12vw,5.4rem); color:#fff; line-height:1; letter-spacing:-.03em; }
.pl-num i{ font-style:normal; color:#5AB4E8; font-size:.36em; vertical-align:super; margin-left:5px; }
.pl-track{ width:100%; height:2px; background:rgba(140,180,235,.16); border-radius:2px; margin:26px 0 16px; overflow:hidden; }
.pl-bar{ height:100%; width:0%; background:linear-gradient(90deg,#8FD0F5,#5AB4E8); box-shadow:0 0 12px rgba(90,180,232,.7); }
.pl-status{ font-family:'Space Grotesk',sans-serif; font-size:.74rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:#92A4C6; min-height:1em; }

.pl-thrust{ position:absolute; left:50%; bottom:-60px; width:240px; height:240px; transform:translateX(-50%); border-radius:50%; opacity:0; pointer-events:none;
  background:radial-gradient(circle, rgba(143,208,245,.55), rgba(90,180,232,.25) 40%, transparent 66%); }
#preloader.pl-launch .pl-thrust{ animation: pl-thrust .85s ease forwards; }
@keyframes pl-thrust{ 0%{opacity:0;transform:translate(-50%,0) scale(.35);} 35%{opacity:1;} 100%{opacity:0; transform:translate(-50%,40px) scale(1.5);} }

html.pl-lock{ overflow:hidden !important; }
html.pl-skip #preloader{ display:none !important; }   /* already seen this session — never paint it */

@media (prefers-reduced-motion:reduce){
  #preloader{ transition:opacity .3s; }
  #preloader.pl-launch{ transform:none; opacity:0; }
  .pl-rocket{ animation:none; }
}
