/* Same timing and composition as BlackPassLaunchView on macOS. */
html:has(body:not([data-launch-phase="complete"])) { overflow: hidden; }
body:not([data-launch-phase="complete"]) {
  overflow: hidden;
  overscroll-behavior: none;
}
body:not([data-launch-phase="complete"]) #site-shell {
  --arrival-opacity: .45;
  transform-origin: center top;
  transition: filter 1.35s cubic-bezier(.22,.8,.2,1),
    transform 1.35s cubic-bezier(.22,.8,.2,1),
    opacity 1.35s cubic-bezier(.22,.8,.2,1);
  pointer-events: none;
}
body:is([data-launch-phase="waiting"], [data-launch-phase="presenting"]) #site-shell {
  filter: blur(22px);
  transform: scale(1.025);
  opacity: .65;
}
body:is([data-launch-phase="waiting"], [data-launch-phase="presenting"]) #site-shell *,
body:is([data-launch-phase="waiting"], [data-launch-phase="presenting"]) #site-shell *::before,
body:is([data-launch-phase="waiting"], [data-launch-phase="presenting"]) #site-shell *::after {
  animation-play-state: paused !important;
}
body[data-launch-phase="revealing"] #site-shell {
  filter: blur(0);
  transform: scale(1);
  opacity: 1;
}
.launch-overlay {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: grid;
  place-items: center;
  padding: 32px 24px;
  overflow-y: auto;
  background: rgb(8 8 11 / 32%);
  opacity: 1;
  transition: opacity 1.35s cubic-bezier(.22,.8,.2,1);
  outline: none;
}
.launch-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
  opacity: 0;
  transform: translateY(10px) scale(.94);
  filter: blur(0);
  transition: opacity .7s ease-in-out, transform .7s ease-in-out, filter .7s ease-in-out;
}
.launch-card, .launch-card:disabled {
  display: block;
  width: min(228px, calc(100vw - 80px));
  padding: 0;
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  opacity: 1;
  touch-action: manipulation;
}
.launch-card img { width: 100%; height: auto; }
.launch-card:focus-visible { outline-offset: 10px; }
.launch-title {
  position: relative;
  margin: 0;
  color: #f6f4fa;
  font-size: 36px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -1.1px;
}
.launch-reflection {
  position: absolute;
  inset: 0;
  color: transparent;
  background: linear-gradient(110deg, transparent 35%, #aa7afa 45%, #e5d4ff 50%, #aa7afa 55%, transparent 65%);
  background-size: 300% 100%;
  background-position: 100% 0;
  background-clip: text;
  -webkit-background-clip: text;
  animation: launch-reflection 6.5s linear infinite;
}
#launch-hint { margin: 0; color: #9995a4; font-size: 12px; }
body[data-launch-phase="presenting"] .launch-brand { opacity: 1; transform: none; }
body[data-launch-phase="revealing"] .launch-brand { opacity: 0; transform: scale(1.035); filter: blur(6px); }
body[data-launch-phase="revealing"] .launch-overlay { opacity: 0; }
body:not([data-launch-phase="presenting"]) .launch-reflection,
.launch-overlay[data-background="true"] .launch-reflection { animation-play-state: paused; }
.launch-noscript {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: grid;
  place-items: center;
  padding: 32px;
  background: var(--bg);
  text-align: center;
}
@keyframes launch-reflection {
  0% { background-position: 100% 0; }
  58.46%, 100% { background-position: 0% 0; }
}
@media (prefers-reduced-motion: reduce) {
  body:not([data-launch-phase="complete"]) #site-shell {
    filter: none;
    transform: none;
    transition: opacity .25s ease-in-out !important;
  }
  .launch-overlay { background: rgb(8 8 11 / 96%); transition: opacity .25s ease-in-out !important; }
  .launch-brand,
  body[data-launch-phase="revealing"] .launch-brand {
    transform: none;
    filter: none;
    transition: opacity .2s ease-in-out !important;
  }
  .launch-reflection { display: none; }
}
