/* Ambient background motion for the editorial auth pages (index/login/register/authh).
   Scoped to #contact.ed-section so it never leaks into other pages. */

#contact.ed-section .ed-blobs {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
}

#contact.ed-section .ed-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    will-change: transform;
}

#contact.ed-section .ed-blob.b1 {
    width: 440px;
    height: 440px;
    left: -10%;
    top: -14%;
    opacity: .32;
    background: radial-gradient(circle at 30% 30%, #f0c860, transparent 70%);
    animation: edBlobDrift1 24s ease-in-out infinite;
}

#contact.ed-section .ed-blob.b2 {
    width: 380px;
    height: 380px;
    right: -10%;
    top: 18%;
    opacity: .16;
    background: radial-gradient(circle at 60% 40%, #7a1f2b, transparent 70%);
    animation: edBlobDrift2 30s ease-in-out infinite;
}

#contact.ed-section .ed-blob.b3 {
    width: 320px;
    height: 320px;
    left: 22%;
    bottom: -16%;
    opacity: .24;
    background: radial-gradient(circle at 50% 50%, #d4a843, transparent 70%);
    animation: edBlobDrift3 20s ease-in-out infinite;
}

@keyframes edBlobDrift1 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(60px, 44px) scale(1.12); }
}

@keyframes edBlobDrift2 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(-54px, 32px) scale(1.08); }
}

@keyframes edBlobDrift3 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(42px, -46px) scale(1.15); }
}

/* Drifting gold dust motes, painted above the grain texture so they stay crisp */
#contact.ed-section .ed-dust {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

/* Slow gold sweep across the frame, echoes the wallet button shimmer already on the page */
#contact.ed-section .ed-sheen {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
#contact.ed-section .ed-sheen::before {
    content: '';
    position: absolute;
    top: -20%;
    left: -60%;
    width: 45%;
    height: 140%;
    background: linear-gradient(100deg, transparent, rgba(240,200,96,0.10), transparent);
    transform: skewX(-16deg);
    animation: edSheenSweep 9s ease-in-out infinite;
}

@keyframes edSheenSweep {
    0%   { left: -60%; }
    45%  { left: 130%; }
    100% { left: 130%; }
}

@media (max-width: 600px) {
    #contact.ed-section .ed-blob { filter: blur(38px); }
    #contact.ed-section .ed-blob.b1 { width: 260px; height: 260px; }
    #contact.ed-section .ed-blob.b2 { width: 220px; height: 220px; }
    #contact.ed-section .ed-blob.b3 { width: 200px; height: 200px; }
}

@media (prefers-reduced-motion: reduce) {
    #contact.ed-section .ed-blob { animation: none !important; }
    #contact.ed-section .ed-sheen::before { animation: none !important; opacity: 0 !important; }
    #contact.ed-section .ed-dust { display: none !important; }
}
