.landing-intro { display: none; }
html.landing-intro-pending .landing-intro {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #fbfaf7;
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}
.landing-intro img {
  display: block;
  width: min(60vmin, calc(100vw - 40px), calc(100vh - 40px));
  height: auto;
  grid-area: 1 / 1;
}
.landing-intro-clock {
  opacity: 0;
  transform: scale(.96);
  filter: drop-shadow(0 0 0 rgba(255, 196, 0, 0));
  animation: landing-clock-arrive 440ms cubic-bezier(.2,.75,.25,1) 40ms forwards,
    landing-clock-glow 1.2s ease-in-out 480ms infinite alternate;
}
.landing-intro-confirmation {
  opacity: 0;
  transform: scale(.96);
  transition: opacity 340ms ease, transform 420ms cubic-bezier(.2,.75,.25,1);
}
html.landing-intro-confirmed .landing-intro-clock {
  opacity: 0;
  transform: scale(.94);
  animation: none;
  transition: opacity 340ms ease, transform 420ms ease;
}
html.landing-intro-confirmed .landing-intro-confirmation {
  opacity: 1;
  transform: scale(1);
}
html.landing-intro-leaving .landing-intro {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.015);
  transition: opacity 1000ms cubic-bezier(.2,.7,.25,1), transform 1000ms cubic-bezier(.2,.7,.25,1), visibility 0s linear 1000ms;
}
@keyframes landing-clock-arrive {
  to { opacity: 1; transform: scale(1); filter: drop-shadow(0 0 14px rgba(255,196,0,.18)); }
}
@keyframes landing-clock-glow {
  from { filter: drop-shadow(0 0 10px rgba(255,196,0,.12)); }
  to { filter: drop-shadow(0 0 19px rgba(255,196,0,.25)); }
}
@media (prefers-reduced-motion: reduce) {
  html.landing-intro-pending .landing-intro,
  .landing-intro img { animation: none; transition: none; }
  .landing-intro-confirmation { opacity: 1; transform: none; }
  .landing-intro-confirmation .check { stroke-dashoffset: 0; }
}
