/* v3.7.7 — compact battle hierarchy and meaningful boss checkpoint. */
body[data-screen="game"] .appHeader{display:none}
#game.screen{padding-top:8px}
#game .gameTop{display:grid;grid-template-columns:38px minmax(0,1fr) auto auto auto 34px;gap:6px;align-items:center;margin-bottom:6px}
#game .missionHud b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
#game .missionProgress{margin-top:4px}
.gradeMini,.combo,.missionCount{font-size:10px;font-weight:900;white-space:nowrap}
.gradeMini{color:#b8c5dc}.combo{color:#ffd76b}.missionCount{color:#aebbd5}
#game .battleMeta{display:none}
#game .battle .sky{display:none}
#game .qmeta>#kind{color:#3c4862;font-weight:900;max-width:56%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.battle.boss-cleared::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(255,225,142,.12),rgba(94,214,175,.12));animation:clearedLight 2.4s ease-out both}
.battle.boss-cleared .ground{filter:brightness(1.18) saturate(1.1)}
@keyframes clearedLight{from{opacity:0}to{opacity:1}}
/* Nested inside #enemy (a small, absolutely-positioned unit box), inset:0
   only ever covered the arena — the question card below kept showing.
   position:fixed breaks it out to cover the real viewport regardless of
   DOM nesting, and a near-opaque backdrop keeps the last question from
   showing through underneath it. */
.bossCheckpoint{position:fixed;inset:0;z-index:1200;display:none;place-items:center;padding:10px;background:linear-gradient(180deg,rgba(6,11,21,.96),rgba(6,11,21,.995));backdrop-filter:blur(2px)}
.bossCheckpoint.show{display:grid;animation:checkpointIn .3s ease-out both}
.checkpointGlow{position:absolute;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,223,105,.34),transparent 68%);animation:checkpointGlow 1.8s ease-in-out infinite}
.checkpointCard{position:relative;width:min(94%,330px);padding:14px;border-radius:17px;text-align:center;color:#fff;background:linear-gradient(160deg,rgba(28,48,70,.97),rgba(13,25,43,.98));border:1px solid rgba(255,220,112,.75);box-shadow:0 14px 36px #0009,0 0 24px rgba(255,213,87,.2)}
.checkpointKicker{font-size:9px;letter-spacing:.13em;font-weight:1000;color:#ffe18a}.checkpointCard h2{font-size:20px;margin:4px 0}.checkpointCard>p{font-size:11px;margin:4px 0 8px;color:#d6e1f1}
.checkpointProof{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:4px 6px;padding:8px;border-radius:11px;background:rgba(5,12,24,.55);text-align:left}
.checkpointProof b{font-size:16px;color:#ffe27b}.checkpointProof span{font-size:9px;color:#b9c7da}.checkpointCard .checkpointEncourage{color:#fff3bd;font-weight:800}
.checkpointCard .btn{width:100%;padding:9px 10px;margin-top:2px}
@keyframes checkpointIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes checkpointGlow{50%{transform:scale(1.08);opacity:.72}}
@media(max-width:430px){#game .gameTop{grid-template-columns:36px minmax(0,1fr) auto auto 32px}.gradeMini{display:none}#game .missionCount{display:none}#game .miniSoundBtn{width:32px;height:32px}.checkpointCard{padding:12px}.checkpointCard h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.battle.boss-cleared::after,.checkpointGlow,.bossCheckpoint.show{animation:none!important}}
