/* =========================================================
   Site intro (logo splash) + Enroll modal
   ========================================================= */

/* ---- Intro splash ---- */
#site-intro{
  position:fixed;
  inset:0;
  z-index:5000;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--ink-900);
  transition:opacity .5s ease, visibility .5s ease;
}
#site-intro__mark{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:18px;
}
#site-intro img{
  width:96px;
  height:auto;
  animation:introPulse 1.2s ease-in-out infinite;
}
#site-intro__bar{
  width:120px;
  height:3px;
  border: radius 5px;
  background:rgba(255,255,255,.14);
  overflow:hidden;
}
#site-intro__bar span{
  display:block;
  width:40%;
  height:100%;
  background:var(--sky-400);
  animation:introBar 1.1s ease-in-out infinite;
}
#site-intro.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
@keyframes introPulse{
  0%,100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.08); opacity:.85; }
}
@keyframes introBar{
  0%{ transform:translateX(-120%); }
  100%{ transform:translateX(280%); }
}
@media (prefers-reduced-motion: reduce){
  #site-intro img{ animation:none; }
  #site-intro__bar span{ animation:none; width:100%; }
}

body.no-scroll{ overflow:hidden; }

/* ---- Enroll modal ---- */
.modal-overlay{
  position:fixed;
  inset:0;
  z-index:4000;
  background:rgba(22,27,61,.55);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease, visibility .25s ease;
}
.modal-overlay.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.modal-dialog{
  position:relative;
  width:100%;
  max-width:600px;
  max-height:88vh;
  overflow-y:auto;
  background:var(--paper-0);
  border-radius:var(--radius-lg);
  padding:clamp(26px,4vw,40px);
  box-shadow:var(--shadow-soft);
  transform:translateY(18px);
  transition:transform .25s ease;
}
.modal-overlay.is-open .modal-dialog{ transform:translateY(0); }
.modal-dialog .eyebrow{ margin-bottom:.5em; }
.modal-dialog h2{ font-size:1.5rem; margin-bottom:.25em; }
.modal-dialog .modal-sub{ color:var(--slate-500); font-size:.94rem; margin-bottom:1.4em; }
.modal-close{
  position:absolute;
  top:16px; right:16px;
  width:36px; height:36px;
  border-radius:50%;
  border:1.5px solid var(--line-200);
  background:var(--paper-0);
  color:var(--slate-700);
  font-size:1.3rem;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s ease, border-color .2s ease;
}
.modal-close:hover{ background:var(--paper-100); border-color:var(--blue-600); }

@media (max-width:560px){
  .modal-dialog{ padding:22px; border-radius:var(--radius-md); }
}
