/* Ansaldo loader: stationary wordmark, supplied 30-frame horse sequence, opposing dual progress arcs. */
#hbplusLazyLoader {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: auto;
    padding: 24px;
    background: radial-gradient(ellipse at center, rgba(239,246,252,.98), rgba(255,255,255,.97) 70%);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    opacity: 1;
    visibility: visible;
    transition: opacity 220ms ease, visibility 220ms ease;
}
#hbplusLazyLoader.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
#hbplusLazyLoader .hbplus-lazy-loader { display: flex; flex-direction: column; align-items: center; width: min(360px, 100%); margin: auto; text-align: center; }
#hbplusLazyLoader .ansaldo-loader-emblem { display: block; width: min(300px, 72vw, 50vh); height: auto; overflow: visible; flex-shrink: 0; }
#hbplusLazyLoader .ansaldo-loader-orbit { transform-origin: 170px 170px; animation: ansaldo-loader-orbit 1.8s linear infinite; }
#hbplusLazyLoader .ansaldo-loader-caption { margin: 18px 0 0; color: #61708f; font-family: 'Manrope', 'Segoe UI', sans-serif; font-size: 22px; font-weight: 500; line-height: 1.4; }
#hbplusLazyLoader .hbplus-lazy-status { display: none; margin-top: 18px; color: #17233d; max-width: 340px; font-family: 'Manrope', 'Segoe UI', sans-serif; }
#hbplusLazyLoader .hbplus-lazy-status strong { display: block; font-size: 16px; font-weight: 800; }
#hbplusLazyLoader .hbplus-lazy-status span { display: block; margin-top: 7px; color: #61708f; font-size: 12px; line-height: 1.6; }
body.login-authenticating #hbplusLazyLoader .hbplus-lazy-status,
body.logout-authenticating #hbplusLazyLoader .hbplus-lazy-status { display: block; }
body.login-authenticating #hbplusLazyLoader .ansaldo-loader-caption,
body.logout-authenticating #hbplusLazyLoader .ansaldo-loader-caption { display: none; }
body.dark-mode #hbplusLazyLoader { background: radial-gradient(ellipse at center, rgba(27,39,58,.98), rgba(12,20,35,.97)); }
body.dark-mode #hbplusLazyLoader .ansaldo-loader-caption,
body.dark-mode #hbplusLazyLoader .hbplus-lazy-status span { color: #bac7de; }
body.dark-mode #hbplusLazyLoader .hbplus-lazy-status strong { color: #f2f6ff; }
#hbplusLazyLoader.is-hidden .ansaldo-loader-emblem * { animation-play-state: paused; }
@keyframes ansaldo-loader-orbit { to { transform: rotate(360deg); } }
/* One 6 x 5 sprite sheet. Column and row cycles meet every six frames. */
#hbplusLazyLoader .ansaldo-horse-sprite-columns { animation: ansaldo-horse-columns .2s steps(6, end) infinite; }
#hbplusLazyLoader .ansaldo-horse-sprite-rows { animation: ansaldo-horse-rows 1s steps(5, end) infinite; }
@keyframes ansaldo-horse-columns { to { transform: translateX(-2514px); } }
@keyframes ansaldo-horse-rows { to { transform: translateY(-2090px); } }
@media (max-width: 520px) { #hbplusLazyLoader .ansaldo-loader-caption { margin-top: 12px; font-size: 19px; } }
@media (prefers-reduced-motion: reduce) {
    #hbplusLazyLoader { transition: none; }
    #hbplusLazyLoader .ansaldo-loader-emblem * { animation: none !important; }
}
