:root{
  --bg:#10100f;--bg2:#181713;--bg3:#242117;--panel:#1b1914;--panel2:#262116;
  --line:#4a3c24;--gold:#e0b84d;--text:#f3ead7;--muted:#a69a82;
  --red:#e05a4f;--green:#72d27d;--blue:#6bbdff;--purple:#b48cff;
}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:radial-gradient(circle at 50% 10%,#2d2415,#0c0c0b 70%);color:var(--text);font-family:system-ui,Segoe UI,Arial,sans-serif;overflow:hidden}button{font:inherit}#app{height:100%}.hidden{display:none!important}
.title-screen{height:100dvh;display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:22px;gap:16px}.title-screen.active{display:flex}.logo{font-family:Georgia,serif;font-size:clamp(32px,9vw,70px);line-height:.9;color:var(--gold);letter-spacing:3px;text-shadow:0 0 25px #000}.logo span{font-size:.6em;color:#f5d47a}.subtitle{max-width:640px;color:var(--muted);margin:0}.mode-cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.mode-card{width:min(310px,90vw);background:linear-gradient(180deg,#272116,#15120e);border:2px solid var(--line);color:var(--text);border-radius:14px;padding:16px;cursor:pointer;text-align:left;box-shadow:0 8px 0 #000}.mode-card:hover{border-color:var(--gold);transform:translateY(-2px)}.mode-card b{display:block;color:var(--gold);font-size:18px;margin-bottom:6px}.mode-card span{color:var(--muted);font-size:14px}.mode-card.danger b{color:#ff9a76}.secondary,.primary,.mini-btn{background:#2a2418;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 14px;cursor:pointer}.primary{background:#8a5d18;border-color:#e0b84d;color:white;font-weight:700}.secondary:hover,.mini-btn:hover,.primary:hover{filter:brightness(1.15)}.tiny{font-size:12px;color:#766d5d}
.game-screen{display:none;height:100dvh;grid-template-rows:auto 1fr}.game-screen.active{display:grid}.topbar{height:58px;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:2px solid #000;background:linear-gradient(180deg,#252016,#13110d)}.city-label{font-weight:900;color:var(--gold);font-size:18px}.run-label{font-size:12px;color:var(--muted)}.top-actions{display:flex;gap:6px}.mini-btn{padding:6px 8px;font-size:12px;border-radius:8px}.mini-btn.active{border-color:var(--gold);color:var(--gold)}
.layout{height:calc(100dvh - 58px);display:grid;grid-template-columns:82px minmax(0,1fr)72px;gap:6px;padding:6px;overflow:hidden}.side-panel{background:rgba(20,18,14,.92);border:1px solid var(--line);border-radius:12px;padding:6px;overflow:hidden}.side-title{font-size:10px;text-align:center;color:var(--muted);letter-spacing:1px;margin:2px 0 6px}.party-list,.bag-list{display:flex;flex-direction:column;gap:6px;height:calc(100% - 26px);overflow-y:auto}.party-slot{position:relative;min-height:58px;background:#241f15;border:1px solid #443620;border-radius:10px;padding:4px;text-align:center;cursor:pointer}.party-slot.front{box-shadow:inset 3px 0 #d8942d}.party-slot.back{box-shadow:inset 3px 0 #629ad6}.party-slot.dead{filter:grayscale(1);opacity:.55}.party-icon{font-size:21px}.party-name{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-class{font-size:8px;color:var(--muted)}.mini-hp{height:5px;background:#080807;border:1px solid #000;border-radius:4px;overflow:hidden;margin-top:3px}.mini-hp>span{display:block;height:100%;background:linear-gradient(90deg,#44c767,#b4e65f);transition:width 1.15s linear}.slot-tags{position:absolute;top:2px;right:3px;font-size:9px}.bag-item{background:#241f15;border:1px solid #443620;border-radius:10px;padding:7px 4px;text-align:center;cursor:pointer}.bag-item .ico{font-size:20px}.bag-item .qty{font-size:10px;color:var(--muted)}.gold-box{margin-top:6px;display:flex;gap:4px;align-items:center;justify-content:center;background:#2a2214;border:1px solid var(--line);border-radius:10px;padding:7px;font-size:13px}
.map-panel{position:relative;background:linear-gradient(180deg,#17140f,#0f0e0c);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto}.synergy-bar{min-height:44px;display:flex;gap:5px;align-items:center;overflow-x:auto;padding:6px;border-bottom:1px solid #2d2619}.syn-pill{display:flex;align-items:center;gap:3px;white-space:nowrap;background:#241f15;border:1px solid #4a3c24;border-radius:999px;padding:5px 7px;font-size:11px}.syn-pill.active{border-color:var(--gold);box-shadow:0 0 10px rgba(224,184,77,.22)}.syn-pill .tier{color:var(--gold);font-weight:800}.map-wrap{position:relative;overflow:hidden;background:radial-gradient(circle at center,#2b2a21,#10100d 68%)}.map-svg{position:absolute;inset:0;width:100%;height:100%}.map-node{position:absolute;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;border:2px solid #554427;background:#201b13;color:var(--text);display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 4px 0 #000;cursor:pointer;z-index:2}.map-node .nicon{font-size:20px}.map-node .nlabel{font-size:8px;color:var(--muted)}.map-node.accessible{border-color:#fff2a7;box-shadow:0 0 16px rgba(255,232,130,.55),0 4px 0 #000;animation:pulse 1.4s infinite}.map-node.visited{filter:grayscale(.8);opacity:.55;box-shadow:none}.map-node.locked{opacity:.35;cursor:default}.map-node.boss{border-color:#d75bff}.last-event{border-top:1px solid #2d2619;color:#cbbf9d;min-height:42px;padding:8px;font-size:12px;line-height:1.25;background:#15130e}@keyframes pulse{50%{transform:translate(-50%,-50%) scale(1.06)}}
.modal-root{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:40;display:flex;align-items:center;justify-content:center;padding:12px}.modal{width:min(760px,96vw);max-height:90dvh;overflow:auto;background:#17140f;border:2px solid var(--gold);border-radius:18px;box-shadow:0 18px 0 #000;padding:14px}.modal h2{margin:0 0 4px;color:var(--gold)}.modal p{color:var(--muted);margin:4px 0 10px}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.choice-card{background:#231d14;border:1px solid #4b3b23;border-radius:14px;padding:10px;cursor:pointer}.choice-card:hover{border-color:var(--gold)}.hero-title{display:flex;gap:8px;align-items:center}.hero-ico{font-size:28px}.hname{font-weight:800}.meta{font-size:12px;color:var(--muted)}.stat-row{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0}.stat{background:#12100c;border:1px solid #392e1d;border-radius:999px;padding:3px 7px;font-size:12px}.flavor{font-style:italic;color:#ceb987!important;font-size:12px}.equip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.equip-slot{background:#241e14;border:1px solid var(--line);border-radius:10px;padding:8px;min-height:70px}.close-row{text-align:center;margin-top:12px}
.battle-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:30;display:flex;align-items:center;justify-content:center;padding:8px}.battle-card{width:min(920px,99vw);height:min(94dvh,820px);background:#12100c;border:2px solid var(--line);border-radius:16px;box-shadow:0 16px 0 #000;display:grid;grid-template-rows:auto 1fr auto auto auto;overflow:hidden}.battle-head{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid #342819}.battle-head h2{margin:0;color:var(--gold);font-size:18px}.battle-head p{margin:2px 0 0;color:var(--muted);font-size:12px}.speed-box{display:flex;gap:4px;align-items:flex-start}.narrator{margin:0 10px 8px;background:linear-gradient(180deg,#2b2115,#160f0b);border:1px solid #d0a749;border-radius:12px;padding:10px 12px;color:#ffe5a3;line-height:1.35;box-shadow:0 0 24px rgba(224,184,77,.18)}.narrator b{color:#fff}.battle-field{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;min-height:0}.battle-side-title{font-size:11px;color:var(--muted);text-align:center;margin-bottom:4px}.enemy-title{color:#ffad9f}.battle-grid{height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,1fr);gap:6px}.unit{position:relative;background:#211b12;border:1px solid #443620;border-radius:12px;padding:6px;overflow:hidden;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto auto;column-gap:6px;align-items:center;transition:filter .2s,transform .2s}.unit.front{border-left:4px solid #d8942d}.unit.back{border-left:4px solid #629ad6}.unit.active{box-shadow:0 0 14px rgba(255,226,129,.55);transform:scale(1.01)}.unit.dead{filter:grayscale(1);opacity:.45}.unit .avatar{grid-row:1/4;font-size:28px;text-align:center}.unit .uname{font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit .uclass{font-size:10px;color:var(--muted)}.hpbar{grid-column:2;height:9px;background:#060605;border:1px solid #000;border-radius:999px;overflow:hidden}.hpfill{height:100%;background:linear-gradient(90deg,#37b85b,#dce75a);width:100%;transition:width 1.15s linear}.unit.enemy .hpfill{background:linear-gradient(90deg,#d54643,#e7a45a)}.unit-badge{position:absolute;right:5px;top:4px;font-size:10px;color:var(--gold)}.float-num{position:absolute;left:50%;top:35%;transform:translate(-50%,-50%);font-weight:900;font-size:17px;pointer-events:none;animation:floatUp 1s forwards;text-shadow:0 2px #000}.float-num.damage{color:#ff6b5c}.float-num.heal{color:#6df083}.float-num.block{color:#9ad1ff}.float-num.buff{color:#ffd766}@keyframes floatUp{to{opacity:0;transform:translate(-50%,-130%) scale(1.1)}}.projectile{position:fixed;width:12px;height:12px;border-radius:50%;z-index:60;pointer-events:none;box-shadow:0 0 16px currentColor;transition:transform .42s ease-in,opacity .12s}.projectile.slash{width:18px;height:4px;border-radius:2px}.battle-status{min-height:34px;padding:8px;text-align:center;color:var(--muted);font-size:12px;border-top:1px solid #342819}.battle-card .primary{margin:0 auto 10px;width:max-content}
@media (min-width:720px){.layout{grid-template-columns:112px minmax(0,1fr)100px}.party-slot{min-height:64px}.bag-item{padding:9px 5px}.map-node{width:62px;height:62px}.battle-grid{grid-template-rows:repeat(3,1fr)}}
@media (max-width:430px){.layout{grid-template-columns:72px minmax(0,1fr)58px;gap:4px;padding:4px}.side-panel{padding:4px}.party-slot{min-height:54px}.party-icon{font-size:18px}.party-name{font-size:8px}.bag-item .ico{font-size:18px}.map-node{width:48px;height:48px}.map-node .nlabel{display:none}.battle-card{height:97dvh}.battle-field{gap:4px;padding:5px}.unit{grid-template-columns:28px 1fr;padding:4px}.unit .avatar{font-size:22px}.unit .uname{font-size:10px}.unit .uclass{font-size:8px}.narrator{font-size:13px}}


/* v4.3 stability/clarity fixes */
.bag-item.disabled{opacity:.35;filter:grayscale(1);cursor:not-allowed;pointer-events:none}
.skill-box{background:#14110d;border:1px solid #3d3020;border-radius:10px;padding:7px 8px;margin:7px 0;font-size:12px;line-height:1.35}
.skill-box b{display:block;color:var(--gold);margin-bottom:2px}
.skill-box span{display:block;color:#d4c7a8}
.skill-box em{display:block;color:#9ebff5;font-style:normal;margin-top:2px;font-size:11px}
.only-svg-map{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.map-edge{stroke:#332918;stroke-width:.8;stroke-dasharray:1.6 1.6}.map-edge.active{stroke:#8e7648;stroke-width:1;stroke-dasharray:none}.map-node-svg .node-ring{fill:#201b13;stroke:#554427;stroke-width:.75;filter:drop-shadow(0 1px 0 #000)}.map-node-svg.accessible .node-ring{stroke:#fff2a7;stroke-width:1.1;filter:drop-shadow(0 0 2px rgba(255,232,130,.85))}.map-node-svg.visited{opacity:.55;filter:grayscale(.8)}.map-node-svg.locked{opacity:.32}.map-node-svg.boss .node-ring{stroke:#d75bff}.map-node-svg.accessible{transform-box:fill-box;transform-origin:center}.map-node-svg.accessible .node-ring{animation:nodeGlow 1.4s infinite}.node-icon{font-size:5.5px;pointer-events:none}.node-label{font-size:2.2px;fill:#a69a82;pointer-events:none}.map-node-svg.accessible .node-label{fill:#ffe6a0}@keyframes nodeGlow{50%{stroke-width:1.45;filter:drop-shadow(0 0 3px rgba(255,232,130,.95))}}

/* v5 polish */
body.game-over .map-wrap,
body.game-over .bag-list,
body.game-over .party-list,
body.game-over #btn-team,
body.game-over #btn-save-exit { pointer-events:none; filter:grayscale(.8) brightness(.7); }
.battle-card{grid-template-rows:auto 1fr auto auto auto;}
.narrator{min-height:72px;max-height:120px;overflow:auto;margin:0 10px 8px;font-size:14px;}
.battle-status{font-weight:700;color:#d8c38f;background:#100d09;}
.hpfill,.mini-hp>span{transition:width 1.25s cubic-bezier(.2,.65,.2,1)}
.choice-card .skill-box{min-height:66px}.choice-card .skill-box span{font-size:12px}
.map-node-svg.accessible{animation:none!important}
.map-node-svg{will-change:auto}.node-ring{vector-effect:non-scaling-stroke}
@media (max-width:430px){.narrator{min-height:84px;font-size:12px}.battle-status{font-size:11px}.battle-card{height:98dvh}.choice-grid{grid-template-columns:1fr}}


/* v5.1 gameplay polish */
.equip-grid.one-slot{grid-template-columns:1fr}.equip-slot.single{min-height:88px}.choice-card .meta{line-height:1.35}.choice-card .hname{letter-spacing:.2px}.choice-card .stat-row .stat{margin-bottom:2px}.bag-item[title*="Manual"],.bag-item[title*="Tomo"]{border-color:#6f8bdc;box-shadow:0 0 8px rgba(111,139,220,.18)}.bag-item[title*="Poción"],.bag-item[title*="Venda"]{border-color:#4d9f68;box-shadow:0 0 8px rgba(77,159,104,.15)}


/* v5.3 REAL FAN DEMO — big party UI + visible LVL/item + actual AO-style sprites */
:root{--partyW:168px;--bagW:92px}
.layout{grid-template-columns:var(--partyW) minmax(0,1fr) var(--bagW)!important;gap:8px!important;}
.party-panel{padding:8px!important;}
.party-list{gap:8px!important;}
.party-slot{min-height:118px!important;padding:8px 6px 7px!important;border-radius:14px!important;display:grid!important;grid-template-columns:52px 1fr!important;grid-template-rows:auto auto auto auto 10px!important;column-gap:7px!important;align-items:center!important;text-align:left!important;position:relative!important;background:linear-gradient(180deg,#2a2218,#17130e)!important;border:1px solid #5a4528!important;box-shadow:0 3px 0 #000!important;}
.party-slot.front{border-left:4px solid #d8942d!important}.party-slot.back{border-left:4px solid #629ad6!important}.party-slot.dead{opacity:.45;filter:grayscale(1)}
.party-portrait{grid-row:1/5;width:52px;height:64px;display:flex;align-items:flex-end;justify-content:center;background:#120f0b;border:1px solid #3b2e1d;border-radius:10px;overflow:hidden;image-rendering:pixelated;}
.party-portrait.empty{font-size:30px;align-items:center;color:#7b6a4a}.portrait-img{width:58px;height:58px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 #000)}
.party-name{font-size:12px!important;line-height:1.05!important;color:#fff4cd!important;font-weight:900!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:92px!important;}
.party-lvl{font-size:13px!important;color:#ffd76b!important;font-weight:900!important;letter-spacing:.3px!important;}
.party-class{font-size:9px!important;line-height:1.15!important;color:#b8a47c!important;white-space:normal!important;}
.party-item{font-size:9px!important;line-height:1.1!important;color:#9fd1ff!important;background:#101722!important;border:1px solid #233a55!important;border-radius:6px!important;padding:3px 4px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:92px!important;}
.party-slot .mini-hp{grid-column:1/3;width:100%!important;height:10px!important;margin-top:4px!important;}
.slot-tags{font-size:14px!important;right:6px!important;top:5px!important;background:#17130e;border:1px solid #4a3c24;border-radius:999px;padding:1px 4px;}
.side-title{font-size:13px!important;letter-spacing:1px!important;color:#ffd76b!important;}
.bag-item{min-height:56px!important}.bag-item .ico{font-size:24px!important}.bag-item .qty{font-size:12px!important}.gold-box{font-size:15px!important}
.choice-card{min-height:220px}.hero-ico.hero-sprite{width:66px;height:72px;background:#120f0b;border:1px solid #3b2e1d;border-radius:12px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;flex-shrink:0}.choice-sprite{width:68px;height:68px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 #000)}
.battle-sprite{width:44px;height:44px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 #000)}.unit .avatar{font-size:0!important;display:flex;align-items:flex-end;justify-content:center;}
.unit{grid-template-columns:46px 1fr!important}.unit .uname{font-size:12px!important}.unit .uclass{font-size:10px!important}
@media (max-width:760px){:root{--partyW:122px;--bagW:62px}.layout{gap:5px!important;padding:5px!important}.party-slot{min-height:106px!important;grid-template-columns:42px 1fr!important;column-gap:5px!important;padding:7px 5px!important}.party-portrait{width:42px;height:56px}.portrait-img{width:52px;height:52px}.party-name{font-size:10px!important;max-width:65px!important}.party-lvl{font-size:12px!important}.party-class,.party-item{font-size:8px!important;max-width:65px!important}.bag-item{padding:6px 3px!important}.side-title{font-size:10px!important}.syn-pill{font-size:10px!important;padding:4px 6px!important}.map-panel{min-width:0}}
@media (max-width:430px){:root{--partyW:108px;--bagW:54px}.party-slot{min-height:98px!important;grid-template-columns:38px 1fr!important}.party-portrait{width:38px;height:50px}.portrait-img{width:48px;height:48px}.party-name{font-size:9px!important;max-width:56px!important}.party-lvl{font-size:11px!important}.party-class,.party-item{font-size:7px!important;max-width:56px!important}.slot-tags{font-size:11px!important}.mini-hp{height:8px!important}.battle-grid{grid-template-columns:1fr!important;grid-template-rows:repeat(6,1fr)!important}.unit{min-height:54px}}


/* v5.4 VISUAL FAN DEMO — portraits left, full body in recruit/battle/sheet */
.party-portrait{background:radial-gradient(circle at 50% 30%,#2e2517,#0e0b08)!important;border-color:#725332!important;box-shadow:inset 0 0 0 1px #000,0 2px 0 #000!important;}
.portrait-img{width:72px!important;height:72px!important;object-fit:contain!important;object-position:center top!important;image-rendering:pixelated!important;filter:drop-shadow(0 2px 0 #000)!important;}
.choice-card{background:linear-gradient(180deg,#2a2116,#17110d)!important;}
.hero-ico.hero-sprite{width:82px!important;height:104px!important;background:radial-gradient(circle at 50% 35%,#312616,#0e0b08)!important;border:1px solid #725332!important;border-radius:12px!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;overflow:hidden!important;box-shadow:inset 0 0 0 1px #000!important;}
.choice-sprite{width:88px!important;height:100px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;filter:drop-shadow(0 3px 0 #000)!important;}
.unit .avatar{background:radial-gradient(circle at 50% 40%,#2a2115,#0d0a07);border:1px solid #49351f;border-radius:10px;min-height:58px;overflow:hidden;}
.battle-sprite{width:58px!important;height:64px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;filter:drop-shadow(0 3px 0 #000)!important;}
.hero-sheet-top{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;background:#21190f;border:1px solid #4b3721;border-radius:14px;padding:12px;margin-bottom:10px;}
.hero-sheet-sprite{height:180px;background:radial-gradient(circle at 50% 40%,#332618,#0b0907);border:1px solid #725332;border-radius:14px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px #000;}
.hero-sheet-sprite img{height:170px;width:130px;object-fit:contain;object-position:center bottom;image-rendering:pixelated;filter:drop-shadow(0 4px 0 #000);}
.letter-avatar{font-weight:900;color:#ffe6a8;background:#2a2116;border:1px solid #725332;border-radius:8px;padding:6px;}
.emoji-avatar{display:none!important;}
@media (max-width:760px){.hero-sheet-top{grid-template-columns:96px 1fr;gap:10px}.hero-sheet-sprite{height:132px}.hero-sheet-sprite img{height:126px;width:92px}.hero-ico.hero-sprite{width:68px!important;height:86px!important}.choice-sprite{width:74px!important;height:84px!important}.battle-sprite{width:48px!important;height:54px!important}.portrait-img{width:58px!important;height:58px!important}}


/* v5.7 portrait pass */
.party-slot{min-height:126px!important;grid-template-columns:78px 1fr!important;column-gap:9px!important;align-items:center!important;}
.party-portrait{width:76px!important;height:84px!important;align-items:flex-start!important;justify-content:center!important;padding-top:2px!important;}
.portrait-img{width:76px!important;height:76px!important;object-fit:contain!important;object-position:center top!important;image-rendering:pixelated!important;}
.party-name{font-size:13px!important;line-height:1.05!important;}
.party-lvl{font-size:15px!important;font-weight:900!important;color:#ffe49a!important;}
.party-class,.party-item{font-size:10px!important;line-height:1.15!important;}
.side-title{letter-spacing:1px!important;}
@media (max-width:760px){.party-slot{min-height:110px!important;grid-template-columns:60px 1fr!important}.party-portrait{width:58px!important;height:68px!important}.portrait-img{width:60px!important;height:60px!important}}


/* v6 AO real sprite polish */
.logo span{color:#7bd7ff!important;text-shadow:0 0 10px rgba(123,215,255,.45)}
.party-portrait{background:radial-gradient(circle at 50% 25%,#283044,#090806)!important;border:1px solid #8e6b37!important;box-shadow:inset 0 0 0 1px #000,0 0 10px rgba(255,200,110,.12)!important;}
.portrait-img{width:86px!important;height:86px!important;object-fit:contain!important;object-position:center top!important;image-rendering:pixelated!important;}
.choice-sprite{width:104px!important;height:116px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;}
.battle-sprite{width:68px!important;height:76px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;}
.hero-sheet-sprite img{width:120px!important;height:158px!important;object-fit:contain!important;image-rendering:pixelated!important;}
.party-slot{min-height:132px!important;}

/* v6.2 consistency pass */
.party-portrait{align-items:flex-start!important;justify-content:center!important;padding-top:0!important;}
.portrait-img{width:88px!important;height:88px!important;object-fit:cover!important;object-position:center top!important;image-rendering:pixelated!important;}
@media (max-width:760px){.portrait-img{width:64px!important;height:64px!important;}}


/* === v6.3 Medieval restructure === */
@font-face{font-family:'AOBody';src:url('../assets/theme/fonts/AlegreyaSansAO.ttf') format('truetype');font-weight:400;font-style:normal}
@font-face{font-family:'AOTitle';src:url('../assets/theme/fonts/Cardo.ttf') format('truetype');font-weight:700;font-style:normal}
:root{--gold:#d8b15e;--line:#6a512c;--text:#f3ead6;--muted:#c9b68d;--bg:#120d09}
html,body{background:#0f0a07 url('../assets/theme/principal.png') center/cover fixed no-repeat!important;color:var(--text)!important;font-family:'AOBody',Georgia,serif!important}
#app{min-height:100dvh;background:linear-gradient(180deg,rgba(7,4,2,.28),rgba(7,4,2,.56))}
.title-screen{background:linear-gradient(rgba(12,8,4,.52),rgba(12,8,4,.72)), url('../assets/theme/board.png') center/cover no-repeat!important}
.logo,.modal h2,.battle-head h2,.city-label{font-family:'AOTitle',Georgia,serif!important;letter-spacing:1px!important}
.logo{font-size:clamp(38px,9vw,74px)!important;text-shadow:0 2px 0 #000, 0 0 30px rgba(216,177,94,.35)!important}
.logo span{font-size:.45em!important}
.subtitle,.tiny,.run-label,.meta,.party-class,.party-item,.battle-status{font-family:'AOBody',Georgia,serif!important}
.mode-card,.side-panel,.map-panel,.modal,.battle-card,.topbar{background:linear-gradient(180deg,rgba(46,31,18,.94),rgba(19,12,8,.96))!important;border:2px solid var(--line)!important;box-shadow:0 8px 0 #000, inset 0 0 0 1px rgba(255,220,146,.06)!important}
.topbar{background:linear-gradient(180deg,rgba(55,36,20,.98),rgba(20,13,9,.98)),url('../assets/theme/papiro.png') center/cover!important}
.layout{grid-template-columns:170px minmax(0,1fr)110px!important;gap:10px!important;padding:10px!important}
.map-panel{background:linear-gradient(180deg,rgba(18,12,8,.76),rgba(18,12,8,.92)), url('../assets/theme/board.png') center/cover!important;border:2px solid var(--line);border-radius:18px;padding:10px;display:grid;grid-template-rows:auto 1fr auto;min-width:0;overflow:hidden}
.side-title{font-family:'AOTitle',Georgia,serif!important;font-size:13px!important;color:var(--gold)!important;letter-spacing:1px!important;margin:0 0 8px!important;text-shadow:0 1px 0 #000}
.party-slot{min-height:96px!important;grid-template-columns:54px 1fr!important;grid-template-rows:auto auto auto 10px!important;column-gap:8px!important;background:linear-gradient(180deg,#332313,#1a120d)!important;border:1px solid #785d34!important;border-radius:12px!important;padding:8px!important;box-shadow:0 3px 0 #000!important}
.party-slot .slot-tags{font-size:12px!important}
.party-portrait{width:52px!important;height:52px!important;grid-row:1/4;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,#47311b,#19120c);border:1px solid #6d5230;border-radius:10px;overflow:hidden}
.portrait-img{width:46px!important;height:46px!important;object-fit:contain!important;object-position:center center!important;image-rendering:pixelated!important;filter:drop-shadow(0 1px 0 #000)!important}
.party-name{font-family:'AOTitle',Georgia,serif!important;font-size:14px!important;line-height:1!important}
.party-lvl{font-size:12px!important;color:#ead9b5!important}
.party-class,.party-item{font-size:10px!important;line-height:1.1!important;color:var(--muted)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-hp{grid-column:1/3;height:8px!important;border:1px solid #000!important;background:#080603!important}
.bag-item{background:linear-gradient(180deg,#332313,#19120d)!important;border:1px solid #785d34!important}
.map-wrap{border:2px solid #5f4728;border-radius:16px;background:linear-gradient(180deg,rgba(20,13,9,.45),rgba(20,13,9,.15)), url('../assets/theme/papiro.png') center/cover!important;min-height:0}
.last-event,.narrator{background:linear-gradient(180deg,rgba(55,40,23,.96),rgba(29,20,14,.98)), url('../assets/theme/papiro.png') center/cover!important;border:1px solid #8b6a35!important;color:#f4e7c7!important;font-size:14px!important}
.syn-pill{background:rgba(44,30,17,.86)!important;border:1px solid #75562e!important;color:#f0e1b7!important}
.modal{background:linear-gradient(180deg,rgba(54,38,21,.97),rgba(21,14,10,.98)), url('../assets/theme/papiro.png') center/cover!important;border-radius:16px!important}
.choice-card{background:linear-gradient(180deg,rgba(60,42,24,.95),rgba(23,15,10,.95))!important;border:1px solid #7a5d34!important;min-height:230px!important}
.hero-ico.hero-sprite{width:78px!important;height:88px!important;background:radial-gradient(circle at 50% 35%,#47311b,#17100b)!important;border:1px solid #72552f!important}
.choice-sprite{width:78px!important;height:86px!important;object-position:center bottom!important}
.battle-overlay{background:rgba(8,5,3,.86)!important}
.battle-card{background:linear-gradient(180deg,rgba(36,23,14,.98),rgba(14,9,7,.99)), url('../assets/theme/combat.png') center/cover!important;border:2px solid #7a5d34!important;height:min(95dvh,900px)!important}
.battle-field{gap:12px!important;padding:12px!important}
.battle-side-title{font-family:'AOTitle',Georgia,serif!important;font-size:14px!important;color:#ead9b5!important}
.battle-grid{gap:8px!important}
.unit{grid-template-columns:72px 1fr!important;background:linear-gradient(180deg,rgba(55,39,24,.92),rgba(20,14,10,.96))!important;border:1px solid #7c5e37!important;min-height:84px;padding:8px!important}
.unit .avatar{min-height:68px!important;background:radial-gradient(circle at 50% 40%,#44301b,#150f0b)!important;border:1px solid #6d5230!important;border-radius:10px!important}
.battle-sprite{width:64px!important;height:72px!important;object-fit:contain!important;image-rendering:pixelated!important;filter:drop-shadow(0 2px 0 #000)!important}
.unit.hero-facing .battle-sprite{transform:none}
.unit.enemy-facing .battle-sprite{transform:none}
.unit .uname{font-family:'AOTitle',Georgia,serif!important;font-size:14px!important}
.unit .uclass{font-size:11px!important;color:#d9c9a3!important}
.hpbar{height:10px!important}
.primary,.secondary,.mini-btn{font-family:'AOBody',Georgia,serif!important;background:linear-gradient(180deg,#6d5027,#3b2916)!important;border:1px solid #b88c45!important;color:#fff3d7!important;box-shadow:0 2px 0 #000!important}
.primary:hover,.secondary:hover,.mini-btn:hover,.choice-card:hover,.mode-card:hover{filter:brightness(1.08)!important;transform:translateY(-1px)}
@media (max-width:900px){.layout{grid-template-columns:148px minmax(0,1fr)96px!important}.party-slot{min-height:92px!important;grid-template-columns:50px 1fr!important}.hero-ico.hero-sprite{width:72px!important;height:84px!important}}
@media (max-width:760px){.layout{grid-template-columns:128px minmax(0,1fr)78px!important;gap:6px!important;padding:6px!important}.party-slot{grid-template-columns:44px 1fr!important;min-height:84px!important;padding:6px!important}.party-portrait{width:42px!important;height:42px!important}.portrait-img{width:38px!important;height:38px!important}.party-name{font-size:12px!important}.party-class,.party-item{font-size:9px!important}.battle-field{grid-template-columns:1fr!important}.battle-card{height:98dvh!important}.choice-grid{grid-template-columns:1fr!important}}


/* === v6.4 final polish === */
.choice-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
.hero-title{align-items:flex-start!important}
.modal p{line-height:1.35}
.unit{min-height:88px!important;grid-template-columns:78px 1fr!important}
.unit .avatar{display:flex!important;align-items:flex-end!important;justify-content:center!important;padding:2px 0 0!important}
.battle-sprite{width:60px!important;height:68px!important;object-fit:contain!important;object-position:center bottom!important}
.unit.enemy .avatar,.unit.enemy-facing .avatar{background:radial-gradient(circle at 50% 40%,#3f261d,#150f0b)!important}
.party-slot,.bag-item,.choice-card,.unit,.mode-card{transition:filter .15s ease, transform .15s ease, border-color .15s ease!important}
.last-event{min-height:58px;display:flex;align-items:center;padding:10px 12px}
.syn-pill .tier{font-weight:700}
.hero-sheet-top{align-items:start}
.hero-sheet-sprite img{image-rendering:pixelated}
@media (max-width:760px){.battle-sprite{width:52px!important;height:60px!important}.unit{min-height:78px!important;grid-template-columns:68px 1fr!important}.choice-grid{grid-template-columns:1fr!important}}


/* === v7 launch coherence patch === */
.hero-ico.hero-sprite{display:flex!important;align-items:flex-end!important;justify-content:center!important}
.choice-sprite{width:76px!important;height:88px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important}
.hero-title .hero-ico:not(.hero-sprite){width:72px;height:84px}
.unit{min-height:120px!important;grid-template-columns:88px 1fr!important;align-content:start!important}
.unit .avatar{display:flex!important;align-items:flex-end!important;justify-content:center!important;padding-bottom:4px!important;background:radial-gradient(circle at 50% 40%,#362516,#140e0b)!important}
.battle-sprite{width:74px!important;height:92px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;transform:none!important}
.unit.hero-facing .battle-sprite{transform:scaleX(-1)!important}
.unit.enemy-facing .battle-sprite{transform:none!important}
.unit .uname{margin-top:4px!important}
.choice-card{min-height:255px!important}
.party-portrait{background:radial-gradient(circle at 50% 40%,#402b19,#19120c)!important}
.portrait-img{width:44px!important;height:44px!important;object-fit:contain!important;object-position:center center!important}
.hero-sheet-sprite img{width:96px!important;height:120px!important;object-fit:contain!important;object-position:center bottom!important}
@media (max-width:760px){.battle-sprite{width:62px!important;height:80px!important}.unit{min-height:104px!important;grid-template-columns:78px 1fr!important}}


/* === v7.2 launch polish === */
.portrait-img{width:48px!important;height:48px!important;object-fit:contain!important;object-position:center center!important}
.party-portrait{width:52px!important;height:52px!important;overflow:hidden!important}
.choice-card.compact-target{min-height:150px!important}
.choice-card.compact-target .choice-sprite{width:58px!important;height:58px!important;object-fit:contain!important;object-position:center center!important}
.choice-card.compact-target .hero-ico.hero-sprite{width:64px!important;height:64px!important;align-items:center!important}
.unit.enemy-facing .battle-sprite{transform:none!important}
.unit.hero-facing .battle-sprite{transform:scaleX(-1)!important}
.unit .avatar{overflow:hidden!important}
.battle-sprite{max-width:82px!important;max-height:98px!important;object-fit:contain!important;object-position:center bottom!important}


/* === v8 final polish visuals === */
.party-portrait{width:52px!important;height:52px!important;grid-row:1/4!important;display:flex!important;align-items:center!important;justify-content:center!important;background:radial-gradient(circle at 50% 40%,#47311b,#19120c)!important;border:1px solid #6d5230!important;border-radius:10px!important;overflow:hidden!important;padding:0!important}
.portrait-img{width:46px!important;height:46px!important;object-fit:contain!important;object-position:center center!important;image-rendering:pixelated!important;filter:drop-shadow(0 1px 0 #000)!important}
.hero-ico.hero-sprite{width:78px!important;height:88px!important;background:radial-gradient(circle at 50% 35%,#47311b,#17100b)!important;border:1px solid #72552f!important;border-radius:12px!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;overflow:hidden!important;box-shadow:inset 0 0 0 1px #000!important}
.choice-sprite{width:78px!important;height:86px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;filter:drop-shadow(0 2px 0 #000)!important}
.choice-card.compact-target{min-height:0!important;padding:10px!important}
.choice-card.compact-target .hero-ico.hero-sprite{width:58px!important;height:58px!important;align-items:center!important;justify-content:center!important}
.choice-card.compact-target .choice-sprite{width:48px!important;height:48px!important;object-fit:contain!important;object-position:center center!important}
.unit{min-height:118px!important;grid-template-columns:86px 1fr!important;align-items:center!important}
.unit .avatar{min-height:84px!important;background:radial-gradient(circle at 50% 40%,#362516,#140e0b)!important;border:1px solid #6d5230!important;border-radius:10px!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;padding:4px 0 4px!important;overflow:hidden!important}
.battle-sprite{width:72px!important;height:90px!important;max-width:72px!important;max-height:90px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important;transform:none!important;filter:drop-shadow(0 2px 0 #000)!important}
.unit.hero-facing .battle-sprite,.unit.enemy-facing .battle-sprite{transform:none!important}
.unit.attacking{animation:unitDash .28s ease-out}
.unit.hit{animation:unitHit .22s ease-out 1}
@keyframes unitDash{0%{transform:translateX(0)}45%{transform:translateX(6px) scale(1.02)}100%{transform:translateX(0)}}
@keyframes unitHit{0%{filter:none}50%{filter:brightness(1.55)}100%{filter:none}}
.spell-burst{position:absolute;inset:50% auto auto 50%;width:18px;height:18px;transform:translate(-50%,-50%) scale(.3);border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--burst,#e0b84d) 0%, rgba(255,255,255,.85) 35%, rgba(255,255,255,0) 70%);box-shadow:0 0 18px var(--burst,#e0b84d);animation:spellBurst .5s ease-out forwards}
.spell-burst.fire{border-radius:35% 65% 55% 45%/45% 40% 60% 55%}
.spell-burst.ice{clip-path:polygon(50% 0%,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0% 50%,39% 36%)}
.spell-burst.poison{border-radius:40% 60% 48% 52%/53% 45% 55% 47%}
.spell-burst.shadow{filter:blur(.2px)}
@keyframes spellBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
.projectile{transition:transform .32s ease-in,opacity .12s}
.projectile.fire,.projectile.ice,.projectile.poison,.projectile.shadow{box-shadow:0 0 16px currentColor,0 0 28px currentColor}
@media (max-width:760px){.battle-sprite{width:60px!important;height:76px!important;max-width:60px!important;max-height:76px!important}.unit{min-height:102px!important;grid-template-columns:74px 1fr!important}.party-slot{grid-template-columns:50px 1fr!important}.party-portrait{width:44px!important;height:44px!important}.portrait-img{width:38px!important;height:38px!important}}


/* === v9 niquelado visual overrides === */
.map-wrap{background-size:cover!important;background-position:center!important;border:2px solid #6d5230!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.65),0 0 18px rgba(0,0,0,.22)!important}
.hero-ico.hero-sprite{width:84px!important;height:94px!important}
.choice-sprite{width:82px!important;height:90px!important;object-fit:contain!important;object-position:center bottom!important}
.party-portrait{width:54px!important;height:54px!important;align-items:center!important;justify-content:center!important}
.portrait-img{width:48px!important;height:48px!important;object-fit:contain!important;object-position:center center!important}
.battle-sprite{width:82px!important;height:102px!important;max-width:82px!important;max-height:102px!important;object-fit:contain!important;object-position:center bottom!important}
.choice-card.compact-target .hero-ico.hero-sprite{width:60px!important;height:60px!important;align-items:center!important}
.choice-card.compact-target .choice-sprite{width:52px!important;height:52px!important;object-fit:contain!important;object-position:center center!important}
@media (max-width:760px){
  .battle-sprite{width:66px!important;height:86px!important;max-width:66px!important;max-height:86px!important}
  .hero-ico.hero-sprite{width:70px!important;height:82px!important}
  .choice-sprite{width:68px!important;height:78px!important}
}


/* === v11 final polish === */
.ghost-slot{filter:saturate(.55) brightness(.92)}
.unit.vanished .avatar{opacity:.08!important}.unit.vanished .uname,.unit.vanished .uclass{opacity:.55}.unit.dead .battle-sprite{filter:drop-shadow(0 0 8px rgba(160,215,255,.6)) grayscale(.15) opacity(.9)!important}.party-slot.dead .portrait-img{filter:drop-shadow(0 0 6px rgba(160,215,255,.75)) opacity(.92)!important}.battle-sprite{width:82px!important;height:104px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important}.choice-sprite{width:82px!important;height:92px!important;object-fit:contain!important;object-position:center bottom!important;image-rendering:pixelated!important}.portrait-img{width:48px!important;height:48px!important;object-fit:contain!important;image-rendering:pixelated!important}.hero-ico.hero-sprite{display:flex!important;align-items:flex-end!important;justify-content:center!important;overflow:hidden!important}.choice-card{min-height:250px!important}.unit .avatar{overflow:hidden!important;display:flex!important;align-items:flex-end!important;justify-content:center!important}.unit.enemy.vanished .avatar:after{content:'';}.syn-pill{font-size:12px!important}


/* === v12 real sprites polish === */
.battle-sprite{image-rendering:pixelated!important; object-fit:contain!important; object-position:center bottom!important;}
.choice-sprite,.portrait-img{image-rendering:pixelated!important;}
.unit .avatar{overflow:hidden!important; display:flex!important; align-items:flex-end!important; justify-content:center!important;}
.unit.enemy .battle-sprite{max-width:104px!important; max-height:112px!important;}
.unit.hero-facing .battle-sprite{max-width:86px!important; max-height:102px!important;}


/* === v13 STYLE SHOWCASE PASS === */
.title-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.title-screen{position:relative;overflow:auto}
.title-screen::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(10,7,4,.72),rgba(10,7,4,.82)), url('../assets/showcase/hero_roster.png') center top/cover no-repeat;opacity:.34;pointer-events:none}
.title-screen > *{position:relative;z-index:1}
.subtitle{max-width:860px!important}
.mode-cards,.title-actions,.tiny{position:relative;z-index:1}
.logo{background:rgba(10,7,4,.30);padding:8px 16px;border:1px solid rgba(216,177,94,.22);border-radius:18px}
.topbar{backdrop-filter:blur(4px)}
.map-panel{box-shadow:0 0 0 1px rgba(216,177,94,.06), 0 10px 30px rgba(0,0,0,.22)}
.artbook-wrap{display:grid;gap:14px}
.artbook-block{background:linear-gradient(180deg,#20170f,#15100b);border:1px solid #6a512c;border-radius:16px;padding:12px}
.artbook-block h3{margin:0 0 8px;color:#f1cf7c;font-family:'AOTitle',Georgia,serif;font-size:22px}
.artbook-block p{margin:0 0 10px;color:#d8c49b}
.artbook-img{width:100%;height:auto;border-radius:12px;border:1px solid #6a512c;background:#0d0907;display:block}
.artbook-note{font-size:13px;color:#bfa87a}
@media (max-width:760px){.title-actions{gap:8px}.artbook-block{padding:10px}.artbook-block h3{font-size:18px}}

/* v14.3 ghost sprite polish */
.party-slot.dead{filter:none!important;opacity:.82!important;}
.unit.dead{filter:none!important;opacity:.82!important;}
.unit.dead .battle-sprite{filter:drop-shadow(0 0 10px rgba(92,185,255,.75)) opacity(.95)!important;}
.unit.enemy.dead .battle-sprite{filter:drop-shadow(0 0 10px rgba(255,66,54,.70)) opacity(.95)!important;}
.party-slot.dead .portrait-img{filter:drop-shadow(0 0 8px rgba(92,185,255,.85)) opacity(.96)!important;}


/* === v14.5 Launch landing cleanup === */
.title-screen::before{background:none!important;opacity:0!important}
.title-screen{background:
  radial-gradient(circle at 50% 0%, rgba(214,177,94,.16), transparent 38%),
  linear-gradient(180deg, rgba(13,9,6,.82), rgba(9,6,4,.94)),
  url('../assets/theme/board.png') center/cover no-repeat!important;
  padding:28px 18px 34px!important;
}
.landing-shell{width:min(1120px, 100%);margin:0 auto;display:grid;gap:16px;justify-items:center}
.landing-kicker{padding:6px 12px;border:1px solid rgba(216,177,94,.45);border-radius:999px;background:rgba(26,18,12,.72);color:#e9d8ad;font-size:12px;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 0 0 1px rgba(0,0,0,.35) inset}
.logo{max-width:14ch;text-align:center}
.logo span{display:block;margin-top:10px;font-size:.34em!important;line-height:1.1;color:#f2ddb0!important;letter-spacing:.05em}
.subtitle{max-width:820px;font-size:18px;line-height:1.5;color:#e7d8ba!important}
.landing-highlights{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:980px}
.landing-pill{padding:9px 12px;border-radius:999px;background:linear-gradient(180deg,rgba(63,43,24,.92),rgba(28,19,11,.96));border:1px solid #8f6b39;color:#f3e7cb;box-shadow:0 2px 0 #000}
.landing-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px;width:100%}
.landing-panel{background:linear-gradient(180deg,rgba(52,36,22,.95),rgba(20,14,10,.97));border:2px solid #7c5c32;border-radius:22px;padding:18px 18px 16px;box-shadow:0 8px 0 #000, inset 0 0 0 1px rgba(255,223,171,.06)}
.landing-panel h3{margin:0 0 12px;color:#f1cf7c;font-family:'AOTitle',Georgia,serif;font-size:24px;letter-spacing:.02em;text-align:left}
.landing-panel--modes .mode-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.mode-card{height:100%;border-radius:18px!important;padding:18px!important;background:linear-gradient(180deg,rgba(66,45,27,.98),rgba(31,20,12,.98))!important}
.mode-card span{display:block;line-height:1.45;font-size:14px}
.mode-card b{font-size:20px!important}
.mode-card.danger{background:linear-gradient(180deg,rgba(69,35,28,.98),rgba(31,14,12,.98))!important;border-color:#9e5747!important}
.title-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-start;margin-top:14px}
.title-actions .secondary{min-width:220px}
.landing-list{margin:0;padding-left:20px;display:grid;gap:10px;color:#e8dbc0;text-align:left;line-height:1.45}
.tiny{max-width:840px;color:#bfa981!important;font-size:13px!important}
@media (max-width:900px){
  .landing-columns{grid-template-columns:1fr}
  .landing-panel--modes .mode-cards{grid-template-columns:1fr}
  .title-actions{justify-content:center}
  .title-actions .secondary{min-width:unset;width:100%}
  .subtitle{font-size:16px}
}


/* === v14.6 Simple launch landing === */
.simple-landing{max-width:920px!important;min-height:70dvh;align-content:center}
.simple-landing .subtitle{max-width:680px!important}
.simple-landing .mode-cards{width:min(760px,100%);display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.simple-landing .title-actions{justify-content:center!important;margin-top:0!important}
.simple-landing .tiny{margin-top:0!important}
@media (max-width:760px){
  .simple-landing .mode-cards{grid-template-columns:1fr!important}
}


/* === v14.6.2 Landing refresh: no old AO background, stronger CTA === */
html,body{
  background:
    radial-gradient(circle at 50% -10%, rgba(231,190,96,.10), transparent 28%),
    radial-gradient(circle at 0% 100%, rgba(117,74,34,.18), transparent 30%),
    radial-gradient(circle at 100% 0%, rgba(62,45,26,.16), transparent 24%),
    linear-gradient(180deg, #17100b 0%, #0f0b08 38%, #090705 100%)!important;
}
#app{
  background:
    linear-gradient(180deg, rgba(8,6,4,.18), rgba(8,6,4,.38));
}
.title-screen{
  background:
    radial-gradient(circle at 50% 0%, rgba(232,186,90,.12), transparent 26%),
    linear-gradient(180deg, rgba(23,16,11,.96) 0%, rgba(14,10,8,.97) 58%, rgba(10,8,6,.99) 100%)!important;
  position:relative;
  overflow:auto;
}
.title-screen::before,
.title-screen::after{
  content:"";
  position:fixed;
  inset:auto;
  pointer-events:none;
  z-index:0;
}
.title-screen::before{
  top:28px; left:28px; right:28px; bottom:28px;
  border:1px solid rgba(216,177,94,.16);
  border-radius:28px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.55), 0 0 0 1px rgba(60,42,24,.5);
}
.title-screen::after{
  left:50%; top:74px; transform:translateX(-50%);
  width:min(940px, calc(100vw - 60px)); height:360px;
  background:
    radial-gradient(circle at 50% 0%, rgba(241,205,125,.10), transparent 42%),
    radial-gradient(circle at 50% 32%, rgba(216,177,94,.07), transparent 56%);
  filter:blur(3px);
}
.title-screen > *{position:relative;z-index:1}
.landing-shell.simple-landing{
  width:min(940px, 100%);
  min-height:calc(100dvh - 56px)!important;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:20px;
  padding:34px 26px;
}
.landing-shell.simple-landing .logo{
  max-width:none;
  font-size:clamp(40px, 8vw, 78px)!important;
  letter-spacing:.08em;
  text-shadow:0 2px 0 #000, 0 0 28px rgba(215,177,94,.18);
}
.landing-shell.simple-landing .logo span{
  font-size:.28em!important;
  margin-top:14px;
  color:#f0dfb8!important;
  letter-spacing:.10em;
  text-transform:none;
}
.landing-shell.simple-landing .subtitle{
  max-width:760px!important;
  margin:0;
  color:#dcc8a1!important;
  font-size:18px;
  line-height:1.5;
}
.landing-shell.simple-landing .mode-cards{
  width:min(780px, 100%);
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
.landing-shell.simple-landing .mode-card{
  border-radius:20px!important;
  padding:20px 18px!important;
  min-height:176px;
  background:
    linear-gradient(180deg, rgba(66,46,28,.98) 0%, rgba(30,21,14,.99) 100%)!important;
  border:1px solid rgba(151,111,57,.95)!important;
  box-shadow:0 10px 20px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,230,180,.05), 0 6px 0 #000!important;
  transition:transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.landing-shell.simple-landing .mode-card:hover{
  transform:translateY(-3px);
  border-color:#dcb56b!important;
  box-shadow:0 14px 28px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,230,180,.06), 0 8px 0 #000!important;
}
.landing-shell.simple-landing .mode-card b{
  font-size:23px!important;
  margin-bottom:10px;
}
.landing-shell.simple-landing .mode-card span{
  color:#dbc7a2!important;
  line-height:1.5;
  font-size:14px;
}
.landing-shell.simple-landing .mode-card.danger{
  background:
    linear-gradient(180deg, rgba(73,38,32,.98) 0%, rgba(30,17,15,.99) 100%)!important;
  border-color:rgba(155,87,71,.95)!important;
}
.landing-shell.simple-landing .title-actions{
  display:flex;
  gap:12px;
  justify-content:center!important;
  flex-wrap:wrap;
}
.landing-shell.simple-landing .secondary{
  min-width:220px;
  padding:12px 16px;
  border-radius:14px;
  background:linear-gradient(180deg, rgba(51,38,24,.98), rgba(27,20,14,.98));
  border:1px solid rgba(135,100,54,.95);
  box-shadow:0 4px 0 #000;
}
.landing-shell.simple-landing .tiny{
  color:#a8946e!important;
  font-size:13px!important;
}
@media (max-width:760px){
  .landing-shell.simple-landing{padding:24px 16px; gap:16px; min-height:calc(100dvh - 24px)!important;}
  .landing-shell.simple-landing .mode-cards{grid-template-columns:1fr!important;}
  .title-screen::before{top:12px;left:12px;right:12px;bottom:12px;border-radius:20px}
  .title-screen::after{width:calc(100vw - 24px); top:52px; height:260px}
  .landing-shell.simple-landing .subtitle{font-size:16px}
  .landing-shell.simple-landing .secondary{min-width:unset; width:100%;}
}


/* === v14.6.3 RELEASE POLISH: remove legacy image backgrounds across the whole game === */
html,body{
  background:
    radial-gradient(circle at 50% -10%, rgba(231,190,96,.10), transparent 28%),
    radial-gradient(circle at 0% 100%, rgba(117,74,34,.18), transparent 30%),
    radial-gradient(circle at 100% 0%, rgba(62,45,26,.16), transparent 24%),
    linear-gradient(180deg, #17100b 0%, #0f0b08 38%, #090705 100%)!important;
}
#app,.game-screen{
  background:transparent!important;
}
.title-screen,
.topbar,
.map-panel,
.map-wrap,
.last-event,
.narrator,
.modal,
.battle-card{
  background-image:none!important;
}
.title-screen{
  background:
    radial-gradient(circle at 50% 0%, rgba(232,186,90,.12), transparent 26%),
    linear-gradient(180deg, rgba(23,16,11,.96) 0%, rgba(14,10,8,.97) 58%, rgba(10,8,6,.99) 100%)!important;
}
.topbar{
  background:linear-gradient(180deg, rgba(54,37,21,.98), rgba(24,16,11,.99))!important;
}
.map-panel{
  background:linear-gradient(180deg, rgba(24,17,12,.94), rgba(14,10,8,.98))!important;
}
.map-wrap{
  background:linear-gradient(180deg, rgba(21,14,10,.92), rgba(14,10,8,.97))!important;
}
.last-event,.narrator{
  background:linear-gradient(180deg, rgba(58,42,25,.97), rgba(30,21,14,.99))!important;
}
.modal{
  background:linear-gradient(180deg, rgba(56,40,24,.98), rgba(24,16,11,.99))!important;
}
.battle-card{
  background:
    radial-gradient(circle at 50% 0%, rgba(233,186,90,.07), transparent 30%),
    linear-gradient(180deg, rgba(30,20,14,.99), rgba(13,9,7,.995))!important;
}


/* === v14.7 Chronicle modal polish === */
.chronicle-box{display:grid;gap:12px;text-align:left}
.chronicle-box h3{margin:0;color:#f1cf7c;font-family:'AOTitle',Georgia,serif;font-size:24px;text-align:center}
.chronicle-text{display:grid;gap:10px;line-height:1.5;color:#f2e2c2;background:linear-gradient(180deg,rgba(21,14,9,.52),rgba(12,8,6,.64));border:1px solid rgba(216,177,94,.28);border-radius:14px;padding:14px}
.chronicle-text p{margin:0}
.chronicle-text b{color:#ffe2a3}
.chronicle-box .secondary{justify-self:center}
