/* designer.gr — Preloader (από το Concept 12). Μόνο ο preloader· χωρίς μεταβάσεις σελίδων. */

:root { --ease-out: cubic-bezier(.16, 1, .3, 1); }

html.pl-on, html.pl-on body { overflow: hidden; }
.pl {
  position: fixed; inset: 0; z-index: 200; overflow: hidden; cursor: pointer;
  background:
    radial-gradient(42vmax 34vmax at 14% 10%, #c8ecff 0%, transparent 60%),
    radial-gradient(36vmax 30vmax at 90% 16%, #e1d8ff 0%, transparent 60%),
    radial-gradient(34vmax 28vmax at 78% 82%, #ffe0d1 0%, transparent 60%),
    var(--bg);
}
.pl[hidden] { display: none; }
.pl-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.pl-count {
  position: absolute; left: var(--gutter); bottom: calc(var(--gutter) * .6 + 18px);
  font-size: clamp(72px, 13vw, 200px); font-weight: 800; letter-spacing: -0.06em; line-height: .8;
  font-variant-numeric: tabular-nums; color: var(--ink);
}
.pl-count::after { content: "%"; font-size: .28em; letter-spacing: 0; margin-left: .12em; vertical-align: top; color: var(--accent); }
.pl-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(15, 18, 34, .06); }
.pl-bar i { position: absolute; inset: 0; background: var(--grad); transform-origin: 0 50%; transform: scaleX(0); }
.pl-skip {
  position: absolute; right: var(--gutter); bottom: calc(var(--gutter) * .6 + 18px);
  font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3);
  animation: pl-blink 2.4s ease-in-out infinite;
}
@keyframes pl-blink { 50% { opacity: .35; } }
/* κουρτίνα εξόδου: 5 στήλες με το gradient του brand ανεβαίνουν, καλύπτουν, και φεύγουν προς τα πάνω */
.pl-curtain { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(5, 1fr); pointer-events: none; }
.pl-curtain i { display: block; background: linear-gradient(180deg, var(--accent), var(--accent-2)); transform: translateY(101%); }
.pl.pl-clear { background: transparent; }
.pl.pl-clear .pl-canvas, .pl.pl-clear .pl-count, .pl.pl-clear .pl-bar, .pl.pl-clear .pl-skip { opacity: 0; }

/* Είσοδος του hero μετά το preloader */
body.intro .hero h1, body.intro .hero-lead, body.intro .hero-cta, body.intro .hero-visual, body.intro .trust {
  animation: rise .9s var(--ease-out) both;
}
body.intro .hero-lead { animation-delay: .08s; }
body.intro .hero-cta { animation-delay: .16s; }
body.intro .hero-visual { animation: rise-v 1.1s var(--ease-out) .05s both; }
body.intro .trust { animation-delay: .26s; }
@keyframes rise { from { opacity: 0; transform: translateY(36px); clip-path: inset(0 0 100% 0); } to { clip-path: inset(0 0 -20% 0); } }
@keyframes rise-v { from { opacity: 0; transform: scale(.92); filter: blur(10px); } }

@media (prefers-reduced-motion: reduce) {
  .pl { display: none !important; }
  body.intro .hero h1, body.intro .hero-lead, body.intro .hero-cta, body.intro .hero-visual, body.intro .trust { animation: none; }
}
