/* Keep the public entrance and the signed-in handoff on the same quiet rhythm. */
.ysa-auth[data-auth-screen] {
  animation: ysa-auth-enter 1600ms cubic-bezier(.22, .61, .36, 1) backwards;
}

@keyframes ysa-auth-enter {
  from { opacity: 0; filter: blur(18px); }
  to { opacity: 1; filter: blur(0); }
}

html.ysa-auth-arriving:not(.ysa-auth-revealing) body {
  overflow: hidden !important;
}

/* Entry focus is a reading/scroll anchor, not a highlighted control. */
#framework_main[data-ysa-auth-entry-focus]:focus {
  outline: none;
}

/* Applied in the head, before any application content can flash into view. */
html.ysa-auth-arriving:not(.ysa-auth-mounted) body > :not([data-ysa-auth-cover]):not([data-ysa-auth-veil]):not([data-ysa-auth-status]) {
  visibility: hidden !important;
}

[data-ysa-auth-cover],
[data-ysa-auth-veil] {
  position: fixed;
  inset: 0;
  margin: 0;
}

[data-ysa-auth-cover] {
  z-index: 2147483601;
  background: #f5f8fc;
  opacity: 1;
  transition: opacity 1100ms cubic-bezier(.4, 0, .6, 1);
}

[data-ysa-auth-cover] .ysa-auth {
  animation: none;
}

[data-ysa-auth-veil] {
  z-index: 2147483600;
  background: rgba(252, 253, 255, .025);
  -webkit-backdrop-filter: blur(22px);
  backdrop-filter: blur(22px);
  transition: backdrop-filter 1800ms cubic-bezier(.22, .61, .36, 1) 900ms,
    -webkit-backdrop-filter 1800ms cubic-bezier(.22, .61, .36, 1) 900ms;
}

html.ysa-auth-revealing [data-ysa-auth-cover] { opacity: 0; }
html.ysa-auth-revealing [data-ysa-auth-cover],
html.ysa-auth-revealing [data-ysa-auth-veil] {
  pointer-events: none;
}
html.ysa-auth-revealing [data-ysa-auth-veil] {
  -webkit-backdrop-filter: blur(0);
  backdrop-filter: blur(0);
}

[data-ysa-auth-status] {
  position: fixed;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  .ysa-auth[data-auth-screen] { animation: none; }
  [data-ysa-auth-cover], [data-ysa-auth-veil] { transition: none; }
}
