/* D circuit loader - isolated component */
.dcl-loader,
.dcl-loader * {
    box-sizing: border-box;
}

body.dcl-loading {
    overflow: hidden;
}

.dcl-loader {
    --dcl-bg: #020c14;
    --dcl-c1: #00f0ff;
    --dcl-c2: #00aaee;
    --dcl-c3: #0066dd;
    --dcl-gcyan: rgba(0, 240, 255, 0.55);
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--dcl-bg);
    overflow: hidden;
    opacity: 1;
    pointer-events: auto;
}

.dcl-loader.is-hidden {
    display: none;
}

.dcl-loader::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(0, 200, 255, 0.018) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 200, 255, 0.018) 1px, transparent 1px);
    background-size: 48px 48px;
    animation: dcl-grid-move 20s linear infinite;
    pointer-events: none;
}

@keyframes dcl-grid-move {
    from {
        background-position: 0 0;
    }

    to {
        background-position: 48px 48px;
    }
}

.dcl-wire-source {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(to bottom, transparent 0%, var(--dcl-c1) 20%, var(--dcl-c2) 50%, var(--dcl-c3) 80%, transparent 100%);
    box-shadow: 0 0 20px var(--dcl-gcyan), 0 0 40px rgba(0, 200, 255, 0.3);
    opacity: 0;
    z-index: 5;
}

.dcl-halo {
    position: absolute;
    width: min(85vmin, 620px);
    height: min(85vmin, 620px);
    border-radius: 50%;
    background: radial-gradient(ellipse 60% 60% at 54% 50%, rgba(0, 200, 255, 0.13) 0%, rgba(0, 80, 200, 0.07) 45%, transparent 70%);
    animation: dcl-halo 4s ease-in-out infinite;
    pointer-events: none;
}

@keyframes dcl-halo {
    0%,
    100% {
        opacity: 0.6;
        transform: scale(1);
    }

    50% {
        opacity: 1;
        transform: scale(1.07);
    }
}

.dcl-svg-wrap {
    position: relative;
    z-index: 3;
    width: min(82vmin, 600px);
    aspect-ratio: 1 / 1;
}

.dcl-logo {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.dcl-cp {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0;
}

.dcl-p0 {
    stroke: url("#dcl-g0");
    stroke-width: 3.8;
    filter: url("#dcl-fc");
}

.dcl-p1 {
    stroke: url("#dcl-g1");
    stroke-width: 3;
    filter: url("#dcl-fc");
}

.dcl-p2 {
    stroke: url("#dcl-g2");
    stroke-width: 2.4;
    filter: url("#dcl-fb");
}

.dcl-p3 {
    stroke: url("#dcl-g3");
    stroke-width: 1.9;
    filter: url("#dcl-fb");
}

.dcl-p4 {
    stroke: url("#dcl-g4");
    stroke-width: 1.5;
    filter: url("#dcl-fb");
}

.dcl-pb {
    stroke: var(--dcl-c2);
    stroke-width: 2;
    filter: url("#dcl-fc");
}

.dcl-pt {
    stroke: #005577;
    stroke-width: 1.3;
    filter: url("#dcl-fb");
}

.dcl-nd {
    fill: var(--dcl-bg);
    stroke: var(--dcl-c1);
    stroke-width: 2.2;
    filter: url("#dcl-fc");
    opacity: 0;
    transform-origin: center;
}

.dcl-nd-sm {
    fill: var(--dcl-c2);
    filter: url("#dcl-fdot");
    opacity: 0;
}

.dcl-sd {
    fill: var(--dcl-c1);
    filter: url("#dcl-fdot");
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    .dcl-loader::before,
    .dcl-halo {
        animation: none;
    }
}
