/* All opponents share one selection grid; only the separate medal album is paged. */
.boss-modal{width:min(700px,calc(100vw - 32px));padding:23px 27px;overflow:visible}.boss-modal h2{font-size:26px;margin:7px 0 10px}.boss-modal>.muted{font-size:12px;line-height:1.45;margin:8px 0 15px}.boss-grid,.boss-medal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.boss-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-width:0;padding:8px 8px 10px;border:1px solid #ffffff15;background:radial-gradient(ellipse at 50% 15%,var(--boss-color),#14283d 75%);border-radius:15px;box-shadow:inset 0 1px #ffffff0b;color:#d7e5ee;text-align:center;transition:border-color .18s,box-shadow .18s,transform .18s}.boss-choice:hover{transform:translateY(-2px);border-color:var(--boss-accent);box-shadow:0 4px 18px #0003}.boss-choice.selected{border-color:var(--boss-accent);box-shadow:inset 0 0 0 1px var(--boss-accent),0 0 17px #fff1}.boss-choice:focus-visible{outline:3px solid #e9e5b8;outline-offset:3px}.boss-choice-art{position:relative;display:block;width:100%;height:106px}.boss-choice-art>.boss-portrait{height:106px;width:100%;display:block}.boss-choice>b{font-size:12px;line-height:1.25;color:#f5f3ed;min-height:15px}.boss-choice>small{font-size:9px;line-height:1.4;min-height:25px;color:#bed0df;font-weight:400}.boss-choice-status{font-size:9px;color:var(--boss-accent);line-height:1.25;min-height:12px}.boss-choice-wins{position:absolute;top:2px;right:8px;width:22px;height:22px;background:#eada98;color:#172339;border:2px solid #1a2d40;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:900}.boss-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0;font-size:11px;color:#a8bdcf}.boss-pager button{padding:7px 12px;border:1px solid #ffffff18;border-radius:9px;background:#ffffff06;color:#d5e0ec;font-size:12px}.boss-pager button:disabled{opacity:.3;cursor:default}.boss-pager>span{min-width:62px;text-align:center}.boss-modal .primary{width:100%;margin:0;font-size:13px;padding:12px}.boss-modal .journey-note{font-size:11px;margin:9px 0;line-height:1.5}.boss-medal-card{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid #ffffff13;border-radius:14px;padding:7px 5px 11px;background:#ffffff03;min-width:0;text-align:center}.boss-medal-card.earned{background:linear-gradient(145deg,#ddca8610,#ffffff03);border-color:#d2bc8340}.boss-medal-card .boss-medal{display:block;width:84px;height:88px}.boss-medal-card>b{font-size:12px;line-height:1.25;color:#d6e1ec}.boss-medal-card>small{font-size:9px;line-height:1.4;color:#91a9bf}.boss-medal-card.earned>small{color:#e3d497}.boss-medal.unearned{opacity:.47;filter:saturate(.3)}.boss-medal .boss-figure{animation:none}.boss-portrait{overflow:visible;display:block}.boss-dragon>.boss-portrait{width:100%;height:78px}.boss-dragon.defeated{filter:drop-shadow(0 0 8px var(--boss-accent,#e9e097))}.boss-health>.boss-track i{background:var(--boss-accent,#8ddfe4)}.boss-health>b{color:var(--boss-accent,#c3e9ed)}.boss-portrait.boss-breathe>.boss-figure{transform-origin:50% 100%;animation:boss-breath 3.8s ease-in-out infinite}.boss-portrait.boss-float>.boss-figure{animation:boss-levitate 3.1s ease-in-out infinite}.boss-wing{transform-origin:85px 80px;animation:boss-wing 2.7s ease-in-out infinite}.boss-flame{transform-origin:146px 58px;animation:boss-flame 1.2s ease-in-out infinite}.boss-smoke{animation:boss-smoke 3.5s ease-in-out infinite}.boss-strike .boss-dragon .boss-figure{animation:boss-impact .38s ease-out}.boss-strike .boss-health{animation:boss-health-hit .38s ease-out}.boss-dragon.defeated .boss-figure{animation:boss-defeated 2.5s ease-in-out infinite}
.award-tabs{display:flex;gap:5px;background:#091c2e;border:1px solid #ffffff0e;border-radius:11px;padding:4px;margin:10px 0 13px}.award-tabs button{flex:1;border-radius:8px;padding:9px 6px;background:transparent;color:#9eb6ca;font-size:12px}.award-tabs button[aria-pressed=true]{background:#294342;color:#e6eab5}.boss-prize,#bossPrize{display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #e0ca8936;border-radius:14px;background:#d7bf7807;padding:7px 13px;margin:12px 0;text-align:left}#bossPrize[hidden]{display:none}#bossPrize .boss-medal{width:72px;height:76px;flex-shrink:0}.boss-prize-copy{font-size:12px;color:#eddca5;line-height:1.4}.boss-prize-copy b{display:block;color:#fff0ba;font-size:14px}.boss-prize-copy small{display:block;color:#c6be97;font-size:11px;margin-top:4px}.boss-prize-copy span{display:block;margin-top:4px}.boss-modal#bossModal,.boss-modal#bossRoster{max-width:700px}
@keyframes boss-breath{50%{transform:scale(1.025,1.035)}}@keyframes boss-levitate{50%{transform:translateY(-5px)}}@keyframes boss-wing{50%{transform:rotate(7deg)}}@keyframes boss-flame{50%{transform:scale(.86,1.12);opacity:.85}}@keyframes boss-smoke{50%{opacity:.55;transform:translateY(-4px)}}@keyframes boss-impact{15%{transform:translateX(7px) rotate(3deg);filter:brightness(1.8)}45%{transform:translateX(-4px)}75%{transform:translateX(2px)}}@keyframes boss-health-hit{30%{filter:brightness(1.9)}}@keyframes boss-defeated{50%{opacity:.78;transform:translateY(3px)}}
.calm .boss-portrait .boss-figure,.calm .boss-wing,.calm .boss-flame,.calm .boss-smoke,.calm .boss-strike .boss-health{animation:none}.calm .boss-choice{transition:none}.calm .boss-choice:hover{transform:none}
@media(prefers-reduced-motion:reduce){.boss-portrait .boss-figure,.boss-wing,.boss-flame,.boss-smoke,.boss-strike .boss-health{animation:none}.boss-choice{transition:none}.boss-choice:hover{transform:none}}
@media(min-width:561px) and (max-height:750px){.boss-modal{padding:19px 23px}.boss-modal h2{font-size:23px;margin:5px 0 8px}.boss-choice-art,.boss-choice-art>.boss-portrait{height:86px}.boss-choice{padding:5px 7px 8px}.boss-medal-card .boss-medal{width:77px;height:80px}.boss-modal>.muted{margin:7px 0 11px}.boss-pager{margin:10px 0}}
@media(max-width:560px){.boss-modal{padding:21px 16px;width:calc(100vw - 24px)}.boss-modal h2{font-size:23px;padding-right:22px}.boss-modal>.eyebrow{font-size:9px;letter-spacing:1px}.boss-modal>.muted{font-size:10px;line-height:1.4;margin:7px 0 12px}.boss-grid,.boss-medal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.boss-choice{padding:5px 6px 7px;border-radius:12px;gap:3px}.boss-choice-art,.boss-choice-art>.boss-portrait{height:76px}.boss-choice>b{font-size:11px}.boss-choice>small{font-size:8px;min-height:23px}.boss-choice-status{font-size:8px;min-height:11px}.boss-choice-wins{right:5px;width:20px;height:20px;font-size:10px}.boss-pager{margin:10px 0;gap:9px}.boss-modal .journey-note{font-size:10px;line-height:1.4;margin:8px 0}.boss-modal .primary{font-size:12px;padding:10px}.boss-medal-card{padding:5px 4px 7px;gap:3px}.boss-medal-card .boss-medal{width:77px;height:80px}.boss-medal-card>b{font-size:11px}.boss-medal-card>small{font-size:8px}.boss-dragon>.boss-portrait{height:69px}.boss-health>b{font-size:11px}.boss-health>span{font-size:10px}.boss-health small{font-size:8px}}
@media(max-width:560px) and (max-height:740px){.boss-modal{padding:15px}.boss-modal h2{font-size:21px}.boss-choice-art,.boss-choice-art>.boss-portrait{height:53px}.boss-medal-card .boss-medal{width:65px;height:68px}.boss-choice>small{min-height:22px}.boss-modal>.muted{margin:5px 0 8px}.boss-pager{margin:8px 0}}
/* Raster characters retain their alpha, independent proportions and accessible names. */
.boss-portrait{position:relative;width:100%;height:100%;isolation:isolate}.boss-portrait>.boss-figure{display:block;position:relative;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px #0007);transform-origin:50% 100%}.boss-portrait:before{content:"";position:absolute;inset:12% 18%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,var(--boss-accent,#99c5df),transparent 70%);opacity:.15}.boss-choice-art{overflow:visible}.boss-choice.selected .boss-portrait:before{opacity:.25}.boss-medal{filter:drop-shadow(0 3px 4px #0004)}.boss-medal.unearned{filter:grayscale(.8) drop-shadow(0 3px 4px #0003)}

/* One stable shell for every Journey tab; only the active pane changes. */
#journeyModal>.journey-modal{width:min(1120px,calc(100vw - 32px));max-width:1120px;height:min(680px,calc(100dvh - 32px));max-height:none;display:flex;flex-direction:column;padding:20px 24px;overflow:visible}
#journeyModal>.journey-modal>.eyebrow{font-size:10px;flex-shrink:0}
#journeyModal>.journey-modal>h2{font-size:26px;margin:5px 0 3px;flex-shrink:0}
#journeyModal>.journey-bosses>.muted{font-size:12px;margin:3px 0 10px;flex-shrink:0}
#bossChoices{flex:1;min-height:0}
#bossChoices>.boss-grid{height:100%;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:7px}
#bossChoices .boss-choice{padding:5px 4px;gap:3px;min-height:0;border-radius:10px}
#bossChoices .boss-choice-art{flex:1;min-height:0;height:auto;width:100%}
#bossChoices .boss-choice-art>.boss-portrait{height:100%;width:100%}
#bossChoices .boss-choice>b{font-size:12px;line-height:1.2;min-height:29px;display:flex;align-items:center;justify-content:center;width:100%;overflow-wrap:anywhere;flex-shrink:0}
#bossChoices .boss-choice-wins{right:1px;top:0;width:19px;height:19px;font-size:10px}
.boss-choice-progress{position:absolute;left:0;bottom:0;border:1px solid #c2e5fc99;background:#102a3aee;color:#def6ff;border-radius:5px;font-size:9px;font-weight:700;padding:2px 4px;line-height:1.1}
.boss-choice-order{position:absolute;left:1px;top:0;min-width:19px;height:19px;display:grid;place-items:center;border-radius:5px;background:#071629dc;color:#ceddeb;border:1px solid #b0cde433;font-size:10px;font-weight:800}
#bossChoices .boss-choice.locked{opacity:1;cursor:not-allowed;background:linear-gradient(145deg,#1c2d40,#102033);border-color:#8aa3b827;box-shadow:inset 0 1px #f2f9ff0a}
#bossChoices .boss-choice.locked:hover{transform:none}
.concealed>.boss-figure{filter:blur(7px) grayscale(1)!important;opacity:.35;animation:none!important;transform:none!important}
.concealed:before{display:none}
.boss-choice.locked .boss-choice-art{overflow:hidden}
#bossChoices .boss-choice.locked>b{color:#9cabb9}
.boss-lock{position:absolute;inset:0;display:grid;place-items:center;color:#d1dbe4;pointer-events:none}
.boss-lock .icon{width:25px;height:25px;padding:4px;border:1px solid #afc9df55;border-radius:7px;background:#0b1a2ac9;box-sizing:content-box}
.boss-selection.locked{background:#16293d;border-color:#adc3d52b}
.boss-medal-card.locked>.boss-portrait{width:84px;height:88px}
.boss-medal-card.locked{overflow:hidden}
@media(max-width:560px){.boss-choice-order{min-width:16px;height:16px;font-size:8px}.boss-lock .icon{width:17px;height:17px;padding:3px}.boss-medal-card.locked>.boss-portrait{width:77px;height:80px}}
@media(max-width:560px) and (max-height:740px){.boss-medal-card.locked>.boss-portrait{width:65px;height:68px}}
#bossDetail{flex-shrink:0;margin-top:9px}
.boss-selection{display:flex;align-items:center;gap:11px;background:linear-gradient(90deg,var(--boss-color),#152c41);border:1px solid var(--boss-accent);border-radius:10px;padding:6px 11px;min-height:67px}
.boss-selection>.boss-portrait{width:55px;height:55px;flex-shrink:0}
.boss-selection>div{min-width:0;display:flex;flex-direction:column;gap:3px}
.boss-selection b{font-size:15px;line-height:1.2;color:#fff1cf}
.boss-selection span:not(.boss-portrait){font-size:12px;line-height:1.2;color:#d7e7f2}
.boss-selection small{font-size:11px;line-height:1.25;color:var(--boss-accent)}
#journeyModal .journey-bosses .journey-note{font-size:11px;line-height:1.3;margin:7px 0;flex-shrink:0}
#journeyModal .journey-bosses .primary{padding:10px;font-size:13px;flex-shrink:0}
@media(min-width:561px) and (max-width:900px){#bossChoices>.boss-grid{grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(5,minmax(0,1fr))}#bossChoices .boss-choice>b{font-size:11px;min-height:25px}}
@media(max-width:560px){#journeyModal>.journey-modal{width:calc(100vw - 20px);height:min(740px,calc(100dvh - 24px));padding:13px 12px;border-radius:13px}#journeyModal>.journey-modal>h2{font-size:22px;margin:4px 0 2px}#journeyModal>.journey-modal>.eyebrow{font-size:8px;letter-spacing:1px}#journeyModal>.journey-bosses>.muted{font-size:10px;margin:3px 0 7px}#bossChoices>.boss-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,1fr));gap:4px}#bossChoices .boss-choice{padding:2px 3px;gap:1px;border-radius:7px}#bossChoices .boss-choice>b{font-size:10px;min-height:24px;line-height:1.15}#bossChoices .boss-choice-wins{width:16px;height:16px;font-size:8px;border-width:1px}.boss-choice-progress{font-size:8px;padding:1px 3px}#bossDetail{margin-top:6px}.boss-selection{padding:5px 7px;gap:7px;min-height:59px}.boss-selection>.boss-portrait{width:43px;height:43px}.boss-selection b{font-size:13px}.boss-selection span:not(.boss-portrait){font-size:10px}.boss-selection small{font-size:9px;line-height:1.25}#journeyModal .journey-bosses .journey-note{font-size:9px;line-height:1.25;margin:5px 0}#journeyModal .journey-bosses .primary{font-size:12px;padding:9px}}

/* Boss controls stay mounted while Journey switches to stories or records. */
#journeyBosses{display:flex;flex-direction:column;flex:1;min-height:0}
.journey-modal>#journeyTabs{flex-shrink:0;margin:7px 0 9px}
#journeyContent{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}
#journeyBosses>.muted{font-size:12px;line-height:1.3;margin:0 0 8px;flex-shrink:0}
#journeyBosses>.primary{width:100%;margin:0}
@media(max-width:560px){.journey-modal>#journeyTabs{margin:5px 0 7px;padding:3px}.journey-modal>#journeyTabs button{font-size:11px;padding:7px 3px}#journeyBosses>.muted{font-size:10px;line-height:1.3;margin-bottom:6px}}

/* A shared album shell and reserved footer prevent tab/page layout jumps. */
#awardsModal>.boss-awards-modal{width:min(740px,100%);height:min(680px,calc(100dvh - 48px));max-height:none;display:flex;flex-direction:column;flex-shrink:0;padding:24px 26px;overflow:visible}
#awardsModal>.modal>.modal-mark{flex-shrink:0;margin-bottom:10px}
#awardsModal>.modal>.eyebrow{flex-shrink:0}
#awardsModal>.modal>h2{flex-shrink:0;font-size:27px;margin:7px 0 8px}
#awardsModal #awardTabs{flex-shrink:0;margin:8px 0 12px}
#awardsList{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden}
#awardsList>.award-summary,#awardsList>.award-tip{flex-shrink:0}
#awardsList>.award-tip{margin:9px 0}
#awardsList>.award-grid{flex:1;grid-template-rows:repeat(3,minmax(min-content,1fr));gap:8px}
#awardsList .award-card{min-width:0;align-items:center;padding:10px}
#awardsList .training-medal{flex-shrink:0}
#awardsList>.boss-medal-grid{height:100%;grid-template-rows:repeat(2,minmax(min-content,1fr))}
#awardsList .boss-medal-card{justify-content:center}
#awardsModal .awards-footer{height:44px;flex-shrink:0;display:flex;align-items:flex-end;justify-content:center}
#awardsModal #awardsPager{margin:0}
@media(max-width:560px){
  #awardsModal>.boss-awards-modal{height:min(680px,calc(100dvh - 24px));padding:16px 14px}
  #awardsModal>.modal>.modal-mark{width:36px;height:36px;margin-bottom:8px}
  #awardsModal>.modal>h2{font-size:24px;margin:5px 0 7px}
  #awardsModal #awardTabs{margin:7px 0 10px}
  #awardsList>.award-summary{font-size:10px;padding:9px;gap:6px}
  #awardsList>.award-tip{font-size:10px;line-height:1.35;margin:9px 0}
  #awardsList>.award-grid{gap:6px}
  #awardsList .award-card{padding:7px 6px;gap:6px}
  #awardsList .award-card b{font-size:11px;line-height:1.25}
  #awardsList .award-card small,#awardsList .award-count{font-size:9px;line-height:1.25}
  #awardsList .award-count{margin-top:5px}
  #awardsList .training-medal{width:24px;height:28px}
  #awardsList>.boss-medal-grid{grid-template-rows:repeat(3,minmax(min-content,1fr))}
  #awardsModal .awards-footer{height:40px}
}
