/* =====================================================
   OpenMatchDay live beacon — Live Beacon Arena brand motion
   Markup: includes/helpers.php renderLiveBeacon()
   Rules (brand handoff): 1.2s cycle, arc rotates + rings expand,
   orange core stays stationary. Motion ONLY while genuinely live
   (.is-live) and only when the viewer allows motion. Static beacon
   is the default and the prefers-reduced-motion fallback.
   ===================================================== */

.omd-beacon {
    display: inline-block;
    vertical-align: middle;
    height: 32px;
    width: auto;
    /* scaled beacons and expanding rings may paint just outside the viewBox */
    overflow: visible;
}

/* Standalone beacon dot (core + arc + rings, no arena) for compact chrome */
.omd-beacon--dot {
    height: 20px;
    width: 20px;
    margin-right: 2px;
}

/* Not live: arc and rings invisible — the mark equals the static live icon */
.omd-beacon .omdb-arc,
.omd-beacon .omdb-ring {
    opacity: 0;
}

/* LIVE state, motion-independent: static amber arc + soft halo. The live
   state must never be conveyed by motion alone — reduced-motion users (and
   Windows machines with animation effects off) still see that it is live.
   The animation below is an enhancement layered on top of this. */
.omd-beacon.is-live .omdb-arc {
    opacity: 0.95;
}
.omd-beacon.is-live .omdb-ring1 {
    opacity: 0.55;
    transform: scale(1.3);
    transform-box: fill-box;
    transform-origin: center;
}
/* Glow is reserved for the live digital beacon (brand rule) — core only,
   so the arena strokes stay crisp */
.omd-beacon.is-live .omdb-core {
    filter: drop-shadow(0 0 5px rgba(255, 153, 0, 0.9)) drop-shadow(0 0 12px rgba(255, 153, 0, 0.5));
}

@media (prefers-reduced-motion: no-preference) {
    .omd-beacon.is-live .omdb-arc {
        transform-box: fill-box;
        transform-origin: center;
        animation: omdb-spin 1.2s linear infinite;
    }
    .omd-beacon.is-live .omdb-ring1 {
        transform-box: fill-box;
        transform-origin: center;
        animation: omdb-pulse-a 1.2s linear infinite;
    }
    .omd-beacon.is-live .omdb-ring2 {
        transform-box: fill-box;
        transform-origin: center;
        animation: omdb-pulse-b 1.2s linear 0.28s infinite;
    }
}

@keyframes omdb-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Ring bases are r=15; masters expand 13→31 and 13→27 while fading */
@keyframes omdb-pulse-a {
    0%   { opacity: 0.9; transform: scale(0.87); }
    100% { opacity: 0;   transform: scale(2.07); }
}

@keyframes omdb-pulse-b {
    0%   { opacity: 0.72; transform: scale(0.87); }
    100% { opacity: 0;    transform: scale(1.8); }
}
