/* The source symbol, colours and homepage remain owned by the existing brand. */
#qsc-splash {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2147483646;
  touch-action: none;
  contain: strict;
}
#qsc-splash > svg { display: block; width: 100%; height: 100%; overflow: hidden; }
html[data-qsc-splash] { overflow: hidden; scrollbar-gutter: stable; }
html[data-qsc-splash="pending"]::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  background: #024767;
}
/* Independent fail-open: an interrupted frame loop cannot cover the site forever. */
#qsc-splash { animation: qsc-splash-failsafe 1ms 4s forwards; }
@keyframes qsc-splash-failsafe { to { visibility: hidden; pointer-events: none; } }
/* The phone exit avoids enlarging a full-viewport SVG mask on WebKit. */
#qsc-splash.qsc-splash-mobile { background: #024767; }
.qsc-splash-mobile-mark { position: absolute; left: 50%; top: 50%; aspect-ratio: 1; transform: translate3d(-50%, -50%, 0); }
.qsc-splash-mobile-mark > svg { display: block; width: 100%; height: 100%; }
#qsc-splash.qsc-splash-mobile.is-opening { will-change: opacity; animation: qsc-splash-failsafe 1ms 4s forwards, qsc-splash-mobile-exit .44s .08s ease-in-out forwards; }
.qsc-splash-mobile.is-opening .qsc-splash-mobile-mark { will-change: transform; animation: qsc-splash-mobile-lift .52s cubic-bezier(.2,.65,.3,1) both; }
@keyframes qsc-splash-mobile-exit { to { opacity: 0; } }
@keyframes qsc-splash-mobile-lift { to { transform: translate3d(-50%, calc(-50% - 6px), 0) scale(1.1); } }
@media (prefers-reduced-motion: reduce) {
  #qsc-splash, html[data-qsc-splash]::before { display: none !important; }
  html[data-qsc-splash] { overflow: revert; }
}
