:root {
  --black: #000000;
  --white: #f5f5f5;
  --carmine: #970f22;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  background: #000000;
}

body {
  overflow: hidden;
  background: #000000;
  color: var(--white);
  font-family: "Bebas Neue", sans-serif;
}

.landing {
  position: relative;
  min-height: 100vh;
  display: grid;
  place-items: center;
  background: #000000;
}

.hero {
  width: min(92vw, 980px);
  display: grid;
  place-items: center;
  text-align: center;
  padding: 24px;
}

.logo-stage {
  position: relative;
  width: min(84vw, 720px);
  margin-bottom: 42px;
  opacity: 0;
  transform: translateY(14px);
  animation: logoIn 1s ease-out 0.15s forwards;
}

.logo {
  width: 100%;
  height: auto;
  display: block;
  filter:
    drop-shadow(0 18px 30px rgba(0,0,0,0.95))
    drop-shadow(0 0 12px rgba(151,15,34,0.16));
}

.wipe {
  position: absolute;
  inset: -10% -38%;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    transparent 42%,
    rgba(255,255,255,0.45) 50%,
    rgba(151,15,34,0.75) 55%,
    transparent 66%,
    transparent 100%
  );
  transform: translateX(-115%) skewX(-18deg);
  animation: wipeAcross 1s ease 1s forwards;
}

.coming-soon {
  margin: 0;
  opacity: 0;
  transform: translateY(18px);
  font-size: clamp(5rem, 12vw, 11rem);
  line-height: 0.9;
  letter-spacing: 0.16em;
  color: #ffffff;
  text-shadow:
    0 8px 20px rgba(0,0,0,0.95),
    0 0 10px rgba(151,15,34,0.18);
  animation: textIn 0.9s ease 1.7s forwards;
}

@keyframes logoIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes wipeAcross {
  0% {
    opacity: 0;
    transform: translateX(-115%) skewX(-18deg);
  }

  20% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translateX(115%) skewX(-18deg);
  }
}

@keyframes textIn {
  from {
    opacity: 0;
    transform: translateY(18px);
    letter-spacing: 0.28em;
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 640px) {
  .logo-stage {
    width: 96vw;
  }

  .coming-soon {
    font-size: clamp(4rem, 18vw, 7rem);
  }
}
