:root{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;color:#16202a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}header{background:#17202a;color:#fff;padding:14px 20px;display:flex;justify-content:space-between;gap:16px;align-items:center}header strong{font-size:20px}header span{font-size:12px;margin-left:10px;opacity:.7}.wallet{display:flex;gap:14px;font-size:13px}main{max-width:980px;margin:auto;padding:18px}.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tabs button,button,select{border:1px solid #ccd4dc;background:#fff;border-radius:9px;padding:9px 12px}.tabs button.active{background:#17202a;color:white}.tab{display:none}.tab.active{display:block}.panel,.fighter,.battlelog,.special{background:#fff;border:1px solid #dde3e8;border-radius:14px;padding:16px}.selectors{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.selectors label,.panel label{display:flex;flex-direction:column;gap:5px;font-size:13px}.primary{background:#2156d8;color:#fff;border-color:#2156d8;font-weight:700}.danger{background:#c83232;color:white;border-color:#c83232}.arena{display:grid;grid-template-columns:1fr 60px 1fr;align-items:center;gap:12px;position:relative}.fighter{text-align:center;min-width:0}.portrait{width:min(100%,240px);aspect-ratio:1/1;margin:0 auto;border-radius:12px;background:linear-gradient(135deg,#e8edf2,#cfd8e3);display:grid;place-items:center;font-size:64px;font-weight:800;color:#7f8c98;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.vs{text-align:center;font-weight:900;font-size:24px}.hp{height:14px;background:#e4e8ed;border-radius:99px;overflow:hidden}.hp i{display:block;height:100%;width:100%;background:#2aaf62;transition:.25s}.hptext{font-size:12px;margin:5px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;font-size:12px;margin-top:10px}.stats span{background:#f1f4f7;padding:5px;border-radius:6px}.battlelog{margin-top:14px;height:190px;overflow:auto;font-size:13px}.battlelog p{margin:4px 0}.battlelog .miss{font-weight:800}.battlelog .special-log{font-weight:700}.special{margin-top:14px;border:2px solid #e2a514;text-align:center}.hidden{display:none!important}.timing{height:30px;background:#353c45;position:relative;border-radius:8px;overflow:hidden;margin:12px 0}.timing .zone{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%)}.timing .hit{background:#3c79da}.timing .just{background:#f2c94c}.timing b{position:absolute;top:0;bottom:0;width:4px;background:white;left:0}.special-result{position:fixed;z-index:1000;left:50%;top:44%;transform:translate(-50%,-50%);min-width:260px;max-width:80vw;padding:22px 34px;border-radius:18px;text-align:center;box-shadow:0 18px 55px rgba(0,0,0,.35);animation:resultPop .18s ease-out;background:#fff;border:4px solid #2156d8;pointer-events:none}.special-result strong{display:block;font-size:54px;line-height:1;font-weight:1000;letter-spacing:.04em}.special-result span{display:block;margin-top:10px;font-size:20px;font-weight:800}.special-result.just{border-color:#e2a514;background:#fff8d8}.special-result.hit{border-color:#2156d8;background:#eef4ff}.special-result.miss{border-color:#6d7480;background:#eef0f2}.special-result.miss strong{font-size:48px}@keyframes resultPop{0%{transform:translate(-50%,-50%) scale(.65);opacity:.2}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}.growth-grid{display:grid;gap:8px;margin-top:16px}.body-growth-card{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;padding:18px;border:1px solid #dde3e8;border-radius:12px;background:#fafbfc}.body-growth-card small{display:block;color:#65717d;margin-top:5px}.growth-controls{display:flex;gap:10px;align-items:center}.growth-controls strong{font-size:28px;min-width:72px;text-align:center}.growth-controls button{font-size:22px;width:46px;height:46px;padding:0}.growth-total{text-align:right;font-size:15px}.growth-total b{font-size:28px;margin-left:8px}.equip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.card{border:1px solid #dde3e8;border-radius:10px;padding:10px;background:#fafbfc}.card h4{margin:0 0 6px}.card small{display:block;color:#65717d}.card button{margin-top:8px;width:100%}@media(max-width:700px){header{align-items:flex-start;flex-direction:column}.wallet{width:100%;justify-content:space-between}.arena{grid-template-columns:1fr}.vs{height:20px}.portrait{width:min(72vw,190px)}.equip-grid{grid-template-columns:1fr}.body-growth-card{grid-template-columns:1fr;text-align:center}.growth-controls{justify-content:center}.growth-total{text-align:center}.stats{grid-template-columns:repeat(2,1fr)}.special-result{min-width:220px;padding:18px 24px}.special-result strong{font-size:46px}.special-result span{font-size:18px}}
.battle-mods{margin-top:10px;padding:9px 10px;border:1px solid #e2e6ea;border-radius:9px;background:#fbfcfd;text-align:left;font-size:12px}.mod-row{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:4px 0;border-bottom:1px dashed #e2e6ea}.mod-row:last-child{border-bottom:0}.mod-row span{color:#65717d}.mod-row b{font-weight:700;line-height:1.45}.battlelog p{padding:6px 8px;border-radius:7px;border-left:4px solid transparent}.battlelog .log-player{background:#eef5ff;border-left-color:#3977d6}.battlelog .log-enemy{background:#fff0f0;border-left-color:#cf4a4a}.battlelog .log-player-special{background:#fff8db;border-left-color:#d0a21d;font-weight:800}.battlelog .log-enemy-special{background:#fff0e5;border-left-color:#d97722;font-weight:800}.battlelog .log-player-buff{background:#eef9f1;border-left-color:#39a65a}.battlelog .log-player-debuff{background:#f6efff;border-left-color:#8757bd}.battlelog .log-enemy-debuff{background:#fff0f5;border-left-color:#c65782}.battlelog .log-player-win{background:#eaf9ef;border-left-color:#208b47;font-weight:900}.battlelog .log-enemy-win{background:#fdecec;border-left-color:#b92f2f;font-weight:900}.battlelog .log-system{background:#f2f4f6;border-left-color:#8a949f}

.special-result.dodge{border-color:#16927b;background:#eafbf7}.special-result.dodge strong{font-size:46px}.card button.subtle{margin-top:6px;background:#fff;border:1px solid #cfd6dc;color:#555}.card button.subtle:hover{background:#f3f5f7}.card button.danger-text{color:#a33636;border-color:#e2bcbc}.card button:disabled{opacity:.48;cursor:not-allowed}

.timing.stopped{outline:3px solid rgba(255,255,255,.95);box-shadow:0 0 0 3px rgba(226,165,20,.4)}.timing.stopped b{width:6px;background:#fff;box-shadow:0 0 8px 3px rgba(255,255,255,.9)}#timingButton:disabled{opacity:.7;cursor:default}

/* v0.6 enemy special defense roulette */
.defense-roulette{width:min(62vw,260px);aspect-ratio:1/1;margin:14px auto 8px;border-radius:50%;position:relative;background:#3a414a;box-shadow:inset 0 0 0 8px #fff,inset 0 0 0 10px #cfd6dc,0 8px 24px rgba(0,0,0,.12)}
.defense-roulette .roulette-face{position:absolute;inset:12px;border-radius:50%;background:#3a414a}
.defense-roulette b{position:absolute;left:50%;top:8px;width:5px;height:48%;transform-origin:50% 100%;transform:translateX(-50%) rotate(0deg);background:linear-gradient(to bottom,#fff 0 78%,transparent 78%);filter:drop-shadow(0 0 3px rgba(0,0,0,.8));z-index:3}
.defense-roulette b:before{content:"";position:absolute;left:50%;top:-3px;transform:translateX(-50%);border-left:7px solid transparent;border-right:7px solid transparent;border-top:14px solid #fff}
.defense-roulette i{position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);z-index:4;box-shadow:0 0 0 4px rgba(0,0,0,.18)}
.defense-roulette.stopped{outline:4px solid rgba(255,255,255,.95);box-shadow:inset 0 0 0 8px #fff,inset 0 0 0 10px #cfd6dc,0 0 0 4px rgba(226,165,20,.45),0 8px 24px rgba(0,0,0,.16)}
.roulette-legend{display:flex;justify-content:center;gap:14px;font-size:12px;margin:4px 0 12px}.roulette-legend span{display:inline-flex;align-items:center;gap:5px}.roulette-legend span:before{content:"";width:12px;height:12px;border-radius:3px;background:#3a414a}.roulette-legend .legend-dodge:before{background:#28a879}.roulette-legend .legend-half:before{background:#f0b44b}
.special-result.half{border-color:#e28b14;background:#fff2df}.special-result.half strong{font-size:46px}


/* v0.7 UI adjustments */
#defensePanel{position:fixed;z-index:900;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,480px);margin:0;background:rgba(255,255,255,.72);border:2px solid rgba(226,165,20,.88);box-shadow:0 24px 70px rgba(0,0,0,.34);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);padding:20px 22px 22px}
#defensePanel h3,#defensePanel p,#defensePanel .roulette-legend,#defensePanel button{position:relative;z-index:2}
#defensePanel h3{margin-top:0;text-shadow:0 1px 0 rgba(255,255,255,.85)}
#defensePanel p{font-weight:700}
#defenseRoulette{background:#3a414a}
#timingButton{display:block;width:min(100%,420px);margin:16px auto 0;padding:18px 30px;font-size:28px;font-weight:900;border-radius:14px;box-shadow:0 6px 16px rgba(200,50,50,.24)}
#specialPanel h3{font-size:24px;margin-bottom:12px}
@media(max-width:700px){#defensePanel{width:min(94vw,420px);padding:16px 14px 18px}#timingButton{font-size:26px;padding:18px 20px}}
.battle-debug{margin-top:14px}.battle-debug h3{margin:0 0 10px}.debug-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;font-size:12px}.debug-grid>div{display:grid;grid-template-columns:92px 1fr;gap:8px;padding:6px 8px;border-radius:7px;background:#f5f7f9}.debug-grid b{color:#53606d}.debug-grid span{overflow-wrap:anywhere}.debug-last{margin:10px 0 0;padding:8px 10px;border-left:4px solid #7b61a8;background:#f6f1ff;font-size:12px}@media(max-width:700px){.debug-grid{grid-template-columns:1fr}.debug-grid>div{grid-template-columns:84px 1fr}}

/* Web game shell / anonymous-user era */
.game-body,.subpage-body{padding-bottom:82px;background:#f4f6f8}.game-header{position:sticky;top:0;z-index:120;background:#17202a;color:#fff;padding:12px 18px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand actions" "wallet wallet";gap:8px 16px;align-items:center}.game-header .brand{grid-area:brand}.game-header .brand strong{font-size:20px}.game-header .brand span{font-size:12px;margin-left:10px;opacity:.68}.game-header .top-actions{grid-area:actions;display:flex;gap:6px;justify-content:flex-end}.game-header .top-actions a{color:#fff;text-decoration:none;font-size:13px;padding:7px 9px;border:1px solid rgba(255,255,255,.22);border-radius:8px}.game-header .top-actions a:hover{background:rgba(255,255,255,.08)}.game-header .wallet{grid-area:wallet;display:flex;gap:14px;font-size:12px;justify-content:flex-end}.game-main{max-width:980px;margin:auto;padding:18px 18px 26px}.game-main h1,.subpage-main h1{margin:0 0 5px;font-size:25px}.home-heading,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.home-heading p,.section-heading p{margin:0;color:#65717d}.guest-badge{font-size:12px;padding:6px 9px;border-radius:999px;background:#e7ebef;color:#56616c}.bottom-nav{position:fixed;z-index:200;left:0;right:0;bottom:0;height:68px;background:rgba(255,255,255,.97);border-top:1px solid #d8dee5;display:grid;grid-template-columns:repeat(4,1fr);padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));box-shadow:0 -6px 22px rgba(26,38,51,.08)}.bottom-nav button,.bottom-nav a{border:0;background:transparent;border-radius:10px;display:grid;place-items:center;color:#68737e;font-weight:700;font-size:13px;text-decoration:none;min-width:0}.bottom-nav button.active{background:#17202a;color:#fff}.bottom-nav a:hover{background:#edf1f4;color:#17202a}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.person-card{background:#fff;border:1px solid #dde3e8;border-radius:14px;padding:12px;display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:center}.person-thumb{width:90px;aspect-ratio:1;border-radius:10px;background:#e9edf1;overflow:hidden;display:grid;place-items:center;font-size:36px;font-weight:900;color:#7b8792}.person-thumb img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.person-card h2{font-size:17px;margin:0 0 3px}.person-card p{font-size:12px;color:#65717d;margin:0 0 8px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.mini-stats span{font-size:11px;background:#f2f4f6;padding:3px 5px;border-radius:5px}.person-card small{display:block;margin-top:6px;color:#65717d}.empty-state{text-align:center;padding:38px 18px}.empty-state h2{margin-top:0}.shop-wallet{margin-top:20px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.shop-wallet span{background:#f3f5f7;border-radius:9px;padding:10px 14px}.growth-equipment{margin-top:16px}.dev-tools{margin-top:14px;background:#fff;border:1px dashed #cbd2d9;border-radius:10px;padding:10px 12px}.dev-tools summary{cursor:pointer;color:#69747e;font-size:12px}.dev-tools div{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.subpage-header{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#17202a;color:#fff;padding:14px 18px}.subpage-header>a{justify-self:start;color:#fff;text-decoration:none}.subpage-header strong{justify-self:center}.subpage-main{max-width:760px;margin:auto;padding:20px 18px}.account-status{display:grid;gap:5px;background:#f3f5f7;border-radius:12px;padding:14px;margin:18px 0}.account-status span,.account-status small{color:#65717d;font-size:12px}.account-status b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.protect-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center}.protect-actions button{width:100%;text-align:left}.protect-actions small{color:#79838c}.protect-actions button:disabled{opacity:.58}.bottom-links a{align-content:center}
@media(max-width:700px){.game-header{grid-template-columns:1fr auto;grid-template-areas:"brand actions" "wallet wallet";padding:10px 12px}.game-header .brand span{display:none}.game-header .top-actions{gap:3px}.game-header .top-actions a{font-size:11px;padding:6px 7px}.game-header .wallet{justify-content:space-between;width:100%;font-size:11px}.game-main{padding:14px 10px 24px}.home-heading,.section-heading{margin-bottom:12px}.people-grid{grid-template-columns:1fr}.bottom-nav{height:64px}.protect-actions{grid-template-columns:1fr}.protect-actions small{margin-top:-5px;margin-bottom:5px}.subpage-main{padding:14px 10px}}

/* Favorites / character detail / image-folder split */
.person-card-link{position:relative;color:inherit;text-decoration:none;transition:.15s transform,.15s box-shadow}.person-card-link:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(26,38,51,.08)}.person-favorite-mark{position:absolute;right:10px;top:8px;color:#d94363;font-size:20px;line-height:1}.bottom-nav a.active{background:#17202a;color:#fff}
.panel-title-row{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.panel-title-row h2{margin:0 0 4px}.panel-title-row p{margin:0;color:#65717d;font-size:13px}.favorite-panel{margin-bottom:16px}.favorite-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:5px}.favorite-person{position:relative;display:grid;gap:6px;justify-items:center;text-align:center;padding:10px 7px;border:2px solid transparent;background:#f7f9fb}.favorite-person.active{border-color:#2156d8;background:#eef4ff}.favorite-person strong{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-person small{font-size:10px;color:#65717d;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-heart{position:absolute;right:7px;top:5px;color:#d94363;font-size:16px}.favorite-avatar,.growth-character-image{display:grid;place-items:center;overflow:hidden;background:#e9edf1;color:#7b8792;font-weight:900}.favorite-avatar{width:64px;aspect-ratio:1;border-radius:10px}.favorite-avatar img,.growth-character-image img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.growth-panel{margin-bottom:16px}.resource-balance{min-width:132px;text-align:right;border-radius:12px;background:#f2f5f8;padding:9px 12px}.resource-balance span{display:block;font-size:11px;color:#65717d}.resource-balance strong{font-size:28px;line-height:1.1;margin-right:4px}.resource-balance small{font-size:12px;color:#65717d}.growth-character{display:flex;align-items:center;gap:12px}.growth-character-image{width:68px;aspect-ratio:1;border-radius:10px}.growth-character b{font-size:18px}
.person-detail-main{max-width:900px}.detail-back{margin-bottom:12px}.detail-back a{color:#52606d;text-decoration:none}.person-detail-card{position:relative;background:#fff;border:1px solid #dde3e8;border-radius:18px;padding:20px;display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:24px}.person-detail-image{aspect-ratio:1;border-radius:14px;background:#edf1f4;overflow:hidden;display:grid;place-items:center}.person-detail-image img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.person-detail-info{padding-top:10px}.person-detail-info h1{font-size:30px;margin:5px 0 12px}.person-detail-meta{display:flex;gap:7px;flex-wrap:wrap}.person-detail-meta span{font-size:12px;background:#eef1f4;border-radius:999px;padding:5px 9px;color:#596672}.person-intro{line-height:1.8;color:#3f4b56}.detail-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.detail-stat-grid div{background:#f4f6f8;border-radius:10px;padding:9px;text-align:center}.detail-stat-grid span{display:block;color:#65717d;font-size:11px}.detail-stat-grid strong{font-size:22px}.detail-total{text-align:right;margin-top:9px;color:#65717d}.detail-total strong{font-size:20px;color:#17202a}.favorite-toggle{position:absolute;right:16px;top:14px;z-index:4;width:66px;border:0;background:rgba(255,255,255,.94);box-shadow:0 3px 12px rgba(0,0,0,.1);display:grid;justify-items:center;padding:7px 6px;color:#68737e}.favorite-toggle-icon{font-size:30px;line-height:1}.favorite-toggle small{font-size:9px}.favorite-toggle.active{color:#d94363;background:#fff2f5}.detail-skills{margin-top:16px}.detail-skills h2{margin-top:0}.detail-skill-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.detail-skill-card{display:grid;grid-template-columns:1fr auto;gap:4px 8px;background:#f5f7f9;border-radius:10px;padding:12px}.detail-skill-card strong{grid-row:1 / span 2}.detail-skill-card span{font-size:12px;font-weight:700}.detail-skill-card small{color:#65717d}.favorite-status-box{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;background:#fff;border:1px solid #dde3e8;border-radius:14px;padding:14px 16px}.favorite-status-box a{background:#2156d8;color:#fff;text-decoration:none;border-radius:9px;padding:9px 12px;font-weight:700}
@media(max-width:700px){.favorite-roster{grid-template-columns:repeat(4,minmax(0,1fr))}.panel-title-row{align-items:center}.resource-balance{min-width:105px}.resource-balance strong{font-size:24px}.person-detail-card{grid-template-columns:1fr;padding:14px}.person-detail-image{width:min(78vw,320px);margin:0 auto}.person-detail-info h1{font-size:25px;padding-right:76px}.detail-stat-grid{grid-template-columns:repeat(3,1fr)}.body-growth-card .growth-character{justify-content:center}.favorite-status-box{align-items:stretch;flex-direction:column}.favorite-status-box a{text-align:center}}

/* Shared body growth / favorite management / character type */
.favorite-person-wrap{position:relative;border:2px solid transparent;border-radius:12px;background:#f7f9fb;overflow:hidden}.favorite-person-wrap.active{border-color:#2156d8;background:#eef4ff}.favorite-person-wrap .favorite-person{width:100%;height:100%;border:0;border-radius:10px;background:transparent;padding:10px 7px}.favorite-remove{position:absolute;right:5px;top:5px;z-index:3;width:30px;height:30px;padding:0;border-radius:999px;border:0;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(0,0,0,.12);color:#d94363;font-size:19px;line-height:1}.favorite-remove:disabled{opacity:.35;cursor:not-allowed;color:#87919b}.growth-character-detail{margin-bottom:16px}.growth-detail-layout{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:22px;align-items:center}.growth-detail-image{aspect-ratio:1;border-radius:14px;background:#edf1f4;overflow:hidden;display:grid;place-items:center;font-size:70px;font-weight:900;color:#7b8792}.growth-detail-image img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.growth-detail-heading h2{font-size:26px;margin:8px 0 2px}.growth-detail-heading p{margin:0;color:#65717d}.type-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:12px!important;font-weight:800}.type-badge.strength{background:#fff0e9!important;color:#a84c22!important}.type-badge.magic{background:#eeeaff!important;color:#5b45a5!important}.growth-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.growth-stat-grid div{background:#f4f6f8;border-radius:10px;padding:9px;text-align:center}.growth-stat-grid span{display:block;font-size:11px;color:#65717d}.growth-stat-grid strong{font-size:22px}.growth-stat-total{text-align:right;margin-top:9px;color:#65717d}.growth-stat-total b{font-size:20px;color:#17202a}.global-growth-card{grid-template-columns:minmax(0,1.2fr) auto minmax(0,1fr)}.global-growth-copy b{display:block;font-size:22px}.global-growth-copy small{max-width:440px}.global-growth-card .growth-controls button{width:auto;min-width:74px;padding:0 18px;font-size:18px}.favorite-toggle.locked,.favorite-toggle:disabled{opacity:.6;cursor:not-allowed}.person-pager{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.person-pager a{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:#35414c;background:#fff;border:1px solid #dde3e8;border-radius:10px;padding:9px 12px}.person-pager a span{font-weight:800}.person-pager a small{color:#73808b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-pager-next{text-align:right;align-items:flex-end}.person-pager-empty{min-height:1px}
@media(max-width:700px){.growth-detail-layout{grid-template-columns:1fr}.growth-detail-image{width:min(74vw,300px);margin:0 auto}.growth-detail-heading{text-align:center}.growth-stat-grid{grid-template-columns:repeat(3,1fr)}.global-growth-card{grid-template-columns:1fr;text-align:center}.global-growth-copy small{margin-left:auto;margin-right:auto}.global-growth-card .growth-controls{justify-content:center}.person-pager{gap:6px}.person-pager a{padding:8px 9px}.person-pager a small{font-size:10px}}

/* App-style 9:16 shell / visual home hub */
html,body{height:100%}
body.game-body{margin:0;padding:0!important;min-height:100vh;min-height:100dvh;overflow:hidden;display:grid;place-items:center;background:#070b18;color:#16202a}
.app-viewport{position:relative;container-type:size;width:min(100vw,calc(100vh * 9 / 16));height:min(100vh,calc(100vw * 16 / 9));width:min(100vw,calc(100dvh * 9 / 16));height:min(100dvh,calc(100vw * 16 / 9));aspect-ratio:9/16;overflow:hidden;background:#f4f6f8;box-shadow:0 0 60px rgba(0,0,0,.55);isolation:isolate}
.game-main{position:absolute;inset:0 0 10.5cqh 0;width:100%;max-width:none!important;margin:0!important;padding:0!important;overflow:hidden;background:#f4f6f8}
.game-main>.tab{display:none;width:100%;height:100%;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.game-main>.tab.active{display:block}
.game-main>.content-tab{padding:3.3cqw 3.1cqw 5cqh;background:#f4f6f8}
.runtime-wallet{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.app-home{position:relative;overflow:hidden!important;padding:0!important;background:#101a3a var(--ijin-ui-background,url("ui/background.png")) center center/cover no-repeat!important}
.app-home::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(5,8,24,.12),transparent 20%,transparent 70%,rgba(3,6,18,.2))}
.home-side{position:absolute;z-index:4;top:4.5cqh;display:flex;flex-direction:column;gap:1.1cqh}
.home-side-left{left:2.2cqw}.home-side-right{right:2.2cqw}
.hub-icon{width:17cqw;height:17cqw;max-width:none!important;min-width:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;display:block;text-decoration:none;cursor:pointer;filter:drop-shadow(0 4px 6px rgba(0,0,0,.34));transition:transform .12s ease,filter .12s ease;-webkit-tap-highlight-color:transparent}
.hub-icon img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;pointer-events:none}
.hub-icon:hover{transform:translateY(-1px) scale(1.035);filter:drop-shadow(0 6px 8px rgba(0,0,0,.38)) brightness(1.06)}
.hub-icon:active{transform:scale(.94)}
.hub-icon:focus-visible{outline:3px solid #fff5a8;outline-offset:2px;border-radius:12px!important}

.bottom-nav{position:absolute!important;z-index:30;left:0;right:0;bottom:0;height:10.5cqh;padding:.7cqh 2.2cqw calc(.65cqh + env(safe-area-inset-bottom))!important;display:grid!important;grid-template-columns:repeat(4,1fr);align-items:center;background:linear-gradient(to bottom,rgba(9,12,25,.78),rgba(5,7,17,.96));border-top:1px solid rgba(255,255,255,.16)!important;box-shadow:0 -8px 24px rgba(0,0,0,.28)!important;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.bottom-nav button{position:relative;width:100%;height:100%;padding:0!important;border:0!important;border-radius:1.6cqw!important;background:transparent!important;display:grid!important;place-items:center;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bottom-nav button img{width:13.3cqw;height:13.3cqw;max-height:8.8cqh;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 3px rgba(0,0,0,.42));transition:transform .12s ease,filter .12s ease,opacity .12s ease;opacity:.8}
.bottom-nav button.active::before{content:"";position:absolute;inset:.3cqh .7cqw;border-radius:1.8cqw;background:radial-gradient(circle at 50% 55%,rgba(95,167,255,.28),rgba(255,255,255,.04) 62%,transparent 72%);border:1px solid rgba(116,181,255,.22)}
.bottom-nav button.active img{opacity:1;transform:scale(1.08);filter:drop-shadow(0 0 7px rgba(80,160,255,.55)) drop-shadow(0 2px 3px rgba(0,0,0,.45))}
.bottom-nav button:active img{transform:scale(.91)}
.bottom-nav button:focus-visible{outline:2px solid #fff5a8;outline-offset:-2px}

.screen-loader{position:absolute;z-index:1000;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:6.2cqh;background:radial-gradient(circle at 50% 33%,#182e69 0,#0d1538 36%,#070b1c 72%,#03050d 100%);opacity:1;visibility:visible;transition:opacity .18s ease,visibility .18s ease;pointer-events:auto}
.screen-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}
.loading-logo{width:58cqw;height:auto;max-height:10cqh;object-fit:contain;filter:drop-shadow(0 3px 9px rgba(0,0,0,.7));image-rendering:auto}
.loading-character{width:49cqw;height:49cqw;margin-top:5cqh;display:grid;place-items:center;filter:drop-shadow(0 10px 16px rgba(0,0,0,.55))}
.loading-character img{display:block;max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated;animation:loaderHero 1.55s ease-in-out infinite}
.loading-dots{display:flex;gap:1.7cqw;margin-top:4.3cqh}.loading-dots i{width:1.7cqw;height:1.7cqw;border-radius:50%;background:#e9f4ff;box-shadow:0 0 10px #7ab9ff;animation:loaderDot .95s ease-in-out infinite}.loading-dots i:nth-child(2){animation-delay:.13s}.loading-dots i:nth-child(3){animation-delay:.26s}
@keyframes loaderHero{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-1.1cqh) scale(1.025)}}
@keyframes loaderDot{0%,100%{opacity:.3;transform:scale(.75)}50%{opacity:1;transform:scale(1.18)}}

/* Content screens stay inside the same app viewport. */
.game-main>.content-tab .section-heading{margin:0 0 2.1cqh}.game-main>.content-tab .section-heading h1{font-size:4.7cqw}.game-main>.content-tab .section-heading p{font-size:2.7cqw}
.tower-placeholder{text-align:center;padding:7cqh 4cqw}.tower-placeholder img{width:35cqw;max-width:190px;image-rendering:pixelated}.tower-placeholder h2{margin:.5cqh 0 0}
.battle-tab .selectors{position:relative}.battle-tab .arena{grid-template-columns:minmax(0,1fr) 8cqw minmax(0,1fr);gap:1.5cqw}.battle-tab .fighter{padding:2.5cqw}.battle-tab .portrait{width:100%}

@media (max-aspect-ratio:9/16){body.game-body{align-items:center}}
@media (prefers-reduced-motion:reduce){.loading-character img,.loading-dots i{animation:none}.hub-icon,.bottom-nav button img,.screen-loader{transition:none}}

/* v0.13: 悪魔の塔 / 新フリーバトル */
.mode-setup,.tower-setup{padding-bottom:96px}.mode-versus-grid{display:grid;grid-template-columns:minmax(0,1fr) 38px minmax(0,1fr);gap:8px;align-items:center}.mode-fighter-card,.tower-player-card,.tower-enemy-card{position:relative;background:linear-gradient(180deg,#17213aee,#0c1225ee);border:1px solid #536798;border-radius:16px;padding:10px;text-align:center;box-shadow:0 8px 20px #0006}.mode-side-label{position:absolute;top:6px;left:8px;font-size:9px;font-weight:900;letter-spacing:.08em;color:#a9b9e4}.mode-select{width:100%;min-height:36px;border:1px solid #6779a5;border-radius:9px;background:#10182b;color:#fff;padding:7px 8px;font-weight:800}.mode-portrait,.tower-main-portrait{height:180px;display:flex;align-items:flex-end;justify-content:center;margin:8px 0 4px;overflow:hidden}.mode-portrait img,.tower-main-portrait img{max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated}.mode-fighter-card h2,.tower-player-card h2,.tower-enemy-card h2{font-size:17px;margin:4px 0 7px}.mode-vs,.tower-vs{font-size:22px;font-weight:1000;text-align:center;color:#ffd85a;text-shadow:0 2px 5px #000}.mode-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.mode-mini-stats span{display:flex;justify-content:space-between;gap:3px;padding:3px 4px;border-radius:5px;background:#ffffff12;font-size:9px}.mode-mini-stats b{font-size:10px}.level-control{margin:6px 0;padding:7px;background:#ffffff0b;border-radius:8px}.level-control label{display:flex;justify-content:center;gap:6px;font-size:11px;font-weight:900}.level-control input{width:100%;margin-top:6px}.auto-equip-note{min-height:42px;font-size:9px;line-height:1.45;color:#ced8f4;margin-bottom:5px}.mode-action{display:flex;justify-content:center;margin:16px 0 6px}.battle-main-button{min-width:150px;border:2px solid #ffe990;border-radius:999px;padding:12px 24px;background:linear-gradient(#f7c93d,#be7210);color:#271400;font-size:20px;font-weight:1000;box-shadow:0 5px 0 #6a3b08,0 8px 18px #0008;text-shadow:0 1px #fff8}.battle-main-button:active{transform:translateY(3px);box-shadow:0 2px 0 #6a3b08,0 4px 10px #0007}

.tower-heading{margin-bottom:3px}.tower-preview-stack{width:48%;margin-left:auto;margin-right:4%;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:98px;justify-content:flex-end}.tower-preview-enemy{width:72%;height:30px;display:grid;grid-template-columns:32px 34px 1fr;align-items:center;gap:4px;border-radius:9px;background:#111a31e8;border:1px solid #566b9d;padding:2px 6px;font-size:9px;box-shadow:0 3px 8px #0005}.tower-preview-enemy:nth-child(2){width:82%}.tower-preview-enemy:nth-child(3){width:92%}.tower-preview-enemy img{width:30px;height:28px;object-fit:contain;image-rendering:pixelated}.tower-preview-enemy span{font-weight:1000;color:#ffd75f}.tower-preview-enemy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tower-duel{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:7px;align-items:end}.tower-player-card,.tower-enemy-card{min-height:260px}.tower-floor-badge{position:absolute;top:-17px;right:5px;width:52px;height:52px;border-radius:50%;background:linear-gradient(#6826a7,#28105b);border:2px solid #bd91ff;display:flex;align-items:baseline;justify-content:center;gap:1px;box-shadow:0 5px 12px #0008}.tower-floor-badge strong{font-size:24px}.tower-floor-badge span{font-size:10px;font-weight:900}.tower-action{margin-top:14px}

.battle-stage{position:absolute;z-index:50;inset:0 0 68px;background:linear-gradient(180deg,#0d1530 0%,#11172b 45%,#080c18 100%);overflow-y:auto;padding:48px 10px 18px;color:#fff}.battle-stage.hidden{display:none}.battle-stage-topbar{position:fixed;z-index:55;top:0;left:50%;transform:translateX(-50%);width:min(100%,calc((100vh - 1px)*9/16));max-width:100%;height:44px;display:grid;grid-template-columns:42px 1fr 70px;align-items:center;padding:0 7px;background:#091022ee;border-bottom:1px solid #2d3d68}.battle-stage-topbar strong{text-align:center;font-size:14px}.battle-stage-topbar span{text-align:right;font-size:10px;color:#b8c4e3}.stage-back{border:0;background:transparent;color:#fff;font-size:32px;line-height:1;cursor:pointer}.battle-stage-arena{margin-top:6px}.battle-stage .fighter{padding:7px}.battle-stage .portrait{height:170px}.battle-stage .stats{font-size:9px;gap:2px}.battle-stage .battle-mods{font-size:9px}.battle-stage .battlelog{max-height:160px;margin-top:8px}.battle-result-actions{position:sticky;bottom:0;display:flex;justify-content:center;gap:10px;padding:12px 6px;background:linear-gradient(transparent,#080c18 35%)}.battle-result-actions.hidden{display:none}.battle-result-actions button{min-width:110px;padding:11px 14px}.battle-result-actions .subtle{background:#1b2742;color:#fff;border-color:#52658d}
@media(max-width:520px){.mode-portrait,.tower-main-portrait{height:145px}.tower-player-card,.tower-enemy-card{min-height:230px}.mode-fighter-card h2,.tower-player-card h2,.tower-enemy-card h2{font-size:15px}.tower-preview-stack{min-height:86px}.battle-stage .portrait{height:145px}}
.battle-stage .fighter{background:#151d33;border-color:#39496e;color:#fff}.battle-stage .stats span{background:#ffffff12;color:#fff}.battle-stage .battle-mods{background:#10182a;border-color:#39496e;color:#fff}.battle-stage .battle-mods .mod-row{border-color:#ffffff1f}.battle-stage .battle-mods .mod-row span{color:#aebbd9}.battle-stage .battlelog{background:#11182a;border-color:#39496e;color:#18222c}.battle-stage .special{color:#18222c}.battle-stage .hptext{color:#eef4ff}

/* 2026-09-21 UI unification: white footer / hex stats / 9:16 standalone screens */
.bottom-nav{
  z-index:80!important;
  background:#fff!important;
  border-top:1px solid #dfe4ea!important;
  box-shadow:0 -5px 18px rgba(18,31,49,.12)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.bottom-nav button,.bottom-nav a{
  position:relative;width:100%;height:100%;padding:0!important;border:0!important;
  border-radius:1.6cqw!important;background:transparent!important;display:grid!important;
  place-items:center;text-decoration:none;color:#42505f;min-width:0;cursor:pointer;
}
.bottom-nav button img,.bottom-nav a img{
  width:13.3cqw;height:13.3cqw;max-height:8.8cqh;object-fit:contain;image-rendering:pixelated;
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.18));opacity:.74;transition:transform .12s ease,opacity .12s ease;
}
.bottom-nav button.active::before,.bottom-nav a.active::before{
  content:"";position:absolute;inset:.35cqh .8cqw;border-radius:1.8cqw;background:#edf4ff;border:1px solid #d9e7fb;
}
.bottom-nav button.active img,.bottom-nav a.active img{opacity:1;transform:scale(1.08);filter:drop-shadow(0 2px 3px rgba(0,0,0,.16))}
.bottom-nav button:active img,.bottom-nav a:active img{transform:scale(.92)}

/* Six-parameter hexagon chart */
.stat-hex{width:100%;display:grid;place-items:center;line-height:1;color:#243244}
.stat-hex svg{display:block;width:100%;height:auto;overflow:visible}
.stat-hex-grid{fill:none;stroke:#c8d1dc;stroke-width:1}
.stat-hex-grid--outer{stroke:#97a7b9;stroke-width:1.4}
.stat-hex-axis{stroke:#d8dfe7;stroke-width:1}
.stat-hex-value{fill:rgba(62,121,218,.22);stroke:#326fca;stroke-width:2;stroke-linejoin:round}
.stat-hex-label{font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;font-size:9px;font-weight:800;fill:currentColor}
.stat-hex--list{max-width:158px;margin:-2px auto -7px}.stat-hex--list .stat-hex-label{font-size:8.4px}
.stat-hex--compact{max-width:155px;margin:0 auto}.stat-hex--compact .stat-hex-label{font-size:8.4px}
.stat-hex--growth{max-width:250px;margin:4px auto 0}.stat-hex--growth .stat-hex-label{font-size:9px}
.stat-hex--detail{max-width:270px;margin:4px auto 2px}.stat-hex--detail .stat-hex-label{font-size:9.5px}
.stat-hex--battle{max-width:150px;margin:2px auto}.stat-hex--battle .stat-hex-grid{stroke:#52617b}.stat-hex--battle .stat-hex-grid--outer{stroke:#8192af}.stat-hex--battle .stat-hex-axis{stroke:#3a4863}.stat-hex--battle .stat-hex-value{fill:rgba(91,159,255,.25);stroke:#72adff}.stat-hex--battle .stat-hex-label{fill:#eef4ff;font-size:8px}
.mode-mini-stats,.stats{display:block!important;background:transparent!important;margin-top:4px!important}
.mode-mini-stats span,.stats>span{background:transparent!important;padding:0!important}

/* People list now uses hex stats and no total. */
.person-card{grid-template-columns:88px minmax(0,1fr);padding:9px 10px;gap:8px}
.person-thumb{width:88px}
.person-card-info{min-width:0}.person-card-info h2{padding-right:22px}.person-card-info p{margin-bottom:0}

/* Growth screen */
.growth-detail-info{min-width:0}.growth-stat-grid,.growth-stat-total{display:none!important}

/* Free battle cards: same outer height. */
.mode-versus-grid{align-items:stretch!important}
.mode-fighter-card{height:100%;display:flex;flex-direction:column}
.mode-fighter-card .mode-mini-stats{margin-top:auto!important}
.mode-vs{align-self:center}

/* フリーバトルの対戦カードと開始ボタンを画面下側へ配置 */
.free-battle-tab{display:none!important;flex-direction:column}
.free-battle-tab.active{display:flex!important}
.free-battle-tab .mode-setup{margin-top:auto;padding-bottom:1.5cqh}
.free-battle-tab .mode-action{margin-top:1.4cqh;margin-bottom:.5cqh}

/* Battle stage must stop above the full footer. */
.battle-stage{inset:0 0 10.5cqh!important;padding-bottom:2cqh!important}
.battle-stage-topbar{z-index:65}
.battle-stage .fighter .stats{min-height:122px}

/* 9:16 standalone pages (person/settings/notices/presents). */
.standalone-body{padding:0!important;overflow:hidden}
.standalone-viewport{background:#f3f5f8}
.standalone-header{position:absolute;z-index:45;top:0;left:0;right:0;height:7.4cqh;padding:0 3.2cqw;display:grid;grid-template-columns:8cqw 1fr 8cqw;align-items:center;background:#17202a;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.standalone-header strong{justify-self:center;font-size:4.2cqw}.standalone-header span{display:block}
.standalone-back{display:grid;place-items:center;width:7.3cqw;height:7.3cqw;color:#fff;text-decoration:none;font-size:8cqw;line-height:1;border-radius:50%}
.standalone-main{position:absolute;inset:7.4cqh 0 10.5cqh 0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:2.6cqh 3.2cqw 4cqh}
.standalone-bottom-nav{position:absolute!important;left:0;right:0;bottom:0;height:10.5cqh!important}
.sub-app-main{padding-top:3cqh}.sub-app-panel{border-radius:3cqw;padding:4cqw}.sub-app-panel h1{font-size:5.3cqw;margin:0 0 1.2cqh}.sub-app-panel p{font-size:3cqw;line-height:1.75;color:#55616e}
.sub-app-panel .account-status{margin:2.5cqh 0;padding:3.4cqw;border-radius:2.5cqw}.sub-app-panel .account-status b{font-size:3.8cqw}.sub-app-panel .protect-actions{grid-template-columns:1fr;gap:1cqh}.sub-app-panel .protect-actions button{min-height:5.5cqh;font-size:3.1cqw}.sub-app-panel .protect-actions small{margin-top:-.5cqh;font-size:2.5cqw}

/* Person detail app page. */
.person-screen-main{padding-top:2cqh}
.person-app-card{position:relative;background:#fff;border:1px solid #dde3e8;border-radius:3cqw;padding:3cqw;box-shadow:0 4px 16px rgba(24,38,55,.07)}
.person-image-wrap{position:relative;width:66cqw;margin:0 auto}
.person-app-image{width:100%!important;max-width:none!important;margin:0!important;background:#eef2f5;border-radius:2.5cqw}
.person-app-favorite{right:2.2cqw!important;top:1.5cqh!important;width:17cqw!important;height:auto!important;min-height:12cqw;padding:.8cqh .5cqw!important;border:0!important;border-radius:2cqw!important;background:rgba(22,31,46,.76)!important;box-shadow:0 .5cqh 1.4cqh rgba(0,0,0,.24)!important;color:#fff!important}.person-app-favorite .favorite-toggle-icon{display:block;width:7cqw;height:7cqw;line-height:1}.person-app-favorite .favorite-toggle-icon svg{display:block;width:100%;height:100%;overflow:visible}.person-app-favorite .favorite-toggle-icon path{fill:transparent;stroke:#fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:fill .15s ease,stroke .15s ease}.person-app-favorite small{display:block!important;color:#fff;font-size:2.3cqw;font-weight:900;line-height:1.1;text-shadow:0 1px 3px rgba(0,0,0,.75)}.person-app-favorite.active{background:rgba(22,31,46,.82)!important}.person-app-favorite.active .favorite-toggle-icon path{fill:#ff5e91;stroke:#ff5e91}.person-app-favorite.active small{color:#ff8fb2}.person-app-favorite:focus-visible{outline:2px solid #fff;outline-offset:1px}
.person-pager-after-favorite{margin:1.2cqh 0 0!important;grid-template-columns:1fr 1fr;gap:2cqw}.person-pager-after-favorite a{padding:1.2cqh 2cqw;border-radius:2cqw}.person-pager-after-favorite a span{font-size:3cqw}.person-pager-after-favorite a small{font-size:2.3cqw}
.person-app-info{padding:0!important}.person-app-info h1{text-align:center;font-size:6.2cqw;margin:1.2cqh 0 .7cqh!important;padding:0!important}.person-app-info .person-detail-meta{justify-content:center}.person-app-info .person-detail-meta span{font-size:2.5cqw;padding:.55cqh 1.7cqw}.person-app-info .person-intro{font-size:3cqw;line-height:1.75;margin:1.6cqh .6cqw .3cqh}
.person-app-skills{margin-top:1.7cqh;padding:3cqw}.person-app-skills h2{font-size:4cqw;margin:0 0 1.1cqh}.person-app-skills .detail-skill-card{padding:2.2cqw}.person-app-skills .detail-skill-card strong{font-size:3cqw}.person-app-skills .detail-skill-card span{font-size:2.4cqw}
.person-app-status{margin-top:1.7cqh;padding:2.5cqw 3cqw;border-radius:2.5cqw;font-size:3cqw}.person-app-status a{font-size:2.8cqw;padding:1.1cqh 2.5cqw}

@media(max-width:520px){
  .person-card{grid-template-columns:78px minmax(0,1fr)}.person-thumb{width:78px}.stat-hex--list{max-width:145px}
  .battle-stage .fighter .stats{min-height:105px}.stat-hex--battle{max-width:132px}
}

/* Shop */
.shop-balance-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;padding:12px}.shop-balance{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:5px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.86);border:1px solid rgba(42,54,65,.12)}.shop-balance span{font-size:13px;font-weight:700}.shop-balance strong{font-size:30px;line-height:1}.shop-balance small{font-size:12px}.shop-section{margin-top:12px}.shop-section-heading h2{margin:0 0 4px}.shop-section-heading p{margin:0 0 12px;color:#65717d;font-size:12px}.shop-item-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shop-item{min-width:0;display:grid;grid-template-columns:66px 1fr;grid-template-areas:"icon copy" "button button";gap:8px 10px;padding:10px;border:1px solid rgba(52,64,76,.14);border-radius:12px;background:rgba(255,255,255,.9)}.shop-item.owned{opacity:.72}.shop-item-icon{grid-area:icon;width:66px;height:66px;object-fit:contain;align-self:start}.shop-item-copy{grid-area:copy;min-width:0}.shop-item-copy h3{margin:0 0 4px;font-size:15px}.shop-item-copy p{margin:0;color:#65717d;font-size:11px;line-height:1.4}.shop-price{display:flex;align-items:baseline;gap:4px;margin-top:7px}.shop-price b{font-size:22px}.shop-price span{font-size:11px;font-weight:700}.shop-item>button{grid-area:button;width:100%;font-weight:800}.shop-item>button:disabled{opacity:.55}.equipment-card{position:relative;padding-top:10px}.equipment-card-icon{width:54px;height:54px;object-fit:contain;display:block;margin:0 auto 5px}.empty-owned-items{grid-column:1/-1;text-align:center;padding:18px 10px;color:#6c7781;font-size:12px;border:1px dashed #ccd4dc;border-radius:10px;background:rgba(255,255,255,.72)}
@media(max-width:520px){.shop-item-grid{grid-template-columns:1fr}.shop-balance strong{font-size:26px}}

/* Purchase confirmation */
.purchase-confirm-modal{position:absolute;z-index:700;inset:0;display:grid;place-items:center;padding:6cqw}
.purchase-confirm-backdrop{position:absolute;inset:0;background:rgba(4,8,20,.72);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.purchase-confirm-panel{position:relative;z-index:1;width:100%;padding:4.2cqh 5cqw 3.2cqh;border:1px solid rgba(255,255,255,.82);border-radius:4cqw;background:linear-gradient(155deg,#fff 0%,#f5f8ff 68%,#e8efff 100%);box-shadow:0 4cqh 9cqh rgba(0,0,0,.46),inset 0 0 0 1px rgba(32,75,150,.12);text-align:center;color:#151b24;animation:purchaseModalIn .18s ease-out}
.purchase-confirm-icon{display:block;width:22cqw;height:22cqw;margin:-1.2cqh auto .5cqh;object-fit:contain;filter:drop-shadow(0 1cqh 1.5cqh rgba(22,42,82,.2))}
.purchase-confirm-kicker{margin:0;color:#3867b4;font-size:2.4cqw;font-weight:1000;letter-spacing:.22em}.purchase-confirm-panel h2{margin:.6cqh 0 1cqh;font-size:5cqw;line-height:1.25}.purchase-confirm-description{min-height:3em;margin:0 auto 1.7cqh;color:#52606d;font-size:2.8cqw;line-height:1.5}.purchase-confirm-price{display:flex;justify-content:center;align-items:baseline;gap:1.4cqw;margin:0 auto;padding:1.2cqh 3cqw;border-radius:2.4cqw;background:#182641;color:#fff}.purchase-confirm-price strong{font-size:7cqw;line-height:1}.purchase-confirm-price span{font-size:2.8cqw;font-weight:800}.purchase-confirm-question{margin:1.7cqh 0 1.4cqh;font-size:3cqw;font-weight:800}.purchase-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:2cqw}.purchase-confirm-actions button{min-height:6cqh;border-radius:2cqw;font-size:3cqw;font-weight:900}.purchase-confirm-cancel{border-color:#c8d0db;background:#fff;color:#56616d}.purchase-confirm-buy{border-color:#1d55c7;background:linear-gradient(#3979ee,#2057c8);color:#fff;box-shadow:0 .8cqh 1.6cqh rgba(32,87,200,.25)}
@keyframes purchaseModalIn{from{transform:translateY(2cqh) scale(.94);opacity:0}to{transform:none;opacity:1}}

/* Keep every special-move popup label readable over its result color. */
#specialPanel,#specialPanel h3,#specialResult,#specialResult strong,#specialResult span{color:#111!important}

/* 2026-09-21 page backgrounds / image titles */
.game-main{background:#f4f6f8 var(--ijin-ui-shiro,url("ui/shiro.png")) center center/cover no-repeat!important}
.game-main>.content-tab{background:#f4f6f8 var(--ijin-ui-shiro,url("ui/shiro.png")) center center/cover no-repeat!important}
#tab-home{background:#101a3a var(--ijin-ui-background,url("ui/background.png")) center center/cover no-repeat!important}
#tab-battle{background:#f4f6f8 var(--ijin-ui-dojyo,url("ui/dojyo.png")) center center/cover no-repeat!important}
#tab-tower{background:#f4f6f8 var(--ijin-ui-tower-versus,url("ui/tower-versus.png")) center center/cover no-repeat!important}
.battle-stage{background:#f4f6f8 var(--ijin-ui-shiro,url("ui/shiro.png")) center center/cover no-repeat!important;background-attachment:local!important}
.battle-stage.battle-stage--free{background-image:var(--ijin-ui-dojyo,url("ui/dojyo.png"))!important}
.battle-stage.battle-stage--tower{background-image:var(--ijin-ui-tower-battle,url("ui/tower-battle.png"))!important}
.standalone-viewport,.standalone-main{background:#f4f6f8 var(--ijin-ui-shiro,url("ui/shiro.png")) center center/cover no-repeat!important}

/* Home logo at upper-left; battle menu begins below it. */
.home-logo{position:absolute;z-index:6;top:2.2cqh;left:2.4cqw;width:34cqw;height:auto;max-height:9.5cqh;object-fit:contain;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3))}
.home-side-left{top:13.2cqh!important}

/* Image page titles (3:1 horizontal assets). */
.game-main>.content-tab .section-heading.image-heading{display:flex;justify-content:center;align-items:center;margin:0 0 1.5cqh!important;min-height:5.7cqh}
.page-title-image{display:block;width:42cqw;max-width:240px;aspect-ratio:3/1;object-fit:contain}
.tower-progress-text{margin:-.2cqh 0 1.0cqh;text-align:center;font-size:2.7cqw;font-weight:800;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.85)}

/* Standalone image title in the top bar. */
.standalone-title-image{justify-self:center;display:block;width:31cqw;max-width:180px;aspect-ratio:3/1;object-fit:contain}

/* White slightly-transparent cards so backgrounds remain visible. */
.panel,.person-card,.mode-fighter-card,.tower-player-card,.tower-enemy-card,.shop-item,.person-app-card,.detail-skill-card,.favorite-status-box,.account-status{
  background:rgba(255,255,255,.90)!important;
}
.mode-fighter-card,.tower-player-card,.tower-enemy-card{color:#18222c!important;border-color:rgba(45,62,82,.18)!important}
.mode-side-label,.auto-equip-note{color:#536274!important}
.mode-select{background:rgba(255,255,255,.94)!important;color:#18222c!important;border-color:#9aa8b8!important}
.mode-vs,.tower-vs{color:#fff!important;text-shadow:0 2px 5px #000,0 0 5px #000!important}

/* Keep standalone header dark but replace title text with image where provided. */
.standalone-header{background:rgba(23,32,42,.90)!important}

/* 2026-09-21 tower / hex / title / footer refinements */
/* Footer: inactive icons stay fully opaque; active light-blue background remains. */
.bottom-nav button img,.bottom-nav a img{opacity:1!important}
.bottom-nav button.active::before,.bottom-nav a.active::before{background:#edf4ff!important;border-color:#d9e7fb!important}

/* Make title areas slightly lighter so title art stays readable on busy backgrounds. */
.game-main>.content-tab .section-heading.image-heading{
  width:max-content;max-width:92%;margin-left:auto!important;margin-right:auto!important;
  padding:.35cqh 2.2cqw;border-radius:2cqw;background:rgba(255,255,255,.48);
  box-shadow:0 2px 10px rgba(20,32,48,.08);backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)
}
.standalone-header{background:rgba(255,255,255,.66)!important;color:#17202a!important;border-bottom-color:rgba(35,48,63,.12)!important}
.standalone-back{color:#17202a!important}
.standalone-title-image{filter:drop-shadow(0 1px 2px rgba(255,255,255,.5))}

/* Hex charts: fixed 100-point outer frame. Ring boosts are red underneath; base is blue on top. */
.stat-hex svg{overflow:visible!important}
.stat-hex-ring{fill:rgba(224,65,65,.24);stroke:#e04444;stroke-width:3;stroke-linejoin:round}
.stat-hex-value{fill:rgba(62,121,218,.24);stroke:#326fca;stroke-width:2.2;stroke-linejoin:round}
.stat-hex-label{font-size:10.5px!important;font-weight:900!important}
.stat-hex--list .stat-hex-label{font-size:9.5px!important}
.stat-hex--compact .stat-hex-label{font-size:9.8px!important}
.stat-hex--growth .stat-hex-label{font-size:10.5px!important}
.stat-hex--detail .stat-hex-label{font-size:11px!important}
.stat-hex--battle .stat-hex-label{font-size:9.5px!important}
.stat-hex--battle .stat-hex-ring{fill:rgba(236,75,75,.27);stroke:#ff6767}
.stat-hex--battle .stat-hex-value{fill:rgba(91,159,255,.27);stroke:#72adff}

/* Tower top: future enemies are large; current duel + battle button sit at the bottom. */
#tab-tower{overflow:hidden!important}
#towerSetup{
  height:calc(100% - 8.6cqh);min-height:0;padding:0 0 .8cqh!important;
  display:flex;flex-direction:column;overflow:visible
}
#towerSetup.hidden{display:none!important}
.tower-preview-stack{
  width:100%!important;min-height:15.2cqh!important;height:15.2cqh;margin:.2cqh 0 1cqh!important;
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:2cqw;align-items:stretch
}
.tower-preview-enemy,.tower-preview-enemy:nth-child(2),.tower-preview-enemy:nth-child(3){
  width:100%!important;height:100%!important;min-width:0;padding:.7cqh 1cqw!important;
  display:grid!important;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:1fr!important;
  gap:.25cqh;justify-items:center;align-items:center;border-radius:2cqw!important;
  background:rgba(255,255,255,.84)!important;border:1px solid rgba(44,60,82,.18)!important;
  box-shadow:0 3px 10px rgba(0,0,0,.16)!important;color:#1a2633!important
}
.tower-preview-enemy span{font-size:2.8cqw!important;line-height:1;font-weight:1000!important;color:#fff!important;text-shadow:-1px -1px 0 #313b48,1px -1px 0 #313b48,-1px 1px 0 #313b48,1px 1px 0 #313b48,0 2px 4px rgba(0,0,0,.55)}
.tower-preview-enemy img{width:100%!important;height:9.7cqh!important;max-width:18cqw;object-fit:contain!important;image-rendering:pixelated}
.tower-preview-enemy b{max-width:100%;font-size:2.35cqw;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tower-duel{margin-top:auto!important;flex:0 0 auto;align-items:stretch!important}
.tower-player-card,.tower-enemy-card{
  height:44.5cqh!important;min-height:44.5cqh!important;max-height:44.5cqh!important;
  overflow:visible;display:flex;flex-direction:column;justify-content:flex-start
}
.tower-player-card .mode-select{font-size:clamp(13px,2.9cqw,16px)!important;line-height:1.2;min-height:4.5cqh!important;padding:.55cqh 1.4cqw!important}
.tower-main-portrait{height:15.5cqh!important;min-height:15.5cqh;margin:.65cqh 0 .25cqh!important}
.tower-player-card h2,.tower-enemy-card h2{font-size:3.1cqw!important;line-height:1.15;margin:.25cqh 0 .3cqh!important;min-height:2.4cqh}
.tower-player-card .mode-mini-stats,.tower-enemy-card .mode-mini-stats{margin-top:auto!important;margin-bottom:.2cqh!important}
.tower-player-card .stat-hex--compact,.tower-enemy-card .stat-hex--compact{max-width:27.5cqw!important}
.tower-floor-badge{top:-1.8cqh!important;right:.8cqw!important}
.tower-floor-badge strong,.tower-floor-badge span{
  color:#fff!important;-webkit-text-stroke:.7px rgba(28,20,42,.72);text-shadow:0 2px 4px rgba(0,0,0,.65)
}
.tower-action{flex:0 0 auto;margin:.7cqh 0 0!important;padding-bottom:0!important}
.tower-action .battle-main-button{margin:0!important}

@media(max-width:520px){
  .tower-player-card,.tower-enemy-card{height:44.5cqh!important;min-height:44.5cqh!important;max-height:44.5cqh!important}
  .tower-main-portrait{height:14.8cqh!important;min-height:14.8cqh!important}
  .tower-preview-enemy img{height:9.2cqh!important}
  .tower-preview-enemy b{font-size:2.5cqw}
}

/* Preserve square battle portraits while the battle stage is open. */
.battle-stage .portrait{width:100%!important;height:auto!important;aspect-ratio:1/1!important;max-width:190px;margin-left:auto;margin-right:auto}
.battle-stage .portrait img{width:100%!important;height:100%!important;object-fit:contain!important}
@media(max-width:520px){.battle-stage .portrait{width:100%!important;height:auto!important;max-width:160px}}

/* Live battle: two fighters touch, VS overlaps them, and only battle essentials remain. */
.battle-stage .arena{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:0!important;
  align-items:start!important;
}
.battle-stage .arena>.fighter:first-child{border-radius:14px 0 0 14px;border-right-width:0}
.battle-stage .arena>.fighter:last-child{border-radius:0 14px 14px 0}
.battle-stage .vs{
  position:absolute;z-index:8;left:50%;top:43%;transform:translate(-50%,-50%);
  width:10cqw;height:10cqw;display:grid;place-items:center;
  border:2px solid rgba(255,239,145,.9);border-radius:50%;
  background:rgba(9,16,34,.82);color:#ffe063;
  font-size:5cqw!important;line-height:1!important;text-shadow:0 2px 5px rgba(0,0,0,.9);
  box-shadow:0 4px 12px rgba(0,0,0,.45);pointer-events:none
}
.battle-stage .stats,.battle-stage .battle-mods{display:none!important}
.battle-stage .battlelog{
  height:calc(3 * 2.15em + 18px)!important;
  max-height:calc(3 * 2.15em + 18px)!important;
  padding:8px 10px!important;overflow-y:auto
}
.battle-stage .battlelog p{min-height:2.15em;margin:0 0 2px!important;padding:.35em .55em!important;line-height:1.45}

/* Keep the live battle layout side by side inside the fixed 9:16 viewport. */
@media(max-width:700px){
  .battle-stage .arena{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:0!important
  }
  .battle-stage .fighter{min-width:0;padding:.8cqw!important;overflow:hidden}
  .battle-stage .vs{top:42%;width:11cqw;height:11cqw;font-size:5.5cqw!important}
  .battle-stage .portrait{width:100%!important;max-width:none!important}
  .battle-stage .hptext{font-size:2.3cqw;margin:.5cqh 0}
}


/* 2026-09-22 v4 follow-up: home icon sizing / growth equipment / account deletion */
.home-side-left .hub-icon{width:13.5cqw!important;height:13.5cqw!important}
.home-side-right .hub-icon{width:10.5cqw!important;height:10.5cqw!important}
.home-side-right{gap:.75cqh!important}
.home-delete-account{
  position:absolute;z-index:8;left:50%;bottom:12.2cqh;transform:translateX(-50%);
  width:auto;max-width:74%;padding:.65cqh 2.4cqw!important;border:1px solid rgba(255,255,255,.72)!important;
  border-radius:999px!important;background:rgba(32,25,38,.62)!important;color:#fff!important;
  font-size:2.45cqw;font-weight:800;line-height:1.25;box-shadow:0 3px 10px rgba(0,0,0,.28);backdrop-filter:blur(3px)
}
.home-delete-account:active{transform:translateX(-50%) scale(.96)}
.home-delete-account:disabled{opacity:.55}
.growth-equipment .equip-grid{grid-template-columns:1fr!important;gap:1.05cqh!important}
.growth-equipment .equip-grid>div{width:100%;min-width:0}
.growth-equipment .equip-grid select{width:100%}

/* 2026-09-22 v4 follow-up 2: centered logo / nickname / larger battle icons */
.home-logo{
  left:50%!important;
  transform:translateX(-50%);
  width:34cqw!important;
}
.home-user-nickname{
  position:absolute;z-index:9;top:2.0cqh;right:2.6cqw;
  max-width:28cqw;padding:.55cqh 1.8cqw;border-radius:999px;
  background:rgba(255,255,255,.72);border:1px solid rgba(31,48,69,.14);
  color:#17202a;text-decoration:none;font-size:2.7cqw;font-weight:900;line-height:1.2;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,.16);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)
}
.home-user-nickname:active{transform:scale(.96)}
.home-side-left .hub-icon{width:17.5cqw!important;height:17.5cqw!important}
.home-side-left{gap:1.2cqh!important}
.nickname-settings-panel{margin-bottom:1.6cqh}
.nickname-settings-panel h1{margin:0 0 .7cqh}
.nickname-settings-panel>p{margin:0 0 1.7cqh;color:#65717d;font-size:2.8cqw;line-height:1.55}
.nickname-settings-form{display:grid;gap:.75cqh}
.nickname-settings-form label{font-size:2.8cqw;font-weight:800}
.nickname-settings-form input[type="text"]{width:100%;min-height:5.8cqh;padding:0 3cqw;border:1px solid #b9c4cf;border-radius:2cqw;background:rgba(255,255,255,.96);font-size:3.5cqw;color:#17202a}
.nickname-settings-form small{color:#65717d;font-size:2.5cqw}
.nickname-settings-form button{margin-top:.5cqh;min-height:5.6cqh;font-size:3.1cqw;font-weight:900}
.settings-message{margin:0 0 1.25cqh;padding:1.2cqh 2.6cqw;border-radius:1.8cqw;font-size:2.7cqw;font-weight:800}
.settings-message.success{background:#e9f7ee;color:#23633a;border:1px solid #bfe4cc}
.settings-message.error{background:#fff0f0;color:#8a2f2f;border:1px solid #edc5c5}


/* 2026-09-23 rewards / level / bond / pose unlock */
.bond-box{margin-top:1.4cqh;padding:1.15cqh 2.4cqw;border-radius:2cqw;background:rgba(244,247,250,.92);border:1px solid rgba(48,70,96,.12)}
.bond-heading{display:flex;align-items:baseline;justify-content:space-between;gap:2cqw;margin-bottom:.7cqh}.bond-heading strong{font-size:3.3cqw}.bond-heading small{font-size:2.35cqw;color:#6b7783}.bond-bar{height:1.45cqh;border-radius:999px;background:#dfe5eb;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.08)}.bond-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef8e9d,#e84c6e);transition:width .25s ease}
.login-bonus-toast{position:absolute;z-index:120;left:50%;top:9cqh;transform:translate(-50%,-1.6cqh);width:76cqw;max-width:330px;padding:1.4cqh 3.2cqw;border-radius:2.6cqw;background:rgba(24,35,50,.94);color:#fff;box-shadow:0 7px 22px rgba(0,0,0,.30);display:grid;gap:.4cqh;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.login-bonus-toast.show{opacity:1;transform:translate(-50%,0)}.login-bonus-toast strong{font-size:3.2cqw}.login-bonus-toast span{font-size:2.65cqw;font-weight:800;color:#ffe997}

.person-pose-slider{position:relative;width:100%;aspect-ratio:1;border-radius:2.5cqw;background:#eef2f5;overflow:hidden}.person-pose-track{display:flex;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.person-pose-track::-webkit-scrollbar{display:none}.person-pose-slide{flex:0 0 100%;width:100%;height:100%;margin:0;display:grid;place-items:center;scroll-snap-align:start}.person-pose-slide img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.person-pose-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:8.5cqw;height:8.5cqw;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.84);color:#253443;font-size:6cqw;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.18)}.person-pose-arrow.prev{left:1.5cqw}.person-pose-arrow.next{right:1.5cqw}.person-pose-dots{position:absolute;z-index:4;left:50%;bottom:1.2cqh;transform:translateX(-50%);display:flex;gap:1.4cqw;padding:.5cqh 1.6cqw;border-radius:999px;background:rgba(255,255,255,.68)}.person-pose-dots i{width:1.7cqw;height:1.7cqw;border-radius:50%;background:#aeb8c2}.person-pose-dots i.active{background:#345fa7}

.profile-main{padding-bottom:12cqh!important}.profile-card,.profile-title-card{margin-bottom:1.5cqh}.profile-name-row{display:flex;justify-content:space-between;align-items:center;gap:3cqw}.profile-name-row small{font-size:2.25cqw;color:#75818c;font-weight:900;letter-spacing:.08em}.profile-name-row h1{margin:.15cqh 0 0;font-size:5cqw;line-height:1.15}.profile-edit-link{flex:none;padding:.75cqh 2.4cqw;border-radius:999px;text-decoration:none;background:#edf3fb;color:#315883;font-size:2.5cqw;font-weight:900}.profile-level{display:flex;align-items:baseline;gap:2.2cqw;margin:2.2cqh 0 1.2cqh}.profile-level span{font-size:3cqw;font-weight:1000;letter-spacing:.06em}.profile-level strong{font-size:9cqw;line-height:.9}.profile-exp-row{display:flex;justify-content:space-between;gap:2cqw;font-size:2.7cqw}.profile-exp-bar{height:1.55cqh;margin:.8cqh 0 .65cqh;border-radius:999px;background:#dfe5eb;overflow:hidden}.profile-exp-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#50a5df,#426fd1)}.profile-next-exp{text-align:right;color:#5f6c78;font-size:2.6cqw}.profile-title-card h2{margin:0 0 .5cqh}.profile-title-card>p{margin:.2cqh 0 1.4cqh;color:#677480;font-size:2.65cqw;line-height:1.55}.profile-title-form{display:grid;gap:.9cqh}.profile-title-form label{font-size:2.7cqw;font-weight:900}.profile-title-form select{width:100%;min-height:5.7cqh;padding:0 2.7cqw;border:1px solid #bcc7d1;border-radius:2cqw;background:#fff;color:#17202a;font-size:3.1cqw}.profile-title-form button{min-height:5.7cqh;font-size:3cqw;font-weight:900}.profile-no-title{padding:1.6cqh 2.8cqw;border-radius:2cqw;background:#f3f5f7;color:#707c87;text-align:center;font-size:2.7cqw;font-weight:800}

.battle-result-actions .battle-reward-notice{margin:0 0 1cqh;padding:1cqh 2.5cqw;border-radius:1.8cqw;background:#fff8dc;border:1px solid #ead68a;color:#5a4813;font-size:2.7cqw;font-weight:900;text-align:center}

/* 2026-09-24 v4.4: onboarding / battle setup / fused rings / badges */
.home-side-left .hub-icon{width:26.25cqw!important;height:26.25cqw!important}
.home-side-left{gap:.8cqh!important;top:12.2cqh!important}
.alert-icon{position:relative!important}
.alert-icon.has-alert::after{content:"";position:absolute;right:3%;top:3%;width:2.8cqw;height:2.8cqw;min-width:10px;min-height:10px;border-radius:50%;background:#e62936;border:2px solid #fff;box-shadow:0 1px 4px #0007;z-index:4}

.mode-versus-grid,.tower-duel{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;align-items:stretch!important}
.mode-fighter-card,.tower-player-card,.tower-enemy-card{min-width:0!important;display:flex!important;flex-direction:column!important}
.mode-fighter-card.player-card,.tower-player-card{border-top-right-radius:6px!important;border-bottom-right-radius:6px!important}
.mode-fighter-card.opponent-card,.tower-enemy-card{border-top-left-radius:6px!important;border-bottom-left-radius:6px!important}
.mode-vs,.tower-vs{position:absolute!important;left:50%!important;top:42%!important;transform:translate(-50%,-50%)!important;z-index:9!important;pointer-events:none;font-size:6.2cqw!important;line-height:1!important;text-shadow:0 3px 4px #000,0 0 7px #000!important}
.mode-portrait,.tower-main-portrait{height:24cqh!important;min-height:150px!important;align-items:flex-end!important;margin-top:auto!important}
.mode-fighter-card h2,.tower-player-card h2,.tower-enemy-card h2{min-height:1.4em;margin:4px 0 1px!important}
.setup-hp{font-size:2.8cqw;font-weight:900;color:#9b1d28;margin:0 0 5px;min-height:1.3em}
.tower-floor-badge{top:8px!important;right:8px!important;width:auto!important;height:auto!important;min-width:42px!important;padding:4px 8px!important;border-radius:8px!important;z-index:6!important;align-items:baseline!important}
.tower-floor-badge strong{font-size:18px!important}.tower-floor-badge span{font-size:10px!important}

.battle-main-button{width:min(300px,72cqw)!important;height:auto!important;aspect-ratio:300/96!important;min-width:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent var(--ijin-ui-battlebtn,url("ui/battlebtn.png")) center/contain no-repeat!important;color:transparent!important;box-shadow:none!important;text-shadow:none!important;overflow:hidden!important}
.battle-main-button:active{transform:translateY(2px) scale(.98)!important;box-shadow:none!important}

.ring-fusion-panel{margin:14px 0 18px;padding:12px;border:1px solid #d7dde5;border-radius:12px;background:#f6f8fb}
.ring-fusion-panel h3{margin:0 0 5px}.ring-fusion-panel p{font-size:12px;color:#65717d;margin:0 0 10px}
.ring-fusion-controls{display:grid;grid-template-columns:1fr;gap:8px}.ring-fusion-controls select{width:100%;min-height:42px}.ring-fusion-controls button{min-height:44px}
.fused-ring-badge{display:inline-block;margin-left:4px;padding:2px 6px;border-radius:999px;background:#6d3bb7;color:#fff;font-size:10px;font-weight:900}

.onboarding-flow{position:absolute;inset:0;z-index:150;background:rgba(5,9,18,.88);display:flex;align-items:center;justify-content:center;padding:4cqw;overflow:hidden}
.onboarding-flow.hidden{display:none!important}
.onboarding-card{width:100%;max-height:92%;overflow:auto;background:#fff;border-radius:18px;padding:4.5cqw;box-shadow:0 16px 42px #0009;color:#202a34}
.onboarding-card.hidden{display:none!important}
.onboarding-scroll{min-height:72cqh;padding:7cqh 7cqw;background:linear-gradient(90deg,#d5aa67,#f2d49b 7%,#f8dfab 50%,#f2d49b 93%,#d5aa67);border:5px solid #9c6638;box-shadow:inset 0 0 24px #7f4f2b66;display:flex;flex-direction:column;justify-content:center;gap:1.5cqh;text-align:center}
.onboarding-scroll h2{font-size:7cqw;margin:0 0 2cqh}.onboarding-scroll p{font-size:3.8cqw;line-height:1.8;margin:0}.onboarding-scroll button{margin-top:3cqh}
.onboarding-choose-head{text-align:center}.onboarding-people{display:grid;grid-template-columns:repeat(4,1fr);gap:1.8cqw;max-height:61cqh;overflow:auto;margin:2cqh 0;padding:1cqw}
.onboarding-person{border:2px solid transparent;background:#f1f4f7;border-radius:10px;padding:5px;text-align:center}.onboarding-person.selected{border-color:#245cd4;background:#e9f0ff}.onboarding-person img{width:100%;aspect-ratio:1;object-fit:contain;image-rendering:pixelated}.onboarding-person strong{display:block;font-size:2.4cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.onboarding-chosen-person{text-align:center}.onboarding-chosen-person img{height:30cqh;max-width:70%;object-fit:contain;image-rendering:pixelated}.onboarding-chosen-person strong{display:block;font-size:5cqw;margin-top:1cqh}
.onboarding-card label{display:block;text-align:center;margin:2cqh 0;font-weight:800}.onboarding-card input[type=number]{width:70px;text-align:center;font-size:20px}
.onboarding-locked .bottom-nav,.onboarding-locked .home-side,.onboarding-locked .home-user-nickname,.onboarding-locked .home-delete-account{pointer-events:none;filter:grayscale(1);opacity:.35}
.first-home-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:120;width:78%;padding:18px;background:#fff;border:3px solid #30445b;border-radius:14px;text-align:center;font-weight:900;box-shadow:0 8px 28px #0008}

@media(max-width:520px){.mode-portrait,.tower-main-portrait{height:20cqh!important;min-height:130px!important}.onboarding-people{grid-template-columns:repeat(4,1fr)}}

/* v4.5: 敵必殺防御UI */
#defenseHelp{display:none!important}
#defenseTitle{font-size:clamp(25px,5.2cqw,36px)!important;line-height:1.3;font-weight:1000!important;margin-bottom:16px!important}
#defensePanel .roulette-legend{font-size:clamp(22px,4.6cqw,31px)!important;font-weight:1000!important;line-height:1.2;gap:14px!important}
#defensePanel .roulette-legend span{font-size:inherit!important;font-weight:inherit!important}

/* 2026-09-24 v4.6: name plate / battle setup alignment / unified sub headers */
.home-user-nickname{
  top:2.05cqh!important;right:.8cqw!important;
  width:36cqw!important;max-width:none!important;aspect-ratio:600/156;
  box-sizing:border-box!important;padding:0 2.7cqw 0 9.6cqw!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  border:0!important;border-radius:0!important;
  background:transparent var(--ijin-ui-namearea,url("ui/namearea.png")) center/contain no-repeat!important;
  color:#3b2a17!important;font-size:2.8cqw!important;font-weight:1000!important;line-height:1!important;
  text-shadow:0 1px 0 rgba(255,255,255,.8),0 1px 2px rgba(94,59,17,.22)!important;
  box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  overflow:visible!important
}
.home-user-nickname span{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;transform:translateY(-.08cqh)}
.home-user-nickname:active{transform:scale(.97)!important}

.profile-nameplate{
  width:min(76cqw,390px);aspect-ratio:600/156;margin:0 auto 1.6cqh;
  box-sizing:border-box;padding:0 6cqw 0 20cqw;
  display:flex;align-items:center;justify-content:center;
  background:transparent var(--ijin-ui-namearea,url("ui/namearea.png")) center/contain no-repeat;
  color:#3b2a17;font-size:4.5cqw;font-weight:1000;line-height:1;text-align:center;
  text-shadow:0 1px 0 rgba(255,255,255,.82),0 1px 2px rgba(94,59,17,.22)
}
.profile-nameplate span{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-.08cqh)}
.profile-nickname-card{margin-bottom:1.5cqh}
.profile-nickname-card h2{margin:0 0 .5cqh}.profile-nickname-card>p{margin:.2cqh 0 1.4cqh;color:#677480;font-size:2.65cqw;line-height:1.55}
.settings-profile-link{margin-bottom:1.6cqh}
.primary-link-button{display:flex;align-items:center;justify-content:center;min-height:5.7cqh;padding:0 3cqw;border-radius:2cqw;background:#315f9a;color:#fff;text-decoration:none;font-size:3cqw;font-weight:900;box-shadow:0 .35cqh .8cqh rgba(30,55,88,.18)}
.primary-link-button:active{transform:translateY(1px)}

/* バトル開始前: 2枚のカードを少し離し、左右のキャラ画像の基準位置とサイズを固定 */
.mode-versus-grid,.tower-duel{gap:1.4cqw!important}
.mode-fighter-card.player-card,.mode-fighter-card.opponent-card,.tower-player-card,.tower-enemy-card{border-radius:12px!important}
.mode-portrait,.tower-main-portrait{
  height:22cqh!important;min-height:140px!important;flex:0 0 22cqh!important;
  margin:.75cqh 0 .25cqh!important;align-items:flex-end!important;justify-content:center!important
}
.mode-portrait img,.tower-main-portrait img{
  display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
  object-fit:contain!important;object-position:center bottom!important
}
.mode-select-spacer{width:100%;height:4.5cqh;min-height:4.5cqh;flex:0 0 4.5cqh}
.mode-vs,.tower-vs{left:50%!important;top:42%!important}

/* プレゼント・お知らせ・設定・プロフィールは同一ヘッダー寸法/文字配置 */
.standalone-header strong{justify-self:center!important;align-self:center!important;font-size:4.2cqw!important;font-weight:1000!important;line-height:1!important}

@media(max-width:520px){
  .mode-portrait,.tower-main-portrait{height:20cqh!important;min-height:130px!important;flex-basis:20cqh!important}
}


/* 2026-09-24 v4.7: home spacing / standalone titles / currency icons / tower preview */
.home-logo{
  width:38cqw!important;
  max-height:11.2cqh!important;
  top:1.8cqh!important;
}
.home-user-nickname{
  top:10.9cqh!important;
  right:1.1cqw!important;
}
.home-side-right{
  top:17.2cqh!important;
  gap:1.05cqh!important;
}

.sub-app-main--titleless{
  inset:0 0 10.5cqh 0!important;
  padding:3.3cqw 3.1cqw 4cqh!important;
}
.standalone-page-heading{
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  margin:0 auto 1.6cqh!important;
}
.standalone-title-text{
  font-size:5.4cqw;
  font-weight:1000;
  color:#fff;
  line-height:1.1;
  text-shadow:0 2px 6px rgba(0,0,0,.72),0 0 10px rgba(26,52,88,.45);
}

.currency-box-icon{
  grid-row:1 / span 2;
  width:8.4cqw;
  max-width:42px;
  aspect-ratio:1 / 1;
  object-fit:contain;
  align-self:center;
  justify-self:start;
  image-rendering:auto;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));
}
.shop-balance{grid-template-columns:auto 1fr auto auto!important;column-gap:1.5cqw!important}
.resource-balance{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  column-gap:1.4cqw;
}
.resource-balance .currency-box-icon{width:7.4cqw;max-width:34px}
.resource-balance span,.shop-balance span{align-self:end}
.resource-balance strong,.shop-balance strong{align-self:end}
.resource-balance small,.shop-balance small{align-self:end}

.currency-inline{
  display:inline-flex;
  align-items:center;
  gap:.65cqw;
  vertical-align:middle;
  white-space:nowrap;
}
.currency-inline img{
  width:1.65em;
  height:1.65em;
  object-fit:contain;
  vertical-align:middle;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.22));
}
.currency-inline b{font-size:1em;line-height:1}
.currency-inline small{font-size:.88em;line-height:1;color:inherit;font-weight:900}

.present-rewards{
  display:flex;
  flex-wrap:wrap;
  gap:2cqw;
  margin:.9cqh 0 1.1cqh;
}
.present-reward-chip{
  display:inline-flex;
  align-items:center;
  gap:1.1cqw;
  padding:.65cqh 2cqw;
  border-radius:999px;
  background:rgba(244,247,250,.95);
  border:1px solid rgba(46,66,89,.12);
  font-weight:900;
  color:#203040;
}
.present-reward-chip img{
  width:8.2cqw;
  max-width:34px;
  aspect-ratio:1/1;
  object-fit:contain;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.22));
}
.present-reward-chip b{font-size:3.15cqw;line-height:1}
.present-reward-chip small{font-size:2.45cqw;color:#5d6a77}

.login-bonus-toast span,
.battle-reward-notice p{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:1.2cqw;
}
.login-bonus-toast .currency-inline img{width:1.9em;height:1.9em}
.battle-reward-notice .currency-inline img{width:1.55em;height:1.55em}
.battle-reward-notice p{margin:.45cqh 0}

#towerSetup{height:calc(100% - 8.6cqh);}
.tower-preview-stack{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  height:14.2cqh!important;
  min-height:14.2cqh!important;
}
.tower-player-card,.tower-enemy-card{
  height:48.2cqh!important;
  min-height:48.2cqh!important;
  max-height:48.2cqh!important;
}
.tower-main-portrait{
  height:17.2cqh!important;
  min-height:17.2cqh!important;
}
@media(max-width:520px){
  .tower-player-card,.tower-enemy-card{height:47.2cqh!important;min-height:47.2cqh!important;max-height:47.2cqh!important}
  .tower-main-portrait{height:16.2cqh!important;min-height:16.2cqh!important}
}


/* 2026-09-24 v4.9: development notice / opening / favorite unlock / soul friend / login bonus */
.development-notice{
  position:absolute;z-index:10;left:50%;bottom:18.2cqh;transform:translateX(-50%);
  width:82cqw;box-sizing:border-box;padding:1.05cqh 3cqw;border-radius:2.2cqw;
  background:rgba(121,28,33,.90);border:2px solid rgba(255,225,145,.92);color:#fff7d3;
  text-align:center;font-size:2.75cqw;font-weight:1000;line-height:1.25;letter-spacing:.02em;
  text-shadow:0 2px 2px rgba(0,0,0,.65);box-shadow:0 5px 14px rgba(0,0,0,.32)
}

#onboardingStory{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-height:none!important;
  padding:0!important;border-radius:0!important;overflow:hidden!important;box-shadow:none!important;
  background:#16151b var(--ijin-ui-opening,url("ui/opening.png")) center/cover no-repeat!important;color:#4b2d17!important
}
#onboardingStory .onboarding-scroll{
  position:absolute;left:10.5%;right:10.5%;top:21.2%;bottom:17.4%;min-height:0!important;
  padding:4.5cqh 5.2cqw 3.2cqh!important;background:transparent!important;border:0!important;box-shadow:none!important;
  display:flex;flex-direction:column;justify-content:center;gap:1.65cqh;text-align:center;overflow-y:auto
}
#onboardingStory .onboarding-scroll h2{font-size:7cqw!important;color:#5b3016;text-shadow:0 1px rgba(255,245,205,.8)}
#onboardingStory .onboarding-scroll p{font-size:3.65cqw!important;line-height:1.75!important;color:#52341d;font-weight:800;text-shadow:0 1px rgba(255,245,205,.55)}
#onboardingStory .onboarding-scroll button{width:72%;align-self:center;margin-top:2.4cqh!important}

.soulmate-badge,.soulmate-inline-badge{
  display:inline-flex;align-items:center;justify-content:center;padding:.35cqh 1.55cqw;border-radius:999px;
  background:linear-gradient(180deg,#ffe888,#e8ab32);border:1px solid #9f6317;color:#5d3509;
  font-size:2.45cqw;font-weight:1000;line-height:1.1;box-shadow:0 2px 5px rgba(0,0,0,.18);vertical-align:middle
}
.soulmate-inline-badge{margin-left:1cqw;font-size:2.25cqw}
.soulmate-note{flex-basis:100%;display:block;margin-top:.6cqh;text-align:center;color:#8a5a12;font-size:2.45cqw;font-weight:900}
.soulmate-growth-note,.soulmate-setup-note{margin:.7cqh 0 0;padding:.65cqh 1.5cqw;border-radius:1.4cqw;background:#fff4c7;color:#79500e;font-size:2.35cqw;font-weight:900;text-align:center}
.soulmate-mod b{color:#ffd96a!important}
.soulmate-complete{border:2px solid rgba(216,163,52,.62)!important;background:linear-gradient(180deg,rgba(255,250,229,.96),rgba(255,244,194,.92))!important}

.person-app-favorite small{white-space:nowrap}

.login-bonus-toast{
  pointer-events:auto!important;top:13cqh!important;width:82cqw!important;max-width:360px!important;
  padding:2cqh 3.5cqw!important;gap:1.3cqh!important;border:2px solid rgba(255,226,127,.76)!important
}
.login-bonus-toast .login-bonus-close{
  width:68%;min-height:5cqh;justify-self:center;margin-top:.5cqh;border:0;border-radius:999px;
  background:#fff;color:#263449;font-size:2.9cqw;font-weight:1000;box-shadow:0 2px 7px rgba(0,0,0,.25);cursor:pointer
}
.login-bonus-toast .login-bonus-close:active{transform:scale(.97)}

.person-soulmate-mark{display:inline-flex;margin-left:1.2cqw;padding:.2cqh 1cqw;border-radius:999px;background:#f7d76a;color:#68420c;border:1px solid #b37a20;font-size:2cqw;font-weight:1000;vertical-align:middle}

/* 2026-09-24 v4.10: tower simplification / presents / favorite modal */
.tower-preview-stack,.tower-preview-enemy{display:none!important}
#towerSetup{height:calc(100% - 8.6cqh)!important;display:flex!important;flex-direction:column!important}
.tower-duel{margin-top:auto!important;align-items:stretch!important}
.tower-player-card,.tower-enemy-card{
  height:56.5cqh!important;min-height:56.5cqh!important;max-height:56.5cqh!important;
}
.tower-main-portrait{height:23.5cqh!important;min-height:23.5cqh!important;flex:0 0 23.5cqh!important}
@media(max-width:520px){
  .tower-player-card,.tower-enemy-card{height:55.5cqh!important;min-height:55.5cqh!important;max-height:55.5cqh!important}
  .tower-main-portrait{height:22cqh!important;min-height:22cqh!important;flex-basis:22cqh!important}
}

.present-row{padding:1.7cqh 2.4cqw;border-bottom:1px solid rgba(52,69,88,.12)}
.present-row:last-child{border-bottom:0}.present-row.claimed{opacity:.68}.present-message{margin:0 0 1.2cqh!important;color:#263544!important;font-size:2.9cqw!important;line-height:1.55!important}
.present-bottom-line{display:flex;align-items:center;gap:1.4cqw;flex-wrap:nowrap;width:100%}
.present-reward-inline{display:inline-flex;align-items:center;gap:.55cqw;white-space:nowrap;min-width:0;font-size:2.2cqw;font-weight:800;color:#344452}
.present-reward-inline img{width:6.2cqw;height:6.2cqw;max-width:30px;max-height:30px;object-fit:contain;flex:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18))}
.present-reward-inline b{font-size:2.45cqw;color:#17212b}.present-claimed-status{margin-left:auto;white-space:nowrap;padding:.5cqh 1.6cqw;border-radius:999px;background:#e7ebef;color:#65717d;font-size:2.2cqw;font-weight:900}
.present-claim-button{margin-left:auto!important;min-height:4.4cqh!important;padding:.55cqh 2cqw!important;font-size:2.25cqw!important;white-space:nowrap!important}

.favorite-confirm-modal{position:absolute;z-index:180;inset:0;display:flex;align-items:center;justify-content:center;padding:5cqw}.favorite-confirm-modal.hidden{display:none!important}.favorite-confirm-backdrop{position:absolute;inset:0;background:rgba(7,12,22,.72);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.favorite-confirm-card{position:relative;z-index:2;width:82cqw;max-width:390px;padding:3.2cqh 5cqw 2.7cqh;border-radius:4cqw;background:linear-gradient(180deg,#fffdf4,#f7f0dc);border:2px solid #b98b45;box-shadow:0 16px 42px rgba(0,0,0,.5);text-align:center;color:#332718}
.favorite-confirm-x{position:absolute;right:2.2cqw;top:1.2cqh;width:7cqw;height:7cqw;border:0;border-radius:50%;background:#ede2cb;color:#664d2d;font-size:4.5cqw;line-height:1;cursor:pointer}.favorite-confirm-character{width:28cqw;max-width:135px;aspect-ratio:1;margin:0 auto .8cqh;border-radius:3cqw;background:rgba(255,255,255,.72);display:grid;place-items:center;border:1px solid rgba(116,83,42,.2)}.favorite-confirm-character img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.favorite-confirm-card h2{margin:.5cqh 0 1cqh;font-size:5cqw}.favorite-confirm-card>p{margin:.5cqh 0 1.2cqh;font-size:2.75cqw;line-height:1.6;color:#5b4b38}.favorite-confirm-cost{display:flex;align-items:center;justify-content:center;gap:1.5cqw;margin:1.2cqh auto .6cqh;padding:.8cqh 2cqw;border-radius:999px;background:#fff7df;border:1px solid #d9bc76;width:max-content;max-width:100%}.favorite-confirm-cost img{width:8.5cqw;height:8.5cqw;max-width:40px;max-height:40px;object-fit:contain}.favorite-confirm-cost span{font-size:2.7cqw;font-weight:900}.favorite-confirm-cost strong{font-size:3.5cqw;color:#9a5a00}.favorite-confirm-cost.is-free img{opacity:.5}.favorite-confirm-cost.is-free strong{color:#26744a}.favorite-confirm-balance{font-size:2.4cqw!important;color:#6a5a44!important}.favorite-confirm-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:2cqw;margin-top:1.7cqh}.favorite-confirm-actions button{min-height:5.2cqh;font-size:2.8cqw;font-weight:1000}


/* 2026-09-24 v4.13: 魂友アイコンをお気に入りハート横に表示 */
.person-soulmate-icon{
  position:absolute;z-index:4;right:9px;top:7px;width:22px;height:22px;object-fit:contain;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.28));pointer-events:none
}
.person-soulmate-icon.with-favorite{right:36px}
@media(max-width:520px){.person-soulmate-icon{width:20px;height:20px}.person-soulmate-icon.with-favorite{right:34px}}


/* 2026-09-24 v4.14: manual start onboarding / separate battle+tower entry / story revisions */
.onboarding-scroll--opening{justify-content:flex-start!important;gap:1.3cqh!important;padding-top:6.5cqh!important}
.onboarding-story-logo{width:46cqw;max-width:280px;align-self:center;filter:drop-shadow(0 3px 7px rgba(0,0,0,.22))}
.onboarding-story-copy{display:flex;flex-direction:column;gap:.45cqh;text-align:right;align-items:stretch;margin-top:.4cqh}
.onboarding-story-copy p{margin:0!important;text-align:right!important}
#onboardingStory .onboarding-scroll{display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden auto}
#onboardingStory .onboarding-scroll h2{display:none!important}
#onboardingStory .onboarding-scroll p{font-size:3.4cqw!important;line-height:1.64!important;color:#52341d;font-weight:800;text-shadow:0 1px rgba(255,245,205,.55)}
.onboarding-start-button{margin-top:auto;align-self:center;border:0;background:none;padding:0;cursor:pointer;width:64cqw;max-width:300px}
.onboarding-start-button img{display:block;width:100%;height:auto}
.onboarding-start-button:disabled{opacity:.7;filter:grayscale(.25)}
.opening-only .game-main > .tab:not(#tab-home){display:none!important}
.opening-only .home-side,.opening-only .home-user-nickname,.opening-only .development-notice,.opening-only .home-delete-account,.opening-only .bottom-nav{visibility:hidden!important}


/* 2026-09-24 v4.15: standalone title images / battle pages / tower EXP */
.standalone-page-heading{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.standalone-page-title-image{
  display:block;
  width:min(58cqw,300px);
  max-height:9cqh;
  object-fit:contain;
  margin:0 auto;
  image-rendering:auto;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.18));
}
.profile-main .standalone-page-heading{margin-bottom:1.6cqh!important}
.reward-exp-inline{display:inline-flex;align-items:baseline;gap:.45cqw;white-space:nowrap;font-weight:1000}
.reward-exp-inline b{font-size:1.05em}


/* 2026-09-24 v4.16: tower 3-loss lock / readable standalone title panels */
.tower-action .battle-main-button.tower-day-locked{
  position:relative!important;
  filter:grayscale(1) brightness(1.42)!important;
  opacity:.78!important;
  cursor:not-allowed!important;
}
.tower-action .battle-main-button.tower-day-locked::after{
  content:"参戦は明日";
  position:absolute;
  inset:0;
  z-index:3;
  display:grid;
  place-items:center;
  color:#111!important;
  font-size:clamp(18px,4.1cqw,25px);
  font-weight:1000;
  line-height:1;
  letter-spacing:.04em;
  text-shadow:0 1px 1px rgba(255,255,255,.95),0 0 5px rgba(255,255,255,.75);
  pointer-events:none;
}

/* 設定・プロフィール・お知らせ・プレゼントのタイトルも偉人/ショップと同じ可読性パネル */
.standalone-page-heading{
  width:max-content!important;
  max-width:92%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding:.35cqh 2.2cqw!important;
  border-radius:2cqw!important;
  background:rgba(255,255,255,.48)!important;
  box-shadow:0 2px 10px rgba(20,32,48,.08)!important;
  backdrop-filter:blur(1.5px)!important;
  -webkit-backdrop-filter:blur(1.5px)!important;
}
.standalone-page-title-image{margin:0 auto!important}


/* 2026-09-24 v4.17: onboarding / login bonus / tower result / mobile special UI / cache refresh */
#onboardingStory .onboarding-story-copy{
  text-align:left!important;
  align-items:stretch!important;
}
#onboardingStory .onboarding-story-copy p{
  text-align:left!important;
}
#onboardingStory .onboarding-story-copy .onboarding-story-gap{
  min-height:.8cqh;
  line-height:.8!important;
}

#onboardingChoose{
  height:92%!important;
  max-height:92%!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
#onboardingChoose.hidden{display:none!important}
#onboardingChoose .onboarding-choose-head{flex:0 0 auto}
#onboardingChoose .onboarding-people{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  margin:1.3cqh 0!important;
}
#onboardingChooseNext{
  flex:0 0 auto;
  width:100%;
  min-height:5.3cqh;
  font-size:3.2cqw;
  font-weight:1000;
}

.onboarding-ready-card{
  text-align:center;
  max-width:92%;
}
.onboarding-ready-card .onboarding-chosen-person img{
  height:28cqh;
}
.onboarding-ready-copy{
  margin:1.7cqh auto;
  padding:1.5cqh 3cqw;
  border-radius:2.2cqw;
  background:#f4f7fb;
  color:#263544;
}
.onboarding-ready-copy p{
  margin:.6cqh 0;
  font-size:3.35cqw;
  line-height:1.65;
  font-weight:800;
}
.onboarding-ready-copy strong{
  font-size:1.08em;
  color:#1d4f9a;
}
.onboarding-finish-button{
  width:72%;
  min-height:5.5cqh;
  font-size:3.2cqw;
  font-weight:1000;
}

/* ログインボーナスを大きくし、翌日の内容も表示 */
.login-bonus-toast{
  top:10.5cqh!important;
  width:88cqw!important;
  max-width:410px!important;
  padding:2.6cqh 4cqw!important;
  gap:1.25cqh!important;
  border-radius:3.2cqw!important;
}
.login-bonus-toast>strong{
  font-size:clamp(21px,5cqw,30px)!important;
  line-height:1.15;
}
.login-bonus-today,.login-bonus-tomorrow{
  display:grid;
  gap:.65cqh;
  justify-items:center;
  padding:1.1cqh 2cqw;
  border-radius:2cqw;
}
.login-bonus-today{
  background:rgba(255,255,255,.08);
}
.login-bonus-today>b{
  color:#fff;
  font-size:clamp(15px,3.5cqw,21px);
}
.login-bonus-today>span,
.login-bonus-tomorrow>span{
  font-size:clamp(14px,3.3cqw,20px)!important;
  font-weight:1000!important;
}
.login-bonus-tomorrow{
  background:rgba(255,233,151,.12);
  border:1px solid rgba(255,233,151,.34);
}
.login-bonus-tomorrow small{
  color:#fff4c8;
  font-size:clamp(12px,2.8cqw,17px);
  font-weight:900;
}
.login-bonus-toast .login-bonus-close{
  min-height:5.4cqh!important;
  font-size:3.1cqw!important;
}

/* 塔の勝利結果：1段目=踏破報酬、2段目=次の階/戻る */
.battle-result-actions .tower-victory-result{
  width:100%;
  display:grid;
  gap:1cqh;
}
.tower-victory-reward-row{
  width:100%;
  padding:1.1cqh 2.2cqw;
  border-radius:1.8cqw;
  background:#fff8dc;
  border:1px solid #ead68a;
  color:#5a4813;
  text-align:center;
}
.tower-victory-reward-row>strong{
  display:block;
  margin-bottom:.7cqh;
  font-size:3.2cqw;
  font-weight:1000;
}
.tower-victory-reward-row>div{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:1.1cqw;
  font-size:2.8cqw;
  font-weight:900;
}
.tower-bond-reward{
  margin:.6cqh 0 0;
  font-size:2.55cqw;
  font-weight:900;
}
.tower-victory-action-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2cqw;
}
.tower-victory-action-row button{
  width:100%;
  min-width:0!important;
}

/* プレゼント通貨表示を拡大 */
.present-reward-inline{
  font-size:2.65cqw!important;
  gap:.7cqw!important;
}
.present-reward-inline b{
  font-size:3cqw!important;
}

/* 自分の必殺技：スマホで縦幅・余白を縮小 */
#specialPanel h3{
  margin-top:0!important;
}
#defenseButton{
  display:block;
  width:min(72%,280px);
  margin:14px auto 0;
  padding:13px 24px;
  font-size:24px;
  font-weight:1000;
  border-radius:13px;
  box-shadow:0 5px 14px rgba(200,50,50,.22);
}

#defenseTitle{
  font-size:clamp(20px,4.35cqw,30px)!important;
  line-height:1.22!important;
  margin-bottom:10px!important;
}

@media(max-width:700px){
  #specialPanel{
    max-width:100%!important;
    margin-top:6px!important;
    padding:9px 11px 10px!important;
    overflow:hidden!important;
  }
  #specialPanel h3{
    margin:0 0 6px!important;
    font-size:clamp(19px,4.6cqw,24px)!important;
    line-height:1.25!important;
  }
  #specialPanel .timing{
    height:25px!important;
    margin:6px 0!important;
  }
  #timingButton{
    width:min(92%,360px)!important;
    margin:7px auto 0!important;
    padding:8px 18px!important;
    min-height:40px!important;
    font-size:22px!important;
    border-radius:11px!important;
  }
  #defenseTitle{
    font-size:clamp(18px,4cqw,25px)!important;
  }
  #defenseButton{
    width:min(78%,300px)!important;
    min-height:54px!important;
    margin-top:10px!important;
    padding:12px 20px!important;
    font-size:24px!important;
  }
}


/* 2026-09-24 v4.18: reward text sizing / background cache hotfix */
.present-reward-inline{
  font-size:clamp(16px,3.8cqw,22px)!important;
  gap:.85cqw!important;
  font-weight:900!important;
}
.present-reward-inline b{
  font-size:clamp(19px,4.4cqw,26px)!important;
  line-height:1!important;
}
.present-reward-inline img{
  width:7.2cqw!important;
  height:7.2cqw!important;
  max-width:36px!important;
  max-height:36px!important;
}
.tower-victory-reward-row>strong{
  font-size:clamp(16px,3.8cqw,22px)!important;
  line-height:1.25!important;
}
.tower-victory-reward-row>div{
  font-size:clamp(16px,3.8cqw,22px)!important;
}
.tower-victory-reward-row .currency-inline b{
  font-size:clamp(19px,4.4cqw,26px)!important;
}

/* 2026-09-24 v4.19: defeated monster collection / reward sizing / tower lock label */
.home-tower-row{
  display:flex;
  align-items:flex-start;
  gap:1.5cqw;
}
.home-tower-row .hub-icon{flex:0 0 auto}

.tower-action .battle-main-button.tower-day-locked::after{
  color:#d31322!important;
  text-shadow:
    -2px -2px 0 #fff,
     2px -2px 0 #fff,
    -2px  2px 0 #fff,
     2px  2px 0 #fff,
     0 2px 5px rgba(0,0,0,.35)!important;
}

/* v4.18では大きすぎたため、プレゼント本文だけ一段階戻す。踏破報酬はv4.18の大きさを維持。 */
.present-reward-inline{
  font-size:clamp(14px,3.15cqw,18px)!important;
  gap:.7cqw!important;
}
.present-reward-inline b{
  font-size:clamp(16px,3.6cqw,21px)!important;
}

/* 討伐した悪魔 */
.defeated-monster-main{padding-bottom:13cqh!important}
.defeated-monster-title{
  margin:0 auto 1.7cqh;
  padding:.75cqh 4cqw;
  width:max-content;
  max-width:92%;
  border-radius:2.2cqw;
  background:rgba(255,255,255,.78);
  color:#26313b;
  font-size:5cqw;
  font-weight:1000;
  line-height:1.2;
  box-shadow:0 2px 10px rgba(20,32,48,.11);
}
.defeated-monster-empty{
  margin-top:2cqh;
  text-align:center;
  font-size:3cqw;
  line-height:1.7;
}
.defeated-monster-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2cqw;
}
.defeated-monster-card{
  display:block;
  min-width:0;
  padding:1.4cqw 1.2cqw 1.6cqw;
  border:1px solid rgba(42,58,78,.14);
  border-radius:2.3cqw;
  background:rgba(255,255,255,.92);
  color:#1f2b36;
  text-decoration:none;
  text-align:center;
  box-shadow:0 3px 10px rgba(14,30,50,.10);
}
.defeated-monster-card:active{transform:scale(.97)}
.defeated-monster-thumb{
  width:100%;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:1.6cqw;
  background:#edf1f4;
}
.defeated-monster-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  image-rendering:pixelated;
}
.defeated-monster-card strong{
  display:block;
  margin-top:.65cqh;
  font-size:2.8cqw;
  line-height:1.25;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.defeated-monster-card small{
  display:block;
  margin-top:.2cqh;
  color:#687583;
  font-size:2.25cqw;
  font-weight:900;
}

.monster-detail-card{position:relative}
.monster-detail-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1.2cqw;
  margin:.5cqh 0 1cqh;
}
.monster-detail-meta span{
  padding:.42cqh 1.7cqw;
  border-radius:999px;
  background:#edf2f7;
  color:#445362;
  font-size:2.45cqw;
  font-weight:900;
}
.monster-detail-name{
  margin:.4cqh 0 .8cqh;
  text-align:center;
  font-size:5.4cqw;
  line-height:1.18;
}
.monster-detail-floor{
  position:absolute;
  z-index:5;
  top:2cqw;
  right:2cqw;
  padding:.55cqh 2cqw;
  border-radius:1.5cqw;
  background:#5d2b8e;
  color:#fff;
  font-size:2.8cqw;
  font-weight:1000;
  box-shadow:0 2px 7px rgba(0,0,0,.2);
}
.monster-stat-hex{max-width:275px;margin:.2cqh auto .5cqh}
.monster-stat-hex .stat-hex-label{font-size:11px!important}
.monster-spec-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.1cqw;
  margin-top:1cqh;
}
.monster-spec-item{
  padding:1cqh 1cqw;
  border-radius:1.5cqw;
  background:#f0f4f7;
  text-align:center;
}
.monster-spec-item span{display:block;color:#66727e;font-size:2.25cqw;font-weight:900}
.monster-spec-item b{display:block;margin-top:.25cqh;font-size:3.5cqw;color:#263544}
.monster-comment{
  margin:1.4cqh 0 0;
  padding:1.5cqh 2.8cqw;
  border-radius:1.8cqw;
  background:#f6f7f8;
  font-size:2.8cqw;
  line-height:1.7;
}
.monster-detail-skills{margin-top:1.5cqh}
.monster-detail-skills h2,.monster-comment-panel h2{margin:0 0 1cqh;font-size:3.8cqw}
.monster-skill-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2cqw;
  padding:1.1cqh 2.5cqw;
  border-radius:1.6cqw;
  background:#f2f5f8;
}
.monster-skill-row+.monster-skill-row{margin-top:.75cqh}
.monster-skill-row strong{font-size:2.95cqw}
.monster-skill-row span{flex:none;font-size:2.35cqw;font-weight:900;color:#65727f}

@media(max-width:520px){
  .defeated-monster-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6cqw}
  .defeated-monster-card strong{font-size:2.75cqw}
}

/* 2026-09-24 v4.20: クロスロイド10連戦 / 模擬試合 */
.match-battle-tab{display:none!important;flex-direction:column}
.match-battle-tab.active{display:flex!important}
.match-battle-tab .mode-setup{margin-top:auto;padding-bottom:1.5cqh}
.match-battle-tab .mode-action{margin-top:1.4cqh;margin-bottom:.5cqh}
.match-title-image{width:min(54cqw,300px)!important;max-height:8.5cqh!important;object-fit:contain}

.crossroid-battle-setup{padding-bottom:12cqh}
.crossroid-battle-head{padding:1.4cqh 3.2cqw!important;margin-bottom:1.35cqh!important}
.crossroid-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:2cqw}
.crossroid-head-row h2{margin:0 0 .45cqh;font-size:4.1cqw;line-height:1.15}
.crossroid-head-row p{margin:0;color:#536170;font-size:2.45cqw;line-height:1.45}
#crossroidDailyAttempts{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:3.6cqh;padding:.35cqh 1.8cqw;border-radius:999px;background:#202e42;color:#fff;font-size:2.45cqw;white-space:nowrap}
.crossroid-player-select{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2cqw;margin-top:1.2cqh;font-size:2.55cqw;font-weight:900;color:#253342}
.crossroid-player-select .mode-select{min-width:0}
.crossroid-active-run{display:flex;align-items:center;justify-content:space-between;gap:2.4cqw;margin:0 0 1.35cqh!important;padding:1.2cqh 3cqw!important}
.crossroid-active-copy{display:flex;min-width:0;flex-direction:column;gap:.18cqh}
.crossroid-active-copy span{font-size:2.1cqw;font-weight:900;color:#cc4b30}
.crossroid-active-copy strong{font-size:3.25cqw;line-height:1.2;color:#263544}
.crossroid-active-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:2.2cqw;color:#687685}
.crossroid-active-run button{flex:0 0 auto;min-height:4.4cqh;padding:.65cqh 2.4cqw;font-size:2.45cqw}
.crossroid-rank-grid{display:grid;grid-template-columns:1fr;gap:1.35cqh}
.crossroid-rank-card{position:relative;overflow:hidden;padding:1.25cqh 3.2cqw 1.45cqh;border:1px solid rgba(68,87,108,.22);border-radius:3cqw;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(239,245,250,.96));box-shadow:0 4px 14px rgba(25,42,60,.12);text-align:center}
.crossroid-rank-card h3{margin:0 0 .7cqh;font-size:4.4cqw;line-height:1.1;color:#1f2c38}
.crossroid-cleared-badge{position:absolute;top:.9cqh;right:2.2cqw;padding:.34cqh 1.55cqw;border-radius:999px;background:#e9f4dc;color:#41711f;font-size:2.1cqw;font-weight:1000}
.crossroid-rank-images{display:flex;align-items:flex-end;justify-content:center;gap:3.5cqw;min-height:14cqh;margin:.2cqh 0 .25cqh}
.crossroid-rank-images img{width:27cqw;height:14cqh;max-width:138px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 3px 4px rgba(0,0,0,.18))}
.crossroid-ten-streak{display:block;margin:.2cqh 0 .85cqh;font-size:3.2cqw;color:#314252}
.crossroid-reward-row{display:grid;grid-template-columns:7.8em minmax(0,1fr);align-items:center;gap:1.5cqw;padding:.55cqh 1.6cqw;border-top:1px solid rgba(52,73,94,.10);text-align:left}
.crossroid-reward-row>span{font-size:2.35cqw;font-weight:1000;color:#52606c}
.crossroid-reward-row>div{display:flex;align-items:center;justify-content:flex-end;gap:1.7cqw;min-width:0;white-space:nowrap}
.crossroid-reward-row.first-clear{background:rgba(255,229,119,.12)}
.crossroid-reward-exp{font-size:2.4cqw;font-weight:800;color:#334454}
.crossroid-reward-exp b{font-size:2.85cqw;color:#151d24}
.crossroid-rank-card .currency-inline{gap:.25cqw!important;font-size:2.15cqw!important}
.crossroid-rank-card .currency-inline img{width:4.2cqw!important;height:4.2cqw!important;max-width:24px!important;max-height:24px!important}
.crossroid-rank-card .currency-inline b{font-size:2.75cqw!important}
.crossroid-rank-card .currency-inline small{font-size:1.95cqw!important}
.crossroid-challenge-button{width:min(58%,250px);min-height:4.7cqh;margin:.95cqh auto 0;padding:.65cqh 3cqw;font-size:2.8cqw}
.crossroid-series-result{text-align:center}
.crossroid-series-result h3{margin:0 0 1cqh;font-size:5.2cqw;line-height:1.15}
.crossroid-series-result.lost h3{color:#9d2525}
.crossroid-result-reward{display:grid;gap:.7cqh;margin:1.1cqh 0;padding:1cqh 2.5cqw;border-radius:2.2cqw;background:rgba(255,255,255,.11)}
.crossroid-result-reward>strong{font-size:3cqw}
.crossroid-result-reward>div{display:flex;justify-content:center;align-items:center;gap:2cqw;flex-wrap:wrap}
.crossroid-result-reward .currency-inline{font-size:2.7cqw!important}
.crossroid-result-reward .currency-inline img{width:5.2cqw!important;height:5.2cqw!important}
.crossroid-result-reward .currency-inline b{font-size:3.2cqw!important}
.crossroid-next-note{margin:.5cqh 0 1cqh;font-size:2.7cqw}

@media(max-width:430px){
  .crossroid-head-row{display:block}
  #crossroidDailyAttempts{margin-top:.8cqh}
  .crossroid-player-select{grid-template-columns:1fr;gap:.45cqh}
  .crossroid-rank-card h3{font-size:4.8cqw}
  .crossroid-rank-images img{width:29cqw}
  .crossroid-reward-row{grid-template-columns:6.8em minmax(0,1fr);padding-left:.8cqw;padding-right:.8cqw}
  .crossroid-reward-row>div{gap:1.1cqw}
}
.crossroid-first-clear-result{margin:1.15cqh 0;padding:1.05cqh 2.5cqw;border:1px solid rgba(255,224,111,.62);border-radius:2.2cqw;background:rgba(255,218,76,.16);text-align:center}
.crossroid-first-clear-result>strong{display:block;margin-bottom:.6cqh;font-size:3.35cqw;color:#ffe181;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.crossroid-first-clear-result>div{display:flex;align-items:center;justify-content:center;gap:2cqw;flex-wrap:wrap}
.crossroid-first-clear-result .currency-inline{font-size:2.7cqw!important}
.crossroid-first-clear-result .currency-inline img{width:5.2cqw!important;height:5.2cqw!important}
.crossroid-first-clear-result .currency-inline b{font-size:3.2cqw!important}

/* 2026-09-25 v4.23: login bonus / growth / defense guard */
.login-bonus-toast>strong{font-size:clamp(23px,5.4cqw,32px)!important}
.login-bonus-today>b{font-size:clamp(16px,3.8cqw,23px)!important}
.login-bonus-today>span,.login-bonus-tomorrow>span{font-size:clamp(15px,3.55cqw,21px)!important}
.login-bonus-tomorrow small{font-size:clamp(13px,3.05cqw,18px)!important}
.login-bonus-toast .login-bonus-close{font-size:3.3cqw!important}
.character-growth-card .growth-controls button{width:auto!important;min-width:132px!important;padding:0 22px!important;white-space:nowrap!important}
.special-result.guard{border-color:#16927b;background:#eafbf7}
.special-result.guard strong{font-size:clamp(34px,7.2cqw,50px)}

/* v4.26: 指輪合成専用確認ウィンドウ */
.fusion-confirm-modal{position:absolute;z-index:710;inset:0;display:grid;place-items:center;padding:5cqw}
.fusion-confirm-backdrop{position:absolute;inset:0;background:rgba(9,3,24,.82);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.fusion-confirm-panel{position:relative;z-index:1;width:100%;padding:3.4cqh 4.5cqw 3cqh;border:1px solid rgba(255,238,170,.82);border-radius:4cqw;background:radial-gradient(circle at 50% 0%,rgba(135,91,255,.32),transparent 42%),linear-gradient(160deg,#211438 0%,#120d24 55%,#0b1020 100%);box-shadow:0 4cqh 10cqh rgba(0,0,0,.58),inset 0 0 0 1px rgba(255,255,255,.08);color:#fff;text-align:center;animation:purchaseModalIn .18s ease-out}
.fusion-confirm-kicker{margin:0;color:#ffd86b;font-size:2.3cqw;font-weight:1000;letter-spacing:.22em}.fusion-confirm-panel>h2{margin:.5cqh 0 1.8cqh;font-size:5.4cqw}
.fusion-materials{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2cqw}.fusion-material-card{min-width:0;padding:1.4cqh 1.5cqw;border:1px solid rgba(255,255,255,.2);border-radius:2.5cqw;background:rgba(255,255,255,.08)}
.fusion-material-card img{display:block;width:15cqw;height:15cqw;margin:0 auto .5cqh;object-fit:contain;filter:drop-shadow(0 .7cqh 1.2cqh rgba(0,0,0,.35))}.fusion-material-card strong{display:block;font-size:2.8cqw;line-height:1.25}.fusion-material-card small{display:block;margin-top:.3cqh;color:#d8cff5;font-size:2.3cqw}.fusion-plus{font-size:7cqw;color:#ffd86b;text-shadow:0 0 2cqw rgba(255,211,85,.42)}
.fusion-arrow{margin:.7cqh 0;color:#ffd86b;font-size:4cqw;line-height:1}.fusion-result-card{display:grid;grid-template-columns:18cqw 1fr;gap:3cqw;align-items:center;padding:1.4cqh 3cqw;border:1px solid rgba(255,216,107,.68);border-radius:2.7cqw;background:linear-gradient(135deg,rgba(100,58,185,.58),rgba(38,23,74,.72));text-align:left}.fusion-result-card img{width:18cqw;height:18cqw;object-fit:contain}.fusion-result-card small{display:block;color:#ffd86b;font-size:2.2cqw;font-weight:900}.fusion-result-card strong{display:block;margin:.2cqh 0 .5cqh;font-size:3.7cqw}.fusion-result-card p{margin:0;color:#eee8ff;font-size:2.35cqw;line-height:1.4}
.fusion-cost{display:flex;align-items:baseline;justify-content:center;gap:1.2cqw;margin:1.3cqh 0 .7cqh;padding:.9cqh 2cqw;border-radius:2cqw;background:rgba(0,0,0,.28)}.fusion-cost span{font-size:2.5cqw}.fusion-cost strong{font-size:5.5cqw;color:#7ee7ff}.fusion-cost b{font-size:2.6cqw}.fusion-warning{margin:.7cqh 0 1.2cqh;color:#ffddb0;font-size:2.3cqw;line-height:1.4}.fusion-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:2cqw}.fusion-confirm-actions button{min-height:6cqh;border-radius:2cqw;font-size:3cqw;font-weight:1000}.fusion-confirm-actions #fusionConfirmCancel{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);color:#fff}.fusion-confirm-actions #fusionConfirmExecute{border:1px solid #ffe28c;background:linear-gradient(#9b62ed,#6531b7);color:#fff;box-shadow:0 .8cqh 1.8cqh rgba(103,48,183,.38)}

/* 2026-09-26: ホーム日次報酬 / 塔5階ごとの選択報酬 */
.home-daily-rewards{
  position:absolute;
  z-index:6;
  left:50%;
  top:49%;
  transform:translate(-50%,-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5.5cqw;
}
.home-daily-rewards.hidden{display:none!important}
.home-daily-reward-button{
  position:relative;
  width:10.5cqw;
  height:10.5cqw;
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  cursor:pointer;
  filter:drop-shadow(0 4px 6px rgba(0,0,0,.38));
  -webkit-tap-highlight-color:transparent;
}
.home-daily-reward-button img{
  display:block;
  width:10.5cqw;
  height:10.5cqw;
  object-fit:contain;
  image-rendering:auto;
}
.home-daily-reward-button span{
  position:absolute;
  left:50%;
  bottom:-2.25cqh;
  transform:translateX(-50%);
  min-width:7.8cqw;
  padding:.28cqh 1cqw;
  border-radius:999px;
  background:rgba(17,25,42,.88);
  border:1px solid rgba(255,255,255,.72);
  color:#fff;
  font-size:2.55cqw;
  font-weight:1000;
  line-height:1.15;
  text-align:center;
  white-space:nowrap;
  text-shadow:0 1px 2px #000;
}
.home-daily-reward-button:active{transform:scale(.92)}
.home-daily-reward-button:disabled{opacity:.55;cursor:default}
.onboarding-locked .home-daily-rewards{display:none!important}

.reward-pickup-toast{
  position:absolute;
  z-index:1100;
  left:50%;
  top:42%;
  transform:translate(-50%,-50%) scale(.92);
  opacity:0;
  pointer-events:none;
  padding:1.05cqh 4.2cqw;
  border-radius:999px;
  background:rgba(16,25,43,.94);
  border:1px solid rgba(255,255,255,.72);
  box-shadow:0 8px 24px rgba(0,0,0,.36);
  color:#fff;
  font-size:3.15cqw;
  font-weight:1000;
  white-space:nowrap;
  transition:opacity .18s ease,transform .18s ease;
}
.reward-pickup-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}

.tower-special-reward{
  margin-top:2cqh;
  padding:2.2cqh 3.2cqw 2.5cqh;
  text-align:center;
  border:1px solid #dfca77;
  background:linear-gradient(180deg,#fff9df,#fff3bc);
  box-shadow:0 8px 22px rgba(83,62,13,.12);
}
.tower-special-reward-copy strong{
  display:block;
  color:#5f4811;
  font-size:4.2cqw;
  font-weight:1000;
}
.tower-special-reward-copy p{
  margin:.65cqh 0 1.7cqh;
  color:#746224;
  font-size:2.75cqw;
  font-weight:900;
}
.tower-special-reward-choices{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:2cqw;
}
.tower-special-reward-choices button{
  min-width:0;
  padding:1.2cqh 1cqw 1cqh;
  border:1px solid #d4c06e;
  border-radius:2.2cqw;
  background:rgba(255,255,255,.88);
  box-shadow:0 4px 10px rgba(77,59,12,.12);
  color:#44350e;
  cursor:pointer;
  display:grid;
  justify-items:center;
  gap:.35cqh;
}
.tower-special-reward-choices button:active{transform:scale(.96)}
.tower-special-reward-choices button:disabled{opacity:.55;cursor:default}
.tower-special-reward-choices img{
  width:11.5cqw;
  height:11.5cqw;
  max-width:58px;
  max-height:58px;
  object-fit:contain;
}
.tower-special-reward-choices b{font-size:4cqw;line-height:1;font-weight:1000}
.tower-special-reward-choices small{font-size:2.35cqw;font-weight:1000;color:#746224}
.tower-battle-special-reward{
  padding:1.15cqh 2cqw 1.35cqh;
  border-radius:1.8cqw;
  background:#fff8dc;
  border:1px solid #ead68a;
  color:#5a4813;
}
.tower-battle-special-reward .tower-special-reward-copy strong{font-size:3.2cqw}
.tower-battle-special-reward .tower-special-reward-copy p{margin:.35cqh 0 .75cqh;font-size:2.45cqw}
.tower-battle-special-reward .tower-special-reward-choices{gap:1.4cqw}
.tower-battle-special-reward .tower-special-reward-choices button{padding:.65cqh .7cqw}
.tower-battle-special-reward .tower-special-reward-choices img{width:7cqw;height:7cqw;max-width:38px;max-height:38px}
.tower-battle-special-reward .tower-special-reward-choices b{font-size:3cqw}
.tower-battle-special-reward .tower-special-reward-choices small{font-size:2cqw}
.tower-special-claimed{margin:.4cqh 0;font-size:2.8cqw;font-weight:1000;color:#5a4813;text-align:center}
.tower-victory-action-row button:disabled{opacity:.48;filter:grayscale(.35);cursor:default}
.currency-inline--exp img{image-rendering:auto}
.profile-exp-row>span{display:inline-flex;align-items:center;gap:1cqw;font-weight:900}
.profile-exp-icon{width:5.6cqw;height:5.6cqw;max-width:30px;max-height:30px;object-fit:contain;flex:none}

/* 2026-09-26: ホーム日次報酬アイコン更新 */
.home-daily-rewards{
  left:50%!important;
  top:57%!important;
  transform:translate(-50%,0)!important;
  flex-direction:column!important;
  gap:1.15cqh!important;
}
.home-daily-reward-button span{display:none!important}

/* 2026-09-26: 公式リーグ */
.league-tab{padding-bottom:13cqh!important}
.league-heading{margin-bottom:1.1cqh!important}
.league-title-image{width:min(88cqw,520px)!important;height:auto!important;object-fit:contain}
.league-setup{display:grid;gap:1.3cqh}.league-setup.hidden{display:none!important}
.league-status-panel{padding:1.3cqh 3cqw!important;background:linear-gradient(145deg,#fff8d6,#f4f8ff 54%,#eaf1ff)}
.league-status-main{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5cqw;margin-bottom:1.15cqh}
.league-status-main>div{display:grid;place-items:center;padding:.75cqh 1cqw;border-radius:1.7cqw;background:rgba(255,255,255,.78);border:1px solid rgba(55,83,132,.13);box-shadow:0 2px 7px rgba(31,50,78,.08)}
.league-status-main small{font-size:2.05cqw;color:#687487;font-weight:1000;letter-spacing:.08em}.league-status-main strong{font-size:4.4cqw;line-height:1.15;color:#1c315b}
.league-player-select{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2cqw;font-size:2.65cqw;font-weight:1000;color:#334052}.league-player-select select{min-width:0}
.league-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:3cqw;padding:0 .8cqw}.league-section-title h2{margin:0;font-size:4.1cqw}.league-section-title p{margin:0;color:#6b7580;font-size:2.3cqw;text-align:right}
.league-candidate-grid{display:grid;gap:1.05cqh}
.league-candidate-card{display:grid;grid-template-columns:minmax(0,1fr) 28cqw;grid-template-areas:"user char" "button char";gap:.55cqh 2.4cqw;align-items:center;padding:1.05cqh 2.7cqw;border:1px solid rgba(37,68,123,.16);border-radius:2.4cqw;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,245,255,.96));box-shadow:0 4px 12px rgba(22,42,70,.10)}
.league-candidate-user{grid-area:user;min-width:0;display:grid;grid-template-columns:auto 1fr auto;gap:1.3cqw;align-items:baseline}.league-candidate-user span{font-size:2.25cqw;color:#647284;font-weight:900}.league-candidate-user strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:3.15cqw}.league-candidate-user b{font-size:2.55cqw;color:#a06d00}
.league-candidate-character{grid-area:char;display:grid;grid-template-columns:12.5cqw 1fr;gap:1cqw;align-items:center}.league-candidate-character img{display:block;width:12.5cqw;height:12.5cqw;object-fit:contain;image-rendering:pixelated}.league-candidate-character small{display:block;color:#788491;font-size:1.9cqw;font-weight:900}.league-candidate-character strong{display:block;font-size:2.45cqw;line-height:1.2}
.league-battle-button{grid-area:button;min-height:4.5cqh!important;padding:.55cqh 2cqw!important;font-size:2.75cqw!important}.league-battle-button:disabled{opacity:.46!important}
.league-ranking-panel{padding:1.15cqh 2.6cqw!important}.league-ranking-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.75cqh}.league-ranking-head h2{margin:0;font-size:3.8cqw}.league-ranking-head span{font-size:2.25cqw;color:#75808d;font-weight:900}
.league-ranking{display:grid}.league-ranking-row{display:grid;grid-template-columns:8cqw minmax(0,1fr) 12cqw 19cqw;gap:1.5cqw;align-items:center;min-height:4.45cqh;border-top:1px solid #e6e9ed;font-size:2.55cqw}.league-ranking-row:first-child{border-top:0}.league-ranking-row>b{color:#6a7581}.league-ranking-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:900}.league-ranking-row>strong{text-align:right;color:#9a6800}.league-ranking-row>small{text-align:right;color:#78828d;font-size:2.05cqw}.league-ranking-row.is-me{margin:0 -1cqw;padding:0 1cqw;border-radius:1.2cqw;background:#fff1ae}
.league-result-card{margin:0 0 1cqh;padding:1.2cqh 3cqw;border-radius:2.2cqw;text-align:center;background:#eef2f7}.league-result-card.win{background:#fff4bd}.league-result-card.lose{background:#edf0f4}.league-result-card.draw{background:#e8f3fb}.league-result-card h3{margin:0 0 .3cqh;font-size:4.5cqw}.league-result-card p{margin:0 0 .8cqh;font-size:2.55cqw}.league-rating-change{display:flex;align-items:center;justify-content:center;gap:2cqw}.league-rating-change span,.league-rating-change strong{font-size:4.3cqw;font-weight:1000}.league-rating-change b{font-size:3.3cqw}.league-rating-change em{font-style:normal;font-size:3cqw;font-weight:1000}.league-rating-change em.plus{color:#16783b}.league-rating-change em.minus{color:#b42a2a}

/* 2026-09-26: フリーバトル / 公式リーグの参戦偉人を小アイコンで選択 */
.battle-character-picker-block{display:flex;align-items:center;gap:2cqw;margin-top:1.2cqh;min-width:0}
.battle-character-picker-label{flex:0 0 auto;font-size:2.55cqw;font-weight:1000;color:#253342;white-space:nowrap}
.battle-character-picker{display:flex;align-items:center;gap:1.2cqw;flex-wrap:wrap;min-width:0}
.battle-character-pick{appearance:none;width:10cqw;height:10cqw;padding:0;border:.55cqw solid transparent;border-radius:2cqw;background:#e8edf3;overflow:hidden;box-shadow:0 .35cqw .8cqw rgba(0,0,0,.15);cursor:pointer}
.battle-character-pick img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.battle-character-pick.selected{border-color:#ffb000;background:#fff4bd;box-shadow:0 0 0 .35cqw #fff inset,0 .45cqw 1cqw rgba(0,0,0,.2)}
.battle-character-pick:disabled{cursor:default;opacity:.68}
.battle-character-pick.selected:disabled{opacity:1}
.league-player-picker-block{margin-top:.8cqh}

/* 公式リーグ対戦結果は背景色に関係なく黒文字で統一 */
.league-result-card,.league-result-card *{color:#111!important}
.league-exp-reward{display:flex;justify-content:center;margin-top:.85cqh}
.battle-end-reason{margin:.8cqh 0 0!important;font-weight:900;line-height:1.5}

/* プロフィール：月間公式リーグの確定順位 */
.profile-league-history-card h2{margin-top:0}
.profile-league-history{display:grid;gap:.75cqh}
.profile-league-history-row{display:flex;align-items:center;justify-content:space-between;gap:2cqw;padding:.9cqh 2.5cqw;border-radius:1.7cqw;background:#f3f5f8}
.profile-league-history-row strong{font-size:2.8cqw;color:#1e2731}
.profile-league-history-row small{font-size:2.2cqw;color:#66717e;text-align:right}

@media(max-width:520px){
  .battle-character-picker-block{align-items:flex-start;flex-direction:column;gap:.65cqh}
  .battle-character-pick{width:12cqw;height:12cqw}
}

/* 公式リーグ v4 */
.league-status-main>div{position:relative}.league-status-main em{font-style:normal;font-size:1.85cqw;color:#6d7784;font-weight:900;margin-top:.2cqh}.league-status-main em.plus{color:#16783b}.league-status-main em.minus{color:#b42a2a}
.league-participation-rewards{display:grid;gap:.65cqh;padding:.8cqh 1.6cqw;border-radius:1.5cqw;background:rgba(255,255,255,.68)}
.league-per-battle-reward{display:flex;align-items:center;gap:1.5cqw;flex-wrap:wrap;font-size:2.15cqw}.league-per-battle-reward>b{font-size:2.4cqw}
.league-milestone-list{display:flex;gap:1cqw;flex-wrap:wrap}.league-milestone-list span{padding:.35cqh 1.2cqw;border-radius:99px;background:rgba(60,70,85,.08);font-size:1.9cqw;font-weight:900;color:#5d6874}.league-milestone-list span.reached{background:#fff0a7;color:#6d5200}
.league-attack-panel{padding:1.1cqh 2.7cqw!important}
.league-section-title{align-items:center;padding:.85cqh 2.4cqw!important;border-radius:1.8cqw;background:rgba(255,255,255,.76);box-shadow:0 2px 8px rgba(24,40,66,.08);backdrop-filter:blur(2px)}
.league-candidate-card{grid-template-columns:minmax(0,1fr) 28cqw;grid-template-areas:"user char" "preview char" "button char"}
.league-rating-preview{grid-area:preview;font-size:2.15cqw;color:#5e6975;font-weight:900}.league-rating-preview b{color:#1f2c3c}
.league-ranking-row{grid-template-columns:8cqw minmax(0,1fr) 12cqw 12cqw}.league-ranking-name{min-width:0;display:flex;align-items:center;gap:1.2cqw;font-weight:900}.league-ranking-name span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.league-ranking-character{width:6.2cqw;height:6.2cqw;object-fit:contain;image-rendering:pixelated;flex:0 0 auto}.league-ranking-character--empty{display:block;border-radius:1cqw;background:#eef1f5}
.league-ranking-gap{text-align:center;padding:.45cqh 0;color:#8a939d;font-weight:1000;letter-spacing:.2em;border-top:1px solid #e6e9ed}
.league-defense-panel{display:grid;gap:1.05cqh;padding:1.25cqh 2.7cqw!important}.league-defense-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:2cqw}.league-defense-heading h2{margin:0;font-size:3.8cqw}.league-defense-heading p{margin:.25cqh 0 0;font-size:2.15cqw;color:#6c7680}.league-defense-heading>span{padding:.35cqh 1.3cqw;border-radius:99px;background:#eef1f5;font-size:2cqw;font-weight:1000;color:#596573}
.league-defense-equip-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8cqh 2cqw}.league-defense-equip-grid label{display:grid;gap:.35cqh;font-size:2.1cqw;font-weight:1000}.league-defense-equip-grid label:last-child{grid-column:1/-1}.league-defense-equip-grid select{min-width:0;width:100%}
.league-participation-result,.league-milestone-result{display:flex;align-items:center;justify-content:center;gap:1.5cqw;flex-wrap:wrap;margin-top:.75cqh;padding:.65cqh 1.5cqw;border-radius:1.4cqw;background:rgba(255,255,255,.72)}.league-participation-result strong,.league-milestone-result strong{font-size:2.2cqw}


/* 公式リーグ v5: 5人横並び・報酬下部 */
.battle-character-picker.five-across,.league-player-picker-block .battle-character-picker,.league-defense-panel .battle-character-picker,.crossroid-battle-head .battle-character-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2cqw;width:100%}
.league-player-picker-block,.league-defense-panel .battle-character-picker-block,.crossroid-battle-head .battle-character-picker-block{align-items:flex-start;flex-direction:column}
.league-player-picker-block .battle-character-pick,.league-defense-panel .battle-character-pick,.crossroid-battle-head .battle-character-pick,.five-across .battle-character-pick{width:100%;height:auto;aspect-ratio:1/1;border-radius:2cqw}
.league-reward-panel{margin-top:1.2cqh}.league-reward-panel h2{margin:0 0 .7cqh;font-size:3.8cqw}.league-zorome-note{display:grid;gap:.25cqh;padding-top:.7cqh;border-top:1px solid rgba(80,90,105,.16)}.league-zorome-note b{font-size:2.35cqw}.league-zorome-note span{font-size:2cqw;line-height:1.5;color:#596573}
/* 魔物大量発生 */
.home-invasion-icon img{image-rendering:pixelated}.invasion-title-image{max-width:88cqw}.invasion-setup{display:grid;gap:1.1cqh}.invasion-status>div{display:flex;justify-content:space-between;gap:2cqw;font-size:2.35cqw}.invasion-status p{margin:.65cqh 0 0;font-size:2.1cqw;color:#5f6974}.invasion-difficulty-grid{display:grid;gap:1cqh}.invasion-monster-card{display:grid;grid-template-columns:18cqw 1fr auto;gap:2cqw;align-items:center}.invasion-monster-card img{width:18cqw;height:18cqw;object-fit:contain;image-rendering:pixelated}.invasion-monster-card h2{margin:0 0 .35cqh;font-size:3.2cqw}.invasion-monster-card p,.invasion-monster-card small{margin:0;font-size:2.1cqw}.invasion-run-panel{text-align:center}.invasion-run-panel h2{margin-top:0}.invasion-run-stats{display:flex;justify-content:center;gap:4cqw;margin:.8cqh 0;font-size:2.8cqw}.invasion-run-panel .danger{margin-top:1cqh}

/* 2026-09-26 魔物大量発生 v2: 通常戦闘表示 / 成長六角形 / 最終報酬ウィンドウ */
.battle-stage--invasion .special{display:none!important}
.battle-stage--invasion .battle-result-actions{display:flex!important;justify-content:center;padding:.8cqh 0 1.2cqh;background:transparent}
.battle-stage--invasion .invasion-stop-battle{min-width:28cqw;font-size:2.5cqw}
.battle-stage--invasion #enemyStats .stat-hex{transform-origin:50% 50%}
.invasion-hex-grow{animation:invasionHexGrow .55s ease-out}
@keyframes invasionHexGrow{0%{transform:scale(.92);opacity:.58}70%{transform:scale(1.035);opacity:1}100%{transform:scale(1);opacity:1}}
.invasion-attack-pulse{animation:invasionAttackPulse .24s ease-out}
@keyframes invasionAttackPulse{0%{transform:translateX(0) scale(1)}45%{transform:translateX(1.2cqw) scale(1.045)}100%{transform:translateX(0) scale(1)}}
.fighter.enemy .invasion-attack-pulse{animation-name:invasionAttackPulseEnemy}
@keyframes invasionAttackPulseEnemy{0%{transform:translateX(0) scale(1)}45%{transform:translateX(-1.2cqw) scale(1.045)}100%{transform:translateX(0) scale(1)}}
.invasion-reward-modal{position:fixed;inset:0;z-index:180;display:grid;place-items:center;padding:5cqw}
.invasion-reward-modal.hidden{display:none}
.invasion-reward-backdrop{position:absolute;inset:0;background:rgba(10,7,18,.72);backdrop-filter:blur(2px)}
.invasion-reward-window{position:relative;width:min(82cqw,420px);border:3px solid #7b286f;border-radius:4cqw;padding:2.4cqh 5cqw 2.6cqh;text-align:center;background:linear-gradient(180deg,#fff8ff 0%,#f6dcff 55%,#e9c9ff 100%);box-shadow:0 2.2cqh 5cqh rgba(0,0,0,.36),inset 0 0 0 2px rgba(255,255,255,.9)}
.invasion-reward-window:before{content:"";position:absolute;inset:1.1cqw;border:1px solid rgba(123,40,111,.28);border-radius:3cqw;pointer-events:none}
.invasion-reward-kicker{margin:0 0 .5cqh;font-size:1.8cqw;letter-spacing:.14em;font-weight:900;color:#8a287f}
.invasion-reward-window h2{position:relative;margin:.2cqh 0 1.2cqh;font-size:4.2cqw;color:#37123d;text-shadow:0 1px #fff}
.invasion-reward-defeat{display:flex;align-items:baseline;justify-content:center;gap:1.2cqw;margin:.4cqh 0 1.6cqh;color:#6d1764}
.invasion-reward-defeat strong{font-size:7cqw;line-height:1}.invasion-reward-defeat span{font-size:2.5cqw;font-weight:900}
.invasion-reward-items{display:grid;gap:1cqh;margin-bottom:1.8cqh}
.invasion-reward-items>div{display:grid;grid-template-columns:9cqw 1fr auto;align-items:center;gap:2cqw;padding:.8cqh 2.5cqw;border-radius:2.2cqw;background:rgba(255,255,255,.7);border:1px solid rgba(120,54,130,.18);text-align:left}
.invasion-reward-items img{width:9cqw;height:9cqw;object-fit:contain;image-rendering:pixelated}.invasion-reward-items span{font-size:2.5cqw;font-weight:800;color:#43214a}.invasion-reward-items strong{font-size:4.4cqw;color:#7a176f}
.invasion-reward-window .primary{position:relative;min-width:36cqw;font-size:2.8cqw}

/* 2026-09-26 共通偉人プレビュー / 魔物大量発生表示 */
.character-preview-modal{position:fixed;inset:0;z-index:900;display:grid;place-items:center;padding:5cqw}.character-preview-modal.hidden{display:none}.character-preview-backdrop{position:absolute;inset:0;background:rgba(7,12,22,.74);backdrop-filter:blur(3px)}.character-preview-window{position:relative;z-index:1;width:min(86cqw,430px);padding:2.5cqh 4cqw;border-radius:4cqw;background:linear-gradient(180deg,#fffdf3,#edf5ff);border:2px solid #d0a84b;box-shadow:0 2.5cqh 7cqh rgba(0,0,0,.45);color:#18202a;text-align:center}.character-preview-window h2{margin:0 0 1cqh;font-size:4.4cqw}.character-preview-main{display:grid;grid-template-columns:28cqw 1fr;gap:2cqw;align-items:center}.character-preview-main>img{width:28cqw;height:28cqw;object-fit:contain;image-rendering:pixelated}.character-preview-note{font-size:2.2cqw;color:#596575}.character-preview-window .primary{min-width:35cqw}.invasion-battle-count{margin:.5cqh auto .6cqh;padding:.55cqh 4cqw;width:max-content;border-radius:999px;background:linear-gradient(180deg,#fff5c2,#ffd55a);border:2px solid #ad6d00;color:#5d3300;font-size:3.5cqw;font-weight:1000;box-shadow:0 .45cqh 1cqh rgba(0,0,0,.2)}.battle-stage--invasion .battlelog{background:rgba(255,255,255,.88)!important;color:#17202a!important}.battle-stage--invasion .battlelog p{color:#17202a}.battle-stage--invasion .battlelog .log-player{color:#155a9c}.battle-stage--invasion .battlelog .log-enemy{color:#a22d2d}.battle-stage--invasion .battlelog .log-system{color:#4f5965}.battle-stage--invasion .battlelog .log-player-special{color:#7e2aa5}
.ijin-ui-dialog{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:clamp(16px,4vw,44px)}.ijin-ui-dialog.hidden{display:none}.ijin-ui-dialog-backdrop{position:absolute;inset:0;background:rgba(5,10,20,.72);backdrop-filter:blur(3px)}.ijin-ui-dialog-panel{position:relative;z-index:1;width:min(88vw,420px);box-sizing:border-box;padding:clamp(20px,3vh,30px) clamp(18px,4vw,32px);border-radius:clamp(16px,3vw,24px);background:linear-gradient(180deg,#fffdf4,#eaf3ff);border:2px solid #d0a84b;box-shadow:0 18px 48px rgba(0,0,0,.45);text-align:center;color:#17202a}.ijin-ui-dialog-panel h2{margin:0 0 10px;font-size:clamp(20px,2vw,26px);line-height:1.3}.ijin-ui-dialog-panel p{white-space:pre-wrap;margin:10px 0;font-size:clamp(14px,1.15vw,18px);line-height:1.65}.ijin-ui-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.ijin-ui-dialog-actions button{min-height:46px;font-size:clamp(14px,1vw,17px);font-weight:1000}


/* 2026-09-27: 公式リーグ報酬説明 / 法務ページ */
.league-reward-panel .league-participation-rewards{gap:.9cqh;padding:1.05cqh 2cqw}
.league-reward-panel .league-per-battle-reward{font-size:2.75cqw;line-height:1.5}.league-reward-panel .league-per-battle-reward>b{font-size:3cqw}
.league-reward-panel .league-milestone-list span{font-size:2.4cqw;line-height:1.45;padding:.5cqh 1.45cqw}
.league-reward-panel .league-zorome-note{gap:.4cqh}.league-reward-panel .league-zorome-note b{font-size:2.9cqw}.league-reward-panel .league-zorome-note span{font-size:2.5cqw;line-height:1.65}
.settings-legal-links{display:grid;gap:.85cqh}.settings-legal-link{display:flex;align-items:center;justify-content:space-between;gap:2cqw;padding:1.05cqh 2.6cqw;border-radius:1.8cqw;background:#f4f6f9;border:1px solid #dfe4ea;color:#263342;text-decoration:none;font-size:2.6cqw;font-weight:1000}.settings-legal-link:after{content:'›';font-size:4.2cqw;line-height:1;color:#778391}
.settings-legal-note{margin:.8cqh 0 0;font-size:2.15cqw;line-height:1.6;color:#66717d}
.legal-body{background:#f4f6f9;color:#1f2730}.legal-shell{width:min(94vw,760px);margin:0 auto;padding:3vh 4vw 7vh}.legal-header{margin-bottom:2.2vh}.legal-header h1{margin:0;font-size:clamp(26px,6vw,42px)}.legal-header p{margin:.6vh 0 0;color:#66717d;font-size:14px}.legal-card{margin:0 0 16px;padding:20px;border:1px solid #dde3ea;border-radius:18px;background:#fff;box-shadow:0 5px 16px rgba(25,42,65,.06)}.legal-card h2{margin:0 0 10px;font-size:20px}.legal-card h3{margin:18px 0 8px;font-size:17px}.legal-card p,.legal-card li{font-size:14px;line-height:1.85}.legal-card ul{padding-left:1.5em}.legal-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.legal-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 16px;border-radius:14px;background:#fff;border:1px solid #d9dfe7;color:#273342;text-decoration:none;font-weight:900;font-size:14px}.legal-warning{padding:12px 14px;border-radius:12px;background:#fff3c9;color:#5f4b00;font-size:13px;line-height:1.7}


/* nickname moderation / contact / settings deletion */
.nickname-report-wrap{position:relative;min-width:0;display:flex;align-items:center;gap:.5cqw}.league-candidate-user .nickname-report-wrap strong,.league-ranking-name .nickname-report-wrap span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nickname-menu-button{border:0!important;background:transparent!important;box-shadow:none!important;color:#45515e!important;padding:0 .6cqw!important;min-width:0!important;width:auto!important;height:auto!important;font-size:4.1cqw!important;line-height:1!important;font-weight:900!important}.nickname-report-popover{display:none;position:absolute;z-index:60;top:100%;right:0;min-width:34cqw;padding:.6cqw;border-radius:1.8cqw;background:#fff;border:1px solid #c5cbd3;box-shadow:0 1cqh 3cqh rgba(0,0,0,.25)}.nickname-report-wrap.open .nickname-report-popover{display:block}.nickname-report-popover button{width:100%;border:0;background:transparent;color:#9b2020;font-size:2.7cqw;font-weight:900;padding:1.1cqh 2cqw;text-align:left;white-space:nowrap}.league-ranking-name .nickname-report-wrap{flex:1}.league-candidate-user .nickname-report-wrap{min-width:0}
.ijin-ui-dialog-input{display:none;width:100%;margin:.4cqh 0 1.5cqh;padding:1.2cqh 3cqw;border:1px solid #aeb9c7;border-radius:2cqw;background:#fff;color:#17202a;font-size:3.4cqw;box-sizing:border-box}
.settings-danger-zone{border:2px solid #d47b7b!important;background:rgba(255,246,246,.94)!important}.settings-danger-zone .danger-button{width:100%;min-height:5.8cqh;border:0;border-radius:2cqw;background:#b92c2c;color:#fff;font-size:3.1cqw;font-weight:900}.settings-danger-zone small{display:block;margin-top:1cqh;color:#6d5353;font-size:2.4cqw;line-height:1.5}
.contact-form{display:grid;gap:1.5cqh}.contact-form label{display:grid;gap:.6cqh;font-weight:900}.contact-form input,.contact-form select,.contact-form textarea{width:100%;box-sizing:border-box;padding:1.1cqh 2.5cqw;border:1px solid #b8c3cf;border-radius:1.8cqw;background:#fff;color:#17202a;font:inherit}.contact-form textarea{resize:vertical;line-height:1.55}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-player-id{padding:1.2cqh 2.5cqw;border-radius:2cqw;background:#f1f5f9;display:grid;gap:.25cqh}.contact-player-id span,.contact-player-id small{font-size:2.5cqw;color:#667281}.contact-player-id b{font-size:3.1cqw}.contact-submit{border:0;cursor:pointer;text-align:center}

/* 2026-09-27 help */
.help-main .help-intro h1{margin:.2em 0 .35em;font-size:clamp(24px,5.8cqw,34px)}
.help-stat-list{display:grid;gap:1.4cqh}
.help-stat-list article{padding:1.2cqh 3.2cqw;border-radius:2.2cqw;background:rgba(255,255,255,.72);border:1px solid rgba(70,90,110,.16)}
.help-stat-list h3{margin:0 0 .35em;font-size:clamp(18px,4.1cqw,24px)}
.help-stat-list p,.help-note-list p{margin:0;line-height:1.75;font-size:clamp(14px,3.2cqw,18px)}
.help-note-list{display:grid;gap:1.5cqh}


/* 2026-09-27: opening story scrolls independently; start button is always visible */
#onboardingStory.onboarding-opening-card{
  width:100%!important;
  height:92%!important;
  max-height:92%!important;
  padding:0!important;
  overflow:hidden!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:18px!important;
}
.onboarding-opening-shell{
  width:100%;
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  overflow:hidden;
  border-radius:18px;
  background:linear-gradient(90deg,#d5aa67,#f2d49b 7%,#f8dfab 50%,#f2d49b 93%,#d5aa67);
  border:5px solid #9c6638;
  box-shadow:inset 0 0 24px #7f4f2b66,0 16px 42px #0009;
}
#onboardingStory .onboarding-scroll--opening{
  min-height:0!important;
  align-self:stretch;
  padding:1.2cqh 7cqw 2.2cqh!important;
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.onboarding-opening-footer{
  position:relative;
  z-index:3;
  padding:1.2cqh 4cqw calc(1.4cqh + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(248,223,171,.18),#efd092 30%,#dcae68 100%);
  border-top:1px solid rgba(112,67,31,.28);
  box-shadow:0 -5px 14px rgba(84,48,22,.16);
  text-align:center;
}
.onboarding-start-form{margin:0!important;display:flex;justify-content:center}
.onboarding-opening-footer .onboarding-start-button{
  margin:0!important;width:64cqw!important;max-width:300px!important;display:block!important;flex:none!important;
}
.onboarding-start-error{margin:0 0 .7cqh!important;color:#8b1b16!important;font-weight:900;font-size:2.7cqw!important;line-height:1.35!important}


/* 2026-09-27: character preview stat split / mobile enemy-special defense tuning */
.character-preview-stat-legend{display:grid;gap:.28cqh;margin:.35cqh auto 0;text-align:center;font-size:2.15cqw;font-weight:1000;line-height:1.25}
.character-preview-stat-legend .is-base{color:#326fca}
.character-preview-stat-legend .is-powered{color:#d93636}

@media(max-width:700px){
  #defensePanel{
    top:auto!important;
    bottom:calc(env(safe-area-inset-bottom,0px) + 12.2cqh)!important;
    transform:translateX(-50%)!important;
    width:min(92vw,390px)!important;
    padding:12px 12px 14px!important;
  }
  #defensePanel .defense-roulette{
    width:min(48vw,205px)!important;
    margin:8px auto 5px!important;
  }
  #defensePanel .roulette-legend{
    gap:7px!important;
    margin:2px 0 7px!important;
    font-size:clamp(11px,2.7vw,14px)!important;
    line-height:1.15!important;
    white-space:nowrap;
  }
  #defensePanel .roulette-legend span{gap:3px!important}
  #defensePanel .roulette-legend span:before{width:8px!important;height:8px!important;border-radius:2px!important}
  #defenseTitle{font-size:clamp(16px,4vw,21px)!important;margin:0 0 5px!important}
  #defenseButton{min-height:46px!important;margin-top:6px!important;padding:9px 18px!important;font-size:20px!important}
  .special-result.dodge strong,.special-result.guard strong{font-size:clamp(25px,7vw,34px)!important}
}

/* 2026-09-27: defeated monster 100-battle challenge */
.monster100-entry-button{display:block;margin:2cqh auto 2.4cqh;width:min(94%,470px);min-height:6.4cqh;padding:1.55cqh 4cqw;border:2px solid rgba(92,52,10,.62);border-radius:3.2cqw;text-align:center;text-decoration:none;font-size:clamp(20px,5cqw,30px);font-weight:1000;letter-spacing:.03em;color:#3b2309!important;background:linear-gradient(180deg,#fff2a8 0%,#ffd557 48%,#e6a82b 100%);box-shadow:0 .75cqh 0 #9a671d,0 1.15cqh 1.5cqh rgba(45,28,8,.28),inset 0 .18cqh 0 rgba(255,255,255,.8);text-shadow:0 1px 0 rgba(255,255,255,.8);transform:translateY(0);transition:transform .08s ease,box-shadow .08s ease;box-sizing:border-box}.monster100-entry-button:active{transform:translateY(.45cqh);box-shadow:0 .3cqh 0 #9a671d,0 .55cqh .9cqh rgba(45,28,8,.2),inset 0 .12cqh 0 rgba(255,255,255,.65)}
.monster100-setup{display:grid;gap:1.1cqh}.monster100-head-panel{display:grid;gap:1.1cqh}.monster100-monster-summary{display:grid;grid-template-columns:20cqw 1fr;gap:2.5cqw;align-items:center}.monster100-monster-summary img{width:20cqw;height:20cqw;object-fit:contain;image-rendering:pixelated}.monster100-monster-summary small{font-size:2.15cqw;font-weight:1000;color:#697887}.monster100-monster-summary h1{margin:.25cqh 0 .45cqh;font-size:4.2cqw}.monster100-monster-summary p{margin:0;font-size:2.25cqw;line-height:1.55;color:#4d5b69}.monster100-progress-row{display:flex;justify-content:space-between;align-items:center;padding:.85cqh 3cqw;border-radius:2.2cqw;background:rgba(255,255,255,.72)}.monster100-progress-row strong{font-size:4cqw}.monster100-progress-row span{font-size:2.5cqw;font-weight:900}.monster100-action-panel{display:grid;gap:1cqh;text-align:center}.monster100-action-panel p{margin:0;font-size:2.35cqw;line-height:1.55}.monster100-active,.monster100-complete{display:grid;gap:.4cqh}.monster100-active strong,.monster100-complete strong{font-size:3.4cqw}.monster100-active span{font-size:2.4cqw}.monster100-reward-copy{margin:.25cqh 0 1.3cqh;text-align:center;font-weight:800}.monster100-reward-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5cqw}.monster100-reward-choices button{border:0;border-radius:2.4cqw;padding:1.2cqh 1cqw;background:rgba(255,255,255,.92);box-shadow:0 3px 10px rgba(0,0,0,.12);display:grid;place-items:center;gap:.4cqh;font-weight:900}.monster100-reward-choices img{width:10cqw;height:10cqw;object-fit:contain}.monster100-reward-choices span{font-size:2.15cqw}.monster100-reward-choices strong{font-size:4cqw}.battle-stage--monster100 #invasionBattleCount{display:block}
.crossroid-series-result--continue{display:grid;gap:.9cqh}.crossroid-continue-rewards{display:grid;gap:.55cqh}

@media(max-width:700px){
  #defensePanel .roulette-legend .legend-half{font-size:clamp(9px,2.25vw,12px)!important}
}

/* 2026-09-27: defeated monster 100-battle completion star */
.defeated-monster-card{position:relative}
.defeated-monster-100-star{position:absolute;top:.7cqw;right:.8cqw;z-index:2;display:grid;place-items:center;width:5.2cqw;height:5.2cqw;min-width:20px;min-height:20px;border-radius:50%;font-size:3.4cqw;line-height:1;color:#ffd447;text-shadow:0 1px 0 #8b5a00,0 0 4px rgba(255,255,255,.9);filter:drop-shadow(0 1px 1px rgba(0,0,0,.28));pointer-events:none}

/* 2026-09-28: explicit soul-friend join / responsive shared dialog */
.person-soulfriend-button{width:100%;margin:1.1cqh 0 0;padding:1.05cqh 2cqw;border:0;border-radius:2.2cqw;background:linear-gradient(180deg,#ffe894,#e7ab28);box-shadow:0 .45cqh 0 #9d6810,0 .8cqh 1.4cqh rgba(0,0,0,.18);color:#4f3100;font-weight:1000;text-align:center}.person-soulfriend-button span{display:block;font-size:clamp(16px,3.5cqw,22px);line-height:1.2}.person-soulfriend-button small{display:block;margin-top:.35cqh;font-size:clamp(12px,2.35cqw,15px);font-weight:900}.person-soulfriend-button.active{background:linear-gradient(180deg,#fff3c7,#d7b75d);color:#5d4510}.person-soulfriend-button:active{transform:translateY(.35cqh);box-shadow:0 .15cqh 0 #9d6810,0 .35cqh .8cqh rgba(0,0,0,.16)}
@media(max-width:520px){.ijin-ui-dialog-panel{width:min(90vw,390px);padding:20px 18px}.ijin-ui-dialog-panel h2{font-size:21px}.ijin-ui-dialog-panel p{font-size:15px}.ijin-ui-dialog-actions button{font-size:15px}}

/* 2026-09-28 育成画面の魂友操作 */
.growth-detail-media{display:flex;flex-direction:column;align-items:center;min-width:0}
.growth-detail-media .growth-detail-image{width:100%}
.growth-soulfriend-button{width:min(100%,240px);margin-top:10px}
@media(max-width:700px){.growth-detail-media{width:min(74vw,300px);margin:0 auto}.growth-detail-media .growth-detail-image{width:100%;margin:0}}


/* 初回操作チュートリアル：step3以降は実際の画面上で対象操作だけを強く案内する */
.tutorial-coach{
  position:absolute;
  z-index:145;
  left:4cqw;
  right:4cqw;
  bottom:12.2cqh;
  padding:3.2cqw 3.5cqw;
  border:2px solid #f1bd34;
  border-radius:3cqw;
  background:rgba(18,25,36,.96);
  color:#fff;
  box-shadow:0 1.4cqh 4cqh rgba(0,0,0,.36);
  pointer-events:none;
  text-align:left;
}
.tutorial-coach small{
  display:block;
  margin-bottom:.5cqh;
  color:#ffd866;
  font-size:2.6cqw;
  font-weight:900;
  letter-spacing:.08em;
}
.tutorial-coach strong{
  display:block;
  font-size:4.2cqw;
  line-height:1.2;
}
.tutorial-coach p{
  margin:1cqh 0 0;
  font-size:3.1cqw;
  line-height:1.55;
  font-weight:700;
}
.tutorial-target{
  position:relative!important;
  outline:3px solid #ffd34f!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 4px rgba(255,211,79,.2),0 0 18px 7px rgba(255,197,40,.62)!important;
  animation:tutorialTargetPulse .9s ease-in-out infinite alternate;
}
@keyframes tutorialTargetPulse{
  from{filter:brightness(1);transform:scale(1)}
  to{filter:brightness(1.12);transform:scale(1.035)}
}
@media (prefers-reduced-motion:reduce){
  .tutorial-target{animation:none}
}


/* 2026-09-29: opening logo fixed / present rewards vertical / mobile defense half text */
.onboarding-opening-logo{
  flex:0 0 auto;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:4.2cqh 7cqw 1.2cqh;
  background:transparent;
}
.onboarding-opening-logo .onboarding-story-logo{
  display:block;
  margin:0;
  flex:none;
}
#onboardingStory .onboarding-scroll--opening{
  padding:1.2cqh 7cqw 2.2cqh!important;
}
#onboardingStory .onboarding-story-copy{
  margin-top:0!important;
}
.present-bottom-line{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:2cqw!important;
  width:100%;
}
.present-reward-stack{
  min-width:0;
  display:grid;
  grid-template-columns:1fr;
  gap:.55cqh;
  align-items:center;
}
.present-reward-stack .present-reward-inline{
  width:max-content;
  max-width:100%;
}
.present-claim-button{
  margin-left:0!important;
  min-height:5cqh!important;
  padding:.7cqh 2.4cqw!important;
  font-size:clamp(15px,3.35cqw,19px)!important;
}
.present-claimed-status{margin-left:0!important}
@media(max-width:700px){
  #defensePanel .roulette-legend .legend-half{
    font-size:clamp(8px,2vw,10px)!important;
  }
  .special-result.half strong{
    font-size:clamp(18px,5vw,25px)!important;
    line-height:1.12!important;
    letter-spacing:0!important;
  }
}

/* 2026-09-29 偉人一覧：性別絞り込み / 生まれ順・能力値ソート */
.people-list-controls{margin-bottom:12px;padding:10px 12px;display:grid;gap:8px}
.people-filter-group,.people-sort-group{display:grid;grid-template-columns:58px minmax(0,1fr);gap:8px;align-items:start}
.people-control-label{font-size:12px;font-weight:800;color:#66727d;padding-top:7px}
.people-control-buttons{display:flex;flex-wrap:wrap;gap:6px}
.people-control-buttons button{appearance:none;border:1px solid #d8dee5;background:#fff;color:#4e5b67;border-radius:999px;min-height:30px;padding:5px 11px;font-size:12px;font-weight:800;line-height:1.2;cursor:pointer}
.people-control-buttons button.active{background:#17202a;border-color:#17202a;color:#fff}
.people-sort-buttons button.active{min-width:58px}
.people-list-count{font-size:11px;color:#7b8792;text-align:right;line-height:1}
@media(max-width:700px){
  .people-list-controls{padding:9px 10px;gap:7px}
  .people-filter-group,.people-sort-group{grid-template-columns:46px minmax(0,1fr);gap:6px}
  .people-control-label{font-size:11px;padding-top:6px}
  .people-control-buttons{gap:5px}
  .people-control-buttons button{min-height:28px;padding:4px 9px;font-size:11px}
}


/* 2026-09-30: 偉人一覧の画像拡大・時代併記 / 神の神殿 */
.person-card{grid-template-columns:135px minmax(0,1fr)}
.person-thumb{width:135px}
.person-name-era{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap;margin-bottom:4px}
.person-name-era h2{margin:0!important;padding-right:0!important}
.person-name-era span{font-size:12px;color:#65717d;white-space:nowrap}
.gods-title-image{max-width:min(100%,620px);height:auto;display:block;margin:0 auto}
.gods-setup{display:grid;gap:14px}
.gods-player-panel{padding:12px 14px}
.gods-intro{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gods-intro strong{font-size:20px}
.gods-intro p{margin:0;color:#65717d;flex:1 1 280px}
.gods-intro span{font-size:12px;font-weight:800;background:#edf3f8;border-radius:999px;padding:6px 10px}
.gods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.god-card{position:relative;background:#fff;border:1px solid #dde3e8;border-radius:14px;padding:12px;display:grid;gap:9px;box-shadow:0 4px 14px rgba(26,38,51,.04)}
.god-card.is-defeated{border-color:#d4ad35;box-shadow:0 0 0 2px rgba(212,173,53,.12)}
.god-defeated-badge{position:absolute;top:9px;right:9px;z-index:2;background:#fff6cf;color:#8a6500;border:1px solid #e7ca66;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}
.god-card-head{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center}
.god-card-image{width:92px;aspect-ratio:1;object-fit:contain;image-rendering:pixelated;background:#f3f5f7;border-radius:12px}
.god-card-title{min-width:0}.god-card-title h2{font-size:19px;margin:0 0 4px}.god-card-title p{font-size:12px;color:#65717d;margin:0 0 3px}.god-card-title small{display:block;color:#7a858f}
.god-card .stat-hex{margin-inline:auto}
.god-special-list{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.god-special-list li{background:#f6f8fa;border-radius:8px;padding:6px 8px;font-size:11px;line-height:1.45}
.god-special-list b{display:block;font-size:12px;color:#27313a}
.god-card .god-challenge-button{width:100%;font-size:15px;font-weight:900}
.god-card-intro{margin:0;color:#65717d;font-size:11px;line-height:1.55}
.god-battle-result{display:grid;gap:8px;text-align:center}.god-battle-result h3{font-size:23px;margin:0}.god-battle-result p{margin:0;color:#65717d}
.demon-king-last-message{margin:12px 0;padding:13px 14px;border:1px solid #d4ad35;background:#fff9df;border-radius:10px;font-weight:800;line-height:1.75;text-align:left}
@media(max-width:520px){
  .person-card{grid-template-columns:135px minmax(0,1fr)}
  .person-thumb{width:135px}
  .people-grid{grid-template-columns:1fr}
  .god-card-head{grid-template-columns:84px minmax(0,1fr)}
  .god-card-image{width:84px}
  .gods-grid{grid-template-columns:1fr}
}

/* 2026-09-30 覚醒 */
.stat-hex--awakened .stat-hex-value{fill:rgba(246,198,50,.30);stroke:#e0a900}
.stat-hex--battle.stat-hex--awakened .stat-hex-value{fill:rgba(255,211,74,.31);stroke:#ffd24a}
.awakening-button{background:linear-gradient(180deg,#ffd95c,#e7b514);border:1px solid #c49300;color:#3d2a00;font-weight:800;box-shadow:0 2px 0 rgba(103,72,0,.22)}
.awakening-button:hover{filter:brightness(1.03)}
.awakening-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 14px;border:1px solid rgba(208,159,0,.45);border-radius:10px;background:rgba(255,216,78,.14);color:#8a6500}
.awakening-status b{font-size:1.05em}.awakening-status small{font-size:.78em}
.awakening-inline-badge,.awakening-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:2px 7px;border-radius:999px;background:#f5c927;color:#4e3700;border:1px solid #c99c00;font-weight:800;font-size:.74em;vertical-align:middle}
.awakening-mod b{color:#d9a900}
.body-growth-card.is-awakened{border-color:rgba(221,174,0,.55);box-shadow:inset 0 0 0 1px rgba(255,215,64,.14)}

/* 2026-09-30: 覚醒 / 公式リーグ総合力 */
.awakening-ready-card{border:2px solid #e1b000!important;box-shadow:0 0 0 3px rgba(255,210,49,.16),0 8px 22px rgba(126,94,0,.12)!important}
.awakening-ready{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:11px;background:linear-gradient(180deg,#fff9d9,#fff1a6);border:1px solid #dfb322;color:#604700}
.awakening-ready strong{font-size:1.05em;font-weight:900;letter-spacing:.02em}
.awakening-ready .awakening-button{min-height:42px;padding:8px 15px;font-size:1em}
.league-player-pick-item{display:grid;gap:.4cqh;min-width:0;text-align:center;align-content:start}
.league-player-pick-item .battle-character-pick{margin:0}
.league-total-power{display:block;color:#394550;font-size:clamp(9px,1.85cqw,12px);font-weight:800;line-height:1.15;white-space:nowrap;text-align:center}
.league-total-power b{font-size:1.12em;font-weight:950;font-variant-numeric:tabular-nums}
.league-candidate-character{grid-template-columns:14cqw minmax(0,1fr)}
.league-candidate-portrait{width:14cqw;display:flex;flex-direction:column;align-items:center;gap:.35cqh;min-width:0}
.league-candidate-portrait img{width:12.5cqw!important;height:12.5cqw!important}
.league-candidate-portrait .league-total-power{width:100%;font-size:clamp(8px,1.72cqw,11px)!important;color:#394550}
@media(max-width:520px){
  .awakening-ready{gap:7px;padding:9px 10px}
  .league-total-power{font-size:clamp(8px,2.15vw,10px)}
}

/* 2026-09-30: official league title display / ranking gate */
.league-candidate-user .nickname-report-wrap>strong{font-size:2.72cqw;line-height:1.2}
.league-ranking-wait{padding:2cqh 3cqw;text-align:center}
.league-ranking-wait p{margin:0 0 .7cqh;font-size:2.7cqw;line-height:1.55}
.league-ranking-wait small{font-size:2.45cqw;color:#657281;font-weight:900}

/* 護符の説明は購入判断に重要なため、従来より少し大きく黒で表示する。 */
.talisman-description{font-size:13px!important;line-height:1.5!important;color:#111!important}
.shop-item.no-icon{grid-template-columns:1fr;grid-template-areas:"copy" "button"}


/* 2026-10-01: opening story fixed 3-row layout - logo / scroll story / start */
#onboardingStory .onboarding-opening-shell{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  grid-template-areas:
    "opening-logo"
    "opening-story"
    "opening-footer"!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
#onboardingStory .onboarding-opening-logo{
  grid-area:opening-logo!important;
  position:static!important;
  inset:auto!important;
  flex:none!important;
  min-height:0!important;
  z-index:2!important;
}
#onboardingStory .onboarding-scroll--opening{
  grid-area:opening-story!important;
  position:relative!important;
  inset:auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  z-index:1!important;
}
#onboardingStory .onboarding-opening-footer{
  grid-area:opening-footer!important;
  position:static!important;
  inset:auto!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  transform:none!important;
  flex:none!important;
  min-height:0!important;
  z-index:2!important;
}
#onboardingStory .onboarding-start-form,
#onboardingStory .onboarding-start-button{
  position:static!important;
  inset:auto!important;
  top:auto!important;
  right:auto!important;
  bottom:auto!important;
  left:auto!important;
  transform:none!important;
}
#onboardingStory .onboarding-start-button{
  margin:0 auto!important;
  align-self:auto!important;
}

/* 2026-10-01: official league talisman restriction */
.shop-league-limit{display:block;margin:.45cqh 0 .25cqh;color:#c62828!important;font-weight:1000;font-size:clamp(12px,2.55cqw,15px);line-height:1.3}

/* --- Sound settings / 2026-10-04 --- */
.opening-audio-controls{display:flex;justify-content:center;gap:5cqw;margin:0 0 1.2cqh;padding:.8cqh 2cqw;border-radius:2cqw;background:rgba(255,255,255,.82);box-shadow:0 .35cqh 1.2cqh rgba(0,0,0,.12)}
.audio-toggle-row{display:inline-flex;align-items:center;gap:1.6cqw;min-height:4.6cqh;font-size:2.9cqw;font-weight:900;color:#263342;cursor:pointer;user-select:none}
.audio-toggle-row input{position:absolute;opacity:0;pointer-events:none}
.audio-switch{position:relative;display:inline-block;width:9cqw;height:4.4cqw;border-radius:99px;background:#aab3bd;box-shadow:inset 0 0 0 .35cqw rgba(0,0,0,.08);transition:background .18s ease}
.audio-switch:after{content:'';position:absolute;top:.45cqw;left:.5cqw;width:3.5cqw;height:3.5cqw;border-radius:50%;background:#fff;box-shadow:0 .25cqw .7cqw rgba(0,0,0,.24);transition:transform .18s ease}
.audio-toggle-row input:checked+.audio-switch{background:#2b89d6}
.audio-toggle-row input:checked+.audio-switch:after{transform:translateX(4.45cqw)}
.audio-toggle-row input:focus-visible+.audio-switch{outline:.55cqw solid rgba(43,137,214,.25);outline-offset:.35cqw}
.settings-audio-panel>p{margin:.2cqh 0 1.5cqh;color:#65717d;font-size:2.55cqw;line-height:1.55}
.settings-audio-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.65fr);align-items:center;gap:2.2cqw;padding:1.2cqh 0;border-top:1px solid rgba(125,137,149,.18)}
.settings-audio-row:first-of-type{border-top:0}
.audio-volume-row{display:grid;grid-template-columns:auto 1fr 8cqw;align-items:center;gap:1.2cqw;font-size:2.45cqw;color:#5a6672}
.audio-volume-row input[type="range"]{width:100%;accent-color:#2b89d6}
.audio-volume-row b{text-align:right;color:#263342;font-size:2.55cqw}
.settings-audio-note{display:block;margin-top:.6cqh;color:#6f7a85;font-size:2.2cqw;line-height:1.5}
@media (max-width:420px){.opening-audio-controls{gap:7cqw}.settings-audio-row{grid-template-columns:1fr}.audio-volume-row{grid-template-columns:auto 1fr 10cqw}}


/* 2026-10-04: 神殿背景 */
.gods-tab{position:relative;background:linear-gradient(rgba(247,250,255,.18),rgba(247,250,255,.18)),var(--ijin-god-temple-bg,url("ui/god-temple-bg.png")) center top/cover no-repeat!important;background-attachment:scroll!important}
.gods-tab::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,.08) 100%);pointer-events:none}
.gods-tab>*{position:relative;z-index:1}
.gods-tab .panel,.gods-tab .god-card,.gods-tab .gods-intro{background:rgba(255,255,255,.86)!important;backdrop-filter:blur(1px)}
.battle-stage.battle-stage--god{background:#f4f6f8 var(--ijin-god-temple-bg,url("ui/god-temple-bg.png")) center center/cover no-repeat!important;background-attachment:local!important}
.battle-stage.battle-stage--god .fighter{background:rgba(20,29,49,.82)!important;border-color:rgba(255,227,153,.42)!important}
.battle-stage.battle-stage--god .battlelog{background:rgba(255,255,255,.9)!important;border-color:rgba(215,181,88,.55)!important;color:#17202a!important}
.battle-stage.battle-stage--god .battlelog p{color:#17202a!important}
.battle-stage.battle-stage--god .battlelog .log-player{color:#155a9c!important}
.battle-stage.battle-stage--god .battlelog .log-enemy{color:#a22d2d!important}
.battle-stage.battle-stage--god .battlelog .log-system{color:#55616f!important}

/* 2026-10-04: 回数リセットチケット */
.home-ticket-icon img{image-rendering:pixelated}
.ticket-reset-slot.hidden{display:none!important}
.ticket-reset-control{display:grid;gap:.75cqh;margin-top:.85cqh;padding:1cqh 2.2cqw;border-radius:2cqw;border:1px solid rgba(190,137,18,.32);background:linear-gradient(135deg,rgba(255,250,220,.96),rgba(255,239,170,.9));box-shadow:0 3px 10px rgba(90,62,10,.1)}
.ticket-reset-info{display:flex;align-items:center;gap:1.8cqw;min-width:0}.ticket-reset-info img{width:8.5cqw;height:8.5cqw;max-width:42px;max-height:42px;object-fit:contain;image-rendering:pixelated;flex:none}.ticket-reset-info>div{display:grid;gap:.18cqh;min-width:0}.ticket-reset-info strong{font-size:2.65cqw;color:#5a3d00}.ticket-reset-info small{font-size:2.05cqw;line-height:1.45;color:#725d29}
.ticket-reset-button{min-height:4.5cqh;border:0;border-radius:1.6cqw;padding:.7cqh 2.5cqw;background:linear-gradient(180deg,#ffca45,#e99a0a);color:#3e2700;font-weight:1000;font-size:2.35cqw;box-shadow:0 3px 0 #a96500;cursor:pointer}.ticket-reset-button:disabled{filter:grayscale(.7);opacity:.55;box-shadow:none;cursor:not-allowed}
.ticket-page-hero{text-align:center}.ticket-page-icon{display:block;width:min(34cqw,160px);height:auto;margin:0 auto 1.2cqh;image-rendering:pixelated}.ticket-balance-card{display:flex;align-items:baseline;justify-content:center;gap:1.2cqw;margin:1.2cqh 0;padding:1.2cqh 2cqw;border-radius:2cqw;background:#fff6cf}.ticket-balance-card span{font-size:2.6cqw}.ticket-balance-card strong{font-size:6cqw;color:#9b6200}.ticket-use-list{margin:1.1cqh 0 0;padding-left:1.2em}.ticket-use-list li{margin:.75cqh 0;font-size:2.55cqw;line-height:1.55}.ticket-coming-soon{margin-top:1.4cqh;padding:1.2cqh 2cqw;border-radius:1.8cqw;background:#eef1f5;color:#5d6975;font-weight:900;text-align:center}
.present-reward-inline.ticket img{image-rendering:pixelated}


/* 2026-10-04: クロスロイド名称 / 悪魔六角形は位置固定で能力ポリゴンのみ拡大 */
.crossroid-title-heading{display:flex!important;justify-content:center!important;align-items:center!important;margin:0 0 1.5cqh!important;min-height:5.7cqh}
.crossroid-page-title{margin:0!important;padding:.35cqh 4cqw;border-radius:2cqw;background:rgba(255,255,255,.72);box-shadow:0 2px 10px rgba(20,32,48,.10);font-size:clamp(24px,5.2cqw,36px)!important;font-weight:1000;letter-spacing:.06em;color:#1d2a38;text-shadow:0 1px #fff}

/* 悪魔の2倍六角形はレイアウト位置を変えず、描画だけ外側へ許可 */
.battle-stage .fighter.demon-hex-expanded{overflow:visible!important}

/* 2026-10-05 クロスロイドタイトル画像 */
.crossroid-title-heading{min-height:0!important}
.crossroid-title-image{display:block;width:min(78cqw,420px)!important;max-height:8.5cqh;object-fit:contain;margin:0 auto!important;image-rendering:auto}


/* 2026-10-05 Googleアカウント連携 */
.google-link-status{display:grid;gap:.35cqh;margin:1.1cqh 0;padding:1.1cqh 2.5cqw;border-radius:1.8cqw;background:#f3f6fa;border:1px solid #d9e1ea}.google-link-status strong{font-size:2.9cqw}.google-link-status span{font-size:2.25cqw;color:#5f6c79}.google-link-status.is-linked{background:#edf9f1;border-color:#b8dec4}.google-link-status.is-linked strong{color:#1d6c38}.google-account-button{width:100%;min-height:5.3cqh;border:1px solid #c9d0d8;border-radius:1.7cqw;background:#fff;color:#202124;font-size:2.75cqw;font-weight:900;box-shadow:0 2px 7px rgba(0,0,0,.10);cursor:pointer}.google-account-button:disabled{opacity:.58;cursor:wait}.opening-google-restore{display:grid;gap:.55cqh;margin:0 0 1.2cqh}.opening-google-restore[hidden],.native-google-only[hidden]{display:none!important}.opening-google-restore small{font-size:1.9cqw;color:#56616d;text-align:center}.web-google-note{margin-top:.8cqh}.google-account-message{margin:.75cqh 0 0;padding:.8cqh 2cqw;border-radius:1.5cqw;background:#eef4ff;color:#284b78;font-size:2.2cqw;font-weight:800}.google-account-message.is-error{background:#fff0f0;color:#a22929}

/* 2026-10-09: 戦闘中止は全モード共通で右上。コンパクト表示 */
.battle-stage-topbar{grid-template-columns:42px minmax(0,1fr) auto;gap:1cqw}
.battle-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:1.5cqw;min-width:0}
.battle-topbar-actions #battleTurnText{white-space:nowrap;text-align:right;font-size:2cqw;color:#b8c4e3}
.battle-surrender-button{flex:none;white-space:nowrap;background:#38212a;color:#fff;border:1px solid #a87880;border-radius:1.2cqw;padding:.65cqh 1.4cqw;font-size:2.3cqw;font-weight:700;line-height:1.3;cursor:pointer}
.battle-surrender-button:disabled{opacity:.45;cursor:default}

/* 討伐悪魔100連戦：一覧に戻る導線 */
.monster100-return{display:flex;justify-content:center;margin:1cqh 0 1.3cqh}
.monster100-return .primary-link-button{width:min(85%,420px);min-height:4.8cqh;font-size:2.9cqw;background:#496f9a}

/* 2026-10-10 お気に入り8人：全端末4列×2段、最小余白 */
.favorite-panel{padding:8px!important;margin-bottom:8px}
.favorite-roster{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;margin-top:5px!important}
.favorite-person-wrap{min-width:0;border-radius:6px;border-width:1px}
.favorite-person-wrap .favorite-person{padding:4px 1px 3px;gap:2px;border-radius:5px}
.favorite-avatar{width:min(100%,50px);border-radius:5px}
.favorite-person strong{font-size:11px;line-height:1.15}
.favorite-person small{font-size:9px;line-height:1.1}
.favorite-remove{right:2px;top:2px;width:20px;height:20px;font-size:14px}
/* 売却用ボタンと返還額確認 */
.equipment-card-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px;margin-top:5px}
.equipment-card-actions button{min-width:0;padding:7px 3px;font-size:12px}
.equipment-sell-button{background:#fff3f0;border:1px solid #ce817c;color:#a32e2e;font-weight:800;font-size:12px;padding:7px 10px;margin-top:5px}
.equipment-card-actions .equipment-sell-button{margin-top:0}
.sell-confirm-modal{position:absolute;z-index:730;inset:0;display:grid;place-items:center;padding:5cqw}
.sell-confirm-backdrop{position:absolute;inset:0;background:rgba(5,10,20,.76)}
.sell-confirm-panel{position:relative;z-index:1;width:100%;max-width:420px;background:#fff;border-radius:4cqw;padding:4cqh 4cqw;color:#233043;text-align:center;box-shadow:0 12px 50px #0006}
.sell-confirm-panel h2{font-size:5cqw;margin:0 0 1cqh}
.sell-confirm-panel p{font-size:2.85cqw;line-height:1.5}
.sell-confirm-refund-label{margin-bottom:0}
.sell-confirm-refund{font-size:4cqw;font-weight:800;color:#15569e;display:flex;justify-content:center;align-items:baseline;gap:1.5cqw}
.sell-confirm-refund strong{font-size:7cqw}
.sell-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:2cqw;margin-top:2cqh}
.sell-confirm-actions button{font-weight:800;font-size:3cqw;padding:1.1cqh 1cqw}

/* 2026-10-17: Hide the common footer only while a live battle stage is shown.
   All battle modes share #battleStage. The selector also covers exceptional
   exits because it follows the stage's real visibility, not a separate flag. */
#battleStage:not(.hidden) ~ .bottom-nav{
  display:none!important;
}
/* Reclaim the footer's 10.5cqh instead of leaving a vacant strip below battle. */
#battleStage:not(.hidden){
  inset:0!important;
  display:flex;
  flex-direction:column;
}
/* Use the recovered vertical space for the live battle log and result controls.
   On short screens the normal stage scrolling is retained. */
#battleStage:not(.hidden) .battle-stage-arena,
#battleStage:not(.hidden) .special,
#battleStage:not(.hidden) #invasionBattleCount,
#battleStage:not(.hidden) #battleResultActions{
  flex-shrink:0;
}
#battleStage:not(.hidden) #battleLog{
  margin-top:auto!important;
  flex-shrink:0;
}
