*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0f14;--panel: #161a22;--panel2: #1e2430;--border: rgba(255,255,255,.1);--gold: #f0c040;--gold2: #ffd060;--red: #e03030;--red2: #ff5040;--blue: #4090e0;--green: #40c070;--muted: #7a8090;--text: #e8eaf0;--text2: #c0c8d8;--font-serif: "Noto Serif JP", serif;--safe-bot: env(safe-area-inset-bottom, 0px)}body{background:var(--bg);color:var(--text);font-family:var(--font-serif);min-height:100dvh;overflow-x:hidden;-webkit-tap-highlight-color:transparent}button{font-family:var(--font-serif);cursor:pointer;border:none;background:none}button:disabled{opacity:.4;cursor:not-allowed}.screen{min-height:100dvh;display:flex;flex-direction:column}.titleScreen{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 40%,rgba(180,60,20,.18) 0%,transparent 70%),linear-gradient(180deg,#0d0f14,#12080a);padding:32px 24px;position:relative;overflow:hidden}.titleScreen:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,.015) 40px);pointer-events:none}.titleEyebrow{font-size:.68rem;letter-spacing:.4em;color:var(--gold);margin-bottom:10px;opacity:.8}.titleLogo{font-size:clamp(2.4rem,10vw,3.6rem);font-weight:900;color:var(--gold);letter-spacing:.1em;text-shadow:0 0 40px rgba(240,192,64,.5),0 4px 16px rgba(0,0,0,.8);margin-bottom:6px;position:relative}.titleSub{font-size:.8rem;letter-spacing:.3em;color:var(--text2);margin-bottom:48px}.titleMenus{display:flex;flex-direction:column;gap:12px;width:100%;max-width:280px}.titleBtn{width:100%;padding:14px 24px;border-radius:4px;font-size:1rem;font-weight:700;letter-spacing:.12em;transition:all .15s}.titleBtn.primary{background:linear-gradient(135deg,#c03020,#8a1010);color:#fff;border:1px solid rgba(255,100,80,.5);box-shadow:0 4px 20px #c8281466}.titleBtn.primary:hover{box-shadow:0 4px 28px #c82814b3;filter:brightness(1.1)}.titleBtn.secondary{background:#ffffff0f;color:var(--text2);border:1px solid var(--border)}.titleBtn.secondary:hover{background:#ffffff1a;color:var(--text)}.titleDiffRow{display:flex;gap:8px;width:100%;max-width:280px;margin-top:8px}.diffBtn{flex:1;padding:8px 4px;border-radius:4px;border:1px solid var(--border);background:#ffffff0a;color:var(--muted);font-size:.72rem;transition:all .15s}.diffBtn.active{border-color:#f0c04099;color:var(--gold);background:#f0c0401a}.titleVersion{position:absolute;bottom:20px;font-size:.6rem;color:var(--muted);letter-spacing:.1em}.gameHeader{background:#0d0f14fa;border-bottom:1px solid var(--border);padding:10px 14px 8px;position:sticky;top:0;z-index:50}.gameHeaderTop{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.gameHeaderTitle{display:flex;align-items:baseline;gap:8px}.gameHeaderTitle h1{font-size:1rem;font-weight:900;color:var(--gold);letter-spacing:.08em}.turnBadge{font-size:.65rem;color:var(--muted);letter-spacing:.08em}.apRow{display:flex;align-items:center;gap:5px}.apLabel{font-size:.55rem;color:var(--muted)}.apDot{width:8px;height:8px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);transition:background .2s}.apDot.filled{background:var(--gold);border-color:var(--gold2)}.resourceBar{display:flex;gap:0;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.resItem{flex:1;display:flex;align-items:center;gap:5px;padding:5px 8px;background:#ffffff05;border-right:1px solid var(--border)}.resItem:last-child{border-right:none}.resItem.low{background:#e030301a}.resItem.low .resVal{color:var(--red2)}.resLabel{font-size:.55rem;color:var(--muted)}.resVal{font-size:.82rem;font-weight:700}.mapContainer{flex:1;padding:12px;overflow-y:auto}.mapGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:480px;margin:0 auto}.mapTile{position:relative;aspect-ratio:1 / .85;border-radius:6px;border:2px solid transparent;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;transition:all .15s;overflow:hidden;padding:6px}.mapTile:before{content:"";position:absolute;inset:0;background:var(--tile-color, #666);opacity:.15;transition:opacity .15s}.mapTile.selected{border-color:var(--gold)!important;box-shadow:0 0 16px #f0c04066}.mapTile.selected:before{opacity:.25}.mapTile.player:before{opacity:.2}.tileColorBar{position:absolute;top:0;left:0;right:0;height:3px;background:var(--tile-color, #666)}.tileName{font-size:.9rem;font-weight:900;letter-spacing:.05em;position:relative;z-index:1}.tileFaction{font-size:.58rem;position:relative;z-index:1;color:var(--text2)}.tileHpBar{position:absolute;bottom:0;left:0;right:0;height:3px;background:#0000004d}.tileHpFill{height:100%;background:var(--green);transition:width .3s}.tileHpFill.mid{background:#e0a030}.tileHpFill.low{background:var(--red)}.tileTroops{font-size:.6rem;color:var(--muted);position:relative;z-index:1}.tilePlayer{position:absolute;top:5px;right:5px;font-size:.5rem;background:var(--gold);color:#000;padding:1px 4px;border-radius:2px;font-weight:900;z-index:1}.tileNeighbor{border-color:#fff3!important}.regionPanel{margin:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel);overflow:hidden}.regionPanelHeader{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,rgba(255,255,255,.03),transparent)}.regionPanelName{font-size:1.1rem;font-weight:900;letter-spacing:.06em}.regionPanelFaction{font-size:.72rem;color:var(--text2)}.terrainTag{font-size:.6rem;padding:3px 8px;border-radius:3px;border:1px solid rgba(240,192,64,.3);color:var(--gold);background:#f0c04012}.regionStats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--border)}.rStat{padding:8px 10px;text-align:center;border-right:1px solid var(--border);background:#ffffff03}.rStat:last-child{border-right:none}.rStatLabel{font-size:.58rem;color:var(--muted);margin-bottom:3px}.rStatVal{font-size:.88rem;font-weight:700}.rStatVal.danger{color:var(--red2)}.rStatVal.good{color:var(--green)}.regionOfficerRow{display:flex;align-items:center;gap:8px;padding:7px 14px;border-bottom:1px solid rgba(255,255,255,.04);font-size:.75rem}.miniPortrait{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:900;flex-shrink:0}.regionOfficerName{flex:1}.regionOfficerTroops{font-size:.65rem;color:var(--muted)}.commandBar{position:fixed;bottom:0;left:0;right:0;background:#0d0f14fa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--border);padding:10px 12px;padding-bottom:calc(10px + var(--safe-bot));z-index:40}.cmdGrid{display:grid;grid-template-columns:repeat(4,1fr) 1.3fr;gap:6px;max-width:480px;margin:0 auto}.cmdBtn{padding:10px 4px;border-radius:5px;border:1px solid var(--border);background:#ffffff0d;color:var(--text2);font-size:.68rem;font-weight:700;display:flex;flex-direction:column;align-items:center;gap:3px;transition:all .15s;position:relative}.cmdBtn:hover:not(:disabled){background:#ffffff1a;color:var(--text)}.cmdBtn .icon{font-size:1.1rem}.cmdBtn .apCost{position:absolute;top:3px;right:4px;font-size:.48rem;color:var(--muted)}.cmdBtnAttack{background:#e030301f;border-color:#e0303066;color:var(--red2)}.cmdBtnAttack:hover:not(:disabled){background:#e0303038}.cmdBtnEnd{background:linear-gradient(135deg,#f0c0402e,#f0c0400f);border-color:#f0c04080;color:var(--gold)}.cmdBtnEnd:hover:not(:disabled){background:#f0c04047}.tabNav{display:flex;border-bottom:1px solid var(--border);background:#0d0f14f2;position:sticky;top:0;z-index:40}.tabBtn{flex:1;padding:11px 4px;font-size:.72rem;font-weight:700;color:var(--muted);letter-spacing:.08em;border-bottom:2px solid transparent;transition:all .15s}.tabBtn.active{color:var(--gold);border-bottom-color:var(--gold)}.manageScreen{flex:1;padding:10px 12px 80px;overflow-y:auto}.sectionHead{display:flex;align-items:center;justify-content:space-between;padding:8px 4px;margin-bottom:8px;border-bottom:1px solid var(--border)}.sectionHead h2{font-size:.82rem;font-weight:900;letter-spacing:.1em;color:var(--gold)}.officerGrid{display:flex;flex-direction:column;gap:8px}.officerCard{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:hidden;transition:all .15s;text-align:left}.officerCard.selected{border-color:var(--gold);box-shadow:0 0 12px #f0c04040}.officerCardTop{display:flex;align-items:center;gap:10px;padding:10px 12px}.officerPortrait{width:46px;height:46px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:900;color:#fffffff2;border:2px solid rgba(255,255,255,.2);position:relative}.roleTag{position:absolute;bottom:-2px;right:-2px;font-size:.5rem;font-weight:900;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.5)}.officerName{font-size:.9rem;font-weight:700;margin-bottom:2px}.officerTitle{font-size:.62rem;color:var(--muted);margin-bottom:4px}.officerLevel{font-size:.6rem;color:var(--muted)}.selectedBadge{margin-left:auto;font-size:.6rem;font-weight:900;color:var(--gold);border:1px solid var(--gold);padding:2px 6px;border-radius:3px}.officerCardStats{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--border)}.statCell{padding:5px 2px;text-align:center;border-right:1px solid var(--border)}.statName{font-size:.55rem;color:var(--muted);display:block}.statVal{font-size:.82rem;font-weight:700}.officerTroopBar{padding:5px 12px 7px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px}.troopBarOuter{flex:1;height:4px;background:#ffffff14;border-radius:99px;overflow:hidden}.troopBarFill{height:100%;background:linear-gradient(90deg,var(--blue),#60b0ff);border-radius:99px;transition:width .3s}.troopBarFill.low{background:linear-gradient(90deg,var(--red),var(--red2))}.skillTagRow{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 8px}.skillTag{font-size:.58rem;padding:2px 7px;border-radius:99px;border:1px solid rgba(240,192,64,.3);color:var(--gold);background:#f0c04012}.factionPanel{padding:10px 12px}.factionRow{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:5px;border:1px solid transparent;margin-bottom:4px;background:#ffffff05}.factionRow.defeated{opacity:.35}.factionDot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.factionName{flex:1;font-size:.78rem}.factionInfo{font-size:.65rem;color:var(--muted);text-align:right;line-height:1.5}.logPanel{padding:10px 12px}.logItem{display:flex;gap:10px;padding:7px 8px;border-bottom:1px solid rgba(255,255,255,.04);font-size:.75rem;line-height:1.5}.logTurn{font-size:.6rem;color:var(--muted);white-space:nowrap;text-align:center}.logMsg.battle{color:var(--red2)}.logMsg.economy{color:#80d080}.logMsg.event{color:var(--gold)}.savePanel{padding:10px 12px;display:flex;flex-direction:column;gap:10px}.savePanelRow{display:flex;gap:8px}.saveBtn{flex:1;padding:10px 6px;border-radius:5px;border:1px solid var(--border);background:#ffffff0d;color:var(--text2);font-size:.75rem;font-weight:700;transition:all .15s}.saveBtn:hover:not(:disabled){background:#ffffff1a}.saveBtn.danger{border-color:#e0303066;color:var(--red2)}.battleScreen{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.battleBg{position:absolute;inset:0;background:radial-gradient(ellipse 120% 60% at 50% 0%,rgba(180,30,10,.25) 0%,transparent 60%),repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(255,255,255,.02) 60px),repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(255,255,255,.02) 60px),#0d0f14;pointer-events:none}.battleHeader{position:relative;z-index:5;padding:12px 16px 8px;border-bottom:1px solid rgba(255,255,255,.1);background:#0d0f14e6;display:flex;align-items:center;gap:10px}.battleHeaderTitle{flex:1;font-size:.82rem;font-weight:900;color:var(--gold);letter-spacing:.12em}.battleRound{font-size:.65rem;color:var(--muted)}.battleSkipBtn{font-size:.62rem;color:var(--muted);padding:4px 10px;border:1px solid var(--border);border-radius:3px;background:#ffffff0a;transition:all .15s}.battleSkipBtn:hover{color:var(--text);background:#ffffff14}.battlefield{position:relative;z-index:5;display:flex;gap:0;padding:16px 8px 8px;flex:1;min-height:0}.armySide{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.armySide.defender{align-items:flex-end}.vsDivider{width:40px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.vsText{font-size:.9rem;font-weight:900;color:var(--red2);text-shadow:0 0 12px rgba(224,48,48,.7);letter-spacing:.05em}.generalCard{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:hidden;position:relative;transition:border-color .2s,box-shadow .2s}.generalCard.attacker-side{border-left:3px solid var(--red)}.generalCard.defender-side{border-right:3px solid var(--blue)}.generalCard.is-attacking{border-color:var(--gold)!important;box-shadow:0 0 20px #f0c04080;animation:cardAttack .5s ease}.generalCard.is-hit{animation:cardHit .4s ease}.generalCard.is-skill{border-color:var(--gold2)!important;box-shadow:0 0 30px #ffd060b3;animation:cardSkill .6s ease}.generalCard.is-defeated{opacity:.3;filter:grayscale(.8);border-color:#ffffff14!important}@keyframes cardAttack{0%{transform:translate(0)}35%{transform:translate(14px)}65%{transform:translate(14px)}to{transform:translate(0)}}.armySide.defender .generalCard.is-attacking{animation:cardAttackR .5s ease}@keyframes cardAttackR{0%{transform:translate(0)}35%{transform:translate(-14px)}65%{transform:translate(-14px)}to{transform:translate(0)}}@keyframes cardHit{0%{transform:translate(0);background:#e0303026}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0);background:var(--panel)}}@keyframes cardSkill{0%{transform:scale(1)}30%{transform:scale(1.05)}60%{transform:scale(1.03)}to{transform:scale(1)}}.generalCardInner{display:flex;align-items:center;gap:8px;padding:8px 10px}.generalPortrait{width:40px;height:40px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:900;color:#fffffff2;border:2px solid rgba(255,255,255,.2);position:relative}.skillFlashRing{position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--gold2);opacity:0;animation:skillRing .6s ease forwards}@keyframes skillRing{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.5)}}.generalInfo{flex:1;min-width:0}.generalName{font-size:.78rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.generalStats{font-size:.55rem;color:var(--muted);white-space:nowrap}.generalHpRow{display:flex;align-items:center;gap:5px}.generalHpBar{flex:1;height:5px;background:#ffffff1a;border-radius:99px;overflow:hidden}.generalHpFill{height:100%;background:linear-gradient(90deg,#40c070,#60e090);border-radius:99px;transition:width .4s ease}.generalHpFill.mid{background:linear-gradient(90deg,#e0a030,#f0c050)}.generalHpFill.low{background:linear-gradient(90deg,var(--red),var(--red2))}.generalHpNum{font-size:.58rem;color:var(--muted);white-space:nowrap}.damageFloat{position:absolute;font-size:1.2rem;font-weight:900;color:var(--red2);text-shadow:0 0 8px rgba(224,48,48,.8),1px 1px 0 #000;pointer-events:none;animation:floatDmg .9s ease forwards;z-index:20;white-space:nowrap}.damageFloat.skill-dmg{color:var(--gold2);font-size:1.5rem}@keyframes floatDmg{0%{opacity:1;transform:translateY(0) scale(1)}30%{transform:translateY(-20px) scale(1.2)}to{opacity:0;transform:translateY(-50px) scale(.9)}}.skillFlash{position:absolute;inset:0;z-index:15;background:#ffc82826;pointer-events:none;animation:flashFade .5s ease forwards}@keyframes flashFade{0%{opacity:1}to{opacity:0}}.battleLogArea{position:relative;z-index:5;background:#0d0f14eb;border-top:1px solid var(--border);padding:10px 14px;min-height:80px;max-height:120px;overflow:hidden}.battleLogLines{display:flex;flex-direction:column;gap:3px;font-size:.78rem;line-height:1.6}.logLine{animation:logIn .2s ease}@keyframes logIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.logLine.log-attack{color:var(--text2)}.logLine.log-skill{color:var(--gold2);font-weight:700}.logLine.log-damage{color:#ff8070}.logLine.log-defeat{color:var(--muted)}.logLine.log-result{color:var(--gold);font-weight:900;font-size:.88rem}.battleResultOverlay{position:absolute;inset:0;z-index:25;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000bf;gap:20px;animation:overlayIn .3s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.battleResultBanner{font-size:clamp(2rem,12vw,3.2rem);font-weight:900;letter-spacing:.15em;text-shadow:0 0 40px currentColor,2px 2px 0 rgba(0,0,0,.8);animation:bannerIn .4s cubic-bezier(.17,.89,.32,1.28) both}.battleResultBanner.win{color:var(--gold2)}.battleResultBanner.lose{color:var(--red2)}@keyframes bannerIn{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.battleResultStats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;max-width:320px;padding:0 20px}.resultStat{background:#ffffff0f;border-radius:5px;padding:8px 12px;text-align:center}.resultStatLabel{font-size:.6rem;color:var(--muted);margin-bottom:4px}.resultStatVal{font-size:1rem;font-weight:700}.battleContinueBtn{padding:14px 40px;border-radius:5px;border:1px solid rgba(240,192,64,.6);background:linear-gradient(135deg,#f0c04040,#f0c04014);color:var(--gold);font-size:.9rem;font-weight:700;letter-spacing:.12em;transition:all .15s}.battleContinueBtn:hover{background:#f0c04059}.eventBackdrop{position:fixed;inset:0;z-index:150;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:20px}.eventModal{background:var(--panel);border:1px solid rgba(240,192,64,.4);border-radius:10px;max-width:340px;width:100%;overflow:hidden;box-shadow:0 20px 60px #000c;animation:modalIn .25s cubic-bezier(.17,.89,.32,1.1)}@keyframes modalIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.eventModalTop{padding:14px 16px;background:linear-gradient(135deg,rgba(240,192,64,.1),transparent);border-bottom:1px solid var(--border)}.eventModalTitle{font-size:1rem;font-weight:900;color:var(--gold);letter-spacing:.06em}.eventModalSub{font-size:.62rem;color:var(--muted);margin-top:2px}.eventModalBody{padding:14px 16px;font-size:.82rem;line-height:1.85;border-bottom:1px solid var(--border)}.eventModalEffect{padding:8px 16px;font-size:.7rem;color:var(--muted);border-bottom:1px solid var(--border);background:#0003}.eventModalBtn{width:100%;padding:12px;color:var(--gold);font-size:.8rem;font-weight:700;transition:background .15s}.eventModalBtn:hover{background:#f0c04014}.gameResultScreen{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#000000e6;padding:20px}.gameResultCard{background:var(--panel);border-radius:12px;padding:28px 24px;max-width:380px;width:100%;text-align:center;box-shadow:0 0 80px #000000e6}.gameResultCard.victory{border:1px solid rgba(240,192,64,.6)}.gameResultCard.defeat{border:1px solid rgba(224,48,48,.5)}.gameResultEyebrow{font-size:.65rem;letter-spacing:.25em;color:var(--muted);margin-bottom:10px}.gameResultTitle{font-size:1.8rem;font-weight:900;letter-spacing:.1em;margin-bottom:20px}.victory .gameResultTitle{color:var(--gold2)}.defeat .gameResultTitle{color:var(--red2)}.gameResultGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.gameResultItem{background:#ffffff0a;border-radius:5px;padding:8px}.gameResultLabel{font-size:.58rem;color:var(--muted);margin-bottom:4px}.gameResultVal{font-size:.9rem;font-weight:700}.gameResultRating{font-size:1.1rem;font-weight:900;color:var(--gold);margin-bottom:20px}.gameResultNewBtn{width:100%;padding:13px;border-radius:6px;border:1px solid rgba(240,192,64,.5);background:#f0c0401f;color:var(--gold);font-size:.88rem;font-weight:700;letter-spacing:.1em;transition:all .15s}.gameResultNewBtn:hover{background:#f0c04038}.npcOverlay{position:fixed;inset:0;z-index:100;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.npcSpinner{width:40px;height:40px;border:3px solid rgba(240,192,64,.2);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.npcText{font-size:.85rem;color:var(--muted);letter-spacing:.15em}.toast{padding:8px 14px;background:#f0c0401a;border-bottom:1px solid rgba(240,192,64,.2);font-size:.72rem;color:var(--gold);animation:toastIn .2s ease}@keyframes toastIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:380px){.mapGrid{gap:5px}.tileName{font-size:.8rem}.generalPortrait{width:34px;height:34px;font-size:.95rem}.cmdGrid{grid-template-columns:repeat(4,1fr) 1.1fr;gap:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.battleStage{position:fixed;inset:0;display:flex;flex-direction:column;background:#08090e;font-family:"Noto Serif JP",serif;z-index:200;overflow:hidden;-webkit-user-select:none;user-select:none}.rTopHud{display:flex;align-items:center;height:46px;background:linear-gradient(180deg,#1c1c2e,#10101a);border-bottom:2px solid #2a2a44;padding:0 10px;gap:8px;flex-shrink:0}.rHudSide{flex:1;display:flex;align-items:center;gap:6px}.rHudLabel{font-size:.62rem;color:#8ac;white-space:nowrap;letter-spacing:.05em;min-width:48px}.rHudLabel.def{text-align:right;color:#c88}.rHudGauge{flex:1;display:flex;gap:2px;height:14px}.rHudSeg{flex:1;border-radius:1px;transition:background .35s}.rHudSeg.filled-atk{background:#28f;box-shadow:0 0 3px #2288ff80}.rHudSeg.filled-def{background:#f34;box-shadow:0 0 3px #ff334480}.rHudSeg.empty{background:#1a1a28;border:1px solid #2a2a38}.rHudCenter{text-align:center;min-width:90px}.rHudTitle{font-size:.6rem;color:var(--gold);letter-spacing:.08em;white-space:nowrap}.rHudRound{font-size:.58rem;color:#668;margin-top:1px}.rFieldArea{height:108px;flex-shrink:0;background:linear-gradient(180deg,#050c18,#081218 50%,#0c1808 85%,#141e0a);border-bottom:2px solid #1a2010;position:relative;display:flex;align-items:flex-end;overflow:hidden}.rFieldArea:after{content:"";position:absolute;bottom:26px;left:0;right:0;height:1px;background:#50643266}.rFieldBg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 80%,rgba(30,60,20,.3) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(60,20,20,.3) 0%,transparent 60%);pointer-events:none}.rTroopLine{flex:1;display:flex;align-items:flex-end;gap:4px;padding:0 14px 28px;position:relative;z-index:1}.rTroopLine.def{flex-direction:row-reverse}.rTroopShape{width:12px;height:22px;position:relative;flex-shrink:0}.rTroopShape:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:7px;height:7px;border-radius:50%;background:currentColor}.rTroopShape:after{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:9px;height:11px;background:currentColor;clip-path:polygon(10% 0%,90% 0%,100% 100%,0% 100%)}.rTroopShape.atk{color:#38c}.rTroopShape.def{color:#c33}.rTroopShape.attacking{animation:rTroopFwd .4s ease-out}.rTroopShape.def.attacking{animation:rTroopBwd .4s ease-out}@keyframes rTroopFwd{0%{transform:translate(0)}45%{transform:translate(10px)}to{transform:translate(0)}}@keyframes rTroopBwd{0%{transform:translate(0)}45%{transform:translate(-10px)}to{transform:translate(0)}}.rDmgDisplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;pointer-events:none;z-index:5}.rDmgNum{font-size:1.65rem;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.rDmgNum.atk{color:#5af;text-shadow:0 0 14px rgba(85,170,255,.6),0 2px 4px rgba(0,0,0,.9)}.rDmgNum.def{color:#f65;text-shadow:0 0 14px rgba(255,100,85,.6),0 2px 4px rgba(0,0,0,.9)}.rDmgBar{color:#555;font-size:1.1rem;font-weight:300}.rFloat{position:absolute;font-size:1.3rem;font-weight:900;pointer-events:none;z-index:10;animation:rFloatUp .95s ease-out forwards;text-shadow:0 2px 6px rgba(0,0,0,.9)}.rFloat.atk{left:22%;color:#f87}.rFloat.def{right:22%;left:auto;color:#fd3}.rFloat.skill{font-size:1.7rem;color:#f60!important}@keyframes rFloatUp{0%{opacity:1;transform:translateY(0) scale(1.15)}70%{opacity:.9;transform:translateY(-38px) scale(1)}to{opacity:0;transform:translateY(-56px) scale(.9)}}.rSkillFlash{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(255,200,50,.35) 0%,transparent 70%);animation:rSkillPulse .6s ease-out forwards;pointer-events:none;z-index:8}@keyframes rSkillPulse{0%{opacity:1}to{opacity:0}}.rBattleSides{flex:1;display:flex;min-height:0;background:#0a0c12}.rVsDivider{width:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#111118,#0d0d14);border-left:1px solid #1e1e2e;border-right:1px solid #1e1e2e}.rVsText{font-size:.55rem;color:#445;letter-spacing:.05em;writing-mode:vertical-rl}.rBattleSide{flex:1;padding:5px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.rSideLabel{font-size:.56rem;letter-spacing:.08em;padding:2px 4px;border-radius:2px;flex-shrink:0}.rSideLabel.atk{color:#7abaee;background:#2288ff14;border-left:2px solid #2288ff}.rSideLabel.def{color:#e88;background:#ff334414;border-right:2px solid #ff3344;text-align:right}.rCardGrid{display:grid;grid-template-columns:1fr 1fr;gap:4px;flex:1}.rCard{position:relative;border:1px solid #2a3040;background:linear-gradient(180deg,#121825,#0c101a);border-radius:2px;overflow:hidden;transition:box-shadow .15s}.rCard.atk{border-color:#1e3a5a}.rCard.def{border-color:#5a1e1e}.rCard.is-attacking{animation:rCardSlideR .44s ease-out;box-shadow:0 0 14px #50b4ff8c;border-color:#49d}.rCard.def.is-attacking{animation:rCardSlideL .44s ease-out;box-shadow:0 0 14px #ff64508c;border-color:#d44}.rCard.is-hit{animation:rCardShake .32s ease-out}.rCard.atk.is-hit,.rCard.def.is-hit{box-shadow:0 0 10px #ff3c3cb3}.rCard.is-skill{animation:rCardPulse .5s ease-out;box-shadow:0 0 20px #ffd232bf;border-color:var(--gold)}.rCard.is-defeated{filter:grayscale(.7) brightness(.45)}@keyframes rCardSlideR{0%{transform:translate(0)}40%{transform:translate(14px)}to{transform:translate(0)}}@keyframes rCardSlideL{0%{transform:translate(0)}40%{transform:translate(-14px)}to{transform:translate(0)}}@keyframes rCardShake{0%,to{transform:translate(0)}20%{transform:translate(-5px);background-color:#ff00001f}60%{transform:translate(5px)}}@keyframes rCardPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.rPortrait{height:50px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.rPortrait:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.5) 100%);pointer-events:none}.rKanji{font-size:1.9rem;font-weight:700;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.9),0 0 20px rgba(0,0,0,.6);position:relative;z-index:1}.rSkillRing{position:absolute;inset:-8px;border:2px solid var(--gold);border-radius:50%;animation:rRingExpand .55s ease-out forwards;pointer-events:none;z-index:5}@keyframes rRingExpand{0%{transform:scale(.4);opacity:1}to{transform:scale(1.8);opacity:0}}.rCardBody{padding:3px 5px 4px}.rCardName{font-size:.59rem;color:#bbb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px;letter-spacing:.03em}.rHpSegs{display:flex;gap:2px;margin-bottom:3px}.rHpSeg{flex:1;height:7px;border-radius:1px;transition:background .3s}.rHpSeg.filled-atk{background:#28f;box-shadow:0 0 2px #28f6}.rHpSeg.filled-def{background:#f34;box-shadow:0 0 2px #f346}.rHpSeg.empty{background:#1a1a28;border:1px solid #2a2a3a}.rHpNum{font-size:.54rem;color:#777;text-align:right;font-variant-numeric:tabular-nums}.rDefeatedOverlay{position:absolute;inset:0;background:#000000c7;display:flex;align-items:center;justify-content:center;font-size:.64rem;font-weight:700;color:#f22;letter-spacing:.04em;text-shadow:0 0 8px rgba(255,0,0,.5)}.rFooterBar{height:54px;flex-shrink:0;background:linear-gradient(180deg,#0e1520,#090e18);border-top:2px solid #1e2a44;display:flex;align-items:center;gap:8px;padding:0 8px}.rFooterLeft{display:flex;align-items:center;flex-shrink:0}.rFooterRight{flex-shrink:0}.rSkipBtn{background:#0e1a28;border:1px solid #2a4a6a;color:#69b;font-size:.64rem;padding:5px 10px;border-radius:2px;cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s;letter-spacing:.05em}.rSkipBtn:hover{background:#1a2a3a;color:#9bd;border-color:#48a}.rLogArea{flex:1;overflow:hidden;display:flex;flex-direction:column;gap:2px;min-width:0}.rLogLine{font-size:.63rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.rLogLine.log-attack{color:#abc}.rLogLine.log-skill{color:#fc4;font-weight:600}.rLogLine.log-defeat{color:#f75}.rLogLine.log-result{color:var(--gold);font-weight:700;letter-spacing:.05em}.rFieldBonus{font-size:.58rem;color:#4a5a6a;letter-spacing:.05em;white-space:nowrap}.rResultOverlay{position:absolute;inset:0;background:#000000de;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:300;animation:rResultIn .4s ease-out}@keyframes rResultIn{0%{opacity:0}to{opacity:1}}.rResultBanner{font-size:3.2rem;font-weight:900;letter-spacing:.35em;padding-left:.35em;animation:rBannerPop .55s cubic-bezier(.175,.885,.32,1.275)}.rResultBanner.win{color:var(--gold);text-shadow:0 0 40px rgba(240,192,64,.7),0 0 80px rgba(240,192,64,.3),0 4px 8px rgba(0,0,0,.9)}.rResultBanner.lose{color:#f33;text-shadow:0 0 30px rgba(255,50,50,.7),0 4px 8px rgba(0,0,0,.9)}@keyframes rBannerPop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.08);opacity:1}to{transform:scale(1)}}.rResultGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;padding:12px 20px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:4px}.rResultItem{display:flex;flex-direction:column;align-items:center;gap:5px}.rRLabel{font-size:.65rem;color:#777;letter-spacing:.08em}.rRVal{font-size:1.15rem;font-weight:700;color:#ccc;font-variant-numeric:tabular-nums}.rRVal.win{color:var(--green)}.rRVal.lose{color:#f54}.rResultBtn{background:linear-gradient(180deg,#1e2e1e,#141e14);border:1px solid #3a5a3a;color:#8b8;font-size:.88rem;padding:11px 32px;border-radius:3px;cursor:pointer;font-family:inherit;letter-spacing:.12em;transition:all .15s}.rResultBtn:hover{background:linear-gradient(180deg,#2e3e2e,#1e2e1e);color:#ada;border-color:#5a8a5a;box-shadow:0 0 12px #64c86433}.mapTile{border-radius:3px!important;border-width:1px!important;border-color:#ffffff14!important;background:#0d1016f2!important}.mapTile:before{opacity:.28!important;border-radius:2px}.mapTile.selected{border-color:var(--gold)!important;box-shadow:0 0 0 1px var(--gold),inset 0 0 12px #f0c04026!important}.mapTile.selected:before{opacity:.38!important}.mapTile.tileNeighbor{border-color:#e0303099!important;box-shadow:0 0 6px #e030304d!important}.mapTile.tileNeighbor:before{opacity:.22!important}.tileColorBar{height:4px!important}.tileFaction{font-size:.58rem;letter-spacing:.04em;opacity:.85}.commandBar{background:linear-gradient(180deg,#0e1520,#080e18)!important;border-top:2px solid #1e2a44!important}.cmdBtn{border-radius:2px!important;border-color:#50648c59!important;background:#ffffff0a!important;font-size:.66rem!important;transition:all .12s!important;letter-spacing:.03em}.cmdBtn:hover:not(:disabled){background:#5078b42e!important;border-color:#508cc880!important}.cmdBtn:disabled{opacity:.35!important}.cmdBtnAttack{background:#b41e1e26!important;border-color:#c8323280!important;color:#f66!important;box-shadow:inset 0 0 8px #c832321a}.cmdBtnAttack:hover:not(:disabled){background:#c828284d!important;box-shadow:0 0 10px #c8323266,inset 0 0 8px #c8323226}.cmdBtnEnd{background:linear-gradient(180deg,#c81e1e40,#a0141433)!important;border-color:#c8323299!important;color:#f44!important;font-size:.72rem!important}.cmdBtnEnd:hover:not(:disabled){background:linear-gradient(180deg,#c81e1e66,#a0141459)!important}.mapHeader{background:linear-gradient(180deg,#12182a,#0e1222)!important;border-bottom:2px solid #1e2a44!important}.tabBar{background:#080c14fa!important;border-bottom:1px solid #1e2a44!important;gap:0!important}.tabBar button{border-radius:0!important;border-right:1px solid #1a2438!important;font-size:.66rem!important;letter-spacing:.06em!important;color:#5a7090!important;transition:all .12s!important}.tabBar button:hover{background:#5078b41f!important;color:#8ac!important}.tabBar button.isSelected{background:#28467840!important;color:var(--gold)!important;border-bottom:2px solid var(--gold)!important}.regionPanel{border:1px solid #1e2a38!important;background:#0a0e16f2!important}.regionPanelTitle{background:linear-gradient(90deg,#1a2a3e,#0f1a2a)!important;border-bottom:1px solid #2a3a50!important;letter-spacing:.1em!important}.officerMiniRow{border:1px solid #1e2838!important;background:#0c1018e6!important}.officerCard{width:100%;background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:hidden;transition:all .15s;text-align:left;display:block}.officerCard.isSelected{border-color:var(--gold);box-shadow:0 0 14px #f0c0404d;background:#f0c0400a}.officerCard.isWounded{border-color:#e0505080}.officerCardHeader{display:flex;gap:10px;padding:10px 12px 8px;align-items:flex-start}.officerPortraitWrap{position:relative;flex-shrink:0;border-radius:4px;overflow:visible}.officerPortraitWrap svg{border-radius:4px;display:block}.roleTagNew{position:absolute;bottom:-4px;right:-4px;font-size:.55rem;font-weight:900;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.6);z-index:5}.selectedBadgeNew{position:absolute;top:-4px;left:-4px;font-size:.5rem;font-weight:900;background:var(--gold);color:#000;padding:2px 5px;border-radius:3px;z-index:5;letter-spacing:.04em}.officerInfo{flex:1;min-width:0}.officerName{font-size:.92rem;font-weight:700;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.officerTitle{font-size:.62rem;color:var(--muted);margin-bottom:2px}.officerFaction{font-size:.6rem;margin-bottom:3px;opacity:.9}.officerLevel{font-size:.6rem;color:var(--muted);margin-bottom:6px}.statRow{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--border);border-radius:3px;overflow:hidden}.statCell{padding:4px 2px;text-align:center;border-right:1px solid var(--border);background:#ffffff03}.statCell:last-child{border-right:none}.statName{font-size:.52rem;color:var(--muted);display:block}.statVal{font-size:.8rem;font-weight:700}.statVal.high{color:#f0c040}.statVal.vhigh{color:#ff9040}.officerCardBody{padding:6px 12px 8px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:5px}.troopMeter{display:flex;align-items:center;gap:8px}.troopBar{flex:1;height:5px;background:#ffffff14;border-radius:99px;overflow:hidden}.troopFill{height:100%;background:linear-gradient(90deg,var(--blue),#60b0ff);border-radius:99px;transition:width .3s}.troopFill.low{background:linear-gradient(90deg,var(--red),var(--red2))}.troopCount{font-size:.62rem;color:var(--muted);white-space:nowrap}.staminaBarWrap{display:flex;align-items:center;gap:8px}.staminaBar{flex:1;height:4px;background:#ffffff0f;border-radius:99px;overflow:hidden}.staminaFill{height:100%;background:linear-gradient(90deg,#60c080,#80e0a0);border-radius:99px;transition:width .3s}.staminaFill.low{background:linear-gradient(90deg,#e06030,#ff8050)}.staminaLabel{font-size:.58rem;color:var(--muted);white-space:nowrap}.skillTags{display:flex;flex-wrap:wrap;gap:4px;margin-top:1px}.regionOfficerList{margin-top:10px}.regionOfficerListTitle{font-size:.62rem;color:var(--muted);letter-spacing:.08em;padding:4px 14px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:2px}.regionOfficerRow.selected{background:#f0c04012}.regionOfficerInfo{flex:1;min-width:0}.regionOfficerSub{display:flex;gap:8px;font-size:.6rem;color:var(--muted);margin-top:2px}.regionOfficerHint{font-size:.55rem;color:var(--gold);margin-top:2px;opacity:.75}.roninSection{margin-top:10px;border-top:1px solid rgba(255,255,255,.06)}.roninRow{opacity:.85}.hireBtn{display:inline-block;margin-top:4px;font-size:.58rem;padding:3px 10px;border-radius:3px;border:1px solid rgba(240,192,64,.45);background:#f0c0401a;color:var(--gold);cursor:pointer;transition:background .15s}.hireBtn:hover{background:#f0c04038}.battleStage{background:radial-gradient(ellipse at 50% 15%,rgba(95,78,36,.18),transparent 52%),linear-gradient(180deg,#070912,#07090d)!important}.rTopHud{height:44px!important;background:linear-gradient(180deg,#151b29,#0b1019)!important;border-bottom:1px solid rgba(240,192,64,.25)!important;box-shadow:0 8px 18px #0000005c}.rHudLabel{color:#a8c5e6!important;font-weight:700}.rHudLabel.def{color:#f0a4a0!important}.rHudSeg{height:12px;border-radius:2px!important}.rHudSeg.filled-atk{background:linear-gradient(180deg,#5bb2ff,#1d70c2)!important}.rHudSeg.filled-def{background:linear-gradient(180deg,#ff6a85,#c61343)!important}.rHudCenter{min-width:108px!important}.rHudTitle{font-size:.66rem!important;color:#f3d579!important;text-shadow:0 1px 0 #000}.rHudRound{color:#99a4b8!important}.rFieldArea{height:min(36dvh,264px)!important;min-height:212px;background:linear-gradient(180deg,rgba(14,18,25,.36) 0%,transparent 26%),radial-gradient(ellipse at 18% 68%,rgba(74,109,58,.26) 0%,transparent 32%),radial-gradient(ellipse at 82% 68%,rgba(123,50,55,.22) 0%,transparent 34%),linear-gradient(180deg,#1a2430,#25354a 28%,#4c4232 29%,#806b43 55%,#66583a)!important;border-bottom:2px solid #202432!important;box-shadow:inset 0 -18px 34px #0006}.rFieldArea:before{content:"";position:absolute;inset:24% 0 auto;height:52px;background:linear-gradient(90deg,rgba(20,22,28,.82) 0 9%,transparent 9% 91%,rgba(20,22,28,.82) 91%),repeating-linear-gradient(90deg,#231d18d6 0 18px,#141210e6 18px 21px);border-top:2px solid rgba(245,222,150,.18);border-bottom:2px solid rgba(0,0,0,.42);opacity:.88}.rFieldArea:after{bottom:62px!important;height:3px!important;background:linear-gradient(90deg,transparent,rgba(255,235,170,.22),transparent)!important}.rFieldBg{background:radial-gradient(ellipse at 50% 105%,rgba(0,0,0,.34),transparent 62%),repeating-linear-gradient(0deg,rgba(255,255,255,.045) 0 1px,transparent 1px 22px),repeating-linear-gradient(90deg,rgba(0,0,0,.12) 0 1px,transparent 1px 34px)!important}.rFieldBanner{position:absolute;top:8px;min-width:82px;max-width:38%;padding:5px 9px;background:linear-gradient(180deg,var(--banner-color, #666),rgba(0,0,0,.62));border:1px solid rgba(255,255,255,.24);color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.06em;text-shadow:0 1px 2px #000;z-index:7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rFieldBanner.atk{left:8px;border-radius:3px 10px 10px 3px}.rFieldBanner.def{right:8px;text-align:right;border-radius:10px 3px 3px 10px}.rTroopLine{position:absolute!important;inset:0 auto 0 0;width:50%;padding:0!important;display:block!important;z-index:4;pointer-events:none}.rTroopLine.def{left:auto;right:0;flex-direction:initial!important}.rTroopUnit{position:absolute;width:64px;height:78px;transform-origin:50% 100%;filter:drop-shadow(0 9px 5px rgba(0,0,0,.42))}.rTroopLine.atk .slot0{left:46%;bottom:31px;z-index:8;transform:scale(1.14)}.rTroopLine.atk .slot1{left:28%;bottom:42px;z-index:7;transform:scale(1.02)}.rTroopLine.atk .slot2{left:13%;bottom:73px;z-index:5;transform:scale(.86);opacity:.9}.rTroopLine.atk .slot3{left:7%;bottom:28px;z-index:6;transform:scale(.95);opacity:.96}.rTroopLine.atk .slot4{left:33%;bottom:94px;z-index:4;transform:scale(.78);opacity:.82}.rTroopLine.atk .slot5{left:2%;bottom:91px;z-index:3;transform:scale(.74);opacity:.78}.rTroopLine.def .slot0{right:46%;bottom:31px;z-index:8;transform:scale(1.14)}.rTroopLine.def .slot1{right:28%;bottom:42px;z-index:7;transform:scale(1.02)}.rTroopLine.def .slot2{right:13%;bottom:73px;z-index:5;transform:scale(.86);opacity:.9}.rTroopLine.def .slot3{right:7%;bottom:28px;z-index:6;transform:scale(.95);opacity:.96}.rTroopLine.def .slot4{right:33%;bottom:94px;z-index:4;transform:scale(.78);opacity:.82}.rTroopLine.def .slot5{right:2%;bottom:91px;z-index:3;transform:scale(.74);opacity:.78}.rTroopUnit.attacking .battleMiniSprite.atk{animation:miniAdvanceAtk .43s ease-out}.rTroopUnit.attacking .battleMiniSprite.def{animation:miniAdvanceDef .43s ease-out}@keyframes miniAdvanceAtk{0%,to{transform:translate(0) translateY(0)}45%{transform:translate(22px) translateY(-4px)}}@keyframes miniAdvanceDef{0%,to{transform:translate(0) translateY(0)}45%{transform:translate(-22px) translateY(-4px)}}.battleMiniSprite{display:block;width:100%;height:100%}.battleMiniSprite svg{width:100%;height:100%;overflow:visible}.battleMiniSprite.is-hit{animation:miniHit .26s ease-out}.battleMiniSprite.is-defeated{filter:grayscale(.78) brightness(.5);transform:rotate(-8deg) translateY(8px)}.battleMiniSprite.card{width:66px;height:74px;margin:-8px auto -5px}@keyframes miniHit{0%,to{transform:translate(0)}25%{transform:translate(-5px)}60%{transform:translate(5px)}}.rDmgDisplay{top:auto!important;bottom:12px;gap:9px!important;z-index:12!important;padding:3px 10px;border-radius:999px;background:#00000057;border:1px solid rgba(255,255,255,.1)}.rDmgNum{font-size:clamp(1.45rem,7vw,2.25rem)!important;letter-spacing:.03em}.rFloat{font-size:1.55rem!important;z-index:18!important}.rFloat.atk{left:26%!important}.rFloat.def{right:26%!important}.rSlashEffect{position:absolute;left:18%;right:18%;top:20%;height:56%;z-index:16;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.8),transparent 20%),conic-gradient(from 235deg at 50% 50%,transparent 0deg,rgba(255,255,255,.86) 32deg,rgba(175,120,255,.3) 54deg,transparent 80deg);mix-blend-mode:screen;clip-path:polygon(0 56%,46% 32%,100% 0,58% 50%,100% 100%,45% 64%);animation:slashCut .54s ease-out forwards}@keyframes slashCut{0%{opacity:0;transform:scaleX(.55) rotate(-7deg)}38%{opacity:1}to{opacity:0;transform:scaleX(1.05) rotate(2deg)}}.rBattleSides{background:linear-gradient(90deg,rgba(30,64,106,.2),transparent 47%,rgba(127,34,48,.2)),#070a10!important}.rBattleSide{padding:6px!important}.rCardGrid{gap:5px!important}.rCard{border-radius:4px!important;background:linear-gradient(180deg,#121927,#090e16)!important;box-shadow:inset 0 0 0 1px #ffffff09}.rPortrait{height:64px!important;background:radial-gradient(ellipse at 50% 80%,rgba(255,255,255,.09),transparent 48%),linear-gradient(180deg,#ffffff0a,#0003)}.rPortrait:after{background:linear-gradient(180deg,transparent 56%,rgba(0,0,0,.62) 100%)!important}.rCardName{font-size:.62rem!important;font-weight:700;color:#d9dde8!important}.rStatChip{border-radius:2px;padding:1px 3px;background:#ffffff0e}.rFooterBar{background:linear-gradient(180deg,#101722,#070b12)!important;border-top-color:#f0c0403d!important}@media(max-width:380px){.rFieldArea{min-height:198px}.rTroopUnit{width:56px;height:70px}.battleMiniSprite.card{width:58px;height:66px}.rPortrait{height:58px!important}}.titleScreen{justify-content:flex-end!important;padding:30px 22px 64px!important;background:#06080d!important}.titleScreen:before{z-index:1;background:linear-gradient(180deg,#00000014,#000000ad 58%,#000000eb),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,.018) 40px)!important}.titleArtLayer{position:absolute;inset:0;overflow:hidden}.titleMapArt{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.42;filter:saturate(.82) contrast(1.08) brightness(.7);transform:scale(1.08)}.titleCharArt{position:absolute;left:50%;bottom:176px;width:min(860px,158vw);max-width:none;transform:translate(-50%);opacity:.72;filter:saturate(1.05) contrast(1.12) drop-shadow(0 18px 22px rgba(0,0,0,.68));-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 9%,#000 91%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 9%,#000 91%,transparent 100%)}.titleContent{position:relative;z-index:2;width:100%;text-align:center;margin-bottom:28px;text-shadow:0 3px 12px rgba(0,0,0,.92)}.titleEyebrow{margin-bottom:8px!important;letter-spacing:.24em!important;color:#f5d16f!important}.titleLogo{font-size:clamp(2.2rem,11vw,3.8rem)!important;margin-bottom:4px!important}.titleSub{margin-bottom:0!important;color:#e8eaf0e0!important}.titleMenus,.titleDiffRow,.titleVersion{position:relative;z-index:2}.titleBtn{min-height:48px;border-radius:6px!important;box-shadow:0 8px 22px #00000057}.mapContainer{padding:10px 10px 0!important}.illustratedMapShell{max-width:500px;margin:0 auto 10px}.mapArtFrame{position:relative;width:100%;aspect-ratio:.76;min-height:430px;border:1px solid rgba(240,192,64,.24);border-radius:8px;overflow:hidden;background:#172018;box-shadow:inset 0 0 0 1px #ffffff0d,0 12px 28px #00000057}.mapArtImage{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(1.02) contrast(1.02) brightness(.86);transform:scale(1.02);-webkit-user-select:none;user-select:none;pointer-events:none}.mapArtFrame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),transparent 34%,rgba(0,0,0,.2)),radial-gradient(ellipse at 50% 50%,transparent 42%,rgba(0,0,0,.28) 100%);pointer-events:none}.mapLinkLayer{position:absolute;inset:0;z-index:2;pointer-events:none}.mapRoute{stroke:#fff3b942;stroke-width:.55;stroke-linecap:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.mapRoute.hot{stroke:#f0c040db;stroke-width:.9}.mapRegionNode{position:absolute;z-index:4;width:78px;min-height:46px;transform:translate(-50%,-50%);padding:7px 7px 6px 18px;border-radius:7px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#12161ceb,#070a0edb),linear-gradient(90deg,color-mix(in srgb,var(--node-color) 46%,transparent),transparent);color:#f3f0e7;text-align:left;box-shadow:0 6px 14px #0000006b;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.mapRegionNode:before{content:"";position:absolute;left:8px;top:9px;bottom:9px;width:4px;border-radius:99px;background:var(--node-color);box-shadow:0 0 8px var(--node-color)}.mapRegionNode.selected{z-index:6;border-color:var(--gold);box-shadow:0 0 0 1px #f0c040b3,0 0 20px #f0c04066;transform:translate(-50%,-50%) scale(1.06)}.mapRegionNode.neighbor{border-color:#ff645094}.mapRegionNode.threat-chance .nodeMeta{color:#9ff2a8}.mapRegionNode.threat-even .nodeMeta{color:#f3d579}.mapRegionNode.threat-danger .nodeMeta{color:#ff9a86}.mapRegionNode.player .nodeMeta{color:#f3d579}.nodeFlag{position:absolute;top:-7px;left:10px;width:14px;height:18px;background:var(--node-color);clip-path:polygon(0 0,100% 0,100% 72%,50% 56%,0 72%);border:1px solid rgba(255,255,255,.24)}.nodeName{display:block;font-size:.72rem;font-weight:900;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nodeMeta{display:block;margin-top:2px;font-size:.52rem;line-height:1.2;color:#dce2ecbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nodeHp{display:block;margin-top:5px;height:3px;background:#ffffff1f;border-radius:99px;overflow:hidden}.nodeHp span{display:block;height:100%;background:linear-gradient(90deg,var(--node-color),#f6d978);border-radius:inherit}.mapLegendPanel{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;margin-top:8px;border:1px solid rgba(255,255,255,.08);border-radius:6px;background:#0a0e16db}.mapLegendPanel strong{display:block;font-size:.72rem;color:var(--gold);margin-bottom:2px}.mapLegendPanel span{font-size:.58rem;color:var(--muted);line-height:1.35}.mapLegendKeys{display:flex;flex-wrap:wrap;justify-content:flex-end;align-content:center;gap:4px 8px;min-width:108px}.mapLegendKeys span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.legendDot{width:7px;height:7px;border-radius:50%;display:inline-block}.legendDot.player{background:var(--gold)}.legendDot.chance{background:#6fe58a}.legendDot.danger{background:#ff7b66}.attackAdvisor{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.06);background:#ffffff06}.attackAdvisor span{flex-shrink:0;padding:3px 8px;border-radius:999px;font-size:.56rem;font-weight:900;letter-spacing:.06em}.attackAdvisor strong{font-size:.64rem;color:var(--text2);text-align:right;line-height:1.35}.attackAdvisor.ready span{color:#150a06;background:#f0c040}.attackAdvisor.home span{color:#cbd8ea;background:#5a78a03d}.attackAdvisor.blocked span{color:#ffb0a0;background:#e030302e}.cmdGridFull{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}.cmdGridFull .cmdBtnEnd{grid-column:span 2}.cmdGridFull select{min-height:28px}.officerArtBanner{position:relative;height:116px;margin:0 0 10px;border-radius:7px;overflow:hidden;border:1px solid rgba(240,192,64,.18);background:#10151d}.officerArtBanner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;filter:saturate(1.06) contrast(1.08)}.officerArtBannerShade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78),transparent 48%,rgba(0,0,0,.16))}.officerArtBannerText{position:absolute;left:12px;bottom:10px;display:flex;flex-direction:column;gap:2px;text-shadow:0 2px 8px rgba(0,0,0,.9)}.officerArtBannerText span{font-size:.64rem;color:var(--muted);letter-spacing:.16em}.officerArtBannerText strong{font-size:1rem;color:var(--gold)}.officerPortraitWrap{width:74px;min-height:96px}.officerArtCrop{width:72px;height:94px;border-radius:5px;border:1px solid color-mix(in srgb,var(--officer-color, #f0c040) 54%,rgba(255,255,255,.18));background-image:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.64)),url(/assets/art/character-design-sheet.png);background-size:auto 118%;background-position:var(--officer-art-position, 50% 45%);background-repeat:no-repeat;box-shadow:inset 0 0 0 1px #ffffff0f,0 5px 12px #00000057}.officerPortraitMedallion{position:absolute;right:-4px;bottom:-4px;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.18);box-shadow:0 4px 8px #00000080}@media(max-width:380px){.mapArtFrame{min-height:398px}.mapRegionNode{width:70px;min-height:42px;padding-left:16px}.nodeName{font-size:.65rem}.nodeMeta{font-size:.49rem}.titleCharArt{bottom:184px;width:176vw}}
