/* Coordinated intro motion; the existing splash lifecycle owns visibility. */
#pageSplash {
  position: fixed;
  inset: 0;
  z-index: 2500;
  display: grid;
  place-items: center;
  padding: clamp(1.25rem, 4vw, 3rem);
  overflow: hidden;
  isolation: isolate;
  color: #10264d;
  background:
    radial-gradient(ellipse at 18% 24%, #dfebffb8, transparent 47%),
    radial-gradient(ellipse at 83% 78%, #ffe6ef94, transparent 45%),
    linear-gradient(132deg, #fbfdfff5, #f4f8fff2 53%, #fffafcf5);
  -webkit-backdrop-filter: blur(22px) saturate(.85);
  backdrop-filter: blur(22px) saturate(.85);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 540ms cubic-bezier(.22,.61,.36,1), visibility 0s 540ms;
}
#pageSplash::before {
  content: '';
  position: absolute;
  inset: -20%;
  z-index: -1;
  background: repeating-radial-gradient(ellipse at 50% 50%, transparent 0 98px, #8aa8d00c 99px 100px, transparent 101px 174px);
  opacity: .8;
  transform: rotate(-18deg) scale(1.2);
  -webkit-mask-image: linear-gradient(110deg, #000, transparent 45%, #000);
  mask-image: linear-gradient(110deg, #000, transparent 45%, #000);
  pointer-events: none;
}
#pageSplash::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(ellipse at center, #ffffffa8, #ffffff00 66%);
  pointer-events: none;
}
#pageSplash.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 540ms cubic-bezier(.22,.61,.36,1), visibility 0s;
}
#pageSplash.is-closing {
  opacity: 0;
  visibility: visible;
  pointer-events: none;
  transition: opacity 540ms cubic-bezier(.4,0,.2,1), visibility 0s 540ms;
}
#pageSplash .ms-intro-stage {
  position: relative;
  width: min(100%, 52rem);
  display: grid;
  justify-items: center;
  text-align: center;
  transform: translateY(-1rem);
  opacity: 1;
  transition: transform 520ms cubic-bezier(.22,.61,.36,1), opacity 440ms ease;
}
#pageSplash.is-closing .ms-intro-stage { transform: translateY(-1.7rem) scale(.985); opacity: 0; }
#pageSplash .ms-intro-scene { position: relative; width: min(100%, 38rem); aspect-ratio: 3 / 2; margin: 0 0 -2.5rem; }
#pageSplash .ms-intro-svg { display: block; width: 100%; height: 100%; overflow: visible; }
#pageSplash .ms-intro-orbits { transform-origin: 360px 240px; }
#pageSplash .ms-intro-route { stroke-dasharray: 1; stroke-dashoffset: 0; }
#pageSplash .ms-intro-orbit-light { stroke-dasharray: 2 8; }
#pageSplash .ms-intro-logo {
  position: absolute;
  left: 50%;
  top: 50%;
  display: block;
  width: clamp(6rem, 12vw, 8rem);
  height: auto;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 14px 22px #3159911c);
}
#pageSplash .ms-intro-brand {
  position: relative;
  margin: 0;
  color: #10264d;
  font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.065em;
}
#pageSplash .ms-intro-copy { width: min(100%, 29rem); margin-top: 1.4rem; }
#pageSplash .ms-intro-status {
  margin: 0;
  color: #275b9d;
  font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
  font-size: clamp(.62rem, 1.7vw, .72rem);
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.65;
  text-transform: uppercase;
}
#pageSplash .ms-intro-subtitle {
  margin: .6rem 0 0;
  color: #526581;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: clamp(.78rem, 1.8vw, .875rem);
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0;
  text-wrap: balance;
}
#pageSplash.is-open .ms-intro-svg { animation: ms-intro-field 950ms cubic-bezier(.22,.61,.36,1) both; }
#pageSplash.is-open .ms-intro-orbits { animation: ms-intro-orbit 42s linear 950ms infinite; }
#pageSplash.is-open .ms-intro-route { animation: ms-intro-connect 1050ms cubic-bezier(.16,.6,.26,1) both; }
#pageSplash.is-open .ms-intro-route-pink { animation-delay: 90ms; }
#pageSplash.is-open .ms-intro-halo { animation: ms-intro-breathe 4s ease-in-out 950ms infinite; }
#pageSplash.is-open .ms-intro-logo { animation: ms-intro-logo 760ms cubic-bezier(.16,.7,.26,1) 120ms both; }
#pageSplash.is-open .ms-intro-brand { animation: ms-intro-copy 700ms cubic-bezier(.16,.7,.26,1) 220ms both; }
#pageSplash.is-open .ms-intro-status { animation: ms-intro-copy 580ms ease-out 380ms both; }
#pageSplash.is-open .ms-intro-subtitle { animation: ms-intro-copy 580ms ease-out 480ms both; }
#pageSplash:not(.is-open) *,
#pageSplash:not(.is-open) *::before,
#pageSplash:not(.is-open) *::after { animation: none !important; }
@keyframes ms-intro-field { from { opacity: 0; transform: scale(.95); } to { opacity: 1; transform: scale(1); } }
@keyframes ms-intro-connect { from { stroke-dashoffset: 1; opacity: 0; } 18% { opacity: .9; } to { stroke-dashoffset: 0; opacity: .8; } }
@keyframes ms-intro-orbit { from { transform: rotate(0); } to { transform: rotate(360deg); } }
@keyframes ms-intro-breathe { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
@keyframes ms-intro-logo { from { opacity: 0; transform: translate(-50%, -45%) scale(.88); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes ms-intro-copy { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 520px) {
  #pageSplash .ms-intro-stage { transform: translateY(-.5rem); }
  #pageSplash .ms-intro-scene { width: calc(100% + .75rem); margin-bottom: -.7rem; }
  #pageSplash .ms-intro-copy { margin-top: 1.1rem; }
  #pageSplash .ms-intro-status { max-width: 15rem; margin-inline: auto; letter-spacing: .12em; }
  #pageSplash .ms-intro-subtitle { max-width: 19rem; margin-inline: auto; }
}
@media (max-height: 560px) and (min-width: 521px) {
  #pageSplash .ms-intro-scene { width: 24rem; margin-bottom: -1.5rem; }
  #pageSplash .ms-intro-logo { width: 6rem; }
  #pageSplash .ms-intro-brand { font-size: 2.65rem; }
  #pageSplash .ms-intro-copy { margin-top: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  #pageSplash, #pageSplash *, #pageSplash *::before, #pageSplash *::after { animation: none !important; transition: none !important; }
  #pageSplash .ms-intro-route { stroke-dashoffset: 0; opacity: .8; }
  #pageSplash .ms-intro-logo { opacity: 1; transform: translate(-50%, -50%); }
  #pageSplash .ms-intro-brand, #pageSplash .ms-intro-status, #pageSplash .ms-intro-subtitle { opacity: 1; transform: none; }
}
