/* Sidebar Novus chrome — landing orbit-and-snap, looping, chrome scale.
   Paths come from templates/index.html / novus_rotor_mark.html (traced).
   Forbidden: inventing Bezier d=; Suta Prompt B cage on the Novus N. */

.meek-sidebar-novus-mark {
    --novus-orbit-snap-duration: 7.2s;
    position: relative;
    display: block;
    width: var(--meek-sidebar-emblem-size, 3.25rem);
    height: var(--meek-sidebar-emblem-size, 3.25rem);
    flex: 0 0 var(--meek-sidebar-emblem-size, 3.25rem);
}

.meek-sidebar-novus-mark .novus-svg-root {
    width: 100%;
    height: 100%;
    display: block;
    overflow: visible;
}

.meek-sidebar-novus-mark .novus-rotor-assembly,
.meek-sidebar-novus-mark .wing-unit,
.meek-sidebar-novus-mark .core-unit {
    transform-box: view-box;
    transform-origin: 497.18px 500.85px;
}

.meek-sidebar-novus-mark .shockwave-ring {
    transform-box: view-box;
    transform-origin: 497.18px 500.85px;
    opacity: 0;
    pointer-events: none;
}

.meek-sidebar-novus-mark.anim-orbit-snap.orbit-snap-active .novus-rotor-assembly {
    animation: novusChromeOrbitRotor var(--novus-orbit-snap-duration) cubic-bezier(0.2, 0, 0.2, 1) infinite;
}
.meek-sidebar-novus-mark.anim-orbit-snap.orbit-snap-active .wing-teal-unit {
    animation: novusChromeOrbitWingTeal var(--novus-orbit-snap-duration) cubic-bezier(0.2, 0, 0.2, 1) infinite;
}
.meek-sidebar-novus-mark.anim-orbit-snap.orbit-snap-active .wing-navy-top-unit {
    animation: novusChromeOrbitWingTop var(--novus-orbit-snap-duration) cubic-bezier(0.2, 0, 0.2, 1) infinite;
}
.meek-sidebar-novus-mark.anim-orbit-snap.orbit-snap-active .wing-navy-bottom-unit {
    animation: novusChromeOrbitWingBottom var(--novus-orbit-snap-duration) cubic-bezier(0.2, 0, 0.2, 1) infinite;
}
.meek-sidebar-novus-mark.anim-orbit-snap.orbit-snap-active .core-unit circle {
    animation: novusChromeOrbitCore var(--novus-orbit-snap-duration) ease-in-out infinite;
}
.meek-sidebar-novus-mark.anim-orbit-snap.orbit-snap-active .shockwave-ring {
    animation: novusChromeSnapShockwave var(--novus-orbit-snap-duration) ease-out infinite;
}

@keyframes novusChromeOrbitRotor {
    0% { transform: rotate(0deg); }
    16% { transform: rotate(0deg); }
    66% { transform: rotate(360deg); }
    100% { transform: rotate(360deg); }
}
@keyframes novusChromeOrbitWingTeal {
    0% { transform: translate(0, 0); }
    16% { transform: translate(-24px, 0); }
    66% { transform: translate(-24px, 0); }
    78% { transform: translate(-6px, 0); }
    83% { transform: translate(0, 0); }
    100% { transform: translate(0, 0); }
}
@keyframes novusChromeOrbitWingTop {
    0% { transform: translate(0, 0); }
    16% { transform: translate(12px, -20.8px); }
    66% { transform: translate(12px, -20.8px); }
    78% { transform: translate(3px, -5.2px); }
    83% { transform: translate(0, 0); }
    100% { transform: translate(0, 0); }
}
@keyframes novusChromeOrbitWingBottom {
    0% { transform: translate(0, 0); }
    16% { transform: translate(12px, 20.8px); }
    66% { transform: translate(12px, 20.8px); }
    78% { transform: translate(3px, 5.2px); }
    83% { transform: translate(0, 0); }
    100% { transform: translate(0, 0); }
}
@keyframes novusChromeOrbitCore {
    0% {
        transform: scale(1);
        opacity: 0.8;
    }
    16%,
    66% {
        transform: scale(1.22);
        opacity: 1;
        filter: drop-shadow(0 0 8px rgba(0, 229, 255, 0.7));
    }
    78% { transform: scale(1.05); }
    83% {
        transform: scale(1.3);
        filter: drop-shadow(0 0 12px rgba(0, 229, 255, 0.95)) brightness(1.45);
    }
    90% {
        transform: scale(1);
        filter: drop-shadow(0 0 6px rgba(0, 229, 255, 0.5));
    }
    100% {
        transform: scale(1);
        filter: drop-shadow(0 0 4px rgba(0, 229, 255, 0.35));
    }
}
@keyframes novusChromeSnapShockwave {
    0%,
    82% {
        transform: scale(0.4);
        opacity: 0;
    }
    83% {
        transform: scale(0.6);
        opacity: 0.85;
        stroke: #00e5ff;
        stroke-width: 14;
    }
    92% {
        transform: scale(1.3);
        opacity: 0;
        stroke-width: 2;
    }
    100% {
        transform: scale(1.35);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .meek-sidebar-novus-mark .novus-rotor-assembly,
    .meek-sidebar-novus-mark .wing-unit,
    .meek-sidebar-novus-mark .core-unit circle,
    .meek-sidebar-novus-mark .shockwave-ring,
    .meek-sidebar-novus-mark .node-pulse-halo {
        animation: none !important;
    }
}
