/* ============================================================
   SPTech24 — preloader.css
   «Power-on диагностики»: рисуется лого-плата, бежит ток,
   заполняется бар → шторка уезжает вверх. Показывается на каждой загрузке.
   ============================================================ */

html.is-loading,html.is-loading body{overflow:hidden}

.preloader{
  position:fixed;inset:0;z-index:500;
  display:grid;place-items:center;
  background:
    radial-gradient(120% 80% at 50% 30%, color-mix(in oklab,var(--accent) 7%,var(--bg)), var(--bg) 70%);
  transform:translateY(0);
  transition:transform .6s var(--ease-inout);
  will-change:transform;
}
.preloader.is-done{transform:translateY(-100%)}
.preloader.is-removed{display:none}
/* светящаяся кромка шторки в момент подъёма */
.preloader::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  opacity:0;transition:opacity .3s var(--ease-out);
}
.preloader.is-done::after{opacity:1}

.preloader__inner{
  display:flex;flex-direction:column;align-items:center;gap:1.4rem;
  width:min(82vw,320px);
}

/* лого-плата */
.preloader__mark{width:84px;height:84px}
.preloader__mark .pl-frame{
  fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:300;stroke-dashoffset:300;
  animation:pl-draw .7s var(--ease-out) .05s forwards;
}
.preloader__mark .pl-trace{
  fill:none;stroke:var(--accent-hi);stroke-width:2.4;stroke-linecap:round;
  stroke-dasharray:120;stroke-dashoffset:120;
  filter:drop-shadow(0 0 5px var(--glow));
  animation:pl-draw .55s var(--ease-out) .5s forwards;
}
.preloader__mark .pl-node{
  fill:var(--accent-hi);opacity:0;transform-box:fill-box;transform-origin:center;
  filter:drop-shadow(0 0 5px var(--glow));
  animation:pl-node .4s var(--ease-out) forwards;
}
.preloader__mark .pl-node:nth-of-type(1){animation-delay:.55s}
.preloader__mark .pl-node:nth-of-type(2){animation-delay:.72s}
.preloader__mark .pl-node:nth-of-type(3){animation-delay:.9s}

/* словесный знак */
.preloader__brand{
  font-weight:800;letter-spacing:-0.03em;font-size:1.5rem;color:var(--ink);
  opacity:0;transform:translateY(8px);
  animation:pl-up .5s var(--ease-out) .55s forwards;
}
.preloader__brand i{color:var(--accent);font-style:normal}

/* прогресс */
.preloader__bar{
  width:100%;height:3px;border-radius:3px;overflow:hidden;
  background:var(--line);
}
.preloader__bar span{
  display:block;height:100%;width:100%;border-radius:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent-hi));
  transform:scaleX(0);transform-origin:left;
  animation:pl-bar 1s var(--ease-out) .2s forwards;
}
.preloader__status{
  font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);
}

@keyframes pl-draw{to{stroke-dashoffset:0}}
@keyframes pl-node{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}
@keyframes pl-up{to{opacity:1;transform:none}}
@keyframes pl-bar{to{transform:scaleX(1)}}

@media (prefers-reduced-motion: reduce){
  .preloader,.preloader *{animation:none !important;transition:none !important}
  .preloader{display:none}
  html.is-loading,html.is-loading body{overflow:auto}
}
