/* The launch surface shares the exact background of the original Nicacio logo. */
#launchSplash { display: none; }
html.launch-pending { background: #702499; }
html.launch-pending body { overflow: hidden; }
html.launch-pending .app-shell { visibility: hidden; }
html.launch-pending #launchSplash {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  grid-template-rows: 1fr auto;
  place-items: center;
  box-sizing: border-box;
  padding: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
  background: #702499;
  color: #fff;
  font-family: Arial, sans-serif;
  text-align: center;
}
.launch-brand { width: min(100%, 580px); align-self: center; padding: 24px 0; }
.launch-logo { display: block; width: clamp(270px, 42vw, 440px); max-width: 75vw; height: auto; margin: 0 auto; }
.launch-fallback { display: none; font-size: clamp(28px, 5vw, 48px); letter-spacing: .12em; }
.launch-logo-failed .launch-logo { display: none; }
.launch-logo-failed .launch-fallback { display: block; padding: 60px 0; }
.launch-rule { display: block; width: 52px; height: 2px; margin: 0 auto 25px; background: #f9df65; transform-origin: center; }
#launchSplash .launch-slogan { margin: 0 auto; max-width: none; white-space: nowrap; font-size: clamp(11px, 1.7vw, 17px); font-weight: 400; line-height: 1.4; letter-spacing: .01em; color: #fff; }
.launch-slogan strong { display: inline; font-weight: 600; color: #ffedaa; }
.launch-skip { min-height: 46px; padding: 10px 22px; border: 1px solid #cbb0de; border-radius: 50px; background: transparent; color: #fff; font: inherit; font-size: 14px; letter-spacing: .025em; cursor: pointer; }
.launch-skip:hover { background: #ffffff12; }
.launch-skip:focus-visible { outline: 3px solid #ffdf47; outline-offset: 5px; }
.launch-playing .launch-logo, .launch-playing .launch-fallback { animation: launch-logo-in 900ms cubic-bezier(.2,.7,.2,1) both; }
.launch-playing .launch-rule { animation: launch-rule-in 650ms 350ms ease both; }
.launch-playing .launch-slogan { animation: launch-copy-in 750ms 600ms ease both; }
.launch-playing .launch-slogan strong { animation: launch-copy-in 750ms 850ms ease both; }
html.launch-pending.launch-leaving .app-shell { visibility: visible; }
html.launch-pending.launch-leaving #launchSplash { pointer-events: none; animation: launch-out 450ms ease both; }
@keyframes launch-logo-in { from { opacity: 0; transform: translateY(12px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes launch-rule-in { from { opacity: 0; transform: scaleX(0); } to { opacity: 1; transform: scaleX(1); } }
@keyframes launch-copy-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes launch-out { to { opacity: 0; visibility: hidden; } }
@media (max-height: 500px) {
  .launch-brand { padding: 0; }
  .launch-logo { width: 165px; }
  .launch-rule { margin-bottom: 12px; }
  #launchSplash .launch-slogan { font-size: 14px; }
  .launch-slogan strong { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
  #launchSplash *, html.launch-pending.launch-leaving #launchSplash { animation: none !important; }
}
@media print { #launchSplash { display: none !important; } html.launch-pending .app-shell { visibility: visible; } }
