/* BF core palette and stepped data line, inspired by the brand infographics. */
.ai-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-height: 184px;
    padding: 28px 20px;
    background: #082e2a;
    color: #daff75;
    text-align: center;
    border-radius: 8px;
}
.ai-fibre { display: block; width: 240px; max-width: 100%; height: auto; overflow: visible; }
.ai-fibre-track { stroke: #b6e1fa; stroke-width: 2; stroke-linejoin: bevel; }
.ai-fibre-pulse {
    stroke: #daff75;
    stroke-width: 5;
    stroke-linejoin: bevel;
    stroke-linecap: butt;
    stroke-dasharray: 16 100;
    stroke-dashoffset: 16;
    animation: ai-fibre-transmit 2.4s linear infinite;
}
.ai-fibre-node { fill: #daff75; }
.ai-loader .ai-loader-text {
    margin: 0;
    color: #daff75;
    font-family: 'Stratos Light', sans-serif;
    font-size: 20px;
    line-height: 1.4;
    letter-spacing: -.015em;
}
.ai-loader-fade-in { animation: ai-fade-in .2s ease-out both; }
.ai-loader-fade-out { animation: ai-fade-out .2s ease-in both; }
@keyframes ai-fibre-transmit { to { stroke-dashoffset: -100; } }
@keyframes ai-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ai-fade-out { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
    .ai-loader, .ai-fibre-pulse { animation: none !important; }
    .ai-fibre-pulse { stroke-dashoffset: -42; }
}
