/* 第一關 Boss：梅影魔鴞。背景、受擊與主寵攻擊均以即時動畫呈現。 */
.boss-battle-stage{position:relative;isolation:isolate;min-height:420px;overflow:hidden;border:3px solid #31377f;border-radius:25px;background:radial-gradient(circle at 20% 15%,rgba(190,206,255,.9) 0 4%,transparent 5%),radial-gradient(circle at 71% 19%,rgba(255,202,245,.4),transparent 19%),linear-gradient(145deg,#090e38 0%,#1c2364 48%,#492d78 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.13),0 14px 29px rgba(34,29,96,.2)}
.boss-battle-stage::before{position:absolute;z-index:-1;inset:0;content:"";background:linear-gradient(0deg,rgba(8,13,47,.86),transparent 48%),repeating-linear-gradient(92deg,transparent 0 7%,rgba(255,255,255,.025) 7.2% 7.5%,transparent 7.8% 15%)}
.boss-moon{position:absolute;z-index:0;top:8%;right:14%;width:clamp(92px,14vw,164px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 36% 30%,#fff,#e7e8ff 53%,#b4a5f3 74%,rgba(180,165,243,.08) 75%);box-shadow:0 0 36px 12px rgba(212,210,255,.38)}
.boss-stars,.boss-stars::before,.boss-stars::after{position:absolute;z-index:0;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:35px 14px #ffe9ff,76px 50px #d7e6ff,135px 24px #fff,188px 73px #ffd4ee,243px 20px #fff,290px 60px #e5ddff,333px 12px #fff,52px 116px #ded9ff,170px 135px #ffe1fb,265px 126px #fff;opacity:.74;content:""}.boss-stars{top:9%;left:7%}.boss-stars::before{left:25px;top:85px;transform:scale(.75)}.boss-stars::after{left:120px;top:10px;transform:scale(.55)}
.boss-plum-mist{position:absolute;z-index:1;inset:auto -9% 0 -9%;height:37%;background:radial-gradient(ellipse at 10% 88%,rgba(255,190,226,.31),transparent 27%),radial-gradient(ellipse at 48% 95%,rgba(126,102,255,.34),transparent 36%),radial-gradient(ellipse at 81% 83%,rgba(255,198,237,.28),transparent 31%);filter:blur(3px)}
.boss-stage-copy{position:absolute;z-index:6;top:18px;left:20px;display:grid;gap:3px;max-width:40%;border:1px solid rgba(225,230,255,.36);border-radius:15px;background:rgba(8,13,53,.48);padding:10px 13px;color:#fff;backdrop-filter:blur(5px)}.boss-stage-copy span{color:#ffe680;font-size:11px;font-weight:900;letter-spacing:.08em}.boss-stage-copy b{font-size:18px}.boss-stage-copy small{color:#d7dcff;font-size:12px;line-height:1.4}
.boss-owl-wrap{position:absolute;z-index:3;right:4%;bottom:8%;width:min(48%,365px);transform-origin:center bottom;filter:drop-shadow(0 17px 12px rgba(5,6,32,.55));animation:boss-owl-breathe 3.1s ease-in-out infinite}.boss-owl-wrap img{display:block;width:100%;height:auto}.boss-owl-shadow{position:absolute;z-index:-1;left:25%;right:19%;bottom:6%;height:15%;border-radius:50%;background:rgba(3,4,25,.52);filter:blur(10px);transform:scaleX(1.2)}
.boss-arena-team{position:absolute;z-index:4;left:6%;bottom:9%;display:flex;align-items:flex-end;gap:clamp(0px,1vw,12px);min-height:135px;max-width:49%}.boss-fighter{display:grid;justify-items:center;min-width:0;transform-origin:center bottom;animation:boss-pet-ready 2.1s ease-in-out infinite}.boss-fighter:nth-child(2){animation-delay:-.7s}.boss-fighter:nth-child(3){animation-delay:-1.4s}.boss-fighter img{width:clamp(68px,9vw,108px);height:clamp(68px,9vw,108px);object-fit:contain;filter:drop-shadow(0 8px 6px rgba(5,10,49,.45))}.boss-fighter span{display:block;max-width:94px;overflow:hidden;border:1px solid rgba(255,255,255,.6);border-radius:999px;background:rgba(255,255,255,.87);padding:3px 7px;color:#19386c;font-size:10px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.boss-arena-team:empty::after{content:"選擇主寵後，小隊會在這裡集合";color:#e8edff;font-size:12px;font-weight:800}
.boss-strike{position:absolute;z-index:5;left:24%;bottom:31%;width:42%;height:28%;opacity:0;pointer-events:none}.boss-strike i{position:absolute;left:0;bottom:7%;width:100%;height:12px;border-radius:99px;background:linear-gradient(90deg,rgba(163,243,255,0),#b9f9ff 27%,#fff9b9 56%,rgba(255,195,251,0));box-shadow:0 0 15px 5px rgba(132,226,255,.66);transform:scaleX(.1);transform-origin:left}.boss-strike i:nth-child(2){bottom:45%;height:7px;animation-delay:.1s}.boss-strike i:nth-child(3){bottom:75%;height:5px;animation-delay:.18s}.boss-impact{position:absolute;z-index:6;right:25%;bottom:42%;color:#fff8b5;font-size:82px;line-height:1;opacity:0;filter:drop-shadow(0 0 18px #ffdc59);transform:scale(.1)}
.boss-hp-panel{position:absolute;z-index:7;right:17px;bottom:16px;width:min(47%,330px);border:1px solid rgba(255,255,255,.37);border-radius:16px;background:rgba(8,12,48,.62);padding:9px 11px;color:#fff;backdrop-filter:blur(5px)}.boss-hp-caption{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12px}.boss-hp-caption b{color:#ffe980}.boss-hp-caption span{color:#dce6ff;font-size:10px;font-weight:800}.boss-hp-panel .boss-bar{height:12px;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.35)}.boss-hp-panel .boss-bar span{background:linear-gradient(90deg,#f7cd4d 0%,#ff7f69 52%,#f0499a 100%);box-shadow:0 0 10px rgba(255,158,90,.75)}.boss-hp-panel .boss-number{display:block;margin-top:5px;color:#fff;font-size:12px;text-align:right}
.boss-action-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;border:1px solid #aebff7;border-radius:19px;background:linear-gradient(120deg,#eff6ff,#f7f1ff);padding:17px 20px;box-shadow:0 8px 18px rgba(25,72,132,.09)}.boss-action-card h1{margin:0;color:#1b397a;font-size:25px}.boss-action-card p:not(.eyebrow){margin:5px 0 0;color:#58709b;line-height:1.5}.boss-action-card .primary-action{flex:0 0 auto;background:linear-gradient(135deg,#ef7763,#8055ca);font-size:16px}
.boss-battle-stage.is-preparing .boss-owl-wrap{animation:boss-owl-prepare .65s ease-in-out infinite alternate}.boss-battle-stage.is-pets-ready .boss-arena-team{animation:boss-team-arrive .52s cubic-bezier(.2,1.4,.4,1) both}.boss-battle-stage.is-attacking .boss-strike{opacity:1}.boss-battle-stage.is-attacking .boss-strike i{animation:boss-strike-go .63s cubic-bezier(.1,.8,.2,1) both}.boss-battle-stage.is-impact .boss-owl-wrap{animation:boss-owl-hit .44s ease-out both}.boss-battle-stage.is-impact .boss-impact{animation:boss-impact-pop .54s ease-out both}.boss-battle-stage.is-finished .boss-owl-wrap{filter:drop-shadow(0 0 17px rgba(255,219,115,.9)) drop-shadow(0 17px 12px rgba(5,6,32,.55))}
@keyframes boss-owl-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(1.015)}}@keyframes boss-owl-prepare{from{transform:translateY(-3px) scale(1.01);filter:brightness(1.08) drop-shadow(0 0 13px rgba(218,170,255,.72))}to{transform:translateY(-10px) scale(1.04);filter:brightness(1.22) drop-shadow(0 0 24px rgba(248,167,255,.86))}}@keyframes boss-pet-ready{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}@keyframes boss-team-arrive{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}@keyframes boss-strike-go{0%{transform:scaleX(.05);opacity:0}22%{opacity:1}100%{transform:scaleX(1);opacity:0}}@keyframes boss-owl-hit{0%{transform:translateX(0) scale(1)}26%{transform:translateX(17px) scale(.97);filter:brightness(2)}57%{transform:translateX(-11px) scale(1.02)}100%{transform:none}}@keyframes boss-impact-pop{0%{opacity:0;transform:scale(.1) rotate(-15deg)}35%{opacity:1;transform:scale(1.2) rotate(10deg)}100%{opacity:0;transform:scale(1.8) rotate(25deg)}}
@media(max-width:700px){.boss-battle-stage{min-height:390px}.boss-stage-copy{top:10px;left:10px;max-width:62%;padding:8px 10px}.boss-stage-copy b{font-size:15px}.boss-stage-copy small{font-size:10px}.boss-owl-wrap{right:-2%;bottom:14%;width:64%}.boss-moon{right:5%;top:10%;width:115px}.boss-arena-team{left:2%;bottom:12%;max-width:50%;gap:0}.boss-fighter img{width:58px;height:58px}.boss-fighter span{display:none}.boss-hp-panel{right:9px;bottom:9px;width:calc(100% - 18px)}.boss-strike{left:18%;bottom:31%;width:62%}.boss-impact{right:22%;bottom:43%;font-size:66px}.boss-action-card{align-items:flex-start;padding:15px}.boss-action-card h1{font-size:21px}.boss-action-card .primary-action{padding:10px;font-size:13px}}

/* 正式對決構圖：左側 Boss、右側學生小隊，並加強連續戰鬥動作。 */
.boss-battle-stage .boss-moon{left:15%;right:auto}.boss-battle-stage .boss-stage-copy{left:auto;right:19px}.boss-battle-stage .boss-owl-wrap{left:2.5%;right:auto;width:min(47%,360px)}.boss-battle-stage .boss-arena-team{left:auto;right:6%;justify-content:flex-end;text-align:right}.boss-battle-stage .boss-strike{left:auto;right:22%;transform:scaleX(-1)}.boss-battle-stage .boss-strike i{height:13px;background:linear-gradient(90deg,rgba(255,84,230,0),#ff75df 17%,#9b8cff 36%,#67efff 56%,#fff6a7 73%,rgba(255,255,255,0));box-shadow:0 0 10px 3px #ff66d5,0 0 22px 7px rgba(99,196,255,.75)}.boss-battle-stage .boss-strike i:nth-child(2){height:8px;background:linear-gradient(90deg,rgba(255,84,230,0),#ffb3ef 24%,#a9fff7 61%,rgba(255,255,255,0));box-shadow:0 0 12px 3px rgba(104,255,230,.9)}.boss-battle-stage .boss-strike i:nth-child(3){height:6px;background:linear-gradient(90deg,rgba(255,84,230,0),#ffd95a 28%,#80b7ff 66%,rgba(255,255,255,0));box-shadow:0 0 12px 4px rgba(255,215,94,.88)}.boss-battle-stage .boss-impact{left:27%;right:auto}.boss-battle-stage .boss-hp-panel{left:17px;right:auto}.boss-sound-toggle{position:absolute;z-index:8;top:17px;right:18px;border:1px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(11,16,64,.64);padding:7px 10px;color:#fff;font-size:11px;font-weight:900;backdrop-filter:blur(5px)}.boss-sound-toggle:hover{background:rgba(84,66,170,.8)}.boss-power-note{margin:9px 0 0!important;border-radius:999px;background:#e4efff;padding:6px 9px;color:#315fba!important;font-size:12px!important;font-weight:900}.boss-damage-pop{position:absolute;z-index:9;left:31%;bottom:46%;min-width:96px;color:#fff6a8;font-size:clamp(32px,5vw,56px);font-weight:1000;letter-spacing:.04em;opacity:0;text-align:center;text-shadow:0 2px 0 #8c266f,0 0 8px #ff4fd2,0 0 21px #78dbff;pointer-events:none}.boss-battle-stage.is-impact .boss-damage-pop{animation:boss-damage-pop .82s cubic-bezier(.18,.9,.28,1) both}.boss-battle-stage.is-attacking .boss-fighter{animation:boss-pet-lunge 1.05s cubic-bezier(.16,.83,.24,1) both}.boss-battle-stage.is-attacking .boss-fighter:nth-child(2){animation-delay:.13s}.boss-battle-stage.is-attacking .boss-fighter:nth-child(3){animation-delay:.26s}.boss-battle-stage.is-preparing .boss-owl-wrap{animation:boss-owl-wingstorm .58s ease-in-out infinite alternate}.boss-battle-stage.is-impact .boss-owl-wrap{animation:boss-owl-hit-left .58s cubic-bezier(.18,.92,.28,1) both}.boss-battle-stage.is-attacking::after{position:absolute;z-index:4;inset:0;content:"";background:radial-gradient(circle at 42% 52%,rgba(255,255,255,.38),transparent 21%);animation:boss-attack-flash .52s ease-out both;pointer-events:none}
@keyframes boss-pet-lunge{0%{transform:translateX(0) translateY(0) scale(1)}26%{transform:translateX(-12px) translateY(-20px) scale(1.08)}58%{transform:translateX(-86px) translateY(-27px) scale(1.17);filter:brightness(1.45) drop-shadow(0 0 15px #8cf5ff)}100%{transform:translateX(0) translateY(0) scale(1)}}@keyframes boss-owl-wingstorm{from{transform:translateY(-4px) rotate(-1.5deg) scale(1.01);filter:brightness(1.1) drop-shadow(0 0 17px rgba(235,145,255,.68))}to{transform:translateY(-13px) rotate(1.5deg) scale(1.055);filter:brightness(1.29) drop-shadow(0 0 28px rgba(167,145,255,.92))}}@keyframes boss-owl-hit-left{0%{transform:translateX(0) scale(1)}24%{transform:translateX(-22px) scale(.95);filter:brightness(2.1) saturate(1.55)}54%{transform:translateX(17px) scale(1.04)}100%{transform:none}}@keyframes boss-damage-pop{0%{opacity:0;transform:translateY(24px) scale(.55) rotate(-7deg)}26%{opacity:1;transform:translateY(-9px) scale(1.22) rotate(4deg)}72%{opacity:1;transform:translateY(-27px) scale(1)}100%{opacity:0;transform:translateY(-43px) scale(.88)}}@keyframes boss-attack-flash{0%{opacity:0}34%{opacity:1}100%{opacity:0}}
@media(max-width:700px){.boss-battle-stage .boss-moon{left:6%;right:auto}.boss-battle-stage .boss-stage-copy{right:9px;left:auto;max-width:61%}.boss-battle-stage .boss-owl-wrap{left:-7%;right:auto;bottom:16%;width:65%}.boss-battle-stage .boss-arena-team{left:auto;right:1%;bottom:13%;max-width:49%}.boss-battle-stage .boss-strike{left:auto;right:18%;bottom:32%;width:64%}.boss-battle-stage .boss-impact{left:24%;right:auto}.boss-battle-stage .boss-hp-panel{left:9px;right:auto}.boss-sound-toggle{top:82px;right:10px}.boss-damage-pop{left:25%;bottom:45%}.boss-battle-stage.is-attacking .boss-fighter{animation-name:boss-pet-lunge-mobile}@keyframes boss-pet-lunge-mobile{0%{transform:none}52%{transform:translateX(-48px) translateY(-18px) scale(1.12);filter:brightness(1.45) drop-shadow(0 0 12px #8cf5ff)}100%{transform:none}}}

/* 勇者對決加強版：更絢麗的月下梅林與更有壓迫感的 Boss。 */
.boss-battle-stage{background:radial-gradient(circle at 18% 24%,rgba(255,231,250,.72) 0 3%,transparent 14%),radial-gradient(circle at 78% 15%,rgba(93,237,255,.4),transparent 28%),radial-gradient(ellipse at 55% 106%,rgba(250,86,219,.42),transparent 39%),radial-gradient(ellipse at 84% 76%,rgba(116,104,255,.34),transparent 29%),linear-gradient(145deg,#070b32 0%,#242578 43%,#7d2f91 100%)}
.boss-battle-stage::before{background:linear-gradient(0deg,rgba(4,8,39,.94),transparent 49%),radial-gradient(circle at 60% 53%,rgba(240,163,255,.15),transparent 25%),repeating-linear-gradient(92deg,transparent 0 7%,rgba(255,255,255,.04) 7.2% 7.5%,transparent 7.8% 15%)}
.boss-battle-stage .boss-plum-mist{height:45%;opacity:1;background:radial-gradient(ellipse at 7% 80%,rgba(255,164,226,.48),transparent 25%),radial-gradient(ellipse at 43% 96%,rgba(148,124,255,.56),transparent 38%),radial-gradient(ellipse at 86% 74%,rgba(126,242,255,.33),transparent 28%);filter:blur(2px) saturate(1.28)}
.boss-battle-stage .boss-plum-mist::after{position:absolute;inset:0;content:"";background:radial-gradient(circle at 24% 28%,rgba(255,238,185,.96) 0 2px,transparent 3px),radial-gradient(circle at 32% 55%,rgba(255,196,237,.9) 0 2px,transparent 3px),radial-gradient(circle at 52% 23%,rgba(192,244,255,.88) 0 2px,transparent 3px),radial-gradient(circle at 69% 48%,rgba(255,243,188,.85) 0 1px,transparent 3px),radial-gradient(circle at 88% 32%,rgba(255,191,234,.9) 0 2px,transparent 3px);opacity:.88}
.boss-battle-stage .boss-moon{left:20%;right:auto;top:7%;width:clamp(122px,19vw,215px);box-shadow:0 0 34px 13px rgba(227,210,255,.52),0 0 86px 19px rgba(255,115,220,.17)}
.boss-battle-stage .boss-owl-wrap{left:-1.5%;right:auto;bottom:3%;width:min(56%,430px);filter:brightness(1.06) saturate(1.16) drop-shadow(0 20px 15px rgba(4,5,33,.66))}
.boss-battle-stage .boss-owl-shadow{left:21%;right:13%;bottom:5%;height:16%}
.boss-battle-stage .boss-arena-team{right:4%;bottom:8%;max-width:42%}
.boss-battle-stage .boss-strike{right:19%;bottom:33%;width:48%}
.boss-battle-stage .boss-strike i{height:16px;box-shadow:0 0 13px 4px #ff65d9,0 0 30px 9px rgba(99,196,255,.84),0 0 45px 11px rgba(255,228,111,.26)}
.boss-battle-stage .boss-strike i:nth-child(2){height:10px;box-shadow:0 0 14px 4px rgba(104,255,230,.96),0 0 27px 7px rgba(143,125,255,.74)}
.boss-battle-stage .boss-strike i:nth-child(3){height:8px;box-shadow:0 0 14px 5px rgba(255,215,94,.96),0 0 26px 8px rgba(255,94,211,.54)}
.boss-battle-stage .boss-impact{left:33%;right:auto;bottom:44%;font-size:96px}
.boss-battle-stage .boss-damage-pop{left:37%;bottom:47%;font-size:clamp(36px,5.7vw,62px)}
.boss-battle-stage.is-attacking::after{background:radial-gradient(circle at 37% 50%,rgba(255,255,255,.65),rgba(191,231,255,.19) 14%,rgba(255,96,224,.1) 26%,transparent 43%)}
@media(max-width:700px){.boss-battle-stage .boss-moon{left:12%;top:8%;width:140px}.boss-battle-stage .boss-owl-wrap{left:-13%;bottom:12%;width:76%}.boss-battle-stage .boss-arena-team{right:0;bottom:14%;max-width:42%}.boss-battle-stage .boss-strike{right:14%;bottom:34%;width:67%}.boss-battle-stage .boss-impact{left:32%;bottom:45%;font-size:76px}.boss-battle-stage .boss-damage-pop{left:35%;bottom:47%;font-size:42px}}

/* 月下梅林的可辨識場景物件：古堡、旗幟、遺跡、水晶與梅枝。 */
.boss-scenery{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.boss-plum-branch{position:absolute;z-index:1;top:-18px;right:-6%;width:58%;height:34px;border-radius:50%;border-top:13px solid rgba(49,26,72,.85);transform:rotate(-7deg);filter:drop-shadow(0 4px 2px rgba(0,0,0,.28))}.boss-plum-branch::before{position:absolute;top:-22px;left:5%;width:96%;height:65px;content:"";background:radial-gradient(circle at 8% 50%,#ffe1f5 0 5px,transparent 6px),radial-gradient(circle at 18% 22%,#ffc7ea 0 7px,transparent 8px),radial-gradient(circle at 31% 47%,#fff1fb 0 5px,transparent 6px),radial-gradient(circle at 44% 25%,#ffbce3 0 6px,transparent 7px),radial-gradient(circle at 57% 58%,#ffe6f5 0 5px,transparent 6px),radial-gradient(circle at 68% 18%,#ffc4e9 0 7px,transparent 8px),radial-gradient(circle at 82% 48%,#fff0f9 0 5px,transparent 6px),radial-gradient(circle at 95% 29%,#fdb3de 0 6px,transparent 7px);filter:drop-shadow(0 0 5px rgba(255,181,232,.72))}
.boss-castle{position:absolute;z-index:0;right:15%;top:27%;width:205px;height:145px;opacity:.68;background:linear-gradient(90deg,#14134e 0 11%,#24206d 11% 25%,#111044 25% 37%,#2d277b 37% 54%,#121044 54% 70%,#292270 70% 87%,#14134e 87%);clip-path:polygon(0 100%,0 42%,7% 42%,7% 13%,14% 13%,14% 42%,22% 42%,22% 30%,29% 8%,36% 30%,36% 42%,45% 42%,45% 20%,53% 20%,53% 42%,60% 42%,60% 5%,68% 5%,68% 42%,77% 42%,77% 25%,84% 25%,84% 42%,93% 42%,93% 15%,100% 15%,100% 100%);filter:drop-shadow(0 7px 7px rgba(7,6,35,.72))}.boss-castle::before{position:absolute;inset:45% 6% 11%;content:"";background:repeating-linear-gradient(90deg,transparent 0 13px,rgba(255,238,156,.88) 14px 17px,transparent 18px 31px),repeating-linear-gradient(0deg,transparent 0 16px,rgba(255,216,127,.72) 17px 21px,transparent 22px 34px);opacity:.7}.boss-castle::after{position:absolute;top:6px;left:27%;width:48%;height:24px;content:"";background:linear-gradient(90deg,transparent 0 42%,#ffcc75 43% 49%,transparent 50% 100%);filter:drop-shadow(0 0 5px rgba(255,216,111,.9))}
.boss-ruin{position:absolute;bottom:23%;width:62px;height:74px;border:4px solid rgba(159,175,255,.47);border-bottom:0;background:linear-gradient(90deg,rgba(24,30,91,.58),rgba(90,63,144,.45));filter:drop-shadow(0 7px 5px rgba(0,0,0,.35))}.boss-ruin::before{position:absolute;inset:13px 11px auto;height:13px;border-radius:10px 10px 0 0;background:rgba(163,225,255,.55);box-shadow:0 27px 0 rgba(163,225,255,.34)}.boss-ruin-one{right:4%;transform:rotate(5deg)}.boss-ruin-two{left:43%;bottom:18%;transform:scale(.74) rotate(-7deg);opacity:.65}
.boss-banner{position:absolute;top:27%;width:7px;height:128px;border-radius:9px;background:linear-gradient(90deg,#ffd879,#80512a,#fff0a8);box-shadow:0 0 8px rgba(255,220,134,.56)}.boss-banner::before{position:absolute;top:6px;left:5px;width:45px;height:49px;content:"";background:linear-gradient(135deg,#ee85ca,#765de2 58%,#324ca6);clip-path:polygon(0 0,100% 11%,80% 50%,100% 88%,0 100%);filter:drop-shadow(0 4px 4px rgba(7,8,42,.43))}.boss-banner::after{position:absolute;top:-10px;left:-5px;width:17px;height:17px;content:"✦";color:#fff0a8;font-size:18px;text-shadow:0 0 6px #ffd25d}.boss-banner-one{right:35%;transform:scale(.82)}.boss-banner-two{left:34%;top:35%;transform:scale(.65);opacity:.8}
.boss-crystal{position:absolute;bottom:12%;width:28px;height:44px;background:linear-gradient(135deg,#f8f4ff 0 16%,#86efff 27%,#8169ff 66%,#ff8fdf);clip-path:polygon(50% 0,100% 30%,77% 100%,23% 100%,0 30%);filter:drop-shadow(0 0 10px rgba(121,228,255,.9))}.boss-crystal::after{position:absolute;inset:7px 8px 14px;content:"";background:rgba(255,255,255,.76);clip-path:polygon(50% 0,100% 100%,0 70%)}.boss-crystal-one{right:32%;transform:scale(.82) rotate(8deg)}.boss-crystal-two{right:27%;bottom:10%;transform:scale(.58) rotate(-9deg)}.boss-crystal-three{left:43%;bottom:12%;transform:scale(.52) rotate(13deg);opacity:.75}
@media(max-width:700px){.boss-plum-branch{right:-28%;width:76%;transform:rotate(-10deg)}.boss-castle{right:4%;top:29%;width:150px;height:111px;opacity:.57}.boss-ruin-one{right:-2%;bottom:24%;transform:scale(.72) rotate(5deg)}.boss-ruin-two{left:43%;bottom:19%;transform:scale(.52) rotate(-7deg)}.boss-banner-one{right:28%;top:29%;transform:scale(.6)}.boss-banner-two{display:none}.boss-crystal-one{right:27%;bottom:15%;transform:scale(.57) rotate(8deg)}.boss-crystal-two{right:22%;bottom:14%;transform:scale(.39) rotate(-9deg)}.boss-crystal-three{left:40%;bottom:14%;transform:scale(.37) rotate(13deg)}}
.boss-action-buttons{display:flex;flex:0 0 auto;flex-direction:column;gap:8px;align-items:stretch}.boss-action-buttons .ghost-action{padding:8px 11px;font-size:12px;white-space:nowrap}@media(max-width:700px){.boss-action-buttons{gap:6px}.boss-action-buttons .ghost-action{padding:7px 8px;font-size:11px}}

/* 完整插畫背景版：和學園既有的精緻卡通場景共用同一種筆觸，而非以零散 CSS 物件拼出舞台。 */
.boss-battle-stage{background:#10194f url("boss-moonlit-plum-academy-v1.png?v=1") center center/cover no-repeat}
.boss-battle-stage::before{z-index:1;background:linear-gradient(90deg,rgba(7,10,37,.32),transparent 36%,rgba(6,9,37,.14) 68%,rgba(5,7,28,.35)),linear-gradient(0deg,rgba(5,8,33,.45),transparent 48%);pointer-events:none}
.boss-battle-stage .boss-moon,.boss-battle-stage .boss-stars,.boss-battle-stage .boss-plum-mist{display:none}
.boss-stage-copy{background:rgba(8,13,52,.64);box-shadow:0 8px 20px rgba(5,6,32,.28)}
.boss-owl-wrap{filter:brightness(1.05) saturate(1.13) drop-shadow(0 18px 15px rgba(3,5,29,.68))}
.boss-fighter img{filter:drop-shadow(0 8px 7px rgba(3,7,33,.75)) drop-shadow(0 0 10px rgba(130,228,255,.2))}
.boss-hp-panel{background:rgba(7,12,48,.76);box-shadow:0 8px 18px rgba(3,4,26,.32)}
.boss-sound-toggle{background:rgba(8,13,52,.76);box-shadow:0 5px 12px rgba(3,4,26,.25)}
@media(max-width:700px){.boss-battle-stage{background-position:54% center}.boss-battle-stage::before{background:linear-gradient(0deg,rgba(5,8,33,.48),transparent 58%),linear-gradient(90deg,rgba(6,9,37,.28),transparent 73%)}}

/* 勇者猛攻：小隊逐隻蓄力、衝刺、重擊，再彈回隊形。 */
.boss-battle-stage.is-sequencing .boss-fighter{animation:boss-pet-ready 1.1s ease-in-out infinite}
.boss-battle-stage .boss-fighter.heroic-lunge{position:relative;z-index:10;animation:boss-pet-heroic-strike .67s cubic-bezier(.12,.8,.2,1) both!important}
.boss-battle-stage.is-strike-pulse .boss-strike{opacity:1}
.boss-battle-stage.is-strike-pulse .boss-strike i{animation:boss-heroic-beam .56s cubic-bezier(.09,.76,.16,1) both!important}
.boss-battle-stage.is-strike-pulse .boss-strike i:nth-child(1){height:21px;background:linear-gradient(90deg,rgba(255,62,216,0),#ff4fca 14%,#a871ff 32%,#67f3ff 52%,#fff2a2 72%,rgba(255,255,255,0));box-shadow:0 0 9px 4px #ff4ed0,0 0 28px 10px #65eaff,0 0 58px 16px rgba(255,219,102,.65)}
.boss-battle-stage.is-strike-pulse .boss-strike i:nth-child(2){height:12px;background:linear-gradient(90deg,rgba(255,89,230,0),#ffb2ef 17%,#86fff5 50%,#fff9ca 73%,rgba(255,255,255,0));box-shadow:0 0 11px 4px #92fff2,0 0 30px 9px rgba(144,112,255,.9)}
.boss-battle-stage.is-strike-pulse .boss-strike i:nth-child(3){height:9px;background:linear-gradient(90deg,rgba(255,198,66,0),#ffdd67 22%,#ffffff 51%,#83baff 76%,rgba(255,255,255,0));box-shadow:0 0 12px 5px #ffd85f,0 0 33px 10px rgba(255,74,210,.72)}
.boss-battle-stage.is-strike-pulse::after{position:absolute;z-index:7;inset:0;content:"";background:radial-gradient(circle at 31% 52%,rgba(255,255,255,.91),rgba(255,230,111,.43) 7%,rgba(105,238,255,.24) 17%,rgba(255,83,216,.12) 28%,transparent 45%);animation:boss-hero-flash .48s ease-out both;pointer-events:none}
.boss-battle-stage.is-boss-flinching .boss-owl-wrap{animation:boss-owl-flinch .35s cubic-bezier(.18,.85,.35,1) both}
.boss-battle-stage.is-impact{animation:boss-stage-shake .5s cubic-bezier(.2,.82,.28,1) both}
.boss-battle-stage.is-impact .boss-owl-wrap{animation:boss-owl-heroic-hit .68s cubic-bezier(.18,.92,.28,1) both}
.boss-battle-stage.is-impact .boss-hp-panel{animation:boss-hp-shake .55s ease-out both}
.boss-battle-stage.is-impact .boss-impact{font-size:112px;filter:drop-shadow(0 0 10px #fff) drop-shadow(0 0 26px #ffcf54) drop-shadow(0 0 44px #ff5bd6)}
@keyframes boss-pet-heroic-strike{0%{transform:translateX(0) translateY(0) scale(1);filter:brightness(1) drop-shadow(0 8px 7px rgba(3,7,33,.75))}12%{transform:translateX(12px) translateY(4px) scale(.88)}28%{transform:translateX(-22px) translateY(-24px) scale(1.12);filter:brightness(1.45) saturate(1.35) drop-shadow(0 0 15px #8ef7ff)}58%{transform:translateX(-280px) translateY(-54px) scale(1.42) rotate(-7deg);filter:brightness(2) saturate(1.45) drop-shadow(0 0 22px #fff5a8) drop-shadow(0 0 34px #ff58d7)}68%{transform:translateX(-246px) translateY(-45px) scale(1.3) rotate(3deg)}100%{transform:translateX(0) translateY(0) scale(1);filter:brightness(1) drop-shadow(0 8px 7px rgba(3,7,33,.75))}}
@keyframes boss-heroic-beam{0%{transform:scaleX(.02) skewY(-8deg);opacity:0}13%{opacity:1}55%{transform:scaleX(1.1) skewY(4deg);opacity:1}100%{transform:scaleX(1.32) skewY(-3deg);opacity:0}}
@keyframes boss-hero-flash{0%{opacity:0}22%{opacity:1}100%{opacity:0}}
@keyframes boss-owl-flinch{0%{transform:translateX(0) scale(1)}40%{transform:translateX(-17px) translateY(-5px) scale(.98);filter:brightness(1.7) saturate(1.4)}100%{transform:none}}
@keyframes boss-owl-heroic-hit{0%{transform:translateX(0) scale(1)}18%{transform:translateX(-32px) translateY(5px) scale(.91) rotate(-3deg);filter:brightness(2.2) saturate(1.65)}42%{transform:translateX(23px) translateY(-9px) scale(1.07) rotate(2deg)}66%{transform:translateX(-12px) translateY(2px) scale(.99)}100%{transform:none}}
@keyframes boss-stage-shake{0%,100%{transform:translateX(0)}22%{transform:translateX(-9px)}46%{transform:translateX(7px)}68%{transform:translateX(-4px)}}
@keyframes boss-hp-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px) scale(1.04)}52%{transform:translateX(6px) scale(1.03)}75%{transform:translateX(-3px)}}
@media(max-width:700px){.boss-battle-stage .boss-fighter.heroic-lunge{animation-name:boss-pet-heroic-strike-mobile!important}@keyframes boss-pet-heroic-strike-mobile{0%{transform:none}13%{transform:translateX(8px) translateY(4px) scale(.88)}30%{transform:translateX(-13px) translateY(-16px) scale(1.08);filter:brightness(1.45) drop-shadow(0 0 12px #8ef7ff)}60%{transform:translateX(-142px) translateY(-34px) scale(1.22) rotate(-6deg);filter:brightness(1.9) saturate(1.4) drop-shadow(0 0 16px #fff1a6) drop-shadow(0 0 25px #ff58d7)}72%{transform:translateX(-118px) translateY(-27px) scale(1.13)}100%{transform:none}}.boss-battle-stage.is-strike-pulse .boss-strike i:nth-child(1){height:16px}.boss-battle-stage.is-impact .boss-impact{font-size:86px}}

/* 曲線雷弧版：電流會沿弧線劈向 Boss，而不是平直雷射。 */
.boss-battle-stage.is-strike-pulse .boss-strike{display:none}
.boss-lightning-arcs{position:absolute;z-index:8;inset:0;width:100%;height:100%;overflow:visible;opacity:0;pointer-events:none}
.boss-battle-stage.is-strike-pulse .boss-lightning-arcs{opacity:1}
.boss-lightning-arcs .boss-arc{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:920;stroke-dashoffset:920;opacity:0;filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 11px #7cf7ff) drop-shadow(0 0 19px #ff61d4)}
.boss-lightning-arcs .boss-arc-main{stroke:url(#bossArcMain);stroke-width:16}
.boss-lightning-arcs .boss-arc-side{stroke:url(#bossArcSide);stroke-width:8}
.boss-lightning-arcs .boss-arc-spark{stroke:#fff8bd;stroke-width:4}
.boss-battle-stage.is-strike-pulse .boss-arc-main{animation:boss-arc-draw .47s cubic-bezier(.13,.71,.18,1) both}
.boss-battle-stage.is-strike-pulse .boss-arc-side{animation:boss-arc-draw .4s .07s cubic-bezier(.13,.71,.18,1) both}
.boss-battle-stage.is-strike-pulse .boss-arc-spark{animation:boss-arc-draw .32s .15s cubic-bezier(.13,.71,.18,1) both}
.boss-arc-burst{position:absolute;z-index:9;left:28%;bottom:40%;width:78px;height:78px;opacity:0;pointer-events:none;transform:scale(.15) rotate(-20deg)}
.boss-arc-burst::before{position:absolute;inset:17px;content:"";border-radius:50%;background:radial-gradient(circle,#fff 0 19%,#fff4a9 21% 38%,#ff7bd7 42% 61%,rgba(111,244,255,.2) 64%,transparent 70%);box-shadow:0 0 16px 8px rgba(255,224,103,.76)}
.boss-arc-burst i{position:absolute;top:34px;left:3px;width:72px;height:10px;border-radius:999px;background:linear-gradient(90deg,transparent,#fff6b3 28%,#fff 53%,#ff78d5 78%,transparent);filter:drop-shadow(0 0 6px #81efff)}.boss-arc-burst i:nth-child(2){transform:rotate(58deg)}.boss-arc-burst i:nth-child(3){transform:rotate(-58deg)}
.boss-battle-stage.is-boss-flinching .boss-arc-burst{animation:boss-arc-burst-pop .42s cubic-bezier(.13,.86,.24,1) both}
@keyframes boss-arc-draw{0%{stroke-dashoffset:920;opacity:0}12%{opacity:1}68%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:-130;opacity:0}}
@keyframes boss-arc-burst-pop{0%{opacity:0;transform:scale(.15) rotate(-25deg)}27%{opacity:1;transform:scale(1.15) rotate(12deg)}60%{opacity:1;transform:scale(.86) rotate(-4deg)}100%{opacity:0;transform:scale(1.42) rotate(22deg)}}
@media(max-width:700px){.boss-arc-burst{left:27%;bottom:42%;transform:scale(.72)}.boss-lightning-arcs .boss-arc-main{stroke-width:12}.boss-lightning-arcs .boss-arc-side{stroke-width:6}}
