@font-face {
  font-family: "UN-11 ST Trial";
  src: url("assets/fonts/Hg407sAO5T7xHVGssvbmQHYsfHc.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "UN-11 ST Trial";
  src: url("assets/fonts/subzDjXD4PwlulANsrem7T1GSo.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

/* The supplied trial font omits some punctuation (including @).
   Preserve the reference's adjusted Arial fallback for those glyphs. */
@font-face {
  font-family: "UN-11 ST Trial Placeholder";
  src: local("Arial");
  ascent-override: 90.75%;
  descent-override: 22.45%;
  line-gap-override: 0%;
  size-adjust: 106.01%;
}

* { box-sizing: border-box; }

html {
  color-scheme: light;
  background: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  margin: 0;
  color: #000;
  font-family: "UN-11 ST Trial", "UN-11 ST Trial Placeholder", sans-serif;
  font-size: 10px;
  line-height: 1;
  letter-spacing: -0.04em;
}

h1, p { margin: 0; }

/* Center the complete 70px text group in the usable viewport.
   The footer stays independently anchored near the bottom. */
.landing {
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 280px;
  overflow: hidden;
  overflow: clip;
}

.intro, .contact, .signature {
  position: absolute;
  left: 50%;
  width: max-content;
  transform: translateX(-50%);
  text-align: center;
  white-space: pre;
}

.intro {
  top: calc(50% - 35px);
  display: grid;
  gap: 10px;
}

h1 {
  font-size: inherit;
  font-weight: 700;
  line-height: inherit;
}

.contact {
  top: calc(50% + 5px);
  padding-top: 20px;
  transform-origin: center;
  transition: transform 400ms cubic-bezier(0.2, 0.8, 0.2, 1.1);
  transition-timing-function: linear(0, 0.02241, 0.07939, 0.15808, 0.24859, 0.34353, 0.43755, 0.52693, 0.60932, 0.68333, 0.74837, 0.80439, 0.85176, 0.89109, 0.92313, 0.94875, 0.96879, 0.9841, 0.99545, 1.00356, 1.00908, 1.01254, 1.01443, 1.01513, 1.01499, 1.01425, 1.01313, 1.0118, 1.01037, 1.00893, 1.00755, 1.00627, 1.00511, 1.00408, 1.0032, 1.00244, 1.00181, 1.00129, 1.00088, 1.00055, 1);
}

.contact:active { transform: translateX(-50%) scale(0.9); }

.contact a {
  color: inherit;
  text-decoration: none;
}

.contact a:focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 5px;
}

.email-letters > span { display: inline-block; }

.signature {
  bottom: 23px;
  line-height: 1.2;
  font-variant-emoji: text;
}

@media (prefers-reduced-motion: no-preference) {
  .email-letters > span {
    animation: email-reveal 400ms both;
    animation-timing-function: cubic-bezier(0.2, 0.7, 0.2, 1);
    /* Sampled zero-bounce spring; the preceding curve supports older browsers. */
    animation-timing-function: linear(0, 0.02288, 0.07881, 0.1532, 0.23607, 0.32075, 0.40298, 0.48017, 0.55091, 0.61457, 0.67107, 0.72065, 0.76377, 0.80098, 0.83289, 0.8601, 0.88319, 0.90271, 0.91914, 0.93293, 0.94448, 0.95411, 0.96213, 0.9688, 0.97432, 0.9789, 0.98267, 0.98579, 0.98836, 0.99047, 0.99221, 0.99364, 0.99481, 0.99576, 0.99655, 0.99719, 0.99771, 0.99814, 0.99848, 0.99877, 1);
  }
  .email-letters > span:nth-child(2) { animation-delay: 50ms; }
  .email-letters > span:nth-child(3) { animation-delay: 100ms; }
  .email-letters > span:nth-child(4) { animation-delay: 150ms; }
  .email-letters > span:nth-child(5) { animation-delay: 200ms; }
  .email-letters > span:nth-child(6) { animation-delay: 250ms; }
  .email-letters > span:nth-child(7) { animation-delay: 300ms; }
  .email-letters > span:nth-child(8) { animation-delay: 350ms; }
  .email-letters > span:nth-child(9) { animation-delay: 400ms; }
  .email-letters > span:nth-child(10) { animation-delay: 450ms; }
  .email-letters > span:nth-child(11) { animation-delay: 500ms; }
  .email-letters > span:nth-child(12) { animation-delay: 550ms; }
  .email-letters > span:nth-child(13) { animation-delay: 600ms; }
  .email-letters > span:nth-child(14) { animation-delay: 650ms; }
  .email-letters > span:nth-child(15) { animation-delay: 700ms; }
  .email-letters > span:nth-child(16) { animation-delay: 750ms; }
  .email-letters > span:nth-child(17) { animation-delay: 800ms; }
  .email-letters > span:nth-child(18) { animation-delay: 850ms; }
  .email-letters > span:nth-child(19) { animation-delay: 900ms; }
  .email-letters > span:nth-child(20) { animation-delay: 950ms; }
  .email-letters > span:nth-child(21) { animation-delay: 1000ms; }
  .email-letters > span:nth-child(22) { animation-delay: 1050ms; }
  .email-letters > span:nth-child(23) { animation-delay: 1100ms; }
  .email-letters > span:nth-child(24) { animation-delay: 1150ms; }
  .email-letters > span:nth-child(25) { animation-delay: 1200ms; }
  .email-letters > span:nth-child(26) { animation-delay: 1250ms; }
}

@keyframes email-reveal {
  from { opacity: 0.001; filter: blur(10px); transform: translateY(10px); }
  to { opacity: 1; filter: none; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .contact { transition: none; }
  .contact:active { transform: translateX(-50%); }
}
