.page-loader {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #1d1b20;
  color: #f3edf7;
  touch-action: none;
}
.page-loader__name {
  font-size: clamp(48px, 6.25vw, 80px);
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: -0.03em;
  white-space: nowrap;
  animation: loader-name-in 800ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.page-loader__count {
  position: absolute;
  right: clamp(24px, 3vw, 48px);
  bottom: clamp(24px, 3vw, 48px);
  font-size: clamp(96px, 12.5vw, 160px);
  font-weight: 300;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: -0.02em;
  animation: loader-count-in 650ms 150ms ease-out both;
}
.page-loader--complete {
  animation: loader-reveal 800ms 180ms cubic-bezier(0.76, 0, 0.24, 1) both;
}
@keyframes loader-name-in {
  from { opacity: 0; transform: scale(0.8); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes loader-count-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes loader-reveal {
  from { transform: translateY(0); }
  to { transform: translateY(-100%); }
}
@media (prefers-reduced-motion: reduce) {
  .page-loader { display: none; }
}
@media print {
  .page-loader { display: none; }
}
