:root {
  --bg: #070708;
  --ink: #f4f3f0;
  --muted: #9a9893;
  --gold: #e8c47a;

  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --font: "Inter Tight", system-ui, sans-serif;
  --display: "Cormorant Garamond", "Times New Roman", serif;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0;
  overflow: hidden; /* one screen, nothing to scroll */
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--ink); color: var(--bg); }

#smoke, #sparks {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}
#smoke { animation: fade 2400ms var(--ease) both; }
@keyframes fade { from { opacity: 0; } }

.hero {
  position: relative;
  z-index: 1;
  height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0 16px;
}
h1 {
  margin: 0;
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(5rem, 1.5rem + 14vw, 15rem);
  letter-spacing: 0;
  line-height: 0.9;
  /* room for the y's descender, which the text-clipped sheen would otherwise cut off */
  padding: 0.04em 0.06em 0.2em;
  margin-bottom: -0.2em;
  /* a slow sheen of light passes across the letters */
  background: linear-gradient(100deg, var(--ink) 42%, #fff7e0 50%, var(--ink) 58%) 0 0 / 300% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: rise 900ms var(--ease) 200ms both, sheen 8s ease-in-out 2s infinite;
}
.soon {
  margin: 32px 0 0;
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
  font-weight: 400;
  letter-spacing: 0.04em;
  color: var(--gold);
  animation: rise 900ms var(--ease) 350ms both;
}
.foot {
  position: fixed;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: 24px;
  text-align: center;
  font-family: var(--display);
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--muted);
  animation: rise 900ms var(--ease) 500ms both;
}

@keyframes rise { from { opacity: 0; transform: translateY(16px); } }
@keyframes sheen {
  0% { background-position: 100% 0; }
  40%, 100% { background-position: 0 0; }
}

@media (prefers-reduced-motion: reduce) {
  h1, .soon, .foot, #smoke { animation: none; }
}
