/* Crystal court: gilded, hand-drawn fittings and slow blue/violet energy. */
.play-layout{position:relative}
.hero-info-panel{position:absolute;right:0;top:0;bottom:0;width:292px;z-index:32;display:flex;flex-direction:column;min-height:0;border:2px solid var(--rarity,#bba26d);border-radius:3px;background:linear-gradient(160deg,#211a35,#11192b 65%);box-shadow:0 0 0 1px #e4c58a77,inset 0 0 0 4px #0a1123,0 8px 28px #040612bb;color:#eff0fa;overflow:hidden}
.hero-info-panel[hidden]{display:none}
@media(min-width:1101px){.play-layout:has(#hero-info-panel:not([hidden])){grid-template-columns:var(--rail) minmax(0,1fr) 292px}.play-layout:has(#hero-info-panel:not([hidden])) .rivals-panel{visibility:hidden}}
.hero-panel-close{position:absolute;top:8px;right:8px;z-index:4;display:grid;place-items:center;width:28px;height:28px;border:1px solid #d3b78699;background:#14162bdc;color:#f5deb0;border-radius:3px;font-size:23px;line-height:1}
.hero-panel-close:hover,.hero-panel-close:focus-visible{background:#453553;outline:2px solid #ead2a0;outline-offset:2px}
.hero-panel-banner{position:relative;flex:0 0 146px;overflow:hidden;background:#191a30;border-bottom:1px solid #ac8e6355}
.hero-panel-banner>img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero-panel-banner:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#080d201a 30%,#11192bcc 75%,#11192b);pointer-events:none}
.hero-panel-rank{position:absolute;top:12px;left:15px;z-index:2;display:flex;gap:3px;color:#ffe4a0;filter:drop-shadow(0 0 4px #edc166)}
.hero-panel-rank .arena-icon{width:16px;height:16px}
.hero-panel-tier{position:absolute;left:10px;bottom:50px;z-index:2;display:grid;place-items:center;width:24px;height:24px;border:1px solid #efd59a;background:var(--rarity);box-shadow:0 0 0 2px #12172b;border-radius:4px;font-size:13px;font-weight:700}
.hero-panel-traits{position:absolute;bottom:10px;left:14px;right:12px;z-index:2;display:flex;flex-direction:column;gap:5px}
.hero-panel-traits>span{display:flex;align-items:center;gap:7px;font-size:12px;color:#ede5f5;text-shadow:0 1px 3px #000}
.hero-panel-traits .arena-icon{width:17px;height:17px;color:#e8d1a1}
.hero-panel-name{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 13px;background:#16162b;border-bottom:1px solid #ddbf8a44}
.hero-panel-name h2{margin:0;font:700 21px ArenaDisplay,Georgia,serif;color:#fff0cc;line-height:1.25}
.hero-panel-name>b{display:flex;align-items:center;gap:4px;color:#e8c684;font-size:13px}.hero-panel-name .arena-icon{width:15px;height:15px}
.hero-panel-bars{padding:4px 5px 0}.hero-panel-bars>div{position:relative;height:20px;overflow:hidden;background:#080f21;border:1px solid #0b1023;text-align:center}.hero-panel-bars i{display:block;height:100%;transition:width .18s}.hero-panel-bars span{position:absolute;inset:0;font-size:12px;line-height:18px;text-shadow:0 1px 2px #000;letter-spacing:.3px}.hero-panel-hp i{background:linear-gradient(#46c795,#187958)}.hero-panel-hp.enemy i{background:linear-gradient(#db7b8f,#a7395a)}.hero-panel-mana i{background:linear-gradient(#548dd7,#225180)}
.hero-panel-body{padding:10px 12px;overflow:auto;scrollbar-width:thin;flex:1;min-height:0}
.hero-attack-profile{display:flex;align-items:center;gap:9px;border:1px solid #9d89b33d;background:#7676a817;padding:8px;margin-bottom:10px}.hero-attack-profile>.arena-icon{width:25px;height:25px;color:#c2a4f5}.hero-attack-profile strong{display:block;font-size:12px;color:#e2d8f2}.hero-attack-profile span{display:block;font-size:10px;color:#b6b8d4;margin-top:3px}
.hero-info-panel .hero-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 5px;padding:7px 0;border-top:1px solid #bba07533;border-bottom:1px solid #bba07533}
.hero-info-panel .hero-stat-grid>div{border:0;padding:3px 1px;background:transparent;text-align:center;gap:3px}
.hero-info-panel .hero-stat-grid span{overflow-wrap:anywhere}
.hero-info-panel .hero-stat-grid span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:9px;color:#bfc0d6}.hero-info-panel .hero-stat-grid .arena-icon{width:20px;height:20px;color:#dbc48c}.hero-info-panel .hero-stat-grid b{font-size:13px;color:#f5ebd2;font-variant-numeric:tabular-nums}
.hero-info-panel .hero-spell{padding:10px;margin-top:11px;border-radius:2px;border-color:#b1976666;background:linear-gradient(130deg,#39284588,#17243b88)}
.hero-info-panel .hero-spell>strong{font-family:ArenaDisplay,Georgia,serif;font-size:18px;color:#e8d5a5}.hero-info-panel .hero-spell .eyebrow{font-size:8px;letter-spacing:.8px}.hero-info-panel .hero-spell p{font-size:10px;line-height:1.5;margin:6px 0}.hero-info-panel .hero-spell b{font-size:12px}.hero-info-panel .hero-spell>div>span{font-size:10px}.hero-info-panel .hero-spell>small{font-size:10px}
.hero-spell-heading{display:flex;align-items:center;gap:9px;min-width:0}
.hero-spell-icon{flex:0 0 44px;width:44px;height:44px;object-fit:cover;border:1px solid #d6b980;border-radius:3px;box-shadow:0 0 0 2px #111727,0 0 10px #c0954833}
.hero-spell-heading>div{min-width:0}.hero-spell-heading strong{display:block;margin-top:3px;font:700 15px/1.25 ArenaDisplay,Georgia,serif;color:#e8d5a5;overflow-wrap:anywhere}
.hero-spell-levels{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px;font-variant-numeric:tabular-nums;margin:10px 0}
.hero-spell-levels caption{text-align:left;color:#c2b4d5;font-size:9px;padding-bottom:6px}
.hero-spell-levels th,.hero-spell-levels td{padding:6px 3px;border-bottom:1px solid #c3a57522;text-align:center;color:#e3e2ef;overflow-wrap:anywhere;vertical-align:middle}
.hero-spell-levels th:first-child{width:43%;text-align:left;font-weight:400;color:#c6c3d9;font-size:9px}
.hero-spell-levels thead th{background:#11172a80;color:#dfc488;font-weight:700;border-bottom-color:#c3a57555}
.hero-spell-levels thead th>span{display:inline-flex;vertical-align:middle;margin-left:2px}.hero-spell-levels .arena-icon{width:11px;height:11px}
.hero-spell-levels .current-star{background:#b2914930;color:#fff0b8;font-weight:700;box-shadow:inset 1px 0 #e2bf7555,inset -1px 0 #e2bf7555}
.hero-info-panel .hero-spell>small{display:block;line-height:1.5;color:#c2c3d7}
.hero-panel-context{margin:10px 0 0;color:#a9aac5;font-size:9px;line-height:1.5}
.hero-panel-sell{display:flex;justify-content:center;align-items:center;gap:5px;flex:0 0 34px;margin:5px 12px 12px;border:1px solid #dfc089;border-radius:2px;background:linear-gradient(#58446b,#2c314b);box-shadow:inset 0 0 0 2px #151b32;color:#f8e0ae;font-size:12px;font-weight:600}.hero-panel-sell .arena-icon{width:16px;height:16px}.hero-panel-sell:hover:not(:disabled){background:linear-gradient(#776080,#3a425c)}.hero-panel-sell:disabled{opacity:.45;cursor:default}
.hero-panel-enemy{padding:10px;text-align:center;color:#d6b4d0;font-size:10px;letter-spacing:1px;border-top:1px solid #a385ad33}
.battle-character.inspected:before{border-color:#ffe9af;box-shadow:0 0 10px #e9c785aa}
@media(max-width:1100px){.hero-info-panel{width:280px}}
@media(max-width:750px){.hero-info-panel{position:fixed;top:76px;right:8px;bottom:auto;width:min(292px,calc(100vw - 16px));max-height:calc(100dvh - 88px);z-index:34}.hero-panel-banner{flex-basis:120px}.hero-panel-body{max-height:calc(100dvh - 320px)}}
/* Transparent upper-body art belongs to the battlefield; shop and bench keep their portraits. */
.battle-character{--rank-light:245 249 255;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.battle-character[data-stars="2"]{--rank-light:83 255 144}
.battle-character[data-stars="3"]{--rank-light:71 158 255}
.character-aura{position:absolute;inset:7px -40% 12px;z-index:0;pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at 50% 58%,rgb(var(--rank-light)/.6),rgb(var(--rank-light)/.28) 32%,rgb(var(--rank-light)/.1) 53%,transparent 72%);filter:blur(5px);animation:character-radiance 3.8s ease-in-out infinite}
.battle-character:after{display:none}
.battle-character:before{content:'';position:absolute;left:-12%;right:-12%;bottom:14px;height:16px;border:1px solid #7de7dc88;border-radius:50%;background:radial-gradient(ellipse,#67dacf35,#14213b22 65%,transparent 72%);box-shadow:0 3px 7px #0006;z-index:-1}
.battle-character.enemy-unit:before{border-color:#f08a9d88;background:radial-gradient(ellipse,#ed729b35,#14213b22 65%,transparent 72%)}
.battle-character .unit-art{inset:10px -30% 19px;border-radius:0;overflow:hidden;z-index:1;mask-image:linear-gradient(#000 0%,#000 78%,transparent 100%)}
.battle-character .unit-art img{display:block;width:100%;height:auto;max-width:none;object-fit:contain;object-position:center top;filter:drop-shadow(0 3px 3px #050918aa)}
.battle-character .unit-art:after{display:none}
.battle-character .healthbar{top:0;left:0;right:0;height:5px;box-shadow:0 1px 3px #0009}
.battle-character .manabar{top:6px;left:0;right:0;height:3px}
.battle-character .unit-info{bottom:0;left:-25%;right:-25%;text-align:center;pointer-events:none}
.battle-character .unit-info strong{font-size:12px;text-shadow:0 1px 3px #000,0 0 6px #000}
.battle-character .character-name{display:flex;align-items:center;justify-content:center;gap:5px}
.battle-character .character-name strong{min-width:0}
.battle-character .stars{position:static;transform:none;flex-shrink:0;gap:2px;color:#ffde86;filter:drop-shadow(0 1px 1px #17101f) drop-shadow(0 0 4px rgb(var(--rank-light)/.85))}
.battle-character .rank-star{position:relative;display:flex;animation:rank-star-shimmer 3s ease-in-out infinite}
.battle-character .rank-star:nth-child(2){animation-delay:.35s}.battle-character .rank-star:nth-child(3){animation-delay:.7s}
.battle-character .rank-star .arena-icon{width:13px;height:13px;stroke:#fff3c7;stroke-width:1.2}
.battle-character .rank-star:after{content:'';position:absolute;top:1px;right:0;width:5px;height:5px;background:#fff9df;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:rank-glint 3s ease-in-out infinite;animation-delay:inherit}
@keyframes character-radiance{0%,100%{opacity:.7;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
@keyframes rank-star-shimmer{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35)}}
@keyframes rank-glint{0%,30%,80%,100%{opacity:0;transform:scale(.5)}55%{opacity:1;transform:scale(1.25)}}
body[data-effects="reduced"] .character-aura,body[data-effects="reduced"] .rank-star,body[data-effects="reduced"] .rank-star:after{animation:none}
@media(prefers-reduced-motion:reduce){.character-aura,.battle-character .rank-star,.battle-character .rank-star:after{animation:none}}
.battle-character .unit-crests{display:none}
.battle-character.selected,.battle-character.casting{outline:0;box-shadow:none}
.battle-character:hover:not(:disabled){border:0;box-shadow:none}
.battle-character:hover .unit-art img,.battle-character.selected .unit-art img{filter:drop-shadow(0 0 4px #bceeffaa) drop-shadow(0 3px 3px #050918aa)}
.battle-character.selected:before{border-color:#e3dcff;box-shadow:0 0 12px #bba6ff}
.battle-character.attacking{box-shadow:none;translate:none}
.battle-character.casting .unit-art img,.battle-character.attacking .unit-art img{filter:drop-shadow(0 0 7px var(--unit-color))}
.arena-scenery{background:linear-gradient(180deg,#10172a30,#10172a40),url('../image/ui/tft_board/alap.webp') center/cover;filter:brightness(.76) saturate(.82)}
.enchanted-host{position:relative;isolation:isolate}
.ui-enchantment{position:absolute;inset:0;pointer-events:none;user-select:none;border-radius:inherit;overflow:hidden;z-index:0;contain:paint}
.ui-enchantment~*{position:relative;z-index:1}
/* Preserve the board's absolute overlays and grid placement. */
#arena>.ui-enchantment~.arena-scenery,#arena>.ui-enchantment~.arena-rune,#arena>.ui-enchantment~.side-label,#arena>.ui-enchantment~.arena-team-count,#arena>.ui-enchantment~.combat-effects,#arena>.ui-enchantment~.damage-layer,#arena>.ui-enchantment~.result-overlay{position:absolute}
#arena>.ui-enchantment{z-index:2}.enemy-grid,.player-grid{z-index:3}
#combat-effects{z-index:12}#damage-layer{z-index:14}#result-overlay{z-index:20}
.ui-enchantment .ornament-nw,.ui-enchantment .ornament-ne,.ui-enchantment .ornament-sw,.ui-enchantment .ornament-se{position:absolute;width:43px;height:43px;z-index:2}
.ornament-nw{top:0;left:0}.ornament-ne{top:0;right:0;transform:scaleX(-1)}.ornament-sw{bottom:0;left:0;transform:scaleY(-1)}.ornament-se{bottom:0;right:0;transform:scale(-1)}
.ornament-corner{width:100%;height:100%;filter:drop-shadow(0 1px 2px #080916cc)}
.ornament-glint{animation:ornament-glint 6.5s ease-in-out infinite}
.ambient-current{position:absolute;left:-8%;bottom:-10%;width:116%;height:85%;color:#a88bff;opacity:.19;filter:drop-shadow(0 0 4px #749eff);animation:ambient-current 10s ease-in-out infinite alternate;transform-origin:50% 100%}
.ambient-aura{position:absolute;left:-10%;right:-10%;bottom:-50px;height:170px;opacity:.6;background:radial-gradient(ellipse at 22% 70%,#4f75ff33,transparent 46%),radial-gradient(ellipse at 85% 90%,#9c5bff3d,transparent 43%);animation:ambient-aura 8s ease-in-out infinite alternate}
.ambient-mote{position:absolute;left:var(--mote-x);bottom:-8px;width:3px;height:3px;border-radius:50%;background:#9ec7ff;box-shadow:0 0 5px 1px #5e91ff99;opacity:0;animation:ambient-rise var(--mote-duration) var(--mote-delay) linear infinite;--mote-rise:150px}
.ambient-mote:before{content:'';position:absolute;width:1px;height:19px;left:1px;top:3px;background:linear-gradient(#8fafff99,transparent)}
.mote-1{width:4px;height:4px;border-radius:0;rotate:45deg;background:#cfb6ff;box-shadow:0 0 7px #ac75ff}.mote-1:before{display:none}.mote-2{width:2px;height:2px;background:#ffe6a6;box-shadow:0 0 6px #ecbd7388}
.arcane-jewel{position:absolute;width:28px;height:28px;left:calc(50% - 14px);bottom:0;filter:drop-shadow(0 0 6px #9172ff88);animation:jewel-breathe 4s ease-in-out infinite}
.enchantment-header .ornament-corner,.enchantment-bench .ornament-corner{opacity:.85}.enchantment-header .ambient-mote{--mote-rise:60px}.enchantment-header .ambient-current{height:160%;opacity:.25}
.enchantment-arena .ambient-current{display:none}.enchantment-arena .ambient-mote{--mote-rise:230px}.enchantment-arena .ambient-aura{opacity:.3}.enchantment-arena .ornament-corner{width:48px;height:48px}.enchantment-arena .ornament-nw,.enchantment-arena .ornament-ne,.enchantment-arena .ornament-sw,.enchantment-arena .ornament-se{width:48px;height:48px}
.enchantment-bench .ambient-mote{--mote-rise:100px}.enchantment-bench .ambient-current{opacity:.23}.enchantment-bench .arcane-jewel{display:none}
.enchantment-recruit .arcane-jewel{left:-1px;top:0;bottom:auto;width:24px;height:24px}.enchantment-recruit .ambient-current{opacity:.24}.enchantment-recruit .ornament-nw,.enchantment-recruit .ornament-ne,.enchantment-recruit .ornament-sw,.enchantment-recruit .ornament-se{width:28px;height:28px}
.enchantment-banner .ornament-corner{display:none}.enchantment-banner .ambient-current{opacity:.4}.enchantment-banner .ambient-mote{--mote-rise:64px}.enchantment-banner .arcane-jewel{width:18px;height:18px;left:calc(50% - 9px);bottom:-8px}
.ornament-halo{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 4px #d1a96344)}.halo-orbit{transform-origin:80px 80px;animation:halo-orbit 36s linear infinite}
.enchantment-fight{inset:-9px;border-radius:50%;overflow:hidden;contain:paint}.enchantment-fight .ambient-current{display:none}.enchantment-fight .ambient-aura{left:0;right:0;bottom:0;height:100%;background:radial-gradient(ellipse,#314dcc66,transparent 70%);animation:jewel-breathe 4s ease-in-out infinite}.enchantment-fight .ambient-mote{--mote-rise:150px;--mote-drift:0px!important}
.enchantment-level{inset:-5px;overflow:visible;contain:none}.enchantment-level .ambient-aura{display:none}
.topbar,.panel,.bench,.shop-dock{border-color:#b39462;box-shadow:inset 0 0 0 2px #151c32,inset 0 0 0 3px #9d79402e,0 3px 12px #06071377}
.topbar{background:radial-gradient(ellipse at 42% 0,#313d724d,transparent 50%),linear-gradient(110deg,#15172d,#111e35 50%,#21162f)}
.panel{background:radial-gradient(ellipse at 0 100%,#29427a33,transparent 55%),linear-gradient(145deg,#1c1830f5,#10192df5)}
.panel-heading{border-bottom:1px solid #bb95543d;padding-bottom:10px;padding-left:8px}.panel-heading h2{text-shadow:0 0 15px #d0a96822}.synergy-panel{padding-top:17px}.rivals-panel .panel-heading{padding:5px 9px 0}.rivals-panel .panel-heading h2{color:#efd8a9}
.bench{background:radial-gradient(ellipse at 20% 100%,#274d9238,transparent 45%),linear-gradient(120deg,#171b34,#101d32);border-radius:10px}
.bench-slot{border-color:#746b84;background:linear-gradient(145deg,#23253d,#15233c)}
.shop-dock{background:radial-gradient(ellipse at 30% 100%,#3952a42b,transparent 55%),linear-gradient(120deg,#1d1a33,#111b30 55%,#201a31);border-radius:14px}
.economy-panel{padding:7px 9px;background:linear-gradient(140deg,#23345777,#211b3477);border:1px solid #aa895b;border-radius:11px}
.enchantment-economy .ornament-nw,.enchantment-economy .ornament-ne,.enchantment-economy .ornament-sw,.enchantment-economy .ornament-se{width:30px;height:30px}
.shop-heading{padding-left:25px;border-bottom:1px solid #ad88434d;margin-bottom:4px;color:#efdeb8}.shop-heading>span{font-size:10px;letter-spacing:1px}.shop-heading small{color:#c2bbd3}
#recruit-area>.shop{z-index:2}#recruit-area>.sell-drop-preview{position:absolute;z-index:8}
.shop-card{box-shadow:0 0 0 1px #101527,0 3px 10px #06081288,inset 0 0 0 1px #f0debd33}.shop-card:hover:not(:disabled){box-shadow:0 0 0 1px #faf1cc,0 0 24px color-mix(in srgb,var(--rarity),transparent 55%)}
.upgrade-badge{position:absolute;top:7px;right:7px;z-index:4;display:flex;align-items:center;gap:5px;padding:5px 6px;border:1px solid #ffe09a;border-radius:5px;background:linear-gradient(135deg,#493658f2,#172d49f5);color:#ffe5a5;box-shadow:0 0 10px #efc57944,inset 0 1px #fff2cb33;pointer-events:none}.upgrade-badge>.arena-icon{width:15px;height:15px;color:#e5d4ff}.upgrade-badge>span{display:flex;gap:1px}.upgrade-badge>span>.arena-icon{width:11px;height:11px;filter:drop-shadow(0 0 3px #ffcf7777)}.shop-card[data-upgrade="3"] .upgrade-badge{border-color:#edbdff;box-shadow:0 0 12px #bf84ff66;color:#f4d1ff}
.round-banner{background:radial-gradient(ellipse at 50% 100%,#724eac55,transparent 65%),linear-gradient(120deg,#292343,#162b4b);border-bottom-color:#e6bf79;box-shadow:inset 0 0 0 1px #e6bc7355}.round-banner strong{text-shadow:0 0 15px #ebc57555}
.commander{border-color:#b7946455;background:linear-gradient(110deg,#42325144,#17284055)}.commander-life i{background:linear-gradient(90deg,#9566ec,#c2a0ff,#9fc4ff)}
.economy-button{border-color:#c3a275;border-radius:6px;background:linear-gradient(110deg,#263a71,#182b4c);box-shadow:inset 0 1px #cedcff20,0 2px 5px #0004}.gold-button{background:linear-gradient(110deg,#725333,#392843);border-color:#d4b276}.xp-track{height:6px;border:1px solid #b0936544;background:#060d2099}.xp-track i{background:linear-gradient(90deg,#5286ff,#b9acff);box-shadow:0 0 7px #779aff88}
#lock-button{border-color:#e0ba76;background:linear-gradient(110deg,#795b32,#443448);box-shadow:inset 0 1px #ffecc92e,0 0 10px #d2a15918}#lock-button[aria-pressed=true]{background:linear-gradient(110deg,#b07d34,#624657);box-shadow:0 0 16px #e4b46344,inset 0 1px #ffebb344}
.battle-controls{position:relative;isolation:isolate}.battle-controls:before,.battle-controls:after{content:'';position:absolute;width:57px;height:70px;top:20%;background:url('./tft-crystals.svg') center/contain no-repeat;pointer-events:none;z-index:0;filter:drop-shadow(0 0 8px #8d7aff44)}.battle-controls:before{left:-7px;transform:rotate(-18deg)}.battle-controls:after{right:-7px;transform:scaleX(-1) rotate(-18deg)}
.fight-button{z-index:1;background:radial-gradient(ellipse at 50% 25%,#5566c357,#1d3067 50%,#17172e 83%);border-color:#ffda90;box-shadow:0 0 25px #6b7af533,inset 0 0 0 5px #1a2241,inset 0 0 0 6px #d2a76b77}.fight-icon{color:#ffeab5;filter:drop-shadow(0 0 7px #a793ff)}.fight-button:not(:disabled):hover{box-shadow:0 0 30px #8ca4ff55,inset 0 0 0 5px #1a2241,inset 0 0 0 6px #f4d192aa}
.rival-avatar{border-color:#efd095}.rival-row.current .rival-avatar{box-shadow:0 0 0 3px #f8d37b33,0 0 18px #baa0ff33}.rival-avatar small{border-radius:3px;transform:rotate(0);background:#29223b;color:#ffe3ac}
@keyframes ambient-rise{0%{opacity:0;transform:translate3d(0,0,0) scale(.6)}15%{opacity:.65}70%{opacity:.35}100%{opacity:0;transform:translate3d(var(--mote-drift),calc(-1 * var(--mote-rise)),0) scale(.25)}}
@keyframes ambient-current{from{opacity:.12;transform:translate3d(-5px,12px,0) scale(.98)}to{opacity:.3;transform:translate3d(5px,-7px,0) scale(1.02)}}
@keyframes ambient-aura{from{opacity:.4;transform:translateY(10px)}to{opacity:.8;transform:translateY(-10px)}}
@keyframes jewel-breathe{0%,100%{opacity:.75;filter:drop-shadow(0 0 4px #a388ff55)}50%{opacity:1;filter:drop-shadow(0 0 9px #a388ffbb)}}
@keyframes ornament-glint{0%,70%,100%{opacity:.35}82%{opacity:1}}
@keyframes halo-orbit{to{transform:rotate(360deg)}}
body[data-effects="reduced"] .ui-enchantment *,body[data-effects="reduced"] .battle-controls:before,body[data-effects="reduced"] .battle-controls:after{animation:none!important}
body[data-effects="reduced"] .ambient-mote{display:none}body[data-effects="reduced"] .ambient-current{opacity:.13}
body[data-ambient-paused="true"] .ui-enchantment *{animation-play-state:paused!important}
@media(max-width:1100px){.economy-panel{padding:6px}.shop-heading{padding-left:20px}.battle-controls:before,.battle-controls:after{width:42px;height:60px}.enchantment-fight{inset:0}}
@media(max-width:750px){.ui-enchantment .ornament-nw,.ui-enchantment .ornament-ne,.ui-enchantment .ornament-sw,.ui-enchantment .ornament-se{width:25px;height:25px}.ambient-mote:nth-of-type(even){display:none}.enchantment-panel .ambient-mote,.enchantment-panel .ambient-current{display:none}.enchantment-header .ambient-current{opacity:.16}.economy-panel{padding:6px 5px}.enchantment-economy .ornament-nw,.enchantment-economy .ornament-ne,.enchantment-economy .ornament-sw,.enchantment-economy .ornament-se{width:19px;height:19px}.shop-heading{padding-left:0}.enchantment-recruit>.arcane-jewel{display:none}.enchantment-fight{inset:0;overflow:hidden;contain:paint}.enchantment-fight .ornament-halo{display:none}.battle-controls:before,.battle-controls:after{display:none}.fight-button{box-shadow:inset 0 0 0 3px #182341,inset 0 0 0 4px #e9bf7977}.enchantment-banner>.arcane-jewel{display:none}}

.combat-summons { position:absolute;inset:0;pointer-events:none;z-index:5; }
.combat-summons .summoned-unit { position:absolute;pointer-events:auto; }
.summoned-unit .unit-art { opacity:.75;filter:drop-shadow(0 0 8px #aaffbc); }
.summoned-unit.decoy .unit-art { opacity:.45; }
.unit.shielded .character-aura { box-shadow:0 0 16px 4px #9fe7ff88; }
.unit.stunned .unit-art { filter:grayscale(.6) drop-shadow(0 0 8px #ffcf83); }
.unit.invulnerable .unit-art { filter:drop-shadow(0 0 14px #fff2b8); }
