.intro-overlay{z-index:50;background:var(--background);place-items:center;display:grid;position:fixed;inset:0}.intro-stage{width:min(80vw,640px);position:relative}.intro-logo{animation:1.4s cubic-bezier(.22,1,.36,1) both intro-logo-enter}.intro-logo-image{width:100%;height:auto;display:block}.intro-loader{flex-direction:column;align-items:center;gap:.75rem;width:max-content;margin-top:clamp(1.5rem,5vw,2.5rem);display:flex;position:absolute;top:100%;left:50%;translate:-50%}.intro-bar{background:color-mix(in srgb, var(--foreground) 12%, transparent);border-radius:9999px;width:clamp(8rem,30vw,12rem);height:2px;animation:.5s ease-out both intro-fade-in;position:relative;overflow:hidden}.intro-bar:after{content:"";border-radius:inherit;background:#f0a830;width:40%;animation:1.4s cubic-bezier(.65,0,.35,1) infinite intro-bar-slide;position:absolute;inset:0}.intro-message{letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--foreground) 60%, transparent);font-size:.875rem;animation:.5s ease-out .15s both intro-fade-in}.intro-dots span{animation:1.4s infinite both intro-dot-blink}.intro-dots span:nth-child(2){animation-delay:.2s}.intro-dots span:nth-child(3){animation-delay:.4s}.intro-overlay[data-phase=wait] .intro-logo{animation:2.4s ease-in-out infinite intro-logo-breathe}.intro-overlay[data-phase=exit]{pointer-events:none;animation:.65s ease-in .25s both intro-fade-out}.intro-overlay[data-phase=exit] .intro-logo{animation:.7s cubic-bezier(.55,0,.75,0) both intro-logo-exit}.intro-overlay[data-phase=exit] .intro-loader{animation:.25s ease-in both intro-fade-out}@keyframes intro-logo-enter{0%{opacity:0;filter:blur(12px);clip-path:inset(0 100% 0 0);transform:translateY(16px)scale(.92)}60%{clip-path:inset(0)}to{opacity:1;filter:blur();clip-path:inset(0);transform:none}}@keyframes intro-logo-breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.025)}}@keyframes intro-logo-exit{to{opacity:0;filter:blur(10px);transform:scale(1.15)}}@keyframes intro-bar-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes intro-dot-blink{0%,20%{opacity:0}50%{opacity:1}to{opacity:0}}@keyframes intro-fade-in{0%{opacity:0}}@keyframes intro-fade-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){.intro-logo{animation:.4s ease-out both intro-fade-in}.intro-overlay[data-phase=wait] .intro-logo,.intro-bar:after,.intro-dots span,.intro-overlay[data-phase=exit] .intro-logo{animation:none}.intro-overlay[data-phase=exit]{animation:.3s ease-out both intro-fade-out}}
