/* Everything is clipped by the existing card/board. No outer filters or shadows. */
.dr-fx-host{isolation:isolate}
.dr-fx-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:5;pointer-events:none;border-radius:inherit}
.dr-fx-enter{animation:dr-fx-entrance .8s cubic-bezier(.2,.7,.2,1) both}
.dr-overlay .dr-hud-b.dr-fx-enter{animation-delay:.13s}
.dr-fx-point .dr-hud-tally{animation:dr-fx-score 1s cubic-bezier(.2,.7,.2,1) both}
.dr-fx-win .dr-hud-name{animation:dr-fx-title 1.6s ease-out both}
.dr-fx-champion{border-color:#f6cb7e;background:linear-gradient(140deg,#30251df7,#101721fa)}
.dr-fx-champion .dr-hud-tally>b{color:#ffdea0}
.dr-fx-pick .dr-taken-mark{animation:dr-fx-confirm .65s cubic-bezier(.16,1,.3,1) both}
.dr-fx-ban .dr-taken-mark{animation:dr-fx-ban .6s ease-out both}
.dr-fx-reveal>img{animation:dr-fx-portrait 1.1s cubic-bezier(.2,.75,.2,1) both}
.dr-fx-reveal::after,.dr-fx-pick::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,#ffe4ad45 46%,#fff0c975 50%,transparent 70%);pointer-events:none;z-index:4;animation:dr-fx-sheen 1s ease-out both}
@keyframes dr-fx-entrance{from{opacity:0}to{opacity:1}}
@keyframes dr-fx-score{0%{opacity:.45;transform:translateY(6px) scale(.9)}32%{opacity:1;transform:translateY(0) scale(1.12);color:#ffe4a8}100%{transform:none;color:inherit}}
@keyframes dr-fx-title{0%,100%{color:var(--wing)}32%{color:#ffe4a8}}
@keyframes dr-fx-confirm{from{opacity:0;transform:scale(.55)}65%{opacity:1;transform:scale(1.1)}to{transform:scale(1)}}
@keyframes dr-fx-ban{from{opacity:0;transform:scale(1.28)}to{opacity:1;transform:scale(1)}}
@keyframes dr-fx-portrait{from{opacity:.4;transform:scale(1.07)}to{opacity:1;transform:scale(1)}}
@keyframes dr-fx-sheen{from{opacity:0;transform:translateX(-110%)}20%{opacity:1}to{opacity:0;transform:translateX(110%)}}
.dr-fx-still .dr-fx-canvas,.dr-no-motion .dr-fx-canvas{display:none}
.dr-fx-still *,.dr-fx-still *::after,.dr-fx-still *::before,
.dr-no-motion *,.dr-no-motion *::after,.dr-no-motion *::before{animation:none!important;transition:none!important}
.dr-fx-still .dr-fx-reveal::after,.dr-fx-still .dr-fx-pick::after,
.dr-no-motion .dr-fx-reveal::after,.dr-no-motion .dr-fx-pick::after{display:none}

/* Composited motion: a moving metallic highlight, responsive art, restrained ambient light. */
.dr-fx-host .dr-wordmark svg{animation:dr-emblem-breathe 4.8s ease-in-out infinite;transform-origin:50% 70%}
.dr-fx-host .dr-on-turn{animation:dr-turn-aura 4s ease-in-out infinite}
.dr-fx-host .dr-chosen-portrait>img{animation:dr-art-breathe 9s ease-in-out infinite alternate;transform-origin:50% 28%}
.dr-fx-host .dr-side-b .dr-chosen-portrait>img{animation-delay:-4s}
.dr-option::before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,30%),#fff0c640,transparent 65%);transition:opacity .35s}
.dr-option{transform-origin:50% 70%;transition:transform .42s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s}
.dr-option:not(.dr-used):hover,.dr-option.dr-hover,.dr-option:not(.dr-used):focus-visible{transform:perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-3px);border-color:#edc780b3;box-shadow:0 8px 18px #0005,0 0 0 1px #edc78030;z-index:2}
.dr-option:not(.dr-used):hover::before,.dr-option.dr-hover::before,.dr-option:focus-visible::before{opacity:1}
.dr-option:not(.dr-used):hover>img,.dr-option.dr-hover>img,.dr-option:focus-visible>img{transform:scale(1.09);transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.dr-chosen-portrait.dr-hover{border-color:var(--side)}
.dr-map-spotlight.dr-hover{border-color:#edc7809c;box-shadow:inset 0 0 26px #edc78009}.dr-map-spotlight.dr-hover>img{transform:scale(1.045)}
.dr-map-visible::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#ebc37410 49%,transparent 70%);animation:dr-map-light 10s ease-in-out infinite}
.dr-fx-map>img{animation:dr-map-reveal .95s cubic-bezier(.16,1,.3,1) both}
.dr-fx-ban-slot{animation:dr-ban-pulse .75s ease-out}
.dr-fx-host .dr-fx-reveal>img{animation:dr-fx-portrait 1.1s cubic-bezier(.2,.75,.2,1) both}
@keyframes dr-emblem-breathe{0%,100%{opacity:.82;transform:scale(.96)}50%{opacity:1;transform:scale(1.06)}}
@keyframes dr-art-breathe{from{transform:scale(1.015) translateY(0)}to{transform:scale(1.06) translateY(-2px)}}
@keyframes dr-turn-aura{0%,100%{border-top-color:var(--side)}50%{border-top-color:#ffebbc}}
@keyframes dr-map-light{0%,12%{transform:translateX(-100%)}65%,100%{transform:translateX(100%)}}
@keyframes dr-map-reveal{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
@keyframes dr-ban-pulse{0%{background:#ff867c38;border-color:#ff867c}100%{background:transparent;border-color:#ffffff13}}
.dr-fx-still .dr-room-shell *,.dr-fx-still .dr-room-shell *::before,.dr-fx-still .dr-room-shell *::after{animation:none!important;transition:none!important}
.dr-fx-still .dr-option,.dr-no-motion .dr-option{transform:none!important}
.dr-fx-still .dr-option>img,.dr-fx-still .dr-chosen-portrait>img,.dr-fx-still .dr-map-spotlight>img,.dr-no-motion .dr-option>img{transform:none!important}
.dr-fx-still .dr-map-visible::after,.dr-no-motion .dr-map-visible::after{display:none}
