/* ==========================================
   Ironclad Tech - Premium Loader
   Cinematic, minimal, shown once per session.
   GPU-only (opacity/transform/filter), zero CLS.
   ========================================== */

html.loader-lock, html.loader-lock body{
    overflow: hidden;
    height: 100%;
}

.premium-loader{
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #000;
    animation: loaderBgFade 900ms var(--ease-soft, ease) forwards;
}
@keyframes loaderBgFade{
    from{ background:#000; }
    to{ background:#081B3A; }
}
.premium-loader.is-exiting{
    animation: loaderExit 700ms var(--ease-soft, ease) forwards;
    pointer-events: none;
}
@keyframes loaderExit{
    from{ opacity: 1; }
    to{ opacity: 0; }
}

.premium-loader .loader-stage{
    position: relative;
    width: 168px;
    height: 168px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.premium-loader .loader-halo{
    position:absolute;
    inset:-30px;
    border-radius:50%;
    background: radial-gradient(circle, rgba(212,175,55,.28) 0%, transparent 70%);
    opacity:0;
    animation: loaderHaloIn 600ms ease 200ms forwards, loaderHaloPulse 3.2s ease-in-out 900ms infinite;
}
@keyframes loaderHaloIn{ to{ opacity:1; } }
@keyframes loaderHaloPulse{
    0%,100%{ transform:scale(1); opacity:.55; }
    50%{ transform:scale(1.18); opacity:.9; }
}

.premium-loader .loader-ring-svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    transform-origin: 50% 50%;
    animation: loaderRingIn 500ms ease 550ms forwards, loaderRingSpin 2.4s linear 1050ms infinite;
}
@keyframes loaderRingIn{ to{ opacity:1; } }
@keyframes loaderRingSpin{ to{ transform: rotate(360deg); } }
.premium-loader .loader-ring-track{
    fill:none;
    stroke: rgba(212,175,55,.18);
    stroke-width: 3.5;
}
.premium-loader .loader-ring-progress{
    fill:none;
    stroke: url(#loaderRingGradient);
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-dasharray: 85 254;
}

.premium-loader .loader-shield{
    position: relative;
    width: 76px;
    height: 88px;
    opacity: 0;
    transform: scale(.9);
    animation: loaderShieldIn 650ms var(--ease-premium, ease) 150ms forwards, loaderShieldGlow 1.8s ease-in-out 800ms infinite;
}
@keyframes loaderShieldIn{ to{ opacity:1; transform:scale(1); } }
@keyframes loaderShieldGlow{
    0%,100%{ filter: drop-shadow(0 0 6px rgba(212,175,55,.35)); }
    50%{ filter: drop-shadow(0 0 20px rgba(212,175,55,.8)); }
}
.premium-loader .loader-shield img{
    width:100%;
    height:100%;
    display:block;
}
.premium-loader .loader-sweep{
    position:absolute;
    inset:-6px;
    overflow:hidden;
    border-radius: 10px;
    pointer-events:none;
}
.premium-loader .loader-sweep::before{
    content:"";
    position:absolute;
    top:-40%; left:-160%;
    width:60%; height:280%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,.85), transparent);
    transform: skewX(-18deg);
    opacity:0;
    animation: loaderSweep 900ms ease 950ms 1;
}
@keyframes loaderSweep{
    0%{ left:-160%; opacity:0; }
    8%{ opacity:.9; }
    60%{ opacity:.9; }
    100%{ left:160%; opacity:0; }
}

.premium-loader .loader-brand{
    margin-top: 22px;
    color: #F4D35E;
    font-family:'Space Grotesk','Poppins',sans-serif;
    font-weight:700;
    font-size: 15px;
    letter-spacing: .32em;
    text-transform:uppercase;
    opacity:0;
    transform: translateY(10px);
    animation: loaderBrandIn 550ms ease-out 1150ms forwards;
}
@keyframes loaderBrandIn{ to{ opacity:1; transform:translateY(0); } }

@media (max-width:575.98px){
    .premium-loader .loader-stage{ width:132px; height:132px; }
    .premium-loader .loader-shield{ width:60px; height:70px; }
    .premium-loader .loader-brand{ font-size:12px; letter-spacing:.24em; }
}

@media (prefers-reduced-motion: reduce){
    .premium-loader{ display:none !important; }
}
