/* The coming soon page: one black screen, on top of site.css. */
.soon { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; background: var(--stage); color: var(--on-stage); }
.soon-main { flex: 1; display: grid; align-items: center; padding-block: clamp(40px, 8vh, 96px); }
.soon-logo { width: clamp(132px, 16vw, 168px); height: auto; }
.soon-chip { margin-top: clamp(40px, 8vh, 80px); }
.soon h1 { margin-top: 18px; font-size: clamp(2.25rem, 9.2vw, 4.75rem); line-height: 1.12; font-weight: 800; letter-spacing: -0.035em; }
.soon-lede { margin-top: clamp(20px, 3vw, 28px); max-width: 38rem; font-size: clamp(1.125rem, 1rem + 0.6vw, 1.375rem); line-height: 1.55; color: var(--on-stage-soft); }
.soon-desk { margin-top: clamp(28px, 5vh, 44px); max-width: 26rem; }
.soon-desk .desk-words b { color: var(--ink); }
.soon-foot { padding-block: 0 32px; }
.soon-foot-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 32px; padding-top: 24px; border-top: 1px solid #37352E; }
.soon-promise { color: var(--on-stage-soft); }
@media (prefers-reduced-motion: no-preference) {
  .soon-logo, .soon-chip, .soon h1, .soon-lede, .soon-desk { animation: soon-in 700ms var(--ease-out) both; }
  .soon-chip { animation-delay: 80ms; }
  .soon h1 { animation-delay: 160ms; }
  .soon-lede { animation-delay: 260ms; }
  .soon-desk { animation-delay: 360ms; }
  .soon-desk.nope { animation: nope 420ms var(--ease-out); }
}
@keyframes soon-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes nope { 0%, 100% { transform: none; } 25% { transform: translateX(-7px); } 60% { transform: translateX(6px); } 85% { transform: translateX(-2px); } }
.soon-main .wrap { width: 100%; }
.soon-lede { margin-top: clamp(28px, 4vw, 40px); }
@media (max-width: 479px) { .soon .foot-contact .bar { display: none; } }
