/* One entrance per document load. Carousel transitions live in auth-story.css. */
body.is-booting { background: #fff; }
.is-booting #app { visibility: hidden; }
.startup-loader {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 28px;
  background: #fff;
  color: #081a33;
  opacity: 1;
  transition: opacity .36s ease;
}
.startup-loader.is-leaving { opacity: 0; pointer-events: none; }
.startup-ring {
  display: block;
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border: 2px solid #e8edf2;
  border-top-color: #173d68;
  border-right-color: #3c8586;
  border-radius: 50%;
  animation: startup-spin .85s linear infinite;
}
.startup-recovery { text-align: center; max-width: 320px; line-height: 1.6; }
.startup-recovery p { font-size: 16px; font-weight: 600; }
.startup-recovery > span { display: block; margin: 7px 0 20px; color: #596b79; font-size: 14px; }
.startup-recovery .btn { font-size: 14px; color: #173d68; }
.startup-loader.has-error .startup-ring { animation: none; border-color: #dce4ec; }
.startup-noscript { position: fixed; inset: 0; z-index: 1001; display: grid; place-items: center; padding: 32px; background: white; color: #081a33; text-align: center; font-size: 16px; }
@keyframes startup-spin { to { transform: rotate(360deg); } }
@keyframes entry-panel {
  from { opacity: 0; clip-path: inset(0 8% 0 0); }
  to { opacity: 1; clip-path: inset(0); }
}
@keyframes entry-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
@keyframes entry-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes entry-logo {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateY(5px) scale(.96); }
  22% { opacity: 1; clip-path: inset(0 70% 0 0); }
  100% { opacity: 1; clip-path: inset(0); transform: none; }
}
@keyframes entry-logo-light {
  0% { background-position: 130% 0; opacity: 0; }
  25%, 65% { opacity: .55; }
  100% { background-position: -30% 0; opacity: 0; }
}
.is-entering .auth-story { animation: entry-panel .9s cubic-bezier(.2,.7,.2,1) both; }
.is-entering :where(.story-eyebrow, .story-title, .story-description, .story-event-card, .auth-tabs, .auth-body > .back-link, .auth-body > h1, .auth-body > .subtitle, .auth-heading-slot, .auth-subtitle-slot, #auth-form, .auth-body > .divider, .auth-body > .btn) {
  animation: entry-rise .64s cubic-bezier(.2,.7,.2,1) both;
}
.is-entering :is(.auth-story > .brand, .auth-top .brand, .auth-brand-lockup) {
  transform-origin: left center;
  animation: entry-logo .84s cubic-bezier(.2,.7,.2,1) .05s both;
}
/* One soft light pass follows the existing logo's alpha, never its rectangle. */
.is-entering :is(.auth-story .brand, .auth-top .brand)::after {
  content: '';
  position: absolute;
  width: 111.441765%;
  aspect-ratio: 3 / 1;
  left: -6.516162%;
  top: -19.038462%;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 40%, #fff 50%, transparent 60%) 130% 0 / 250% 100% no-repeat;
  -webkit-mask: url('./assets/tahoaudit-copper-v1.png') center / 100% 100% no-repeat;
  mask: url('./assets/tahoaudit-copper-v1.png') center / 100% 100% no-repeat;
  animation: entry-logo-light .54s ease-in-out .56s both;
}
.is-entering :is(.story-eyebrow, .auth-tabs, .auth-body > .back-link) { animation-delay: .14s; }
.is-entering :is(.story-title, .auth-body > h1, .auth-heading-slot) { animation-delay: .22s; }
.is-entering :is(.story-description, .auth-body > .subtitle, .auth-subtitle-slot) { animation-delay: .3s; }
.is-entering #auth-form { animation-delay: .36s; }
.is-entering .story-event-card { animation-delay: .44s; }
.is-entering :is(.auth-body > .divider, .auth-body > .btn) { animation-delay: .46s; }
.is-entering :is(.story-controls, .story-bottom, .auth-foot, .auth-apps) { animation: entry-fade .5s ease .58s both; }
.is-entering .shell { animation: entry-fade .4s ease both; }
@media (max-width: 699px) {
  .is-entering #auth-form { animation-delay: .24s; }
  .is-entering :is(.auth-body > .divider, .auth-body > .btn) { animation-delay: .32s; }
}
@media (prefers-reduced-motion: reduce) {
  .startup-ring, .is-entering .auth-story, .is-entering .auth-page *, .is-entering .shell { animation: none; }
  .is-entering .brand::after { display: none; animation: none; }
  .startup-loader { transition: none; }
}

/* The new wordmark enters as one unit, without replaying on auth tab changes. */
.is-entering .auth-brand-lockup .brand { animation: none; }
