/* Keep the translated map anchor unchanged in every pointer state. */
.world-markers button,.world-markers button:hover:not(:disabled),.world-markers button:active,.world-markers button:focus-visible{transform:translate(-50%,-90%);transition:background-color .15s,border-color .15s,box-shadow .15s;animation:none;touch-action:manipulation}
.world-markers button:hover:not(:disabled),.world-markers button:focus-visible{background:#375763;box-shadow:0 0 0 3px #ffe6ad66;border-color:#ffe4a2}
.battle-entry{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:#09101cee;color:#ebd6a7;animation:entryReveal .2s .1s both;font-size:18px;letter-spacing:3px}
@keyframes entryReveal{from{opacity:0}to{opacity:1}}
.hero-collapse-scene:after{display:block!important;content:'';position:absolute;inset:0;z-index:7;background:#09101b66;pointer-events:none}
.hero-collapse-scene #hero-sprite{z-index:9;transform-origin:50% 90%;transition:none;filter:saturate(.35)}
.hero-collapse-scene #hero-sprite.hero-falling{animation:heroCollapse 1.1s ease-in both!important}
.hero-collapse-scene #hero-sprite.hero-fallen{transform:translate(20px,28px) rotate(82deg)!important;opacity:.65}
.hero-collapse-scene #hero-sprite.hero-rising{animation:heroStand 1.4s ease-out both!important;filter:drop-shadow(0 0 15px #edd79b)}
.fallen-words{position:absolute;left:10%;right:10%;top:31%;z-index:10;text-align:center;padding:20px;background:linear-gradient(90deg,transparent,#080e1dde,transparent);line-height:1.8;pointer-events:none}
.fallen-words span{display:block;color:#fff0d0;font-size:23px;letter-spacing:3px}.fallen-words small{display:block;color:#d1c9b6;margin-top:8px;font-size:12px}
@keyframes heroCollapse{0%{transform:translate(0,0) rotate(0)}25%{transform:translate(4px,5px) rotate(10deg)}100%{transform:translate(20px,28px) rotate(82deg);opacity:.65}}
@keyframes heroStand{0%{transform:translate(20px,28px) rotate(82deg);opacity:.65}45%{transform:translate(4px,12px) rotate(28deg);opacity:1}100%{transform:translate(0,0) rotate(0);opacity:1}}
.first-awakening .awakening-portrait,.first-awakening .awakening-words,.first-awakening .awakening-rays,.first-awakening .awakening-orbit,.first-awakening .awakening-shards i,.first-awakening .awakening-flash{animation-duration:4.6s}
.awakening-cutin .awakening-portrait,.awakening-cutin .awakening-words,.awakening-cutin .awakening-rays,.awakening-cutin .awakening-orbit,.awakening-cutin .awakening-shards i{animation-duration:1.8s}
.boss-transformation{--phase-color:#efbe88;position:fixed;inset:0;z-index:100;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:45px;color:#fff4df;background:radial-gradient(ellipse at 50% 45%,#35303e,#090e19 75%);isolation:isolate}
.boss-transformation:before,.boss-transformation:after{content:'';position:absolute;left:0;right:0;height:10vh;background:#070b12}.boss-transformation:before{top:0;border-bottom:1px solid var(--phase-color)}.boss-transformation:after{bottom:0;border-top:1px solid var(--phase-color)}
.phase-portrait{z-index:2;width:min(38vw,380px);height:min(46vw,420px);animation:bossReveal 3.5s both;filter:drop-shadow(0 0 30px var(--phase-color))}.phase-portrait canvas{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.phase-title{z-index:3;animation:phaseWords 3.5s both}.phase-title small{font-size:16px;letter-spacing:12px;color:var(--phase-color)}.phase-title h2{font-size:clamp(26px,4vw,48px);letter-spacing:6px;margin:18px 0}.phase-title p{color:#ccc1cc;font-size:15px}.phase-rings{position:absolute;inset:0;z-index:0;display:grid;place-items:center}.phase-rings i{position:absolute;width:50vw;height:50vw;max-width:700px;max-height:700px;border:1px solid var(--phase-color);box-shadow:0 0 60px #ffffff12,inset 0 0 70px #ffffff10;transform:rotate(45deg);animation:phaseRing 3.5s both}.phase-rings i:nth-child(2){animation-delay:.15s;width:65vw;height:65vw;border-style:dashed}.phase-rings i:nth-child(3){animation-delay:.3s;width:80vw;height:80vw;opacity:.3}
@keyframes bossReveal{0%{opacity:0;transform:scale(.75);filter:brightness(0)}25%{opacity:1;filter:brightness(2)}45%,85%{opacity:1;transform:scale(1);filter:brightness(1)}100%{opacity:0;transform:scale(1.05)}}
@keyframes phaseWords{0%,15%{opacity:0;transform:translateX(25px)}30%,88%{opacity:1;transform:none}100%{opacity:0}}
@keyframes phaseRing{0%{opacity:0;transform:rotate(25deg) scale(.4)}30%{opacity:.6}90%{opacity:.25}100%{opacity:0;transform:rotate(65deg) scale(1.4)}}
.boss-phase-two #enemy-sprite canvas{filter:drop-shadow(0 0 10px var(--phase-color)) saturate(1.3) contrast(1.1)!important}.boss-phase-two #enemy-sprite:after{content:'';position:absolute;inset:10% -12%;border:1px solid var(--phase-color);border-radius:50%;box-shadow:0 0 22px var(--phase-color);opacity:.45;transform:rotateX(65deg);pointer-events:none}.elite-resistance{color:#ead298!important}
.peace-ending,.crown-title{position:relative;isolation:isolate;overflow:hidden;min-height:76dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;border:1px solid #83745a66;border-radius:10px;padding:50px 24px;background:linear-gradient(#243a53,#7b8991 45%,#cbb88f 75%,#455c4d);color:#fff1ca}.ending-sun,.title-sun{position:absolute;z-index:-1;top:20%;left:50%;width:180px;height:180px;border-radius:50%;transform:translateX(-50%);background:#ffdda080;box-shadow:0 0 80px 50px #ffe2a430}.ending-horizon{position:absolute;inset:55% -10% -20%;z-index:-1;background:#273e47;clip-path:polygon(0 40%,10% 22%,20% 33%,32% 6%,45% 30%,60% 12%,73% 25%,86% 0,100% 27%,100% 100%,0 100%)}.ending-copy{animation:endingDawn 2.5s both;z-index:1}.ending-copy>small,.crown-title>small{font-size:13px;letter-spacing:7px}.ending-copy h1,.crown-title h1{font-size:clamp(27px,4.5vw,48px);margin:24px 0;text-shadow:0 3px 25px #1d2e44}.ending-copy p,.crown-title p{font-size:14px;line-height:2;color:#fff4dc;text-shadow:0 1px 4px #10232f}.ending-party,.title-heroes{display:flex;justify-content:center;gap:5px;margin:25px auto 15px}.ending-party canvas,.title-heroes canvas{width:110px;height:135px;image-rendering:pixelated;filter:drop-shadow(1px 6px 3px #142d3b55)}.ending-thanks{font-size:12px!important;letter-spacing:3px}.ending-copy button{margin-top:15px;background:#1b3347cc;border-color:#e9d49a;color:#fff0c2}.clear-record{font-size:12px;background:#182c39bb;border:1px solid #d6bd7780;padding:10px 20px;border-radius:30px;margin:15px}.title-actions{display:flex;gap:12px;justify-content:center;margin-top:20px}.crown-title{background:linear-gradient(#17283c,#3b566b 60%,#263a39)}.crown-title .title-sun{top:28%;background:#e8c78f44}.title-heroes{margin:20px auto 0}
@keyframes endingDawn{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@media(max-width:680px){.boss-transformation{flex-direction:column;gap:10px}.phase-portrait{width:240px;height:260px}.phase-title{text-align:center}.phase-title small{font-size:12px;letter-spacing:7px}.phase-title h2{font-size:30px}.fallen-words span{font-size:18px}.fallen-words small{font-size:10px}.ending-party canvas,.title-heroes canvas{width:70px;height:95px}.peace-ending,.crown-title{padding:35px 15px}.ending-copy p,.crown-title p{font-size:12px}.ending-copy h1{font-size:25px}}
@media(prefers-reduced-motion:reduce){.hero-collapse-scene #hero-sprite.hero-falling{animation:none!important;transform:rotate(82deg)!important}.hero-collapse-scene #hero-sprite.hero-rising{animation:none!important;transform:none!important}.boss-transformation *,.ending-copy{animation:none!important}.phase-portrait,.phase-title{opacity:1;transform:none}.phase-rings{display:none}}
