/* BEGIN ./app_current.css */
/* Gariben Kirakira Puzzle consolidated current CSS bundle - generated v24.7.2 */

/* ===== BEGIN style.css ===== */
:root{--panel:rgba(255,255,255,.10);--line:rgba(255,255,255,.18);--muted:rgba(255,255,255,.72);--gold:#ffd76c;--good:#7cffb2;--bad:#ff8aa6}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;user-select:none}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;color:#fff;background:linear-gradient(160deg,#2b3b23,#142011)}
body{padding:calc(10px + env(safe-area-inset-top)) 10px calc(16px + env(safe-area-inset-bottom));display:flex;justify-content:center}
.app{width:min(480px,100%)}
.screen{display:none;border:1px solid var(--line);border-radius:26px;background:var(--panel);backdrop-filter:blur(12px);overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.screen.active{display:block}
.pad{padding:14px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
button{font:inherit;color:inherit;touch-action:manipulation;cursor:pointer}
.btn,.mini,.cta{border:1px solid var(--line);background:rgba(255,255,255,.12);border-radius:16px;padding:11px 12px;font-weight:1000}
.btn:active,.mini:active,.cta:active{transform:scale(.98);background:rgba(255,255,255,.20)}
.cta{width:100%;font-size:18px;background:linear-gradient(180deg,#fff4aa,#ffcf45 55%,#ff9ecf);color:#3a2700;border:0;box-shadow:0 7px 0 rgba(94,61,0,.28),0 0 22px rgba(255,221,100,.25);border-radius:999px}
.logo{font-size:30px;text-align:center;font-weight:1000;color:#ffe277;text-shadow:0 4px 14px rgba(0,0,0,.28)}
.sub{text-align:center;color:var(--muted);font-weight:850;line-height:1.55;font-size:13px}
.titleBox{position:relative;border-radius:28px;overflow:hidden;border:2px solid rgba(255,255,255,.20);background:#26351f;margin-bottom:12px}
.titleBox img{display:block;width:100%;height:auto}
.hotStart{position:absolute;left:22%;right:22%;top:64%;height:8%;border:0;background:rgba(255,255,255,.01);border-radius:999px}
.titleBtns,.nav{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.titleBtns{padding:10px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.18)}.titleBtns .btn{border:2px solid rgba(255,255,255,.42);box-shadow:0 6px 0 rgba(0,0,0,.18),0 0 16px rgba(255,255,255,.10);font-size:16px;text-shadow:0 2px 8px rgba(0,0,0,.24)}.titleBtns .btn:nth-child(1){background:linear-gradient(180deg,#ff8f77,#d94a45)}.titleBtns .btn:nth-child(2){background:linear-gradient(180deg,#78c8ff,#326ee7)}.titleBtns .btn:nth-child(3){background:linear-gradient(180deg,#a4ec79,#47aa47)}.titleBtns .btn:nth-child(4){background:linear-gradient(180deg,#d48cff,#8544df)}.titleBtns .btn:nth-child(5){background:linear-gradient(180deg,#ffd76c,#f09d2b);color:#4a2a00}.titleBtns .btn:nth-child(6){background:linear-gradient(180deg,#ffb1cf,#e25395)}
.currency{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.cur{border:1px solid var(--line);background:rgba(255,255,255,.10);border-radius:18px;padding:10px 12px;font-weight:1000;display:flex;justify-content:space-between}.cur small{display:block;font-size:10px;color:var(--muted)}
.section{border:1px solid var(--line);background:rgba(255,255,255,.09);border-radius:22px;padding:12px;margin-top:12px}.section h3{margin:0 0 10px;color:#ffe8a0;font-size:15px}
.scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.scroll::-webkit-scrollbar{display:none}
.stage-card,.leader-card,.card{border:1px solid var(--line);background:rgba(255,255,255,.11);border-radius:18px;padding:10px;position:relative}
.stage-card{min-width:158px}.stage-card.active,.leader-card.active,.card.selected{outline:3px solid var(--gold);background:rgba(255,215,108,.15)}
.name{font-weight:1000;color:#7cc7ff}.meta,.helper{font-size:11px;color:var(--muted);font-weight:850;line-height:1.45}.stars{font-size:16px;letter-spacing:1px;margin-top:7px;color:rgba(255,255,255,.25)}.stars .on{color:#ffd84e;text-shadow:0 0 10px rgba(255,216,78,.7)}.best{font-size:10px;font-weight:900;color:#fff7c3;margin-top:5px}
.leader-card{min-width:116px;text-align:center}.leader-card img{width:84px;height:84px;object-fit:contain;border-radius:18px;background:rgba(255,255,255,.08)}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.card{text-align:center;padding:6px}.card img{width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:16px;background:rgba(255,255,255,.07)}.card .name{font-size:11px;margin-top:4px;line-height:1.2}.badge{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.50);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:1000}.lv{left:5px;right:auto;background:rgba(255,255,255,.85);color:#55402c}.silhouette{filter:brightness(0) grayscale(1);opacity:.45}
.boardTop{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:10px}.stat{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.10);padding:8px;text-align:center;font-weight:1000}.stat small{display:block;font-size:10px;color:var(--muted)}
.bars{display:grid;gap:8px;margin-bottom:10px}.bar{height:18px;background:rgba(0,0,0,.25);border-radius:999px;overflow:hidden;border:1px solid var(--line)}.bar span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#7cffb2,#ffe277,#ff8aa6)}
.board{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;background:rgba(0,0,0,.15);padding:8px;border-radius:20px;border:1px solid var(--line);touch-action:none;position:relative}.cell{aspect-ratio:1/1;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:rgba(255,255,255,.10);display:grid;place-items:center;overflow:hidden;touch-action:none;position:relative}.cell img{width:96%;height:96%;object-fit:contain;pointer-events:none}.cell.selected{outline:3px solid var(--gold);background:rgba(255,215,108,.24);transform:scale(.93);box-shadow:0 0 18px rgba(255,215,108,.35)}.cell.flash{outline:3px solid var(--gold)}.btn.modeActive{outline:3px solid var(--gold);background:rgba(255,215,108,.18);color:#fff5bf}#modeQuest,#modeEndless{border:2px solid rgba(255,255,255,.22)}
.resultHero{text-align:center;border:1px solid var(--line);background:rgba(255,255,255,.09);border-radius:22px;padding:16px}.resultStatus{font-size:34px;font-weight:1000;color:#ffe277}.resultScore{font-size:30px;font-weight:1000}.resultStars{font-size:34px;color:rgba(255,255,255,.25);margin:8px 0}.resultStars .on{color:#ffd84e;text-shadow:0 0 16px rgba(255,216,78,.8)}
.gachaOrb{width:190px;height:190px;border-radius:50%;margin:24px auto;background:radial-gradient(circle at 35% 30%,#fff8,#ff8ff5 25%,#8ad5ff 55%,#ffd76c 88%);box-shadow:0 0 35px rgba(255,255,255,.30)}
.skillOverlay{position:fixed;inset:0;z-index:1000;display:none;place-items:center;background:rgba(0,0,0,.35);padding:20px}.skillOverlay.show{display:grid}.skillCard{max-width:390px;width:100%;border-radius:26px;padding:16px;background:linear-gradient(135deg,rgba(34,22,73,.96),rgba(79,34,118,.92));border:2px solid rgba(255,255,255,.28);text-align:center}.skillCard img{width:180px;max-width:70%;height:auto;object-fit:contain}.skillTitle{font-size:24px;font-weight:1000;color:#ffe277}

.titlePad{padding:12px}
.imageStartBtn,.imageMenuBtn{display:block;border:0;background:transparent;padding:0;margin:0;touch-action:manipulation;cursor:pointer}
.imageStartBtn{width:100%;margin:12px auto 10px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.22))}
.imageStartBtn img{display:block;width:100%;height:auto}
.titleImageBtns{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px;padding:10px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.15),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.18)}
.imageMenuBtn{width:100%;filter:drop-shadow(0 6px 8px rgba(0,0,0,.22));transition:transform .08s ease, filter .08s ease}
.imageMenuBtn img{display:block;width:100%;height:auto;border-radius:18px}
.imageStartBtn:active,.imageMenuBtn:active{transform:scale(.97);filter:drop-shadow(0 3px 4px rgba(0,0,0,.20)) brightness(1.08)}
.titleBtns{display:none!important}
.hotStart{display:none!important}
@media(max-width:380px){.titleImageBtns{gap:7px;padding:8px}.titlePad{padding:10px}}


/* v20.8 redesign */
#titleScreen{max-height:100svh;overflow:hidden}
.titlePad{padding:10px 12px 14px}
.titleBox{max-height:50svh;display:flex;align-items:flex-start;justify-content:center;background:#21331f}
.titleBox>img{width:100%;height:100%;object-fit:cover;object-position:center top}
.logo{font-size:clamp(24px,6vw,32px);margin-top:8px}
.sub{font-size:12px}
.imageStartBtn{margin:8px auto 8px;max-width:94%}
.titleImageBtns{grid-template-columns:repeat(2,1fr);gap:7px;padding:8px}
.bossArea{display:grid;grid-template-columns:94px 1fr;gap:10px;align-items:center;margin:6px 0 10px;padding:10px;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.06))}
.bossPortraitWrap{width:94px;height:94px;border-radius:20px;background:rgba(255,255,255,.08);display:grid;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.18)}
.bossPortraitWrap img{width:100%;height:100%;object-fit:contain}
.bossName{font-size:16px;font-weight:1000;color:#ffe8a0;margin-bottom:4px}
.battleBottom{position:sticky;bottom:0;z-index:5;margin-top:10px;padding:10px;border-radius:22px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,rgba(44,62,39,.94),rgba(31,44,29,.98));display:grid;grid-template-columns:1fr 1fr;gap:10px}
.skillBig{grid-column:1/2;border:0;border-radius:18px;padding:14px 10px;background:linear-gradient(180deg,#fff0a0,#ffbb36 55%,#ff8fc8);color:#3a2700;font-weight:1000;box-shadow:0 6px 0 rgba(89,57,0,.32)}
.skillBig.ready{animation:pulseSkill .9s ease-in-out infinite alternate}
.shuffleBig{grid-column:2/3;border:1px solid rgba(255,255,255,.25);border-radius:18px;padding:14px 10px;background:rgba(255,255,255,.12);font-weight:1000}
.gaugeText{grid-column:1/3;text-align:center;font-size:12px;color:rgba(255,255,255,.82);font-weight:900}
@keyframes pulseSkill{from{filter:brightness(1)}to{filter:brightness(1.18);box-shadow:0 6px 0 rgba(89,57,0,.32),0 0 22px rgba(255,220,110,.62)}}
.skillCard{max-width:760px}
.skillCard img{width:100%;max-height:48vh;object-fit:contain;border-radius:18px}
.skillCard .skillTitle{font-size:clamp(26px,6vw,42px)}
.bossCutinOverlay{position:fixed;inset:0;z-index:1200;display:none;place-items:center;background:rgba(80,0,0,.42);padding:18px}
.bossCutinOverlay.show{display:grid;animation:bossFlash .9s ease forwards}
.bossCutinCard{max-width:480px;width:100%;border-radius:24px;background:rgba(30,10,10,.88);border:2px solid rgba(255,100,100,.65);box-shadow:0 20px 70px rgba(0,0,0,.45);text-align:center;padding:14px}
.bossCutinCard img{width:100%;max-height:55vh;object-fit:contain;border-radius:18px}
.bossCutinTitle{font-size:34px;font-weight:1000;color:#ffeb7a;text-shadow:0 3px 12px rgba(0,0,0,.45);margin-top:8px}
@keyframes bossFlash{0%{opacity:0;transform:scale(.94)}20%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(1.04)}}
#nextStageBtn{display:none!important}
#nextStageBtn.show{display:block!important}
.resultActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.resultActions .wide{grid-column:1/3}
@media(max-height:780px){.titleBox{max-height:43svh}.imageStartBtn{margin-top:6px}.titleImageBtns{gap:6px}.logo{font-size:24px}.sub{display:none}}


/* v20.9 asset restore */
.assetHero{display:block;width:100%;border-radius:22px;border:1px solid rgba(255,255,255,.18);box-shadow:0 10px 28px rgba(0,0,0,.24);margin:8px 0 12px}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 12px}
.tabs .active{outline:3px solid var(--gold);background:rgba(255,215,108,.18)}
.assetSheetRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.assetSheetRow img,.assetSheetSingle img{width:100%;border-radius:18px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06)}
.missionCard2,.awakenCard,.itemCard2{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:rgba(255,255,255,.09);padding:10px;margin-bottom:8px}
.missionIcon2,.itemIcon2{width:54px;height:54px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.25),rgba(255,255,255,.08));display:grid;place-items:center;font-size:28px}
.progress2{height:10px;background:rgba(0,0,0,.25);border-radius:999px;overflow:hidden;margin-top:6px}
.progress2 span{display:block;height:100%;background:linear-gradient(90deg,#7cffb2,#ffe277,#ff9adb)}
.starImg{width:22px;height:22px;vertical-align:-4px;filter:drop-shadow(0 0 4px rgba(255,215,108,.45))}
.resultStars .starImg{width:42px;height:42px;margin:0 3px}
.stage-card .stars{display:flex;gap:2px;align-items:center}
.ratingPreview{display:block;width:100%;border-radius:18px;border:1px solid rgba(255,255,255,.15);margin-top:10px}
.awakenCard{grid-template-columns:82px 1fr}
.awakenCard img{width:82px;height:82px;object-fit:contain;border-radius:18px;background:rgba(255,255,255,.08)}
.itemCard2.selected{outline:3px solid var(--gold);background:rgba(255,215,108,.13)}
.itemCard2.unavailable{opacity:.55;filter:grayscale(.5)}
.itemSmall{font-size:11px;color:rgba(255,255,255,.72);font-weight:850;line-height:1.45}


/* v20.10 UI fix */
#titleScreen{max-height:none;overflow:visible}.titleBox{height:43svh;max-height:520px;min-height:320px;display:flex;align-items:center;justify-content:center;background:#21331f}.titleBox>img{width:100%;height:100%;object-fit:contain;object-position:center center}.imageStartBtn img{max-height:72px;object-fit:contain}.titleImageBtns{grid-template-columns:repeat(2,1fr);gap:7px;padding:8px;overflow:visible}.imageMenuBtn img{height:64px;object-fit:contain;border-radius:14px}@media(max-height:780px){.titleBox{height:38svh;min-height:260px}.imageMenuBtn img{height:54px}.imageStartBtn img{max-height:62px}}.resultRankImg{display:block;width:100%;max-width:420px;margin:12px auto;border-radius:22px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.25))}#rewardText .ratingPreview{display:none!important}.awakenMiniCard{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);border-radius:22px;padding:12px;margin:10px 0}.awakenMiniCard .charIcon{width:92px;height:92px;border-radius:20px;background:rgba(255,255,255,.08);object-fit:contain}.awakenBadgeNow{width:72px;height:72px;object-fit:contain;vertical-align:middle;margin-right:8px}.awakenPreview{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:10px 0}.awakenPreview div{border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.07);padding:10px;text-align:center}.awakenSuccessOverlay{position:fixed;inset:0;z-index:1500;display:none;place-items:center;background:rgba(15,12,35,.72);padding:18px}.awakenSuccessOverlay.show{display:grid;animation:fadeAw .95s ease forwards}.awakenSuccessCard{width:min(460px,95vw);border-radius:28px;background:linear-gradient(180deg,rgba(255,235,135,.96),rgba(255,142,220,.96));border:3px solid rgba(255,255,255,.85);box-shadow:0 20px 80px rgba(0,0,0,.48);padding:18px;text-align:center;color:#432000}.awakenSuccessCard img{width:130px;height:130px;object-fit:contain}.awakenSuccessCard .big{font-size:34px;font-weight:1000}@keyframes fadeAw{0%{opacity:0;transform:scale(.92)}20%{opacity:1;transform:scale(1)}80%{opacity:1}100%{opacity:0;transform:scale(1.05)}}.itemCard2{grid-template-columns:76px 1fr auto}.itemIconImg{width:76px;height:76px;object-fit:contain;border-radius:18px;background:rgba(255,255,255,.08)}.itemHeroNote{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);border-radius:18px;padding:10px;margin:8px 0 12px}#itemScreen .assetSheetSingle{display:none}#awakenScreen .assetSheetRow,#awakenScreen .ratingPreview{display:none}


/* v21 boss support */
.bossSupportGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px}
.bossSupportCard{position:relative;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.08);padding:10px;overflow:hidden;text-align:left;color:#fff;min-height:245px}
.bossSupportCard.selected{outline:3px solid var(--gold);background:rgba(255,215,108,.14)}
.bossSupportCard.locked{opacity:.62;filter:grayscale(.6)}
.bossFrameBox{position:relative;height:132px;display:grid;place-items:center;margin-bottom:6px}
.bossFrameBg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.bossSupportBoss{position:relative;z-index:2;width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.bossSupportName{font-weight:1000;color:#ffe277;font-size:14px;line-height:1.25;margin-top:2px}
.bossSupportDesc{font-size:11px;color:rgba(255,255,255,.78);line-height:1.45;margin-top:4px;min-height:32px}
.bossSupportIcons{display:flex;gap:5px;margin-top:6px;align-items:center;flex-wrap:wrap}
.bossSupportIcons img{width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.28))}
.supportBadge{position:absolute;right:8px;top:8px;border-radius:999px;background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.2);padding:3px 7px;font-size:10px;font-weight:1000}
.supportEffectLine{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:#dfffe9;font-weight:800}
.supportEffectLine img{width:30px;height:30px;object-fit:contain}
.bossSupportUnlockOverlay{position:fixed;inset:0;z-index:1900;display:none;place-items:center;background:rgba(15,7,30,.74);padding:16px}
.bossSupportUnlockOverlay.show{display:grid;animation:supportUnlockFade 1.55s ease forwards}
.supportUnlockCard{width:min(760px,96vw);text-align:center}
.supportUnlockCard .unlockBanner{width:100%;border-radius:26px;box-shadow:0 22px 85px rgba(0,0,0,.5);border:2px solid rgba(255,230,140,.55)}
.supportUnlockBoss{margin:-38px auto 0;width:118px;height:118px;border-radius:50%;background:rgba(255,255,255,.15);border:3px solid rgba(255,230,140,.9);display:grid;place-items:center;box-shadow:0 12px 36px rgba(0,0,0,.4)}
.supportUnlockBoss img{width:105px;height:105px;object-fit:contain}
.supportUnlockName{font-size:24px;font-weight:1000;color:#ffe277;text-shadow:0 3px 12px rgba(0,0,0,.5);margin-top:8px}
@keyframes supportUnlockFade{0%{opacity:0;transform:scale(.94)}15%{opacity:1;transform:scale(1)}82%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.03)}}
.bossDexSupport{border-top:1px solid rgba(255,255,255,.12);margin-top:6px;padding-top:6px;font-size:11px;color:#dfffe9;line-height:1.4}
#bossSupportText b{color:#ffe277}
@media(max-width:380px){.bossSupportGrid{gap:8px}.bossSupportCard{padding:8px;min-height:235px}.bossFrameBox{height:116px}.bossSupportBoss{width:76px;height:76px}}


/* v21.1 compact boss support + gravity puzzle */
.bossSupportGrid{
  display:grid!important;
  grid-template-columns:repeat(2,1fr)!important;
  gap:8px!important;
  margin-top:8px!important;
}
.bossSupportCard{
  min-height:150px!important;
  padding:8px!important;
  border-radius:18px!important;
}
.bossSupportCard.selected{
  outline:3px solid var(--gold)!important;
  box-shadow:0 0 18px rgba(255,215,108,.32)!important;
}
.bossFrameBox{
  height:78px!important;
  margin-bottom:3px!important;
}
.bossFrameBg{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}
.bossSupportBoss{
  width:58px!important;
  height:58px!important;
}
.bossSupportName{
  font-size:12px!important;
  line-height:1.22!important;
  margin-top:0!important;
}
.bossSupportDesc{
  font-size:10px!important;
  line-height:1.28!important;
  min-height:0!important;
  max-height:28px!important;
  overflow:hidden!important;
  margin-top:2px!important;
}
.bossSupportIcons{gap:4px!important;margin-top:5px!important}
.bossSupportIcons img{width:24px!important;height:24px!important}
.supportBadge{top:6px!important;right:6px!important;font-size:10px!important;padding:2px 6px!important}
.bossDexSupport{font-size:10px!important}

.cell.removing{
  animation:popRemove .14s ease forwards;
}
.cell.spawn{
  animation:spawnDrop .18s ease both;
}
@keyframes popRemove{
  0%{transform:scale(1);opacity:1}
  100%{transform:scale(.2);opacity:0}
}
@keyframes spawnDrop{
  0%{transform:translateY(-22px) scale(.85);opacity:0}
  100%{transform:translateY(0) scale(1);opacity:1}
}
.comboPopup{
  position:fixed;
  left:50%;
  top:42%;
  transform:translate(-50%,-50%);
  z-index:1700;
  font-size:38px;
  font-weight:1000;
  color:#ffe277;
  text-shadow:0 4px 18px rgba(0,0,0,.55);
  pointer-events:none;
  opacity:0;
}
.comboPopup.show{
  animation:comboPop .72s ease forwards;
}
@keyframes comboPop{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}
  20%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}
  100%{opacity:0;transform:translate(-50%,-74%) scale(1)}
}
@media(max-width:380px){
  .bossSupportCard{min-height:140px!important;padding:7px!important}
  .bossFrameBox{height:70px!important}
  .bossSupportBoss{width:52px!important;height:52px!important}
}


/* v21.2 paced effects */
.cell{transition:transform .18s ease, opacity .18s ease, filter .18s ease}
.cell.removing{
  animation:popRemoveSlow .36s ease forwards!important;
  z-index:3;
}
.cell.spawn{
  animation:spawnDropSlow .28s ease both!important;
}
@keyframes popRemoveSlow{
  0%{transform:scale(1);opacity:1;filter:brightness(1.2)}
  45%{transform:scale(1.12);opacity:1;filter:brightness(1.7)}
  100%{transform:scale(.18);opacity:0;filter:brightness(2)}
}
@keyframes spawnDropSlow{
  0%{transform:translateY(-30px) scale(.82);opacity:0}
  100%{transform:translateY(0) scale(1);opacity:1}
}
.comboPopup.show{
  animation:comboPop .95s ease forwards!important;
}
.skillOverlay.show,.bossCutinOverlay.show{
  pointer-events:auto;
}

/* v22.1 stable gravity: only changed cells animate */
.cell.spawn{
  animation:spawnDropStable .24s ease both!important;
}
@keyframes spawnDropStable{
  0%{transform:translateY(-26px) scale(.86);opacity:0}
  100%{transform:translateY(0) scale(1);opacity:1}
}
.cell.fell{
  animation:fallSettleStable .18s ease both;
}
@keyframes fallSettleStable{
  0%{transform:translateY(-10px)}
  100%{transform:translateY(0)}
}


/* v22.2 UI cleanup: previous button assets + compact support */
.logo,
.sub,
.titleTextRemoved {
  display: none !important;
}
.titlePad {
  gap: 8px !important;
}
.titleBox {
  margin-bottom: 4px !important;
}
.titleBox img {
  object-fit: contain !important;
}
.textStartBtn {
  min-height: 60px !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg,#fff4a7,#ff9acb) !important;
  border: 3px solid rgba(255,226,119,.95) !important;
  box-shadow: 0 8px 0 rgba(138,82,0,.42), 0 14px 28px rgba(0,0,0,.22) !important;
  color: #5a3512 !important;
  font-size: 22px !important;
  font-weight: 1000 !important;
  text-shadow: 0 2px 0 rgba(255,255,255,.62) !important;
}
.textStartBtn span {
  display: block;
}
.titleImageBtns {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px 12px !important;
  padding: 10px !important;
}
.imageMenuBtn {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: 78px !important;
  display: grid !important;
  place-items: center !important;
}
.imageMenuBtn img {
  width: 100% !important;
  max-width: 285px !important;
  height: auto !important;
  object-fit: contain !important;
  filter: drop-shadow(0 7px 10px rgba(0,0,0,.34)) !important;
}
.ratingPreview {
  display: none !important;
}
.compactHelpBtn {
  margin-top: 8px !important;
  min-height: 42px !important;
  font-size: 13px !important;
}
.ratingHelpPageImg {
  width: 100% !important;
  max-width: 720px !important;
  display: block !important;
  margin: 12px auto 0 !important;
  border-radius: 22px !important;
  box-shadow: 0 16px 34px rgba(0,0,0,.3) !important;
}

/* support now behaves as small sub-panel under character selection */
.bossSupportGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 7px !important;
  margin-top: 8px !important;
}
.bossSupportCard {
  min-height: 112px !important;
  padding: 6px !important;
  border-radius: 15px !important;
}
.bossFrameBox {
  height: 54px !important;
  margin-bottom: 1px !important;
}
.bossSupportBoss {
  width: 40px !important;
  height: 40px !important;
}
.bossSupportName {
  font-size: 10px !important;
  line-height: 1.1 !important;
}
.bossSupportDesc {
  font-size: 8.5px !important;
  line-height: 1.15 !important;
  min-height: 0 !important;
  max-height: 22px !important;
  overflow: hidden !important;
}
.bossSupportIcons {
  gap: 3px !important;
  margin-top: 3px !important;
}
.bossSupportIcons img {
  width: 18px !important;
  height: 18px !important;
}
.supportBadge {
  top: 4px !important;
  right: 4px !important;
  font-size: 8px !important;
  padding: 1px 5px !important;
}
#bossSupportText {
  font-size: 12px !important;
  line-height: 1.35 !important;
}
@media(max-width:520px) {
  .titleImageBtns {
    gap: 7px !important;
    padding: 8px !important;
  }
  .imageMenuBtn {
    min-height: 64px !important;
  }
  .imageMenuBtn img {
    max-width: 235px !important;
  }
  .textStartBtn {
    min-height: 54px !important;
    font-size: 19px !important;
  }
  .bossSupportGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* v22.3 high score */
.titleHighScoreBtn{
  width:min(360px,92%);
  margin:10px auto 0;
  min-height:46px!important;
  border-radius:999px!important;
  font-weight:1000!important;
}
.resultHighScoreBox{
  margin-top:10px;
  padding:10px;
  border-radius:16px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  font-weight:900;
  color:#ffe277;
}
.resultHighScoreBox .newRecord{
  color:#fff;
  display:inline-block;
  background:linear-gradient(135deg,#ff69b4,#ffd76c);
  border-radius:999px;
  padding:4px 9px;
  margin:2px 4px 4px 0;
  box-shadow:0 4px 14px rgba(255,105,180,.32);
}
.highScoreStats{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  margin-top:10px;
}
.highScoreStat{
  border-radius:18px;
  padding:12px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}
.highScoreStat small{
  display:block;
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:900;
}
.highScoreStat b{
  display:block;
  color:#ffe277;
  font-size:20px;
  margin-top:4px;
}
.highScoreList{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.highScoreStage{
  display:grid;
  grid-template-columns:42px 1fr auto;
  gap:9px;
  align-items:center;
  border-radius:18px;
  padding:10px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.15);
}
.highScoreStage .stageIcon{
  width:42px;height:42px;border-radius:14px;
  display:grid;place-items:center;
  background:rgba(255,255,255,.12);
  font-size:24px;
}
.highScoreStage .stageName{font-weight:1000;color:#fff;font-size:14px;}
.highScoreStage .stageMeta{font-size:11px;color:rgba(255,255,255,.72);line-height:1.35;margin-top:2px;}
.highScoreStage .stageScore{text-align:right;font-weight:1000;color:#ffe277;font-size:14px;}
.highScoreStage .stageRank{font-size:10px;color:#fff;background:rgba(0,0,0,.32);border-radius:999px;padding:2px 7px;display:inline-block;margin-top:4px;}
@media(max-width:420px){.highScoreStats{grid-template-columns:1fr 1fr}.highScoreStat b{font-size:17px}.highScoreStage{grid-template-columns:36px 1fr}.highScoreStage .stageScore{grid-column:2;text-align:left}.highScoreStage .stageIcon{width:36px;height:36px;font-size:21px}}


/* v22.3.1 highscore UI */
.highscoreHeroImg{
  margin: 6px auto 12px;
  text-align:center;
}
.highscoreHeroImg img{
  width:100%;
  max-width:780px;
  border-radius:24px;
  box-shadow:0 16px 42px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.20);
}
.recordGrid,.modeRecordGrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
.recordCard{
  display:grid;
  grid-template-columns:50px 1fr;
  gap:9px;
  align-items:center;
  min-height:74px;
  padding:10px;
  border-radius:18px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.16);
}
.recordCard img{
  width:48px;
  height:48px;
  object-fit:contain;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.28));
}
.recordLabel{
  font-size:11px;
  color:rgba(255,255,255,.74);
  font-weight:900;
}
.recordValue{
  font-size:18px;
  color:#ffe277;
  font-weight:1000;
  line-height:1.1;
}
.stageRecordList{
  display:grid;
  gap:10px;
}
.stageRecordCard{
  display:grid;
  grid-template-columns:58px 1fr;
  gap:10px;
  align-items:center;
  border-radius:18px;
  padding:10px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);
}
.stageRecordCard.perfect{
  border-color:rgba(255,215,108,.78);
  box-shadow:0 0 20px rgba(255,215,108,.22);
}
.stageRecordIcon img{
  width:56px;
  height:56px;
  object-fit:contain;
  filter:drop-shadow(0 4px 7px rgba(0,0,0,.28));
}
.stageRecordName{
  font-size:14px;
  color:#ffe277;
  font-weight:1000;
}
.stageRecordBest{
  font-size:16px;
  color:#fff;
  font-weight:1000;
}
.stageRecordRank{
  font-size:12px;
  color:#dfffe9;
  font-weight:900;
}
.stageRecordBoss{
  font-size:11px;
  color:rgba(255,255,255,.72);
}
.newRecordBox{
  display:none;
  text-align:center;
  margin:10px 0;
}
.newRecordBox.show{
  display:block;
  animation:newRecordPop .85s ease both;
}
.newRecordBox img{
  width:100%;
  max-width:560px;
  border-radius:20px;
  box-shadow:0 12px 32px rgba(0,0,0,.36);
}
#newRecordText{
  margin-top:6px;
  font-size:16px;
  font-weight:1000;
  color:#ffe277;
}
@keyframes newRecordPop{
  0%{opacity:0;transform:scale(.88) translateY(8px)}
  40%{opacity:1;transform:scale(1.04) translateY(0)}
  100%{opacity:1;transform:scale(1)}
}
.resultHighScoreBox .newRecord{
  display:none;
}
.titleHighScoreBtn{
  min-height:54px!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff1a6,#f4ad37)!important;
  color:#5a2d03!important;
  font-weight:1000!important;
  box-shadow:0 8px 20px rgba(0,0,0,.25)!important;
}
@media(max-width:520px){
  .recordGrid,.modeRecordGrid{grid-template-columns:1fr}
  .recordCard{min-height:66px}
  .recordValue{font-size:16px}
}

/* v22.4 login bonus / present box / player rank */
.playerRankMini,.playerRankPanel,.playerExpResult{
  border-radius:18px;
  padding:10px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.16);
  margin-top:8px;
}
.playerRankMini{max-width:420px;margin:8px auto 0}
.rankTitle{color:#ffe277;font-size:13px;font-weight:1000}
.rankExpText{color:rgba(255,255,255,.76);font-size:11px;font-weight:800}
.rankBar{height:8px;border-radius:99px;background:rgba(0,0,0,.28);overflow:hidden;margin-top:6px}
.rankBar span{display:block;height:100%;width:0%;background:linear-gradient(90deg,#ffe277,#ff8fd4)}

.heroBannerWrap{margin:4px auto 12px}
.heroBannerImage{display:block;width:min(100%,720px);margin:0 auto;height:auto;filter:drop-shadow(0 16px 32px rgba(0,0,0,.28))}
.loginStatusRow{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin:0 0 12px}
.loginStatPill{padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);color:#fff;font-weight:900;font-size:13px;box-shadow:0 10px 24px rgba(0,0,0,.18)}
.todayRewardCard{
  display:grid;
  grid-template-columns:minmax(124px,160px) 1fr;
  gap:14px;
  align-items:center;
  border-radius:24px;
  padding:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.20);
  box-shadow:0 16px 32px rgba(0,0,0,.20);
}
.todayRewardCard.special{border-color:rgba(255,215,108,.9);box-shadow:0 0 24px rgba(255,215,108,.24), 0 18px 36px rgba(0,0,0,.20)}
.todayFrameWrap,.dailyFrameWrap{position:relative}
.todayFrame{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.22))}
.todayRewardIcon{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:42%;height:auto;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.28))}
.todayRewardMeta{display:flex;flex-direction:column;gap:6px}
.todayRewardTitle{color:#ffe277;font-size:15px;font-weight:1000;letter-spacing:.03em}
.todayRewardLabel{color:#fff;font-size:21px;font-weight:1000;line-height:1.25}
.todayRewardDesc{color:rgba(255,255,255,.82);font-size:12px;font-weight:800}
.todayRewardState{font-size:12px;color:rgba(255,255,255,.82);font-weight:900;margin-top:4px}
.dailyRewardGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dailyRewardCard{
  min-height:194px;
  border-radius:20px;
  padding:8px 8px 10px;
  text-align:center;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}
.dailyRewardCard.today{border-color:#ffe277;box-shadow:0 0 18px rgba(255,215,108,.28), 0 10px 24px rgba(0,0,0,.16)}
.dailyRewardCard.claimed{opacity:.72;filter:grayscale(.18)}
.dailyRewardCard.special{background:linear-gradient(180deg, rgba(255,225,120,.20), rgba(255,130,80,.10))}
.dailyFrame{display:block;width:100%;height:auto}
.dailyRewardIcon{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:36%;height:auto;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.24))}
.dailyRewardChip{margin-top:6px;font-size:12px;font-weight:1000;color:#ffe277}
.dailyRewardLabel{font-size:11px;color:rgba(255,255,255,.82);line-height:1.35;font-weight:800;margin-top:3px}
.dailyRewardStateBadge{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:1000;background:rgba(255,255,255,.12);color:#fff}
.dailyRewardCard.today .dailyRewardStateBadge{background:rgba(255,226,119,.24);color:#ffe277}
.presentList{display:grid;gap:12px}
.presentCard{
  display:grid;
  grid-template-columns:74px 1fr auto;
  gap:12px;
  align-items:center;
  padding:12px;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 12px 26px rgba(0,0,0,.18);
}
.presentIcon{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.22))}
.presentTitle{color:#ffe277;font-size:15px;font-weight:1000}
.presentDesc{color:rgba(255,255,255,.74);font-size:11px;line-height:1.4}
.presentReward{color:#fff;font-size:13px;font-weight:900;margin-top:4px}
.presentDate{color:rgba(255,255,255,.54);font-size:10px;margin-top:4px}
.emptyPresent{padding:18px;text-align:center;border-radius:20px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.72)}
.rewardGetOverlay,.rankUpOverlay{
  position:fixed;
  inset:0;
  z-index:2100;
  display:none;
  place-items:center;
  background:rgba(15,7,30,.72);
  padding:16px;
}
.rewardGetOverlay.show,.rankUpOverlay.show{display:grid;animation:rewardFade 1.15s ease forwards}
.rewardGetCard,.rankUpCard{
  width:min(680px,94vw);
  text-align:center;
  border-radius:30px;
  padding:16px 18px 20px;
  background:linear-gradient(180deg, rgba(255,226,119,.22), rgba(255,110,180,.14));
  border:2px solid rgba(255,215,108,.75);
  box-shadow:0 28px 88px rgba(0,0,0,.5);
}
.overlayBanner{display:block;width:min(100%,620px);margin:0 auto 10px;height:auto;filter:drop-shadow(0 12px 24px rgba(0,0,0,.22))}
.rewardGetIcon{width:116px;height:116px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.26))}
.rewardGetTitle,.rankUpTitle{font-size:28px;color:#ffe277;font-weight:1000}
.rewardGetDesc,.rankUpDesc{font-size:14px;color:#fff;font-weight:900;margin-top:6px;line-height:1.5}
.rankUpLevel{font-size:22px;color:#fff;font-weight:1000}
.rankUpSub{font-size:13px;color:rgba(255,255,255,.84);font-weight:900;margin-top:8px}
@keyframes rewardFade{
  0%{opacity:0;transform:scale(.90)}
  18%{opacity:1;transform:scale(1.04)}
  78%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.04)}
}
@media(max-width:700px){
  .dailyRewardGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:520px){
  .todayRewardCard{grid-template-columns:1fr;justify-items:center;text-align:center}
  .todayFrameWrap{width:min(54vw,220px)}
  .todayRewardMeta{align-items:center}
  .dailyRewardGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .presentCard{grid-template-columns:60px 1fr;gap:8px}
  .presentCard .mini{grid-column:1 / -1}
  .presentIcon{width:58px;height:58px}
  .loginStatusRow{gap:8px}
  .loginStatPill{font-size:12px;padding:8px 12px}
}


/* v22.5 item drop result UI */
.resultDropBox{
  display:none;
  margin-top:12px;
  padding:12px;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 12px 26px rgba(0,0,0,.18);
}
.resultDropBox.show{display:block;animation:dropBoxPop .35s ease both}
.dropTitle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:#ffe277;
  font-size:15px;
  font-weight:1000;
  margin-bottom:8px;
}
.dropSub{
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:800;
}
.dropGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.dropCard{
  position:relative;
  display:grid;
  grid-template-columns:54px 1fr;
  gap:8px;
  align-items:center;
  min-height:68px;
  padding:8px;
  border-radius:16px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.16);
  overflow:hidden;
}
.dropCard.rare{
  border-color:rgba(130,210,255,.65);
  box-shadow:0 0 18px rgba(130,210,255,.18);
}
.dropCard.sr{
  border-color:rgba(255,215,108,.85);
  box-shadow:0 0 22px rgba(255,215,108,.24);
}
.dropCard img{
  width:52px;
  height:52px;
  object-fit:contain;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.25));
}
.dropName{
  color:#fff;
  font-size:13px;
  font-weight:1000;
  line-height:1.25;
}
.dropAmount{
  color:#ffe277;
  font-size:15px;
  font-weight:1000;
}
.dropRarity{
  display:inline-block;
  margin-top:3px;
  padding:2px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:1000;
  background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.85);
}
.dropCard.rare .dropRarity{color:#9ee6ff;background:rgba(130,210,255,.16)}
.dropCard.sr .dropRarity{color:#ffe277;background:rgba(255,215,108,.18)}
.dropEmpty{
  padding:10px;
  border-radius:16px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.72);
  font-weight:800;
  text-align:center;
  font-size:12px;
}
@keyframes dropBoxPop{
  from{opacity:0;transform:translateY(8px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:520px){
  .dropGrid{grid-template-columns:1fr}
}

/* v22.6 difficulty / boss attack / notification */
.difficultyGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.difficultyBtn{
  position:relative;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fff;
  border-radius:18px;
  padding:10px;
  text-align:left;
  font-weight:900;
  box-shadow:0 8px 20px rgba(0,0,0,.16);
}
.difficultyBtn.active{
  border-color:#ffe277;
  box-shadow:0 0 18px rgba(255,226,119,.25), 0 8px 20px rgba(0,0,0,.16);
  background:linear-gradient(180deg,rgba(255,226,119,.18),rgba(255,255,255,.08));
}
.diffName{font-size:15px;color:#ffe277;font-weight:1000}
.diffMeta{font-size:12px;color:#fff;margin-top:2px}
.diffDesc{font-size:10px;color:rgba(255,255,255,.70);margin-top:4px;line-height:1.35}
.bossAttackCounter{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:6px 0 5px;
  padding:6px 10px;
  min-width:118px;
  border-radius:999px;
  background:rgba(255,226,119,.16);
  color:#ffe277;
  border:1px solid rgba(255,226,119,.38);
  font-size:12px;
  font-weight:1000;
  box-shadow:0 8px 18px rgba(0,0,0,.14);
}
.bossAttackCounter.danger{
  background:rgba(255,80,80,.18);
  color:#ffb0b0;
  border-color:rgba(255,80,80,.55);
  animation:counterPulse .8s infinite;
}
.bossAttackCounter.attack{
  background:rgba(255,40,40,.24);
  color:#fff;
  border-color:rgba(255,80,80,.78);
}
@keyframes counterPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.045)}
}
.damageFlash{
  position:fixed;
  inset:0;
  pointer-events:none;
  background:rgba(255,40,40,0);
  z-index:2200;
}
.damageFlash.show{animation:damageFlashAnim .45s ease}
@keyframes damageFlashAnim{
  0%{background:rgba(255,40,40,0)}
  25%{background:rgba(255,40,40,.38)}
  100%{background:rgba(255,40,40,0)}
}
.damagePopup{
  position:fixed;
  left:50%;
  top:34%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  z-index:2250;
  font-size:34px;
  font-weight:1000;
  color:#ff6464;
  text-shadow:0 4px 0 #4a0000,0 0 18px rgba(255,0,0,.55);
  opacity:0;
}
.damagePopup.show{animation:damagePopupAnim .78s ease}
@keyframes damagePopupAnim{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}
  20%{opacity:1;transform:translate(-50%,-50%) scale(1.14)}
  100%{opacity:0;transform:translate(-50%,-78%) scale(1)}
}
.hpDamageShake{animation:hpDamageShake .42s ease}
@keyframes hpDamageShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-8px)}
  40%{transform:translateX(7px)}
  60%{transform:translateX(-5px)}
  80%{transform:translateX(4px)}
}
.notifyBadge{
  position:absolute;
  right:-5px;
  top:-6px;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:11px;
  font-weight:1000;
  color:#fff;
  background:#ff3358;
  border:2px solid #fff;
  box-shadow:0 4px 12px rgba(0,0,0,.28);
  z-index:5;
}
.btn,.imageMenuBtn,.imageStartBtn,.mini,.cta{position:relative}
.missionClaimAllBtn{margin:10px 0 12px}
.endlessResultBadge{
  display:inline-block;
  margin:8px auto 6px;
  padding:8px 16px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,126,70,.22),rgba(255,226,119,.20));
  border:1px solid rgba(255,226,119,.48);
  color:#ffe277;
  font-weight:1000;
}
.dropCard img,.itemIconImg{
  background:rgba(255,255,255,.08);
  border-radius:14px;
}
@media(max-width:520px){
  .difficultyGrid{grid-template-columns:1fr}
  .bossAttackCounter{font-size:11px;min-width:96px;padding:5px 8px}
  .damagePopup{font-size:28px}
}


/* v22.6.1 skill ready UX */
.skillBig{
  position:relative;
  overflow:visible;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
  isolation:isolate;
}
.skillBig.skill-near{
  box-shadow:
    0 6px 0 rgba(89,57,0,.32),
    0 0 10px rgba(255,226,119,.35),
    0 0 22px rgba(255,226,119,.18);
  filter:brightness(1.08);
}
.skillBig.skill-ready{
  animation:skillReadyPulse 1.25s ease-in-out infinite;
  box-shadow:
    0 6px 0 rgba(89,57,0,.32),
    0 0 14px rgba(255,226,119,.85),
    0 0 32px rgba(255,178,80,.55),
    0 0 52px rgba(255,130,220,.28);
  filter:brightness(1.2) saturate(1.18);
}
.skillBig.skill-using{
  transform:scale(.96);
  filter:brightness(.95);
}
.skillBig.skill-ready-burst{
  animation:skillReadyBurst .48s ease both;
}
.skillReadyLabel{
  position:absolute;
  left:50%;
  top:-18px;
  transform:translateX(-50%) scale(.85);
  padding:3px 9px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff7b8,#ffb83d);
  color:#4b2700;
  font-size:11px;
  font-weight:1000;
  letter-spacing:.04em;
  border:2px solid #fff;
  box-shadow:0 4px 12px rgba(0,0,0,.25),0 0 18px rgba(255,226,119,.7);
  opacity:0;
  pointer-events:none;
  z-index:4;
  white-space:nowrap;
}
.skillBig.skill-ready .skillReadyLabel{
  opacity:1;
  animation:skillReadyLabelPop 1.25s ease-in-out infinite;
}
.skillSparkle{
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#fff6a8;
  box-shadow:
    0 0 8px rgba(255,246,168,.95),
    0 0 14px rgba(255,200,70,.65);
  opacity:0;
  pointer-events:none;
  z-index:3;
}
.skillSparkle:after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:16px;
  height:2px;
  transform:translate(-50%,-50%);
  background:rgba(255,255,210,.8);
  border-radius:99px;
}
.skillSparkle.s1{left:10%;top:18%}
.skillSparkle.s2{right:12%;top:22%}
.skillSparkle.s3{left:48%;bottom:12%}
.skillBig.skill-near .skillSparkle.s1{
  animation:skillSparkleFloat 1.7s ease-in-out infinite;
}
.skillBig.skill-ready .skillSparkle.s1{
  animation:skillSparkleFloat 1.4s ease-in-out infinite;
}
.skillBig.skill-ready .skillSparkle.s2{
  animation:skillSparkleFloat 1.7s ease-in-out infinite .25s;
}
.skillBig.skill-ready .skillSparkle.s3{
  animation:skillSparkleFloat 1.6s ease-in-out infinite .45s;
}
@keyframes skillReadyPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.045)}
}
@keyframes skillReadyLabelPop{
  0%,100%{transform:translateX(-50%) scale(.94)}
  50%{transform:translateX(-50%) scale(1.08)}
}
@keyframes skillSparkleFloat{
  0%{opacity:0;transform:translateY(6px) scale(.5) rotate(0deg)}
  35%{opacity:1;transform:translateY(0) scale(1) rotate(35deg)}
  100%{opacity:0;transform:translateY(-15px) scale(.5) rotate(70deg)}
}
@keyframes skillReadyBurst{
  0%{transform:scale(1);box-shadow:0 6px 0 rgba(89,57,0,.32),0 0 0 rgba(255,226,119,0)}
  45%{
    transform:scale(1.12);
    box-shadow:
      0 6px 0 rgba(89,57,0,.32),
      0 0 22px rgba(255,255,180,.95),
      0 0 52px rgba(255,226,119,.85),
      0 0 80px rgba(255,120,220,.42);
  }
  100%{transform:scale(1)}
}


/* v22.6.2 item icon update */
.dropCard img,
.itemIconImg,
.presentIcon{
  object-fit:contain;
  padding:4px;
  background:rgba(255,255,255,.08);
  border-radius:14px;
  box-sizing:border-box;
}
.dropCard img{
  width:60px;
  height:60px;
}
.itemIconImg{
  width:66px;
  height:66px;
}


/* v22.7 battle no-scroll */
body.battle-active{
  overflow:hidden;
  height:100dvh;
  overscroll-behavior:none;
}
body.battle-active #gameScreen{
  height:100dvh;
  overflow:hidden;
}
body.battle-active #gameScreen .pad{
  height:100dvh;
  overflow:hidden;
  display:grid;
  grid-template-rows:auto auto auto 1fr auto;
  gap:6px;
  padding:6px 10px calc(8px + env(safe-area-inset-bottom));
  box-sizing:border-box;
}
body.battle-active #gameScreen .topbar{
  min-height:0;
  padding:7px 10px;
  margin:0;
}
body.battle-active .bossArea{
  margin:2px 0 4px;
  padding:8px;
  min-height:0;
  gap:8px;
}
body.battle-active .bossPortraitWrap{
  width:68px;
  height:68px;
  border-radius:16px;
}
body.battle-active .bossName{
  font-size:14px;
  margin-bottom:2px;
}
body.battle-active .bossAttackCounter{
  margin:3px 0;
  padding:4px 8px;
  font-size:11px;
}
body.battle-active .helper{
  line-height:1.18;
}
body.battle-active .hud{
  gap:6px;
  margin:4px 0;
}
body.battle-active .stat{
  padding:7px 4px;
  border-radius:16px;
}
body.battle-active .stat small{
  font-size:10px;
}
body.battle-active .stat span{
  font-size:20px;
}
body.battle-active .bars{
  gap:4px;
  margin:4px 0;
}
body.battle-active .bar{
  height:12px;
}
body.battle-active .board{
  width:min(92vw,46dvh,430px);
  height:min(92vw,46dvh,430px);
  margin:4px auto;
  gap:5px;
  padding:8px;
  align-self:center;
  box-sizing:border-box;
}
body.battle-active .tile img{
  width:100%;
  height:100%;
  object-fit:cover;
}
body.battle-active .battleBottom{
  position:static;
  margin-top:4px;
  padding:8px;
  border-radius:18px;
  gap:8px;
}
body.battle-active .skillBig,
body.battle-active .shuffleBig{
  padding:10px 8px;
  min-height:46px;
}
body.battle-active .gaugeText{
  font-size:11px;
  line-height:1.2;
}
@media(max-height:760px){
  body.battle-active #gameScreen .pad{gap:4px;padding-top:5px}
  body.battle-active .bossPortraitWrap{width:56px;height:56px}
  body.battle-active .bossArea{padding:6px}
  body.battle-active .board{
    width:min(92vw,42dvh,390px);
    height:min(92vw,42dvh,390px);
    padding:6px;
    gap:4px;
  }
  body.battle-active .skillBig,
  body.battle-active .shuffleBig{min-height:42px;padding:9px 6px}
  body.battle-active .stat{padding:5px 3px}
  body.battle-active .stat span{font-size:18px}
}

/* v22.7 item drop deluxe fx */
.dropFxBox{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  padding:12px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04)),
    radial-gradient(circle at 50% 0%,rgba(255,226,119,.18),transparent 55%);
  border:1px solid rgba(255,226,119,.28);
  box-shadow:0 16px 38px rgba(0,0,0,.24);
}
.dropFxBox:before{
  content:"";
  position:absolute;
  inset:-20%;
  background:url("assets/drops/drop_fx_sparkle.webp") center/cover no-repeat;
  opacity:.18;
  pointer-events:none;
}
.dropFxBanner{
  position:relative;
  z-index:1;
  display:block;
  width:min(100%,680px);
  margin:0 auto 8px;
  border-radius:16px;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.24));
}
.dropFxChestWrap{
  position:relative;
  z-index:1;
  height:118px;
  margin:0 auto 8px;
  overflow:hidden;
  border-radius:20px;
}
.dropFxChest{
  width:100%;
  height:100%;
  object-fit:cover;
  animation:dropChestPop .7s ease both;
}
.dropFxPanel{
  position:relative;
  z-index:1;
  border-radius:20px;
  padding:10px;
  background:rgba(15,12,40,.42);
  border:1px solid rgba(255,255,255,.16);
}
.dropFxTitle{
  text-align:center;
  font-size:18px;
  font-weight:1000;
  color:#ffe277;
  letter-spacing:.08em;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
  margin-bottom:8px;
}
.dropFxGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.dropFxCard{
  position:relative;
  min-height:134px;
  border-radius:18px;
  display:grid;
  place-items:center;
  padding:6px;
  animation:dropCardPop .42s ease both;
}
.dropFrame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  z-index:0;
  pointer-events:none;
}
.dropItemIcon{
  position:relative;
  z-index:1;
  width:62px;
  height:62px;
  object-fit:contain;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.24));
}
.dropItemName{
  position:relative;
  z-index:1;
  font-size:11px;
  font-weight:1000;
  color:#fff;
  text-align:center;
  line-height:1.2;
  text-shadow:0 2px 4px rgba(0,0,0,.4);
}
.dropItemAmount{
  position:relative;
  z-index:1;
  font-size:15px;
  font-weight:1000;
  color:#ffe277;
}
.dropItemRarity{
  position:relative;
  z-index:1;
  font-size:9px;
  font-weight:1000;
  padding:2px 7px;
  border-radius:999px;
  color:#fff;
  background:rgba(0,0,0,.28);
}
.dropFxCard.rarity-r{filter:drop-shadow(0 0 12px rgba(120,210,255,.35))}
.dropFxCard.rarity-sr{filter:drop-shadow(0 0 16px rgba(210,130,255,.42))}
.dropFxCard.rarity-ur{filter:drop-shadow(0 0 20px rgba(255,226,119,.55))}
.dropFxFooter{
  text-align:center;
  margin-top:8px;
  color:rgba(255,255,255,.76);
  font-size:11px;
  font-weight:900;
}
@keyframes dropChestPop{
  0%{opacity:0;transform:scale(.94);filter:brightness(.7)}
  45%{opacity:1;transform:scale(1.05);filter:brightness(1.35)}
  100%{opacity:1;transform:scale(1);filter:brightness(1)}
}
@keyframes dropCardPop{
  0%{opacity:0;transform:translateY(10px) scale(.82)}
  70%{opacity:1;transform:translateY(-2px) scale(1.04)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:520px){
  .dropFxChestWrap{height:96px}
  .dropFxGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dropFxCard{min-height:118px}
  .dropItemIcon{width:54px;height:54px}
  .dropItemName{font-size:10px}
}


/* v22.7.1 title compact + gacha fx */
body.title-active{
  overflow:hidden;
  height:100dvh;
  overscroll-behavior:none;
}
body.title-active #titleScreen{
  height:100dvh;
  overflow:hidden;
}
body.title-active #titleScreen .titlePad{
  height:100dvh;
  overflow:hidden;
  display:grid;
  grid-template-rows:minmax(0,34dvh) auto minmax(0,1fr) auto;
  gap:8px;
  padding:8px 12px calc(8px + env(safe-area-inset-bottom));
  box-sizing:border-box;
}
body.title-active .titleBox{
  height:100%;
  min-height:0;
  margin:0;
  border-radius:24px;
}
body.title-active .titleBox img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
body.title-active .textStartBtn{
  margin:0 auto;
  min-height:54px;
}
body.title-active .titleImageBtns{
  margin:0;
  gap:7px;
  padding:8px;
  min-height:0;
  align-self:start;
}
body.title-active .imageMenuBtn img{
  max-height:86px;
  object-fit:contain;
}
.titleSubBtns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin:0;
}
body.title-active .playerRankMini{
  display:none;
}
@media(max-height:760px){
  body.title-active #titleScreen .titlePad{
    grid-template-rows:minmax(0,28dvh) auto minmax(0,1fr) auto;
    gap:6px;
    padding-top:6px;
  }
  body.title-active .textStartBtn{min-height:48px}
  body.title-active .titleImageBtns{gap:5px;padding:6px}
  body.title-active .imageMenuBtn img{max-height:72px}
}

/* gacha screen deluxe */
.gachaStage{
  position:relative;
  width:min(86vw,420px);
  height:min(58vw,280px);
  margin:12px auto 12px;
  border-radius:28px;
  overflow:hidden;
  border:1px solid rgba(255,226,119,.26);
  box-shadow:0 18px 42px rgba(0,0,0,.24),0 0 28px rgba(160,100,255,.18);
  display:grid;
  place-items:center;
}
.gachaBgImg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.82;
}
.gachaCircleImg{
  position:absolute;
  width:72%;
  height:auto;
  opacity:.65;
  mix-blend-mode:screen;
  animation:gachaCircleSpin 12s linear infinite;
  filter:drop-shadow(0 0 18px rgba(255,226,119,.35));
}
.gachaStage .gachaOrb{
  position:relative;
  z-index:2;
  width:120px;
  height:120px;
  margin:0;
}
.gachaFxOverlay{
  position:fixed;
  inset:0;
  z-index:2600;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(5,4,20,.74);
  backdrop-filter:blur(4px);
  pointer-events:auto;
}
.gachaFxOverlay.show{display:flex}
.gachaFxCard{
  width:min(86vw,430px);
  aspect-ratio:1/1;
  border-radius:36px;
  position:relative;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,226,119,.65);
  box-shadow:0 0 30px rgba(255,226,119,.45),0 0 80px rgba(150,80,255,.45);
  overflow:hidden;
  background:#15112f;
}
.gachaFxBg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.72;
  filter:saturate(1.1) brightness(.95);
}
.gachaFxCircle{
  position:absolute;
  width:82%;
  height:auto;
  opacity:.85;
  mix-blend-mode:screen;
  animation:gachaCircleSpin 2.4s linear infinite;
  filter:drop-shadow(0 0 24px rgba(255,226,119,.55));
}
.gachaFxOrb{
  position:absolute;
  width:44%;
  height:44%;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff,#ff9df8 22%,#8edcff 55%,#ffe277);
  box-shadow:0 0 30px rgba(255,255,255,.75),0 0 70px rgba(255,130,255,.55);
  animation:gachaOrbPulse .9s ease-in-out infinite;
}
.gachaFxCardBack{
  position:absolute;
  width:42%;
  height:auto;
  border-radius:18px;
  opacity:0;
  transform:translateY(30px) scale(.78) rotateY(90deg);
  filter:drop-shadow(0 14px 20px rgba(0,0,0,.32));
}
.gachaFxText{
  position:absolute;
  bottom:24px;
  color:#ffe277;
  font-size:18px;
  font-weight:1000;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.gachaFxRareText{
  position:absolute;
  top:24px;
  left:50%;
  transform:translateX(-50%) scale(.88);
  opacity:0;
  color:#fff7c3;
  font-size:25px;
  font-weight:1000;
  white-space:nowrap;
  text-shadow:0 4px 12px rgba(0,0,0,.5),0 0 20px rgba(255,226,119,.7);
}
.gachaFxOverlay.phase-open .gachaFxOrb{
  animation:gachaOrbOpen .45s ease both;
}
.gachaFxOverlay.phase-open .gachaFxCardBack{
  animation:gachaCardBackIn .48s ease both;
}
.gachaFxOverlay.phase-reveal .gachaFxCard{
  animation:gachaRevealFlash .38s ease both;
}
.gachaFxOverlay.phase-reveal .gachaFxRareText{
  opacity:1;
  animation:gachaRarePop .38s ease both;
}
@keyframes gachaCircleSpin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes gachaOrbPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.08);filter:brightness(1.25)}}
@keyframes gachaOrbOpen{0%{transform:scale(1)}100%{transform:scale(1.7);filter:brightness(1.9)}}
@keyframes gachaCardBackIn{0%{opacity:0;transform:translateY(28px) scale(.78) rotateY(90deg)}100%{opacity:1;transform:translateY(0) scale(1) rotateY(0)}}
@keyframes gachaRevealFlash{0%{filter:brightness(1)}50%{filter:brightness(2.2)}100%{filter:brightness(1)}}
@keyframes gachaRarePop{0%{transform:translateX(-50%) scale(.65);opacity:0}100%{transform:translateX(-50%) scale(1);opacity:1}}
.gachaResultCard{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  padding:14px;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.05));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 18px 42px rgba(0,0,0,.24);
  text-align:center;
}
.gachaResultCard.new{
  border-color:rgba(255,226,119,.8);
  box-shadow:0 0 24px rgba(255,226,119,.38),0 18px 42px rgba(0,0,0,.24);
}
.gachaResultBanner{
  display:block;
  width:100%;
  max-height:112px;
  object-fit:contain;
  margin:0 auto 8px;
}
.gachaResultChara{
  width:150px;
  height:150px;
  object-fit:cover;
  border-radius:24px;
  margin:8px auto;
  display:block;
  background:rgba(255,255,255,.1);
}
.gachaResultBadge{
  font-size:28px;
  font-weight:1000;
  color:#ffe277;
  letter-spacing:.08em;
  text-shadow:0 3px 0 rgba(80,30,0,.6);
}


/* v22.8 stage map */
#stageMapScreen{
  height:100dvh;
  overflow:hidden;
}
.stageMapPage{
  height:100dvh;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:8px;
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));
  box-sizing:border-box;
}
.mapTopbar{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:8px;
  align-items:center;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.10);
}
.mapTopbar b{
  text-align:center;
  color:#fff;
}
.stageMapWrap{
  position:relative;
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.18);
  box-shadow:0 18px 42px rgba(0,0,0,.24);
}
.stageMapBg{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.mapNodes{
  position:absolute;
  inset:0;
}
.mapNode{
  position:absolute;
  width:62px;
  height:62px;
  transform:translate(-50%,-50%);
  border:0;
  background:transparent;
  padding:0;
  touch-action:manipulation;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.28));
}
.mapNode img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.mapNode.selected{
  animation:mapNodePulse 1.3s ease-in-out infinite;
}
.mapNode.locked{
  filter:grayscale(.2) brightness(.78) drop-shadow(0 6px 8px rgba(0,0,0,.32));
}
.mapNodeStars{
  position:absolute;
  left:50%;
  bottom:-4px;
  transform:translateX(-50%);
  color:#ffe277;
  font-size:12px;
  letter-spacing:-1px;
  text-shadow:0 2px 5px rgba(0,0,0,.8);
  pointer-events:none;
}
.mapMarker{
  position:absolute;
  width:72px;
  height:72px;
  object-fit:contain;
  transform:translate(-50%,-92%);
  pointer-events:none;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.30));
  animation:mapMarkerFloat 1.8s ease-in-out infinite;
}
.mapFooter{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
@keyframes mapNodePulse{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.08)}
}
@keyframes mapMarkerFloat{
  0%,100%{transform:translate(-50%,-92%) translateY(0)}
  50%{transform:translate(-50%,-92%) translateY(-5px)}
}
.stageInfoOverlay{
  position:fixed;
  inset:0;
  z-index:2700;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(3px);
}
.stageInfoOverlay.show{
  display:flex;
}
.stageInfoCard{
  position:relative;
  width:min(92vw,430px);
  border-radius:28px;
  overflow:hidden;
  filter:drop-shadow(0 18px 32px rgba(0,0,0,.35));
}
.stageInfoFrame{
  display:block;
  width:100%;
  height:auto;
}
.stageInfoContent{
  position:absolute;
  inset:12% 11% 10%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  text-align:center;
  color:#352403;
}
.stageInfoContent h2{
  margin:0;
  color:#5d3800;
  font-size:21px;
  line-height:1.18;
}
.stageInfoContent p{
  margin:0;
  font-size:13px;
  font-weight:900;
}
.stageInfoStars{
  font-size:22px;
  color:#e9a800;
  text-shadow:0 2px 4px rgba(0,0,0,.18);
}
.stageInfoContent .cta{
  margin-top:4px;
}
.stageInfoContent .btn{
  color:#3a2700;
  background:rgba(255,255,255,.72);
}
.mapOpenBannerOverlay{
  position:fixed;
  inset:0;
  z-index:2750;
  display:none;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  background:rgba(0,0,0,.20);
}
.mapOpenBannerOverlay.show{
  display:flex;
}
.mapOpenBannerOverlay img{
  width:min(88vw,520px);
  height:auto;
  filter:drop-shadow(0 14px 24px rgba(0,0,0,.35));
  animation:mapOpenBannerPop 1.4s ease both;
}
@keyframes mapOpenBannerPop{
  0%{opacity:0;transform:scale(.78) translateY(16px)}
  18%{opacity:1;transform:scale(1.05) translateY(0)}
  80%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(.94)}
}
@media(max-width:430px){
  .mapNode{width:56px;height:56px}
  .mapMarker{width:66px;height:66px}
  .stageInfoContent h2{font-size:19px}
  .stageInfoContent p{font-size:12px}
}
@media(max-height:760px){
  .stageMapPage{gap:6px;padding-top:6px}
  .mapTopbar{padding:6px 8px}
  .mapNode{width:52px;height:52px}
  .mapMarker{width:60px;height:60px}
}

/* v22.8.1 title map visible hotfix */
.titleSubBtns{
  grid-template-columns:repeat(3,1fr);
}
body.title-active .titleSubBtns .btn{
  padding:9px 7px;
  font-size:13px;
}

body.map-active{
  overflow:hidden;
  height:100dvh;
  overscroll-behavior:none;
}


/* v22.9 map driven UI */
body.home-active{
  min-height:100dvh;
}
body.title-active .titleImageBtns,
body.title-active .titleSubBtns,
body.title-active .playerRankMini{
  display:none !important;
}
body.title-active #titleScreen .titlePad{
  grid-template-rows:minmax(0,1fr) auto;
}
.homePad{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.homeTopbar{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.10);
}
.homeTopbar b{
  text-align:center;
}
.homeCurrency{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.homeMain{
  display:grid;
  grid-template-columns:1.25fr 1fr;
  gap:10px;
}
.homeMain .cta,
.homeMain .btn{
  min-height:58px;
}
.homeGrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
.homeGrid .btn{
  min-height:50px;
}
#stageMapScreen .mapFooter{
  display:none !important;
}
.sortiePad{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.sortiePad > .currency,
.sortiePad > .playerRankPanel,
.sortiePad > .nav,
.sortiePad .modeSection,
.sortiePad .stageSelectSection{
  display:none !important;
}
.prepStageSummary{
  border-radius:18px;
  padding:12px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
}
.prepStageName{
  font-size:18px;
  font-weight:1000;
  color:#ffe277;
  line-height:1.2;
}
.prepStageMeta{
  font-size:12px;
  opacity:.88;
  line-height:1.35;
}
.sortiePad .section{
  margin:0;
}
.sortiePad .section h3{
  margin-bottom:7px;
}
.sortiePad .difficultyGrid{
  gap:8px;
}
.sortiePad .difficultyBtn{
  padding:10px;
  min-height:auto;
}
.sortiePad .bossSupportGrid{
  max-height:260px;
  overflow:auto;
}
@media(max-height:760px){
  .homePad{gap:8px}
  .homeGrid{gap:7px}
  .homeGrid .btn{min-height:44px;font-size:13px}
  .homeMain .cta,.homeMain .btn{min-height:50px}
  .sortiePad{gap:8px}
  .prepStageSummary{padding:9px}
}


/* v22.9.1 highscore dedicated UI */
.highscoreHeroImg{
  margin:6px auto 12px;
  text-align:center;
}
.highscoreHeroImg img{
  width:100%;
  max-width:760px;
  max-height:190px;
  object-fit:contain;
  border-radius:0;
  box-shadow:none;
  border:0;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.32));
}
.highScoreHero{
  position:relative;
  overflow:hidden;
  border-color:rgba(255,226,119,.22);
  background:
    radial-gradient(circle at 50% 0%,rgba(255,226,119,.10),transparent 52%),
    linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.055));
}
.recordGrid,.modeRecordGrid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
}
.recordCard.deluxe{
  display:grid;
  grid-template-columns:62px 1fr;
  gap:10px;
  align-items:center;
  min-height:78px;
  padding:10px;
  border-radius:20px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.055)),
    radial-gradient(circle at 0% 0%,rgba(255,226,119,.12),transparent 48%);
  border:1px solid rgba(255,226,119,.22);
  box-shadow:0 10px 24px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.08);
}
.recordCard.deluxe .recordIconImg,
.recordCard.deluxe > img{
  width:60px;
  height:60px;
  object-fit:contain;
  background:transparent!important;
  border-radius:0!important;
  filter:drop-shadow(0 7px 9px rgba(0,0,0,.30));
}
.recordLabel{
  font-size:11px;
  color:rgba(255,255,255,.80);
  font-weight:1000;
  letter-spacing:.03em;
}
.recordValue{
  font-size:18px;
  color:#ffe277;
  font-weight:1000;
  line-height:1.08;
  text-shadow:0 2px 7px rgba(0,0,0,.30);
}
.stageRecordList{
  display:grid;
  gap:10px;
}
.stageRecordCard.deluxe{
  position:relative;
  display:grid;
  grid-template-columns:62px 1fr;
  gap:10px;
  align-items:center;
  overflow:hidden;
  border-radius:20px;
  padding:11px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.055)),
    radial-gradient(circle at 100% 0%,rgba(255,226,119,.10),transparent 42%);
  border:1px solid rgba(255,226,119,.24);
  box-shadow:0 10px 24px rgba(0,0,0,.18);
}
.stageRecordCard.deluxe:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(255,226,119,.11),transparent 30%,transparent 70%,rgba(255,143,212,.06));
  opacity:.75;
}
.stageRecordCard.deluxe.perfect{
  border-color:rgba(255,226,119,.70);
  box-shadow:0 0 20px rgba(255,215,108,.25),0 10px 24px rgba(0,0,0,.20);
}
.stageRecordIcon{
  position:relative;
  z-index:1;
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
}
.stageRecordIcon img{
  width:60px;
  height:60px;
  object-fit:contain;
  background:transparent!important;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.30));
}
.stageRecordBody{
  position:relative;
  z-index:1;
  text-align:left;
}
.stageRecordName{
  font-size:14px;
  color:#ffe277;
  font-weight:1000;
  line-height:1.12;
}
.stageRecordBest{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:16px;
  color:#fff;
  font-weight:1000;
  margin-top:2px;
}
.stageRecordRank,.stageRecordBoss{
  display:flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  color:rgba(255,255,255,.80);
  font-weight:900;
  line-height:1.25;
  margin-top:2px;
}
.miniHsBadge{
  width:36px;
  height:17px;
  object-fit:contain;
  flex:0 0 auto;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.28));
}
.miniHsBadge.bossBadge{
  width:34px;
}
.newRecordBox img{
  width:100%;
  max-width:600px;
  max-height:180px;
  object-fit:contain;
  border-radius:0;
  box-shadow:none;
  filter:drop-shadow(0 14px 26px rgba(0,0,0,.35));
}
@media(max-width:520px){
  .recordGrid,.modeRecordGrid{grid-template-columns:1fr}
  .recordCard.deluxe{min-height:70px;grid-template-columns:56px 1fr}
  .recordCard.deluxe .recordIconImg,.recordCard.deluxe > img{width:54px;height:54px}
  .recordValue{font-size:16px}
  .stageRecordCard.deluxe{grid-template-columns:56px 1fr;padding:9px}
  .stageRecordIcon{width:56px;height:56px}
  .stageRecordIcon img{width:54px;height:54px}
}


/* v23.0 isekai guest */
.homeGuestEventBanner{
  position:relative;
  display:block;
  border:1px solid rgba(255,226,119,.22);
  border-radius:22px;
  overflow:hidden;
  background:rgba(0,0,0,.18);
  min-height:96px;
  box-shadow:0 10px 26px rgba(0,0,0,.25);
}
.homeGuestEventBanner img{
  width:100%;
  height:124px;
  object-fit:cover;
  display:block;
  filter:saturate(1.06) brightness(.95);
}
.homeGuestText{
  position:absolute;
  inset:auto 12px 10px 12px;
  padding:8px 10px;
  border-radius:16px;
  background:linear-gradient(90deg,rgba(20,10,34,.80),rgba(90,40,15,.55));
  border:1px solid rgba(255,226,119,.25);
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}
.homeGuestText b{
  display:block;
  color:#ffe277;
  font-size:15px;
}
.homeGuestText span{
  display:block;
  font-size:11px;
  opacity:.88;
}
.mapNode.guest{
  width:86px;
  height:86px;
  filter:drop-shadow(0 0 18px rgba(177,81,255,.46)) drop-shadow(0 10px 12px rgba(0,0,0,.35));
}
.mapNode.guest.selected{
  animation:mapGuestPulse 1.3s ease-in-out infinite;
}
@keyframes mapGuestPulse{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.1)}
}
.stageInfoThumb{
  width:100%;
  max-height:90px;
  object-fit:cover;
  border-radius:14px;
  border:1px solid rgba(255,226,119,.28);
  margin-bottom:4px;
  box-shadow:0 8px 14px rgba(0,0,0,.22);
}
.stageInfoCard.guestStageInfo .stageInfoContent h2{
  color:#ffe277;
  text-shadow:0 2px 8px rgba(0,0,0,.35);
}
body.battle-active #gameScreen{
  background-size:cover;
  background-position:center;
}
body.battle-active #gameScreen:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 12%,rgba(255,180,86,.10),transparent 35%);
}
#gameScreen{
  position:relative;
}
#gameScreen > .pad{
  position:relative;
  z-index:1;
}
.collectionGuestBadge{
  display:inline-block;
  margin-top:2px;
  padding:2px 7px;
  border-radius:999px;
  background:linear-gradient(90deg,#7d39ff,#ff9d3d);
  color:#fff;
  font-size:10px;
  font-weight:1000;
}
@media(max-height:760px){
  .homeGuestEventBanner img{height:96px}
  .mapNode.guest{width:72px;height:72px}
}


/* v23.1 endless online ranking */
.rankingBanner{
  position:relative;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(255,226,119,.28);
  background:rgba(255,255,255,.08);
  margin-bottom:8px;
}
.rankingBanner img{
  width:100%;
  height:112px;
  display:block;
  object-fit:cover;
}
.onlineRankingSection h3{
  color:#ffe277;
  margin:8px 0 10px;
}
.rankingSettings{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:8px;
  align-items:end;
}
.rankNameLabel{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-size:11px;
  font-weight:900;
  color:rgba(255,255,255,.78);
}
.rankNameLabel input{
  width:100%;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.28);
  color:#fff;
  border-radius:14px;
  padding:10px 11px;
  font:inherit;
  font-weight:900;
  outline:none;
}
.smallBtn{
  white-space:nowrap;
  padding:10px 11px;
  font-size:12px;
}
.rankingActions{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  margin-top:10px;
}
.onlineStatus{
  margin-top:9px;
  padding:8px 10px;
  border-radius:14px;
  background:rgba(0,0,0,.18);
}
.onlineStatus.ok{
  color:#b9ffcf;
}
.onlineStatus.warn{
  color:#ffd18f;
}
.endlessRankingList{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
}
.rankingEmpty{
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  color:rgba(255,255,255,.76);
  font-weight:850;
  text-align:center;
}
.rankingRow{
  display:grid;
  grid-template-columns:38px 1fr auto;
  gap:9px;
  align-items:center;
  padding:10px;
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.06));
  border:1px solid rgba(255,255,255,.14);
}
.rankingRow.gold{
  border-color:rgba(255,215,108,.55);
  box-shadow:0 0 18px rgba(255,215,108,.16);
}
.rankingRow.silver{
  border-color:rgba(215,225,255,.40);
}
.rankingRow.bronze{
  border-color:rgba(255,174,112,.42);
}
.rankingRank{
  width:34px;
  height:34px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg,#fff4aa,#ffbd46);
  color:#4a2c00;
  font-weight:1000;
}
.rankingMain b{
  display:block;
  font-size:14px;
}
.rankingMain span{
  display:block;
  font-size:11px;
  color:rgba(255,255,255,.74);
  margin-top:2px;
}
.rankingCombo{
  font-size:11px;
  font-weight:1000;
  color:#ffe277;
  text-align:right;
}
#resultEndlessSubmitBtn{
  display:none;
  border-color:rgba(255,226,119,.35);
  background:linear-gradient(180deg,rgba(255,221,100,.28),rgba(151,75,255,.24));
}
#resultEndlessSubmitBtn.show{
  display:inline-block;
}
@media(max-width:420px){
  .rankingSettings{grid-template-columns:1fr 1fr}
  .rankNameLabel{grid-column:1/-1}
  .rankingActions{grid-template-columns:1fr}
  .rankingRow{grid-template-columns:34px 1fr}
  .rankingCombo{grid-column:2; text-align:left}
}


/* v23.2 sound settings */
.soundSettingsPanel{
  margin-top:10px;
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));
  border:1px solid rgba(255,226,119,.18);
}
.soundSettingsPanel h3{
  margin:0 0 8px;
  color:#ffe277;
}
.soundSettingGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:8px;
}
.soundSliderLabel{
  display:grid;
  grid-template-columns:76px 1fr;
  gap:8px;
  align-items:center;
  font-size:12px;
  font-weight:1000;
  color:rgba(255,255,255,.84);
  margin:8px 0;
}
.soundSliderLabel input[type="range"]{
  width:100%;
  accent-color:#ffd76c;
}
#soundStatusText{
  padding:7px 9px;
  border-radius:12px;
  background:rgba(0,0,0,.16);
}


/* v23.3 profile / titles / expanded missions */
.profileMiniTitle{
  display:inline-block;
  margin-bottom:6px;
  padding:4px 9px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff0a8,#ffc84d);
  color:#4b3000;
  font-size:11px;
  font-weight:1000;
  box-shadow:0 4px 12px rgba(255,203,86,.22);
}
.profileHero{
  text-align:center;
  background:
    radial-gradient(circle at 50% 0%,rgba(255,226,119,.28),transparent 46%),
    linear-gradient(180deg,rgba(255,255,255,.13),rgba(255,255,255,.06));
  border:1px solid rgba(255,226,119,.23);
}
.profileBadge{
  display:inline-block;
  padding:4px 10px;
  border-radius:999px;
  background:#fff0a8;
  color:#4b3000;
  font-weight:1000;
  font-size:12px;
}
.profileName{
  margin-top:8px;
  font-size:24px;
  font-weight:1000;
  color:#fff;
}
.profileTitle{
  display:inline-block;
  margin-top:8px;
  padding:7px 14px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff4b8,#ffbd42);
  color:#553200;
  font-weight:1000;
}
.profileDesc{
  margin-top:8px;
  font-size:12px;
  color:rgba(255,255,255,.78);
}
.profileNameRow{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
}
.profileNameRow input{
  border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.28);
  color:#fff;
  border-radius:14px;
  padding:11px 12px;
  font:inherit;
  font-weight:900;
  outline:none;
}
.profileStatsGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.profileStatsGrid div{
  padding:11px;
  border-radius:16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.profileStatsGrid small{
  display:block;
  color:rgba(255,255,255,.62);
  font-size:10px;
  font-weight:900;
}
.profileStatsGrid b{
  display:block;
  margin-top:4px;
  color:#ffe277;
  font-size:15px;
}
.titleGrid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:10px;
}
.titleCard{
  text-align:left;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.07);
  color:#fff;
  padding:12px;
}
.titleCard.open{
  border-color:rgba(255,226,119,.25);
}
.titleCard.selected{
  background:linear-gradient(180deg,rgba(255,226,119,.22),rgba(255,255,255,.07));
  box-shadow:0 0 18px rgba(255,226,119,.14);
}
.titleCard.locked{
  opacity:.58;
  filter:saturate(.6);
}
.titleCardName{
  font-size:15px;
  font-weight:1000;
}
.titleCardDesc{
  margin-top:4px;
  color:rgba(255,255,255,.70);
  font-size:11px;
  line-height:1.35;
}
.titleCardState{
  margin-top:8px;
  color:#ffe277;
  font-size:11px;
  font-weight:1000;
}
.rankingTitle{
  display:inline-block;
  margin:2px 0 3px;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(255,226,119,.18);
  color:#ffe277;
  font-style:normal;
  font-size:10px;
  font-weight:1000;
}
.tabs{
  flex-wrap:wrap;
}
@media(max-width:420px){
  .profileStatsGrid{grid-template-columns:1fr}
}


/* v23.4 stage balance */
.hardNotice{
  display:inline-block;
  margin-top:4px;
  color:#ffd18f;
  font-size:10px;
  font-weight:1000;
}
.missionEmpty{
  opacity:.86;
  border-style:dashed;
}


/* v23.5 endless boss rotation */
.endlessBossRotationOverlay{
  position:fixed;
  inset:0;
  z-index:2600;
  display:none;
  place-items:center;
  pointer-events:none;
  background:radial-gradient(circle at 50% 40%,rgba(255,226,119,.18),rgba(0,0,0,.48) 62%,rgba(0,0,0,.66));
}
.endlessBossRotationOverlay.show{
  display:grid;
  animation:endlessBossOverlayFade 1.15s ease both;
}
.endlessBossCard{
  width:min(86vw,430px);
  min-height:360px;
  position:relative;
  overflow:hidden;
  border-radius:30px;
  padding:24px 18px 18px;
  text-align:center;
  color:#fff;
  border:2px solid rgba(255,226,119,.7);
  background:
    radial-gradient(circle at 20% 0%,rgba(255,255,255,.25),transparent 28%),
    radial-gradient(circle at 84% 16%,rgba(255,92,196,.22),transparent 30%),
    linear-gradient(180deg,rgba(75,31,126,.96),rgba(19,16,43,.97));
  box-shadow:0 26px 70px rgba(0,0,0,.45),0 0 34px rgba(255,218,91,.22);
  transform-origin:center;
  animation:endlessBossCardPop 1.05s cubic-bezier(.18,1.15,.2,1) both;
}
.endlessBossCard:before,
.endlessBossCard:after{
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,226,119,.35),transparent 62%);
  filter:blur(2px);
  pointer-events:none;
}
.endlessBossCard:before{left:-70px;top:-70px}
.endlessBossCard:after{right:-70px;bottom:-70px}
.endlessBossTop{
  position:relative;
  z-index:1;
  display:inline-block;
  padding:6px 16px;
  border-radius:999px;
  background:linear-gradient(180deg,#fff6b8,#ffbf38);
  color:#4a2c00;
  font-size:13px;
  font-weight:1000;
  letter-spacing:.04em;
}
.endlessBossOrder{
  position:relative;
  z-index:1;
  margin-top:14px;
  font-size:30px;
  font-weight:1000;
  color:#ffe277;
  text-shadow:0 4px 0 rgba(63,31,0,.42),0 0 20px rgba(255,226,119,.42);
}
.endlessBossName{
  position:relative;
  z-index:1;
  margin-top:4px;
  font-size:24px;
  font-weight:1000;
  line-height:1.14;
  text-shadow:0 4px 16px rgba(0,0,0,.48);
}
.endlessBossMeta{
  position:relative;
  z-index:1;
  margin-top:8px;
  font-size:12px;
  font-weight:900;
  color:rgba(255,255,255,.78);
}
.endlessBossPortrait{
  position:relative;
  z-index:1;
  margin:12px auto 8px;
  width:148px;
  height:148px;
  border-radius:28px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 0 20px rgba(255,255,255,.10);
}
.endlessBossPortrait img{
  max-width:130px;
  max-height:130px;
  object-fit:contain;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.38));
}
.endlessBossRoute{
  position:relative;
  z-index:1;
  margin-top:8px;
  font-size:18px;
  letter-spacing:.02em;
  opacity:.9;
}
@keyframes endlessBossOverlayFade{
  0%{opacity:0}
  14%{opacity:1}
  82%{opacity:1}
  100%{opacity:0}
}
@keyframes endlessBossCardPop{
  0%{transform:scale(.75) translateY(18px);opacity:0}
  18%{transform:scale(1.04) translateY(0);opacity:1}
  62%{transform:scale(1) translateY(0);opacity:1}
  100%{transform:scale(.96) translateY(-10px);opacity:0}
}


/* v23.5.1 endless level */
.endlessBossMeta{
  color:#fff0a8;
}


/* v23.5.2 visibility improvement */
.cell{
  background:
    radial-gradient(circle at 28% 22%,rgba(255,255,255,.20),transparent 34%),
    rgba(255,255,255,.10);
}
.cell .piecePattern{
  position:absolute;
  inset:0;
  z-index:1;
  opacity:.24;
  pointer-events:none;
}
.cell .pieceChar{
  position:relative;
  z-index:2;
  width:96%;
  height:96%;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.30));
}
.cell .pieceAttr{
  position:absolute;
  z-index:5;
  top:2px;
  right:2px;
  width:28%;
  height:28%;
  object-fit:contain;
  pointer-events:none;
  filter:
    drop-shadow(0 1px 0 #fff)
    drop-shadow(0 -1px 0 #fff)
    drop-shadow(1px 0 0 #fff)
    drop-shadow(-1px 0 0 #fff)
    drop-shadow(0 2px 4px rgba(0,0,0,.42));
}
.pattern-dot{
  background-image:radial-gradient(circle, rgba(255,255,255,.9) 11%, transparent 13%);
  background-size:12px 12px;
}
.pattern-stripe{
  background-image:repeating-linear-gradient(45deg, rgba(255,255,255,.85) 0 3px, transparent 3px 10px);
}
.pattern-sparkle{
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.95) 0 2px, transparent 3px),
    radial-gradient(circle at 62% 22%, rgba(255,255,255,.75) 0 1.5px, transparent 3px),
    radial-gradient(circle at 72% 66%, rgba(255,255,255,.85) 0 2px, transparent 3px),
    radial-gradient(circle at 38% 78%, rgba(255,255,255,.65) 0 1.5px, transparent 3px);
}
.pattern-check{
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.40) 50%, transparent 50%),
    linear-gradient(0deg, rgba(255,255,255,.40) 50%, transparent 50%);
  background-size:12px 12px;
}
.pattern-wave{
  background-image:
    repeating-radial-gradient(ellipse at 0 50%, rgba(255,255,255,.42) 0 2px, transparent 3px 9px);
}
.pattern-halo{
  background-image:radial-gradient(circle, transparent 32%, rgba(255,255,255,.78) 35%, transparent 48%);
}
.attrMini,.cardAttr,.supportAttr{
  width:18px!important;
  height:18px!important;
  object-fit:contain;
  vertical-align:-4px;
  margin-right:4px;
  filter:
    drop-shadow(0 1px 0 #fff)
    drop-shadow(0 -1px 0 #fff)
    drop-shadow(1px 0 0 #fff)
    drop-shadow(-1px 0 0 #fff)
    drop-shadow(0 2px 4px rgba(0,0,0,.35));
}
.cardAttr{
  width:20px!important;
  height:20px!important;
}
.visibilityPreview{
  margin-top:8px;
  display:grid;
  gap:8px;
  padding:9px;
  border-radius:16px;
  background:rgba(0,0,0,.18);
  border:1px solid rgba(255,255,255,.12);
}
.visibilityPreview>div{
  display:block;
  padding:7px 8px;
  border-radius:13px;
  background:rgba(255,255,255,.07);
}
.visibilityPreview b{
  color:#ffe277;
  margin-right:8px;
}
.visibilityPreview span{
  font-size:11px;
  color:rgba(255,255,255,.78);
}
.visibilityPreview p{
  margin:0;
  font-size:11px;
  line-height:1.4;
  color:rgba(255,255,255,.68);
}
.miniTeamLine{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:6px;
}
.miniTeamLine span,.supportChip,.supportNone{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  font-size:10px!important;
  color:#fff!important;
  white-space:nowrap;
}
.rosterCard{
  position:relative;
}
.roleBadge{
  position:absolute;
  left:6px;
  bottom:54px;
  z-index:4;
  padding:3px 7px;
  border-radius:999px;
  font-size:10px;
  font-weight:1000;
  color:#3a2500;
  background:#ffe277;
  box-shadow:0 4px 10px rgba(0,0,0,.22);
}
.roleBadge.support{
  background:#bfe8ff;
  color:#053045;
}
.rosterCard.support{
  opacity:.88;
  outline:2px dashed rgba(157,224,255,.45);
}
.rosterCard.sortie{
  outline:2px solid rgba(255,226,119,.48);
}


/* v23.5.4 ranking UX */
.rankingGuide{
  display:grid;
  gap:4px;
  padding:11px 12px;
  margin:8px 0 12px;
  border-radius:16px;
  background:linear-gradient(135deg,rgba(255,226,119,.20),rgba(115,211,255,.13));
  border:1px solid rgba(255,226,119,.35);
}
.rankingGuide b{
  color:#ffe277;
  font-size:15px;
}
.rankingGuide span{
  color:rgba(255,255,255,.82);
  font-size:12px;
  line-height:1.45;
}
.rankingSubmitBox{
  margin:10px 0;
  padding:11px 12px;
  border-radius:16px;
  border:1px dashed rgba(255,255,255,.22);
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.78);
  font-size:12px;
  line-height:1.45;
}
.rankingSubmitBox.ok{
  border:1px solid rgba(120,255,179,.45);
  background:linear-gradient(135deg,rgba(60,255,150,.18),rgba(255,226,119,.12));
  color:#fff;
}
.rankingSubmitBox b{
  display:block;
  color:#9dffc2;
  font-size:15px;
  margin-bottom:3px;
}
.rankingSubmitBox span,.rankingSubmitBox em{
  display:block;
  font-style:normal;
}
.rankingSubmitBox em{
  margin-top:3px;
  font-size:11px;
  color:rgba(255,255,255,.72);
}
.top10Header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  padding:7px 4px 9px;
  color:#ffe277;
}
.top10Header span{
  font-size:11px;
  color:rgba(255,255,255,.65);
}
.rankingRow.mine{
  outline:2px solid rgba(120,255,179,.55);
  background:linear-gradient(135deg,rgba(120,255,179,.16),rgba(255,255,255,.08));
}
.rankingEmpty{
  display:grid;
  gap:4px;
  padding:16px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.78);
  text-align:center;
}
.rankingEmpty b{
  color:#ffe277;
}
.rankingEmpty span{
  font-size:12px;
}
.resultRankingMessage{
  margin-top:10px;
  padding:10px 12px;
  border-radius:16px;
  border:1px dashed rgba(255,255,255,.22);
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.75);
  font-size:12px;
}
.resultRankingMessage.ok{
  border-color:rgba(120,255,179,.45);
  background:linear-gradient(135deg,rgba(120,255,179,.16),rgba(255,226,119,.13));
  color:#fff;
}
.resultRankingMessage b,.resultRankingMessage span,.resultRankingMessage small{
  display:block;
}
.resultRankingMessage b{
  color:#9dffc2;
  font-size:15px;
}
.resultRankingMessage small{
  color:rgba(255,255,255,.72);
}


/* v23.5.5 lightweight / flicker reduction */
.perfGrid{
  margin-top:8px;
}
#gameScreen{
  contain:layout paint style;
  background-color:#101a17;
}
.board{
  contain:layout paint;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.cell{
  contain:layout paint;
  backface-visibility:hidden;
}
body.light-mode{
  background:#0c1512!important;
}
body.light-mode .screen{
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 8px 24px rgba(0,0,0,.24)!important;
}
body.light-mode.battle-active #gameScreen{
  background-image:none!important;
  background:linear-gradient(180deg,#17231f,#0b1210)!important;
}
body.light-mode.battle-active .board{
  background:rgba(0,0,0,.20)!important;
  box-shadow:none!important;
}
body.light-mode.battle-active .cell{
  transition:none!important;
  animation:none!important;
  filter:none!important;
  box-shadow:none!important;
  background:rgba(255,255,255,.105)!important;
}
body.light-mode.battle-active .cell.spawn,
body.light-mode.battle-active .cell.fell,
body.light-mode.battle-active .cell.removing{
  animation:none!important;
  transition:none!important;
  filter:none!important;
}
body.light-mode.battle-active .cell .pieceChar{
  filter:none!important;
}
body.light-mode.battle-active .cell .pieceAttr{
  filter:
    drop-shadow(0 1px 0 rgba(255,255,255,.95))
    drop-shadow(1px 0 0 rgba(255,255,255,.85))!important;
}
body.light-mode.battle-active .cell .piecePattern{
  opacity:.12!important;
}
body.light-mode.battle-active .comboPopup.show{
  animation:comboPopLite .42s ease forwards!important;
}
@keyframes comboPopLite{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}
  20%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-60%) scale(1)}
}
body.light-mode.battle-active .skillBig.skill-ready{
  animation:none!important;
  filter:none!important;
  box-shadow:0 4px 0 rgba(89,57,0,.28),0 0 10px rgba(255,226,119,.45)!important;
}
body.light-mode.battle-active .skillOverlay.show,
body.light-mode.battle-active .bossCutinOverlay.show{
  animation:none!important;
}
body.light-mode.battle-active .damagePopup,
body.light-mode.battle-active .rankUpOverlay,
body.light-mode.battle-active .rewardGetOverlay{
  filter:none!important;
}
body.light-mode.battle-active .bar span{
  background:linear-gradient(90deg,#7cffb2,#ffe277,#ff8aa6)!important;
}
@media (prefers-reduced-motion: reduce){
  .cell,.cell.spawn,.cell.fell,.comboPopup.show,.skillBig.skill-ready{
    animation:none!important;
    transition:none!important;
  }
}

/* v23.6.5 nyanko event badge */
.collectionGuestBadge.nyanko{background:linear-gradient(90deg,#ffb7dc,#b8dcff);color:#44234f;border-color:rgba(255,255,255,.75)}

.homeNyankoEventBanner{
  border-color:rgba(255,145,205,.34);
  box-shadow:0 12px 30px rgba(119,54,180,.28);
}
.homeNyankoEventBanner .homeGuestText{
  background:linear-gradient(90deg,rgba(31,16,55,.84),rgba(165,65,135,.56));
}
.homeNyankoEventBanner .homeGuestText b{
  color:#ffd6f1;
}
.mapNode.event{
  width:86px;
  height:86px;
  filter:drop-shadow(0 0 18px rgba(255,92,189,.48)) drop-shadow(0 10px 12px rgba(0,0,0,.35));
}
.mapNode.event.selected{
  animation:mapGuestPulse 1.3s ease-in-out infinite;
}

/* v24.1.3 character asset + 101-110 UI integration */
#trainingScreen, .trainingScreen, #awakenScreen { background-image: linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.92)), url("assets/ui_101_110/101_training_screen_bg.webp"); background-size: cover; background-position: center top; }
#prepScreen, #formationScreen, .v24FormationPanel { background-image: linear-gradient(rgba(255,255,255,.78), rgba(255,255,255,.92)), url("assets/ui_101_110/102_formation_screen_bg.webp"); background-size: cover; background-position: center top; }
.v24RecommendBtn, #v24ApplyRecommend { background-image: url("assets/ui_101_110/103_recommended_formation_button.webp"); background-size: cover; background-position: center; }
.v24DifficultyTabs { background-image: url("assets/ui_101_110/104_difficulty_formation_tabs.webp"); background-size: contain; background-repeat:no-repeat; background-position:center top; }
.v24CharDetailPanel { background-image: url("assets/ui_101_110/105_character_detail_panel.webp"); background-size: cover; background-position:center; }
.saveGuardPanel, .v24SaveGuard { background-image: linear-gradient(rgba(255,255,255,.82),rgba(255,255,255,.9)), url("assets/ui_101_110/108_save_protection_panel.webp"); background-size: cover; background-position:center; }
.charIcon, .pieceChar, .gachaResultChara, .leader-card img, .card img { object-fit: contain; }

/* v24.1.10 ranking/nyanko reward fix */
.rankingRow.emptySlot{opacity:.82;border-style:dashed!important;background:rgba(255,255,255,.06)!important;}
.rankingMyOutside{margin-top:14px;padding:16px;border-radius:18px;background:rgba(255,238,150,.12);border:1px solid rgba(255,225,108,.55);color:#fff;display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:900;}
.gachaResultCard .helper::after{content:"";}

/* v24.6.2 mobile readability + no whole-page overflow hotfix */
:root{
  --readable:#261b46;
  --readable2:#3a2a5f;
}
html, body{
  color:var(--readable)!important;
  overflow:hidden!important;
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
}
body{
  padding:calc(8px + env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom))!important;
}
.app{
  width:min(480px,100%)!important;
  height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px)!important;
  max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.screen.active{
  height:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  display:block!important;
  color:var(--readable)!important;
}
.pad,
.homePad,
.sortiePad{
  height:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
  color:var(--readable)!important;
}
.screen,
.screen *:not(.cta):not(.cta *):not(.skillOverlay):not(.bossCutinOverlay){
  color:var(--readable)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.55)!important;
}
.helper,.meta,.sub,.cur small,.itemSmall,.bossSupportDesc,.titleCardDesc{
  color:var(--readable2)!important;
  opacity:1!important;
}
.name,.section h3,.prepStageName,.bossSupportName,.homeGuestText b,.homeGuestText span,.rankingTitle{
  color:var(--readable)!important;
}
.btn,.mini{
  color:#241735!important;
  background:rgba(255,255,255,.78)!important;
  border-color:rgba(50,34,84,.22)!important;
}
.cta{
  color:#3a2700!important;
  text-shadow:none!important;
}
.homeTopbar,.homeCurrency,.cur,.section,.stage-card,.leader-card,.card,.prepStageSummary,.saveGuardPanel,.v24SaveGuard{
  background:rgba(255,255,255,.72)!important;
  border-color:rgba(50,34,84,.16)!important;
}
.homeGuestText{
  background:rgba(255,255,255,.72)!important;
  color:var(--readable)!important;
}
/* Mobile home: keep main page usable without whole-screen scroll. Extra buttons scroll only inside their frame. */
#homeScreen .homePad{
  display:grid!important;
  grid-template-rows:auto auto auto auto minmax(0,1fr) auto!important;
  gap:8px!important;
  padding:10px 10px calc(78px + env(safe-area-inset-bottom))!important;
}
#homeScreen .homeTopbar{min-height:44px!important;margin:0!important;}
#homeScreen .homeCurrency{margin:0!important;}
#homeScreen .playerRankPanel{margin:0!important;max-height:92px!important;overflow:hidden!important;}
#homeScreen .homeGuestEventBanner{margin:0!important;min-height:54px!important;max-height:62px!important;overflow:hidden!important;}
#homeScreen .homeMain{margin:0!important;gap:8px!important;}
#homeScreen .homeMain .cta,#homeScreen .homeMain .btn{min-height:48px!important;padding:9px 8px!important;}
#homeScreen .homeGrid{
  min-height:0!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  padding:2px 0 90px!important;
  grid-auto-rows:minmax(44px,auto)!important;
  overscroll-behavior:contain!important;
}
#homeScreen .homeGrid .btn{
  min-height:44px!important;
  padding:8px!important;
  font-size:14px!important;
}
/* Fixed bottom nav stays inside viewport and does not cover Safari toolbar. */
.v246BottomNav,.bottomNav,.appBottomNav,.mainBottomNav{
  position:fixed!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  bottom:calc(8px + env(safe-area-inset-bottom))!important;
  width:min(480px,calc(100vw - 12px))!important;
  height:64px!important;
  max-height:64px!important;
  z-index:9999!important;
  overflow:hidden!important;
}
.v246BottomNav button,.bottomNav button,.appBottomNav button,.mainBottomNav button{
  min-height:52px!important;
  height:52px!important;
  padding:4px!important;
  color:#241735!important;
  text-shadow:none!important;
}
@media(max-width:430px){
  .app{width:100%!important;}
  body{padding-left:0!important;padding-right:0!important;}
  #homeScreen .homePad{padding-left:8px!important;padding-right:8px!important;gap:6px!important;}
  #homeScreen .homeTopbar{font-size:14px!important;}
  #homeScreen .cur{padding:7px 8px!important;}
  #homeScreen .homeGuestEventBanner{max-height:58px!important;}
}

/* ===== END style.css ===== */

/* ===== BEGIN v24_1_2_3_rebuild.css ===== */
/* v24.1.0 save guard / formation / training */
.saveGuardPanelV24{border:2px solid rgba(113,92,255,.28);background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(239,235,255,.92));}
.saveGuardStatus{display:grid;gap:4px;padding:10px 12px;border-radius:16px;background:#fffaf0;border:1px solid rgba(255,188,68,.45);color:#382c66;font-weight:800;}
.saveGuardStatus span{font-size:11px;word-break:break-all;color:#675b89;font-weight:700}.saveGuardStatus small{color:#7d719c}.saveGuardBtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.saveGuardBtns .btn,.saveGuardBtns .cta{flex:1 1 130px;min-height:42px}.v24Hero{padding:16px;border-radius:22px;background:linear-gradient(135deg,#fff7c7,#eadfff 60%,#dff8ff);border:2px solid rgba(255,255,255,.92);box-shadow:0 8px 24px rgba(75,61,140,.16);display:grid;gap:5px;margin-bottom:12px;color:#33276b}.v24Hero b{font-size:20px;font-weight:1000}.v24Hero span{font-size:12px;font-weight:800;color:#6b5c91}.v24Hero.training{background:linear-gradient(135deg,#e8ffe8,#fff5ca 55%,#e7deff)}.v24DiffGrid{margin:10px 0 14px}.v24FormationActions{background:linear-gradient(180deg,#ffffff,#f8f4ff)}.v24MiniTeam{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.v24MiniChar{display:flex;align-items:center;gap:8px;padding:8px;border-radius:16px;background:#fff;border:1px solid rgba(92,79,160,.18);box-shadow:0 4px 12px rgba(60,50,120,.08)}.v24MiniChar img{width:42px;height:42px;object-fit:contain;border-radius:12px;background:#f2efff}.v24MiniChar b{display:block;color:#352768;font-size:12px}.v24MiniChar span{display:block;font-size:10px;color:#6c6186;font-weight:800}.v24RosterCard.leader{outline:3px solid #ffd86b}.v24TrainingMain{background:linear-gradient(180deg,#fff,#f5fff3)}.v24TrainCard{display:flex;gap:12px;align-items:center}.v24TrainCard img{width:86px;height:86px;object-fit:contain;border-radius:22px;background:#fff5ce;border:2px solid #fff;box-shadow:0 6px 16px rgba(70,50,120,.18)}.v24TrainCard h3{margin:0;color:#33276b}.v24TrainCard p{margin:4px 0 8px;color:#6d638a;font-size:12px;font-weight:800}#formationScreenV24 .pad,#trainingScreenV24 .pad{padding-bottom:28px}.homeGrid #homeFormationV24,.homeGrid #homeTrainingV24{background:linear-gradient(180deg,#fff7c8,#ffe9a1);border-color:#ffd45e;color:#4a3270;font-weight:1000}@media (max-width:430px){.v24MiniTeam{grid-template-columns:1fr}.saveGuardBtns .btn,.saveGuardBtns .cta{flex-basis:100%}.v24TrainCard{align-items:flex-start}.v24TrainCard img{width:72px;height:72px}}

/* ===== END v24_1_2_3_rebuild.css ===== */

/* ===== BEGIN v24_1_4_ui_sortie_fix.css ===== */
/* v24.1.4 readability + sortie flow fix */
.v24HiddenBySortieFix{display:none!important;}
#formationScreenV24 .section,#trainingScreenV24 .section,#prepScreen .section.v24ClearPanel,#v24SortieGuide,
#formationScreenV24 .v24FormationActions,#trainingScreenV24 .v24TrainingMain{
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(247,244,255,.84))!important;
  color:#33276b!important;
  border:2px solid rgba(89,76,150,.22)!important;
  box-shadow:0 10px 26px rgba(20,15,45,.16)!important;
  backdrop-filter:none!important;
}
#trainingScreenV24 .v24TrainingMain{background:linear-gradient(180deg,rgba(244,255,239,.90),rgba(255,252,235,.86))!important;}
#formationScreenV24 .section *,#trainingScreenV24 .section *,#prepScreen .section.v24ClearPanel *,#v24SortieGuide *{text-shadow:none!important;}
#formationScreenV24 h3,#trainingScreenV24 h3,#prepScreen h3,#v24SortieGuide h3{color:#302568!important;font-weight:1000!important;}
#formationScreenV24 .helper,#trainingScreenV24 .helper,#prepScreen .helper,#formationScreenV24 span,#trainingScreenV24 span{color:#62587e!important;font-weight:800!important;}
#formationScreenV24 .btn,#trainingScreenV24 .btn,#prepScreen .btn,
#formationScreenV24 .cta,#trainingScreenV24 .cta,#prepScreen .cta{color:#3a2a20!important;text-shadow:none!important;font-weight:1000!important;}
#formationScreenV24 .v24MiniChar,#trainingScreenV24 .v24MiniChar,#formationScreenV24 .v24RosterCard,#trainingScreenV24 .v24RosterCard{
  background:rgba(255,255,255,.94)!important;color:#33276b!important;border-color:rgba(79,68,130,.24)!important;
}
#formationScreenV24 .name,#trainingScreenV24 .name{color:#34266a!important;}
.v24SortieGuide{display:grid;gap:12px;margin:12px 0!important;}
.v24SortieRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.v24SortieRows>div{background:rgba(255,255,255,.92);border:1px solid rgba(84,72,132,.18);border-radius:14px;padding:10px 12px;}
.v24SortieRows small{display:block;color:#766b8f!important;font-size:11px;font-weight:900;margin-bottom:3px;}
.v24SortieRows b{display:block;color:#33276b!important;font-size:13px;line-height:1.35;}
.v24SortieLeaderCard{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.94);border:1px solid rgba(84,72,132,.22);border-radius:18px;padding:10px;}
.v24SortieLeaderCard img{width:64px;height:64px;object-fit:contain;border-radius:16px;background:#fff7cf;border:2px solid #fff;box-shadow:0 5px 14px rgba(40,30,80,.16);}
.v24SortieLeaderCard b{display:block;color:#302568!important;font-size:16px;}
.v24SortieLeaderCard span,.v24SortieLeaderCard small{display:block;color:#63597e!important;font-weight:800;line-height:1.45;}
.v24TrainReason{margin-top:12px;padding:12px;border-radius:18px;background:rgba(255,255,255,.94);border:1px solid rgba(84,72,132,.20);}
.v24StatPreview{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;}
.v24StatPreview span{display:block;padding:8px;border-radius:12px;background:#fff7cf;color:#34266a!important;text-align:center;font-weight:1000!important;font-size:12px;}
.v24StartFixed{margin-top:12px!important;background:linear-gradient(180deg,#ffe46e,#ffb46d)!important;color:#3a2400!important;}
#prepScreen .difficultyBtn{background:rgba(255,255,255,.92)!important;color:#33276b!important;}
#prepScreen .difficultyBtn.active{background:linear-gradient(180deg,#fff2a8,#ffd96a)!important;border-color:#f1b92d!important;}
@media(max-width:430px){.v24SortieRows{grid-template-columns:1fr}.v24StatPreview{grid-template-columns:1fr}.v24SortieLeaderCard img{width:58px;height:58px}}

/* ===== END v24_1_4_ui_sortie_fix.css ===== */

/* ===== BEGIN v24_1_6_mobile_fix.css ===== */
/* v24.1.6 mobile visibility fix - SAVE untouched */
#formationScreenV24 .pad,#trainingScreenV24 .pad,#prepScreen .pad{background:rgba(24,34,30,.92)!important;}
#formationScreenV24 .section,#trainingScreenV24 .section,#prepScreen .section.v24ClearPanel,#v24SortieGuide,
#formationScreenV24 .v24FormationActions,#trainingScreenV24 .v24TrainingMain{
  background:linear-gradient(180deg,rgba(255,248,220,.97),rgba(238,232,255,.95))!important;
  color:#27203f!important;
  border:2px solid rgba(92,74,150,.34)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18)!important;
  opacity:1!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#trainingScreenV24 .v24TrainingMain{background:linear-gradient(180deg,rgba(242,255,230,.98),rgba(255,247,213,.96))!important;}
#formationScreenV24 .section *,#trainingScreenV24 .section *,#prepScreen .section.v24ClearPanel *,#v24SortieGuide *{text-shadow:none!important;opacity:1!important;}
#formationScreenV24 h3,#trainingScreenV24 h3,#prepScreen h3,#v24SortieGuide h3,.v24TrainReason h3{color:#2d235f!important;font-weight:1000!important;}
#formationScreenV24 .helper,#trainingScreenV24 .helper,#prepScreen .helper,#formationScreenV24 span,#trainingScreenV24 span,#v24SortieGuide small{color:#51466f!important;font-weight:900!important;}
#formationScreenV24 .name,#trainingScreenV24 .name,#formationScreenV24 b,#trainingScreenV24 b,#v24SortieGuide b{color:#271d55!important;font-weight:1000!important;}
#formationScreenV24 .btn,#trainingScreenV24 .btn,#prepScreen .btn,#formationScreenV24 .cta,#trainingScreenV24 .cta,#prepScreen .cta{
  color:#33230e!important;text-shadow:none!important;font-weight:1000!important;opacity:1!important;
}
#formationScreenV24 .v24MiniChar,#trainingScreenV24 .v24MiniChar,#formationScreenV24 .v24RosterCard,#trainingScreenV24 .v24RosterCard{
  background:rgba(255,255,255,.98)!important;color:#2d245c!important;border-color:rgba(77,62,135,.28)!important;
}
.v24TrainReason{margin-top:12px;padding:12px;border-radius:18px;background:rgba(255,255,255,.96)!important;border:1px solid rgba(80,65,138,.25)!important;color:#2b225a!important;}
.v24SortieRows{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px;}
.v24SortieRows>div{background:rgba(255,255,255,.95)!important;border:1px solid rgba(80,65,138,.18);border-radius:14px;padding:9px 10px;display:grid;gap:2px;}
.v24SortieRows small{font-size:11px;color:#6b5f83!important;font-weight:900!important;}.v24SortieRows b{font-size:13px;color:#291f5e!important;}
.v24StatPreview{display:grid;gap:6px;margin-top:10px}.v24StatPreview span{background:#fff7d7!important;border-radius:12px;padding:8px 10px;color:#34266a!important;font-weight:1000!important;}
.v24HiddenBySortieFix{display:none!important;}
#board{touch-action:none;-webkit-user-select:none;user-select:none;}
.cell,.pieceChar,.pieceAttr{touch-action:none;-webkit-user-drag:none;}
@media(max-width:430px){
  #formationScreenV24 .section,#trainingScreenV24 .section,#prepScreen .section.v24ClearPanel,#v24SortieGuide{border-radius:20px!important;}
  #formationScreenV24 .v24MiniChar,#trainingScreenV24 .v24MiniChar{min-height:58px;}
}

/* ===== END v24_1_6_mobile_fix.css ===== */

/* ===== BEGIN v24_1_9_visual_perf_fix.css ===== */
/* v24.1.9 visual/performance fix - SAVE untouched */
/* 出撃準備・編成・育成の白飛び抑制 */
#prepScreen .pad,#formationScreenV24 .pad,#trainingScreenV24 .pad{
  background:linear-gradient(180deg,#17231f,#101916)!important;
}
#prepScreen .section.v24ClearPanel,#v24SortieGuide,
#formationScreenV24 .section,#formationScreenV24 .v24FormationActions,
#trainingScreenV24 .section,#trainingScreenV24 .v24TrainingMain{
  background:linear-gradient(180deg,#fff7df 0%,#eee7ff 100%)!important;
  color:#241b53!important;
  opacity:1!important;
  filter:none!important;
  text-shadow:none!important;
}
#prepScreen .section.v24ClearPanel *,#v24SortieGuide *,
#formationScreenV24 .section *,#trainingScreenV24 .section *{
  opacity:1!important;
  text-shadow:none!important;
}
#prepScreen h3,#v24SortieGuide h3,#formationScreenV24 h3,#trainingScreenV24 h3{
  color:#261b61!important;
}
/* 難易度カードは非選択を濃色、選択を黄金色にして可読性固定 */
#prepScreen .difficultyGrid{gap:12px!important;}
#prepScreen .difficultyBtn,
#formationScreenV24 .difficultyBtn{
  background:linear-gradient(180deg,#2d3a35,#1d2925)!important;
  border:2px solid rgba(255,255,255,.18)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(0,0,0,.22)!important;
}
#prepScreen .difficultyBtn .diffName,
#formationScreenV24 .difficultyBtn .diffName{
  color:#ffe277!important;
  font-weight:1000!important;
}
#prepScreen .difficultyBtn .diffMeta,#prepScreen .difficultyBtn .diffDesc,
#formationScreenV24 .difficultyBtn .diffMeta,#formationScreenV24 .difficultyBtn .diffDesc{
  color:#ffffff!important;
  opacity:1!important;
  font-weight:900!important;
}
#prepScreen .difficultyBtn.active,
#formationScreenV24 .difficultyBtn.active{
  background:linear-gradient(180deg,#fff2a8,#ffd75f)!important;
  border-color:#e6b52c!important;
  color:#302000!important;
}
#prepScreen .difficultyBtn.active .diffName,#prepScreen .difficultyBtn.active .diffMeta,#prepScreen .difficultyBtn.active .diffDesc,
#formationScreenV24 .difficultyBtn.active .diffName,#formationScreenV24 .difficultyBtn.active .diffMeta,#formationScreenV24 .difficultyBtn.active .diffDesc{
  color:#33230a!important;
}
/* 103画像は文字入り素材なのでボタン背景に使わない。文字重なり防止 */
#v24ApplyRecommend,.v24RecommendBtn{
  background-image:linear-gradient(180deg,#ffe46e,#ffb36d)!important;
  background-size:auto!important;
  background-position:center!important;
  color:#332000!important;
  min-height:58px!important;
  letter-spacing:.02em;
}
#v24ApplyRecommend::before{content:'★ ';}
/* 画像が荒ぶって見えるカードを固定 */
.v24SortieLeaderCard,
.v24MiniChar,
.v24TrainCard,
.rosterCard,
.leader-card,
.card{
  transform:none!important;
  will-change:auto!important;
}
.v24SortieLeaderCard img,
.v24MiniChar img,
.v24TrainCard img,
.rosterCard img,
.leader-card img,
.card img{
  animation:none!important;
  transform:none!important;
  transition:none!important;
  will-change:auto!important;
  object-fit:contain!important;
  image-rendering:auto!important;
}
.v24SortieLeaderCard img{
  width:64px!important;
  height:64px!important;
  flex:0 0 64px!important;
  background:#fff7cf!important;
}
/* パズル中の軽量化：エフェクト・影・動きを抑える */
body.battle-active #gameScreen{contain:layout paint style!important;}
body.battle-active .board{gap:4px!important;box-shadow:none!important;}
body.battle-active .cell{transition:transform .08s linear!important;box-shadow:none!important;filter:none!important;}
body.battle-active .cell.spawn,
body.battle-active .cell.fell{
  animation:none!important;
  transition:none!important;
}
body.battle-active .cell.removing{
  animation:v2419Remove .14s linear forwards!important;
  transition:none!important;
}
@keyframes v2419Remove{to{opacity:0;transform:scale(.86)}}
body.battle-active .cell .pieceChar{filter:none!important;}
body.battle-active .cell .pieceAttr{filter:drop-shadow(0 1px 0 rgba(255,255,255,.9))!important;}
body.battle-active .cell .piecePattern{opacity:.08!important;}
body.battle-active .comboPopup.show{animation:comboPopLite .32s ease forwards!important;}
body.battle-active .skillOverlay.show .skillCard img{max-height:32vh!important;}
body.battle-active .damageFlash{display:none!important;}
@media(max-width:430px){
  #prepScreen .difficultyBtn{min-height:84px!important;padding:14px!important;}
  .v24SortieLeaderCard img{width:58px!important;height:58px!important;flex-basis:58px!important;}
  body.battle-active .board{gap:3px!important;padding:6px!important;}
  body.battle-active .cell{border-radius:11px!important;}
}

/* ===== END v24_1_9_visual_perf_fix.css ===== */

/* ===== BEGIN v24_3_0_growth_rewards.css ===== */

/* v24.3.0 growth/reward polish. SAVE_KEY untouched. */
.v243MaterialPanel{
  margin-top:14px;
  padding:14px;
  border-radius:18px;
  background:linear-gradient(180deg,rgba(43,55,28,.94),rgba(27,34,20,.96));
  border:1px solid rgba(238,226,151,.42);
  box-shadow:0 10px 28px rgba(0,0,0,.26);
  color:#fff8cf;
}
.v243MaterialPanel h3{margin:0 0 8px;font-size:18px;color:#fff4a9;text-shadow:0 2px 2px rgba(0,0,0,.45);}
.v243MaterialGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.v243Mat{
  display:grid;grid-template-columns:50px 1fr;gap:8px;align-items:center;
  min-height:66px;padding:8px;border-radius:14px;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
}
.v243Mat img{width:50px;height:50px;object-fit:contain;border-radius:12px;background:rgba(255,255,255,.10);}
.v243Mat b{display:block;color:#fff;font-size:13px;line-height:1.2;}
.v243Mat span,.v243Mat small{display:block;color:#f4ebc2;font-size:11px;line-height:1.25;}
.v243Mat.ok{border-color:rgba(150,255,154,.45);background:rgba(73,126,55,.28);}
.v243Mat.lack{border-color:rgba(255,118,118,.55);background:rgba(112,37,37,.32);}
.v243Mat .v243GoDrop{margin-top:4px;padding:4px 8px;border:0;border-radius:999px;background:#ffe680;color:#3d3310;font-weight:800;font-size:11px;}
.v243TrainActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.v243TrainActions button{flex:1;min-width:110px}
.v243MaterialList{
  margin-top:12px;padding:12px;border-radius:16px;
  background:rgba(0,0,0,.20);border:1px solid rgba(255,255,255,.12);
}
.v243MaterialListTitle{font-weight:900;color:#fff4a9;margin-bottom:8px}
.v243AllMats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.v243AllMat{padding:7px;border-radius:13px;background:rgba(255,255,255,.09);text-align:center;color:#fff}
.v243AllMat img{width:42px;height:42px;object-fit:contain;display:block;margin:0 auto 3px;}
.v243AllMat b{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v243AllMat span{display:block;font-size:11px;color:#ffe98f}
.v243MaterialHelp{margin-top:8px;color:#f4ebc2;font-size:12px;line-height:1.45}
.v243TrainingPopup{
  position:relative; width:min(92vw,560px); min-height:240px; margin:12vh auto 0;
  border-radius:24px; overflow:hidden; background:rgba(28,35,20,.96);
  border:1px solid rgba(255,235,137,.42); box-shadow:0 18px 54px rgba(0,0,0,.45);
}
.v243TrainingPopup>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.v243TrainingPopupBody{position:relative;z-index:1;padding:28px 22px;text-align:center;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.55)}
.v243TrainingPopupBody h2{margin:0 0 8px;color:#fff4a9;font-size:24px}
.v243TrainingPopupBody p{margin:6px 0;font-weight:800}
.v243ResultMaterialHint{
  margin-top:8px;padding:8px 10px;border-radius:14px;background:rgba(255,244,169,.12);color:#fff4c8;font-size:12px;
}
body.light-mode .v243MaterialPanel,
body.light-mode .v243MaterialList{box-shadow:none}
@media (max-width:430px){
  .v243MaterialGrid{grid-template-columns:1fr}
  .v243AllMats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v243Mat{grid-template-columns:44px 1fr}
  .v243Mat img{width:44px;height:44px}
}

/* ===== END v24_3_0_growth_rewards.css ===== */

/* ===== BEGIN v24_6_0_scrollless_ui.css ===== */
/* v24.6.0 scrollless UI: screen-level scroll reduction + fixed 5-tab navigation. SAVE untouched. */
:root{--v246-nav-h:74px;--v246-head-h:50px;}
body.v246-scrollless{overscroll-behavior:none;}
body.v246-scrollless .app{padding-bottom:calc(var(--v246-nav-h) + env(safe-area-inset-bottom));}
body.v246-scrollless .screen.active:not(#titleScreen):not(#gameScreen){
  min-height:100dvh;
  max-height:100dvh;
  overflow:hidden!important;
  box-sizing:border-box;
}
body.v246-scrollless .screen.active:not(#titleScreen):not(#gameScreen)>.pad,
body.v246-scrollless .screen.active:not(#titleScreen):not(#gameScreen) .stageMapPage{
  height:100dvh;
  max-height:100dvh;
  overflow:hidden!important;
  box-sizing:border-box;
  padding-bottom:calc(var(--v246-nav-h) + env(safe-area-inset-bottom) + 8px)!important;
}
body.v246-scrollless .topbar,
body.v246-scrollless .homeTopbar,
body.v246-scrollless .mapTopbar{
  min-height:44px;
  margin-bottom:8px!important;
}
body.v246-scrollless .homePad{display:flex;flex-direction:column;gap:8px;}
body.v246-scrollless #homeScreen .homeCurrency,
body.v246-scrollless #homeScreen .playerRankPanel{flex:0 0 auto;}
body.v246-scrollless #homeScreen .homeGuestEventBanner{min-height:54px;max-height:64px;overflow:hidden;flex:0 0 auto;}
body.v246-scrollless #homeScreen .homeGuestEventBanner img{height:54px;object-fit:cover;}
body.v246-scrollless #homeScreen .homeMain{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:0 0 auto;}
body.v246-scrollless #homeScreen .homeMain .cta,
body.v246-scrollless #homeScreen .homeMain .btn{min-height:52px;margin:0;}
body.v246-scrollless #homeScreen .homeGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  flex:1 1 auto;
  min-height:0;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch;
  padding:2px 2px 8px;
}
body.v246-scrollless #homeScreen .homeGrid .btn{min-height:48px;padding:8px 6px;}
body.v246-scrollless #homeScreen .soundSettingsPanel{display:none!important;}

body.v246-scrollless #prepScreen .sortiePad{display:flex;flex-direction:column;gap:8px;}
body.v246-scrollless #prepScreen .currency,
body.v246-scrollless #prepScreen .playerRankPanel,
body.v246-scrollless #prepScreen .nav:not(.v246-keep){display:none!important;}
body.v246-scrollless #prepScreen .section{margin:0!important;padding:9px!important;}
body.v246-scrollless #prepScreen .stageSelectSection{display:none!important;}
body.v246-scrollless #prepScreen .difficultyGrid{display:flex!important;gap:8px;overflow-x:auto!important;min-height:54px;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
body.v246-scrollless #prepScreen .difficultyBtn{min-width:132px;max-width:132px;min-height:50px;padding:8px!important;}
body.v246-scrollless #prepScreen .diffDesc{display:none!important;}
body.v246-scrollless #prepScreen #leaderList,
body.v246-scrollless #prepScreen #bossSupportList,
body.v246-scrollless #prepScreen #rosterList{max-height:145px;overflow:auto!important;-webkit-overflow-scrolling:touch;}
body.v246-scrollless #prepScreen #rosterList{grid-template-columns:repeat(4,1fr);}
body.v246-scrollless #prepScreen .bossSupportGrid{display:flex!important;gap:8px;overflow-x:auto!important;}
body.v246-scrollless #prepScreen .bossSupportCard{min-width:136px!important;max-width:136px!important;min-height:116px!important;}
body.v246-scrollless #prepScreen #startGame{min-height:58px;flex:0 0 auto;margin-top:auto;}

body.v246-scrollless #trainingScreenV24 .pad,
body.v246-scrollless #collectionScreen .pad,
body.v246-scrollless #bossScreen .pad,
body.v246-scrollless #missionScreen .pad,
body.v246-scrollless #awakenScreen .pad,
body.v246-scrollless #itemScreen .pad,
body.v246-scrollless #highScoreScreen .pad,
body.v246-scrollless #presentBoxScreen .pad,
body.v246-scrollless #loginBonusScreen .pad,
body.v246-scrollless #profileScreen .pad{
  display:flex;
  flex-direction:column;
  gap:8px;
}
body.v246-scrollless #trainingRootV24,
body.v246-scrollless #collectionGrid,
body.v246-scrollless #bossGrid,
body.v246-scrollless #missionList,
body.v246-scrollless #awakenPanel,
body.v246-scrollless #itemList,
body.v246-scrollless #presentList,
body.v246-scrollless #highScoreScreen .section,
body.v246-scrollless #profileScreen .titleGrid{
  min-height:0;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch;
}
body.v246-scrollless #collectionGrid,
body.v246-scrollless #bossGrid{grid-template-columns:repeat(4,1fr);padding:2px 2px 8px;}
body.v246-scrollless #trainingRootV24{padding-bottom:8px;}
body.v246-scrollless #trainingRootV24 .grid4{max-height:230px;overflow:auto!important;}
body.v246-scrollless #stageMapScreen .stageMapWrap{height:min(62dvh,520px)!important;max-height:520px!important;overflow:hidden!important;}
body.v246-scrollless #stageMapScreen .mapFooter{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;}
body.v246-scrollless #resultScreen .pad{display:flex;flex-direction:column;gap:8px;}
body.v246-scrollless #resultScreen .resultHero{flex:1 1 auto;min-height:0;overflow:auto!important;-webkit-overflow-scrolling:touch;}
body.v246-scrollless #resultScreen .resultActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;flex:0 0 auto;}
body.v246-scrollless #resultScreen .resultActions .wide{grid-column:1/-1;}

.v246BottomNav{
  position:fixed;
  left:0;right:0;bottom:0;
  height:calc(var(--v246-nav-h) + env(safe-area-inset-bottom));
  padding:7px 8px calc(7px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(20,34,20,.74),rgba(10,18,12,.98));
  border-top:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);
  z-index:2100;
  display:none;
  grid-template-columns:repeat(5,1fr);
  gap:6px;
  box-sizing:border-box;
}
body.v246-show-nav .v246BottomNav{display:grid;}
.v246BottomNav button{
  border:1px solid rgba(255,255,255,.16);
  border-radius:16px;
  color:#eaffdb;
  background:rgba(255,255,255,.08);
  font-weight:1000;
  font-size:11px;
  line-height:1.15;
  padding:5px 2px;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
  touch-action:manipulation;
}
.v246BottomNav button span{display:block;font-size:20px;line-height:1.05;margin-bottom:2px;}
.v246BottomNav button.active{
  color:#3b2700;
  background:linear-gradient(180deg,#fff3a7,#ffd166);
  border-color:rgba(255,255,255,.78);
}
.v246MorePanel{
  position:fixed;
  left:10px;right:10px;
  bottom:calc(var(--v246-nav-h) + env(safe-area-inset-bottom) + 10px);
  z-index:2099;
  display:none;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  padding:12px;
  border-radius:22px;
  background:rgba(16,24,18,.96);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 16px 50px rgba(0,0,0,.44);
}
.v246MorePanel.show{display:grid;}
.v246MorePanel button{min-height:46px;border-radius:15px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.10);color:#fff;font-weight:1000;}
body.battle-active .v246BottomNav,body.battle-active .v246MorePanel,body.title-active .v246BottomNav,body.title-active .v246MorePanel{display:none!important;}
@media(max-width:370px){.v246BottomNav button{font-size:10px}.v246BottomNav button span{font-size:18px}}

/* ===== END v24_6_0_scrollless_ui.css ===== */

/* ===== BEGIN v24_6_1_ui_assets_bind.css ===== */
/* v24.6.1 UI asset binding 121-150. Visual-only patch. SAVE/localStorage untouched. */
:root{
  --ui121:url('./assets/mokomoko_world/world_mokomoko_bg.webp');
  --ui122:url('./assets/ui_191_210/204_stage_info_panel.webp');
  --ui123:url('./assets/ui_191_210/209_sortie_caution_panel.webp');
  --ui124:url('./assets/ui_191_210/194_common_confirm_button_bg.webp');
  --ui125:url('./assets/ui_151_190/181_bottom_nav_home_normal.webp');
  --ui126:url('./assets/ui_101_110/101_training_screen_bg.webp');
  --ui127:url('./assets/ui_151_190/162_collection_character_detail_panel.webp');
  --ui128:url('./assets/ui_151_190/158_level_up_effect_panel.webp');
  --ui129:url('./assets/ui_151_190/153_material_shortage_panel.webp');
  --ui130:url('./assets/ui_151_190/180_gacha_shop_button.webp');
  --ui131:url('./assets/ui_101_110/102_formation_screen_bg.webp');
  --ui132:url('./assets/ui_191_210/202_difficulty_card_bg.webp');
  --ui133:url('./assets/ui_191_210/205_formation_confirm_panel.webp');
  --ui134:url('./assets/ui_191_210/204_stage_info_panel.webp');
  --ui135:url('./assets/ui_151_190/170_collection_grid_frame.webp');
  --ui136:url('./assets/map/map_bg.webp');
  --ui137:url('./assets/ui_191_210/204_stage_info_panel.webp');
  --ui138:url('./assets/ui_191_210/202_difficulty_card_bg.webp');
  --ui139:url('./assets/ui/boss_support_slot_frame.webp');
  --ui140:url('./assets/ui_191_210/201_sortie_start_button.webp');
  --ui141:url('./assets/map/map_bg.webp');
  --ui142:url('./assets/worldmap/99_world_map_ui_frame.webp');
  --ui143:url('./assets/map/map_help_panel.webp');
  --ui144:url('./assets/ui/boss_stage_card_base.webp');
  --ui145:url('./assets/ui/boss_stage_card_locked.webp');
  --ui146:url('./assets/ui_211_220/211_result_screen_background.webp');
  --ui147:url('./assets/ui_211_220/214_result_star_rating_panel.webp');
  --ui148:url('./assets/ui_211_220/215_item_drop_panel.webp');
  --ui149:url('./assets/ui_211_220/218_reward_get_popup_frame.webp');
  --ui150:url('./assets/ui_211_220/220_result_action_button_bg.webp');
}
/* full-page backgrounds */
#homeScreen .pad{background-image:linear-gradient(rgba(255,255,255,.04),rgba(0,0,0,.05)),var(--ui121)!important;background-size:cover!important;background-position:center!important;}
#trainingScreenV24 .pad{background-image:linear-gradient(rgba(255,255,255,.06),rgba(0,0,0,.05)),var(--ui126)!important;background-size:cover!important;background-position:center!important;}
#formationScreenV24 .pad{background-image:linear-gradient(rgba(255,255,255,.06),rgba(0,0,0,.05)),var(--ui131)!important;background-size:cover!important;background-position:center!important;}
#prepScreen .pad{background-image:linear-gradient(rgba(255,255,255,.06),rgba(0,0,0,.07)),var(--ui136)!important;background-size:cover!important;background-position:center!important;}
#stageMapScreen .stageMapPage{background-image:linear-gradient(rgba(255,255,255,.04),rgba(0,0,0,.06)),var(--ui141)!important;background-size:cover!important;background-position:center!important;}
#resultScreen .pad{background-image:linear-gradient(rgba(255,255,255,.05),rgba(0,0,0,.08)),var(--ui146)!important;background-size:cover!important;background-position:center!important;}
/* reusable game panels */
#homeScreen .playerRankPanel{background-image:var(--ui122)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;}
#homeScreen .homeGuestEventBanner{background-image:var(--ui123)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;}
#homeScreen .homeMain .btn,#homeScreen .homeMain .cta,#homeScreen .homeGrid .btn{background-image:var(--ui124)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;color:#321b03!important;text-shadow:0 1px 0 rgba(255,255,255,.5)!important;}
.v246BottomNav{background-image:linear-gradient(rgba(0,0,0,.10),rgba(0,0,0,.25)),var(--ui125)!important;background-size:100% 100%!important;background-color:transparent!important;border-top:0!important;}
#trainingScreenV24 .v24TrainCard,#trainingScreenV24 .v24TrainingMain{background-image:var(--ui127)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;}
#trainingScreenV24 .bar,#trainingScreenV24 .expBar,#trainingScreenV24 [class*="exp"]:not(img):not(button){background-image:var(--ui128);background-size:100% 100%;}
#trainingScreenV24 .v243MaterialPanel,#trainingScreenV24 .v243MaterialBox,#trainingScreenV24 .grid4,#trainingScreenV24 .section:not(.v24TrainingMain){background-image:var(--ui129)!important;background-size:100% 100%!important;background-color:rgba(255,255,255,.72)!important;border-color:transparent!important;}
#trainingScreenV24 .cta,#trainingScreenV24 button[id*="Train"],#trainingScreenV24 button[id*="train"],#trainingScreenV24 button[id*="Use"],#trainingScreenV24 button[id*="use"]{background-image:var(--ui130)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;color:#351d00!important;text-shadow:0 1px 0 rgba(255,255,255,.45)!important;}
#prepScreen .prepStageSummary{background-image:var(--ui137)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;}
#prepScreen .difficultyGrid,#prepScreen .modeSection{background-image:var(--ui138)!important;background-size:100% 100%!important;background-color:rgba(255,255,255,.55)!important;border-color:transparent!important;}
#prepScreen .section:has(.bossSupportGrid),#prepScreen .bossSupportGrid{background-image:var(--ui139)!important;background-size:100% 100%!important;background-color:rgba(255,255,255,.50)!important;border-color:transparent!important;}
#prepScreen #startGame,#prepScreen .cta{background-image:var(--ui140)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;color:#2f1700!important;}
#stageMapScreen .stageMapWrap{background-image:var(--ui142)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;padding:10px!important;box-sizing:border-box!important;}
#stageMapScreen .mapFooter{background-image:var(--ui143)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;border-radius:18px;padding:8px;}
#stageMapScreen .mapNode:not(.boss),#stageMapScreen .stageNode:not(.boss){background-image:var(--ui144)!important;background-size:100% 100%!important;background-color:transparent!important;}
#stageMapScreen .mapNode.boss,#stageMapScreen .stageNode.boss{background-image:var(--ui145)!important;background-size:100% 100%!important;background-color:transparent!important;}
#resultScreen .resultScore,#resultScreen .resultStatus,#resultScreen .resultHighScoreBox{background-image:var(--ui147)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;}
#resultScreen .resultDropBox{background-image:var(--ui148)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;}
#resultScreen .playerExpResult,#resultScreen #rewardText,#resultScreen #resultText{background-image:var(--ui149)!important;background-size:100% 100%!important;background-color:rgba(255,255,255,.50)!important;border-color:transparent!important;border-radius:18px;padding:8px;}
#resultScreen .resultActions .btn,#resultScreen .resultActions .imageStartBtn{background-image:var(--ui150)!important;background-size:100% 100%!important;background-color:transparent!important;border-color:transparent!important;color:#2f1700!important;}
/* legibility guard */
#homeScreen .homeGuestText,#trainingScreenV24 *,#prepScreen *,#resultScreen *,#stageMapScreen .mapFooter *{text-shadow:none!important;}
#trainingScreenV24 h3,#prepScreen h3,#resultScreen b{color:#21154f!important;}
#trainingScreenV24 .helper,#prepScreen .helper,#resultScreen .helper{color:#45395f!important;font-weight:900!important;}

/* ===== END v24_6_1_ui_assets_bind.css ===== */

/* ===== BEGIN v24_6_2_formation_restore.css ===== */
/* v24.6.2 Formation Restore HotFix. Visual/interaction only. */
body.v246-scrollless #formationScreenV24 .pad{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
}
body.v246-scrollless #formationRootV24{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
  padding-bottom:calc(82px + env(safe-area-inset-bottom))!important;
}
.v2462Hero,.v2462TeamPanel,.v2462RosterPanel{
  background:rgba(247,244,225,.94)!important;
  border:2px solid rgba(222,205,137,.92)!important;
  border-radius:22px!important;
  padding:10px!important;
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
  color:#241a42!important;
}
.v2462Hero{flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:8px}
.v2462Hero b{font-size:18px;color:#28185b!important}.v2462Hero span{font-size:12px;font-weight:900;color:#55496d!important}
.v2462DiffTabs{flex:0 0 auto;display:flex;gap:8px;overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding:2px 0 4px}
.v2462DiffTabs button{min-width:116px;border-radius:18px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.9);padding:8px;color:#28185b;font-weight:1000;text-align:left;box-shadow:0 5px 14px rgba(0,0,0,.14)}
.v2462DiffTabs button.active{background:linear-gradient(180deg,#fff4a8,#ffd66b)!important;border-color:#ffe37c;color:#3b2600!important}.v2462DiffTabs span{display:block;font-size:11px;color:#58456d}
.v2462TeamPanel{flex:0 0 auto}.v2462TeamPanel h3,.v2462RosterPanel h3{margin:0 0 6px;color:#28185b!important}.v2462TeamSlots{display:flex;gap:8px;overflow-x:auto!important;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.v2462Slot{min-width:92px;max-width:92px;border:1px solid rgba(70,55,90,.2);border-radius:16px;background:#fff;color:#26184b;padding:7px;text-align:center;font-weight:900}.v2462Slot img{width:54px;height:54px;border-radius:14px;object-fit:cover;display:block;margin:0 auto 4px}.v2462Slot b{display:block;font-size:10px;color:#6a4f00}.v2462Slot span{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v2462Slot.empty{opacity:.62;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:84px;background:rgba(255,255,255,.62)}
.v2462Actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.v2462Actions button{min-height:42px;border-radius:15px;font-weight:1000}
.v2462RosterPanel{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.v2462RosterPanel .helper{color:#55496d!important;font-weight:900;margin-bottom:6px}.v2462Roster{flex:1 1 auto;min-height:0;overflow:auto!important;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:2px 2px 10px}
.v2462Char{display:flex;align-items:center;gap:8px;border-radius:18px;border:1px solid rgba(70,55,90,.18);background:#fff;color:#251848;padding:7px;text-align:left;min-height:72px;box-shadow:0 5px 14px rgba(0,0,0,.10)}.v2462Char.selected{outline:3px solid #ffd766;background:#fff9d8}.v2462Char.locked{opacity:.4}.v2462Char img{width:50px;height:50px;border-radius:14px;object-fit:cover;flex:0 0 auto}.v2462Char b{display:block;color:#28185b!important;font-size:13px}.v2462Char span,.v2462Char small{display:block;color:#594c69!important;font-weight:900;font-size:11px;line-height:1.25}

/* ===== END v24_6_2_formation_restore.css ===== */


/* ===== REMOVED v24_6_3_sortie_start_text_fix.css in v24.8.0 root cleanup ===== */



/* ===== REMOVED v24_7_0_mobile_fixed_layout.css in v24.8.0 root cleanup ===== */




/* ===== v24.8.0 root-clean stable formation + skill center ===== */
.skillOverlay.skillCenterCutin{
  position:fixed!important;
  inset:0!important;
  z-index:1800!important;
  display:none;
  place-items:center!important;
  padding:16px!important;
  background:rgba(10,7,26,.50)!important;
  pointer-events:none!important;
}
.skillOverlay.skillCenterCutin.show{display:grid!important;}
.skillOverlay.skillCenterCutin .skillCard{
  width:min(94vw,680px)!important;
  max-width:680px!important;
  display:block!important;
  padding:0!important;
  border-radius:24px!important;
  overflow:hidden!important;
  background:#20133e!important;
  border:2px solid rgba(255,226,119,.80)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.38)!important;
  text-align:center!important;
  animation:v2480CenterCutin .98s ease forwards!important;
}
.skillOverlay.skillCenterCutin .skillCard img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:46vh!important;
  object-fit:cover!important;
  border-radius:0!important;
  background:#160d2c!important;
}
.skillOverlay.skillCenterCutin .skillCardText{
  padding:12px 14px 14px!important;
  background:linear-gradient(135deg,#2a1856,#4b2676)!important;
}
.skillOverlay.skillCenterCutin .skillTitle{
  font-size:clamp(24px,6vw,38px)!important;
  line-height:1.1!important;
  color:#ffe277!important;
  font-weight:1000!important;
  text-shadow:none!important;
}
.skillOverlay.skillCenterCutin .helper{
  margin-top:4px!important;
  font-size:13px!important;
  color:#fff7d6!important;
  font-weight:900!important;
}
@keyframes v2480CenterCutin{
  0%{opacity:0;transform:scale(.92)}
  14%{opacity:1;transform:scale(1)}
  82%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.02)}
}
.v24CleanCharBtns{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;}
.v24CleanCharBtns button{border:0;border-radius:999px;padding:7px 10px;font-weight:1000;background:#ffe277;color:#22183d;}
.v24CleanCharBtns .remove{background:#fff;color:#5a4d62;border:1px solid rgba(80,60,100,.16);}
.v24CleanEmpty{padding:16px;border-radius:18px;background:#fff9e8;border:1px solid rgba(80,60,100,.16);font-weight:1000;color:#2b214a;}
#formationRootV24 .v2462Slot.leader,#formationRootV24 .v2462Char.leader{outline:3px solid #ffd84e!important;background:#fff7cf!important;}



/* v24.8.2 emergency save compensation panel CSS removed in v24.8.3 */

/* ===== v24.8.7 lightweight nav image binding ===== */
.v246BottomNav.v2487NavLight button[data-v246-tab]{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  min-width:0!important;
  overflow:hidden!important;
}
.v246BottomNav.v2487NavLight .v2487NavIcon{
  width:30px!important;
  height:30px!important;
  object-fit:contain!important;
  display:block!important;
  flex:0 0 auto!important;
  filter:none!important;
}
.v246BottomNav.v2487NavLight .v2487NavLabel{
  font-size:11px!important;
  line-height:1!important;
  font-weight:1000!important;
  color:#1e173c!important;
  text-shadow:0 1px 0 rgba(255,255,255,.82)!important;
  white-space:nowrap!important;
}
.v246BottomNav.v2487NavLight button.v2487Active .v2487NavLabel{
  color:#22123f!important;
}
@media(max-width:380px){
  .v246BottomNav.v2487NavLight .v2487NavIcon{width:26px!important;height:26px!important;}
  .v246BottomNav.v2487NavLight .v2487NavLabel{font-size:10px!important;}
}

/* ===== v24.8.9 Mobile Layout + Sortie/Puzzle Play Fix ===== */
:root{
  --v2489-nav-h: 96px;
  --v2489-safe-bottom: max(18px, env(safe-area-inset-bottom, 0px));
}
body{overscroll-behavior:none;}
.screen{min-height:100svh;}
.screen.active{display:block;}
.screen .pad,
.homePad,
.sortiePad{
  padding-bottom:calc(var(--v2489-nav-h) + var(--v2489-safe-bottom) + 18px)!important;
}
.bottomNav,.v2487BottomNav,.bottomNavV24{
  position:fixed!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  bottom:calc(env(safe-area-inset-bottom, 0px) + 6px)!important;
  z-index:2500!important;
  width:min(96vw, 560px)!important;
  min-height:74px!important;
  padding:8px 10px!important;
  border-radius:20px!important;
  background:rgba(42,38,32,.62)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.bottomNav button,.v2487BottomNav button,.bottomNavV24 button{
  min-height:58px!important;
  touch-action:manipulation!important;
}
/* ホーム：スマホでは主要機能を優先し、セーブ保護を圧縮 */
@media(max-width:560px){
  #homeScreen .saveGuardPanel,
  #homeScreen #saveGuardPanelV24{
    padding:10px!important;
    margin:10px 0 calc(var(--v2489-nav-h) + 16px)!important;
    border-radius:18px!important;
  }
  #homeScreen #saveGuardPanelV24 h3{font-size:15px!important;margin:0 0 6px!important;}
  #homeScreen #saveGuardPanelV24 .saveGuardStatus{
    padding:8px 10px!important;
    border-radius:14px!important;
  }
  #homeScreen #saveGuardPanelV24 .saveGuardStatus b{font-size:15px!important;}
  #homeScreen #saveGuardPanelV24 .saveGuardStatus span{font-size:10px!important;word-break:break-all;}
  #homeScreen #saveGuardPanelV24 .saveGuardStatus small{font-size:11px!important;line-height:1.3!important;}
  #homeScreen #saveGuardPanelV24 .saveGuardBtns{display:none!important;}
  #homeScreen #saveGuardPanelV24 .helper{display:none!important;}
}
/* 出撃準備：詳細は内部スクロール、開始ボタンは固定 */
#prepScreen .sortiePad{
  min-height:100svh!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
#prepScreen .currency,
#prepScreen .playerRankPanel,
#prepScreen .stageSelectSection,
#prepScreen .section:has(#leaderList),
#prepScreen .section:has(#rosterList){
  display:none!important;
}
#prepScreen .prepStageSummary,
#prepScreen .visibilityPreview,
#prepScreen .section{
  background:rgba(255,255,255,.74)!important;
  color:#18142e!important;
}
#prepScreen .helper,
#prepScreen .prepStageMeta,
#prepScreen .visibilityPreview p,
#prepScreen .visibilityPreview span{
  color:#241b45!important;
  text-shadow:none!important;
}
#prepScreen .prepStageName,
#prepScreen h3,
#prepScreen b{
  color:#1b1636!important;
  text-shadow:none!important;
}
#startGame{
  position:fixed!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  bottom:calc(var(--v2489-nav-h) + env(safe-area-inset-bottom, 0px) + 10px)!important;
  z-index:3400!important;
  width:min(90vw, 520px)!important;
  min-height:64px!important;
  border-radius:999px!important;
  touch-action:manipulation!important;
  pointer-events:auto!important;
  box-shadow:0 8px 22px rgba(0,0,0,.24)!important;
}
#v2489FixedStart{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:calc(var(--v2489-nav-h) + env(safe-area-inset-bottom, 0px) + 10px);
  z-index:3600;
  width:min(90vw, 520px);
  min-height:66px;
  border:0;
  border-radius:999px;
  background:linear-gradient(180deg,#fff18d,#ffbf4e 62%,#ff91bd);
  color:#221638;
  font-weight:1000;
  font-size:clamp(18px,5vw,24px);
  box-shadow:0 8px 22px rgba(0,0,0,.28),0 5px 0 rgba(93,55,0,.34);
  display:none;
  touch-action:manipulation;
}
body.v2489-prep-active #v2489FixedStart{display:block;}
body.v2489-prep-active .bottomNav,
body.v2489-prep-active .v2487BottomNav,
body.v2489-prep-active .bottomNavV24{
  opacity:.42!important;
  pointer-events:none!important;
}
/* パズル画面：ナビ非表示、盤面優先 */
body.battle-active .bottomNav,
body.battle-active .v2487BottomNav,
body.battle-active .bottomNavV24{display:none!important;}
body.battle-active #gameScreen .pad{
  min-height:100svh!important;
  padding:8px 10px calc(env(safe-area-inset-bottom, 0px) + 12px)!important;
  overflow:hidden!important;
}
body.battle-active #gameScreen .bossArea{margin:4px 0 6px!important;padding:8px!important;}
body.battle-active #gameScreen .boardTop{gap:6px!important;margin-bottom:6px!important;}
body.battle-active #gameScreen .bars{gap:5px!important;margin-bottom:7px!important;}
body.battle-active #gameScreen .board{max-height:58svh!important;}
body.battle-active #gameScreen .battleBottom{position:sticky!important;bottom:0!important;margin-top:8px!important;}
/* 図鑑・一覧系は下部余白を厚めに */
#collectionScreen .pad,
#trainingScreen .pad,
#awakenScreen .pad,
#missionScreen .pad,
#itemScreen .pad,
#highScoreScreen .pad,
#loginBonusScreen .pad{
  padding-bottom:calc(var(--v2489-nav-h) + var(--v2489-safe-bottom) + 28px)!important;
}
@supports not selector(:has(*)){
  #prepScreen .stageSelectSection{display:none!important;}
}

/* ===== BEGIN v24.9.0 Mobile UI Stable =====
   Goal: keep sortie->puzzle playable, reduce bottom nav overlap, make phone pages reachable.
   Save/ranking logic untouched.
*/
:root{
  --v2490-nav-h:82px;
  --v2490-safe-bottom:env(safe-area-inset-bottom, 0px);
  --v2490-page-pad-bottom:calc(var(--v2490-nav-h) + var(--v2490-safe-bottom) + 26px);
}
html,body{height:100%;}
body{overflow:hidden!important;}
.app{height:100svh!important;max-height:100svh!important;overflow:hidden!important;}
.screen.active:not(#titleScreen):not(#gameScreen){
  height:100svh!important;
  max-height:100svh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  box-sizing:border-box!important;
}
.screen.active:not(#titleScreen):not(#gameScreen)>.pad,
.screen.active:not(#titleScreen):not(#gameScreen) .stageMapPage{
  min-height:auto!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:var(--v2490-page-pad-bottom)!important;
  box-sizing:border-box!important;
}
/* Bottom nav: one stable bar, never stealing content space. */
#v246BottomNav,
.v246BottomNav,
.bottomNav,
.v2487BottomNav,
.bottomNavV24{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  bottom:calc(var(--v2490-safe-bottom) + 8px)!important;
  z-index:3100!important;
  width:min(94vw, 520px)!important;
  height:74px!important;
  min-height:74px!important;
  padding:7px 8px!important;
  border-radius:22px!important;
  box-sizing:border-box!important;
  background:rgba(43,38,30,.68)!important;
  backdrop-filter:blur(11px)!important;
  -webkit-backdrop-filter:blur(11px)!important;
  border:1px solid rgba(255,255,255,.24)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.24)!important;
}
body.v246-show-nav #v246BottomNav,
body.v246-show-nav .v246BottomNav{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:7px!important;}
#v246BottomNav button,
.v246BottomNav button,
.bottomNav button,
.v2487BottomNav button,
.bottomNavV24 button{
  min-width:0!important;
  min-height:58px!important;
  height:58px!important;
  padding:3px 2px!important;
  border-radius:16px!important;
  color:#1f183c!important;
  background:rgba(255,255,255,.62)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.75)!important;
  font-size:10px!important;
  line-height:1.05!important;
  overflow:hidden!important;
}
#v246BottomNav button.active,
.v246BottomNav button.active,
#v246BottomNav button.v2487Active,
.v246BottomNav button.v2487Active{
  background:linear-gradient(180deg,#fff3a7,#ffd166)!important;
  border-color:rgba(255,255,255,.86)!important;
  box-shadow:0 3px 0 rgba(142,91,0,.28)!important;
}
.v246BottomNav.v2487NavLight .v2487NavIcon{
  width:31px!important;
  height:31px!important;
  object-fit:contain!important;
  border-radius:8px!important;
  background:transparent!important;
}
.v246BottomNav.v2487NavLight .v2487NavLabel{font-size:10px!important;color:#1f183c!important;}
/* Home compaction */
#homeScreen .homePad{gap:7px!important;padding-top:8px!important;}
#homeScreen .homeCurrency{gap:8px!important;margin:6px 0!important;}
#homeScreen .homeCurrency .cur{padding:8px 10px!important;min-height:54px!important;}
#homeScreen .playerRankPanel{max-height:54px!important;overflow:hidden!important;padding:6px 10px!important;}
#homeScreen .homeGuestEventBanner{min-height:48px!important;max-height:54px!important;overflow:hidden!important;margin:4px 0!important;}
#homeScreen .homeGuestEventBanner img{height:48px!important;object-fit:cover!important;}
#homeScreen .homeGuestText b{font-size:14px!important;line-height:1.1!important;}
#homeScreen .homeGuestText span{font-size:11px!important;line-height:1.15!important;}
#homeScreen .homeMain{gap:8px!important;margin:5px 0!important;}
#homeScreen .homeMain button{min-height:48px!important;font-size:clamp(18px,5vw,24px)!important;}
#homeScreen .homeGrid{
  max-height:238px!important;
  min-height:0!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  padding:2px 2px 10px!important;
  gap:7px!important;
}
#homeScreen .homeGrid .btn{min-height:42px!important;padding:7px 5px!important;font-size:15px!important;}
#homeScreen #saveGuardPanelV24,
#homeScreen .saveGuardPanelV24{
  max-height:118px!important;
  overflow:hidden!important;
  margin:8px 0 0!important;
  padding:9px!important;
  border-radius:18px!important;
}
#homeScreen #saveGuardPanelV24 h3{font-size:14px!important;margin:0 0 5px!important;}
#homeScreen #saveGuardPanelV24 .saveGuardStatus{padding:8px 10px!important;}
#homeScreen #saveGuardPanelV24 .saveGuardStatus b{font-size:16px!important;}
#homeScreen #saveGuardPanelV24 .saveGuardStatus span{font-size:10px!important;word-break:break-all!important;}
#homeScreen #saveGuardPanelV24 .saveGuardStatus small{font-size:11px!important;line-height:1.25!important;}
#homeScreen #saveGuardPanelV24 .saveGuardBtns,
#homeScreen #saveGuardPanelV24 .helper{display:none!important;}
/* Map and sortie should not be hidden behind nav */
#stageMapScreen .stageMapPage{padding-bottom:var(--v2490-page-pad-bottom)!important;}
#stageMapScreen .stageMapWrap{height:calc(100svh - 140px - var(--v2490-nav-h) - var(--v2490-safe-bottom))!important;min-height:440px!important;max-height:none!important;}
#prepScreen .sortiePad{padding-bottom:calc(var(--v2490-nav-h) + var(--v2490-safe-bottom) + 92px)!important;}
#v2489FixedStart,#startGame{
  bottom:calc(var(--v2490-nav-h) + var(--v2490-safe-bottom) + 12px)!important;
}
body.v2489-prep-active #v246BottomNav,
body.v2489-prep-active .v246BottomNav{opacity:.34!important;pointer-events:none!important;}
body.battle-active #v246BottomNav,
body.battle-active .v246BottomNav,
body.battle-active .bottomNav,
body.battle-active .v2487BottomNav,
body.battle-active .bottomNavV24{display:none!important;}
/* Generic content reachability */
#collectionScreen .grid4,#bossScreen .grid4{padding-bottom:calc(var(--v2490-nav-h) + 20px)!important;}
#missionScreen .tabs{position:sticky!important;top:0!important;z-index:5!important;background:rgba(22,34,28,.78)!important;border-radius:18px!important;padding:6px!important;}
#missionScreen #missionList,#itemScreen #itemList,#presentBoxScreen #presentList{padding-bottom:calc(var(--v2490-nav-h) + 24px)!important;}
/* Dark background readability */
#loginBonusScreen .topbar b,#missionScreen .topbar b,#itemScreen .topbar b,#profileScreen .topbar b,#highScoreScreen .topbar b,
#collectionScreen .topbar b,#bossScreen .topbar b{
  color:#fff7d6!important;
  text-shadow:0 2px 7px rgba(0,0,0,.58)!important;
}
#loginBonusScreen .loginStatusRow *,#missionScreen .tabs .btn,#itemScreen .helper,#profileScreen .helper,#highScoreScreen .helper{
  color:#fff7d6!important;
  text-shadow:0 1px 6px rgba(0,0,0,.62)!important;
}
.section,.card,.cur,.resultHero,.saveGuardStatus{
  color:#1c1737;
}
@media(max-width:390px){
  :root{--v2490-nav-h:78px;}
  #v246BottomNav,.v246BottomNav,.bottomNav,.v2487BottomNav,.bottomNavV24{width:96vw!important;height:70px!important;min-height:70px!important;padding:6px 7px!important;}
  #v246BottomNav button,.v246BottomNav button{height:55px!important;min-height:55px!important;font-size:9px!important;}
  .v246BottomNav.v2487NavLight .v2487NavIcon{width:28px!important;height:28px!important;}
  #homeScreen .homeGrid{max-height:218px!important;}
}
/* ===== END v24.9.0 Mobile UI Stable ===== */
.collectionFilterV2490{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 10px;position:sticky;top:0;z-index:4;background:rgba(22,34,28,.72);padding:6px;border-radius:18px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.collectionFilterV2490 button{border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:10px 8px;background:rgba(255,255,255,.72);color:#241b45;font-weight:1000;font-size:14px}.collectionFilterV2490 button.active{background:linear-gradient(180deg,#fff3a7,#ffd166);color:#251400}.v2490EmptyCollection{grid-column:1/-1;padding:18px;border-radius:18px;background:#fff8da;color:#241b45;font-weight:1000;text-align:center}



/* =============================================================
 v24.9.5 Nyanko Event Map
 - Dedicated event map screen
 - Uses uploaded Nyanko Star King images lazily
 - No save reset / no ranking changes
 ============================================================= */
body.v2495-nyanko-event-active #v246BottomNav,
body.v2495-nyanko-event-active .v246BottomNav,
body.v2495-nyanko-event-active #v246MorePanel,
body.v2495-nyanko-event-active .v246MorePanel{
  display:none!important;
}
#nyankoEventMapScreen{
  background:#102116;
  color:#211842;
}
#nyankoEventMapScreen.active{
  display:block!important;
  height:100dvh!important;
  max-height:100dvh!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
}
.nyankoEventMapPage{
  min-height:100dvh;
  padding:calc(env(safe-area-inset-top,0px) + 14px) 14px calc(env(safe-area-inset-bottom,0px) + 104px);
  background:
    radial-gradient(circle at 50% 8%,rgba(255,231,112,.22),transparent 24%),
    linear-gradient(180deg,#251543 0%,#111f18 100%);
}
.nyankoEventTopbar{
  display:grid;
  grid-template-columns:112px 1fr 112px;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.nyankoEventTopbar b{
  text-align:center;
  color:#fff6ca;
  font-size:20px;
  font-weight:1000;
  text-shadow:0 2px 8px rgba(0,0,0,.55);
}
.nyankoEventTopbar .mini{
  min-height:52px;
  border-radius:24px;
  font-size:16px;
  font-weight:1000;
}
.nyankoEventHero{
  border-radius:24px;
  overflow:hidden;
  background:#fff;
  border:2px solid rgba(255,229,132,.75);
  box-shadow:0 14px 30px rgba(0,0,0,.28);
  margin-bottom:12px;
}
.nyankoEventHero img{
  display:block;
  width:100%;
  aspect-ratio:1536/658;
  object-fit:cover;
}
.nyankoEventLead{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:12px;
  align-items:center;
  border-radius:24px;
  padding:12px;
  background:rgba(255,250,236,.94);
  border:2px solid rgba(255,218,98,.62);
  color:#211842;
  margin-bottom:12px;
}
.nyankoEventLead img{
  width:92px;
  height:92px;
  object-fit:cover;
  border-radius:18px;
  background:#fff;
  box-shadow:0 6px 14px rgba(0,0,0,.18);
}
.nyankoEventLead b{
  display:block;
  font-size:20px;
  line-height:1.2;
  margin-bottom:4px;
}
.nyankoEventLead span{
  font-size:13px;
  font-weight:850;
  line-height:1.45;
}
.nyankoEventNodeList{
  display:grid;
  gap:12px;
}
.nyankoEventNode{
  display:grid;
  grid-template-columns:104px 1fr;
  gap:12px;
  align-items:center;
  border:0;
  width:100%;
  text-align:left;
  border-radius:24px;
  padding:10px;
  background:linear-gradient(180deg,#fffdf4,#ffe9a9);
  color:#22113c;
  box-shadow:0 8px 16px rgba(0,0,0,.20);
  touch-action:manipulation;
}
.nyankoEventNode img{
  width:104px;
  height:70px;
  border-radius:16px;
  object-fit:cover;
  background:#fff;
}
.nyankoEventNode b{
  display:block;
  font-size:18px;
  font-weight:1000;
  line-height:1.22;
}
.nyankoEventNode small{
  display:block;
  margin-top:4px;
  font-size:12px;
  font-weight:850;
  color:#4b2b68;
  line-height:1.35;
}
.nyankoEventNode .nyankoNodeTag{
  display:inline-block;
  margin-top:8px;
  padding:4px 9px;
  border-radius:999px;
  background:#6f3dbb;
  color:#fff;
  font-size:11px;
  font-weight:1000;
}
.nyankoEventNote{
  margin-top:12px;
  padding:10px 12px;
  border-radius:18px;
  background:rgba(255,255,255,.72);
  color:#211842;
  font-size:12px;
  line-height:1.5;
  font-weight:850;
}
@media(max-width:430px){
  .nyankoEventMapPage{padding-left:10px;padding-right:10px;}
  .nyankoEventTopbar{grid-template-columns:96px 1fr 96px;}
  .nyankoEventTopbar b{font-size:17px;}
  .nyankoEventTopbar .mini{min-height:48px;font-size:14px;}
  .nyankoEventLead{grid-template-columns:78px 1fr;padding:10px;}
  .nyankoEventLead img{width:78px;height:78px;}
  .nyankoEventLead b{font-size:17px;}
  .nyankoEventNode{grid-template-columns:88px 1fr;padding:9px;border-radius:20px;}
  .nyankoEventNode img{width:88px;height:60px;}
  .nyankoEventNode b{font-size:16px;}
}

/* ===== BEGIN v24.9.6 event quality + map/gacha/readability fix ===== */
.mapNodeStars,
.stageInfoStars,
.stageRecordRank,
.stageRecordRank .miniHsBadge + *{
  color:#ffd84e!important;
  -webkit-text-stroke:.6px rgba(90,48,0,.45);
  text-shadow:0 1px 0 #6d3f00,0 0 8px rgba(255,216,78,.95),0 0 3px rgba(255,255,255,.9)!important;
  font-weight:1000!important;
}
.stageInfoStars{font-size:30px!important;letter-spacing:3px!important;line-height:1!important;}
.mapNodeStars{font-size:19px!important;letter-spacing:1px!important;line-height:1!important;}
.mapNode.event img{border-radius:14px!important;box-shadow:0 0 0 2px rgba(255,216,78,.75),0 8px 20px rgba(0,0,0,.35)!important;}

/* Home event banners: stop text from sitting directly on busy art. */
.homeGuestEventBanner{
  display:grid!important;
  grid-template-columns:76px 1fr!important;
  align-items:center!important;
  gap:8px!important;
  min-height:72px!important;
  padding:7px 10px!important;
  background:rgba(255,255,255,.74)!important;
  border:1px solid rgba(255,226,119,.48)!important;
  box-shadow:0 8px 18px rgba(0,0,0,.15)!important;
}
.homeGuestEventBanner>img{
  width:76px!important;
  height:54px!important;
  border-radius:13px!important;
  object-fit:cover!important;
  filter:saturate(1.04) brightness(.98)!important;
  box-shadow:0 5px 12px rgba(0,0,0,.18)!important;
}
.homeGuestEventBanner .homeGuestText{
  position:static!important;
  inset:auto!important;
  padding:5px 7px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.82)!important;
  border:1px solid rgba(255,255,255,.58)!important;
  text-shadow:none!important;
  min-width:0!important;
}
.homeGuestEventBanner .homeGuestText b{color:#211842!important;font-size:14px!important;line-height:1.2!important;}
.homeGuestEventBanner .homeGuestText span{color:#211842!important;font-size:10.5px!important;line-height:1.3!important;opacity:1!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.homeNyankoEventBanner{background:linear-gradient(90deg,rgba(255,249,229,.88),rgba(255,229,246,.82))!important;}

/* Dedicated nyanko map: real map screen, not a vertical card list. */
body.v2496-nyanko-map-active #v246BottomNav,
body.v2496-nyanko-map-active .v246BottomNav,
body.v2496-nyanko-map-active .bottomNav,
body.v2496-nyanko-map-active .bottomNavV24,
body.v2496-nyanko-map-active .v2487BottomNav,
body.v2496-nyanko-map-active .appBottomNav,
body.v2496-nyanko-map-active .mainBottomNav{display:none!important;}
#nyankoEventMapScreen{background:#171027!important;color:#211842!important;}
#nyankoEventMapScreen.active{display:block!important;height:100dvh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;}
.nyankoMapV2496{min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px calc(env(safe-area-inset-bottom,0px) + 96px);background:linear-gradient(180deg,#130a2c,#20143e 58%,#110c20);}
.nyankoMapTop{display:grid;grid-template-columns:94px 1fr 46px;gap:8px;align-items:center;margin:0 0 10px;}
.nyankoMapTop strong{color:#fff5c9;font-size:19px;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.nyankoMapTop button{min-height:46px;border:0;border-radius:999px;background:rgba(255,255,255,.88);color:#211842;font-weight:1000;font-size:14px;box-shadow:0 4px 14px rgba(0,0,0,.18);}
.nyankoMapHero{position:relative;border-radius:24px;overflow:hidden;min-height:68dvh;box-shadow:0 14px 34px rgba(0,0,0,.32);border:1px solid rgba(255,226,119,.38);background:#241442;}
.nyankoMapBg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.05) brightness(.92);}
.nyankoMapRoute{position:absolute;inset:0;}
.nyankoMapNode{position:absolute;transform:translate(-50%,-50%);width:min(78vw,340px);display:grid;grid-template-columns:74px 1fr;gap:8px;align-items:center;padding:8px;border:0;border-radius:22px;background:linear-gradient(180deg,rgba(255,251,232,.94),rgba(255,226,132,.88));box-shadow:0 9px 24px rgba(0,0,0,.35),0 0 0 2px rgba(255,255,255,.52);color:#211842;text-align:left;touch-action:manipulation;}
.nyankoMapNode.boss{background:linear-gradient(180deg,rgba(255,242,196,.98),rgba(218,169,255,.9));box-shadow:0 0 0 2px rgba(255,226,119,.75),0 12px 28px rgba(0,0,0,.38);}
.nyankoMapNode.locked{filter:grayscale(.55) brightness(.75);opacity:.72;}
.nyankoMapNode.cleared:after{content:'CLEAR';position:absolute;right:8px;top:-10px;border-radius:999px;padding:4px 8px;background:#8affb3;color:#183018;font-weight:1000;font-size:11px;box-shadow:0 4px 10px rgba(0,0,0,.24);}
.nyankoMapNodePic{display:block;width:74px;height:50px;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 4px 10px rgba(0,0,0,.18);}
.nyankoMapNodePic img{width:100%;height:100%;object-fit:cover;display:block;}
.nyankoMapNodeText b{display:block;font-size:15px;line-height:1.18;font-weight:1000;color:#211842;}
.nyankoMapNodeText small{display:block;margin-top:2px;font-size:10.5px;line-height:1.2;color:#3a2a5f;font-weight:900;}
.nyankoMapNodeText em{display:inline-block;margin-top:3px;padding:3px 8px;border-radius:999px;background:#7a3cd3;color:#fff;font-style:normal;font-size:10px;font-weight:1000;letter-spacing:.05em;}
.nyankoMapInfo{display:grid;grid-template-columns:74px 1fr;gap:10px;margin:12px 0 0;padding:10px;border-radius:20px;background:rgba(255,255,255,.88);box-shadow:0 8px 20px rgba(0,0,0,.20);}
.nyankoMapInfo img{width:74px;height:74px;object-fit:contain;border-radius:16px;background:rgba(255,255,255,.55);}
.nyankoMapInfo b{display:block;color:#211842;font-size:18px;font-weight:1000;}
.nyankoMapInfo span,.nyankoMapInfo small{display:block;color:#211842;font-size:12px;line-height:1.4;font-weight:850;}
@media(max-width:430px){.nyankoMapNode{width:82vw;grid-template-columns:64px 1fr;padding:7px}.nyankoMapNodePic{width:64px;height:44px}.nyankoMapNodeText b{font-size:14px}.nyankoMapHero{min-height:66dvh}}

/* Gacha result image must always be visible. */
.v2496GachaResult{background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(245,245,245,.90))!important;color:#211842!important;overflow:visible!important;}
.v2496GachaIconWrap{display:grid;place-items:center;width:164px;height:164px;margin:10px auto;border-radius:28px;background:linear-gradient(180deg,#fff,#f0f0f0);box-shadow:inset 0 0 0 1px rgba(0,0,0,.06),0 10px 24px rgba(0,0,0,.16);}
.v2496GachaResult .gachaResultChara{display:block!important;width:150px!important;height:150px!important;object-fit:contain!important;margin:0!important;border-radius:22px!important;background:transparent!important;opacity:1!important;filter:none!important;}
.v2496GachaResult .gachaResultBanner{display:block!important;max-height:92px!important;width:100%!important;object-fit:contain!important;margin:0 auto 6px!important;opacity:1!important;}
.v2496GachaResult .gachaResultBadge{color:#211842!important;text-shadow:0 1px 0 rgba(255,255,255,.8)!important;font-size:26px!important;}
.v2496GachaResult .name{color:#211842!important;font-size:20px!important;}
.v2496GachaResult .helper{color:#3a2a5f!important;font-size:13px!important;}
/* ===== END v24.9.6 event quality + map/gacha/readability fix ===== */


/* ===== BEGIN v24.9.7 gold star rendering ===== */
.mapNodeStars{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:1px!important;
  min-width:44px!important;
  color:#ffd84e!important;
  -webkit-text-fill-color:#ffd84e!important;
  -webkit-text-stroke:0!important;
  text-shadow:0 0 3px #fff8b6,0 1px 3px rgba(86,42,0,.75),0 0 9px rgba(255,216,78,.95)!important;
  filter:none!important;
  mix-blend-mode:normal!important;
}
.v2497MapStar{
  display:inline-block!important;
  width:18px!important;
  height:18px!important;
  object-fit:contain!important;
  margin:0 -1px!important;
  opacity:1!important;
  filter:drop-shadow(0 0 2px rgba(255,255,255,.95)) drop-shadow(0 1px 3px rgba(92,48,0,.72))!important;
  mix-blend-mode:normal!important;
}
.stageInfoStars{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
}
.stageInfoStars .v2497MapStar{
  width:30px!important;
  height:30px!important;
  margin:0 1px!important;
}
.v2497MapStar.off{
  opacity:.45!important;
  filter:grayscale(.15) drop-shadow(0 0 2px rgba(255,255,255,.75))!important;
}
.collectionGuestBadge.nyanko{
  background:linear-gradient(90deg,#ffd3ed,#cfe6ff)!important;
  color:#221638!important;
}
/* ===== END v24.9.7 gold star rendering ===== */


/* ===== BEGIN v24.9.8 event map restore + item drop readability ===== */
body.v2498-nyanko-map-active #v246BottomNav,
body.v2498-nyanko-map-active .v246BottomNav,
body.v2498-nyanko-map-active .bottomNav,
body.v2498-nyanko-map-active .bottomNavV24,
body.v2498-nyanko-map-active .v2487BottomNav,
body.v2498-nyanko-map-active .appBottomNav,
body.v2498-nyanko-map-active .mainBottomNav{display:none!important;}

#nyankoEventMapScreen.active{display:block!important;height:100dvh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;background:#12091f!important;}
.v2498NyankoMap{min-height:100dvh;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px calc(env(safe-area-inset-bottom,0px) + 92px);background:linear-gradient(180deg,#12091f,#1a0f31 62%,#10091e);color:#211842;}
.v2498NyankoTop{display:grid;grid-template-columns:104px 1fr 52px;gap:8px;align-items:center;margin-bottom:10px;}
.v2498NyankoTop strong{text-align:center;color:#fff4c7;font-size:19px;font-weight:1000;text-shadow:0 2px 10px rgba(0,0,0,.65);}
.v2498NyankoTop button{min-height:48px;border:0;border-radius:999px;background:rgba(255,255,255,.91);color:#211842;font-weight:1000;font-size:15px;box-shadow:0 6px 16px rgba(0,0,0,.22);touch-action:manipulation;}
.v2498MapStage{position:relative;width:100%;height:min(72dvh,760px);min-height:560px;border-radius:25px;overflow:hidden;background:#1d1235;border:2px solid rgba(255,224,113,.52);box-shadow:0 16px 38px rgba(0,0,0,.34);}
.v2498MapBg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;filter:saturate(1.03) brightness(.92);}
.v2498MapShade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,4,28,.08),rgba(12,4,28,.12) 55%,rgba(12,4,28,.35));pointer-events:none;}
.v2498MapNodes{position:absolute;inset:0;}
.v2498NyankoNode{position:absolute;transform:translate(-50%,-50%);width:min(82vw,355px);display:grid;grid-template-columns:74px 1fr;gap:9px;align-items:center;padding:8px;border:0;border-radius:22px;text-align:left;background:linear-gradient(180deg,rgba(255,255,249,.94),rgba(255,231,143,.92));box-shadow:0 11px 26px rgba(0,0,0,.38),0 0 0 2px rgba(255,255,255,.62);color:#211842;touch-action:manipulation;}
.v2498NyankoNode.boss{background:linear-gradient(180deg,rgba(255,248,212,.97),rgba(224,183,255,.94));box-shadow:0 0 0 2px rgba(255,224,96,.85),0 12px 30px rgba(0,0,0,.42);}
.v2498NyankoNode.locked{filter:grayscale(.55) brightness(.76);opacity:.70;}
.v2498NyankoNode.cleared:after{content:'CLEAR';position:absolute;right:10px;top:-11px;padding:4px 9px;border-radius:999px;background:#8affb4;color:#183018;font-size:11px;font-weight:1000;box-shadow:0 4px 12px rgba(0,0,0,.25);}
.v2498NodeThumb{display:block;width:74px;height:50px;border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 5px 12px rgba(0,0,0,.20);}
.v2498NodeThumb img{width:100%;height:100%;display:block;object-fit:cover;}
.v2498NodeText b{display:block;font-size:15px;font-weight:1000;line-height:1.18;color:#211842;}
.v2498NodeText small{display:block;margin-top:2px;font-size:10.5px;line-height:1.2;font-weight:900;color:#382653;}
.v2498NodeText em{display:inline-block;margin-top:4px;padding:3px 9px;border-radius:999px;background:#7138c8;color:#fff;font-style:normal;font-size:10px;font-weight:1000;letter-spacing:.06em;}
.v2498EventInfo{display:grid;grid-template-columns:78px 1fr;gap:11px;align-items:center;margin-top:12px;padding:11px;border-radius:20px;background:rgba(255,255,255,.90);border:1px solid rgba(255,231,150,.55);box-shadow:0 10px 24px rgba(0,0,0,.22);}
.v2498EventInfo img{width:78px;height:78px;object-fit:contain;border-radius:16px;background:rgba(255,255,255,.65);}
.v2498EventInfo b{display:block;font-size:18px;font-weight:1000;color:#211842;}
.v2498EventInfo span,.v2498EventInfo small{display:block;font-size:12px;line-height:1.4;font-weight:850;color:#211842;}
@media(max-width:430px){.v2498NyankoMap{padding-left:10px;padding-right:10px}.v2498NyankoTop{grid-template-columns:96px 1fr 48px}.v2498NyankoTop strong{font-size:17px}.v2498MapStage{height:70dvh;min-height:540px}.v2498NyankoNode{width:84vw;grid-template-columns:64px 1fr;padding:7px}.v2498NodeThumb{width:64px;height:44px}.v2498NodeText b{font-size:14px}.v2498NodeText small{font-size:10px}}

/* Item drop result readability. Keep existing animation, but make the drops readable on mobile. */
.dropFxBox{background:linear-gradient(180deg,rgba(255,252,240,.92),rgba(255,236,178,.86))!important;border:2px solid rgba(255,226,119,.65)!important;box-shadow:0 16px 38px rgba(0,0,0,.22)!important;color:#211842!important;}
.dropFxBox:before{opacity:.10!important;}
.dropFxBanner{max-height:116px!important;object-fit:cover!important;opacity:.78!important;filter:none!important;}
.dropFxChestWrap{display:none!important;}
.dropFxPanel{background:rgba(255,255,255,.90)!important;border:1px solid rgba(77,54,24,.16)!important;border-radius:22px!important;padding:12px!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.50)!important;}
.dropFxTitle{color:#211842!important;text-shadow:none!important;font-size:18px!important;letter-spacing:.10em!important;margin-bottom:10px!important;}
.dropFxGrid{gap:10px!important;}
.dropFxCard{min-height:144px!important;background:linear-gradient(180deg,#fffaf0,#fff3ce)!important;border:1px solid rgba(134,98,29,.18)!important;border-radius:20px!important;box-shadow:0 8px 18px rgba(0,0,0,.14)!important;padding:8px!important;overflow:hidden!important;}
.dropFrame{opacity:.72!important;filter:none!important;}
.dropItemIcon{width:68px!important;height:68px!important;filter:drop-shadow(0 5px 9px rgba(0,0,0,.20))!important;}
.dropItemName{color:#211842!important;text-shadow:0 1px 0 rgba(255,255,255,.85)!important;font-size:12px!important;line-height:1.25!important;max-width:92%;}
.dropItemAmount{color:#211842!important;text-shadow:0 1px 0 rgba(255,255,255,.85)!important;font-size:17px!important;}
.dropItemRarity{background:linear-gradient(180deg,#5f3a9e,#3d2569)!important;color:#fff!important;font-size:10px!important;box-shadow:0 3px 8px rgba(0,0,0,.16)!important;}
.dropFxFooter{color:#211842!important;text-shadow:none!important;font-size:12px!important;}
.resultDropBox,.resultDropBox.show{margin-bottom:18px!important;}
@media(max-width:430px){.dropFxPanel{padding:10px!important}.dropFxGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dropFxCard{min-height:132px!important}.dropItemIcon{width:60px!important;height:60px!important}.dropItemName{font-size:11px!important}.dropFxTitle{font-size:16px!important}}
/* ===== END v24.9.8 event map restore + item drop readability ===== */

/* END ./app_current.css */

/* BEGIN ./app_event.css */
/* Gariben Kirakira Puzzle consolidated event CSS bundle - generated v24.7.2 */

/* ===== BEGIN v24_2_0_materials_event_only.css ===== */
/* v24.2.0 育成素材UI・イベント専用キャラ */
.v242MaterialPanel{margin-top:14px;padding:14px;border-radius:22px;background:linear-gradient(180deg,rgba(255,252,238,.96),rgba(239,234,255,.94));border:2px solid rgba(123,105,170,.28);box-shadow:0 8px 18px rgba(30,20,60,.12);color:#342556!important}.v242MaterialPanel h3{margin:0 0 10px;color:#2f2361!important}.v242MaterialGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.v242Mat,.v242MatCoin{min-height:78px;border-radius:18px;padding:9px;background:rgba(255,255,255,.86);border:1px solid rgba(74,64,120,.18);display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto auto;column-gap:10px;align-items:center;color:#342556!important}.v242Mat img{grid-row:1/4;width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.12))}.v242Mat b,.v242MatCoin b{font-size:13px;color:#2f2361!important}.v242Mat span,.v242Mat small,.v242MatCoin span,.v242MatCoin small{font-size:12px;color:#5d537e!important}.v242Mat.lack{background:rgba(255,236,232,.94);border-color:rgba(220,80,80,.35)}.v242Mat.ok{border-color:rgba(92,180,110,.35)}.v242MatCoin{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.v242MaterialHelp{font-size:12px;color:#5d537e!important;margin-top:8px;line-height:1.45}.v242MaterialPopup{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:min(88vw,520px);border-radius:26px;background:rgba(255,252,242,.98);border:2px solid rgba(122,96,170,.35);box-shadow:0 18px 50px rgba(0,0,0,.3);padding:18px;z-index:9999;text-align:center;color:#2f2361}.v242MaterialPopup img{width:100%;max-height:170px;object-fit:contain;opacity:.85}.v242MaterialPopupBody{font-weight:900;font-size:18px;line-height:1.55;color:#2f2361}.v24TrainingMain,.v24TrainCard,.v24Hero.training{background-color:rgba(255,252,242,.94)!important;color:#2f2361!important}.v24TrainingMain .helper,.v24TrainCard p,.rankExpText{color:#4f456f!important}.v24TrainingMain .cta,.v24TrainingMain .btn{color:#3a240c!important;text-shadow:none!important}@media(max-width:560px){.v242MaterialGrid{grid-template-columns:1fr}.v242Mat,.v242MatCoin{min-height:68px}.v242MaterialPopup{width:86vw}.v242MaterialPopup img{max-height:120px}}

/* ===== END v24_2_0_materials_event_only.css ===== */

/* END ./app_event.css */

/* BEGIN ./v25_0_2_ui_211_220_result.css */
/* =============================================================
 v25.0.2 Result UI Bind (211-220)
 211〜220をリザルト画面へ実装。
 ============================================================= */
:root{
  --ui211:url('./assets/ui_211_220/211_result_screen_background.webp');
  --ui212:url('./assets/ui_211_220/212_result_clear_banner.webp');
  --ui213:url('./assets/ui_211_220/213_result_score_card.webp');
  --ui214:url('./assets/ui_211_220/214_result_star_rating_panel.webp');
  --ui215:url('./assets/ui_211_220/215_item_drop_panel.webp');
  --ui216:url('./assets/ui_211_220/216_drop_item_slot_normal.webp');
  --ui217:url('./assets/ui_211_220/217_drop_item_slot_rare.webp');
  --ui218:url('./assets/ui_211_220/218_reward_get_popup_frame.webp');
  --ui219:url('./assets/ui_211_220/219_new_record_banner.webp');
  --ui220:url('./assets/ui_211_220/220_result_action_button_bg.webp');
}
#resultScreen .pad{
  position:relative;
  gap:10px!important;
  min-height:100%;
  background-image:linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.08)),var(--ui211)!important;
  background-size:cover!important;
  background-position:center top!important;
  background-repeat:no-repeat!important;
  border-radius:26px!important;
  overflow:hidden!important;
}
#resultScreen .topbar{
  position:relative;
  z-index:1;
}
#resultScreen .resultHero{
  position:relative;
  z-index:1;
  text-align:center;
  border:0!important;
  border-radius:26px!important;
  padding:12px!important;
  background:rgba(255,255,255,.10)!important;
  box-shadow:none!important;
  backdrop-filter: blur(2px);
}
#resultScreen .v2502StatusBanner{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:86px!important;
  padding:10px 18px!important;
  background-image:var(--ui212)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
#resultScreen .resultStatus{
  color:#6d3603!important;
  font-size:34px!important;
  font-weight:1000!important;
  text-shadow:0 1px 0 rgba(255,255,255,.75)!important;
}
#resultScreen .v2502ScoreCard{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:140px!important;
  margin-top:6px!important;
  padding:14px 12px 16px!important;
  background-image:var(--ui213)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
#resultScreen .resultScore{
  font-size:32px!important;
  font-weight:1000!important;
  color:#2b1a54!important;
  text-shadow:0 1px 0 rgba(255,255,255,.9)!important;
}
#resultScreen #resultText,
#resultScreen #rewardText,
#resultScreen #playerExpResult,
#resultScreen #resultHighScore,
#resultScreen #resultRankingMessage{
  color:#49386c!important;
  text-shadow:none!important;
}
#resultScreen .v2502StarPanel{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:78px!important;
  padding:8px 14px!important;
  margin-top:6px!important;
  background-image:var(--ui214)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
#resultScreen .resultStars{
  margin:0!important;
  font-size:34px!important;
  letter-spacing:4px;
}
#resultScreen .v2502RewardFrame{
  margin-top:8px!important;
  padding:14px 16px 18px!important;
  background-image:var(--ui218)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
#resultScreen .v2502RewardFrame .helper,
#resultScreen .v2502RewardFrame .playerExpResult,
#resultScreen .v2502RewardFrame .resultHighScoreBox,
#resultScreen .v2502RewardFrame .resultRankingMessage{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  margin-top:6px!important;
}
#resultScreen .resultDropBox{
  display:none;
  margin-top:8px!important;
  padding:12px!important;
  border-radius:24px!important;
  border:0!important;
  box-shadow:none!important;
  background-image:var(--ui215)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
#resultScreen .resultDropBox.show{display:block!important;}
#resultScreen .dropFxBox,
#resultScreen .dropFxPanel{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
#resultScreen .dropFxBanner,
#resultScreen .dropFxChestWrap,
#resultScreen .dropFxFooter{
  display:none!important;
}
#resultScreen .dropFxTitle{
  color:#3e2965!important;
  font-size:18px!important;
  font-weight:1000!important;
  text-shadow:0 1px 0 rgba(255,255,255,.85)!important;
  margin-bottom:8px!important;
}
#resultScreen .dropFxGrid{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
}
#resultScreen .dropFxCard{
  position:relative;
  min-height:84px!important;
  display:grid!important;
  grid-template-columns:56px 1fr auto!important;
  gap:8px!important;
  align-items:center!important;
  padding:10px 10px 8px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
#resultScreen .dropFxCard::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--ui216);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center;
  z-index:0;
}
#resultScreen .dropFxCard.rarity-r,
#resultScreen .dropFxCard.rarity-sr,
#resultScreen .dropFxCard.rarity-ur{ }
#resultScreen .dropFxCard.rarity-r::before,
#resultScreen .dropFxCard.rarity-sr::before,
#resultScreen .dropFxCard.rarity-ur::before{
  background-image:var(--ui217);
}
#resultScreen .dropFxCard > *{position:relative;z-index:1;}
#resultScreen .dropFrame{display:none!important;}
#resultScreen .dropItemIcon{
  width:50px!important;height:50px!important;object-fit:contain!important;
}
#resultScreen .dropItemName{
  grid-column:2/3;
  color:#2c1b53!important;
  font-size:14px!important;
  font-weight:1000!important;
  text-align:left!important;
}
#resultScreen .dropItemAmount{
  grid-column:3/4;
  color:#6c2b6b!important;
  font-size:18px!important;
  font-weight:1000!important;
}
#resultScreen .dropItemRarity{
  grid-column:2/4;
  color:#5a4a7a!important;
  font-size:11px!important;
  font-weight:900!important;
  text-align:left!important;
}
#resultScreen #newRecordBox{
  margin-top:6px!important;
}
#resultScreen #newRecordBox img{
  content:var(--ui219);
  width:100%!important;
  max-width:560px!important;
  border-radius:18px!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18)!important;
}
#resultScreen #newRecordText{
  color:#4d2f64!important;
  text-shadow:0 1px 0 rgba(255,255,255,.85)!important;
}
#resultScreen .resultActions{
  position:relative;
  z-index:1;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  margin-top:2px!important;
}
#resultScreen .resultActions .wide{grid-column:1/-1!important;}
#resultScreen .resultActions .btn,
#resultScreen .resultActions #retryBtn,
#resultScreen .resultActions #resultEndlessSubmitBtn,
#resultScreen .resultActions #resultHighScoreBtn,
#resultScreen .resultActions #resultPrep{
  min-height:58px!important;
  border:0!important;
  border-radius:0!important;
  background-color:transparent!important;
  background-image:var(--ui220)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  box-shadow:none!important;
  color:#2c1b53!important;
  text-shadow:0 1px 0 rgba(255,255,255,.82)!important;
  font-weight:1000!important;
}
@media (max-width:430px){
  #resultScreen .resultHero{padding:10px!important;}
  #resultScreen .v2502StatusBanner{min-height:76px!important;}
  #resultScreen .resultStatus{font-size:28px!important;}
  #resultScreen .v2502ScoreCard{min-height:126px!important;padding:12px 10px 14px!important;}
  #resultScreen .resultScore{font-size:28px!important;}
  #resultScreen .dropFxGrid{grid-template-columns:1fr!important;}
  #resultScreen .resultActions{grid-template-columns:1fr!important;}
  #resultScreen .resultActions .wide{grid-column:auto!important;}
}

/* END ./v25_0_2_ui_211_220_result.css */

/* BEGIN ./v25_0_4_gacha_result_drop_fix.css */
/* =============================================================
 v25.0.4 Gacha Result + Drop Layout Fix
 - ITEM DROPのレアリティ文字を非表示
 - 数量を枠右側へ移動
 - ガチャ結果画像をキャラID固定で表示
 ============================================================= */

/* ITEM DROP：NORMAL/RARE等は素材画像に入っているため非表示 */
#resultScreen .dropItemRarity,
#resultScreen .dropFxCard .dropItemRarity{
  display:none!important;
}

/* ITEM DROP：枠の中でアイコン・名前・数量を安定配置 */
#resultScreen .dropFxGrid{
  gap:12px!important;
}
#resultScreen .dropFxCard{
  position:relative!important;
  display:block!important;
  min-height:126px!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
#resultScreen .dropFxCard::before{
  content:"";
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  background-image:var(--ui216)!important;
  background-size:100% 100%!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
}
#resultScreen .dropFxCard.rarity-r::before,
#resultScreen .dropFxCard.rarity-sr::before,
#resultScreen .dropFxCard.rarity-ur::before{
  background-image:var(--ui217)!important;
}
#resultScreen .dropFxCard > *{
  position:absolute!important;
  z-index:1!important;
}
#resultScreen .dropFrame{
  display:none!important;
}
#resultScreen .dropItemIcon{
  left:50%!important;
  top:40%!important;
  transform:translate(-50%,-50%)!important;
  width:58px!important;
  height:58px!important;
  object-fit:contain!important;
  margin:0!important;
  filter:drop-shadow(0 4px 7px rgba(0,0,0,.16))!important;
}
#resultScreen .dropItemName{
  left:10px!important;
  right:54px!important;
  bottom:15px!important;
  width:auto!important;
  color:#2b1b54!important;
  text-align:center!important;
  font-size:12px!important;
  line-height:1.15!important;
  font-weight:1000!important;
  white-space:normal!important;
  text-shadow:0 1px 0 rgba(255,255,255,.88)!important;
}
#resultScreen .dropItemAmount{
  right:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  min-width:42px!important;
  height:34px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.88)!important;
  border:2px solid rgba(226,185,80,.85)!important;
  color:#2b1b54!important;
  font-size:17px!important;
  line-height:1!important;
  font-weight:1000!important;
  box-shadow:0 5px 12px rgba(0,0,0,.16)!important;
  text-shadow:none!important;
}

/* ガチャ結果：画像を枠に収め、キャラごとの画像が分かりやすいサイズへ */
#gachaScreen .gachaResultChara{
  width:156px!important;
  height:156px!important;
  object-fit:cover!important;
  border-radius:26px!important;
  background:rgba(255,255,255,.85)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
}
#gachaScreen .gachaResultCard .name{
  color:#251944!important;
  font-weight:1000!important;
  text-shadow:none!important;
}

@media(max-width:430px){
  #resultScreen .dropFxGrid{
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
  }
  #resultScreen .dropFxCard{
    min-height:112px!important;
  }
  #resultScreen .dropItemIcon{
    width:50px!important;
    height:50px!important;
    top:38%!important;
  }
  #resultScreen .dropItemName{
    left:8px!important;
    right:46px!important;
    bottom:13px!important;
    font-size:11px!important;
  }
  #resultScreen .dropItemAmount{
    right:9px!important;
    min-width:36px!important;
    height:30px!important;
    font-size:15px!important;
  }
}

/* END ./v25_0_4_gacha_result_drop_fix.css */

/* BEGIN ./v25_0_5_result_visual_refine.css */
/* =============================================================
 v25.0.5 Result Visual Refine
 - 透明素材の透過部分に下地を入れてチェッカー感を解消
 - ITEM DROPの横並びバランスを改善
 ============================================================= */

/* 全体のリザルト面を少し詰める */
#resultScreen .pad{
  gap:8px!important;
}
#resultScreen .resultHero{
  padding:10px 12px!important;
  background:rgba(255,255,255,.14)!important;
}

/* 透明フレームの下にやわらかい下地を敷く */
#resultScreen .v2502StatusBanner,
#resultScreen .v2502ScoreCard,
#resultScreen .v2502StarPanel,
#resultScreen .v2502RewardFrame,
#resultScreen .resultDropBox{
  position:relative!important;
  isolation:isolate!important;
}
#resultScreen .v2502StatusBanner::before,
#resultScreen .v2502ScoreCard::before,
#resultScreen .v2502StarPanel::before,
#resultScreen .v2502RewardFrame::before,
#resultScreen .resultDropBox::before{
  content:'';
  position:absolute;
  inset:8px;
  z-index:-1;
  border-radius:24px;
  background:linear-gradient(180deg, rgba(255,252,248,.96), rgba(255,245,252,.93));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.75), 0 6px 18px rgba(120,88,160,.08);
}
#resultScreen .v2502StatusBanner::before{ inset:9px 18px 10px; border-radius:28px; }
#resultScreen .v2502ScoreCard::before{ inset:14px 18px 16px; border-radius:34px; }
#resultScreen .v2502StarPanel::before{ inset:10px 16px 10px; border-radius:22px; }
#resultScreen .v2502RewardFrame::before{ inset:16px 18px; border-radius:26px; }
#resultScreen .resultDropBox::before{ inset:18px 18px 14px; border-radius:26px; }

/* 上部文字の余白を少し整理 */
#resultScreen #rewardText,
#resultScreen #playerExpResult,
#resultScreen #resultHighScore,
#resultScreen #resultRankingMessage{
  position:relative;
  z-index:1;
  margin-top:4px!important;
}
#resultScreen #resultText{
  font-weight:1000!important;
}

/* ITEM DROP：カードの見え方を自然に。下地＋装飾フレーム */
#resultScreen .dropFxGrid{
  gap:12px!important;
}
#resultScreen .dropFxCard{
  min-height:96px!important;
}
#resultScreen .dropFxCard::after{
  content:'';
  position:absolute;
  inset:7px;
  z-index:0;
  border-radius:18px;
  background:linear-gradient(180deg, rgba(255,251,245,.98), rgba(255,246,239,.96));
  box-shadow:inset 0 0 0 1px rgba(232,214,189,.9);
}
#resultScreen .dropFxCard > *{
  z-index:1!important;
}
#resultScreen .dropItemIcon{
  left:20px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:56px!important;
  height:56px!important;
}
#resultScreen .dropItemName{
  left:88px!important;
  right:68px!important;
  top:50%!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  text-align:left!important;
  font-size:17px!important;
  line-height:1.2!important;
  font-weight:1000!important;
  text-shadow:0 1px 0 rgba(255,255,255,.96)!important;
}
#resultScreen .dropItemAmount{
  right:16px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  min-width:40px!important;
  height:34px!important;
  padding:0 10px!important;
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,244,216,.96))!important;
  border:2px solid rgba(229,190,92,.85)!important;
  color:#4c2e66!important;
}

/* ITEM DROPの説明文も見やすくする */
#resultScreen .resultDropBox .helper,
#resultScreen .dropFxPanel .helper,
#resultScreen .dropFxNote,
#resultScreen .dropFxSummary{
  position:relative;
  z-index:1;
}

@media (max-width:430px){
  #resultScreen .v2502StatusBanner::before{ inset:8px 12px 8px; }
  #resultScreen .v2502ScoreCard::before{ inset:12px 12px 14px; }
  #resultScreen .v2502RewardFrame::before,
  #resultScreen .resultDropBox::before{ inset:14px 12px 12px; }
  #resultScreen .dropFxGrid{ gap:10px!important; }
  #resultScreen .dropFxCard{ min-height:88px!important; }
  #resultScreen .dropFxCard::after{ inset:6px; border-radius:16px; }
  #resultScreen .dropItemIcon{ left:16px!important; width:48px!important; height:48px!important; }
  #resultScreen .dropItemName{ left:74px!important; right:58px!important; font-size:14px!important; }
  #resultScreen .dropItemAmount{ right:12px!important; min-width:34px!important; height:28px!important; font-size:15px!important; }
}

/* END ./v25_0_5_result_visual_refine.css */

/* BEGIN ./v25_0_6_ten_pull_gacha.css */
/* =============================================================
 v25.0.6 Ten Pull Gacha
 - 1回ガチャは維持
 - 10連ガチャボタンと10体結果表示を追加
 ============================================================= */

#gachaScreen #gachaActions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  margin:12px 0 12px!important;
}
#gachaScreen #gachaActions .cta{
  margin:0!important;
  min-height:62px!important;
  border-radius:999px!important;
  font-size:clamp(15px,3.8vw,20px)!important;
  font-weight:1000!important;
  touch-action:manipulation!important;
}
#gachaScreen #gachaBtn{
  background:linear-gradient(180deg,#fff18d,#ffbf4e 62%,#ff91bd)!important;
  color:#251739!important;
}
#gachaScreen #gacha10Btn{
  border:0!important;
  background:linear-gradient(180deg,#fff7b5,#ffd453 48%,#ff8ee4)!important;
  color:#251739!important;
  box-shadow:0 8px 18px rgba(0,0,0,.22),0 4px 0 rgba(107,58,0,.22)!important;
}
#gachaScreen #gacha10Btn:disabled,
#gachaScreen #gachaBtn:disabled{
  opacity:.55!important;
  filter:saturate(.7)!important;
}

#gachaScreen .gachaTenResultCard{
  border-radius:28px!important;
  padding:14px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(246,244,250,.95))!important;
  border:2px solid rgba(255,221,114,.75)!important;
  box-shadow:0 16px 36px rgba(0,0,0,.20)!important;
  text-align:center!important;
  color:#251944!important;
}
#gachaScreen .gachaTenHeader{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  margin-bottom:10px!important;
  padding:8px 10px!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#fff6cf,#ffe48b)!important;
  color:#3a255e!important;
  font-weight:1000!important;
}
#gachaScreen .gachaTenHeader b{
  font-size:18px!important;
}
#gachaScreen .gachaTenSummary{
  font-size:12px!important;
  font-weight:900!important;
  color:#5d4a78!important;
}
#gachaScreen .gachaTenGrid{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:9px!important;
}
#gachaScreen .gachaTenItem{
  position:relative!important;
  min-width:0!important;
  border-radius:18px!important;
  padding:8px 6px 7px!important;
  background:linear-gradient(180deg,#ffffff,#f2f0f6)!important;
  border:1px solid rgba(178,165,194,.58)!important;
  box-shadow:0 7px 16px rgba(0,0,0,.10)!important;
  overflow:hidden!important;
}
#gachaScreen .gachaTenItem.is-new{
  border-color:rgba(255,202,72,.9)!important;
  box-shadow:0 0 18px rgba(255,204,73,.30),0 7px 16px rgba(0,0,0,.10)!important;
}
#gachaScreen .gachaTenItem.rarity-sr,
#gachaScreen .gachaTenItem.rarity-rare{
  background:linear-gradient(180deg,#fffaf0,#fff0fb)!important;
}
#gachaScreen .gachaTenBadge{
  position:absolute!important;
  top:5px!important;
  left:5px!important;
  z-index:2!important;
  min-width:34px!important;
  padding:3px 6px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#ff4d75,#c42352)!important;
  color:white!important;
  font-size:10px!important;
  line-height:1!important;
  font-weight:1000!important;
  box-shadow:0 3px 8px rgba(0,0,0,.18)!important;
}
#gachaScreen .gachaTenRarity{
  position:absolute!important;
  top:5px!important;
  right:5px!important;
  z-index:2!important;
  width:22px!important;
  height:22px!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(255,255,255,.9)!important;
  font-size:12px!important;
  box-shadow:0 3px 8px rgba(0,0,0,.13)!important;
}
#gachaScreen .gachaTenChara{
  width:100%!important;
  aspect-ratio:1/1!important;
  object-fit:cover!important;
  border-radius:15px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)!important;
}
#gachaScreen .gachaTenName{
  margin-top:5px!important;
  min-height:2.4em!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#251944!important;
  font-size:11px!important;
  line-height:1.16!important;
  font-weight:1000!important;
  text-shadow:none!important;
}
#gachaScreen .gachaTenSub{
  margin-top:3px!important;
  color:#65567c!important;
  font-size:10px!important;
  line-height:1.1!important;
  font-weight:900!important;
  text-shadow:none!important;
}
#gachaScreen .gachaTenAgainRow{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin-top:12px!important;
}
#gachaScreen .gachaTenAgainRow button{
  min-height:48px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,#fff18d,#ffbf4e 62%,#ff91bd)!important;
  color:#251739!important;
  font-weight:1000!important;
}

@media(max-width:640px){
  #gachaScreen .gachaTenGrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #gachaScreen #gachaActions{
    grid-template-columns:1fr!important;
  }
  #gachaScreen .gachaTenName{
    font-size:12px!important;
  }
}

/* END ./v25_0_6_ten_pull_gacha.css */

/* BEGIN ./v25_7_0_cloud_save.css */
/* v25.7.0 Cloud Save */
.cloudSavePanel{margin-top:12px;padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.09);display:grid;gap:8px}
.cloudSavePanel h3{margin:0;font-size:16px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.45)}
.cloudSavePanel .cloudSaveGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cloudSavePanel input{width:100%;min-height:42px;border-radius:12px;border:1px solid rgba(255,255,255,.24);background:rgba(0,0,0,.22);color:#fff;padding:8px 10px;font:inherit;font-weight:850;user-select:text}
.cloudSavePanel input::placeholder{color:rgba(255,255,255,.58)}
.cloudSavePanel .cloudSaveStatus{font-size:12px;line-height:1.45;font-weight:900;color:#fff;background:rgba(0,0,0,.18);border-radius:12px;padding:8px;white-space:pre-wrap;user-select:text}
.cloudSavePanel .cloudSaveStatus.ok{background:rgba(70,170,90,.22)}
.cloudSavePanel .cloudSaveStatus.err{background:rgba(210,70,70,.24)}
@media(max-width:430px){.cloudSavePanel .cloudSaveGrid{grid-template-columns:1fr}.cloudSavePanel{padding:10px}.cloudSavePanel h3{font-size:15px}}

/* END ./v25_7_0_cloud_save.css */

/* BEGIN ./v25_9_4_mokomoko_entry_map.css */
/* v25.9.6 Mokomoko World Entry & Map */
.v2594MokoEntry{
  position:relative;
  margin:12px 0;
  padding:0;
  border:0;
  background:transparent;
  width:100%;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 10px 24px rgba(21,61,40,.24);
}
.v2594MokoEntry img{
  display:block;
  width:100%;
  max-height:118px;
  object-fit:cover;
  object-position:center 42%;
}
.v2594MokoEntryText{
  position:absolute;
  inset:auto 12px 10px 12px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:10px;
  color:#fff;
  text-shadow:0 2px 6px rgba(0,0,0,.55);
  pointer-events:none;
}
.v2594MokoEntryText b{font-size:17px;line-height:1.15}
.v2594MokoEntryText span{font-size:11px;line-height:1.25;text-align:right}
.v2594MokoMap{
  position:fixed;
  inset:0;
  z-index:9998;
  display:none;
  background:linear-gradient(180deg,rgba(8,35,24,.88),rgba(16,54,38,.96));
  color:#17351f;
}
.v2594MokoMap.show{display:block}
.v2594MokoPanel{
  position:absolute;
  inset:env(safe-area-inset-top) 0 env(safe-area-inset-bottom) 0;
  max-width:520px;
  margin:auto;
  background:
    radial-gradient(circle at 18% 10%,rgba(203,255,218,.42),transparent 28%),
    linear-gradient(180deg,#f8fff0,#d8f0c8);
  overflow:auto;
  padding:14px 14px 22px;
}
.v2594MokoTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.v2594MokoTop b{font-size:17px}
.v2594MokoClose,
.v2594MokoPrep{
  border:0;
  border-radius:12px;
  padding:9px 12px;
  font-weight:800;
  color:#174025;
  background:#fff8d3;
  box-shadow:0 4px 10px rgba(47,83,35,.18);
}
.v2594MokoHero{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  min-height:116px;
  margin-bottom:12px;
  background:#d8efd0;
}
.v2594MokoHero img{
  display:block;
  width:100%;
  height:138px;
  object-fit:cover;
  object-position:center 44%;
}
.v2594MokoHeroText{
  position:absolute;
  left:14px;
  right:14px;
  bottom:12px;
  color:#fff;
  text-shadow:0 2px 6px rgba(0,0,0,.55);
}
.v2594MokoHeroText b{display:block;font-size:20px}
.v2594MokoHeroText span{display:block;font-size:12px;margin-top:3px}
.v2594MokoGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.v2594MokoStage{
  position:relative;
  min-height:188px;
  border:0;
  border-radius:14px;
  padding:0;
  overflow:hidden;
  background:#e3f0d3;
  color:#20331c;
  box-shadow:0 8px 18px rgba(32,70,35,.2);
  text-align:left;
}
.v2594MokoStage.locked{filter:saturate(.76);opacity:.82}
.v2594MokoCardBg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:.88;
  pointer-events:none;
}
.v2594MokoStage::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(244,255,230,.5) 58%,rgba(250,255,238,.88)),
    radial-gradient(circle at 50% 31%,rgba(255,255,246,.92),rgba(255,255,246,.38) 30%,transparent 52%);
  z-index:1;
  pointer-events:none;
}
.v2594MokoStage::after{
  content:"";
  position:absolute;
  left:9px;
  right:9px;
  bottom:8px;
  min-height:62px;
  border-radius:12px;
  background:rgba(255,255,246,.9);
  box-shadow:0 2px 8px rgba(45,77,34,.12);
  z-index:1;
  pointer-events:none;
}
.v2594MokoFrame{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.28;
  pointer-events:none;
  z-index:2;
}
.v2594MokoBossPlate{
  position:relative;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:104px;
  height:94px;
  margin:12px auto 4px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,250,.8),rgba(255,255,255,.26) 62%,transparent 72%);
  filter:drop-shadow(0 5px 9px rgba(29,51,28,.22));
}
.v2594MokoBoss{
  display:block;
  width:92px;
  height:92px;
  object-fit:contain;
  filter:drop-shadow(0 4px 8px rgba(32,54,28,.28));
}
.v2594MokoNode{
  position:absolute;
  right:7px;
  top:42px;
  width:44px;
  height:44px;
  object-fit:contain;
  z-index:4;
  filter:drop-shadow(0 3px 6px rgba(32,54,28,.22));
  pointer-events:none;
}
.v2594MokoText{
  position:relative;
  z-index:3;
  display:block;
  min-height:62px;
  padding:7px 11px 8px;
}
.v2594MokoText b,
.v2594MokoText span,
.v2594MokoText em{
  display:block;
}
.v2594MokoText b{font-size:13px;line-height:1.2}
.v2594MokoText span{font-size:11px;line-height:1.25;margin-top:4px}
.v2594MokoText em{font-style:normal;font-size:10px;margin-top:5px;color:#446239}
.v2594MokoMark{
  position:absolute;
  right:6px;
  top:6px;
  width:36px;
  height:36px;
  z-index:2;
}
.v2594MokoReward{
  margin:12px 0 0;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 5px 13px rgba(32,70,35,.14);
}
.v2594MokoReward img{
  display:block;
  width:100%;
  max-height:72px;
  object-fit:cover;
}
.v2594MokoStatus{
  margin:10px 2px 0;
  font-size:12px;
  color:#33502a;
  line-height:1.45;
}
@media (max-width:380px){
  .v2594MokoGrid{grid-template-columns:1fr}
  .v2594MokoStage{min-height:172px}
}

/* v25.9.8 Mokomoko boss intro */
.v2598MokoIntro{
  position:fixed;
  inset:0;
  z-index:10020;
  display:none;
  align-items:center;
  justify-content:center;
  padding:env(safe-area-inset-top) 16px env(safe-area-inset-bottom);
  background:rgba(7,28,18,.82);
  color:#fff;
}
.v2598MokoIntro.show{display:flex}
.v2598MokoIntroCard{
  position:relative;
  width:min(100%,430px);
  min-height:430px;
  overflow:hidden;
  border-radius:20px;
  box-shadow:0 22px 48px rgba(0,0,0,.42);
  background:#17351f;
}
.v2598MokoIntroBg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}
.v2598MokoIntroCard::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(8,31,22,.12),rgba(8,31,22,.3) 42%,rgba(8,31,22,.86));
  z-index:1;
}
.v2598MokoIntroBoss{
  position:relative;
  z-index:2;
  display:block;
  width:210px;
  height:210px;
  object-fit:contain;
  margin:36px auto 8px;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.34));
}
.v2598MokoIntroText{
  position:absolute;
  z-index:3;
  left:18px;
  right:18px;
  bottom:72px;
  text-shadow:0 2px 8px rgba(0,0,0,.72);
}
.v2598MokoIntroText span{
  display:block;
  font-size:12px;
  font-weight:800;
  color:#fff5bf;
}
.v2598MokoIntroText b{
  display:block;
  margin-top:4px;
  font-size:24px;
  line-height:1.15;
}
.v2598MokoIntroText em{
  display:block;
  margin-top:7px;
  font-size:13px;
  line-height:1.35;
  font-style:normal;
}
.v2598MokoIntroActions{
  position:absolute;
  z-index:4;
  left:18px;
  right:18px;
  bottom:18px;
  display:flex;
  gap:10px;
}
.v2598MokoIntroStart,
.v2598MokoIntroSkip{
  flex:1;
  border:0;
  border-radius:13px;
  padding:12px 10px;
  font-weight:900;
  box-shadow:0 6px 16px rgba(0,0,0,.2);
}
.v2598MokoIntroStart{
  background:#fff1a8;
  color:#263716;
}
.v2598MokoIntroSkip{
  background:rgba(255,255,255,.18);
  color:#fff;
  border:1px solid rgba(255,255,255,.28);
}
@media (max-width:380px){
  .v2598MokoIntroCard{min-height:390px}
  .v2598MokoIntroBoss{width:180px;height:180px;margin-top:30px}
  .v2598MokoIntroText b{font-size:21px}
}

/* v25.9.9 startup asset loader */
.v2599StartupLoader{
  position:fixed;
  inset:0;
  z-index:20000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:env(safe-area-inset-top) 18px env(safe-area-inset-bottom);
  background:
    linear-gradient(180deg,rgba(10,36,24,.96),rgba(20,64,40,.98)),
    #123320;
  color:#fff;
  transition:opacity .28s ease,visibility .28s ease;
}
.v2599StartupLoader.done{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.v2599StartupCard{
  width:min(100%,420px);
  border-radius:20px;
  padding:24px 18px 18px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.08)),
    rgba(255,255,255,.08);
  box-shadow:0 24px 52px rgba(0,0,0,.36);
  border:1px solid rgba(255,255,255,.18);
  text-align:center;
  backdrop-filter:blur(6px);
}
.v2599StartupTitle{
  font-size:22px;
  line-height:1.2;
  font-weight:900;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}
.v2599StartupSub{
  margin-top:9px;
  min-height:18px;
  font-size:13px;
  line-height:1.35;
  color:#fff7c7;
}
.v2599StartupMeter{
  position:relative;
  height:13px;
  margin:18px 4px 8px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(255,255,255,.2);
  box-shadow:inset 0 2px 5px rgba(0,0,0,.25);
}
.v2599StartupMeter span{
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0%;
  border-radius:999px;
  background:linear-gradient(90deg,#fff6a6,#8ef2ad,#9ee6ff);
  box-shadow:0 0 18px rgba(158,230,255,.5);
  transition:width .18s ease;
}
.v2599StartupPercent{
  font-size:20px;
  font-weight:900;
  letter-spacing:0;
}
.v2599StartupSkip{
  display:none;
  width:100%;
  margin-top:16px;
  border:0;
  border-radius:14px;
  padding:12px 10px;
  background:#fff1a8;
  color:#253518;
  font-weight:900;
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}
.v2599StartupLoader.ready .v2599StartupSkip{display:block}
@media (max-width:380px){
  .v2599StartupCard{padding:20px 15px 16px}
  .v2599StartupTitle{font-size:19px}
}

/* v25.10.0 battle performance boost */
body.v25100-battle-boost #gameScreen{
  contain:layout paint style!important;
}
body.v25100-battle-boost #gameScreen,
body.v25100-battle-boost #gameScreen .pad,
body.v25100-battle-boost .board,
body.v25100-battle-boost .cell,
body.v25100-battle-boost .stat,
body.v25100-battle-boost .bossArea,
body.v25100-battle-boost .battleBottom{
  filter:none!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
body.v25100-battle-boost .board{
  will-change:auto!important;
  transform:translateZ(0);
}
body.v25100-battle-boost .cell{
  transition:transform .05s linear, opacity .05s linear!important;
  will-change:auto!important;
}
body.v25100-battle-boost .cell .piecePattern,
body.v25100-battle-boost .cell .pieceAttr{
  display:none!important;
}
body.v25100-battle-boost .cell .pieceChar{
  width:94%!important;
  height:94%!important;
  filter:none!important;
}
body.v25100-battle-boost .cell.spawn,
body.v25100-battle-boost .cell.fell{
  animation:none!important;
  transition:none!important;
}
body.v25100-battle-boost .cell.removing{
  animation:v25100Remove .1s linear forwards!important;
  transition:none!important;
}
@keyframes v25100Remove{to{opacity:0;transform:scale(.9)}}
body.v25100-battle-boost .comboPopup.show{
  animation:v25100Combo .22s ease forwards!important;
}
@keyframes v25100Combo{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-70%) scale(1)}}
body.v25100-battle-boost .damageFlash,
body.v25100-battle-boost .skillSparkle,
body.v25100-battle-boost .skillBig.skill-ready .skillSparkle,
body.v25100-battle-boost .bossCutinOverlay.show{
  animation:none!important;
}
body.v25100-battle-boost .damageFlash{
  display:none!important;
}
body.v25100-battle-boost .skillOverlay.show .skillCard img,
body.v25100-battle-boost .bossCutinCard img{
  max-height:30vh!important;
}
body.v25100-battle-boost .bossCutinOverlay.show{
  background:rgba(40,0,0,.32)!important;
}

/* v25.10.2 board reuse + result text rescue */
body.battle-active .v25102Cell{
  contain:layout paint style!important;
}
body.battle-active .v25102Cell .pieceChar{
  width:94%!important;
  height:94%!important;
  object-fit:contain!important;
  filter:none!important;
}
body.battle-active .v25102Cell.selected{
  outline:2px solid #ffd96c!important;
  transform:scale(.94)!important;
  box-shadow:none!important;
}
.v25102ResultDrops .dropFxGrid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
.v25102ResultDrops .v25102DropCard{
  display:grid!important;
  grid-template-columns:56px minmax(0,1fr) 42px!important;
  grid-template-rows:auto auto!important;
  align-items:center!important;
  column-gap:8px!important;
  min-height:92px!important;
  padding:10px!important;
  text-align:left!important;
}
.v25102ResultDrops .v25102DropCard .dropFrame{
  opacity:.48!important;
}
.v25102ResultDrops .v25102DropCard .dropItemIcon{
  grid-column:1!important;
  grid-row:1/3!important;
  width:54px!important;
  height:54px!important;
  justify-self:center!important;
}
.v25102ResultDrops .v25102DropName{
  grid-column:2!important;
  grid-row:1!important;
  display:block!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  writing-mode:horizontal-tb!important;
  word-break:keep-all!important;
  line-height:1.15!important;
  font-size:12px!important;
  text-align:left!important;
}
.v25102ResultDrops .v25102DropAmount{
  grid-column:3!important;
  grid-row:1/3!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:40px!important;
  height:28px!important;
  border-radius:999px!important;
  background:#fff5c8!important;
  border:1px solid rgba(92,62,20,.18)!important;
  font-size:15px!important;
  writing-mode:horizontal-tb!important;
  white-space:nowrap!important;
}
.v25102ResultDrops .v25102DropRarity{
  grid-column:2!important;
  grid-row:2!important;
  justify-self:start!important;
  font-size:9px!important;
  writing-mode:horizontal-tb!important;
  white-space:nowrap!important;
}
@media(max-width:430px){
  .v25102ResultDrops .v25102DropCard{
    grid-template-columns:48px minmax(0,1fr) 38px!important;
    min-height:86px!important;
    padding:8px!important;
  }
  .v25102ResultDrops .v25102DropCard .dropItemIcon{
    width:46px!important;
    height:46px!important;
  }
  .v25102ResultDrops .v25102DropName{font-size:11px!important}
}

/* v25.11.0 core lightweight-image battle renderer */
body.v25110-core-renderer.battle-active .board{
  gap:4px!important;
  padding:6px!important;
}
body.v25110-core-renderer.battle-active .v25110Cell{
  contain:layout paint style!important;
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:none!important;
  filter:none!important;
  overflow:hidden!important;
  display:grid!important;
  place-items:center!important;
  transition:transform .05s linear, background-color .05s linear!important;
}
body.v25110-core-renderer.battle-active .v25110Cell .pieceChar,
body.v25110-core-renderer.battle-active .v25110Cell .pieceAttr,
body.v25110-core-renderer.battle-active .v25110Cell .piecePattern{
  display:none!important;
}
.v25110Orb{
  width:86%;
  height:86%;
  border-radius:14px;
  display:grid;
  place-items:center;
  position:relative;
  border:1px solid rgba(255,255,255,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45);
}
.v25110Orb b{
  font-size:clamp(16px,5.4vw,26px);
  line-height:1;
  color:#fff;
  font-weight:1000;
  text-shadow:0 2px 4px rgba(0,0,0,.38);
}
.v25110PieceImg{
  width:92%;
  height:92%;
  object-fit:contain;
  display:block!important;
  pointer-events:none;
  filter:drop-shadow(0 2px 3px rgba(32,18,66,.28));
}
.v25110Orb em{
  position:absolute;
  right:4px;
  bottom:3px;
  min-width:15px;
  height:15px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.88);
  color:#24183d;
  font-size:9px;
  line-height:1;
  font-style:normal;
  font-weight:1000;
}
body.v25110-core-renderer.battle-active .v25110Cell.selected{
  outline:2px solid #ffe277!important;
  transform:scale(.92)!important;
  background:rgba(255,226,119,.22)!important;
}
body.v25110-core-renderer.battle-active .v25110Cell.selected .v25110Orb{
  border-color:#fff4a8;
}
@media(max-width:380px){
  .v25110Orb{border-radius:11px}
  .v25110Orb em{right:3px;bottom:2px;min-width:13px;height:13px;font-size:8px}
}

/* END ./v25_9_4_mokomoko_entry_map.css */

/* BEGIN ./v25_12_1_result_drop_text_rescue.css */
/* v25.12.1 result drop text rescue. Layout only. No save/ranking/gacha changes. */
#resultScreen .resultDropBox .dropFxGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
}
#resultScreen .resultDropBox .dropFxCard{
  position:relative!important;
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr) auto!important;
  grid-template-rows:1fr auto!important;
  column-gap:8px!important;
  row-gap:4px!important;
  align-items:center!important;
  min-height:96px!important;
  padding:10px 10px!important;
  overflow:hidden!important;
}
#resultScreen .resultDropBox .dropFxCard > .dropFrame{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:fill!important;
  z-index:0!important;
  pointer-events:none!important;
}
#resultScreen .resultDropBox .dropFxCard > .dropItemIcon,
#resultScreen .resultDropBox .dropFxCard > .dropItemName,
#resultScreen .resultDropBox .dropFxCard > .dropItemAmount,
#resultScreen .resultDropBox .dropFxCard > .dropItemRarity{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  z-index:1!important;
}
#resultScreen .resultDropBox .dropFxCard > .dropItemIcon{
  grid-column:1!important;
  grid-row:1 / span 2!important;
  width:52px!important;
  height:52px!important;
  max-width:52px!important;
  max-height:52px!important;
  justify-self:center!important;
  align-self:center!important;
  object-fit:contain!important;
}
#resultScreen .resultDropBox .dropFxCard > .dropItemName{
  grid-column:2!important;
  grid-row:1!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  color:#211842!important;
  font-size:12px!important;
  line-height:1.25!important;
  font-weight:900!important;
  letter-spacing:0!important;
  text-align:left!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
#resultScreen .resultDropBox .dropFxCard > .dropItemAmount{
  grid-column:3!important;
  grid-row:1!important;
  min-width:34px!important;
  height:28px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  display:inline-grid!important;
  place-items:center!important;
  justify-self:end!important;
  align-self:center!important;
  font-size:15px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#resultScreen .resultDropBox .dropFxCard > .dropItemRarity{
  grid-column:2 / span 2!important;
  grid-row:2!important;
  justify-self:start!important;
  max-width:100%!important;
  font-size:9px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  opacity:.82!important;
}
@media(max-width:374px){
  #resultScreen .resultDropBox .dropFxGrid{
    grid-template-columns:1fr!important;
  }
  #resultScreen .resultDropBox .dropFxCard{
    grid-template-columns:54px minmax(0,1fr) auto!important;
    min-height:88px!important;
  }
  #resultScreen .resultDropBox .dropFxCard > .dropItemIcon{
    width:48px!important;
    height:48px!important;
  }
}

/* END ./v25_12_1_result_drop_text_rescue.css */

/* BEGIN ./v25_16_0_mokomoko_rewards.css */
/* v25.16.0 Mokomoko rewards + nyanko reward repair */
.collectionGuestBadge.mokomoko,
.collectionGuestBadge.moko{
  background:linear-gradient(90deg,#b9f7be,#fff2a8 55%,#d8c6ff);
  color:#21462b;
  border-color:rgba(255,255,255,.86);
}
.v25160RewardNotice{
  display:grid;
  grid-template-columns:68px 1fr;
  gap:12px;
  align-items:center;
  margin:12px 0 0;
  padding:12px;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(229,255,207,.94),rgba(255,244,176,.92));
  border:2px solid rgba(87,149,72,.35);
  color:#243719;
  box-shadow:0 10px 24px rgba(35,80,38,.18);
}
.v25160RewardNotice img{
  width:68px;
  height:68px;
  object-fit:contain;
  border-radius:18px;
  background:rgba(255,255,255,.65);
}
.v25160RewardNotice b{display:block;font-size:16px;line-height:1.25;color:#17371b;}
.v25160RewardNotice span{display:block;font-size:13px;line-height:1.45;color:#385638;margin-top:3px;}
.v25160MokoOwnedHint{
  margin-top:8px;
  padding:8px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.72);
  color:#24442b;
  font-size:12px;
  font-weight:800;
}
#v2594MokoMap .v2594MokoStage .v25160MokoPrize{
  display:block;
  margin-top:4px;
  color:#2b5834;
  font-size:11px;
  font-weight:900;
}

/* END ./v25_16_0_mokomoko_rewards.css */

/* BEGIN ./v25_16_1_mokomoko_start_event_guard.css */
/* v25.16.1: prevent hidden event overlays from stealing taps */
#nyankoEventMapScreen:not(.active),
#v2594MokoMap:not(.show){
  pointer-events:none!important;
}
#v2594MokoMap.show,
#nyankoEventMapScreen.active{
  pointer-events:auto!important;
}
.v25161MokoStartGuardNote{font-size:12px;color:#17324a;}

/* END ./v25_16_1_mokomoko_start_event_guard.css */

/* BEGIN ./v25_17_0_daily_material_stage.css */
/* v25.17.0 Daily Material Stage + Mokomoko hard mode */
.v25170DailyMaterialBanner{
  width:100%;
  border:0;
  display:flex;
  align-items:center;
  gap:10px;
  margin:10px 0 12px;
  padding:10px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(255,247,187,.96),rgba(200,246,195,.96));
  box-shadow:0 8px 18px rgba(42,87,44,.18), inset 0 0 0 2px rgba(255,255,255,.82);
  color:#17324a;
  text-align:left;
  cursor:pointer;
  touch-action:manipulation;
}
.v25170DailyMaterialBanner img{
  width:74px;
  height:74px;
  object-fit:contain;
  flex:0 0 auto;
  filter:drop-shadow(0 5px 8px rgba(63,80,38,.24));
}
.v25170DailyText{display:flex;flex-direction:column;gap:3px;line-height:1.22;min-width:0;}
.v25170DailyText b{font-size:15px;color:#123b31;}
.v25170DailyText span{font-size:12px;color:#28415d;}
.v25170DailyText em{font-style:normal;font-weight:900;color:#7a4a00;background:rgba(255,255,255,.65);padding:3px 8px;border-radius:999px;align-self:flex-start;margin-top:2px;}
.v25170DailyMaterialBanner.is-empty{opacity:.72;filter:saturate(.7);}
.v25170DailyMaterialBanner.is-empty .v25170DailyText em{color:#777;background:rgba(255,255,255,.75);}
.v25170PrepDailyNote{
  margin-top:8px;
  padding:8px 10px;
  border-radius:14px;
  background:rgba(255,247,187,.92);
  color:#17324a;
  display:flex;
  flex-direction:column;
  gap:2px;
  box-shadow:inset 0 0 0 1px rgba(112,147,73,.25);
}
.v25170PrepDailyNote b{font-size:13px;color:#1f5a3f;}
.v25170PrepDailyNote span{font-size:12px;color:#2d435d;}
@media(max-width:480px){.v25170DailyMaterialBanner{padding:9px;border-radius:16px}.v25170DailyMaterialBanner img{width:62px;height:62px}.v25170DailyText b{font-size:14px}.v25170DailyText span{font-size:11px}}

/* END ./v25_17_0_daily_material_stage.css */

/* BEGIN ./v25_17_2_daily_material_easy.css */
/* v25.17.2 Daily Material Easy / guaranteed drops */
.v25170DailyMaterialBanner{
  position:relative!important;
  overflow:hidden!important;
  min-height:142px!important;
  padding:14px!important;
  align-items:flex-end!important;
  background:linear-gradient(135deg,rgba(255,247,187,.96),rgba(200,246,195,.96))!important;
}
.v25170DailyMaterialBanner>img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  filter:none!important;
  z-index:0!important;
  pointer-events:none!important;
}
.v25170DailyMaterialBanner::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.82),rgba(255,255,255,.48) 48%,rgba(255,255,255,.12));
  z-index:1;
  pointer-events:none;
}
.v25170DailyMaterialBanner .v25170DailyText{
  position:relative!important;
  z-index:2!important;
  max-width:72%!important;
  padding:8px 10px!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.72)!important;
  box-shadow:0 4px 12px rgba(42,87,44,.14)!important;
}
.v25170DailyMaterialBanner .v25170DailyText b{font-size:16px!important;color:#123b31!important;}
.v25170DailyMaterialBanner .v25170DailyText span{font-size:12px!important;color:#24405d!important;}
.v25170DailyMaterialBanner .v25170DailyText em{background:rgba(255,248,206,.94)!important;color:#7a4a00!important;}
.v25172EasyNotice{
  display:block;
  margin-top:4px;
  font-size:11px;
  font-weight:900;
  color:#1f6d43;
}
.v25170PrepDailyNote.v25172EasyPrep{
  background:rgba(231,255,218,.94)!important;
}
@media(max-width:480px){
  .v25170DailyMaterialBanner{min-height:126px!important;padding:10px!important;}
  .v25170DailyMaterialBanner .v25170DailyText{max-width:78%!important;padding:7px 9px!important;}
  .v25170DailyMaterialBanner .v25170DailyText b{font-size:14px!important;}
  .v25170DailyMaterialBanner .v25170DailyText span{font-size:11px!important;}
}

/* END ./v25_17_2_daily_material_easy.css */

/* BEGIN ./v25_17_4_home_fixed_material_diff.css */
/* v25.17.4 Home fixed header + daily material difficulty tiers */
:root{
  --v25174-home-top-bg:linear-gradient(180deg,rgba(255,255,255,.96),rgba(247,255,239,.94));
}

body:not(.battle-active):not(.title-active) #homeScreen.screen.active .homePad.v25174HomeLayout{
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  padding:0 10px calc(var(--v25141-bottom-space, 120px) + 4px)!important;
  box-sizing:border-box!important;
}

body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop{
  flex:0 0 auto!important;
  position:sticky!important;
  top:0!important;
  z-index:6200!important;
  display:block!important;
  padding:8px 0 10px!important;
  margin:0 0 8px!important;
  background:var(--v25174-home-top-bg)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
  border-radius:0 0 22px 22px!important;
  box-shadow:0 8px 18px rgba(45,83,58,.13)!important;
  overflow:visible!important;
}

body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .homeTopbar,
body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .homeCurrency,
body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .playerRankPanel,
body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .homeGuestEventBanner,
body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .homeMain,
body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .v25170DailyMaterialBanner{
  margin-left:0!important;
  margin-right:0!important;
}

body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .homeMain{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin-top:8px!important;
}

body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeScrollBody{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  padding:2px 0 var(--v25141-bottom-space, 120px)!important;
  box-sizing:border-box!important;
  touch-action:pan-y manipulation!important;
}

body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeScrollBody .homeGrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:0 0 10px!important;
  margin:0!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}

.v25174MaterialDiffBadge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:4px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:#25513b;
  font-size:11px;
  font-weight:1000;
  box-shadow:inset 0 0 0 1px rgba(73,128,86,.18);
}

.v25174MaterialTierNote{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:8px;
  padding:9px 10px;
  border-radius:16px;
  background:linear-gradient(135deg,rgba(235,255,214,.95),rgba(255,248,190,.95));
  box-shadow:inset 0 0 0 1px rgba(93,146,83,.24);
  color:#203b31;
}
.v25174MaterialTierNote b{font-size:13px;color:#174a32;}
.v25174MaterialTierNote span{font-size:12px;color:#3d5263;font-weight:800;}
.v25174MaterialTierNote small{font-size:11px;color:#6b5b2b;font-weight:900;}

@media(max-width:430px){
  body:not(.battle-active):not(.title-active) #homeScreen.screen.active .homePad.v25174HomeLayout{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop{
    padding-top:6px!important;
    padding-bottom:8px!important;
    border-radius:0 0 18px 18px!important;
  }
  body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeFixedTop .homeMain{
    gap:7px!important;
    margin-top:7px!important;
  }
  body:not(.battle-active):not(.title-active) #homeScreen .v25174HomeScrollBody .homeGrid{
    gap:7px!important;
  }
}

/* END ./v25_17_4_home_fixed_material_diff.css */

/* BEGIN ./v25_18_2_boss_ui_binding.css */
/* ===== v25.18.2 Boss UI Binding =====
   Links uploaded boss UI assets to existing boss-related screens without changing saves, stages, gacha, or battle math.
*/
:root{
  --boss-ui-gold:#ffd76b;
  --boss-ui-blue:#9fd8ff;
  --boss-ui-purple:#8b63ff;
}
body.v25182-boss-ui-ready #homeBoss{
  position:relative;
  overflow:hidden;
  border-color:rgba(255,215,108,.45)!important;
  box-shadow:0 8px 22px rgba(79,52,180,.16);
}
body.v25182-boss-ui-ready #homeBoss::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/ui/boss_challenge_banner.webp") center/cover no-repeat;
  opacity:.28;
  pointer-events:none;
}
body.v25182-boss-ui-ready #homeBoss{font-weight:1000;}
#bossScreen .pad{position:relative;}
.v25182BossHero{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  min-height:108px;
  margin:10px 0 12px;
  border:1px solid rgba(255,215,108,.42);
  box-shadow:0 12px 28px rgba(20,12,55,.22);
  background:linear-gradient(135deg,rgba(55,36,116,.60),rgba(28,50,90,.52));
}
.v25182BossHero img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.86;
}
.v25182BossHeroText{
  position:relative;
  z-index:1;
  padding:16px 18px;
  color:#fff;
  text-shadow:0 3px 10px rgba(0,0,0,.45);
}
.v25182BossHeroText b{display:block;font-size:20px;line-height:1.1;margin-bottom:6px;color:#fff7c9;}
.v25182BossHeroText span{display:block;font-size:12px;font-weight:800;max-width:72%;line-height:1.35;}
.v25182BossSectionTitle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:14px 0 8px;
  padding:10px 12px;
  border-radius:16px;
  background:linear-gradient(90deg,rgba(255,215,108,.18),rgba(112,139,255,.12));
  border:1px solid rgba(255,255,255,.14);
  font-weight:1000;
}
.v25182BossSectionTitle small{font-size:10px;color:rgba(255,255,255,.76);font-weight:800;}
.v25182BossPreviewGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:10px;
}
.v25182BossCard{
  position:relative;
  min-height:190px;
  padding:14px 12px 12px;
  border:1px solid rgba(255,215,108,.35);
  border-radius:22px;
  overflow:hidden;
  background:linear-gradient(180deg,rgba(40,32,98,.65),rgba(22,30,58,.82));
  color:#fff;
  text-align:center;
  box-shadow:0 10px 24px rgba(0,0,0,.20);
}
.v25182BossCard::before{
  content:"";
  position:absolute;
  inset:-8px;
  background:url("assets/ui/boss_stage_card_base.webp") center/cover no-repeat;
  opacity:.58;
  pointer-events:none;
}
.v25182BossCard.locked::before{background-image:url("assets/ui/boss_stage_card_locked.webp");opacity:.52;}
.v25182BossCard>*{position:relative;z-index:1;}
.v25182BossMainImg{
  width:96px;
  height:96px;
  object-fit:contain;
  display:block;
  margin:4px auto 6px;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.45));
}
.v25182BossSlot{
  position:absolute;
  left:8px;
  top:8px;
  z-index:2;
  padding:3px 8px;
  border-radius:999px;
  background:rgba(19,21,54,.72);
  border:1px solid rgba(255,215,108,.42);
  font-size:10px;
  font-weight:1000;
}
.v25182BossStatus{
  display:inline-block;
  margin:2px auto 4px;
  min-width:84px;
  padding:5px 10px;
  border-radius:999px;
  background:url("assets/ui/boss_difficulty_label.webp") center/cover no-repeat;
  color:#fff8d8;
  font-size:10px;
  font-weight:1000;
  text-shadow:0 2px 4px rgba(0,0,0,.45);
}
.v25182BossName{font-size:13px;font-weight:1000;line-height:1.18;}
.v25182BossVars{display:flex;justify-content:center;gap:4px;margin-top:8px;}
.v25182Var{
  appearance:none;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.16);
  color:#fff;
  font-size:9px;
  font-weight:1000;
  padding:3px 6px;
}
.v25182Var.active{background:rgba(255,215,108,.90);color:#3b2500;}
body.v25182-boss-ui-ready .prepStageSummary{
  position:relative;
  overflow:hidden;
  border-color:rgba(255,215,108,.34)!important;
  background:linear-gradient(135deg,rgba(43,33,96,.65),rgba(26,62,92,.48))!important;
}
body.v25182-boss-ui-ready .prepStageSummary::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/ui/recommended_power_panel.webp") center/cover no-repeat;
  opacity:.20;
  pointer-events:none;
}
body.v25182-boss-ui-ready .prepStageSummary>*{position:relative;z-index:1;}
.v25182RecommendedBadge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:6px;
  padding:4px 9px;
  border-radius:999px;
  background:rgba(255,215,108,.18);
  border:1px solid rgba(255,215,108,.30);
  color:#fff3c2;
  font-size:10px;
  font-weight:1000;
}
body.v25182-boss-ui-ready .bossSupportCard::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/ui/boss_support_slot_frame.webp") center/cover no-repeat;
  opacity:.22;
  pointer-events:none;
}
body.v25182-boss-ui-ready .bossSupportCard.locked::after{
  content:"";
  position:absolute;
  right:6px;
  bottom:6px;
  width:34px;
  height:34px;
  background:url("assets/ui/boss_stage_card_locked.webp") center/cover no-repeat;
  opacity:.38;
  pointer-events:none;
}
body.v25182-boss-ui-ready .bossArea{
  position:relative;
  overflow:hidden;
  border-color:rgba(255,215,108,.30)!important;
  background:linear-gradient(180deg,rgba(44,38,97,.34),rgba(18,29,48,.52))!important;
}
body.v25182-boss-ui-ready .bossArea::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/ui/boss_hp_gauge_frame.webp") center/100% 100% no-repeat;
  opacity:.18;
  pointer-events:none;
}
body.v25182-boss-ui-ready .bossArea>*{position:relative;z-index:1;}
body.v25182-boss-ui-ready .bossPortraitWrap{
  border-color:rgba(255,215,108,.35)!important;
  box-shadow:0 8px 18px rgba(0,0,0,.20), inset 0 0 18px rgba(255,215,108,.10);
}
body.v25182-boss-ui-ready .bossAttackCounter{
  border:1px solid rgba(255,215,108,.24);
  background:rgba(34,32,82,.48);
}
body.v25182-boss-ui-ready #bossBar{
  background:linear-gradient(90deg,#ffc75f,#ff5e90,#7b61ff)!important;
  box-shadow:0 0 12px rgba(255,199,95,.48);
}
body.v25182-boss-ui-ready #timeTxt::before{content:"";}
body.v25182-boss-ui-ready .bossCutinCard{
  position:relative;
  overflow:hidden;
  border-color:rgba(255,215,108,.42)!important;
  background:linear-gradient(135deg,rgba(55,26,92,.90),rgba(16,27,65,.92))!important;
}
body.v25182-boss-ui-ready .bossCutinCard::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/ui/boss_entry_cutin_frame.webp") center/cover no-repeat;
  opacity:.34;
  pointer-events:none;
}
body.v25182-boss-ui-ready .bossCutinCard>*{position:relative;z-index:1;}
body.v25182-boss-ui-ready .bossCutinTitle::after{
  content:"";
  display:inline-block;
  width:34px;
  height:34px;
  margin-left:8px;
  vertical-align:middle;
  background:url("assets/ui/boss_danger_stamp.webp") center/contain no-repeat;
}
body.v25182-boss-ui-ready .resultHero{
  position:relative;
  overflow:hidden;
}
body.v25182-boss-ui-ready .resultHero::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("assets/ui/boss_reward_panel.webp") center/cover no-repeat;
  opacity:.10;
  pointer-events:none;
}
body.v25182-boss-ui-ready .resultHero>*{position:relative;z-index:1;}
.v25182BossMiniBadge{
  display:inline-block;
  min-width:42px;
  height:42px;
  background:url("assets/ui/boss_first_clear_badge.webp") center/contain no-repeat;
  vertical-align:middle;
  margin-right:4px;
}
@media(max-width:420px){
  .v25182BossPreviewGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .v25182BossCard{min-height:172px;padding:12px 8px 10px;}
  .v25182BossMainImg{width:82px;height:82px;}
  .v25182BossHeroText span{max-width:82%;}
}

/* END ./v25_18_2_boss_ui_binding.css */

/* BEGIN ./v25_18_3_ux_fix_pack.css */
/* ===== v25.18.3 UX Fix Pack ===== */
#v25170DailyMaterialBanner.v25183DailyStable .v25170DailyText{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:4px!important;
  max-width:72%!important;
  line-height:1.18!important;
  text-align:left!important;
}
#v25170DailyMaterialBanner.v25183DailyStable .v25170DailyText b{
  font-size:17px!important;
  line-height:1.15!important;
  font-weight:950!important;
  color:#211842!important;
}
#v25170DailyMaterialBanner.v25183DailyStable .v25183DailyDesc{
  display:block!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.25!important;
  color:#211842!important;
  max-width:100%!important;
  white-space:normal!important;
}
#v25170DailyMaterialBanner.v25183DailyStable .v25170DailyCount{
  display:inline-block!important;
  margin-top:3px!important;
  padding:6px 12px!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.86)!important;
  color:#211842!important;
  font-size:19px!important;
  font-style:normal!important;
  font-weight:950!important;
  line-height:1!important;
  box-shadow:0 3px 0 rgba(58,31,93,.12)!important;
}
#v25170DailyMaterialBanner.v25183DailyStable .v25183DailyGuarantee,
#v25170DailyMaterialBanner.v25183DailyStable .v25183DailySub{
  display:inline-block!important;
  padding:4px 8px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.82)!important;
  color:#211842!important;
  font-size:11px!important;
  font-weight:950!important;
  line-height:1.1!important;
}
#v25170DailyMaterialBanner.v25183DailyStable .v25183DailySub{font-size:10px!important;opacity:.95!important;}

.v25183HomeBossChallengeBanner{
  width:100%!important;
  min-height:108px!important;
  margin:10px 0 8px!important;
  position:relative!important;
  display:block!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:22px!important;
  padding:0!important;
  background:#fff!important;
  box-shadow:0 10px 22px rgba(43,30,68,.14)!important;
  text-align:left!important;
}
.v25183HomeBossChallengeBanner img{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  pointer-events:none!important;
}
.v25183BossHomeText{
  position:relative!important;
  z-index:1!important;
  min-height:108px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:4px!important;
  padding:14px 18px!important;
  max-width:72%!important;
  color:#24183f!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95)!important;
}
.v25183BossHomeText b{font-size:19px!important;line-height:1.1!important;font-weight:950!important;}
.v25183BossHomeText span{font-size:12px!important;line-height:1.25!important;font-weight:850!important;}
.v25183BossHomeText em{
  width:max-content!important;
  max-width:100%!important;
  padding:4px 10px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  font-size:11px!important;
  line-height:1!important;
  font-style:normal!important;
  font-weight:950!important;
}
#bossScreen .v25182BossHero,
#bossScreen.v25183BossNoHero .v25182BossHero{display:none!important;}

#resultScreen .resultDropBox.v25183DropVertical .dropFxGrid,
#resultScreen .resultDropBox .dropFxGrid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard,
#resultScreen .resultDropBox .dropFxCard{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:5px!important;
  min-height:138px!important;
  padding:12px 8px 10px!important;
  overflow:hidden!important;
  text-align:center!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropFrame,
#resultScreen .resultDropBox .dropFxCard > .dropFrame{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:fill!important;
  z-index:0!important;
  pointer-events:none!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemIcon,
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemName,
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemAmount,
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemRarity,
#resultScreen .resultDropBox .dropFxCard > .dropItemIcon,
#resultScreen .resultDropBox .dropFxCard > .dropItemName,
#resultScreen .resultDropBox .dropFxCard > .dropItemAmount,
#resultScreen .resultDropBox .dropFxCard > .dropItemRarity{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  z-index:1!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemIcon,
#resultScreen .resultDropBox .dropFxCard > .dropItemIcon{
  width:56px!important;
  height:56px!important;
  max-width:56px!important;
  max-height:56px!important;
  object-fit:contain!important;
  margin:3px auto 2px!important;
  flex:0 0 auto!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemName,
#resultScreen .resultDropBox .dropFxCard > .dropItemName{
  display:block!important;
  width:100%!important;
  max-width:96%!important;
  min-height:31px!important;
  color:#211842!important;
  font-size:12px!important;
  line-height:1.22!important;
  font-weight:950!important;
  letter-spacing:0!important;
  text-align:center!important;
  writing-mode:horizontal-tb!important;
  text-orientation:mixed!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
  overflow:visible!important;
  text-overflow:clip!important;
  text-shadow:0 1px 0 rgba(255,255,255,.9)!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemAmount,
#resultScreen .resultDropBox .dropFxCard > .dropItemAmount{
  position:absolute!important;
  top:42px!important;
  right:10px!important;
  min-width:34px!important;
  height:28px!important;
  padding:0 8px!important;
  border-radius:999px!important;
  display:inline-grid!important;
  place-items:center!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:950!important;
  white-space:nowrap!important;
}
#resultScreen .resultDropBox.v25183DropVertical .dropFxCard > .dropItemRarity,
#resultScreen .resultDropBox .dropFxCard > .dropItemRarity{
  display:block!important;
  max-width:96%!important;
  font-size:8px!important;
  line-height:1!important;
  white-space:nowrap!important;
  opacity:.72!important;
}
#retryBtn.v25183DisabledRetry,
#retryBtn:disabled{
  opacity:.55!important;
  filter:grayscale(.25)!important;
  pointer-events:none!important;
}
@media(max-width:374px){
  #resultScreen .resultDropBox.v25183DropVertical .dropFxGrid,
  #resultScreen .resultDropBox .dropFxGrid{grid-template-columns:1fr!important;}
  #resultScreen .resultDropBox.v25183DropVertical .dropFxCard,
  #resultScreen .resultDropBox .dropFxCard{min-height:122px!important;}
}

/* END ./v25_18_3_ux_fix_pack.css */

/* BEGIN ./v25_18_4_daily_banner_static_fix.css */
/* ===== v25.18.4 Daily Material Banner Static Fix =====
   Keep the daily material banner artwork still. Text may update, but the image never rescales/reflows.
*/
#v25170DailyMaterialBanner.v25184DailyStaticImage,
#homeScreen #v25170DailyMaterialBanner.v25184DailyStaticImage{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:146px!important;
  min-height:146px!important;
  max-height:146px!important;
  padding:0!important;
  margin:10px 0 12px!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:22px!important;
  box-sizing:border-box!important;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.88),rgba(255,255,255,.62) 50%,rgba(255,255,255,.05) 100%),
    url('./assets/ui/daily_material_stage_banner.webp')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 10px 22px rgba(73,89,49,.14), inset 0 0 0 1px rgba(255,255,255,.86)!important;
  transform:none!important;
  animation:none!important;
  transition:opacity .16s ease, filter .16s ease!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage > img{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  opacity:0!important;
  transform:none!important;
  animation:none!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage::after{
  content:none!important;
  display:none!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25170DailyText{
  position:absolute!important;
  z-index:3!important;
  left:14px!important;
  top:12px!important;
  bottom:12px!important;
  width:72%!important;
  max-width:72%!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:4px!important;
  padding:8px 10px!important;
  border-radius:16px!important;
  box-sizing:border-box!important;
  background:rgba(255,255,255,.70)!important;
  box-shadow:0 4px 12px rgba(42,87,44,.10)!important;
  color:#211842!important;
  text-align:left!important;
  line-height:1.15!important;
  overflow:hidden!important;
  transform:none!important;
  animation:none!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailyTitle,
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25170DailyText b{
  display:block!important;
  flex:0 0 auto!important;
  font-size:16px!important;
  line-height:1.08!important;
  font-weight:950!important;
  color:#211842!important;
  white-space:normal!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailyDesc{
  display:block!important;
  flex:0 0 auto!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1.18!important;
  color:#211842!important;
  white-space:normal!important;
  max-width:100%!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25170DailyCount{
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  margin:2px 0 0!important;
  padding:6px 12px!important;
  border-radius:14px!important;
  background:rgba(255,255,255,.88)!important;
  color:#211842!important;
  font-size:18px!important;
  font-style:normal!important;
  font-weight:950!important;
  line-height:1!important;
  box-shadow:0 3px 0 rgba(58,31,93,.10)!important;
  white-space:nowrap!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailyGuarantee,
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailySub{
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  max-width:100%!important;
  padding:3px 7px!important;
  border-radius:11px!important;
  background:rgba(255,255,255,.82)!important;
  color:#211842!important;
  font-size:10px!important;
  font-weight:950!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailySub{font-size:9px!important;opacity:.96!important;}
#v25170DailyMaterialBanner.v25184DailyStaticImage .v25174MaterialDiffBadge{display:none!important;}

@media(max-width:480px){
  #v25170DailyMaterialBanner.v25184DailyStaticImage,
  #homeScreen #v25170DailyMaterialBanner.v25184DailyStaticImage{
    height:134px!important;
    min-height:134px!important;
    max-height:134px!important;
    border-radius:19px!important;
  }
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25170DailyText{
    left:10px!important;
    top:9px!important;
    bottom:9px!important;
    width:76%!important;
    max-width:76%!important;
    padding:7px 9px!important;
    gap:3px!important;
  }
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailyTitle,
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25170DailyText b{font-size:14px!important;}
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailyDesc{font-size:10px!important;line-height:1.16!important;}
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25170DailyCount{font-size:17px!important;padding:5px 10px!important;}
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailyGuarantee,
  #v25170DailyMaterialBanner.v25184DailyStaticImage .v25183DailySub{font-size:9px!important;padding:3px 6px!important;}
}

/* END ./v25_18_4_daily_banner_static_fix.css */

/* BEGIN ./v25_18_5_daily_banner_text_fit.css */
/* ===== v25.18.5 Daily Banner Text Fit =====
   The artwork stays fixed. Only a compact, fixed-line overlay is visible.
*/
#v25170DailyMaterialBanner.v25185DailyCompact,
#homeScreen #v25170DailyMaterialBanner.v25185DailyCompact{
  height:136px!important;
  min-height:136px!important;
  max-height:136px!important;
  overflow:hidden!important;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.92),rgba(255,255,255,.68) 47%,rgba(255,255,255,.10) 100%),
    url('./assets/ui/daily_material_stage_banner.webp')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  transform:none!important;
  animation:none!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact > img{
  display:none!important;
  width:0!important;
  height:0!important;
  opacity:0!important;
  visibility:hidden!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact .v25170DailyText{
  position:absolute!important;
  z-index:5!important;
  left:14px!important;
  top:14px!important;
  right:auto!important;
  bottom:auto!important;
  width:58%!important;
  max-width:58%!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  display:block!important;
  padding:0!important;
  margin:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  line-height:1!important;
  text-align:left!important;
  color:#211842!important;
  transform:none!important;
  animation:none!important;
}
/* Hide all older long-copy nodes that caused clipped lines and odd line breaks. */
#v25170DailyMaterialBanner.v25185DailyCompact .v25170DailyText > :not(.v25185DailyCompactCopy),
#v25170DailyMaterialBanner.v25185DailyCompact .v25183DailyTitle,
#v25170DailyMaterialBanner.v25185DailyCompact .v25183DailyDesc,
#v25170DailyMaterialBanner.v25185DailyCompact .v25183DailyGuarantee,
#v25170DailyMaterialBanner.v25185DailyCompact .v25183DailySub,
#v25170DailyMaterialBanner.v25185DailyCompact .v25170DailyText > b:not(.v25185DailyTitle),
#v25170DailyMaterialBanner.v25185DailyCompact .v25170DailyText > span:not(.v25185DailyCompactCopy),
#v25170DailyMaterialBanner.v25185DailyCompact .v25170DailyText > em:not(.v25185DailyCount){
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyCompactCopy{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:5px!important;
  width:100%!important;
  max-width:100%!important;
  padding:9px 10px!important;
  border-radius:15px!important;
  box-sizing:border-box!important;
  background:rgba(255,255,255,.76)!important;
  box-shadow:0 4px 12px rgba(42,87,44,.10)!important;
  color:#211842!important;
  overflow:hidden!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyTitle{
  display:block!important;
  width:100%!important;
  font-size:15px!important;
  line-height:1.05!important;
  font-weight:950!important;
  color:#211842!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyCount{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:6px 12px!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.90)!important;
  color:#211842!important;
  font-size:18px!important;
  font-style:normal!important;
  font-weight:950!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:0 3px 0 rgba(58,31,93,.10)!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyDesc,
#v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyBadge{
  display:block!important;
  max-width:100%!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
  color:#211842!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.12!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyBadge{
  display:inline-flex!important;
  padding:3px 8px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  font-size:10px!important;
  font-weight:950!important;
}
@media(max-width:480px){
  #v25170DailyMaterialBanner.v25185DailyCompact,
  #homeScreen #v25170DailyMaterialBanner.v25185DailyCompact{
    height:128px!important;
    min-height:128px!important;
    max-height:128px!important;
    border-radius:18px!important;
  }
  #v25170DailyMaterialBanner.v25185DailyCompact .v25170DailyText{
    left:10px!important;
    top:10px!important;
    width:60%!important;
    max-width:60%!important;
  }
  #v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyCompactCopy{
    padding:8px 8px!important;
    gap:4px!important;
  }
  #v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyTitle{font-size:13px!important;}
  #v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyCount{font-size:16px!important;padding:5px 10px!important;}
  #v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyDesc{font-size:10px!important;}
  #v25170DailyMaterialBanner.v25185DailyCompact .v25185DailyBadge{font-size:9px!important;padding:3px 7px!important;}
}

/* END ./v25_18_5_daily_banner_text_fit.css */

/* BEGIN ./v25_18_6_no_midword_wrap.css */
/* ===== v25.18.6 No Midword Wrap =====
   Prevent awkward one-character Japanese line breaks in home banners and compact cards.
   Keep images static; only text sizing/wrapping is adjusted.
*/
:root{--v25186-text-strong:#211842;}

/* General home banner text should not split words like ワー/ルド or クリ/ア後. */
#homeScreen .homeGuestText,
#homeScreen .homeGuestText b,
#homeScreen .homeGuestText span,
#homeScreen .v2594MokoEntryText,
#homeScreen .v2594MokoEntryText b,
#homeScreen .v2594MokoEntryText span,
#homeScreen .v25183BossHomeText,
#homeScreen .v25183BossHomeText b,
#homeScreen .v25183BossHomeText span,
#homeScreen .v25183BossHomeText em,
#homeScreen .v25185DailyCompactCopy,
#homeScreen .v25185DailyCompactCopy *{
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
  text-wrap:balance;
}

/* Boss banner: shorter copy, wider readable text area, fixed line count. */
#homeScreen .v25183HomeBossChallengeBanner{
  min-height:104px!important;
  margin:8px 0!important;
}
#homeScreen .v25183BossHomeText{
  min-height:104px!important;
  max-width:66%!important;
  width:66%!important;
  padding:12px 16px!important;
  justify-content:center!important;
  gap:4px!important;
  box-sizing:border-box!important;
}
#homeScreen .v25183BossHomeText b{
  display:block!important;
  width:100%!important;
  font-size:18px!important;
  line-height:1.08!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#homeScreen .v25183BossHomeText span{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  font-size:11px!important;
  line-height:1.22!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#homeScreen .v25183BossHomeText em{
  display:inline-flex!important;
  align-items:center!important;
  width:max-content!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Mokomoko entry: use compact two-line layout, never split the title or クリア後. */
#homeScreen .v2594MokoEntry{
  min-height:112px!important;
  max-height:124px!important;
}
#homeScreen .v2594MokoEntryText{
  left:12px!important;
  right:12px!important;
  bottom:10px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:end!important;
  gap:8px!important;
  color:var(--v25186-text-strong)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.85)!important;
}
#homeScreen .v2594MokoEntryText b,
#homeScreen .v2594MokoEntryText span{
  display:block!important;
  min-width:0!important;
  background:rgba(255,255,255,.62)!important;
  border-radius:12px!important;
  padding:5px 8px!important;
  box-sizing:border-box!important;
}
#homeScreen .v2594MokoEntryText b{
  font-size:16px!important;
  line-height:1.08!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#homeScreen .v2594MokoEntryText span{
  font-size:10.5px!important;
  line-height:1.08!important;
  text-align:right!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

/* Isekai / Nyanko compact cards: keep text horizontal and avoid CJK midword splitting. */
#homeScreen .homeGuestEventBanner .homeGuestText{
  min-width:0!important;
  overflow:hidden!important;
}
#homeScreen .homeGuestEventBanner .homeGuestText b{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#homeScreen .homeGuestEventBanner .homeGuestText span{
  display:block!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:unset!important;
}

@media(max-width:430px){
  #homeScreen .v25183BossHomeText{
    max-width:64%!important;
    width:64%!important;
    padding:11px 13px!important;
  }
  #homeScreen .v25183BossHomeText b{font-size:16px!important;}
  #homeScreen .v25183BossHomeText span{font-size:10px!important;}
  #homeScreen .v25183BossHomeText em{font-size:10px!important;padding:4px 8px!important;}
  #homeScreen .v2594MokoEntryText{
    grid-template-columns:1fr!important;
    align-items:start!important;
    gap:4px!important;
    right:44%!important;
  }
  #homeScreen .v2594MokoEntryText b{font-size:14px!important;}
  #homeScreen .v2594MokoEntryText span{text-align:left!important;font-size:10px!important;}
}

/* END ./v25_18_6_no_midword_wrap.css */

/* BEGIN ./v25_19_0_boss_trial_release.css */
/* ===== v25.19.0 Boss Trial Release ===== */
#bossTrialScreen .v25190TrialPad{padding-bottom:92px;}
.v25190TrialHero{position:relative;overflow:hidden;border-radius:24px;min-height:138px;margin:8px 0 12px;border:1px solid rgba(255,215,108,.45);box-shadow:0 14px 32px rgba(30,17,82,.24);background:linear-gradient(135deg,rgba(45,24,100,.72),rgba(18,39,78,.65));}
.v25190TrialHero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9;}
.v25190TrialHero>div{position:relative;z-index:1;max-width:62%;min-height:138px;padding:18px 16px;display:flex;flex-direction:column;justify-content:center;color:#211842;text-shadow:0 1px 0 rgba(255,255,255,.82);box-sizing:border-box;}
.v25190TrialHero b{font-size:20px;line-height:1.12;font-weight:1000;word-break:keep-all;overflow-wrap:normal;}
.v25190TrialHero span{display:block;margin-top:6px;font-size:12px;line-height:1.35;font-weight:900;word-break:keep-all;overflow-wrap:normal;}
.v25190TrialStatus{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0 12px;padding:10px 12px;border-radius:16px;background:rgba(255,255,255,.86);border:1px solid rgba(255,215,108,.42);box-shadow:0 8px 18px rgba(45,34,100,.10);color:#211842;}
.v25190TrialStatus b{font-size:15px;font-weight:1000;white-space:nowrap;}
.v25190TrialStatus span{font-size:11px;font-weight:900;line-height:1.25;text-align:right;}
.v25190TrialGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.v25190TrialCard{position:relative;min-height:245px;padding:10px 8px 12px;border:0;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(40,28,88,.92),rgba(19,28,58,.96));box-shadow:0 12px 26px rgba(0,0,0,.24);color:#fff;text-align:center;touch-action:manipulation;}
.v25190TrialCard .v25190CardBg{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);object-fit:cover;opacity:.66;pointer-events:none;}
.v25190TrialCard>*:not(.v25190CardBg){position:relative;z-index:1;}
.v25190Floor{position:absolute!important;left:8px;top:8px;display:inline-flex;align-items:center;justify-content:center;padding:4px 9px;border-radius:999px;background:rgba(22,18,58,.78);border:1px solid rgba(255,215,108,.5);font-size:10px;font-weight:1000;color:#fff7c9;}
.v25190FirstBadge{position:absolute!important;right:6px;top:6px;width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35));}
.v25190BossImg{display:block;width:116px;height:116px;margin:28px auto 6px;object-fit:contain;filter:drop-shadow(0 10px 13px rgba(0,0,0,.48));}
.v25190TrialCard.locked .v25190BossImg{filter:grayscale(1) brightness(.45) drop-shadow(0 8px 10px rgba(0,0,0,.45));opacity:.72;}
.v25190Name{display:block;font-size:15px;line-height:1.12;font-weight:1000;color:#fff7cf;text-shadow:0 2px 6px rgba(0,0,0,.55);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;}
.v25190Meta,.v25190Score{display:block;margin-top:5px;font-size:10.5px;line-height:1.18;font-weight:900;color:rgba(255,255,255,.92);text-shadow:0 2px 5px rgba(0,0,0,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;}
.v25190Action{display:inline-flex;margin-top:9px;min-width:92px;justify-content:center;padding:7px 12px;border-radius:999px;background:linear-gradient(180deg,#fff1a6,#ffc85f);color:#3e2700;font-size:12px;font-weight:1000;box-shadow:0 6px 14px rgba(0,0,0,.20);white-space:nowrap;}
.v25190TrialCard.locked .v25190Action{background:rgba(255,255,255,.72);color:#4f4f5b;}
.v25190TrialCard.cleared{box-shadow:0 0 0 2px rgba(255,215,108,.55),0 12px 26px rgba(0,0,0,.24);}
.v25190TrialPrepSummary{position:relative;overflow:hidden;border-color:rgba(255,215,108,.5)!important;background:linear-gradient(135deg,rgba(54,32,112,.72),rgba(17,43,80,.62))!important;color:#fff!important;}
.v25190TrialPrepSummary::before{content:"";position:absolute;inset:0;background:url("assets/ui/boss_warning_popup.webp") center/cover no-repeat;opacity:.25;pointer-events:none;}
.v25190TrialPrepSummary>*{position:relative;z-index:1;}
.v25190PrepBoss{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:10px;}
.v25190PrepBoss img{width:86px;height:86px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.45));}
.v25190PrepBoss b{display:block;font-size:17px;line-height:1.15;color:#fff7c8;font-weight:1000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;}
.v25190PrepBoss span,.v25190PrepBoss small{display:block;margin-top:4px;font-size:12px;line-height:1.25;font-weight:900;color:rgba(255,255,255,.94);word-break:keep-all;overflow-wrap:normal;}
.v25190PlayableBossBanner{cursor:pointer;}
#homeScreen .v25190PlayableBossBanner .v25183BossHomeText span{white-space:nowrap!important;}
#homeScreen .v25190PlayableBossBanner .v25183BossHomeText em{background:rgba(255,255,255,.82)!important;color:#211842!important;}
.v25190DexChallengeBtn{margin-top:8px;border:0;border-radius:999px;background:linear-gradient(180deg,#fff1a6,#ffc85f);color:#3e2700;font-size:11px;font-weight:1000;padding:6px 14px;box-shadow:0 6px 14px rgba(0,0,0,.20);}
#bossScreen .v25182BossStatus{background-image:url("assets/ui/boss_difficulty_label.webp");}
body.v25190-trial-prep #prepBack::after{content:"";}
body.v25190-trial-prep #prepBack{font-size:0;}
body.v25190-trial-prep #prepBack::before{content:"← 試練塔";font-size:12px;}
body.v25190-trial-screen .bottomNav,body.v25190-trial-prep .bottomNav{display:none;}
#resultScreen .resultHero:has(#rewardText)::before{pointer-events:none;}
.v25190TrialRecord{border-color:rgba(255,215,108,.5)!important;}
@media (max-width:420px){
  .v25190TrialHero>div{max-width:66%;padding:14px 13px;}
  .v25190TrialHero b{font-size:18px;}
  .v25190TrialHero span{font-size:11px;}
  .v25190TrialGrid{gap:9px;}
  .v25190TrialCard{min-height:228px;padding-left:6px;padding-right:6px;}
  .v25190BossImg{width:104px;height:104px;}
  .v25190Name{font-size:13px;}
  .v25190Meta,.v25190Score{font-size:9.5px;}
}

/* END ./v25_19_0_boss_trial_release.css */

/* BEGIN ./v25_20_0_pirate_ui_prep.css */
/* v25.20.0 Pirate UI Prep
   Future-use classes only. No visible screen is injected by this patch. */
:root{
  --pirate-blue:#2f9fde;
  --pirate-sky:#dff7ff;
  --pirate-gold:#f4c65d;
  --pirate-brown:#8b5b36;
}
.v25200PirateBanner,
.v25200PirateCard,
.v25200PiratePanel{
  box-sizing:border-box;
  word-break:keep-all;
  overflow-wrap:normal;
}
.v25200PirateBanner{
  position:relative;
  width:100%;
  min-height:150px;
  border-radius:22px;
  overflow:hidden;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  contain:layout paint style;
}
.v25200PirateBanner > div{
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  width:min(54%, 360px);
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.78);
  box-shadow:0 8px 20px rgba(63,42,18,.16);
}
.v25200PirateBanner b{
  display:block;
  color:#5f3b17;
  font-size:18px;
  line-height:1.15;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.v25200PirateBanner span{
  display:block;
  margin-top:5px;
  color:#72531e;
  font-size:12px;
  line-height:1.35;
}
.v25200PiratePreviewGrid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
  gap:12px;
  margin-top:12px;
}
.v25200PiratePreviewGrid figure{
  margin:0;
  padding:8px;
  border-radius:16px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(244,198,93,.4);
}
.v25200PiratePreviewGrid img{
  width:100%;
  height:92px;
  object-fit:contain;
  display:block;
}
.v25200PiratePreviewGrid figcaption{
  margin-top:4px;
  font-size:10px;
  line-height:1.2;
  color:#73511f;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.v25200PirateStageCard{
  position:relative;
  min-height:132px;
  border-radius:18px;
  overflow:hidden;
  background-size:100% 100%;
  background-repeat:no-repeat;
  contain:layout paint style;
}
.v25200PirateRouteNode{
  width:64px;
  height:64px;
  object-fit:contain;
  display:block;
}
.v25200PirateUiNotReady{
  pointer-events:none;
  opacity:.72;
  filter:saturate(.9);
}
@media (max-width:420px){
  .v25200PirateBanner{min-height:132px;border-radius:18px;}
  .v25200PirateBanner > div{left:10px;width:56%;padding:9px 10px;border-radius:14px;}
  .v25200PirateBanner b{font-size:15px;}
  .v25200PirateBanner span{font-size:10.5px;}
}

/* END ./v25_20_0_pirate_ui_prep.css */

/* BEGIN ./v25_20_1_home_route_fix.css */
/* ===== v25.20.1 Home Route / Banner Fix ===== */
#v25183HomeBossChallengeBanner.v25201BossBannerPlayable .v25183BossHomeText,
#v25170DailyMaterialBanner.v25201DailyPrepOnly .v25170DailyText{
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
#v25183HomeBossChallengeBanner.v25201BossBannerPlayable .v25183BossHomeText span,
#v25183HomeBossChallengeBanner.v25201BossBannerPlayable .v25183BossHomeText em{
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  overflow:hidden!important;
}
#v25170DailyMaterialBanner.v25201DailyPrepOnly{
  touch-action:manipulation!important;
  cursor:pointer!important;
}
#nextStageBtn.show{
  pointer-events:auto!important;
}

/* END ./v25_20_1_home_route_fix.css */

/* BEGIN ./v25_20_2_daily_material_route_difficulty_fix.css */
/* ===== v25.20.2 Daily Material Route / Difficulty Fix ===== */
.v25202MaterialDiffPicker{
  margin-top:10px!important;
  padding:10px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(238,204,120,.70)!important;
  box-shadow:0 8px 20px rgba(92,64,20,.10)!important;
}
.v25202MaterialDiffTitle{
  font-weight:1000!important;
  color:#2e235f!important;
  font-size:13px!important;
  margin-bottom:8px!important;
  word-break:keep-all!important;
}
.v25202MaterialDiffButtons{
  display:flex!important;
  gap:8px!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
  padding-bottom:2px!important;
}
.v25202MaterialDiffBtn{
  flex:0 0 118px!important;
  min-height:78px!important;
  border-radius:16px!important;
  border:2px solid rgba(171,151,90,.38)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,249,229,.94))!important;
  color:#30245f!important;
  padding:8px 7px!important;
  text-align:left!important;
  box-shadow:0 6px 14px rgba(70,54,20,.10)!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  touch-action:manipulation!important;
}
.v25202MaterialDiffBtn.active{
  border-color:#f0b72e!important;
  background:linear-gradient(180deg,#fff2a8,#ffd96a)!important;
  box-shadow:0 0 0 3px rgba(255,224,115,.35),0 8px 18px rgba(95,64,10,.14)!important;
}
.v25202MaterialDiffBtn b{
  display:block!important;
  font-size:14px!important;
  line-height:1.15!important;
  color:#21164e!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.v25202MaterialDiffBtn span{
  display:block!important;
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:900!important;
  color:#54456d!important;
  margin-top:3px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.v25202MaterialDiffBtn small{
  display:block!important;
  font-size:10px!important;
  line-height:1.25!important;
  color:#705c25!important;
  margin-top:4px!important;
}
.v25202MaterialDiffHelp{
  margin-top:6px!important;
  font-size:11px!important;
  line-height:1.35!important;
  color:#554a64!important;
  font-weight:900!important;
  word-break:keep-all!important;
}
#retryBtn.v25202DisabledRetry{
  opacity:.55!important;
  filter:grayscale(.4)!important;
}
#v25170DailyMaterialBanner.v25202DailyNoForceEasy{
  touch-action:manipulation!important;
}

/* END ./v25_20_2_daily_material_route_difficulty_fix.css */

/* BEGIN ./v25_20_3_banner_authority_fix.css */
/* ===== v25.20.3 Banner Authority Fix =====
   Hard-overrides home banner content so legacy patch intervals update hidden trap nodes only.
*/
#homeScreen #v25183HomeBossChallengeBanner.v25203BossAuthority,
#v25183HomeBossChallengeBanner.v25203BossAuthority{
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-height:118px!important;
  height:118px!important;
  max-height:118px!important;
  margin:8px 0 10px!important;
  padding:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:22px!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  animation:none!important;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.92),rgba(255,255,255,.66) 50%,rgba(255,255,255,.08) 100%),
    url('./assets/ui/boss_challenge_banner.webp')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 10px 22px rgba(43,30,68,.14)!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}
#v25183HomeBossChallengeBanner.v25203BossAuthority > img{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  opacity:0!important;
}
#v25183HomeBossChallengeBanner.v25203BossAuthority .v25183BossHomeText.v25203LegacyTrap,
#v25170DailyMaterialBanner.v25203DailyAuthority .v25170DailyText.v25203LegacyTrap{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  position:absolute!important;
  left:-9999px!important;
  top:-9999px!important;
}
#v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossVisible{
  position:relative!important;
  z-index:5!important;
  width:62%!important;
  max-width:62%!important;
  min-height:118px!important;
  padding:15px 16px!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  gap:5px!important;
  color:#211842!important;
  text-align:left!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95)!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
}
#v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossTitle{
  display:block!important;
  width:100%!important;
  color:#211842!important;
  font-size:20px!important;
  line-height:1.05!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossDesc{
  display:block!important;
  width:100%!important;
  color:#211842!important;
  font-size:12px!important;
  line-height:1.2!important;
  font-weight:950!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossCta{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:5px 12px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  color:#211842!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  box-shadow:0 3px 0 rgba(58,31,93,.10)!important;
}

#homeScreen #v25170DailyMaterialBanner.v25203DailyAuthority,
#v25170DailyMaterialBanner.v25203DailyAuthority{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:128px!important;
  min-height:128px!important;
  max-height:128px!important;
  margin:8px 0 10px!important;
  padding:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:20px!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  animation:none!important;
  background-image:
    linear-gradient(90deg,rgba(255,255,255,.92),rgba(255,255,255,.70) 50%,rgba(255,255,255,.10) 100%),
    url('./assets/ui/daily_material_stage_banner.webp')!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  box-shadow:0 10px 22px rgba(43,30,68,.12)!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority.is-empty{
  opacity:1!important;
  filter:none!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority > img{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  opacity:0!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyVisible{
  position:relative!important;
  z-index:5!important;
  width:57%!important;
  max-width:57%!important;
  min-height:128px!important;
  padding:14px 14px!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  gap:5px!important;
  color:#211842!important;
  text-align:left!important;
  text-shadow:0 1px 0 rgba(255,255,255,.95)!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  line-break:strict!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyTitle{
  display:block!important;
  width:100%!important;
  color:#211842!important;
  font-size:17px!important;
  line-height:1.05!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyCount{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:6px 12px!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.90)!important;
  color:#211842!important;
  font-size:19px!important;
  font-weight:1000!important;
  line-height:1!important;
  white-space:nowrap!important;
  box-shadow:0 3px 0 rgba(58,31,93,.10)!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyDesc,
#v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyBadge{
  display:block!important;
  max-width:100%!important;
  color:#211842!important;
  font-size:11px!important;
  line-height:1.1!important;
  font-weight:950!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyBadge{
  display:inline-flex!important;
  padding:3px 8px!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.86)!important;
  font-size:10px!important;
  line-height:1!important;
}
@media(max-width:480px){
  #homeScreen #v25183HomeBossChallengeBanner.v25203BossAuthority,
  #v25183HomeBossChallengeBanner.v25203BossAuthority{
    height:112px!important;
    min-height:112px!important;
    max-height:112px!important;
  }
  #v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossVisible{
    width:64%!important;
    max-width:64%!important;
    min-height:112px!important;
    padding:13px 12px!important;
  }
  #v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossTitle{font-size:18px!important;}
  #v25183HomeBossChallengeBanner.v25203BossAuthority .v25203BossDesc{font-size:11px!important;}
  #homeScreen #v25170DailyMaterialBanner.v25203DailyAuthority,
  #v25170DailyMaterialBanner.v25203DailyAuthority{
    height:124px!important;
    min-height:124px!important;
    max-height:124px!important;
  }
  #v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyVisible{
    width:58%!important;
    max-width:58%!important;
    min-height:124px!important;
    padding:12px 10px!important;
    gap:4px!important;
  }
  #v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyTitle{font-size:15px!important;}
  #v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyCount{font-size:17px!important;padding:5px 10px!important;}
  #v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyDesc{font-size:10px!important;}
  #v25170DailyMaterialBanner.v25203DailyAuthority .v25203DailyBadge{font-size:9px!important;}
}

/* END ./v25_20_3_banner_authority_fix.css */

/* BEGIN ./v25_20_4_start_preload_gate.css */
/* v25.20.4 Start Preload Gate */
#v25204PreloadOverlay{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(12,18,16,.55);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
#v25204PreloadOverlay.show{display:flex;}
.v25204PreloadCard{
  width:min(360px,92vw);
  border-radius:28px;
  padding:24px 20px 20px;
  text-align:center;
  color:#281946;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,248,226,.96));
  border:2px solid rgba(255,222,128,.95);
  box-shadow:0 18px 48px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.8);
  font-weight:900;
}
.v25204PreloadCard b{display:block;font-size:22px;letter-spacing:.03em;margin:8px 0 8px;}
.v25204PreloadCard span{display:block;font-size:14px;line-height:1.45;margin:0 0 12px;}
.v25204PreloadCard small{display:block;font-size:12px;line-height:1.45;color:rgba(40,25,70,.72);margin-top:12px;}
.v25204Spinner{
  width:54px;
  height:54px;
  margin:0 auto 8px;
  border-radius:50%;
  border:7px solid rgba(255,218,98,.55);
  border-top-color:#8f67ff;
  animation:v25204Spin .9s linear infinite;
}
.v25204PreloadBar{
  width:100%;
  height:14px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(40,25,70,.12);
  border:1px solid rgba(40,25,70,.12);
}
.v25204PreloadBar i{
  display:block;
  width:0%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#7df5cb,#fff07c,#ff92d0,#9b79ff);
  transition:width .16s ease;
}
body.v25204-preloading #startGame,
body.v25204-preloading #v2489FixedStart{pointer-events:none;opacity:.78;}
body.light-mode #v25204PreloadOverlay{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(12,18,16,.44);}
@keyframes v25204Spin{to{transform:rotate(360deg)}}

/* END ./v25_20_4_start_preload_gate.css */

/* BEGIN ./v25_21_0_pirate_faction_release.css */
.v25210HomePirateBanner{display:flex;align-items:center;gap:12px;width:100%;margin:10px 0 14px;border:none;border-radius:20px;padding:0;background:linear-gradient(135deg,#2a183f,#10233f);box-shadow:0 10px 24px rgba(18,12,38,.22);overflow:hidden;cursor:pointer}
.v25210HomePirateBanner img{width:44%;max-width:220px;height:auto;display:block;flex:0 0 auto}
.v25210HomePirateBanner .homeGuestText{padding:12px 14px 12px 0}
#pirateHubScreen .pad,#pirateMapScreen .pad{padding-bottom:110px}
.v25210HeroBanner{position:relative;border-radius:24px;overflow:hidden;margin:6px 0 16px;box-shadow:0 10px 28px rgba(14,20,40,.16)}
.v25210HeroBanner img{display:block;width:100%;height:auto;min-height:180px;object-fit:cover;background:linear-gradient(135deg,#1d2346,#3b214c)}
.v25210HeroText{position:absolute;left:0;right:0;bottom:0;padding:18px 18px 16px;background:linear-gradient(180deg,rgba(8,10,18,0),rgba(8,10,18,.78))}
.v25210HeroText b{display:block;font-size:20px;color:#fff;margin-bottom:4px;text-shadow:0 2px 8px rgba(0,0,0,.25)}
.v25210HeroText span{display:block;font-size:13px;color:#eef4ff;line-height:1.5}
.v25210PirateStatus,.v25210RouteSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.v25210PirateStatus>div,.v25210RouteSummary>div{background:#fff;border-radius:18px;padding:12px 14px;box-shadow:0 8px 20px rgba(15,17,35,.08)}
.v25210PirateStatus b,.v25210RouteSummary b{display:block;font-size:12px;color:#5a6479;margin-bottom:4px}
.v25210PirateStatus span,.v25210RouteSummary span{display:block;font-weight:800;color:#1b2340;font-size:14px;line-height:1.45}
.v25210FactionGrid{display:grid;grid-template-columns:1fr;gap:14px}
.v25210FactionCard{display:grid;grid-template-columns:112px 1fr;gap:12px;width:100%;text-align:left;border:none;border-radius:22px;padding:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--pirate-accent) 16%,#fff) 0%,#fff 42%,#f7f9ff 100%);box-shadow:0 10px 26px rgba(13,16,34,.10);cursor:pointer;overflow:hidden}
.v25210FactionThumb{display:flex;align-items:flex-end;justify-content:center;background:radial-gradient(circle at 50% 18%,rgba(255,255,255,.95),rgba(255,255,255,.35) 45%,transparent 65%),linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.18));border-radius:18px;min-height:132px}
.v25210FactionThumb img{display:block;width:96%;height:auto;object-fit:contain}
.v25210FactionBody{display:flex;flex-direction:column;justify-content:center;gap:4px}
.v25210FactionBody b{font-size:18px;color:#1f2a48}
.v25210FactionBody span{font-size:13px;color:#4d5a7a;font-weight:700}
.v25210FactionBody small{font-size:12px;color:#5f677b;line-height:1.45}
.v25210FactionMeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.v25210FactionMeta em{font-style:normal;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800;color:#2a3153}
.v25210MapHeroCard{display:grid;grid-template-columns:124px 1fr;gap:14px;align-items:center;border-radius:22px;padding:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--pirate-accent) 20%,#fff),#fff 52%,#f8faff);box-shadow:0 10px 28px rgba(12,16,35,.1);margin:4px 0 14px}
.v25210MapHeroCard img{display:block;width:100%;height:auto;max-height:160px;object-fit:contain;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.95),rgba(255,255,255,.45) 42%,transparent 68%)}
.v25210MapHeroCard b{display:block;font-size:20px;color:#1f2745;margin-bottom:4px}
.v25210MapHeroCard span{display:block;font-size:13px;color:#4c5878;font-weight:700;margin-bottom:6px}
.v25210MapHeroCard small{display:block;font-size:12px;color:#616a7f;line-height:1.45}
.v25210RouteGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v25210RouteCard{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;border:none;border-radius:22px;padding:12px 12px 14px;min-height:280px;background:linear-gradient(180deg,#fff,#f6f7fd);box-shadow:0 10px 28px rgba(11,16,33,.1);cursor:pointer;overflow:hidden;text-align:center}
.v25210RouteCard.locked{opacity:.76;filter:saturate(.86)}
.v25210RouteBg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.15}
.v25210RouteNode{position:absolute;left:12px;top:12px;width:56px;height:56px;display:flex;align-items:center;justify-content:center}
.v25210RouteNode img{width:100%;height:100%;object-fit:contain}
.v25210RouteBadge{position:absolute;right:8px;top:8px;width:72px;height:auto}
.v25210BossRibbon{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:118px;height:auto}
.v25210RouteImg{position:relative;z-index:1;display:block;width:88%;max-height:150px;object-fit:contain;margin-top:24px}
.v25210RouteStage,.v25210RouteName,.v25210RouteMeta,.v25210RouteAction{position:relative;z-index:1;display:block}
.v25210RouteStage{font-size:12px;font-weight:900;letter-spacing:.06em;color:var(--pirate-accent,#6849ef)}
.v25210RouteName{font-size:15px;font-weight:900;color:#1f2640;line-height:1.3;min-height:2.6em}
.v25210RouteMeta{font-size:11px;color:#5d6881;line-height:1.45;min-height:2.6em}
.v25210RouteAction{margin-top:auto;border-radius:999px;background:linear-gradient(135deg,var(--pirate-accent,#6849ef),#2c3355);padding:8px 12px;color:#fff;font-size:12px;font-weight:900;box-shadow:0 8px 16px rgba(28,33,65,.18)}
.v25210RouteCard.locked .v25210RouteAction{background:linear-gradient(135deg,#939bb3,#5c647a)}
.collectionGuestBadge.pirate{background:linear-gradient(135deg,#5b3fd6,#f25ea8);color:#fff}
@media (max-width:620px){
  .v25210HomePirateBanner{align-items:stretch}.v25210HomePirateBanner img{width:38%;max-width:none}.v25210PirateStatus,.v25210RouteSummary{grid-template-columns:1fr}.v25210FactionCard{grid-template-columns:96px 1fr}.v25210MapHeroCard{grid-template-columns:96px 1fr;gap:10px}.v25210RouteGrid{grid-template-columns:1fr 1fr;gap:10px}.v25210RouteCard{min-height:250px;padding:10px 8px 12px}
}

/* END ./v25_21_0_pirate_faction_release.css */

/* BEGIN ./v25_21_1_pirate_future_ui_prep.css */
/* ===== v25.21.1 Pirate Future UI Prep ===== */
.v25211OpenFutureUiPrep{margin:8px 0 14px;width:100%}
.v25211FutureHero{border-radius:22px;padding:16px;margin:8px 0 16px;background:linear-gradient(135deg,#fff8df,#e9f6ff 55%,#f8e9ff);box-shadow:0 10px 24px rgba(15,20,42,.08)}
.v25211FutureHero b{display:block;font-size:18px;color:#1e2745;margin-bottom:5px}
.v25211FutureHero span{display:block;font-size:13px;line-height:1.55;color:#566079}
.v25211FutureGroup{margin:14px 0}
.v25211FutureGroup h3{margin:0 0 8px;font-size:15px;color:#253052}
.v25211FutureGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v25211FutureCard{position:relative;border-radius:18px;padding:12px;background:#fff;box-shadow:0 8px 20px rgba(16,20,40,.08);border:1px solid rgba(30,38,75,.08);min-height:104px}
.v25211FutureCard.ready{background:linear-gradient(135deg,#fff,#e9fff3)}
.v25211FutureCard.pending{background:linear-gradient(135deg,#fff,#f6f7fb)}
.v25211FutureNo{position:absolute;right:10px;top:8px;font-size:11px;font-weight:900;color:#8a92a8}
.v25211FutureCard b{display:block;font-size:13px;color:#222b48;padding-right:42px;line-height:1.35}
.v25211FutureCard span{display:block;margin-top:6px;font-size:11px;color:#59647c;line-height:1.35;word-break:break-all}
.v25211FutureCard small{display:inline-block;margin-top:8px;border-radius:999px;padding:4px 8px;background:#edf0f8;color:#515b74;font-size:11px;font-weight:800}
.v25211FutureCard.ready small{background:#dff8e7;color:#2d6b45}
.v25211FutureFallback{border-radius:18px;padding:14px;background:linear-gradient(135deg,#fff8df,#eef6ff);box-shadow:inset 0 0 0 1px rgba(60,70,110,.08)}
.v25211FutureFallback b{display:block;color:#253052;font-size:14px}
.v25211FutureFallback span{display:block;margin-top:4px;color:#637086;font-size:12px;line-height:1.45}
@media (max-width:520px){.v25211FutureGrid{grid-template-columns:1fr}}

/* END ./v25_21_1_pirate_future_ui_prep.css */

/* BEGIN ./v25_21_2_pirate_ui_binding_401_460.css */
/* ===== v25.21.2 Pirate UI Binding 401-460 ===== */
.v25212Bound{background-size:cover;background-position:center}
.v25212ActiveRibbon{display:block;width:100%;max-height:86px;object-fit:contain;margin:2px 0 10px}
.v25212HeroBound{background:#fff;border-radius:24px}
.v25212FactionCardBound{background-image:linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,255,255,.54)),url('./assets/ui/pirate_main_button_normal.webp');background-size:cover;background-position:center}
.v25212MapImageBg{position:relative;background-image:linear-gradient(180deg,rgba(255,255,255,.84),rgba(255,255,255,.66) 38%,rgba(255,255,255,.80)),var(--v25212-map-bg);background-size:cover;background-position:center top;border-radius:0 0 28px 28px;overflow:hidden}
.v25212MapImageBg:after{content:"";pointer-events:none;position:absolute;inset:0;background-image:url('./assets/ui/pirate_map_sparkle_overlay.webp');background-size:cover;background-position:center;opacity:.16;mix-blend-mode:screen}
.v25212MapImageBg>*{position:relative;z-index:1}
.v25212MapHeroBound{background-image:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,255,255,.65)),var(--v25212-faction-plate);background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.7)}
.v25212RouteLine{height:44px;margin:-4px 4px 8px;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:.86}
.v25212RouteLine img{width:100%;height:100%;object-fit:cover}
.v25212RouteBound .v25210RouteAction{background-image:linear-gradient(135deg,rgba(255,255,255,.15),rgba(0,0,0,.18)),url('./assets/ui/pirate_main_button_normal.webp');background-size:cover;background-position:center;color:#14203c;text-shadow:0 1px rgba(255,255,255,.55);box-shadow:0 8px 18px rgba(25,31,60,.18)}
.v25212RouteBound.locked .v25210RouteAction{background-image:linear-gradient(135deg,rgba(255,255,255,.22),rgba(0,0,0,.25)),url('./assets/ui/pirate_main_button_locked.webp')}
.v25212RouteBound.current{outline:3px solid rgba(255,206,72,.85);box-shadow:0 0 0 6px rgba(255,240,150,.38),0 14px 34px rgba(15,20,40,.16)}
.v25212CurrentMarker{position:absolute;right:8px;bottom:58px;width:52px;height:52px;object-fit:contain;z-index:4;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}
.v25212MapLabel{position:absolute;left:50%;bottom:50px;transform:translateX(-50%);width:78%;max-height:38px;object-fit:contain;z-index:3;opacity:.92}
.v25212PiratePrepSummary{background-image:linear-gradient(135deg,rgba(255,255,255,.88),rgba(255,255,255,.72)),var(--v25212-sortie-bg);background-size:cover;background-position:center;border-radius:22px;border:1px solid rgba(255,255,255,.75)}
.v25212PirateStartButton{background-image:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.18)),var(--v25212-button-bg)!important;background-size:cover!important;background-position:center!important;color:#132044!important;text-shadow:0 1px rgba(255,255,255,.52)!important}
.v25212PirateDiffTab.active{background-image:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.08)),url('./assets/ui/pirate_difficulty_tab_selected.webp');background-size:cover;background-position:center;color:#172040}
.v25212PirateDiffTab:not(.active){background-image:linear-gradient(135deg,rgba(255,255,255,.25),rgba(255,255,255,.08)),url('./assets/ui/pirate_difficulty_tab_normal.webp');background-size:cover;background-position:center}
.v25212PirateBossArea{background-image:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,255,255,.64)),var(--v25212-boss-hp);background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.7)}
.v25212BossAppearMini{display:block;width:100%;max-height:78px;object-fit:cover;border-radius:18px;margin:8px 0 4px;box-shadow:0 8px 18px rgba(12,15,35,.12)}
.v25212PirateResultHero{background-image:linear-gradient(180deg,rgba(255,255,255,.88),rgba(255,255,255,.68)),var(--v25212-result-bg)!important;background-size:cover!important;background-position:center!important;border-radius:24px;border:1px solid rgba(255,255,255,.72)}
.v25212ResultBanner{display:block;width:100%;max-height:138px;object-fit:cover;border-radius:20px;margin:0 0 10px;box-shadow:0 8px 22px rgba(12,15,35,.14)}
.v25212PirateRewardText{background-image:linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,255,255,.72)),var(--v25212-reward-panel);background-size:cover;background-position:center;border-radius:18px;padding:10px 12px!important;color:#18213f!important;font-weight:800}
.v25212PirateDropBox{border-radius:20px;background:rgba(255,255,255,.72)}
@media (max-width:560px){.v25212MapLabel{bottom:46px;width:82%}.v25212CurrentMarker{width:46px;height:46px}.v25212BossAppearMini{max-height:56px}.v25212ResultBanner{max-height:112px}}

/* END ./v25_21_2_pirate_ui_binding_401_460.css */

/* BEGIN ./v25_22_0_pwa_app_ready.css */
/* ===== v25.22.0 PWA App Ready ===== */
.v25220PwaInstallPanel{margin-top:12px;background:linear-gradient(135deg,#fff9d8,#eefaff);border:1px solid rgba(75,86,130,.10);box-shadow:0 8px 22px rgba(12,18,44,.07)}
.v25220PwaInstallPanel h3{margin-bottom:8px}
.v25220PwaToast{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:99999;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 12px 12px 14px;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(20,25,55,.22);border:1px solid rgba(60,70,120,.12);backdrop-filter:blur(8px)}
.v25220PwaToastText{font-size:13px;line-height:1.45;color:#202a48;font-weight:700}
.v25220PwaToastText b{font-size:14px}
.v25220PwaToastBtns{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.v25220-pwa-standalone .titleSubBtns .toTitle,
.v25220-pwa-standalone .homeTopbar .toTitle{display:none!important}
@media (max-width:520px){.v25220PwaToast{align-items:stretch;flex-direction:column}.v25220PwaToastBtns{justify-content:flex-end}.v25220PwaInstallPanel .soundSettingGrid{grid-template-columns:1fr}}

/* END ./v25_22_0_pwa_app_ready.css */

/* BEGIN ./v25_22_4_balance_consistency.css */
/* ===== v25.22.4 Balance Consistency ===== */
.v25224PowerSummary.v25224PowerOk{outline:2px solid rgba(80,185,110,.22);background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(235,255,241,.82))!important}
.v25224PowerSummary.v25224PowerLow{outline:2px solid rgba(255,180,80,.30);background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,245,220,.86))!important}
.v25224PowerSummary small{font-weight:900}

/* END ./v25_22_4_balance_consistency.css */

/* BEGIN ./v25_22_5_result_next_flow_fix.css */
/* ===== v25.22.5 Result Next Flow Fix ===== */
#resultScreen #nextStageBtn.show{
  min-height:54px;
  font-weight:900;
}
#resultScreen #resultPrep{
  min-height:50px;
}

/* END ./v25_22_5_result_next_flow_fix.css */

/* BEGIN ./v25_22_6_awaken_frame_indicator.css */
.awakenFrameWrap{position:relative;display:inline-block;line-height:0;vertical-align:top;flex:0 0 auto;isolation:isolate}
.awakenFrameWrap .awakenBaseIcon{position:relative;z-index:1;display:block}
.awakenFrameWrap .awakenFrameArt{position:absolute!important;left:50%;top:50%;width:112%;height:112%;transform:translate(-50%,-50%);z-index:2;pointer-events:none;object-fit:contain;background:none!important;border-radius:0!important;box-shadow:none!important}
.awakenFrameWrap[data-awaken-stage="1"] .awakenFrameArt{filter:drop-shadow(0 2px 6px rgba(255,196,46,.28))}
.awakenFrameWrap[data-awaken-stage="2"] .awakenFrameArt{filter:drop-shadow(0 3px 8px rgba(255,168,255,.22))}
body.light-mode .awakenFrameWrap .awakenFrameArt{filter:none!important}

.leader-card>.awakenFrameWrap{width:84px;height:84px;margin:0 auto}
.card>.awakenFrameWrap{display:block;width:100%;aspect-ratio:1/1}
#awakenPanel .awakenMiniCard>.awakenFrameWrap{width:92px;height:92px}
.v24MiniChar>.awakenFrameWrap{width:42px;height:42px}
.v24TrainCard>.awakenFrameWrap{width:86px;height:86px}
.v2462Char>.awakenFrameWrap{width:50px;height:50px}
.v2462Slot>.awakenFrameWrap{width:54px;height:54px;margin:0 auto 4px}
#v24TrainingRoster .v24RosterCard>.awakenFrameWrap{display:block;width:100%;aspect-ratio:1/1}

.v24MiniChar>.awakenFrameWrap .awakenFrameArt,
.v2462Char>.awakenFrameWrap .awakenFrameArt,
.v2462Slot>.awakenFrameWrap .awakenFrameArt{width:116%;height:116%}

/* END ./v25_22_6_awaken_frame_indicator.css */

/* BEGIN ./v25_23_0_stability_rebuild.css */
/* v25.23.0 Stability Rebuild - light UI only */
html.v252300-scroll-intent #homeNyankoEventBanner,
html.v252300-scroll-intent .homeNyankoEventBanner,
html.v252300-scroll-intent #v25210HomePirateBanner,
html.v252300-scroll-intent .v25210HomePirateBanner,
html.v252300-scroll-intent .v25183BossHomeBanner,
html.v252300-scroll-intent .v25186BossHomeBanner,
html.v252300-scroll-intent #homeDailyMaterialBanner,
html.v252300-scroll-intent .homeDailyMaterialBanner{
  pointer-events:none !important;
}
#bossImage[src=""], #bossImage:not([src]){opacity:.28;}
#startGame{touch-action:manipulation;}
#resultScreen .resultActions{position:relative;z-index:10;}

/* END ./v25_23_0_stability_rebuild.css */

/* BEGIN ./v25_23_1_android_battle_start_button_fix.css */
/* v25.23.1 Android Battle Start Button Fix
   Game screen must never show sortie/start overlays above the puzzle board. */
body.battle-active #v2489FixedStart,
body.v2490-game-active #v2489FixedStart,
body.v252301-game-active #v2489FixedStart,
body.battle-active #startGame,
body.v2490-game-active #startGame,
body.v252301-game-active #startGame,
#prepScreen:not(.active) #startGame{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
  user-select:none!important;
  touch-action:none!important;
  z-index:-1!important;
  transform:translateX(-50%) translateY(200vh)!important;
}
body:not(.v2489-prep-active) #v2489FixedStart,
body:not(.v252301-prep-active) #v2489FixedStart{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
body.battle-active #gameScreen,
body.v252301-game-active #gameScreen{
  isolation:isolate;
}
body.battle-active #gameScreen .board,
body.v252301-game-active #gameScreen .board{
  position:relative!important;
  z-index:20!important;
  pointer-events:auto!important;
}
body.battle-active #gameScreen .battleBottom,
body.v252301-game-active #gameScreen .battleBottom{
  z-index:12!important;
}

/* END ./v25_23_1_android_battle_start_button_fix.css */

/* BEGIN ./v25_23_3_mobile_thermal_stability.css */
/* ===== v25.23.3 Mobile Thermal Stability ===== */
html.v252303-thermal,body.v252303-thermal{scroll-behavior:auto!important;-webkit-tap-highlight-color:transparent;}
html.v252303-thermal .screen:not(.active),body.v252303-thermal .screen:not(.active){content-visibility:hidden!important;contain:layout style paint!important;pointer-events:none!important;}
body.v252303-thermal *{animation-iteration-count:1!important;will-change:auto!important;}
body.v252303-thermal [style*="backdrop-filter"],body.v252303-thermal .v252303EventHub{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
body.v252303-thermal #gameScreen.active{background-image:none!important;background:linear-gradient(180deg,#17231f,#0b1210)!important;}
body.v252303-thermal #gameScreen.active .board{contain:layout paint style!important;box-shadow:none!important;}
body.v252303-thermal #gameScreen.active .cell,
body.v252303-thermal #gameScreen.active .pieceChar,
body.v252303-thermal #gameScreen.active .pieceAttr,
body.v252303-thermal #gameScreen.active .bossArea,
body.v252303-thermal #gameScreen.active .skillBig{filter:none!important;box-shadow:none!important;text-shadow:none!important;}
body.v252303-thermal #gameScreen.active .cell{transition:transform .06s linear!important;}
body.v252303-thermal #gameScreen.active .cell.remove,
body.v252303-thermal #gameScreen.active .cell.spawn,
body.v252303-thermal #gameScreen.active .comboPopup.show,
body.v252303-thermal #gameScreen.active .damagePopup.show{animation-duration:.12s!important;animation-iteration-count:1!important;}
body.v252303-thermal .skillBig.ready,
body.v252303-thermal .skill-ready,
body.v252303-thermal .skillReadyBadge,
body.v252303-thermal .skillReadyLabel,
body.v252303-thermal .skillSparkle,
body.v252303-thermal .mapMarker,
body.v252303-thermal .mapCurrentMarker,
body.v252303-thermal .v25210CurrentMarker,
body.v252303-thermal .v25212CurrentMarker,
body.v252303-thermal .v25212ActiveRibbon,
body.v252303-thermal .v25212RouteLine,
body.v252303-thermal .rewardShine,
body.v252303-thermal .gachaBgFx,
body.v252303-thermal .gachaCircleSpin{animation:none!important;filter:none!important;}
body.v252303-thermal .card,
body.v252303-thermal .stage-card,
body.v252303-thermal .v25210FactionCard,
body.v252303-thermal .v25210RouteCard,
body.v252303-thermal .v25210HeroBanner,
body.v252303-thermal .v25212PirateBossArea,
body.v252303-thermal .v25212PirateResultHero{box-shadow:none!important;filter:none!important;}
body.v252303-hidden *{animation-play-state:paused!important;transition:none!important;}
body.v252303-thermal #board,body.v252303-thermal #board .cell{touch-action:none!important;}

.v252303EventHub{position:fixed;inset:0;z-index:12000;display:none;place-items:end center;padding:max(12px,env(safe-area-inset-top)) 12px max(14px,env(safe-area-inset-bottom));background:rgba(8,10,24,.72);}
.v252303EventHub.show{display:grid;}
.v252303EventCard{width:min(680px,100%);max-height:min(78vh,720px);overflow:auto;border-radius:24px;padding:14px;background:#fff8dc;color:#33240d;border:2px solid rgba(126,83,12,.18);}
.v252303EventHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.v252303EventHead>b{font-size:19px;font-weight:1000}.v252303EventGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.v252303EventGrid button{min-height:74px!important;text-align:left;border:0;border-radius:18px;padding:12px 14px;background:#fff;border:2px solid rgba(117,80,20,.14);color:#33240d;box-shadow:none}.v252303EventGrid button b{display:block;font-size:15px;font-weight:1000;line-height:1.25}.v252303EventGrid button span{display:block;margin-top:4px;font-size:11px;opacity:.72;font-weight:800}
@media(max-width:520px){.v252303EventGrid{grid-template-columns:1fr}.v252303EventCard{border-radius:22px 22px 16px 16px}}

/* END ./v25_23_3_mobile_thermal_stability.css */

/* BEGIN ./v25_23_4_mobile_first_ui_restore.css */
/* ===== v25.23.4 Mobile First UI Restore =====
   Smartphone-first interaction/contrast recovery.
   No polling, no MutationObserver, no save/progress changes.
*/
@media (max-width:820px), (pointer:coarse){
  :root{
    --v252304-bg:#fff8df;
    --v252304-panel:#fffdf6;
    --v252304-panel2:#f5efff;
    --v252304-text:#2a2148;
    --v252304-muted:#5f5476;
    --v252304-line:rgba(92,70,140,.18);
    --v252304-accent:#ffd95f;
    --v252304-nav:82px;
  }

  html,body{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    background:linear-gradient(180deg,#fff5c9 0%,#f8f0ff 58%,#eaf8ff 100%)!important;
    color:var(--v252304-text)!important;
    overscroll-behavior:none!important;
  }
  body{
    padding:0!important;
    overflow:hidden!important;
    display:block!important;
  }
  .app{
    width:100%!important;
    max-width:760px!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0 auto!important;
    overflow:hidden!important;
  }

  /* Non-battle screens: the SCREEN is the one vertical scroller. */
  .screen.active:not(#titleScreen):not(#gameScreen),
  body.v246-scrollless .screen.active:not(#titleScreen):not(#gameScreen){
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    border:0!important;
    border-radius:0!important;
    background:linear-gradient(180deg,#fff8de 0%,#f8f3ff 62%,#edf9ff 100%)!important;
    color:var(--v252304-text)!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .screen.active:not(#titleScreen):not(#gameScreen)>.pad,
  .screen.active:not(#titleScreen):not(#gameScreen) .stageMapPage,
  body.v246-scrollless .screen.active:not(#titleScreen):not(#gameScreen)>.pad,
  body.v246-scrollless .screen.active:not(#titleScreen):not(#gameScreen) .stageMapPage{
    min-height:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    box-sizing:border-box!important;
    padding:calc(10px + env(safe-area-inset-top)) 10px calc(var(--v252304-nav) + 30px + env(safe-area-inset-bottom))!important;
    background:transparent!important;
    color:var(--v252304-text)!important;
  }

  /* Preparation screen: remove nested vertical scrollers so roster -> items -> sortie button are reachable. */
  #prepScreen.active>.pad,
  #prepScreen.active .sortiePad,
  body.v246-scrollless #prepScreen.active .sortiePad{
    display:block!important;
    min-height:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    background:linear-gradient(180deg,#fff8d9 0%,#f4efff 100%)!important;
    color:var(--v252304-text)!important;
  }
  #prepScreen.active #leaderList,
  #prepScreen.active #bossSupportList,
  #prepScreen.active #rosterList,
  body.v246-scrollless #prepScreen.active #leaderList,
  body.v246-scrollless #prepScreen.active #bossSupportList,
  body.v246-scrollless #prepScreen.active #rosterList{
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }
  #prepScreen.active .bossSupportGrid{
    overflow-x:auto!important;
    overflow-y:hidden!important;
    touch-action:pan-x!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #prepScreen.active .section,
  #prepScreen.active .v24ClearPanel,
  #v24SortieGuide{
    margin:9px 0!important;
    padding:11px!important;
    border:1px solid var(--v252304-line)!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.96)!important;
    color:var(--v252304-text)!important;
    box-shadow:none!important;
  }
  #prepScreen.active #startGame{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
    z-index:5!important;
    width:100%!important;
    min-height:64px!important;
    margin:14px 0 8px!important;
    border-radius:20px!important;
    background:linear-gradient(180deg,#ffe96f,#ffc04f)!important;
    color:#3e2900!important;
    font-size:19px!important;
    font-weight:1000!important;
    text-shadow:none!important;
    touch-action:manipulation!important;
  }

  /* Formation: whole page scrolls; horizontal team/difficulty strips stay horizontal. */
  #formationScreenV24.active>.pad,
  body.v246-scrollless #formationScreenV24.active .pad{
    display:block!important;
    min-height:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    background:linear-gradient(180deg,#fff8d9 0%,#f4efff 100%)!important;
  }
  #formationScreenV24.active #formationRootV24,
  body.v246-scrollless #formationScreenV24.active #formationRootV24{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:12px!important;
  }
  #formationScreenV24.active .v2462RosterPanel{display:block!important;min-height:0!important;height:auto!important;overflow:visible!important;}
  #formationScreenV24.active .v2462Roster{display:grid!important;height:auto!important;max-height:none!important;overflow:visible!important;touch-action:pan-y!important;}
  #formationScreenV24.active .v2462DiffTabs,
  #formationScreenV24.active .v2462TeamSlots{touch-action:pan-x!important;}

  /* Readability: light surfaces + dark copy on primary mobile flows. */
  #homeScreen.active .pad,
  #stageMapScreen.active .stageMapPage,
  #trainingScreenV24.active .pad,
  #formationScreenV24.active .pad,
  #prepScreen.active .pad,
  #resultScreen.active .pad{
    background-color:transparent!important;
    color:var(--v252304-text)!important;
  }
  #homeScreen.active .section,
  #stageMapScreen.active .section,
  #trainingScreenV24.active .section,
  #formationScreenV24.active .section,
  #prepScreen.active .section,
  #resultScreen.active .section,
  #loginBonusScreen.active .section{
    background:rgba(255,255,255,.95)!important;
    color:var(--v252304-text)!important;
    border-color:var(--v252304-line)!important;
    box-shadow:none!important;
  }
  .screen.active:not(#gameScreen) h1,
  .screen.active:not(#gameScreen) h2,
  .screen.active:not(#gameScreen) h3,
  .screen.active:not(#gameScreen) b,
  .screen.active:not(#gameScreen) strong,
  .screen.active:not(#gameScreen) .name{
    color:#2d235f!important;
    text-shadow:none!important;
  }
  .screen.active:not(#gameScreen) p,
  .screen.active:not(#gameScreen) span,
  .screen.active:not(#gameScreen) small,
  .screen.active:not(#gameScreen) .helper{
    color:var(--v252304-muted)!important;
    text-shadow:none!important;
  }
  .screen.active:not(#gameScreen) button,
  .screen.active:not(#gameScreen) .btn,
  .screen.active:not(#gameScreen) .cta{
    min-height:46px;
    touch-action:manipulation!important;
  }

  /* Battle screen: keep it fixed for tracing, but remove black-on-black presentation. */
  body.v252303-thermal #gameScreen.active,
  body.light-mode.battle-active #gameScreen,
  body.battle-active #gameScreen,
  #gameScreen.active{
    width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:0!important;
    background:linear-gradient(180deg,#fff4c7 0%,#f6efff 48%,#e7f7ff 100%)!important;
    color:var(--v252304-text)!important;
    box-shadow:none!important;
  }
  #gameScreen.active>.pad{
    height:100dvh!important;
    max-height:100dvh!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    padding:calc(6px + env(safe-area-inset-top)) 8px calc(6px + env(safe-area-inset-bottom))!important;
  }
  #gameScreen.active .topbar,
  #gameScreen.active .bossArea,
  #gameScreen.active .stat,
  #gameScreen.active .battleBottom{
    color:var(--v252304-text)!important;
    background:rgba(255,255,255,.94)!important;
    border-color:var(--v252304-line)!important;
    box-shadow:none!important;
    text-shadow:none!important;
  }
  #gameScreen.active .bossName,
  #gameScreen.active .helper,
  #gameScreen.active small,
  #gameScreen.active b,
  #gameScreen.active span{
    color:var(--v252304-text)!important;
    text-shadow:none!important;
  }
  #gameScreen.active .board,
  body.light-mode.battle-active #gameScreen .board{
    background:rgba(72,57,112,.10)!important;
    border:2px solid rgba(92,70,140,.20)!important;
    box-shadow:none!important;
    touch-action:none!important;
  }
  #gameScreen.active .cell,
  body.light-mode.battle-active #gameScreen .cell{
    background:rgba(255,255,255,.62)!important;
    border-color:rgba(92,70,140,.16)!important;
    touch-action:none!important;
  }
  #gameScreen.active .battleBottom{position:sticky!important;bottom:0!important;}

  /* Bottom navigation: readable but cheap to render (no blur). */
  #v246BottomNav,.v246BottomNav,.bottomNav,.v2487BottomNav,.bottomNavV24{
    background:rgba(255,250,225,.98)!important;
    border:1px solid rgba(92,70,140,.18)!important;
    box-shadow:0 4px 14px rgba(46,35,78,.12)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  #v246BottomNav button,.v246BottomNav button,.bottomNav button,.v2487BottomNav button,.bottomNavV24 button{
    color:#3b3158!important;
    text-shadow:none!important;
  }
}

/* END ./v25_23_4_mobile_first_ui_restore.css */
