.brand-loader { position: fixed; z-index: 2147483000; inset: 0; display: grid; place-items: center; padding: 24px; background: #f7fbff; opacity: 1; visibility: visible; transition: opacity .65s ease, visibility .65s ease; }
.brand-loader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.brand-loader__core { position: relative; display: grid; width: 280px; height: 280px; place-items: center; }
.brand-loader__core:before, .brand-loader__core:after { position: absolute; inset: 15px; border-radius: 50%; content: ''; }
.brand-loader__core:before { border: 1px solid #d5e5f5; }
.brand-loader__core:after { border: 1px solid transparent; border-top-color: #b48a00; border-right-color: #0879e866; animation: brandLoaderOrbit 2.1s linear infinite; }
.brand-loader__logo { display: grid; min-width: 0; place-items: center; animation: brandLoaderReveal .75s cubic-bezier(.2,.75,.25,1) both; }
.brand-loader__logo .brand-logo { display: block; width: min(210px, 72vw); max-width: 72vw; max-height: 100px; height: auto; object-fit: contain; }
.brand-loader__logo:not(:has(img)) { color: #173b78; font: 600 17px/1.4 'DM Sans', sans-serif; letter-spacing: 3px; text-align: center; }
.brand-loader__logo:not(:has(img)) span { display: block; margin-top: 6px; color: #0879e8; font-size: 9px; letter-spacing: 4px; }
.brand-loader__caption { position: absolute; bottom: 3px; color: #65738d; font: 700 9px/1 Arial, sans-serif; letter-spacing: 2px; text-align: center; }
.brand-loader__caption:after { display: block; width: 54px; height: 2px; margin: 12px auto 0; background: #b48a00; content: ''; transform: scaleX(.25); transform-origin: left; animation: brandLoaderProgress 1.8s ease-in-out infinite alternate; }
@keyframes brandLoaderOrbit { to { transform: rotate(360deg); } }
@keyframes brandLoaderReveal { from { opacity: 0; transform: scale(.91) translateY(5px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@keyframes brandLoaderProgress { to { transform: scaleX(1); } }
@media (max-width: 640px) { .brand-loader__core { width: 250px; height: 250px; } }
@media (prefers-reduced-motion: reduce) { .brand-loader__core:after, .brand-loader__logo, .brand-loader__caption:after { animation: none; } .brand-loader { transition-duration: .01ms; } }
