/*
 * Deliberately no `position` rule here. This same class is combined with
 * page-specific placement classes (e.g. budi-vogel-kalender, which sets
 * position:absolute; left:30px; bottom:0;) — declaring position here too
 * would fight that rule for the cascade (equal specificity, and this
 * stylesheet loads after the theme's own), silently breaking placement.
 * The positioning context needed for the hidden source video lives on
 * .budi-animated-icon__stage below instead.
 */
.budi-animated-icon {
    display: block;
    line-height: 0;
}

.budi-animated-icon__stage {
    position: relative;
    display: block;
}

.budi-animated-icon__canvas,
.budi-animated-icon__fallback {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
}

/*
 * The <video> is only ever used as a decode source for the canvas — it must
 * never be display:none (browsers throttle/stop decoding non-displayed
 * video to save power), so it's kept in the layout at full size but made
 * invisible with opacity instead.
 */
.budi-animated-icon__source {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
}
