/* ═══════════════════════════════════════════
   GRINELY — Preloader
   ═══════════════════════════════════════════ */

.preloader{
  position:fixed;inset:0;z-index:99999;
  display:none;opacity:0;
  align-items:center;justify-content:center;
  transition:opacity .4s ease;
}
.preloader.is-visible{
  display:flex;opacity:1;
}
.preloader.is-hiding{opacity:0}

/* Light bg for light pages, dark for dark pages */
.preloader{background:#f0eeeb}
body.page-work .preloader,
body.page-vision .preloader,
body.page-contact .preloader{background:#0a0a0a}

/* ═══ INTRO MODE (first visit) ═══ */
.preloader__center{
  text-align:center;
  padding:2rem;
  width:min(90vw,900px);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:clamp(1.1rem,3.2vw,2.25rem);
  font-weight:700;
  line-height:1.35;
  letter-spacing:-.01em;
}
.preloader__line span{
  display:inline-block;
  opacity:0;
  color:#999;
  transform:translateY(6px);
  transition:opacity .35s ease,color .4s ease,transform .35s ease;
  margin-right:.25em;
}
.preloader__line span:last-child{margin-right:0}
.preloader__line span.reveal{
  opacity:1;transform:translateY(0);
}
.preloader__line.all-black span{color:#1a1a1a}

/* Dark page variant */
body.page-work .preloader__line span,
body.page-vision .preloader__line span,
body.page-contact .preloader__line span{color:#555}
body.page-work .preloader__line.all-black span,
body.page-vision .preloader__line.all-black span,
body.page-contact .preloader__line.all-black span{color:#fff}

/* Progress bar */
.preloader__bar{
  position:absolute;left:0;right:0;bottom:0;
  height:3px;background:rgba(0,0,0,.06);
}
.preloader__bar__fill{
  position:absolute;left:0;top:0;bottom:0;
  width:0%;background:#1a1a1a;
  transition:width .1s linear;
}
body.page-work .preloader__bar{background:rgba(255,255,255,.06)}
body.page-work .preloader__bar__fill{background:#fff}
body.page-vision .preloader__bar{background:rgba(255,255,255,.06)}
body.page-vision .preloader__bar__fill{background:#fff}
body.page-contact .preloader__bar{background:rgba(255,255,255,.06)}
body.page-contact .preloader__bar__fill{background:#fff}

/* ═══ SIMPLE MODE (subsequent pages) ═══ */
.preloader__logo{
  display:flex;align-items:center;justify-content:center;
}
.preloader__logo svg{
  width:70px;height:70px;
}
.preloader__logo svg path{
  fill:none;
  stroke:#1a1a1a;
  stroke-width:12;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:2200;
  stroke-dashoffset:2200;
  animation:drawG 2s cubic-bezier(.4,0,.2,1) infinite;
}
body.page-work .preloader__logo svg path,
body.page-vision .preloader__logo svg path,
body.page-contact .preloader__logo svg path{stroke:#fff}

@keyframes drawG{
  0%{stroke-dashoffset:2200}
  45%{stroke-dashoffset:0}
  55%{stroke-dashoffset:0}
  100%{stroke-dashoffset:-2200}
}

@media(prefers-reduced-motion:reduce){
  .preloader.is-visible{transition:none}
  .preloader__line span{transition:none}
  .preloader__logo svg path{animation:none;stroke-dashoffset:0;fill:#1a1a1a;stroke:none}
}
