/* The same handwritten wordmark stays visible in the gate and application header. */
.brand-wordmark { display: block; width: 100%; height: auto; overflow: visible; }
.brand-wordmark path { stroke-dasharray: none; stroke-dashoffset: 0; opacity: 1; }
/* Replay on each page load; the real login remains available underneath. */
.brand-intro-pending body.curriculum-app :is(.gate-brand, .gate-card, .gate-help) { visibility: hidden; animation: brand-intro-login-failsafe .001s step-end 3.6s forwards !important; }
.brand-intro { position: fixed; inset: 0; z-index: 10000; overflow: hidden; pointer-events: none; animation: brand-intro-failsafe .001s step-end 3.6s forwards; }
.brand-intro-backdrop { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 48% 40%, #e5d9f573, transparent 54%), radial-gradient(ellipse at 62% 58%, #f3e2bc59, transparent 48%), #f7f6f2; }
.brand-intro-backdrop::before { content: ""; position: absolute; left: 50%; top: 45%; width: min(1050px, 150vw); aspect-ratio: 1; border-radius: 50%; background: conic-gradient(from -35deg, transparent 0deg, #bca2d845 55deg, transparent 110deg, #e6c88845 190deg, transparent 250deg, #c5b0dc40 315deg, transparent 360deg); filter: blur(42px); animation: brand-intro-aura 3.18s ease-in-out both; }
.brand-intro-backdrop::after { content: ""; position: absolute; left: 50%; top: 45%; width: min(740px, 100vw); aspect-ratio: 1; border: 1px solid #b6a0c93d; border-radius: 50%; box-shadow: 0 0 55px #c8b8da1a, inset 0 0 45px #e5d0a51a; animation: brand-intro-ripple 2.45s cubic-bezier(.16,.6,.3,1) .65s both; }
.brand-intro-lockup { position: absolute; left: 50%; top: 48%; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; width: min(690px, 88vw); }
.brand-intro-word { width: 100%; aspect-ratio: 666 / 108; }
.brand-intro-school { width: 55%; margin-bottom: 5%; aspect-ratio: 761 / 108; color: #78638b; }
.brand-intro-word svg { display: block; width: 100%; height: 100%; overflow: visible; }
.brand-intro-word path, .brand-intro-school path { fill: none; stroke: currentColor; stroke-width: 3.4; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: 0; }
.brand-intro-word { color: #252943; }
.brand-intro-skip { position: absolute; bottom: max(26px, env(safe-area-inset-bottom)); right: max(30px, env(safe-area-inset-right)); display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 8px 12px; border: 1px solid #dcd5e4; border-radius: 999px; background: #fff9; color: #70617f; font: inherit; font-size: 13px; cursor: pointer; pointer-events: auto; }
.brand-intro-skip:hover { border-color: #b6a7cc; color: #493b68; background: #fff; }
.brand-intro-skip:focus-visible { outline: 3px solid #6c5aa7; outline-offset: 4px; }
@keyframes brand-intro-failsafe { to { visibility: hidden; } }
@keyframes brand-intro-login-failsafe { to { visibility: visible; } }
@keyframes brand-intro-aura {
  0% { opacity: 0; transform: translate(-50%, -50%) rotate(-18deg) scale(.7); }
  32% { opacity: .7; }
  70% { opacity: .85; }
  100% { opacity: 0; transform: translate(-50%, -50%) rotate(24deg) scale(1.12); }
}
@keyframes brand-intro-ripple {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.55); }
  30% { opacity: .85; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.2); }
}
@media (max-width: 760px) {
  .brand-intro-lockup { width: 90vw; }
  .brand-intro-school { width: 70%; }
  .brand-intro-skip { right: 20px; bottom: max(20px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .brand-intro { display: none !important; }
  .brand-intro-pending body.curriculum-app :is(.gate-brand, .gate-card, .gate-help) { visibility: visible !important; }
}
