.bl-duel{--bl-duel-loop:2.8s;--duel-floor-y:0px;--duel-character-frame-width:clamp(96px,28vw,148px);--duel-character-frame-height:clamp(86px,20vw,132px);--duel-character-height:clamp(76px,18vw,116px);--duel-slot-gap:clamp(44px,18vw,112px);--duel-banner-width:clamp(34px,9vw,46px);--duel-banner-height:clamp(48px,12vw,62px);--duel-banner-logo-size:clamp(22px,6vw,29px);--duel-banner-side:clamp(18px,7vw,84px);--duel-banner-top:clamp(10px,3vw,16px);--duel-battlefield-extra:clamp(12px,5vw,24px);--duel-battlefield-bottom:clamp(-8px,-2vw,-4px)}.bl-duel--hero{--duel-floor-y:0px;--duel-character-frame-width:clamp(132px,26vw,210px);--duel-character-frame-height:clamp(110px,18vw,176px);--duel-character-height:clamp(96px,16vw,154px);--duel-slot-gap:clamp(56px,20vw,172px);--duel-banner-width:clamp(40px,10vw,58px);--duel-banner-height:clamp(56px,13vw,78px);--duel-banner-logo-size:clamp(26px,7vw,36px);--duel-banner-side:clamp(24px,8vw,120px);--duel-banner-top:clamp(12px,4vw,22px)}@media (max-width:480px){.bl-duel{--duel-floor-y:0px;--duel-character-frame-width:clamp(88px,30vw,120px);--duel-character-frame-height:clamp(76px,24vw,104px);--duel-character-height:clamp(66px,22vw,92px)}.bl-duel--hero{--duel-floor-y:0px;--duel-character-frame-width:clamp(116px,34vw,150px);--duel-character-frame-height:clamp(94px,28vw,132px);--duel-character-height:clamp(78px,24vw,116px)}}@media (max-width:420px){.bl-duel{--duel-character-frame-width:clamp(104px,34vw,132px);--duel-slot-gap:clamp(38px,21vw,78px);--duel-banner-width:clamp(30px,9vw,38px);--duel-banner-height:clamp(42px,12vw,52px);--duel-banner-logo-size:clamp(19px,6vw,24px);--duel-banner-side:clamp(12px,5vw,24px);--duel-banner-top:8px;--duel-battlefield-extra:16px;--duel-battlefield-bottom:-6px}.bl-duel--hero{--duel-character-frame-width:clamp(118px,36vw,150px);--duel-slot-gap:clamp(44px,22vw,88px)}}@media (max-width:360px){.bl-duel{--duel-character-frame-width:104px;--duel-slot-gap:40px;--duel-banner-width:30px;--duel-banner-height:42px;--duel-banner-logo-size:19px;--duel-banner-side:10px}}.bl-duel__battlefield{position:absolute;inset-inline:0;top:auto;bottom:-48px;width:100%;height:calc(100% + var(--duel-battlefield-extra, 24px));-o-object-fit:cover;object-fit:cover;-o-object-position:center bottom;object-position:center bottom;opacity:.72;image-rendering:pixelated;pointer-events:none;z-index:1;-webkit-mask-image:linear-gradient(0deg,#000 0,rgba(0,0,0,.95) 48%,rgba(0,0,0,.35) 78%,transparent);mask-image:linear-gradient(0deg,#000 0,rgba(0,0,0,.95) 48%,rgba(0,0,0,.35) 78%,transparent)}.bl-duel[data-duel-state=draw] .bl-duel__battlefield,.bl-duel[data-duel-state=half] .bl-duel__battlefield{opacity:.32}.bl-duel__stage{position:absolute;inset:0;z-index:4}.bl-duel[data-duel-state=live] .bl-duel__stage{animation:bl-duel-shake var(--bl-duel-loop) linear infinite}.bl-duel__combatants{left:0;right:0;bottom:var(--duel-floor-y);z-index:6;pointer-events:none}.bl-duel__combatants,.bl-duel__knightWrap{position:absolute;height:var(--duel-character-frame-height)}.bl-duel__knightWrap{bottom:0;width:var(--duel-character-frame-width);display:flex;align-items:flex-end;justify-content:center;overflow:visible;transform-origin:bottom center}.bl-duel__knightWrap--home{left:calc(50% - var(--duel-slot-gap));transform:translateX(-50%)}.bl-duel__knightWrap--away{left:calc(50% + var(--duel-slot-gap));transform:translateX(-50%)}.bl-duel__knightFrame{position:relative;bottom:0;width:var(--duel-character-frame-width);height:var(--duel-character-frame-height);display:flex;align-items:flex-end;justify-content:center;overflow:visible;transform-origin:bottom center}.bl-duel__knightFrame--home.bl-duel__knightFrame--victory,.bl-duel__knightWrap--home.bl-duel__knightWrap--victory{--duel-glint-x:42%;--duel-glint-y:8%}.bl-duel__knightFrame--away.bl-duel__knightFrame--victory,.bl-duel__knightWrap--away.bl-duel__knightWrap--victory{--duel-glint-x:58%;--duel-glint-y:8%}.bl-duel__knightMotion{width:100%;height:100%;display:flex;align-items:flex-end;justify-content:center}.bl-duel__knight,.bl-duel__knightMotion{position:relative;z-index:1;transform-origin:bottom center}.bl-duel__knight{display:block;height:var(--duel-character-height);width:auto;max-width:calc(var(--duel-character-frame-width) * 1.6);max-height:100%;-o-object-fit:contain;object-fit:contain;image-rendering:pixelated;transform:scaleX(var(--duel-facing,1)) scale(var(--duel-role-scale,1)) translateY(calc(var(--duel-character-height) * var(--duel-pose-drop, 0)))}.bl-duel__knight--idle{--duel-role-scale:1;--duel-pose-drop:0.222}.bl-duel__knight--attack{--duel-role-scale:1;--duel-pose-drop:0.265}.bl-duel__knight--victory{--duel-role-scale:1.03;--duel-pose-drop:0.211}.bl-duel__knight--defeated{--duel-role-scale:0.96;--duel-pose-drop:0.232}.bl-duel__knight--flip{--duel-facing:-1}.bl-duel[data-duel-state=ft] .bl-duel__knightMotion--idle,.bl-duel[data-duel-state=pre] .bl-duel__knightMotion--idle{animation:bl-duel-idle-pulse 2.6s ease-in-out infinite}.bl-duel__knightWrap--away .bl-duel__knightMotion--idle{animation-delay:-1.3s}.bl-duel__knightWrap--home .bl-duel__knightMotion--attack{animation:bl-duel-home-attack var(--bl-duel-loop) ease-in-out infinite}.bl-duel__knightWrap--away .bl-duel__knightMotion--attack{animation:bl-duel-away-attack var(--bl-duel-loop) ease-in-out infinite}.bl-duel[data-duel-state=live] .bl-duel__knight{filter:drop-shadow(0 0 3px rgba(252,211,77,.3))}.bl-duel__knightMotion--victory{animation:bl-duel-victory-pulse 1.7s ease-in-out infinite}.bl-duel__knightFrame--defeated .bl-duel__knight{filter:grayscale(.4) brightness(.72);opacity:.92}.bl-duel__victorySpotlight{position:absolute;left:50%;bottom:0;width:92%;height:88%;transform:translateX(-50%);border-radius:999px 999px 40% 40%;background:radial-gradient(ellipse at 50% 100%,rgba(242,183,5,.3) 0,rgba(242,183,5,.16) 34%,rgba(242,183,5,.06) 58%,transparent 76%),radial-gradient(circle at 50% 34%,hsla(0,0%,100%,.12),transparent 48%);filter:blur(4px);opacity:.86;pointer-events:none;z-index:0}.bl-duel__swordGlint{position:absolute;left:var(--duel-glint-x,50%);top:var(--duel-glint-y,8%);width:18px;height:18px;transform:translate(-50%,-50%) rotate(45deg);background:linear-gradient(90deg,transparent 42%,hsla(0,0%,100%,.98) 50%,transparent 58%),linear-gradient(0deg,transparent 42%,rgba(242,183,5,.95) 50%,transparent 58%);filter:drop-shadow(0 0 6px rgba(242,183,5,.75));opacity:0;pointer-events:none;z-index:3}@media (prefers-reduced-motion:no-preference){.bl-duel__knightFrame--victory .bl-duel__victorySpotlight{animation:bl-duel-victory-spotlight 2.4s ease-in-out infinite}.bl-duel__knightFrame--victory .bl-duel__swordGlint{animation:bl-duel-sword-glint 1.8s step-end infinite}}.bl-duel__sparks{position:absolute;width:0;height:0;opacity:0;z-index:6}.bl-duel__sparks--clash{left:50%;bottom:calc(var(--duel-floor-y) + var(--duel-character-frame-height) * .62);animation:bl-duel-sparks-clash var(--bl-duel-loop) steps(2) infinite}.bl-duel__sparks--shield{left:calc(50% - var(--duel-slot-gap) - 8px);bottom:calc(var(--duel-floor-y) + var(--duel-character-frame-height) * .42);animation:bl-duel-sparks-shield var(--bl-duel-loop) steps(2) infinite}.bl-duel__spark{position:absolute;width:3px;height:3px;background:#fde68a}.bl-duel__spark:first-child{transform:translate(-1px,-1px);background:#fffbeb}.bl-duel__spark:nth-child(2){transform:translate(6px,-5px)}.bl-duel__spark:nth-child(3){transform:translate(-7px,-7px);background:#f2b705}.bl-duel__spark:nth-child(4){transform:translate(8px,3px);width:2px;height:2px}.bl-duel__spark:nth-child(5){transform:translate(-8px,4px);width:2px;height:2px;background:#fffbeb}.bl-duel__spark:nth-child(6){transform:translate(2px,-10px);width:2px;height:2px;background:#f2b705}.bl-duel__sparks--shield .bl-duel__spark:nth-child(odd){background:#e2e8f0}.bl-duel__slash-flash{position:absolute;left:50%;bottom:calc(var(--duel-floor-y) + var(--duel-character-frame-height) * .6);width:3px;height:30px;margin-left:-1px;background:linear-gradient(#fffbeb,rgba(252,211,77,.75));transform:rotate(48deg);opacity:0;z-index:6;animation:bl-duel-slash-flash var(--bl-duel-loop) steps(2) infinite}.bl-duel__scene-image{position:absolute;left:50%;bottom:var(--duel-floor-y);transform:translate(-50%,var(--duel-scene-drop,0));max-height:calc(100% - 42px);max-width:84%;width:auto;image-rendering:pixelated;transform-origin:bottom center;animation:bl-duel-scene-bob 3.2s ease-in-out infinite}.bl-duel__scene-image--handshake{--duel-scene-drop:23.6%}.bl-duel__scene-image--tavern{--duel-scene-drop:26%}.bl-duel__banner{position:absolute;top:var(--duel-banner-top);width:var(--duel-banner-width);height:calc(var(--duel-banner-height) + 14px);z-index:6;pointer-events:none;transform-origin:top center}.bl-duel__banner--home{left:var(--duel-banner-side)}.bl-duel__banner--away{right:var(--duel-banner-side)}.bl-duel__bannerPole{top:-7px;width:3px;height:calc(var(--duel-banner-height) + 20px);background:linear-gradient(180deg,#f0c776,#7b5522 70%,#36220d);box-shadow:0 0 0 1px rgba(0,0,0,.65),0 5px 12px rgba(0,0,0,.4)}.bl-duel__bannerCloth,.bl-duel__bannerPole{position:absolute;left:50%;transform:translateX(-50%)}.bl-duel__bannerCloth{top:9px;width:var(--duel-banner-width);height:var(--duel-banner-height);display:grid;place-items:center;padding-bottom:7px;background:radial-gradient(circle at 50% 28%,rgba(242,183,5,.16),transparent 55%),linear-gradient(180deg,rgba(22,37,62,.98),rgba(7,13,28,.98));border:1px solid rgba(242,183,5,.68);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.07),inset 0 -10px 18px rgba(0,0,0,.24),0 9px 18px rgba(0,0,0,.42);clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%)}.bl-duel__bannerLogo{width:var(--duel-banner-logo-size);height:var(--duel-banner-logo-size);-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.72)) drop-shadow(0 0 5px rgba(255,255,255,.12))}.bl-duel__bannerInitials{display:grid;place-items:center;width:var(--duel-banner-logo-size);height:var(--duel-banner-logo-size);border-radius:999px;background:radial-gradient(circle,hsla(0,0%,100%,.14),hsla(0,0%,100%,.04));color:#f8fafc;font-size:.64rem;font-weight:900;letter-spacing:.03em;text-shadow:0 1px 2px rgba(0,0,0,.7)}.bl-duel[data-bl-duel-winner=away] .bl-duel__banner--away .bl-duel__bannerCloth,.bl-duel[data-bl-duel-winner=home] .bl-duel__banner--home .bl-duel__bannerCloth{box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.07),inset 0 -10px 18px rgba(0,0,0,.24),0 0 0 1px rgba(242,183,5,.6),0 9px 18px rgba(0,0,0,.42),0 0 12px rgba(242,183,5,.32)}@media (prefers-reduced-motion:no-preference){.bl-duel__banner{animation:bl-duel-banner-sway 4s ease-in-out infinite}.bl-duel__banner--away{animation-delay:-1.3s}}.bl-duel__label{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);z-index:9;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:3px 10px;border-radius:9999px;border:1px solid rgba(148,163,184,.22);background:rgba(8,13,23,.78);font-size:8px;font-weight:800;letter-spacing:.14em;color:rgba(226,232,240,.85)}.bl-duel--hero .bl-duel__label{bottom:12px;font-size:9px}.bl-duel[data-duel-state=live] .bl-duel__label{color:#fda4af;border-color:rgba(239,68,68,.3)}.bl-duel__live-dot{width:5px;height:5px;background:#ef4444;animation:bl-duel-live-dot 1.1s steps(2) infinite}@keyframes bl-duel-home-attack{0%{transform:translateX(0)}8%{transform:translateX(-5px)}16%,26%{transform:translateX(calc(var(--duel-slot-gap) + 4px))}34%{transform:translateX(6px)}46%{transform:translateX(0)}56%{transform:translateX(-2px)}62%,68%{transform:translateX(-9px)}78%{transform:translateX(4px)}86%,92%{transform:translateX(calc(var(--duel-slot-gap) - 2px))}to{transform:translateX(0)}}@keyframes bl-duel-away-attack{0%{transform:translateX(0)}10%{transform:translateX(3px)}16%,26%{transform:translateX(calc(-1 * var(--duel-slot-gap) + 8px))}34%{transform:translateX(-4px)}44%{transform:translateX(4px)}56%,66%{transform:translateX(calc(-2 * var(--duel-slot-gap) - 6px))}76%{transform:translateX(-6px)}86%,92%{transform:translateX(calc(-1 * var(--duel-slot-gap) + 2px))}to{transform:translateX(0)}}@keyframes bl-duel-sparks-clash{0%,20%{opacity:0;transform:scale(.4)}24%{opacity:1;transform:scale(1)}30%{opacity:.85;transform:scale(1.3)}34%,84%{opacity:0;transform:scale(.4)}88%{opacity:1;transform:scale(.95)}93%{opacity:.8;transform:scale(1.25)}96%,to{opacity:0;transform:scale(.4)}}@keyframes bl-duel-sparks-shield{0%,58%{opacity:0;transform:scale(.4)}62%{opacity:1;transform:scale(.9)}68%{opacity:.8;transform:scale(1.2)}72%,to{opacity:0;transform:scale(.4)}}@keyframes bl-duel-slash-flash{0%,21%{opacity:0;transform:rotate(48deg) scaleY(.4)}24%{opacity:.95;transform:rotate(48deg) scaleY(1)}29%,85%{opacity:0;transform:rotate(-46deg) scaleY(.4)}89%{opacity:.9;transform:rotate(-46deg) scaleY(1)}94%,to{opacity:0;transform:rotate(-46deg) scaleY(.4)}}@keyframes bl-duel-shake{0%,24%,31%,61%,67%,87%,93%,to{transform:translate(0)}26%{transform:translate(1.5px,-1px)}29%{transform:translate(-1.5px,1px)}63%{transform:translate(-1px)}65%{transform:translate(1px)}89%{transform:translate(1px,-1px)}91%{transform:translate(-1px,1px)}}@keyframes bl-duel-idle-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes bl-duel-victory-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@keyframes bl-duel-victory-spotlight{0%,to{opacity:.62;transform:translateX(-50%) scale(.96)}50%{opacity:.92;transform:translateX(-50%) scale(1.03)}}@keyframes bl-duel-sword-glint{0%,58%,to{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(.75)}62%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(1.2)}68%{opacity:.65;transform:translate(-50%,-50%) rotate(45deg) scale(.95)}}@keyframes bl-duel-scene-bob{0%,to{transform:translate(-50%,var(--duel-scene-drop,0))}50%{transform:translate(-50%,calc(var(--duel-scene-drop, 0%) - 2px))}}@keyframes bl-duel-banner-sway{0%,to{transform:rotate(-1.25deg)}50%{transform:rotate(1.25deg)}}@keyframes bl-duel-live-dot{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.bl-duel .bl-duel__banner,.bl-duel .bl-duel__knightMotion,.bl-duel .bl-duel__live-dot,.bl-duel .bl-duel__scene-image,.bl-duel .bl-duel__stage,.bl-duel .bl-duel__swordGlint,.bl-duel .bl-duel__victorySpotlight{animation:none!important}.bl-duel .bl-duel__victorySpotlight{opacity:.78;transform:translateX(-50%) scale(1)}.bl-duel .bl-duel__swordGlint{opacity:.45;transform:translate(-50%,-50%) rotate(45deg)}.bl-duel .bl-duel__slash-flash,.bl-duel .bl-duel__sparks{display:none}}