/* CuanCapital Experience OS: Cultural & Urban Avatar Borders */

.cultural-aw {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 108px;
    height: 108px;
    pointer-events: none;
    z-index: 8;
    transform-origin: center center;
}

.cultural-aw .cultural-ring-svg {
    position: absolute;
    inset: 0;
    width: 108px;
    height: 108px;
    overflow: visible;
}

.cultural-aw .spin-cw {
    transform-origin: 54px 54px;
    animation: cultural-rot-cw linear infinite;
}

.cultural-aw .spin-ccw {
    transform-origin: 54px 54px;
    animation: cultural-rot-ccw linear infinite;
}

.cultural-aw .pulse {
    animation: cultural-pulse ease-in-out infinite;
}

.cultural-aw .bob {
    animation: cultural-bob ease-in-out infinite;
}

.cultural-aw .flicker {
    animation: cultural-flicker ease-in-out infinite;
}

.cultural-aw .dash-forward {
    animation: cultural-dash-forward linear infinite;
}

@keyframes cultural-rot-cw {
    to { transform: rotate(360deg); }
}

@keyframes cultural-rot-ccw {
    to { transform: rotate(-360deg); }
}

@keyframes cultural-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.3; transform: scale(0.84); }
}

@keyframes cultural-bob {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

@keyframes cultural-flicker {
    0%, 100% { opacity: 0.95; }
    30% { opacity: 0.45; }
    58% { opacity: 1; }
    80% { opacity: 0.28; }
}

@keyframes cultural-dash-forward {
    to { stroke-dashoffset: -280; }
}
