/* Start custom CSS *//* PROJECT PAGE BG — static class, composited drift, no repaint, no JS parallax */
/* Pair with: add project page IDs to $static_bg_pages in header.php */
/* Safe to delete the old @property block and @keyframes natureFlow if nothing else uses them. */

.static-body-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: -1;
    overflow: hidden;
    transform: translateZ(0);
    background-color: hsla(213, 26%, 7%, 1); /* base — never white */
}

.static-body-bg::before {
    content: "";
    position: absolute;
    inset: -25%;
    pointer-events: none;
    background-image:
        radial-gradient(at 50% 50%, hsla(210, 70%, 42%, 0.20) 0px, transparent 70%),  /* Blue */
        radial-gradient(at 50% 50%, hsla(258, 45%, 42%, 0.22) 0px, transparent 75%);  /* Violet */
    background-size: 120% 120%, 120% 120%;
    background-repeat: no-repeat, no-repeat;
    background-position: 30% 40%, 60% 65%;
    will-change: transform;
    animation: bloomDriftA 90s ease-in-out infinite;
}

.static-body-bg::after {
    content: "";
    position: absolute;
    inset: -25%;
    pointer-events: none;
    background-image:
        radial-gradient(at 50% 50%, hsla(228, 55%, 40%, 0.18) 0px, transparent 65%);  /* Indigo */
    background-size: 120% 120%;
    background-repeat: no-repeat;
    background-position: 55% 55%;
    will-change: transform;
    animation: bloomDriftB 70s ease-in-out infinite;
}

@keyframes bloomDriftA {
    0%   { transform: translate(-4%, -3%); }
    33%  { transform: translate(3%, -2%); }
    66%  { transform: translate(2%, 4%); }
    100% { transform: translate(-4%, -3%); }
}

@keyframes bloomDriftB {
    0%   { transform: translate(3%, 2%); }
    50%  { transform: translate(-3%, -3%); }
    100% { transform: translate(3%, 2%); }
}/* End custom CSS */