.bf-splash { --motion-fast: 160ms; --motion-normal: 280ms; --motion-slow: 360ms; --ease-premium-out: cubic-bezier(.22, 1, .36, 1); }
.bf-splash[data-variant=boot] .bf-brand-logo[data-loaded] { animation: bf-logo-in var(--motion-slow) 70ms var(--ease-premium-out) both; }
.bf-splash[data-variant=boot] .bf-splash__feedback { animation: bf-feedback-in 220ms 300ms var(--ease-premium-out) both; }
.bf-splash__halo { animation: bf-breathe 2200ms ease-in-out infinite alternate; }
.bf-loading-progress[data-variant=indeterminate] .bf-loading-progress__fill { transform: scaleX(.3); animation: bf-indeterminate 2200ms ease-in-out infinite; }
.bf-loading-progress[data-variant=indeterminate] .bf-loading-progress__energy { animation: bf-shimmer 2200ms linear infinite; }
.bf-splash[data-state=READY] .bf-loading-progress__track { animation: bf-complete var(--motion-fast) ease-out; }
.bf-splash[data-state=READY][data-variant=boot] .bf-brand-logo { animation: bf-logo-complete var(--motion-fast) ease-out; }
.bf-splash[data-state=EXITING] { opacity: 0; transition: opacity var(--motion-normal) ease-out; }
.bf-splash[data-paused=true] *, .bf-splash[data-state=ERROR] .bf-splash__halo { animation-play-state: paused !important; }
@keyframes bf-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes bf-logo-in { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }
@keyframes bf-feedback-in { from { opacity: 0; transform: translateY(clamp(6px, 1vh, 14px)); } to { opacity: 1; transform: translateY(0); } }
@keyframes bf-breathe { from { opacity: calc(var(--fx-glow-strength) * .75); } to { opacity: var(--fx-glow-strength); } }
@keyframes bf-indeterminate { 0% { transform: translateX(-32%) scaleX(.3); } 100% { transform: translateX(102%) scaleX(.3); } }
@keyframes bf-shimmer { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
@keyframes bf-complete { 50% { box-shadow: 0 0 20px color-mix(in srgb, var(--cyan) 50%, transparent); } }
@keyframes bf-logo-complete { 50% { transform: scale(1.015); } }
@media (prefers-reduced-motion: reduce) {
  .bf-splash .bf-brand-logo[data-loaded], .bf-splash .bf-splash__feedback { animation: bf-fade-in 180ms both !important; }
  .bf-splash .bf-splash__halo, .bf-loading-progress__energy { animation: none !important; }
  .bf-loading-progress__fill { transition: none; }
  .bf-loading-progress[data-variant=indeterminate] .bf-loading-progress__fill { animation: bf-fade-in 2200ms ease-in-out infinite alternate; transform: scaleX(.35); }
}
