*,
*::before,
*::after { box-sizing: border-box; }

html,
body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: #000000;
}

body {
  color: #ffffff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.stage {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(2rem, 8vmin, 6rem);
}

.mark {
  display: block;
  width: min(58vw, 46vh, 380px);
  height: auto;
  opacity: 0;
  transform: translateY(10px);
  animation: mark-reveal 1.4s cubic-bezier(0.22, 0.61, 0.36, 1) 0.15s both;
}

.contact {
  margin: clamp(2.25rem, 7vmin, 4.5rem) 0 0;
  font-family: "Cormorant Garamond", "EB Garamond", Garamond, "Times New Roman", serif;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(0.95rem, 0.9rem + 0.45vw, 1.3rem);
  letter-spacing: 0.06em;
  line-height: 1;
  text-align: center;

  opacity: 0;
  transform: translateY(6px);
  clip-path: inset(0 100% 0 0);
  animation: line-reveal 1.25s cubic-bezier(0.22, 0.61, 0.36, 1) 0.75s both;
}

.contact a {
  color: rgba(255, 255, 255, 0.78);
  text-decoration: none;
  transition: color 600ms ease;
}

.contact a:hover,
.contact a:focus-visible {
  color: #ffffff;
}

@keyframes mark-reveal {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes line-reveal {
  from { opacity: 0; transform: translateY(6px); clip-path: inset(0 100% 0 0); }
  to   { opacity: 1; transform: translateY(0);   clip-path: inset(0 0 0 0); }
}

@media (prefers-reduced-motion: reduce) {
  .mark,
  .contact {
    animation: none;
    opacity: 1;
    transform: none;
    clip-path: none;
  }

  .contact a { transition: none; }
}
