#apex-preloader {
    position: fixed; inset: 0; z-index: 99999;
    background: #060d14;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 32px;
    opacity: 1; visibility: visible;
    transition: opacity .45s ease, visibility .45s ease;
}
#apex-preloader.pre-hidden {
    opacity: 0; visibility: hidden; pointer-events: none;
}
.pre-rings {
    position: relative; width: 200px; height: 200px; flex-shrink: 0;
}
.pre-logo {
    position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 130px; height: 130px; border-radius: 20px;
    object-fit: contain;
    animation: pre-breathe 2.4s ease-in-out infinite;
    box-shadow: 0 0 50px rgba(0,234,255,0.22), 0 0 100px rgba(0,234,255,0.07);
}
.pre-ring {
    position: absolute; inset: 0; border-radius: 50%;
    border: 3px solid transparent;
    animation: pre-spin 1.2s linear infinite;
}
.pre-ring--1 { border-top-color: #00eaff; }
.pre-ring--2 {
    inset: 12px; border-width: 2.5px;
    border-right-color: rgba(0,234,255,0.55);
    border-left-color: rgba(0,234,255,0.15);
    animation-duration: 1.9s; animation-direction: reverse;
}
.pre-ring--3 {
    inset: 24px; border-width: 2px;
    border-bottom-color: rgba(0,234,255,0.30);
    animation-duration: 2.8s;
}
.pre-brand {
    text-align: center;
    font-family: Inter, system-ui, sans-serif;
}
.pre-name {
    font-size: 26px; font-weight: 800;
    color: #ffffff; letter-spacing: .03em; margin-bottom: 6px;
}
.pre-sub {
    font-size: 12px; font-weight: 700; letter-spacing: .15em;
    text-transform: uppercase; color: rgba(0,234,255,0.65);
    margin-bottom: 16px;
}
.pre-dots { display: flex; gap: 8px; justify-content: center; }
.pre-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: rgba(0,234,255,0.30);
    animation: pre-dot-pulse 1.4s ease-in-out infinite;
}
.pre-dot:nth-child(2) { animation-delay: .20s; }
.pre-dot:nth-child(3) { animation-delay: .40s; }

@keyframes pre-spin    { to { transform: rotate(360deg); } }
@keyframes pre-breathe {
    0%,100% { transform: translate(-50%,-50%) scale(1);   }
    50%     { transform: translate(-50%,-50%) scale(.93); }
}
@keyframes pre-dot-pulse {
    0%,100% { opacity:.3; transform:scale(.8); background:rgba(0,234,255,.3); }
    50%     { opacity:1;  transform:scale(1.3); background:#00eaff; }
}