/* First-visit page loader — critical layout rules are inlined in page_loader_head.blade.php */

.fudise-page-loader.is-lite .fpl-backdrop::before,
.fudise-page-loader.is-lite .fpl-backdrop::after {
    display: none;
}

.fudise-page-loader.is-hiding {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

#fudise-page-loader .fpl-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

#fudise-page-loader .fpl-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(52px);
    will-change: transform, opacity;
}

#fudise-page-loader .fpl-orb--1 {
    width: min(42vw, 340px);
    height: min(42vw, 340px);
    top: -10%;
    left: -6%;
    background: rgba(94, 234, 212, 0.34);
    animation: fpl-orb-a 14s ease-in-out infinite;
}

#fudise-page-loader .fpl-orb--2 {
    width: min(36vw, 280px);
    height: min(36vw, 280px);
    top: 16%;
    right: -4%;
    background: rgba(236, 72, 153, 0.28);
    animation: fpl-orb-b 18s ease-in-out infinite;
}

#fudise-page-loader .fpl-orb--3 {
    width: min(30vw, 220px);
    height: min(30vw, 220px);
    bottom: -8%;
    left: 34%;
    background: rgba(56, 189, 248, 0.3);
    animation: fpl-orb-a 16s ease-in-out infinite reverse;
}

#fudise-page-loader .fpl-ring-bg {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(56, 189, 248, 0.22);
    animation: fpl-ring-pulse 8s ease-in-out infinite;
}

#fudise-page-loader .fpl-ring-bg--1 {
    width: min(52vw, 420px);
    height: min(52vw, 420px);
    right: 8%;
    top: 12%;
}

#fudise-page-loader .fpl-ring-bg--2 {
    width: min(36vw, 280px);
    height: min(36vw, 280px);
    right: 14%;
    top: 22%;
    border-color: rgba(251, 191, 36, 0.24);
    animation-delay: -2.5s;
}

#fudise-page-loader .fpl-grid {
    position: absolute;
    inset: -25%;
    background-image:
        linear-gradient(rgba(59, 130, 246, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(236, 72, 153, 0.06) 1px, transparent 1px);
    background-size: 48px 48px;
    animation: fpl-grid-move 24s linear infinite;
    mask-image: radial-gradient(ellipse 70% 60% at 70% 45%, #000 10%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at 70% 45%, #000 10%, transparent 75%);
}

#fudise-page-loader .fpl-particle {
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    opacity: 0.4;
    animation: fpl-particle 9s ease-in-out infinite;
}

#fudise-page-loader .fpl-particle:nth-child(7) {
    top: 18%;
    left: 12%;
    background: var(--fpl-mint, #5EEAD4);
}

#fudise-page-loader .fpl-particle:nth-child(8) {
    top: 28%;
    right: 22%;
    width: 8px;
    height: 8px;
    background: var(--fpl-cyan, #38BDF8);
    animation-delay: -1.5s;
}

#fudise-page-loader .fpl-particle:nth-child(9) {
    bottom: 24%;
    left: 28%;
    background: var(--fpl-gold, #FBBF24);
    animation-delay: -3s;
}

#fudise-page-loader .fpl-particle:nth-child(10) {
    bottom: 32%;
    right: 16%;
    background: var(--fpl-orange, #F97316);
    animation-delay: -0.8s;
}

#fudise-page-loader .fpl-brand {
    position: relative;
    width: 208px;
    height: 208px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#fudise-page-loader .fpl-spinner {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    animation: fpl-spin 3.2s linear infinite;
}

#fudise-page-loader .fpl-spinner-track {
    fill: none;
    stroke: rgba(56, 189, 248, 0.14);
    stroke-width: 3;
}

#fudise-page-loader .fpl-spinner-arc {
    fill: none;
    stroke-width: 3.5;
    stroke-linecap: round;
    transform-origin: 100px 100px;
}

#fudise-page-loader .fpl-spinner-arc--cyan {
    stroke: var(--fpl-cyan, #38BDF8);
    stroke-dasharray: 120 432;
    animation: fpl-arc-dash 2.8s ease-in-out infinite;
}

#fudise-page-loader .fpl-spinner-arc--magenta {
    stroke: var(--fpl-magenta, #EC4899);
    stroke-dasharray: 80 396;
    animation: fpl-arc-dash-rev 2.2s ease-in-out infinite;
}

#fudise-page-loader .fpl-logo-wrap {
    position: relative;
    z-index: 2;
    width: 84px;
    max-width: 52%;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fpl-logo-breathe 3.6s ease-in-out infinite;
    will-change: transform;
}

#fudise-page-loader .fpl-logo-site-wrap {
    display: block;
    width: 100%;
    line-height: 0;
}

#fudise-page-loader .fpl-logo {
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
}

#fudise-page-loader .fpl-logo-wrap .site-logo--dark {
    display: none;
}

html.night-mode #fudise-page-loader .fpl-logo-wrap .site-logo--light,
html.active-dark-mode #fudise-page-loader .fpl-logo-wrap .site-logo--light {
    display: none;
}

html.night-mode #fudise-page-loader .fpl-logo-wrap .site-logo--dark,
html.active-dark-mode #fudise-page-loader .fpl-logo-wrap .site-logo--dark {
    display: block;
}

@keyframes fpl-orb-a {
    0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.82; }
    50% { transform: translate(24px, 18px) scale(1.08); opacity: 1; }
}

@keyframes fpl-orb-b {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(-20px, 14px) scale(1.06); }
}

@keyframes fpl-ring-pulse {
    0%, 100% { transform: scale(0.94); opacity: 0.35; }
    50% { transform: scale(1.06); opacity: 0.8; }
}

@keyframes fpl-grid-move {
    from { transform: translate(0, 0); }
    to { transform: translate(48px, 48px); }
}

@keyframes fpl-particle {
    0%, 100% { transform: translateY(0); opacity: 0.25; }
    50% { transform: translateY(-18px); opacity: 0.7; }
}

@keyframes fpl-logo-breathe {
    0%, 100% { transform: scale(0.9); }
    50% { transform: scale(1.08); }
}

@keyframes fpl-arc-dash {
    0%, 100% { stroke-dashoffset: 0; opacity: 0.75; }
    50% { stroke-dashoffset: -80; opacity: 1; }
}

@keyframes fpl-arc-dash-rev {
    0%, 100% { stroke-dashoffset: 0; opacity: 0.65; }
    50% { stroke-dashoffset: 60; opacity: 0.95; }
}

html.night-mode #fudise-page-loader .fpl-orb,
html.active-dark-mode #fudise-page-loader .fpl-orb {
    opacity: 0.55;
}

html.night-mode #fudise-page-loader .fpl-grid,
html.active-dark-mode #fudise-page-loader .fpl-grid {
    opacity: 0.16;
}

@media only screen and (max-width: 575.98px) {
    #fudise-page-loader .fpl-brand {
        width: 176px;
        height: 176px;
    }

    #fudise-page-loader .fpl-logo-wrap {
        width: 72px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #fudise-page-loader .fpl-orb,
    #fudise-page-loader .fpl-ring-bg,
    #fudise-page-loader .fpl-grid,
    #fudise-page-loader .fpl-particle,
    #fudise-page-loader .fpl-spinner,
    #fudise-page-loader .fpl-spinner-arc,
    #fudise-page-loader .fpl-logo-wrap {
        animation: none !important;
    }

    #fudise-page-loader .fpl-logo-wrap {
        transform: scale(1);
    }
}
