/* DORA page — hero visual */
.dora-hero { width: 100%; height: auto; max-width: 600px; margin-inline: auto; }
.dora-hero .dh-ring { transform-origin: 280px 250px; animation: dhSpin 60s linear infinite; stroke-dasharray: 3 9; }
.dora-hero .dh-ring--2 { animation-duration: 40s; animation-direction: reverse; }
.dora-hero .dh-path { stroke-dasharray: 112; stroke-dashoffset: 112; animation: dhTrace 4s var(--ease) infinite; }
.dora-hero .dh-alert { transform-origin: 280px 82px; animation: dhPing 4s var(--ease) infinite; }
@keyframes dhSpin { to { transform: rotate(360deg); } }
@keyframes dhTrace { 0% { stroke-dashoffset: 112; } 40%, 85% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -112; } }
@keyframes dhPing { 0%, 35% { transform: scale(1); opacity: 0; } 45% { opacity: 1; } 100% { transform: scale(2.4); opacity: 0; } }
