/* Milestone-based loader. Source: loader-disclaimer-demo.html
   (the disclaimer badge itself was removed in round 4 — see index.php). */

.loader-screen{
  position:absolute; inset:0; background:var(--ink); z-index:20;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:#fff; transition:opacity .6s ease;
}
.loader-screen.hidden{ opacity:0; pointer-events:none; }
.loader-percent{ font-size:15px; letter-spacing:.2em; font-variant-numeric:tabular-nums; }
.loader-label{ font-size:10px; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:12px; }

/* Stage 0 — full-page session loader. Peels away bottom-up on a clip-path
   transition, same mechanic as the Move On -> Work curtain-peel, so this
   reads as the same visual language rather than a bolted-on plugin. */
html.mcs-loading{ overflow:hidden; }
#pageLoader{
  position:fixed; inset:0; z-index:1000; background:var(--ink);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:18px;
  clip-path:inset(0 0 0% 0);
  transition:clip-path .7s cubic-bezier(.65,0,.35,1);
}
#pageLoader.peel{ clip-path:inset(0 0 100% 0); }
.page-loader-mark{
  color:#fff; font-size:13px; font-weight:700; letter-spacing:.35em; text-transform:uppercase;
}
.page-loader-track{
  width:min(220px, 40vw); height:2px; background:rgba(255,255,255,.18); overflow:hidden;
}
.page-loader-fill{
  width:100%; height:100%; background:#fff; transform-origin:left center; transform:scaleX(0);
  transition:transform .25s ease-out;
}
.page-loader-edge{
  position:absolute; left:-8px; right:-8px; bottom:0; height:2px; opacity:0;
  background:#fff;
  box-shadow:0 0 12px 3px rgba(255,255,255,.9), 0 0 32px 10px rgba(232,201,160,.55);
  pointer-events:none;
}
