@font-face {
  font-family: "Open Sans";
  src: url("assets/open-sans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
}

:root {
  color-scheme: light;
  --background: #e6d7fb;
  --ink: #8338ec;
  --accent: #ff3b3b;
  --white: #fff;
  font-family: "Open Sans", Arial, sans-serif;
  font-synthesis: weight;
}

* { box-sizing: border-box; }

body { margin: 0; }

.page {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow-x: hidden;
  background: var(--background);
  color: var(--ink);
}

.hero {
  flex: 1;
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
  perspective: 1000px;
}

.badge {
  border-radius: 999px;
  padding: 16px 40px;
  background: var(--accent);
  box-shadow: 0 8px 30px #ff3b3b73;
  color: var(--white);
  font-size: 20px;
  font-weight: 900;
  letter-spacing: .2em;
  line-height: 28px;
  text-transform: uppercase;
  animation: enter 1s .4s cubic-bezier(.22, 1, .36, 1) both;
}

.wordmark-wrap {
  max-width: 100%;
  animation: enter 1s .65s cubic-bezier(.22, 1, .36, 1) both;
}

.wordmark {
  margin: 0;
  color: var(--ink);
  font-size: 60px;
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: 1;
  user-select: none;
}

.wordmark span {
  display: inline-block;
  margin-right: .1em;
  text-shadow: -4px -4px var(--background), 4px -4px var(--background),
    -4px 4px var(--background), 4px 4px var(--background),
    -4px 0 var(--background), 4px 0 var(--background),
    0 -4px var(--background), 0 4px var(--background);
  cursor: pointer;
  transition: transform .7s cubic-bezier(.34, 1.56, .64, 1), filter .2s ease;
}

.wordmark span.is-hovered {
  transform: translate(var(--x), var(--y)) rotate(var(--rotation)) scale(var(--scale));
  filter: drop-shadow(8px 8px 12px #8338ec66);
  transition-duration: .6s, .2s;
  transition-timing-function: cubic-bezier(.2, 1.5, .5, 1), ease;
}

.cta {
  border-radius: 999px;
  padding: 12px 24px;
  background: var(--ink);
  color: var(--white);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  text-decoration: none;
  transition: opacity .15s ease;
  animation: enter 1s .9s cubic-bezier(.22, 1, .36, 1) both;
}

.cta:hover { opacity: .8; }
.cta:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }

footer {
  padding: 0 16px 32px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
}

@media (min-width: 768px) {
  .badge { font-size: 24px; line-height: 32px; }
  .wordmark { font-size: 96px; }
}

@media (max-height: 430px) {
  .hero { gap: 20px; padding: 24px 0; }
  footer { padding-bottom: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
  .wordmark span.is-hovered { transform: none; filter: none; }
}

@keyframes enter {
  from { opacity: 0; filter: blur(16px); transform: translateZ(-200px) scale(1.5); }
  to { opacity: 1; filter: blur(0); transform: translateZ(0) scale(1); }
}
