@charset "UTF-8";
:root{color-scheme:dark;--bg:#0d1713;--panel:#14231c;--panel-2:#1a2b22;--text:#e8e7da;--muted:#9daa9d;--gold:#cbb17b;--gold-light:#f0d7a0;--line:#cbb17b35;--green:#91d89d;--red:#d76460;--blue:#7eacf3;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif;font-size:16px}
*{box-sizing:border-box}html{min-width:320px;background:var(--bg);scroll-behavior:smooth}body{margin:0;font-family:var(--sans);color:var(--text);font-size:1rem;line-height:1.5;background:radial-gradient(ellipse at 70% 0%,#29423155,transparent 60%),var(--bg)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed}button{touch-action:manipulation}button,a,input,select{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green)}button{border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.2}h1{font-size:clamp(2rem,3.6vw,3.25rem);letter-spacing:-.025em}h2{font-size:1.6rem}h3{font-size:1.2rem}svg{flex-shrink:0}.icon{width:1.4rem;height:1.4rem;display:inline-block;vertical-align:middle}.muted{color:var(--muted)}.small{font-size:.875rem}.center{text-align:center}.overline{font-size:.75rem;letter-spacing:.18em;font-weight:600;color:var(--gold);text-transform:uppercase}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.full{width:100%}.btn{display:inline-flex;justify-content:center;align-items:center;gap:.65rem;border:1px solid var(--line);padding:.8rem 1.1rem;min-height:46px;background:#203429;color:var(--text);border-radius:3px;font-size:.9375rem;font-weight:500;transition:background .18s,border-color .18s,transform .18s}.btn:hover:not(:disabled){background:#304739;border-color:#cbb17b99;transform:translateY(-1px)}.btn:disabled{opacity:.48}.primary{color:#172419;background:linear-gradient(135deg,#dfcc94,#b6a168);border-color:#efdbac;font-weight:700;box-shadow:inset 0 1px 0 #fff5,0 4px 24px #080e092a}.primary:hover:not(:disabled){background:linear-gradient(135deg,#f0dfa7,#c8b174);color:#101b11}.ghost{background:transparent}.icon-btn{width:43px;min-height:43px;height:43px;padding:.6rem;background:#0c1714a8;color:var(--gold)}.small-btn{padding:.4rem .8rem;min-height:36px;font-size:.875rem}.panel{background:linear-gradient(140deg,#1b2c21e8,#101c16f5);border:1px solid var(--line);border-radius:5px;box-shadow:0 12px 60px #0003}.notice{display:flex;align-items:center;gap:.8rem;background:#cbb17b0c;border:1px solid var(--line);padding:.9rem 1.2rem;font-size:.9375rem;color:#cecbb6;margin-bottom:1.6rem;border-radius:4px}.notice .icon{color:var(--gold)}
.menu-screen{position:relative;isolation:isolate;min-height:760px;min-height:max(760px,100svh);overflow:hidden;background:#0d1713 url('./assets/menu-v2.png') center center/cover no-repeat}.menu-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#08120ef7 0%,#091710cc 28%,#09181148 57%,#08130d0d 75%),linear-gradient(0deg,#06110be0,transparent 26%,transparent 82%,#06110b66)}.menu-grain{position:absolute;inset:20px;border:1px solid #e7d7a628;pointer-events:none;z-index:2}.menu-top{display:flex;justify-content:space-between;align-items:center;padding:42px 5.7vw}.numavous{font-weight:650;font-size:.875rem;letter-spacing:.15em;color:#dddcce}.numavous span{color:#97a79b;letter-spacing:.08em;font-size:.75rem;margin-left:.7rem}.edition{font-size:.75rem;letter-spacing:.14em;color:#c0c4b2}.menu-content{position:relative;margin:clamp(45px,7vh,110px) 0 120px 8.3vw;width:min(465px,46vw)}.menu-content>.overline{color:#bfb99f;font-size:.75rem;letter-spacing:.27em}.menu-content h1{font-size:clamp(4rem,7.6vw,7.5rem);line-height:1.3;color:#ede4c8;font-weight:400;letter-spacing:-.065em;text-shadow:0 5px 45px #0009;white-space:nowrap}.title-dot{color:var(--gold);padding-left:.07em}.title-rule{display:flex;align-items:center;gap:.7rem;color:var(--gold);width:75%;margin:10px 0 38px}.title-rule:after,.title-rule:before{content:'';height:1px;background:linear-gradient(90deg,#d9c89955,transparent);flex:1}.title-rule:before{flex:.22;background:#d9c89955}.main-menu{display:flex;flex-direction:column;gap:8px;margin-left:-38px}.menu-option{position:relative;display:flex;align-items:center;gap:15px;text-align:left;width:100%;padding:11px 10px 11px 0;border:0;background:transparent;color:#b8b9a9;font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.7rem);transition:color .15s,transform .15s}.menu-option.selected{color:#efeedb;transform:translateX(5px)}.menu-arrow{color:#94f68b;text-shadow:0 0 16px #60f07e;width:26px;opacity:0;font-size:1.8rem}.selected .menu-arrow{opacity:1;animation:arrowBlink 1.15s steps(2,end) infinite}.menu-count{font-family:var(--sans);font-size:.8rem;border:1px solid var(--line);border-radius:3px;padding:0 .4rem;color:var(--gold)}.resume-link{background:transparent;border:0;color:var(--gold);padding:14px 0;font-size:.875rem;margin-top:15px;justify-content:flex-start}.menu-footer{position:absolute;bottom:42px;left:5.7vw;right:5.7vw;display:flex;justify-content:space-between;align-items:flex-end;color:#a7af9e;font-size:.875rem}.menu-footer>span{line-height:1.7}.menu-footer-right{display:flex;gap:1rem;align-items:center;font-size:.75rem;color:#a3b0a1}.fireflies{position:absolute;inset:0;pointer-events:none;z-index:-1}.fireflies i{position:absolute;width:3px;height:3px;background:#d4da9f;border-radius:50%;box-shadow:0 0 12px 3px #e5c86d50;animation:firefly 7s infinite alternate;animation-delay:calc(var(--i)*-.6s)}
.inner-screen{max-width:1440px;margin:0 auto;padding:0 4.5vw 60px;min-height:100svh}.topbar{height:83px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:.65rem;background:transparent;padding:4px 0;color:var(--gold);font-family:var(--serif);font-size:1rem;letter-spacing:.12em;white-space:nowrap}.brand-mark{font-size:2rem;line-height:1}.topbar-title{font-size:.75rem;letter-spacing:.2em;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:1.5rem}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:33px 0 30px}.page-heading .overline{margin-bottom:12px}.page-heading p{color:var(--muted);margin-top:12px}.creation-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:35px;align-items:stretch}.creation-controls{padding:3px 0}.step-label{display:flex;gap:.7rem;align-items:center;margin-bottom:15px;font-size:.9375rem}.step-label>span{font-size:.75rem;color:var(--gold);border:1px solid var(--line);padding:1px 6px;line-height:1.5}.race-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:30px}.race-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:linear-gradient(145deg,#253a2c99,#122019);padding:0 6px 14px;display:flex;flex-direction:column;align-items:center;transition:border .2s,background .2s}.race-card:hover{border-color:#cbb17b99;background:#2e4336}.race-card.active{background:radial-gradient(ellipse at 50% 40%,#55704588,#27372a);border-color:var(--gold);box-shadow:inset 0 -3px var(--gold)}.race-card strong{font-family:var(--serif);font-size:1.2rem;font-weight:400;z-index:2}.race-card>span{font-size:.75rem;color:#aebaa6;margin-top:3px}.race-portrait{height:134px;width:100%;overflow:hidden;margin-bottom:6px;mask-image:linear-gradient(#000 75%,transparent)}.race-portrait .sprite{width:195%;height:auto;aspect-ratio:1;transform:translateX(-24%);margin-top:6px}.sprite{display:block;background-image:url('./assets/atlas.png');background-size:400% 300%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;object-fit:contain;max-width:none}.class-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}.class-card{border:1px solid var(--line);background:#17271e;border-radius:4px;min-height:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;position:relative;overflow:hidden}.class-card>.icon{height:30px;width:30px;color:#b3c6ac}.class-card strong{font-size:.875rem;font-weight:400}.class-card:hover:not(:disabled){background:#293e2e}.class-card.active{border-color:var(--gold);box-shadow:inset 0 -2px var(--gold);background:#cbb17b12}.class-card.active .icon{color:var(--gold-light)}.class-card.locked{background:#131815;color:#677169;border-color:#384138}.class-card.locked>.icon{filter:grayscale(1);color:#56625a;opacity:.5}.locked-stamp{position:absolute;transform:rotate(-20deg);left:-12%;top:36%;width:124%;background:#542825ed;border:1px solid #c26559;color:#f0a095;font-size:.75rem;letter-spacing:.06em;padding:3px 0;font-weight:700}.creation-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.colors{display:flex;gap:13px}.color-choice{width:37px;height:37px;border-radius:50%;border:4px solid #102019;background:var(--color);outline:1px solid transparent;padding:3px;display:grid;place-items:center;color:#092019}.color-choice.active{outline:1px solid var(--gold);box-shadow:0 0 16px #e3d39820}.color-choice .icon{width:20px;height:20px;stroke-width:3}.name-label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;color:var(--muted);max-width:230px;flex:1}input[type=text],select{border:1px solid var(--line);border-radius:3px;background:#101d16;padding:10px 12px;color:var(--text);min-width:0;max-width:100%;font-size:.9375rem}.starter-note{display:flex;align-items:center;gap:14px;padding:18px 0 0;margin-top:25px;border-top:1px solid var(--line)}.starter-note>.icon{width:32px;height:32px;color:var(--gold)}.starter-note>div{display:flex;flex-direction:column;gap:3px;flex:1}.starter-note strong{font-size:.9375rem;font-weight:500}.hero-preview{padding:22px 26px 19px;position:relative;overflow:hidden;display:flex;flex-direction:column}.preview-top{display:flex;justify-content:space-between;align-items:center;z-index:2}.preview-top .overline{font-size:.75rem;letter-spacing:.12em}.level-seal{flex-shrink:0;width:37px;height:37px;display:grid;place-items:center;border:1px solid #baa36f90;transform:rotate(0);background:#243126;color:var(--gold-light);font-family:var(--serif);font-size:1.15rem}.hero-display{height:240px;position:relative;display:flex;justify-content:center;margin-top:-10px;margin-bottom:6px}.hero-large{position:relative;width:270px;height:270px;z-index:1;filter:drop-shadow(0 6px 12px #0007);animation:breathe 5s ease-in-out infinite}.hero-halo{position:absolute;width:220px;height:220px;border:1px solid var(--line);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 80px color-mix(in srgb,var(--hero-color) 12%,transparent),inset 0 0 50px #cbb17b07}.hero-halo:before{content:'';position:absolute;inset:13px;border:1px solid #cbb17b15;border-radius:50%}.hero-preview h2{text-align:center;font-size:2rem;margin:9px 0}.hero-description{text-align:center;color:var(--muted);font-size:.875rem;max-width:290px;margin:0 auto 18px}.racial-trait{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;display:flex;gap:12px;align-items:center;font-size:.875rem}.racial-trait>.icon{color:var(--gold)}.racial-trait>div{display:flex;flex-direction:column;gap:4px}.racial-trait strong{color:#d7ccab;font-weight:500}.racial-trait span{font-size:.8125rem;color:var(--muted)}.class-description{font-size:.875rem;color:#c5c9b8;margin:15px 0 20px}.hero-preview>.primary{margin-top:auto;margin-bottom:10px}.hero-preview>.small{font-size:.75rem}
.money{display:inline-flex;align-items:center;gap:12px;white-space:nowrap;font-size:.9375rem;font-variant-numeric:tabular-nums}.money>span{display:inline-flex;align-items:center;gap:5px}.coin{display:inline-block;width:12px;height:12px;border:1px solid #ffffff60;border-radius:50%;box-shadow:inset 0 0 0 2px #0002}.coin.gold{background:#cfaa52}.coin.silver{background:#b6c5ce}.coin.copper{background:#ba7c53}.battle-screen{min-height:100svh;background:#0d1712;display:flex;flex-direction:column}.battle-topbar{height:76px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 3vw;gap:20px;border-bottom:1px solid var(--line);background:#101c16;z-index:3}.region-label{display:flex;flex-direction:column;text-align:center;gap:3px}.region-label>span{font-size:.75rem;letter-spacing:.22em;color:var(--muted)}.region-label strong{font-family:var(--serif);font-weight:400;font-size:1.4rem;line-height:1.3}.boss-label{font-family:var(--sans);font-size:.75rem;letter-spacing:.12em;margin-left:10px;color:#e7b07f}.battle-top-actions{display:flex;gap:8px;align-items:center}.battle-top-actions .money{margin-right:17px}.arena{position:relative;isolation:isolate;min-height:370px;height:calc(100svh - 328px);max-height:870px;flex:1;background:#1e2c23 url('./assets/ruins-fallback.png') center 51%/cover no-repeat;overflow:hidden}.arena-fog{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0c160fd9 0%,transparent 30%,#0d19153b 70%,#0a160d66 100%)}.turn-banner{position:absolute;top:15px;left:50%;transform:translateX(-50%);padding:6px 18px;display:flex;align-items:center;gap:8px;white-space:nowrap;background:#112018bd;border:1px solid #cbb17b44;border-radius:20px;font-size:.75rem;letter-spacing:.07em;color:#cce4c7;z-index:3}.turn-banner>span:last-child{color:#aebba6;letter-spacing:0}.turn-dot{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #97e78a80}.enemy-line{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:clamp(12px,5vw,82px);top:17%;align-items:flex-end;justify-content:center;max-width:97%;width:max-content}.enemy{position:relative;background:transparent;text-align:center;display:flex;flex-direction:column;align-items:center;padding:0;min-width:0;transition:opacity .4s,filter .2s;outline-offset:8px}.enemy:disabled:not(.dead){cursor:default}.enemy.dead{opacity:.18;filter:grayscale(1);pointer-events:none}.enemy-name{font-family:var(--serif);font-size:1.05rem;text-shadow:0 2px 4px #000,0 0 12px #000;white-space:nowrap;display:flex;align-items:center;gap:6px;z-index:2}.enemy-name .icon{color:#e2bd7d;width:17px}.enemy-health{width:130px;max-width:85%;height:16px;border:1px solid #ceb98e70;background:#231b19dd;position:relative;border-radius:3px;margin:7px auto 2px;overflow:hidden}.enemy-health>i{height:100%;display:block;background:linear-gradient(90deg,#a2443d,#c0795e);transition:width .3s}.enemy-health>span{position:absolute;inset:0;font-size:.75rem;line-height:14px;color:#fff;text-shadow:0 1px 4px #000}.enemy-sprite{width:clamp(130px,16vw,230px);height:clamp(130px,16vw,230px);position:relative;z-index:1;filter:drop-shadow(0 8px 6px #0008);animation:breathe 4s ease-in-out infinite}.enemy:nth-child(2) .enemy-sprite{animation-delay:-1.5s}.enemy:nth-child(3) .enemy-sprite{animation-delay:-3s}.enemy.boss .enemy-sprite{width:clamp(165px,19vw,265px);height:clamp(165px,19vw,265px)}.target-ring{width:76%;height:19px;border:2px solid transparent;box-shadow:0 0 0 transparent;border-radius:50%;position:absolute;bottom:24px;left:12%;transition:border-color .2s,box-shadow .2s}.targeted .target-ring{border-color:#dfd29b;box-shadow:0 0 15px #ddc97c70,inset 0 0 14px #e0c36e55}.targeted .enemy-name{color:#ffe8a9}.targeted .enemy-health{border-color:#eed6a1}.enemy-intent{font-size:.75rem;background:#0c1810bc;border-radius:3px;padding:3px 8px;color:#d5cbb4;z-index:1;white-space:nowrap}.enemy-intent .icon{width:12px;height:12px}.hero-position{position:absolute;left:50%;bottom:13px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.hero-back-wrap{position:relative}.hero-back{width:clamp(140px,15vw,220px);height:clamp(140px,15vw,220px);filter:drop-shadow(0 4px 8px #000b);animation:breathe 4s ease-in-out infinite;position:relative;z-index:1}.hero-ground{position:absolute;bottom:3px;left:20%;width:60%;height:14px;border:1px solid var(--hero-color);border-radius:50%;box-shadow:0 0 18px color-mix(in srgb,var(--hero-color) 45%,transparent),inset 0 0 20px color-mix(in srgb,var(--hero-color) 35%,transparent)}.weapon-badge{position:absolute;right:9%;bottom:22%;padding:7px;color:var(--gold);border:1px solid #cbb17b55;background:#172017c9;border-radius:50%;z-index:2}.weapon-badge .icon{width:22px;height:22px}.hero-name-tag{display:flex;align-items:center;gap:8px;border:1px solid #d9ce9c3b;background:#142318d9;padding:3px 12px;border-radius:20px;color:#e5e4ce;font-size:.8125rem;z-index:2}.hero-name-tag>i{height:6px;width:6px;border-radius:50%}.hero-name-tag>span{color:var(--gold);font-size:.75rem}.arena-hint{position:absolute;left:25px;top:22px;color:#c5caba;font-size:.75rem;text-shadow:0 1px 6px #000;max-width:200px}.battle-log-preview{position:absolute;right:25px;bottom:20px;color:#cacbb5;font-size:.8125rem;max-width:280px;text-align:right;background:#15211591;padding:7px 12px;border-radius:3px}.battle-console{display:grid;grid-template-columns:285px minmax(0,1fr);gap:28px;min-height:252px;padding:21px 3vw 15px;border-top:1px solid #cbb17b70;background:linear-gradient(130deg,#1a2b21,#0f1b15);position:relative;z-index:3}.hero-status{padding-right:24px;border-right:1px solid var(--line)}.hero-status-title{display:flex;gap:12px;align-items:center;margin-bottom:11px}.hero-status-title>div{display:flex;flex-direction:column;flex:1}.hero-status-title strong{font-family:var(--serif);font-size:1.15rem;font-weight:400}.hero-status-title>div>span{font-size:.75rem;color:var(--muted)}.hero-status-title .icon-btn{border:none;background:none;padding:4px;width:28px}.meter-block{margin:7px 0}.meter-caption{display:flex;justify-content:space-between;gap:6px;font-size:.75rem;margin-bottom:4px;color:#c0c7b5}.meter-caption .muted{color:#95a38e}.meter{height:7px;border-radius:2px;background:#060f09cc;overflow:hidden;border:1px solid #b9c49a18}.meter>i{height:100%;display:block;transition:width .35s ease}.meter.health>i{background:linear-gradient(90deg,#458b57,#98c57b)}.meter.energy>i{background:linear-gradient(90deg,#426aaa,#8db0e1)}.meter.xp{height:4px}.meter.xp>i{background:var(--gold)}.xp-label{font-size:.75rem;display:flex;align-items:center;gap:5px;margin:13px 0 5px;color:var(--muted)}.xp-label>span{margin-left:auto}.xp-label .icon{width:12px;height:12px;color:var(--gold)}.actions-panel{min-width:0}.actions-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.75rem;color:var(--gold);letter-spacing:.1em;margin-bottom:14px}.actions-heading>span:last-child{font-size:.75rem;color:var(--muted);letter-spacing:0}.action-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.action-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px solid #a2b79033;border-radius:3px;min-height:122px;background:linear-gradient(135deg,#2a3f2e,#1a2d20);padding:15px 5px 10px;transition:background .2s,border-color .2s}.action-button:hover:not(:disabled){background:#344d38;border-color:var(--gold);transform:translateY(-2px)}.action-button.basic-action{border-color:#cab982b3;background:linear-gradient(120deg,#a994582a,#4a55352e)}.action-button>.icon{height:28px;width:28px;color:var(--gold-light)}.action-button>strong{font-weight:500;font-size:.8125rem;text-align:center;line-height:1.2}.action-button>span:last-child{font-size:.75rem;color:#aebca4;text-align:center;line-height:1.3}.action-key{position:absolute;top:5px;right:7px;color:#869580;font-size:.75rem;font-family:var(--sans)}.action-button:disabled{opacity:.34;filter:grayscale(.7)}.action-help{font-size:.75rem;color:#a6b09b;text-align:center;margin-top:15px;min-height:20px}.action-help .btn{min-height:36px;padding:5px 25px;margin-top:-5px}.combat-floats{position:absolute;inset:0;pointer-events:none;z-index:10;overflow:visible}.combat-float{position:absolute;left:50%;top:35%;white-space:nowrap;color:#ffcfb7;font-family:var(--serif);font-size:2rem;font-weight:700;text-shadow:0 2px 3px #000,0 0 12px #000;animation:floatUp 1s ease-out forwards}.combat-float.healing{color:#b0f4a2}.combat-float.critical{font-size:2.5rem;color:#ffcc79}.impact .sprite{animation:shake .18s linear!important;filter:brightness(1.5) drop-shadow(0 0 10px #cf5a4166)}.hero-back-wrap.casting .sprite{animation:cast .65s ease!important}
.title-level{font-family:var(--sans);font-size:.875rem;color:var(--gold);margin-left:15px;white-space:nowrap;letter-spacing:0}.inventory-layout{display:grid;grid-template-columns:minmax(530px,1.1fr) minmax(300px,1fr);gap:28px;align-items:start}.paperdoll{padding:20px}.paperdoll-stage{display:grid;grid-template-columns:1fr 160px 1fr;min-height:355px;align-items:center;position:relative}.slots-left,.slots-right{display:flex;flex-direction:column;gap:13px;z-index:2}.equipment-slot{display:flex;align-items:center;gap:8px;border:1px solid #4b594055;border-radius:3px;padding:7px 5px;background:#0a140e77;min-height:73px}.equipment-slot.filled{border-color:color-mix(in srgb,var(--rarity) 40%,transparent)}.slot-icon{border:1px solid color-mix(in srgb,var(--rarity) 40%,transparent);height:37px;width:34px;flex-shrink:0;display:grid;place-items:center;background:#1e3022;color:var(--rarity)}.slot-icon .icon{width:22px}.equipment-slot>div:last-child{min-width:0}.equipment-slot span{font-size:.75rem;color:var(--gold)}.equipment-slot strong{font-size:.75rem;display:block;font-weight:400;color:#c5ceba;line-height:1.3;overflow-wrap:anywhere}.equipment-slot:not(.filled) strong{color:#71806e}.slot-stats{display:flex;gap:5px}.slot-stats>span{font-size:.75rem;color:var(--rarity)}.slot-stats .icon{width:10px;height:10px;margin-right:2px}.paperdoll-hero{position:relative;width:160px;height:330px;display:grid;place-items:center;z-index:0}.paperdoll-hero .hero-large{width:300px;height:300px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);animation:none}.paperdoll-hero .hero-halo{width:220px;height:220px}.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);padding:22px 0 12px;gap:10px}.stat-strip>div{display:flex;align-items:center;flex-direction:column;gap:3px}.stat-strip .icon{color:var(--gold);width:18px}.stat-strip strong{font-family:var(--serif);font-size:1.65rem;font-weight:400}.stat-strip span{font-size:.75rem;color:var(--muted)}.paperdoll>.racial-trait{margin-top:10px}.skill-track{display:flex;justify-content:space-between;gap:10px;padding:20px 0 3px}.skill-track>div{display:flex;align-items:center;flex-direction:column;gap:6px;text-align:center;flex:1;color:#5e6e5c}.skill-track>div.unlocked{color:var(--gold)}.skill-track span{font-size:.75rem}.skill-track strong{font-size:.75rem;font-weight:400;line-height:1.2}.skill-track .icon{width:21px}.bag-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:0 0 18px}.bag-heading h2{font-size:1.5rem}.bag-heading h2>span{font-family:var(--sans);font-size:.875rem;color:var(--muted);margin-left:7px}.bag-heading select{font-size:.8125rem;max-width:180px;padding:8px}.bag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;max-height:690px;overflow-y:auto;padding:1px 7px 6px 1px;scrollbar-color:#566c4b #112018}.item-card{background:linear-gradient(135deg,#1d3024,#14231a);border:1px solid color-mix(in srgb,var(--rarity) 32%,transparent);border-radius:4px;padding:15px 13px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px;min-width:0}.item-card:before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--rarity);opacity:.6}.item-card.equipped{background:linear-gradient(135deg,#304329,#1a2b1e)}.item-card.incompatible{opacity:.5}.item-card-top{display:flex;align-items:center;gap:12px}.item-icon{border:1px solid color-mix(in srgb,var(--rarity,var(--gold)) 45%,transparent);background:radial-gradient(ellipse,color-mix(in srgb,var(--rarity,var(--gold)) 18%,transparent),#0c180f);color:var(--rarity,var(--gold));height:51px;width:51px;flex-shrink:0;display:grid;place-items:center;border-radius:4px}.item-icon .icon{width:29px;height:29px}.rarity{font-size:.75rem;color:var(--rarity,var(--gold))}.item-card h3{font-size:1.05rem;line-height:1.3;margin:3px 0}.item-card-top .small{font-size:.75rem;line-height:1.3;display:block}.item-stats{display:flex;justify-content:flex-start;gap:12px;flex-wrap:wrap;font-size:.8125rem;color:#bdcbb0}.item-stats .icon{width:14px;height:14px;margin-right:3px;opacity:.8}.item-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:auto;border-top:1px solid #cbb17b17;padding-top:11px}.item-card-bottom .money{gap:6px;font-size:.8125rem}.item-card-bottom .coin{width:9px;height:9px}.item-card-bottom .small{font-size:.75rem}.equipped-tag{font-size:.75rem;color:var(--green);display:inline-flex;gap:5px;align-items:center}.equipped-tag .icon{width:13px}.empty-mini{padding:40px 0;color:var(--muted);font-size:.9375rem}.shop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:23px}.filter-tabs{display:flex;gap:8px;flex-wrap:wrap}.filter-tabs>button{font-size:.875rem;padding:7px 14px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--muted)}.filter-tabs>button:hover{color:var(--text)}.filter-tabs>button.active{border-color:#cbb17b77;color:var(--gold-light);background:#cbb17b12}.shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.shop-grid .item-card{padding:20px 16px}.shop-grid .item-card-top{align-items:flex-start;gap:10px}.shop-grid .item-card-top .item-icon{width:44px;height:44px}.shop-grid .item-card-top .item-icon .icon{width:24px}
.save-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;max-width:1120px;margin:auto}.save-card{padding:22px 26px;display:flex;flex-direction:column;text-align:center;min-height:455px}.save-heading{display:flex;justify-content:space-between;align-items:center;text-align:left}.save-heading .overline{font-size:.75rem}.save-hero{width:185px;height:185px;margin:8px auto;filter:drop-shadow(0 0 25px #cbb17b18)}.save-card h2{font-size:1.8rem}.save-card>p{font-size:.875rem;color:var(--muted);margin-top:4px}.save-progress{display:flex;justify-content:space-between;padding:15px 0;margin:14px 0 10px;border-block:1px solid var(--line);font-size:.875rem;color:var(--gold)}.save-card>.primary{margin-top:22px}.save-card>.ghost{font-size:.8125rem;margin-top:8px}.save-card>.small{font-size:.75rem}.empty-slot{display:flex;align-items:center;justify-content:center;flex-direction:column;flex:1;gap:20px;color:var(--muted)}.empty-slot>.icon{width:35px;height:35px;color:var(--gold);opacity:.45}.empty-slot h2{font-size:1.4rem;color:#c2c5b5}.empty-slot p{font-size:.875rem}.save-footer{max-width:1120px;display:flex;align-items:center;justify-content:center;gap:25px;margin:30px auto}.empty-state{max-width:600px;text-align:center;margin:80px auto;display:flex;align-items:center;flex-direction:column;gap:25px}.empty-state>.icon{color:var(--gold);height:40px;width:40px}.empty-state p{color:var(--muted)}.settings-wrap{max-width:670px;margin:58px auto}.settings-wrap>h1{margin:13px 0 30px;font-size:2.65rem}.settings-panel{padding:30px}.volume-label{display:flex;align-items:center;justify-content:space-between;font-size:1rem;margin-bottom:22px}.volume-label>span{display:flex;align-items:center;gap:12px}.volume-label .icon{color:var(--gold)}.volume-label output{color:var(--gold);font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--gold);cursor:pointer;margin:0 0 25px}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:22px 0;border-top:1px solid var(--line);cursor:pointer}.setting-row>span{display:flex;flex-direction:column;gap:5px}.setting-row strong{font-weight:500;font-size:1rem}.setting-row small{color:var(--muted);font-size:.875rem}.setting-row input[type=checkbox]{appearance:none;width:42px;height:24px;border-radius:20px;background:#344335;border:1px solid #61734e;position:relative;cursor:pointer;flex-shrink:0}.setting-row input[type=checkbox]:before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#96a488;border-radius:50%;transition:left .2s}.setting-row input[type=checkbox]:checked{background:#8eac70;border-color:#aec188}.setting-row input[type=checkbox]:checked:before{left:21px;background:#112112}.settings-help{border-top:1px solid var(--line);padding-top:20px;color:var(--muted);font-size:.875rem}.settings-help strong{color:var(--gold);font-weight:500}.settings-help p{margin-top:9px;line-height:1.8}
#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:1000;border:1px solid #bfc39b77;background:#192d20f7;color:#e4e9d5;box-shadow:0 8px 40px #0008;padding:14px 22px;border-radius:5px;font-size:.9375rem;max-width:min(600px,92vw);width:max-content;transition:opacity .2s,transform .2s}#toast.show{opacity:1;transform:translate(-50%,0)}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#040e0be3;backdrop-filter:blur(7px);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:5vh 20px;overscroll-behavior:contain}.modal{width:min(540px,100%);position:relative;border:1px solid #cbb17b88;border-radius:6px;background:radial-gradient(ellipse at 50% 0%,#3f51304d,transparent 55%),#122118;padding:40px 35px 27px;box-shadow:0 30px 100px #0008;animation:modalEnter .3s ease-out;margin:auto 0}.modal-close{position:absolute;right:12px;top:12px;width:32px;height:32px;min-height:32px;padding:5px;background:transparent;border:0;z-index:2}.modal-close .icon{width:19px;height:19px}.modal h1{font-size:2.2rem;margin:12px 0}.modal h2{margin:13px 0}.modal>p{color:var(--muted);font-size:.9375rem;line-height:1.7;margin:14px 0 23px}.modal>.full{margin-top:12px}.reward-modal{text-align:center;padding-top:26px}.reward-emblem{display:grid;place-items:center;width:55px;height:55px;border:1px solid var(--line);color:var(--gold);transform:rotate(45deg);margin:10px auto 25px;background:#bba46112}.reward-emblem>.icon{transform:rotate(-45deg);width:28px;height:28px}.reward-emblem.defeat{color:#d9a288;border-color:#af7067}.reward-currencies{display:flex;align-items:center;justify-content:center;gap:60px;margin:20px 0 25px}.reward-currencies>div{display:flex;align-items:center;flex-direction:column;gap:4px}.reward-currencies strong{font-family:var(--serif);font-size:1.9rem;color:var(--gold-light);font-weight:400}.reward-currencies>div>span:last-child{font-size:.75rem;letter-spacing:.1em;color:var(--muted)}.reward-currencies .money{min-height:39px;font-size:1.2rem;gap:10px}.reward-currencies .money>span{font-size:1.2rem}.level-up{padding:10px;border:1px solid #94d8a257;color:#afe3a8;background:#8ae09c0a;font-size:.875rem;border-radius:4px;margin:10px 0 18px}.level-up .icon{margin-right:5px;width:17px}.reward-item{padding:22px 15px 17px;border:1px solid color-mix(in srgb,var(--rarity) 40%,transparent);background:radial-gradient(ellipse at top,color-mix(in srgb,var(--rarity) 14%,transparent),transparent 70%);border-radius:4px}.reward-item>.item-icon{margin:0 auto 12px;width:62px;height:62px}.reward-item h2{font-size:1.5rem;margin:7px 0 13px;color:var(--rarity)}.reward-item .item-stats{justify-content:center;margin-bottom:18px}.reward-item>.btn{min-height:37px;padding:6px 15px;font-size:.875rem}.recovery-note{font-size:.75rem;color:var(--muted);margin:19px 0 11px}.modal-two-actions{display:flex;gap:14px;justify-content:center;margin-top:15px}.modal-two-actions>.btn{font-size:.875rem;min-height:40px;padding:7px 12px}.journal{padding-left:20px;margin:22px 0 0;font-size:.875rem;color:#c5cfb9;line-height:1.75;max-height:55vh;overflow-y:auto}.journal>li{padding:6px 0;border-bottom:1px solid #b7c09415}.slot-choices{display:flex;gap:12px;flex-direction:column}
@keyframes arrowBlink{0%,65%{opacity:1}66%,100%{opacity:.25}}@keyframes firefly{0%{opacity:.1;transform:translateY(5px)}70%{opacity:.8}100%{opacity:.2;transform:translate(-20px,-40px)}}@keyframes breathe{0%,100%{translate:0 0}50%{translate:0 -3px}}@keyframes modalEnter{from{opacity:0;translate:0 20px;scale:.98}to{opacity:1;translate:0 0;scale:1}}@keyframes floatUp{0%{opacity:1;transform:translate(-50%,20px) scale(.7)}20%{transform:translate(-50%,-4px) scale(1)}100%{opacity:0;transform:translate(-50%,-65px)}}@keyframes shake{0%,100%{translate:0}30%{translate:-4px}70%{translate:4px}}@keyframes cast{0%,100%{translate:0 0}40%{translate:0 -15px;filter:brightness(1.25)}}
@media(min-width:1600px){.menu-screen{background-position:center 55%}.menu-content{margin-top:10vh}.creation-grid{gap:50px}.hero-display{height:280px}.hero-display .hero-large{width:310px;height:310px}.race-portrait{height:163px}.battle-console{padding-left:5vw;padding-right:5vw;grid-template-columns:310px 1fr;gap:35px}}
@media(max-width:1150px){.creation-grid{gap:22px;grid-template-columns:minmax(0,1.4fr) minmax(285px,1fr)}.inner-screen{padding-inline:3vw}.race-grid,.class-grid{gap:8px}.hero-preview{padding:18px}.hero-display{height:240px}.hero-display .hero-large{width:260px;height:260px}.race-portrait{height:110px}.class-card{min-height:98px}.battle-console{grid-template-columns:235px 1fr;gap:20px}.hero-status{padding-right:18px}.action-grid{gap:6px}.action-button{min-height:123px;padding-inline:4px}.action-button>strong{font-size:.75rem}.action-button>span:last-child{font-size:.75rem}.actions-heading>span:last-child{font-size:.75rem}.inventory-layout{grid-template-columns:minmax(490px,1.25fr) minmax(250px,1fr);gap:20px}.bag-grid{grid-template-columns:1fr}.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.paperdoll{padding:15px}.paperdoll-stage{grid-template-columns:1fr 135px 1fr}.paperdoll-hero{width:135px}.topbar-actions{gap:12px}}
@media(max-width:850px){.menu-content{width:55vw;margin-top:80px;margin-left:10vw}.menu-shade{background:linear-gradient(90deg,#08120ff2,#091710a6 45%,#09181112),linear-gradient(0deg,#06110bd9,transparent 30%)}.menu-screen{background-position:62% center}.menu-content h1{font-size:5rem}.menu-option{font-size:1.6rem}.menu-footer-right>span{display:none}.menu-content>.overline{font-size:.75rem}.topbar-title{display:none}.creation-grid{grid-template-columns:1fr 280px}.race-grid{gap:6px}.race-card strong{font-size:1rem}.race-portrait{height:90px}.class-card strong{font-size:.75rem}.class-card>.icon{width:25px}.class-grid{gap:6px}.creation-bottom{flex-direction:column;align-items:flex-start}.name-label{max-width:100%;width:100%}.hero-preview{padding:16px}.hero-display{height:265px;padding-top:20px}.hero-display .hero-large{width:270px;height:270px}.starter-note{align-items:flex-start}.starter-note>.small{display:none}.hero-preview h2{font-size:1.8rem}.page-heading>.small{display:none}.battle-topbar{padding:0 15px;gap:10px}.battle-topbar .wordmark>span:last-child{display:none}.battle-top-actions .money{margin-right:6px;gap:8px}.battle-top-actions .icon-btn{height:37px;width:37px;min-height:37px}.battle-console{grid-template-columns:200px 1fr;min-height:295px;padding:18px 18px 15px;gap:17px}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.action-button{min-height:89px;gap:4px;padding:11px 4px 8px}.action-button>.icon{width:24px;height:24px}.actions-heading{margin-bottom:10px;font-size:.75rem}.actions-heading>span:last-child{display:none}.action-help{font-size:.75rem;margin-top:10px}.arena{height:calc(100svh - 371px);min-height:360px}.enemy-line{top:18%;gap:20px}.enemy-sprite{width:150px;height:150px}.enemy.boss .enemy-sprite{height:180px;width:180px}.hero-back{width:155px;height:155px}.hero-position{bottom:12px}.battle-log-preview{max-width:200px;font-size:.75rem;right:12px;bottom:18px}.arena-hint{max-width:140px;font-size:.75rem;left:15px}.inventory-layout{grid-template-columns:1fr}.paperdoll{max-width:680px;width:100%;margin:auto}.paperdoll-stage{grid-template-columns:1fr 230px 1fr}.paperdoll-hero{width:230px}.paperdoll-hero .hero-large{width:330px;height:330px}.equipment-slot{padding:9px}.equipment-slot strong{font-size:.8125rem}.bag-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.save-grid{gap:12px}.save-card{padding:20px 15px}.save-card .full{font-size:.75rem;padding:10px 5px}.save-heading{gap:3px}.save-heading .overline{letter-spacing:.06em}.save-hero{width:150px;height:150px}.save-card h2{font-size:1.6rem}.save-footer{flex-direction:column;gap:10px;text-align:center}.save-progress{font-size:.75rem}}
@media(max-width:620px){.menu-screen{min-height:max(720px,100svh);background-position:64% center}.menu-grain{inset:12px}.menu-top{padding:30px 26px}.menu-top .edition{font-size:.75rem;letter-spacing:.04em}.numavous{font-size:.75rem}.numavous>span{display:none}.menu-content{margin:65px 0 125px 46px;width:calc(100% - 80px)}.menu-content h1{font-size:4.2rem}.menu-content>.overline{letter-spacing:.2em;font-size:.75rem}.title-rule{max-width:250px;margin-bottom:30px}.menu-shade{background:linear-gradient(90deg,#08120ff5,#091710a8 58%,#09181162),linear-gradient(0deg,#06110bd9,transparent 30%)}.menu-option{font-size:1.4rem;padding-block:12px}.main-menu{margin-left:-31px}.menu-arrow{width:22px;font-size:1.6rem}.menu-footer{left:26px;right:26px;bottom:30px}.menu-footer>span{font-size:.8125rem}.menu-content .resume-link{font-size:.8125rem}.inner-screen{padding:0 20px 35px}.topbar{height:70px;gap:10px}.topbar .wordmark{font-size:.875rem}.topbar .edition{display:none}.topbar-actions .money{font-size:.8125rem;gap:7px}.topbar-actions .btn{padding:8px 9px;min-height:38px;font-size:.8125rem}.topbar-actions .btn .icon{width:17px}.page-heading{padding:28px 0 24px;align-items:flex-start;flex-direction:column;gap:18px}.page-heading h1{font-size:2.1rem}.page-heading p{font-size:.9375rem}.creation-grid{grid-template-columns:1fr;gap:26px}.race-grid{gap:9px;margin-bottom:26px}.race-portrait{height:106px}.race-card strong{font-size:1.05rem}.race-card>span{font-size:.75rem}.class-grid{gap:8px}.class-card{min-height:94px}.class-card strong{font-size:.8125rem}.creation-bottom{flex-direction:row;align-items:center;gap:18px}.name-label{max-width:180px}.colors{gap:9px}.color-choice{width:33px;height:33px}.step-label{font-size:.875rem}.hero-preview{padding:22px}.hero-display{height:260px;padding-top:0}.hero-display .hero-large{width:285px;height:285px}.hero-preview h2{margin-top:8px}.hero-preview .class-description{margin:20px 0}.hero-preview .hero-description{max-width:100%}.class-description{font-size:.9375rem}.racial-trait span{font-size:.875rem}.starter-note{margin-top:24px;padding-top:18px}.hero-preview>.primary{min-height:50px}.battle-topbar{height:67px;padding:0 12px;gap:7px}.battle-topbar .wordmark{display:none}.region-label{text-align:left}.region-label>span{font-size:.75rem;letter-spacing:.12em}.region-label strong{font-size:1.2rem}.boss-label{display:block;font-size:.75rem;margin:0}.battle-top-actions{gap:5px}.battle-top-actions .money{font-size:.75rem;gap:5px;margin-right:6px}.battle-top-actions .coin{width:9px;height:9px}.battle-top-actions .icon-btn{width:32px;height:34px;min-height:34px;padding:6px}.battle-top-actions .icon{width:18px;height:18px}.arena{height:400px;min-height:400px;flex:auto;background-position:50% 55%}.arena-hint{display:none}.turn-banner{top:12px;font-size:.75rem;gap:6px;padding:5px 12px}.enemy-line{top:23%;gap:4px;width:100%;padding-inline:4px}.enemy{width:32%;max-width:160px}.enemy-name{font-family:var(--sans);font-size:.75rem;white-space:normal;line-height:1.2;min-height:29px;justify-content:center;align-items:center}.enemy-name .icon{display:none}.enemy-health{height:14px;margin-top:4px;width:95px;max-width:85%}.enemy-health>span{font-size:.75rem;line-height:12px}.enemy-sprite{width:126px;height:126px;max-width:120%}.enemy.boss .enemy-sprite{width:145px;height:145px;max-width:125%}.enemy-intent{font-size:.75rem;padding:2px 4px;white-space:normal;line-height:1.25;max-width:115px;min-height:24px;display:flex;align-items:center;justify-content:center}.enemy-intent .icon{display:none}.target-ring{bottom:29px;height:14px}.hero-back{width:148px;height:148px}.hero-position{bottom:10px}.hero-name-tag{font-size:.75rem;padding:2px 9px}.hero-name-tag>span{font-size:.75rem}.weapon-badge{padding:5px}.weapon-badge .icon{width:18px;height:18px}.battle-log-preview{font-size:.75rem;max-width:110px;right:8px;bottom:25px;padding:5px;text-align:left}.battle-console{display:block;padding:16px 16px 20px;min-height:0}.hero-status{padding:0 0 14px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;column-gap:17px;margin-bottom:17px}.hero-status-title{grid-column:1/-1;margin-bottom:3px}.hero-status-title .level-seal{height:32px;width:32px;font-size:1rem}.hero-status-title strong{font-size:1.1rem}.hero-status-title>div>span{font-size:.75rem}.hero-status .meter-block{margin-bottom:4px}.hero-status .xp-label{grid-column:1/-1;margin-top:7px}.hero-status>.meter.xp{grid-column:1/-1}.hero-status-title .icon-btn{margin-left:auto}.action-grid{gap:8px}.action-button{min-height:96px;padding:13px 5px 9px}.action-button>strong{font-size:.8125rem}.action-button>span:last-child{font-size:.75rem}.actions-heading{font-size:.75rem}.action-help{font-size:.75rem;margin-top:13px}.combat-float{font-size:1.5rem}.combat-float.critical{font-size:2rem}.title-level{display:block;margin:8px 0 0}.inventory-layout{gap:26px}.paperdoll{padding:12px}.paperdoll-stage{grid-template-columns:1fr 96px 1fr;min-height:342px}.paperdoll-hero{width:96px;height:290px}.paperdoll-hero .hero-large{width:245px;height:245px;left:50%;opacity:.92}.paperdoll-hero .hero-halo{width:175px;height:175px}.equipment-slot{min-height:70px;padding:5px;gap:5px;align-items:flex-start;flex-direction:column;position:relative}.equipment-slot .slot-icon{position:absolute;right:4px;top:4px;width:24px;height:25px;opacity:.65}.equipment-slot .slot-icon .icon{width:17px;height:17px}.equipment-slot>div:last-child{width:100%;padding-top:0}.equipment-slot strong{font-size:.75rem;max-width:90px;margin-top:8px}.equipment-slot>div>span{font-size:.75rem;padding-right:27px;display:block}.slot-stats{gap:4px;margin-top:3px}.slot-stats>span{font-size:.75rem}.slot-stats .icon{width:9px;height:9px}.slots-left,.slots-right{gap:10px}.stat-strip{gap:5px;padding-top:15px}.stat-strip strong{font-size:1.45rem}.stat-strip span{font-size:.75rem}.paperdoll>.racial-trait{padding:15px 5px}.paperdoll .racial-trait span{font-size:.75rem}.skill-track strong{font-size:.75rem}.bag-grid{gap:12px;grid-template-columns:1fr}.item-card{padding:16px}.item-card-top h3{font-size:1.2rem}.item-card-top .small{font-size:.75rem}.item-card-bottom .small{font-size:.75rem}.item-card .rarity{font-size:.75rem}.item-card-bottom .money{font-size:.875rem}.shop-grid{grid-template-columns:1fr;gap:15px}.shop-grid .item-card{padding:20px}.shop-grid .item-card-top .item-icon{width:50px;height:50px}.shop-grid .item-card h3{font-size:1.2rem}.shop-toolbar{gap:15px}.shop-toolbar>.small{font-size:.75rem}.filter-tabs{gap:3px}.filter-tabs>button{font-size:.8125rem;padding:6px 10px}.notice{font-size:.875rem;padding:12px}.save-grid{grid-template-columns:1fr;gap:18px}.save-card{min-height:380px;padding:23px}.save-card .full{font-size:.9375rem;padding:10px}.save-card .save-hero{width:190px;height:190px}.save-heading .overline{font-size:.75rem;letter-spacing:.1em}.save-progress{font-size:.875rem}.empty-slot{padding:35px 0}.save-footer>.small{font-size:.8125rem}.settings-wrap{margin:35px auto}.settings-wrap>h1{font-size:2rem}.settings-panel{padding:22px}.setting-row{gap:15px}.setting-row small{font-size:.8125rem}.volume-label{font-size:.9375rem}.modal-backdrop{padding:20px 12px}.modal{padding:35px 23px 24px}.modal h1{font-size:1.9rem}.reward-currencies{gap:40px;margin-bottom:22px}.reward-modal .reward-emblem{width:45px;height:45px}.modal-two-actions{gap:9px}.modal-two-actions>.btn{font-size:.8125rem;padding-inline:9px}.recovery-note{font-size:.75rem}#toast{font-size:.875rem;padding:12px 16px;bottom:15px}}
@media(max-width:360px){.menu-content h1{font-size:3.7rem}.inner-screen{padding-inline:14px}.creation-bottom{flex-direction:column;align-items:flex-start}.name-label{max-width:100%}.race-portrait{height:91px}.race-card strong{font-size:.9375rem}.class-card strong{font-size:.75rem}.race-grid,.class-grid{gap:5px}.battle-top-actions .money{gap:3px;margin-right:2px}.battle-top-actions .icon-btn{width:30px}.paperdoll-stage{grid-template-columns:1fr 80px 1fr}.paperdoll-hero{width:80px}.equipment-slot strong{font-size:.75rem}.hero-back{width:135px;height:135px}.enemy-sprite{width:113px;height:113px}.enemy.boss .enemy-sprite{width:128px;height:128px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.menu-arrow{opacity:1!important}}
.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important}.reduce-motion .menu-arrow{opacity:1}

/* Keep frequently used controls legible on compact displays. */
.action-button>strong{font-size:.875rem}.enemy-name{font-size:.875rem}.region-label>span{font-size:.75rem}
@media(max-width:620px){.battle-topbar{height:87px;gap:12px}.battle-top-actions{display:grid;grid-template-columns:repeat(3,32px);gap:4px 5px}.battle-top-actions .money{grid-column:1/-1;justify-content:flex-end;margin:0 0 1px;font-size:.75rem}.region-label>span{font-size:.75rem;max-width:130px;line-height:1.35;letter-spacing:.09em}.enemy-name{font-size:.8125rem}.action-button>strong{font-size:.875rem}.action-button{min-height:107px}.enemy-intent{min-height:31px}.enemy-line{top:20%}.target-ring{bottom:36px}.battle-log-preview{max-width:106px;font-size:.75rem}.hero-position{left:47%}}

/* V2: a traversable tabletop with independent, readable controls. */
.menu-screen{background-image:url('./assets/menu-v2.png')}
.v3-battle{background:#101b1b}.v3-battle .battle-topbar{background:#152121}
.region-label strong em{font-family:var(--sans);font-style:normal;font-size:.875rem;color:#b8c5b5;margin-left:8px}
.journey{padding:10px 3vw 12px;background:#172522;border-bottom:1px solid var(--line);position:relative;z-index:4}
.journey-caption{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:.75rem;color:var(--muted);margin-bottom:7px}
.journey-caption strong{color:var(--gold);font-weight:600;letter-spacing:.13em}
.journey-track{list-style:none;display:flex;gap:6px;margin:0;padding:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#6d795c #172522;position:relative}
.journey-step{flex:1;min-width:48px;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px;border:1px solid #78927a33;border-radius:3px;color:#7f9284;background:#12201d;white-space:nowrap}
.journey-step>span{font-size:.75rem;font-variant-numeric:tabular-nums}.journey-step>.icon{width:16px;height:16px}.journey-step strong{font-size:.75rem;font-weight:400}
.journey-step.done{color:#94ba92;border-color:#9baa7940;background:#2c3c282f}.journey-step.current{color:#f3dfb0;background:#a492541f;border-color:#cdb270;box-shadow:inset 0 -2px #d6bc84}
.journey-step.boss:not(.done){color:#d3a189}.journey-step.merchant:not(.done){color:#ccb46c}.journey-step.event:not(.done){color:#ada9d0}
.chapter3d{background-image:url('./assets/ruins-fallback.png');height:calc(100svh - 420px);min-height:390px;max-height:900px;flex:none;background-position:center 47%}
.board-viewport{position:absolute;inset:0;z-index:0;overflow:hidden}.board-viewport canvas{display:block;width:100%;height:100%;touch-action:pan-y}
.chapter3d .turn-banner{z-index:7}.chapter3d .enemy-line{z-index:3}.chapter3d .hero-position{z-index:5;bottom:9px}.chapter3d .hero-back{width:150px;height:150px}.chapter3d .hero-name-tag{margin-bottom:6px}
.mode-switch{display:flex;align-items:center;gap:10px;padding:8px 11px;min-height:50px;min-width:180px;border:1px solid #c4ae7b;background:#172822f5;color:#e7d4a0;border-radius:4px;box-shadow:0 4px 20px #0006;position:relative;text-align:left}
.mode-switch>.icon:first-child{width:25px;height:25px}.mode-switch>.icon:nth-last-child(2){width:18px;height:18px;margin-left:auto}.mode-switch>span{display:flex;flex-direction:column}.mode-switch small{font-size:.75rem;color:#b2bba0;line-height:1.2}.mode-switch strong{font-size:.9375rem;line-height:1.3;font-weight:500}.mode-switch kbd{font-family:var(--sans);font-size:.75rem;border:1px solid #c4b78655;padding:0 4px;color:#b4b798;border-radius:2px}
.mode-switch:hover:not(:disabled){background:#304535;border-color:#f4d6a0}.mode-switch.support{border-color:#93c9a0;color:#c2e7b8}.mode-switch:disabled{opacity:.5;cursor:default}
.board-3d-ready .enemy-line{inset:0;width:100%;height:100%;max-width:none;transform:none;display:block;padding:0;pointer-events:none}
.board-3d-ready .enemy{position:absolute;transform:translate(-50%,-100%);width:150px;max-width:29%;min-width:0;display:flex;pointer-events:auto;padding:7px 9px;border:1px solid #d1c39440;border-radius:4px;background:#102020db;backdrop-filter:blur(3px);box-shadow:0 4px 20px #0003}
.board-3d-ready .enemy.targeted{border-color:#ecd3a0;background:#20352aec}.board-3d-ready .enemy.dead{display:none}.board-3d-ready .enemy .sprite,.board-3d-ready .enemy .target-ring{display:none}
.board-3d-ready .enemy-name{font-size:.875rem;line-height:1.25;white-space:normal;min-height:0;justify-content:center}.board-3d-ready .enemy-intent{font-size:.75rem;min-height:0;padding:2px 0;background:none;line-height:1.3}
.board-3d-ready .enemy-health{width:100%;max-width:100%;margin:6px 0 2px;height:15px}.board-3d-ready .enemy-health>span{font-size:.75rem;line-height:13px}
.board-3d-ready .hero-position{bottom:auto;transform:translateX(-50%);position:absolute}.board-3d-ready .hero-back-wrap{height:0;width:80px;position:relative}.board-3d-ready .hero-back,.board-3d-ready .hero-ground{display:none}.board-3d-ready .hero-position .combat-floats{top:-80px}
.chapter3d .arena-hint{top:auto;bottom:13px;left:20px;background:#15271fba;padding:6px 10px;border-radius:3px;z-index:2;max-width:220px;font-size:.75rem}
.chapter3d .battle-log-preview{z-index:2;right:18px;bottom:13px;max-width:250px;background:#10201cce;font-size:.8125rem}
.boss-tactic{position:absolute;top:18px;left:22px;display:flex;gap:9px;align-items:flex-start;max-width:240px;z-index:6;background:#1b2524dc;border:1px solid #be90784a;border-radius:4px;padding:9px 11px;font-size:.75rem;color:#dcb18e}
.boss-tactic>.icon{width:20px;height:20px}.boss-tactic>div{display:flex;flex-direction:column;gap:4px}.boss-tactic strong{font-weight:500}.boss-tactic span{color:#c3bbaa;font-size:.75rem}
.v3-battle .battle-console{padding-top:18px;min-height:252px;grid-template-columns:270px minmax(0,1fr);gap:24px;background:linear-gradient(135deg,#243126,#14201c)}
.v3-battle .action-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.v3-battle .action-button{min-height:117px;padding:13px 5px 10px;gap:7px}.v3-battle .action-button>span:last-child{font-size:.75rem;line-height:1.3}.v3-battle .action-button>strong{font-size:.875rem}
.v3-battle .action-help{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;margin-top:13px;font-size:.75rem}.v3-battle .quick-attack{margin:0;padding:4px 12px;min-height:32px;font-size:.8125rem}
.action-button.recharging{opacity:.62;filter:grayscale(.4)}.action-button .cooldown-number{position:absolute;top:7px;left:7px;display:grid;place-items:center;border:1px solid #c0ad79;border-radius:50%;background:#10251a;width:23px;height:23px;color:#efdaab;font-size:.875rem!important;font-weight:600}
.buff-strip{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.buff-strip>span{display:flex;align-items:center;gap:4px;font-size:.75rem;color:#bde6b6;background:#62856529;border:1px solid #a2ce9440;padding:2px 5px;border-radius:3px}.buff-strip .icon{width:12px;height:12px}
.encounter-card{position:absolute;left:5%;top:50%;transform:translateY(-50%);width:340px;max-width:40%;z-index:6;padding:24px;background:linear-gradient(135deg,#25372ff5,#102119f7);border-color:#c4ae7b83;box-shadow:0 12px 60px #0008}
.encounter-symbol{display:block;margin-bottom:12px;color:var(--gold)}.encounter-symbol .icon{width:30px;height:30px}.encounter-card h2{font-size:1.7rem;margin:11px 0 15px}.encounter-card p{font-size:.9375rem;line-height:1.55;color:#c4cdbb}.encounter-card .btn{margin-top:14px;font-size:.875rem}.encounter-gain{font-size:.8125rem;color:#a9d4a2;border-block:1px solid var(--line);padding:11px 0;margin-top:16px;line-height:1.7}
.event-result{color:#b0e4a8;font-family:var(--serif);font-size:2rem;margin:15px 0}.event-result.loss{color:#e2a38d}.event-result span{font-family:var(--sans);font-size:.8125rem;color:var(--muted);margin-left:4px}.interlude .arena-hint,.interlude .battle-log-preview{display:none}
.chest-modal{width:min(850px,100%)}.loot-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.loot-choice{border:1px solid color-mix(in srgb,var(--rarity) 55%,transparent);background:radial-gradient(ellipse at top,color-mix(in srgb,var(--rarity) 13%,transparent),transparent 80%);padding:19px 14px 15px;border-radius:4px;display:flex;align-items:center;flex-direction:column;gap:8px}.loot-choice>.item-icon{width:60px;height:60px;margin-bottom:4px}.loot-choice h2{font-size:1.35rem;color:var(--rarity);margin:5px 0 11px;min-height:3em}.loot-choice .item-stats{justify-content:center;margin-bottom:10px}.loot-choice .btn{margin-top:auto;font-size:.8125rem;min-height:40px;padding:8px}.loot-choice.chosen{outline:2px solid #d6cf9c;background:#bccb7821}.reward-item.compact{padding:12px;margin-top:15px;border:0;background:none}.reward-item.compact>.btn{max-width:100%;white-space:normal}
@media(max-width:1150px){.journey-step strong{display:none}.journey-step{padding:6px 3px;min-width:42px}.v3-battle .battle-console{grid-template-columns:230px 1fr;gap:18px}.v3-battle .action-button{min-height:128px}.v3-battle .action-button>strong{font-size:.8125rem}.v3-battle .actions-heading>span:last-child{font-size:.75rem}.encounter-card{padding:20px;width:320px;max-width:44%}.boss-tactic{max-width:205px;left:16px}.chapter3d .battle-log-preview{max-width:205px}.chapter3d .arena-hint{max-width:170px}}
@media(max-width:850px){.region-label strong em{font-size:.75rem}.journey{padding-inline:17px}.journey-caption>span{font-size:.75rem}.v3-battle .battle-console{grid-template-columns:200px 1fr;gap:16px;min-height:300px}.v3-battle .action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v3-battle .action-button{min-height:91px;gap:4px;padding:12px 5px 8px}.v3-battle .action-button>.icon{width:23px;height:23px}.v3-battle .action-button>strong{font-size:.8125rem}.v3-battle .action-help{font-size:.75rem;gap:6px}.v3-battle .action-help>span{display:none}.chapter3d{height:420px;min-height:420px}.boss-tactic{top:15px;left:12px;max-width:190px}.chapter3d .arena-hint{display:none}.chapter3d .battle-log-preview{font-size:.75rem;max-width:165px;right:12px}.mode-switch{min-width:173px}.encounter-card{max-width:43%;padding:18px}.encounter-card h2{font-size:1.4rem}.encounter-card p{font-size:.875rem}.encounter-card .overline{font-size:.75rem}.encounter-symbol{margin-bottom:7px}.encounter-symbol .icon{width:24px}.board-3d-ready .enemy{max-width:27%;width:140px;padding:6px}.board-3d-ready .enemy-name{font-size:.8125rem}}
@media(max-width:620px){.v3-battle .battle-topbar{height:90px}.region-label>span{font-size:.75rem;max-width:175px}.region-label strong{font-size:1.1rem;line-height:1.35}.region-label strong em{display:block;margin:1px 0 0;font-size:.8125rem}.journey{padding:10px 12px}.journey-caption{margin-bottom:8px}.journey-caption>span{font-size:.75rem;max-width:225px;text-align:right;line-height:1.3}.journey-track{gap:4px}.journey-step{flex:0 0 34px;min-width:34px;flex-direction:column;gap:2px;padding:4px 3px}.journey-step>.icon{width:15px;height:15px}.journey-step>span{font-size:.75rem}.chapter3d{height:490px;min-height:490px;max-height:none}.chapter3d .turn-banner{font-size:.75rem;top:12px}.chapter3d .enemy-line{top:21%;gap:5px}.chapter3d .hero-back{width:144px;height:144px}.chapter3d .hero-position{bottom:9px;left:43%}.chapter3d .battle-log-preview{display:none}.chapter3d .boss-tactic{display:none}.mode-switch{min-width:170px;padding:7px 9px;min-height:47px;gap:8px}.mode-switch strong{font-size:.875rem}.mode-switch small{font-size:.75rem}.mode-switch kbd{display:none}.mode-switch .icon:first-child{width:23px}.board-3d-ready .enemy-line{top:0;gap:0}.board-3d-ready .enemy{width:112px;max-width:29%;padding:6px 5px}.board-3d-ready .enemy-name{font-size:.8125rem;line-height:1.2}.board-3d-ready .enemy-health{height:15px}.board-3d-ready .enemy-intent{font-size:.75rem;line-height:1.2}.board-3d-ready .hero-name-tag{font-size:.8125rem}.board-3d-ready .hero-position{left:50%}.v3-battle .battle-console{display:block;min-height:0;padding:16px}.v3-battle .action-grid{gap:8px}.v3-battle .action-button{min-height:108px;padding:15px 5px 9px;gap:6px}.v3-battle .action-button>strong{font-size:.875rem}.v3-battle .action-button>span:last-child{font-size:.75rem}.v3-battle .action-help{font-size:.75rem;gap:10px}.v3-battle .quick-attack{font-size:.875rem;min-height:36px}.buff-strip{grid-column:1/-1;margin-top:7px}.interlude{height:690px;min-height:690px}.encounter-card{left:16px;right:16px;top:58px;transform:none;max-width:none;width:auto;padding:19px;background:#16291ef2}.encounter-card h2{font-size:1.5rem;margin-bottom:10px}.encounter-card p{font-size:.9375rem}.encounter-symbol{float:right;margin:0}.encounter-gain{padding:8px 0;margin-top:10px;font-size:.8125rem}.encounter-card .btn{margin-top:10px;font-size:.9375rem;min-height:42px}.interlude .hero-position{z-index:5}.interlude.board-3d-ready .hero-position{top:auto!important;bottom:18px}.loot-choices{grid-template-columns:1fr;gap:12px;margin-top:18px}.loot-choice{padding:17px;display:grid;grid-template-columns:60px 1fr;column-gap:13px;text-align:left;align-items:center}.loot-choice .item-icon{grid-row:1/3;margin:0}.loot-choice .rarity{font-size:.75rem}.loot-choice h2{min-height:0;font-size:1.3rem;margin:0}.loot-choice .item-stats{grid-column:1/-1;justify-content:flex-start;margin:7px 0}.loot-choice .btn{grid-column:1/-1;font-size:.875rem;min-height:42px}.chest-modal{padding-inline:20px}.chest-modal h1{font-size:1.85rem}}

/* Coupains, Charger !! — V3, cooperative turns and touch controls. */
html{scroll-padding-top:12px}body{overscroll-behavior-y:contain}button,a,input,select{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button,input,select{font:inherit}.btn,.icon-btn{min-height:44px}.inner-screen{padding-bottom:max(32px,env(safe-area-inset-bottom))}.wordmark{max-width:245px;text-align:left;gap:9px}.wordmark>span:last-child{font-size:.9375rem;line-height:1.3;letter-spacing:.045em}.wordmark small{display:block;font-family:var(--sans);font-size:.75rem;letter-spacing:0;color:#abb9a8;margin-top:3px;font-weight:400}.menu-content h1{font-size:clamp(3.3rem,6.1vw,6rem);line-height:1.02;letter-spacing:-.035em}.menu-content{padding-top:0}.menu-option small{font-size:.875rem;color:#cab889;margin-left:12px}.main-menu{gap:4px}.menu-option{min-height:46px}.menu-screen{min-height:780px}.menu-top{padding-top:max(24px,env(safe-area-inset-top))}.menu-footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}
.multiplayer-wrap{max-width:720px;margin:60px auto;padding:38px}.multiplayer-wrap h1{font-size:2.5rem;margin:12px 0 18px}.multiplayer-wrap>p{line-height:1.65;color:#c2cdbb}.player-count{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:28px 0}.player-count button{padding:22px 14px;background:#14261e;border:1px solid #75846b70;border-radius:5px;color:#b7c5af}.player-count button.selected{border-color:#d4bb83;background:#344831;color:#f6dfaf}.player-count strong{display:block;font:2.5rem var(--serif)}.player-count span{font-size:1rem}.team-class-icons{display:flex;flex-wrap:wrap;justify-content:center;gap:15px;margin:22px 0 28px}.team-class-icons>span{display:flex;align-items:center;gap:7px;color:#b6c9b4;font-size:.875rem}.team-setup-progress{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.team-setup-progress>span{padding:7px 12px;border:1px solid #b5c99055;color:#bace9f;background:#3e542633;border-radius:4px;font-size:.875rem}
.v3-battle .battle-topbar{height:90px;padding-inline:25px}.v3-battle .region-label{min-width:0}.v3-battle .journey{padding:9px 22px}.v3-battle .chapter3d{height:calc(100svh - 465px);min-height:330px;max-height:730px}.chapter3d .party-hero{bottom:8px}.party-hero.fallen{opacity:.48}.party-hero .hero-name-tag{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.party-hero.active .hero-name-tag{border:1px solid #d6ca94;color:#f7e5b9}.chapter3d .hero-back{width:clamp(85px,calc(260px / var(--party-count)),150px);height:clamp(85px,calc(260px / var(--party-count)),150px)}.board-3d-ready .party-hero{bottom:auto}.board-3d-ready .enemy{width:150px;max-width:calc(100% / var(--enemy-count) - 12px)}.board-3d-ready .enemy-name{font-size:.875rem;overflow-wrap:anywhere}.board-3d-ready .enemy-intent{font-size:.75rem;display:flex;align-items:center;gap:4px;justify-content:center}.board-3d-ready .enemy-intent>.icon{width:13px;height:13px}.chapter3d .battle-log-preview{bottom:12px;font-size:.75rem;max-width:230px}.chapter3d .boss-tactic{top:12px;left:16px;max-width:210px}.boss-tactic strong{font-size:.8125rem}
.party-bar{display:grid;grid-template-columns:repeat(var(--count,4),minmax(0,1fr));gap:12px;background:#182920;border-block:1px solid #b4bd8733;padding:12px max(22px,calc((100% - 1040px)/2));position:relative;z-index:6}.party-bar.count-1{--count:1;max-width:none;padding-inline:max(22px,calc((100% - 310px)/2))}.party-bar.count-2{--count:2;padding-inline:max(22px,calc((100% - 630px)/2))}.party-bar.count-3{--count:3}.party-card{min-width:0;border:1px solid #76967648;border-radius:5px;background:#203329;overflow:hidden;display:flex;flex-direction:column}.party-card.active{border-color:#d6c18b;box-shadow:0 0 0 1px #d6c18b33;background:#2b3e2b}.party-card.down{opacity:.65}.party-select{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px 9px;border:0;background:none;color:#e7e6cf;text-align:left;min-height:58px;width:100%}.party-number{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--hero-color);color:var(--hero-color);font-size:.875rem}.party-identity{min-width:0}.party-identity strong{font-size:.9375rem;font-weight:500;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.party-identity small{display:block;color:#a6ba9d;font-size:.75rem}.party-hp{font-size:.875rem;color:#a7daa1;white-space:nowrap}.party-hp small{font-size:.75rem;color:#a7b49d}.party-health{grid-column:1/-1;height:4px;background:#0c1c12;border-radius:4px;overflow:hidden}.party-health i{height:100%;display:block;background:#84b57a}.party-card .mode-switch{margin:0;border:0;border-top:1px solid #70846840;border-radius:0;box-shadow:none;min-width:0;min-height:39px;padding:6px 9px;gap:7px;background:#10201766}.party-card .mode-switch small{display:none}.party-card .mode-switch strong{font-size:.875rem}.party-card .mode-switch>.icon:first-child{width:19px;height:19px}.party-card .mode-switch>.icon:last-child{width:16px;height:16px;margin-left:auto}.party-card .mode-switch:disabled{opacity:.55}.party-picker{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}.party-picker button{display:flex;align-items:center;gap:10px;text-align:left;background:#1c3024;border:1px solid #8c9e7666;border-radius:4px;color:#c7d6bc;padding:10px 14px;min-height:52px}.party-picker button.selected{border-color:#cdb47b;background:#39482d;color:#fff0cb}.party-picker button>.icon{color:var(--hero-color)}.party-picker small{display:block;color:#aeba9c;font-size:.75rem}.chest-modal .party-picker{justify-content:center;margin-top:20px}
.v3-battle .battle-console{min-height:240px;padding:18px 25px 22px;grid-template-columns:250px minmax(0,1fr);gap:22px}.v3-battle .action-button{min-height:108px}.v3-battle .action-button>strong{font-size:.875rem;line-height:1.25}.v3-battle .action-help{font-size:.875rem}.v3-battle .actions-heading>span:last-child{font-size:.75rem}.meter.rage{background:#4a211a}.meter.rage>i{background:linear-gradient(90deg,#ad4130,#ed9549);box-shadow:0 0 14px #ee7d4433}.hero-status .meter-caption{font-size:.875rem}.hero-status-title strong{font-size:1.25rem}.v3-battle .action-key{font-size:.75rem}.v3-battle .quick-attack{min-height:40px}.v3-battle .interlude{min-height:370px}.interlude .encounter-card{max-width:420px;width:calc(50% - 40px);padding:23px}.encounter-card .overline{font-size:.75rem}.event-outcomes{display:flex;flex-direction:column;gap:5px;font-size:.875rem;color:#b8ddb0}.event-outcomes .loss{color:#f2ab8d}.merchant-unlocks{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0 25px;padding:15px;border-block:1px solid var(--line);color:#8d9d88;font-size:.875rem}.merchant-unlocks>span{display:flex;align-items:center;gap:7px}.merchant-unlocks>span:first-child,.merchant-unlocks>.unlocked{color:#b8d7a1}.merchant-stock{grid-template-columns:repeat(4,minmax(0,1fr))}.merchant-footer{display:flex;gap:14px;flex-wrap:wrap;margin:28px 0}.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.catalog-toolbar label{display:flex;align-items:center;gap:9px;color:#bec9b3;font-size:.875rem}.catalog-toolbar select{max-width:180px;min-height:44px}.catalog-toolbar .filter-tabs>button{font-size:.875rem;min-height:44px}.catalog-toolbar .filter-tabs>button.active{color:var(--rarity)}.catalog-pages{display:flex;justify-content:center;align-items:center;gap:20px;margin:30px 0;font-size:.9375rem}.catalog-unlock{font-size:.875rem;color:#a9b29e;margin-top:8px;display:flex;align-items:center;gap:6px}.catalog-unlock>.icon{width:15px;height:15px}.no-loot{font-size:1rem;line-height:1.6;color:#bac7ad;background:#3b4f302a;padding:18px;margin:15px 0;border:1px dashed #8e9a6255}.recovery-note{font-size:.875rem}.modal{max-height:calc(100dvh - 30px);overflow-y:auto}.item-card h3{overflow-wrap:anywhere}.item-card .small{font-size:.8125rem}.item-card .rarity{font-size:.8125rem}.item-card-bottom .btn{font-size:.875rem}.item-card .item-stats{font-size:.9375rem}.save-progress{font-size:.9375rem}
@media(max-width:1150px){.v3-battle .battle-console{grid-template-columns:205px 1fr;gap:17px}.v3-battle .action-button{min-height:120px}.merchant-stock{grid-template-columns:repeat(2,minmax(0,1fr))}.party-hp small{display:none}.party-bar{padding-inline:20px;gap:10px}.party-select{padding-inline:7px}.party-identity strong{font-size:.875rem}.wordmark{max-width:185px}.menu-screen{min-height:760px}.menu-content h1{font-size:4.9rem}}
@media(max-width:850px){.v3-battle .battle-console{grid-template-columns:190px 1fr}.v3-battle .action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.v3-battle .action-button{min-height:90px;padding:12px 6px 8px}.v3-battle .chapter3d{height:350px;min-height:350px}.party-select{grid-template-columns:20px minmax(0,1fr)}.party-hp{grid-column:2;font-size:.8125rem}.party-identity small{font-size:.75rem}.party-card .mode-switch strong{font-size:.8125rem}.party-bar{gap:8px;padding:9px 14px}.party-card .mode-switch{padding-inline:6px}.party-card .mode-switch>.icon:first-child{width:16px}.v3-battle .battle-log-preview{display:none}.wordmark>span:last-child{font-size:.8125rem}.wordmark small{font-size:.75rem}.catalog-toolbar{align-items:flex-start;flex-direction:column}.catalog-toolbar .filter-tabs{flex-wrap:wrap}.v3-battle .interlude{min-height:440px}.interlude .encounter-card{max-width:46%;width:46%;left:3%;padding:18px}.menu-content h1{font-size:4.1rem}.menu-screen{min-height:730px}}
@media(max-width:620px){
  .menu-screen{min-height:max(740px,100svh);background-position:62% center}.menu-shade{background:linear-gradient(90deg,#07150fed 0%,#07150fad 55%,#07150f4d 100%)}.menu-content{margin:0;padding:0 26px;position:absolute;left:0;top:135px;right:0}.menu-content h1{font-size:clamp(2.9rem,12vw,4.5rem);line-height:1.04;margin:12px 0}.menu-content .overline{font-size:.75rem}.title-rule{margin:20px 0}.main-menu{gap:2px;margin-top:5px}.menu-option{min-height:42px;font-size:1.15rem}.menu-top{padding:25px 22px}.menu-top .edition{font-size:.75rem;max-width:125px;text-align:right;line-height:1.45}.menu-footer{padding:20px 22px}.menu-footer>span{font-size:.8125rem}.resume-link{font-size:.875rem;padding:8px 0}.menu-option .menu-arrow{left:-18px;font-size:1rem}.menu-footer-right>span{display:none}
  .topbar{height:auto;min-height:78px;gap:10px;padding-block:13px;flex-wrap:wrap}.topbar-title{display:none}.wordmark{max-width:150px;gap:5px}.wordmark .brand-mark{font-size:1.25rem}.wordmark>span:last-child{font-size:.8125rem;line-height:1.25;letter-spacing:0}.wordmark small{font-size:.75rem}.topbar-actions{gap:9px}.topbar-actions .money{font-size:.8125rem}.topbar-actions .btn{min-height:42px;padding:8px 10px}.inner-screen{padding-inline:16px}.page-heading{margin-top:27px}.page-heading h1{font-size:2rem}.page-heading p{font-size:1rem}.page-heading>.small{display:none}.multiplayer-wrap{margin:28px 0;padding:24px 20px}.multiplayer-wrap h1{font-size:2rem}.player-count{gap:10px}.player-count button{padding:16px 8px}.team-class-icons{gap:12px}.team-class-icons>span{font-size:.875rem}.name-label input{font-size:1rem;min-height:44px}.class-card{min-height:88px}.class-card strong{font-size:.875rem}.race-card strong{font-size:.9375rem}.locked-stamp{font-size:.625rem}.creation-bottom{gap:18px}.hero-preview .btn{min-height:48px}.hero-preview .small{font-size:.875rem}.starter-note .small{font-size:.8125rem}
  .v3-battle .battle-topbar{padding:12px 13px;height:auto;min-height:87px;gap:8px;align-items:center}.v3-battle .battle-topbar .wordmark{max-width:115px}.v3-battle .battle-topbar .wordmark>span:last-child{font-size:.8125rem}.v3-battle .battle-topbar .brand-mark{display:none}.v3-battle .region-label>span{display:none}.v3-battle .region-label strong{font-size:1rem;line-height:1.25}.v3-battle .region-label strong em{display:block;margin:3px 0 0;font-size:.875rem}.v3-battle .battle-top-actions{grid-template-columns:repeat(3,36px);gap:2px}.v3-battle .battle-top-actions .icon-btn{width:36px;min-height:38px;height:38px}.v3-battle .battle-top-actions .money{font-size:.75rem;justify-content:flex-end}.v3-battle .journey{padding:8px 12px 10px}.journey-caption{gap:12px}.journey-caption strong{font-size:.75rem;white-space:nowrap}.journey-caption>span{font-size:.75rem;line-height:1.3;max-width:205px}.journey-step{min-width:34px;flex-basis:34px}.v3-battle .chapter3d{height:300px;min-height:300px;max-height:none}.chapter3d .turn-banner{font-size:.75rem;top:9px;white-space:nowrap;padding:7px 10px}.chapter3d .enemy-line{top:16%;gap:4px}.chapter3d .enemy{max-width:calc(100% / var(--enemy-count) - 6px);width:130px}.chapter3d .enemy-name{font-size:.875rem;line-height:1.15}.chapter3d .enemy-sprite{width:90px;height:90px}.chapter3d .enemy.boss .enemy-sprite{width:125px;height:125px}.chapter3d .enemy-health{height:15px}.chapter3d .enemy-intent{font-size:.75rem;min-height:0}.chapter3d .party-hero{bottom:7px;left:50%}.chapter3d .hero-back{width:clamp(70px,calc(240px / var(--party-count)),125px);height:clamp(70px,calc(240px / var(--party-count)),125px)}.chapter3d .hero-name-tag{font-size:.8125rem;margin-bottom:0;padding:2px 7px;min-height:22px;line-height:1.2}.chapter3d .boss-tactic{display:none}.board-3d-ready .enemy-line{top:0}.board-3d-ready .enemy{width:130px;max-width:calc(100% / var(--enemy-count) - 8px);padding:5px 4px}.board-3d-ready .enemy-name{font-size:.875rem}.board-3d-ready .enemy-health>span{font-size:.75rem;line-height:13px}.board-3d-ready .enemy-health{margin:4px 0 0}.board-3d-ready .enemy-intent{font-size:.75rem;padding:2px 0 0}.board-3d-ready .party-hero{bottom:auto}.board-3d-ready .party-hero .hero-back-wrap{width:30px}
  .party-bar,.party-bar.count-1,.party-bar.count-2,.party-bar.count-3{padding:8px 10px;gap:8px}.party-bar.count-1{padding-inline:max(10px,calc((100% - 290px)/2))}.party-bar.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.party-bar.count-3,.party-bar.count-4{display:flex;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin}.party-bar.count-3 .party-card,.party-bar.count-4 .party-card{flex:0 0 152px;scroll-snap-align:center}.party-select{min-height:60px;grid-template-columns:21px minmax(0,1fr) auto;gap:4px 6px;padding:7px}.party-hp{grid-column:auto;font-size:.875rem}.party-identity strong{font-size:.875rem}.party-identity small{font-size:.75rem}.party-card .mode-switch{min-height:44px;padding:8px;font-size:.875rem}.party-card .mode-switch strong{font-size:.875rem}.party-picker{gap:8px}.party-picker button{flex:1 1 140px;padding:9px 10px;font-size:.875rem}.party-picker small{font-size:.75rem}.party-picker button>.icon{width:20px;height:20px}
  .v3-battle .battle-console{display:block;min-height:0;padding:14px 13px max(18px,env(safe-area-inset-bottom))}.v3-battle .hero-status{display:grid;grid-template-columns:1fr 1fr;gap:4px 15px;padding:0 0 10px;margin-bottom:12px}.v3-battle .hero-status-title{grid-column:1/-1;margin:0 0 2px}.v3-battle .hero-status-title .level-seal{width:28px;height:28px}.v3-battle .hero-status-title strong{font-size:1.1rem}.v3-battle .hero-status-title>div>span{font-size:.75rem}.v3-battle .hero-status-title .icon-btn{min-height:32px;height:32px}.v3-battle .hero-status .meter-caption{font-size:.875rem}.v3-battle .hero-status .meter-block{margin-bottom:0}.v3-battle .hero-status .xp-label{grid-column:1/-1;font-size:.75rem;margin-top:2px}.v3-battle .hero-status>.meter.xp{grid-column:1/-1;height:3px}.v3-battle .buff-strip{margin:2px 0 0;grid-column:1/-1}.v3-battle .actions-heading{margin-bottom:10px;gap:10px}.v3-battle .actions-heading>span:first-child{font-size:.8125rem}.v3-battle .actions-heading>span:last-child{font-size:.75rem;max-width:170px;text-align:right}.v3-battle .action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v3-battle .action-button{min-height:98px;gap:5px;padding:13px 5px 8px}.v3-battle .action-button>.icon{width:22px;height:22px}.v3-battle .action-button>strong{font-size:.875rem;line-height:1.2}.v3-battle .action-button>span:last-child{font-size:.75rem}.v3-battle .action-help{margin-top:9px;font-size:.8125rem;gap:5px}.v3-battle .quick-attack{min-height:44px;font-size:.875rem}.v3-battle .interlude{min-height:430px;height:430px}.interlude .encounter-card{width:auto;max-width:none;left:14px;right:14px;top:44px;padding:17px}.encounter-card h2{font-size:1.45rem}.encounter-card p{font-size:1rem;line-height:1.45}.encounter-card .btn{font-size:.9375rem;min-height:44px}.interlude.board-3d-ready .party-hero{top:auto!important;bottom:8px}.encounter-symbol .icon{width:25px;height:25px}.event-outcomes{font-size:.875rem}
  .merchant-stock{grid-template-columns:1fr}.merchant-unlocks{gap:10px 17px;padding:12px 0;font-size:.875rem}.merchant-unlocks .icon{width:16px;height:16px}.merchant-footer{flex-direction:column}.catalog-toolbar{gap:15px}.catalog-toolbar .filter-tabs{gap:4px;display:grid;grid-template-columns:repeat(2,1fr);width:100%}.catalog-toolbar .filter-tabs>button{font-size:.9375rem}.catalog-toolbar label{font-size:1rem;width:100%;justify-content:space-between}.catalog-toolbar select{font-size:1rem;max-width:65%}.catalog-pages{gap:10px;font-size:.875rem}.catalog-pages .btn{padding-inline:12px}.shop-grid .item-card{padding:19px}.shop-grid .item-card h3{font-size:1.3rem}.item-card .rarity{font-size:.8125rem}.item-card .small{font-size:.875rem}.item-card-bottom .btn{font-size:.9375rem}.modal-backdrop{padding:12px}.modal{padding:38px 19px 22px;max-height:calc(100dvh - 24px)}.modal h1{font-size:1.8rem}.modal p{font-size:1rem}.modal-close{min-height:44px;min-width:44px}.modal .btn{min-height:44px}.recovery-note{font-size:.875rem;line-height:1.5}.loot-choices{grid-template-columns:1fr}.loot-choice .btn{min-height:44px}.no-loot{font-size:1rem}.settings-wrap{margin:28px auto}.settings-panel{padding:20px}.setting-row strong{font-size:1rem}.setting-row small{font-size:.875rem}.save-card .save-hero{width:150px;height:150px}.save-card{min-height:330px}.save-card p{font-size:1rem}.save-progress{font-size:.9375rem}
}
@media(max-width:360px){.v3-battle .battle-topbar{padding-inline:9px}.v3-battle .battle-topbar .wordmark{max-width:95px}.v3-battle .battle-topbar .wordmark>span:last-child{font-size:.75rem}.v3-battle .battle-top-actions{grid-template-columns:repeat(3,32px)}.v3-battle .battle-top-actions .icon-btn{width:32px}.v3-battle .region-label strong{font-size:.9375rem}.v3-battle .region-label strong em{font-size:.8125rem}.wordmark{max-width:125px}.menu-content{padding-inline:23px}.menu-content h1{font-size:2.85rem}.party-bar.count-2 .party-select{grid-template-columns:19px minmax(0,1fr)}.party-bar.count-2 .party-hp{grid-column:2}.catalog-pages .btn{font-size:.8125rem;padding-inline:9px}}
.enemy-special{display:block;color:#efc59a;font-size:.75rem;line-height:1.3;margin-top:4px}.party-card{position:relative}
@media(max-width:620px){.v3-battle .battle-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:10px 13px}.v3-battle .battle-topbar .wordmark{max-width:none}.v3-battle .battle-topbar .wordmark>span:last-child{font-size:.875rem}.v3-battle .region-label{text-align:right}.v3-battle .battle-top-actions{grid-column:1/-1;display:flex;gap:8px;align-items:center}.v3-battle .battle-top-actions .money{margin-right:auto;font-size:.875rem}.v3-battle .battle-top-actions .icon-btn{width:44px;min-width:44px;height:44px;min-height:44px}.locked-stamp{font-size:.75rem}}

/* V4: one viewport for battle, stable panels and explicit forecasts. */
html.battle-view{height:100%;overflow:hidden;overscroll-behavior:none}
body.battle-view{height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none}
body.battle-view #app{height:100%;min-height:0;overflow:hidden}
.v4-battle.battle-screen{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:58px 42px minmax(0,1fr) 78px auto;height:100%;min-height:0;max-height:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:hidden}
.v4-battle>*{min-width:0;min-height:0}
.v4-battle .battle-topbar{display:flex;height:58px;min-height:0;gap:18px;padding:6px 18px;grid-column:auto}
.v4-battle .battle-topbar .wordmark{max-width:none;flex-shrink:0;min-height:44px;text-align:left}
.v4-battle .battle-topbar .wordmark>span:last-child{font-size:.875rem;line-height:1.2}
.v4-battle .wordmark small{font-size:.75rem;line-height:1.4}
.v4-battle .brand-mark{display:none}
.v4-battle .region-label{margin-left:auto;text-align:right}
.v4-battle .region-label>span{font-size:.75rem}
.v4-battle .region-label strong{font-size:.875rem;line-height:1.4}
.v4-battle .region-label strong em{display:inline;font-size:.875rem;margin:0}
.v4-battle .battle-top-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:6px;grid-column:auto;margin:0}
.v4-battle .battle-top-actions .icon-btn{width:44px;height:44px;min-height:44px;min-width:44px;padding:10px}
.v4-battle .battle-top-actions .money{font-size:.875rem;margin:0 8px 0 0}
.v4-battle .journey{display:block;margin:0;padding:3px 18px 5px;border-block:1px solid #9fb59425;overflow:hidden}
.v4-battle .journey-caption{display:none}
.v4-battle .journey-track{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));width:100%;max-width:none;gap:4px;margin:0;padding:0;overflow:visible}
.v4-battle .journey-track:before,.v4-battle .journey-step:after{display:none}
.v4-battle .journey-step{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:5px;width:auto;min-width:0;height:32px;padding:2px;margin:0;border-radius:3px;font-size:.75rem;line-height:1}
.v4-battle .journey-step>span{position:static;display:block;font-size:.75rem;line-height:1}
.v4-battle .journey-step .icon{width:17px;height:17px;min-width:0;margin:0}
.v4-battle .journey-step strong{display:none}
.v4-battle .chapter3d,.v4-battle .chapter3d.interlude{height:auto;min-height:0;max-height:none;flex:none;position:relative}
.v4-battle .turn-banner{top:8px;left:50%;max-width:94%;white-space:nowrap;font-size:.75rem;padding:5px 9px;line-height:1.2}
.v4-battle .turn-banner span{font-size:inherit}
.v4-battle .boss-tactic{top:8px;right:12px;max-width:30%;font-size:.75rem;padding:6px}
.v4-battle .battle-log-preview{display:none}
.v4-battle .party-bar{display:grid;grid-template-columns:repeat(var(--party-count,1),minmax(0,1fr));width:100%;max-width:none;margin:0;padding:5px 18px;gap:8px;overflow:visible;align-items:stretch}
.v4-battle .party-bar.count-2{--party-count:2}.v4-battle .party-bar.count-3{--party-count:3}.v4-battle .party-bar.count-4{--party-count:4}
.v4-battle .party-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;min-width:0;min-height:0;flex:none;padding:0;overflow:hidden}
.v4-battle .party-select{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:6px;align-content:center;align-items:center;position:relative;min-height:44px;padding:6px 8px;width:100%;min-width:0;text-align:left}
.v4-battle .party-number{position:static;width:20px;height:20px;min-width:20px;font-size:.75rem}
.v4-battle .party-identity{min-width:0}.v4-battle .party-identity strong{display:block;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.v4-battle .party-identity small{font-size:.75rem;line-height:1.3;white-space:nowrap}
.v4-battle .party-hp{font-size:.875rem;white-space:nowrap;text-align:right}
.v4-battle .party-hp small{font-size:.75rem;display:block}
.v4-battle .party-health{position:absolute;bottom:2px;left:5px;right:5px;height:3px}
.v4-battle .mode-switch{display:flex;position:static;margin:0;min-width:0;min-height:44px;height:auto;width:auto;max-width:none;gap:5px;padding:4px 8px;align-self:center;border-width:0 0 0 1px;border-radius:0}
.v4-battle .mode-switch>span>small{display:none}
.v4-battle .mode-switch>span>strong{font-size:.875rem;line-height:1.2;white-space:normal}
.v4-battle .mode-switch>.icon{width:18px;height:18px;min-width:18px}
.v4-battle .mode-switch>.icon:last-child{display:none}
.v4-battle .battle-console{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;min-height:0;max-height:48dvh;padding:10px 18px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.v4-battle .hero-status{display:block;margin:0;padding:0;min-width:0;border:0}
.v4-battle .hero-status-title{display:flex;margin:0 0 4px;gap:7px}
.v4-battle .hero-status-title strong{font-size:1rem}
.v4-battle .hero-status-title>div>span{font-size:.75rem}
.v4-battle .hero-status-title .level-seal{width:26px;height:26px;font-size:.875rem}
.v4-battle .hero-status-title .icon-btn{width:38px;height:38px;min-height:38px;padding:8px;margin-left:auto}
.v4-battle .meter-block{margin:0 0 5px}
.v4-battle .meter-caption{font-size:.875rem;line-height:1.4;margin-bottom:2px}
.v4-battle .meter{height:8px}
.v4-battle .meter.xp{height:3px}
.v4-battle .xp-label{margin:5px 0 3px;font-size:.75rem;line-height:1.2}
.v4-battle .buff-strip{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0 0;font-size:.75rem}
.v4-battle .buff-strip>span{font-size:.75rem;padding:2px 5px}
.v4-battle .battle-wallet{display:none}
.meter.intelligence>i,.meter.mana>i{background:linear-gradient(90deg,#476ac2,#91b4ff)}
.meter.dexterity>i{background:linear-gradient(90deg,#977426,#e9c260)}
.v4-battle .actions-panel{min-width:0;display:flex;flex-direction:column}
.v4-battle .actions-heading{display:none}
.v4-battle .action-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.v4-battle .action-button{display:flex;min-height:98px;height:auto;padding:7px 4px;gap:3px;min-width:0;border-radius:4px}
.v4-battle .action-button>.icon{width:20px;height:20px;margin:0}
.v4-battle .action-button>strong{font-size:.875rem;line-height:1.2;max-width:100%;overflow-wrap:break-word}
.v4-battle .action-button .action-estimate{color:#f2dbad;font-size:.75rem;line-height:1.2}
.v4-battle .action-button .action-cost{font-size:.75rem;line-height:1.2;color:#c4d1c2}
.v4-battle .action-button .action-key{font-size:.75rem;top:3px;left:5px}
.v4-battle .action-button[aria-disabled="true"]{opacity:.56;background:#18251f;border-color:#71816e33;cursor:help}
.v4-battle .action-button.previewed{border-color:#f0c77d;box-shadow:inset 0 0 0 1px #f0c77d66;background:#344331}
.v4-battle .action-button[aria-disabled="true"].previewed{opacity:.78}
.v4-battle .action-help{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:nowrap;min-height:0;margin:5px 0 0;line-height:1.2;font-size:.75rem}
.v4-battle .action-help:empty{display:none}
.v4-battle .action-help>span{display:block;font-size:.75rem;color:#c0cdbe}
.v4-battle .action-help .quick-attack{min-height:36px;padding:5px 10px;margin:0 0 0 auto;font-size:.875rem;line-height:1.2;white-space:nowrap}
.v4-battle .action-help .btn{min-height:36px;line-height:1.2}
.action-preview{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:8px;min-height:57px;margin-top:6px;padding:5px 8px;border:1px solid #8eaa7838;border-radius:4px;background:#0c1812}
.action-preview:empty{display:none}
.preview-copy{min-width:0;text-align:left;flex:1}
.preview-copy>strong{display:block;font-size:.875rem;line-height:1.25;color:#eed4a6}
.preview-copy>strong small{font-size:.75rem;font-weight:400;color:#bccfbc;margin-left:5px;white-space:nowrap}
.preview-copy>span{display:block;font-size:.75rem;line-height:1.3;color:#e0e9dc}
.preview-reason{display:block;color:#f7ab96;font-size:.75rem;line-height:1.2}
.preview-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}
.preview-controls .icon-btn{width:40px;min-width:40px;min-height:40px;height:40px;padding:9px}
.preview-controls .primary{min-width:60px;min-height:40px;padding:6px 10px;font-size:.875rem}
.v4-battle .enemy.will-hit{outline:2px solid #ffb66e;outline-offset:2px;background-color:#452e1fdc}
.target-forecast{display:none;color:#ffdfa7;font-size:.75rem;font-weight:700;line-height:1.4;white-space:nowrap;background:#1b1711e8;border:1px solid #f2b56766;border-radius:3px;padding:1px 5px;pointer-events:none}
.will-hit .target-forecast{display:block}
.party-hero.will-heal .heal-forecast{display:block;position:absolute;left:50%;bottom:20px;transform:translateX(-50%);color:#beffd0;background:#12371fe8;border-color:#8df7a8;z-index:5}
.v4-battle .enemy-special{font-size:.75rem;line-height:1.25}
.v4-battle .board-3d-ready .enemy{padding:4px 6px;max-width:calc(100% / var(--enemy-count) - 9px)}
.v4-battle .board-3d-ready .enemy-name{font-size:.875rem;line-height:1.2;overflow-wrap:normal}
.v4-battle .board-3d-ready .enemy-health{margin:3px 0 1px}
.v4-battle .board-3d-ready .enemy-intent{display:none}
.v4-battle .enemy-line .enemy{min-height:44px}
.v4-battle .chapter3d:not(.board-3d-ready) .enemy-line{top:40px;bottom:auto;height:43%;max-height:180px;align-items:flex-start;width:95%;gap:7px}
.v4-battle .chapter3d:not(.board-3d-ready) .enemy{max-width:calc(100% / var(--enemy-count) - 8px);padding:4px;background:#102020d9;border:1px solid #90a57855;border-radius:4px;flex:1}
.v4-battle .chapter3d:not(.board-3d-ready) .enemy-sprite{height:min(14dvh,100px);width:min(14dvh,100px);margin:0 auto}
.v4-battle .chapter3d:not(.board-3d-ready) .enemy-name{font-size:.875rem;min-height:0}
.v4-battle .chapter3d:not(.board-3d-ready) .enemy-intent,.v4-battle .chapter3d:not(.board-3d-ready) .target-ring{display:none}
.v4-battle .chapter3d:not(.board-3d-ready) .party-hero{bottom:4px;top:auto}
.v4-battle .chapter3d:not(.board-3d-ready) .hero-back-wrap{height:min(22dvh,150px);width:min(22dvh,150px)}
.v4-battle .chapter3d:not(.board-3d-ready) .hero-back{height:100%;width:100%}
.v4-battle.is-interlude .action-grid{display:none}
.v4-battle .encounter-card{max-height:calc(100% - 16px);overflow-y:auto;margin:0;top:50%;width:min(520px,calc(100% - 24px));padding:20px 24px;overscroll-behavior:contain}
.v4-battle .encounter-card h2{font-size:1.5rem;margin:8px 0}
.v4-battle .encounter-card p{font-size:1rem;line-height:1.4;margin:8px 0 12px}
.v4-battle .encounter-symbol{display:none}
.v4-battle .encounter-card .btn{min-height:44px}
.v4-battle.is-interlude .hero-status-title{display:none}
.modal.refresh{animation:none;overflow-anchor:none}
.modal,.bag-grid{overscroll-behavior:contain;overflow-anchor:none;scroll-behavior:auto}
.compare-button{border:0;border-top:1px solid #82987830;color:#bbd3be;background:transparent;border-radius:0;min-height:38px;padding:7px 3px;justify-content:flex-start;font-size:.875rem;width:100%;margin-top:5px}
.compare-button:hover{color:#f4d396;background:#aac69512}
[data-compare-id]:focus-visible{outline:2px solid #efc578;outline-offset:2px}
.item-comparison{position:fixed;z-index:1200;width:min(570px,calc(100vw - 20px));max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain;color:#e8eddf;background:#111b19f7;border:1px solid #b99e66;border-radius:6px;padding:15px;box-shadow:0 15px 70px #000b;font-size:1rem}
.item-comparison.pinned{box-shadow:0 0 0 100vmax #020806c7,0 15px 70px #000b}
.item-comparison>header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;font-size:.875rem}
.item-comparison header>.icon-btn{min-height:44px;width:44px;flex-shrink:0}
.comparison-items{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.comparison-object{border:1px solid #7c927040;border-top:3px solid var(--rarity);border-radius:3px;padding:10px;min-width:0}
.comparison-object h3{font-size:1rem;line-height:1.35;color:var(--rarity);margin:7px 0;overflow-wrap:anywhere}
.comparison-object .overline{font-size:.75rem;letter-spacing:.05em}
.comparison-object .item-stats{flex-wrap:wrap;gap:5px;margin:8px 0 0}
.comparison-object .item-stats span{font-size:.875rem}
.comparison-deltas,.forecast-table{border-collapse:collapse;width:100%;margin:14px 0;text-align:left;font-size:.875rem}
.comparison-deltas caption{text-align:left;color:#d8c293;font-size:.875rem;padding-bottom:7px}
.comparison-deltas th,.comparison-deltas td,.forecast-table th,.forecast-table td{padding:7px 5px;border-bottom:1px solid #a6be932b}
.comparison-deltas thead,.forecast-table thead{color:#aec0b3;font-size:.75rem}
.comparison-deltas th{font-weight:400}.comparison-deltas td:last-child{font-weight:700}
.stat-gain{color:#a4efa9}.stat-loss{color:#ffad9c}.stat-same{color:#bec7bb}
.compare-warning{font-size:.875rem;color:#ffcd95}
.forecast-table th small{display:block;font-weight:400;font-size:.75rem;color:#b3c9bb}
.forecast-table td{white-space:nowrap}
.forecast-heals{padding-left:20px;line-height:1.6;font-size:1rem}
.install-button{min-height:44px;font-size:.875rem;white-space:nowrap;padding:8px 13px;border:1px solid #a6c19566;gap:8px}
.menu-footer-right{flex-wrap:wrap;justify-content:flex-end;gap:12px}
.install-steps{padding-left:24px;font-size:1rem;line-height:1.6}
.install-steps li{margin:10px 0}
@media(max-width:1050px){
  .v4-battle .battle-console{grid-template-columns:190px 1fr;gap:10px;padding-inline:12px}
  .v4-battle .party-card{grid-template-columns:minmax(0,1fr) auto;gap:0}
  .v4-battle .party-select{grid-template-columns:minmax(0,1fr) auto;padding:5px}
  .v4-battle .party-number{display:none}
  .v4-battle .mode-switch{padding:5px}.v4-battle .mode-switch>.icon{display:none}
  .v4-battle .action-button{min-height:104px}
  .v4-battle .boss-tactic{display:none}
}
@media(max-width:900px){
  .v4-battle.battle-screen{grid-template-rows:56px 34px minmax(0,1fr) 84px auto}
  .v4-battle .battle-topbar{height:56px;padding:4px 10px;gap:8px}
  .v4-battle .region-label{display:none}
  .v4-battle .battle-top-actions{margin-left:auto;gap:4px}
  .v4-battle .battle-top-actions .money{display:none}
  .v4-battle .battle-topbar .wordmark>span:last-child{font-size:.875rem;max-width:190px}
  .v4-battle .journey{padding:2px 9px}
  .v4-battle .journey-track{gap:3px}
  .v4-battle .journey-step{height:28px;padding:1px;gap:2px;flex-direction:column}
  .v4-battle .journey-step>span{font-size:.75rem;line-height:1}
  .v4-battle .journey-step>.icon{width:12px;height:12px}
  .v4-battle .party-bar{padding:4px 8px;gap:4px}
  .v4-battle .party-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:40px 32px;gap:0}
  .v4-battle .party-select{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:40px;padding:3px 5px;gap:3px}
  .v4-battle .party-hp small{font-size:.75rem;display:inline}
  .v4-battle .party-identity small{display:none}
  .v4-battle .party-hp{font-size:.875rem}
  .v4-battle .mode-switch{border-width:1px 0 0;min-height:32px;width:100%;height:32px;justify-content:center;gap:3px;padding:4px}
  .v4-battle .mode-switch>span>strong{font-size:.875rem;white-space:nowrap}
  .v4-battle .party-bar.count-3 .party-select,.v4-battle .party-bar.count-4 .party-select{display:block;padding-top:2px;text-align:center;line-height:1.2}
  .v4-battle .party-bar.count-3 .party-hp,.v4-battle .party-bar.count-4 .party-hp{display:block;text-align:center;font-size:.75rem}
  .v4-battle .party-bar.count-4 .mode-switch>span>strong{font-size:.75rem}
  .v4-battle .battle-console{display:block;padding:6px 9px;max-height:65dvh;overflow-y:auto}
  .v4-battle .hero-status{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:18px 18px;gap:0 12px;position:relative;margin:0 0 5px;min-height:36px;align-items:center}
  .v4-battle .hero-status-title,.v4-battle .hero-status>.meter-block:nth-child(2),.v4-battle .hero-status>.meter.xp{display:none}
  .v4-battle .hero-status>.meter-block:nth-child(3){grid-column:1;grid-row:1/3;margin:0}
  .v4-battle .hero-status .meter-caption{font-size:.875rem;line-height:1.2;margin:0 0 4px}
  .v4-battle .hero-status .xp-label{grid-column:2;grid-row:1;margin:0;justify-content:flex-end;font-size:.75rem;white-space:nowrap}
  .v4-battle .hero-status .xp-label>span{margin-left:5px}
  .v4-battle .hero-status .xp-label>.icon{display:none}
  .v4-battle .battle-wallet{grid-column:2;grid-row:2;display:flex;justify-content:flex-end}
  .v4-battle .battle-wallet .money{font-size:.75rem;gap:9px}
  .v4-battle .hero-status .buff-strip{position:absolute;bottom:42px;right:12px;z-index:5;margin:0;background:#12251c;border-radius:3px;pointer-events:none}
  .v4-battle .action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .v4-battle .action-button{min-height:66px;height:66px;padding:4px;gap:2px;justify-content:center}
  .v4-battle .action-button>.icon,.v4-battle .action-button .action-key{display:none}
  .v4-battle .action-button>strong{font-size:.875rem;line-height:1.15}
  .v4-battle .action-button .action-estimate,.v4-battle .action-button .action-cost{font-size:.75rem;line-height:1.15}
  .v4-battle .action-help{margin-top:4px;justify-content:center}
  .v4-battle .action-help>span{display:none}
  .v4-battle .action-help .quick-attack{margin:0;width:100%;min-height:36px}
  .v4-battle .action-preview{min-height:54px;margin-top:5px;padding:4px 6px}
  .v4-battle .preview-copy>strong{font-size:.875rem}
  .v4-battle .preview-copy>strong small{display:none}
  .v4-battle .preview-controls .icon-btn{width:36px;min-width:36px;min-height:40px;padding:8px}
  .v4-battle .preview-controls .primary{min-width:55px;padding:5px 8px}
  .v4-battle .board-3d-ready .enemy-name{font-size:.875rem}
  .v4-battle .board-3d-ready .enemy{padding:3px;max-width:calc(100% / var(--enemy-count) - 7px);width:135px}
  .v4-battle .encounter-card{padding:15px 18px}
  .v4-battle .encounter-card h2{font-size:1.25rem}
  .v4-battle .encounter-card p{font-size:.875rem;line-height:1.35}
  .v4-battle.is-interlude .hero-status{margin-bottom:0}
}
@media(max-width:480px){
  .v4-battle .battle-topbar .wordmark>span:last-child{max-width:165px}
  .v4-battle .battle-top-actions .icon-btn{width:40px;min-width:40px;height:44px;min-height:44px;padding:8px}
  .v4-battle .battle-topbar .wordmark{min-width:0;flex-shrink:1}
  .v4-battle .party-bar.count-4 .party-identity strong{font-size:.875rem}
  .v4-battle .board-3d-ready .enemy-name{font-size:.75rem}
  .v4-battle .target-forecast{padding-inline:1px;font-size:.75rem}
  .v4-battle .board-3d-ready .enemy-special{font-size:.75rem}
  .v4-battle .turn-banner{max-width:96%;font-size:.75rem}
  .v4-battle .hero-name-tag{font-size:.75rem;max-width:90px;overflow:hidden;text-overflow:ellipsis}
  .item-comparison{padding:12px}
  .comparison-items{gap:7px}.comparison-object{padding:8px}
  .comparison-deltas th,.comparison-deltas td{padding:7px 3px}
  .menu-footer-right{justify-content:flex-start;width:100%;flex-wrap:wrap}
  .menu-footer-right>span{display:none}
  .install-button{flex:1;justify-content:center}
}
@media(max-height:650px) and (max-width:900px) and (orientation:portrait){
  .v4-battle .action-button{height:60px;min-height:60px}
  .v4-battle .action-preview{min-height:48px}
  .v4-battle .preview-copy>strong{font-size:.875rem}
  .v4-battle .chapter3d:not(.board-3d-ready) .enemy-sprite{display:none}
  .v4-battle .chapter3d:not(.board-3d-ready) .hero-back-wrap{height:80px;width:80px}
  .v4-battle .enemy-health>span{font-size:.75rem}
}
@media(max-height:520px) and (min-width:600px){
  .v4-battle.battle-screen{grid-template-columns:minmax(0,1fr) 310px;grid-template-rows:48px 30px minmax(0,1fr) 76px}
  .v4-battle .battle-topbar{grid-column:1/-1;grid-row:1;height:48px;padding:2px 9px}
  .v4-battle .battle-topbar .wordmark>span:last-child{max-width:none}
  .v4-battle .region-label{display:block}.v4-battle .region-label>span{display:none}
  .v4-battle .journey{grid-column:1;grid-row:2;padding:0 8px}
  .v4-battle .chapter3d{grid-column:1;grid-row:3}
  .v4-battle .party-bar{grid-column:1;grid-row:4;padding:2px 6px;gap:3px}
  .v4-battle .party-card{grid-template-columns:1fr;grid-template-rows:38px 32px}
  .v4-battle .party-select{min-height:38px}
  .v4-battle .battle-console{grid-column:2;grid-row:2/-1;max-height:none;display:block;padding:6px;border-left:1px solid #a6b68544}
  .v4-battle .action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .v4-battle .action-button{height:60px;min-height:60px}
  .v4-battle .action-button>.icon,.v4-battle .action-key{display:none}
  .v4-battle .action-preview{min-height:50px;gap:3px}
  .v4-battle .preview-copy>strong small{display:none}
  .v4-battle .action-help>span{display:none}
  .v4-battle .action-help .quick-attack{width:100%;margin:0;font-size:.875rem}
  .v4-battle .boss-tactic{display:none}
  .v4-battle .encounter-card{padding:10px 14px}
  .v4-battle .encounter-card>.overline{display:none}
  .v4-battle .encounter-card h2{font-size:1.125rem;margin:0 0 5px}
  .v4-battle .encounter-card p{font-size:.875rem;margin:4px 0 6px}
  .v4-battle .chapter3d:not(.board-3d-ready) .enemy-sprite{display:none}
}
@media(prefers-reduced-motion:reduce){.modal,.target-forecast{animation:none;transition:none}}

@media(max-height:520px) and (min-width:901px){
  .v4-battle .hero-status{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:18px 18px;gap:0 10px;margin:0 0 5px;position:relative}
  .v4-battle .hero-status-title,.v4-battle .hero-status>.meter-block:nth-child(2),.v4-battle .hero-status>.meter.xp{display:none}
  .v4-battle .hero-status>.meter-block:nth-child(3){grid-column:1;grid-row:1/3;margin:0}
  .v4-battle .hero-status .meter-caption{font-size:.875rem;line-height:1.2;margin-bottom:4px}
  .v4-battle .hero-status .xp-label{grid-column:2;grid-row:1;margin:0;font-size:.75rem;justify-content:flex-end;white-space:nowrap}
  .v4-battle .hero-status .xp-label>.icon{display:none}
  .v4-battle .hero-status .xp-label>span{margin-left:3px}
  .v4-battle .battle-wallet{display:flex;grid-column:2;grid-row:2;justify-content:flex-end;font-size:.75rem}
  .v4-battle .buff-strip{position:absolute;bottom:42px;right:8px;background:#14241a;pointer-events:none}
  .v4-battle .party-card{display:grid;grid-template-columns:1fr;grid-template-rows:38px 32px}
  .v4-battle .mode-switch{height:32px;min-height:32px;width:100%;justify-content:center;border-width:1px 0 0}
  .v4-battle .party-bar.count-3 .party-select,.v4-battle .party-bar.count-4 .party-select{display:block;text-align:center;padding:2px 4px}
  .v4-battle .party-identity small{display:none}
  .v4-battle .party-hp,.v4-battle .party-hp small{font-size:.75rem;display:inline}
}

.v4-battle .turn-banner{overflow:hidden;text-overflow:ellipsis}

@media(max-width:900px) and (min-height:521px){
  .v4-battle .action-button{height:74px;min-height:74px}
  .v4-battle.party-size-1{grid-template-rows:56px 34px minmax(0,1fr) 56px auto}
  .v4-battle .party-bar.count-1 .party-card{grid-template-columns:1fr auto;grid-template-rows:44px}
  .v4-battle .party-bar.count-1 .mode-switch{height:44px;min-height:44px;border-width:0 0 0 1px;padding:6px 12px}
  .v4-battle .party-bar.count-1 .party-select{height:44px}
}
@media(max-height:650px) and (max-width:900px) and (orientation:portrait){
  .v4-battle .action-button{height:60px;min-height:60px}
  .v4-battle .action-button .action-estimate{display:none}
}
@media(max-height:520px) and (min-width:600px){
  .v4-battle .action-button .action-estimate{display:none}
}

/* V5: four heroes, chosen healing recipients and readable attack exchanges. */
.team-composer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 25px}
.team-draft{display:flex;align-items:center;gap:10px;text-align:left;padding:10px;border:1px solid #8ba48450;border-radius:5px;background:#14231c;min-width:0;min-height:105px}
.team-draft.active{border-color:var(--hero-color);background:#233a2b;box-shadow:inset 0 -3px var(--hero-color)}
.team-draft .team-portrait{width:68px;height:68px;flex-shrink:0;margin:0}
.team-draft>span{display:flex;flex-direction:column;min-width:0;gap:5px}
.team-draft strong{font-size:1rem;overflow-wrap:anywhere}.team-draft small{font-size:.875rem;color:var(--hero-color)}
.team-draft em{font-size:.75rem;color:#b5c7b8;font-style:normal}
.create-screen .race-card.locked{filter:grayscale(1);opacity:.4;cursor:not-allowed}
.healing-choices{display:grid;gap:10px;margin:18px 0}
.healing-choice{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:13px 10px;min-height:70px;border:1px solid #6f8d745e;border-radius:4px;background:#192b20;text-align:left;font-size:.875rem}
.healing-choice strong,.healing-choice small{display:block;line-height:1.35}.healing-choice strong{color:var(--hero-color)}
.healing-choice small{color:#b8c8b7;font-size:.75rem;margin-top:4px}
.healing-choice>span:last-child{text-align:right}.healing-choice.selected{border-color:#aeefac}
.healing-choice:disabled{opacity:.45;cursor:not-allowed}
.pace-setting{display:flex;gap:16px;align-items:center;justify-content:space-between;border-top:1px solid #9aad8c35;padding:18px 0;font-size:1rem}
.pace-setting small{display:block;font-size:.875rem;color:#b9c8b5;margin-top:5px;line-height:1.4}
.pace-setting select{min-height:44px;max-width:170px;font-size:.875rem}
.v5-battle .action-preview.playback-summary{min-height:65px;background:#122118;border-color:#e2bd7470}
.v5-battle .playback-summary .preview-copy>strong{font-size:1rem;line-height:1.3}
.v5-battle .playback-summary .preview-copy>span{font-size:.875rem;line-height:1.3;margin-top:3px}
.v5-battle .enemy.acting-source,.v5-battle .party-card.acting-source{outline:3px solid #f6cf6e;outline-offset:2px;box-shadow:0 0 20px #ffd57955}
.v5-battle .enemy.receiving-hit,.v5-battle .party-card.receiving-hit{outline:2px solid #ff9780;outline-offset:2px;box-shadow:0 0 20px #ff907a55}
.v5-battle .enemy.receiving-heal,.v5-battle .party-card.receiving-heal{outline:2px solid #a6f8ae;outline-offset:2px;box-shadow:0 0 20px #a6f8ae44}
.v5-battle .party-hero.acting-source .hero-name-tag{background:#5b4920;color:#ffe0a1}
.v5-battle .party-hero.receiving-hit .hero-name-tag{background:#632b24;color:#ffe1d9}
.v5-battle .party-hero.receiving-heal .hero-name-tag{background:#28563b;color:#d5ffda}
.v5-battle .has-playback .enemy:not(.acting-source):not(.receiving-hit):not(.receiving-heal){opacity:.65}
.v5-battle .board-3d-ready .enemy.dead.just-defeated{display:flex;opacity:1;filter:grayscale(.5)}
.v5-battle .enemy-number{font-weight:700;color:#f0d49d}
.v5-battle .combat-float{animation-duration:1.15s}
@media(max-width:800px){
  .team-composer{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .team-draft{padding:7px;min-height:80px;gap:7px}.team-draft .team-portrait{width:52px;height:52px}
  .team-draft strong{font-size:.875rem}.team-draft small{font-size:.75rem}
  .pace-setting{align-items:flex-start;flex-direction:column;gap:10px}
  .pace-setting select{max-width:none;width:100%}
  .v5-battle .playback-summary .preview-copy>strong{font-size:.875rem}
  .v5-battle .playback-summary .preview-copy>span{font-size:.75rem}
  .v5-battle .action-preview.playback-summary{min-height:58px}
}
@media(prefers-reduced-motion:reduce){.v5-battle .combat-float{animation:none}}

/* V6: one stable battlefield, all abilities together, and readable hero cards. */
.menu-screen{display:flex;flex-direction:column;min-height:100svh;overflow:hidden}
.menu-screen .menu-top{position:relative;flex-shrink:0;padding-block:26px}
.menu-screen .menu-content{flex:1;margin:24px 0 32px 8.3vw;width:min(465px,70vw)}
.menu-screen .menu-footer{position:relative;inset:auto;flex-shrink:0;margin:0 5.7vw;padding:20px 0 max(24px,env(safe-area-inset-bottom));gap:24px;align-items:center}
.menu-screen .menu-footer>span{flex-shrink:0;line-height:1.55}
.menu-screen .menu-footer-right{position:static;min-width:0}
.menu-screen .menu-content>.overline{line-height:1.5;max-width:100%}
.money>span{display:inline-flex;align-items:center;gap:5px}.money .coin{flex-shrink:0;margin:0}
.hero-xp{display:block;position:relative;isolation:isolate;width:100%;min-width:0;height:15px;margin-top:3px;overflow:hidden;border:1px solid #d3b78277;border-radius:3px;background:#160e23;box-shadow:inset 0 1px 3px #0009}
.hero-xp>i{position:absolute;inset:0 auto 0 0;background:linear-gradient(0deg,#6b43b5,#ac7ae2);box-shadow:inset 0 1px #dcc3ff77;z-index:-1}
.hero-xp>span{display:block!important;padding:0 2px;font-size:.75rem!important;line-height:13px!important;color:#fff!important;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 2px #000;overflow:hidden}
.hero-xp em{font:inherit}
.party-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.party-picker>button{border-color:var(--class-color);box-shadow:inset 0 -2px var(--class-color);padding:9px 10px;min-width:0}
.party-picker>button>.icon{color:var(--class-color);flex-shrink:0}
.party-picker>button.selected{background:#34412e;outline:1px solid var(--class-color)}
.party-picker .picker-identity{flex:1;min-width:0}.picker-identity>strong{display:block;overflow-wrap:anywhere;font-size:.875rem}
.picker-identity>small{display:block;font-size:.75rem;margin:3px 0;color:var(--class-color)}
.picker-hp{display:block;font-size:.75rem;line-height:1.4;margin-top:4px;white-space:nowrap}
.loot-mark{display:inline-flex;align-items:center;gap:2px;color:#dbbaff;font-size:.75rem;vertical-align:middle;white-space:nowrap}
.loot-mark .icon{height:15px;width:15px}.loot-mark.pending{color:#ffd184}
.team-draft .hero-xp{max-width:125px}.team-draft{min-height:115px}
.pending-loot{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid #d9a85088;background:#6d491a44;color:#ffe0a6;line-height:1.5;font-size:.875rem}
.pending-loot .icon{flex-shrink:0}.loot-choice .btn.full+.btn.full{margin-top:7px}
.compare-button.icon-btn{width:34px;min-width:34px;height:34px;min-height:34px;padding:7px;display:inline-flex;color:#d6c299;margin:4px 0}
.merchant-tabs{display:flex;gap:10px;margin:20px 0}.merchant-tabs .btn{min-width:125px}
.purchase-item{padding:15px 0}.earned-coins{display:flex;align-items:center;gap:4px;justify-content:center}
.delete-save{color:#f4a59c}.btn.danger{background:#762e38;color:#fff;border:1px solid #e49a91}
.save-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr))}
.v6-battle.battle-screen{--action-height:64px;--console-height:276px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:34px minmax(0,1fr) 124px var(--console-height);height:100%;overflow:hidden}
.v6-battle>.journey{grid-column:1;grid-row:1;padding:1px 12px;background:#101b15;z-index:12;border-bottom:1px solid #c0a36977}
.v6-battle .journey-step{height:30px}.v6-battle>.chapter3d{grid-column:1;grid-row:2}
.v6-battle .battle-topbar{position:absolute;inset:0 0 auto;z-index:8;grid-column:auto;grid-row:auto;height:46px;padding:3px 12px;background:linear-gradient(#09120fe8,#14221a92);border-bottom:1px solid #b9bc9a30;pointer-events:none}
.v6-battle .battle-topbar>*{pointer-events:auto}
.v6-battle .battle-topbar .wordmark{min-height:38px}.v6-battle .battle-topbar .wordmark>span:last-child{font-size:.875rem}
.v6-battle .battle-top-actions .icon-btn{height:40px;min-height:40px;width:40px;min-width:40px;padding:9px}
.v6-battle .turn-banner{top:52px;z-index:7}.v6-battle .boss-tactic{top:54px;z-index:7}
.v6-battle .encounter-card{max-height:calc(100% - 86px);overflow:auto;top:58%;max-width:min(440px,88%)}
.v6-battle>.party-bar{grid-column:1;grid-row:3;padding:4px 12px;gap:7px}
.v6-battle .party-bar .party-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:74px 40px;gap:0;border:1px solid var(--class-color);border-radius:5px;box-shadow:inset 0 0 12px #0004;overflow:hidden;background:#122018}
.v6-battle .party-bar .party-card.active{background:#263626;box-shadow:inset 0 0 0 1px var(--class-color)}
.v6-battle .party-bar .party-card .party-select{display:block;position:relative;min-height:74px;height:74px;padding:3px 7px 5px;text-align:center;line-height:1.1}
.v6-battle .party-card .party-identity{display:block;width:100%}
.v6-battle .party-card .party-identity strong{display:flex;justify-content:center;align-items:center;gap:4px;font-size:.875rem;line-height:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v6-battle .party-card .party-identity small{display:block;font-size:.75rem;line-height:14px;white-space:nowrap;color:var(--class-color);overflow:hidden}
.v6-battle .party-card .party-number{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;font-size:.75rem;color:var(--class-color);font-weight:400;position:static}
.v6-battle .party-bar .party-card .party-hp{display:block;font-size:.75rem;line-height:15px;margin-top:2px;white-space:nowrap;text-align:center}
.v6-battle .party-card .party-health{height:2px;bottom:0;left:0;right:0;position:absolute}
.v6-battle .hero-xp{height:14px;margin-top:2px}.v6-battle .hero-xp>span{line-height:12px!important}.v6-battle .hero-xp .xp-unit{display:none}
.hero-cast-slot{display:flex;align-items:center;justify-content:center;min-width:0;height:40px;border-top:1px solid #ffffff20;padding:3px}
.hero-cast-slot>span{display:flex;align-items:center;justify-content:center;gap:5px;font-size:.75rem;text-align:center;line-height:1.15;color:#bdcdb6}
.hero-cast-slot .cast-button{display:flex;align-items:center;justify-content:center;gap:5px;width:100%;height:34px;min-height:34px;padding:3px 5px;background:linear-gradient(#f7d98b,#cba34d);border:1px solid #ffedc2;color:#201c10;font-weight:700;font-size:.875rem;box-shadow:0 0 12px #f8d57955}
.cast-button .icon{height:17px;width:17px}.v6-battle .has-acted .party-select{opacity:.7}
.v6-battle>.battle-console{grid-column:1;grid-row:4;display:grid;grid-template-columns:210px minmax(0,1fr);height:var(--console-height);max-height:none;min-height:0;gap:14px;padding:8px 12px;overflow:auto;overscroll-behavior:contain}
.v6-battle .hero-status{display:block;min-width:0;margin:0}.v6-battle .hero-status .xp-label{white-space:nowrap}
.v6-battle .actions-panel{display:grid;grid-template-rows:24px calc(2 * var(--action-height) + 6px) 80px 18px;gap:0;min-height:0;align-content:start;position:relative}
.class-mechanic{display:flex;align-items:center;gap:6px;min-width:0;color:var(--class-color);font-size:.875rem;height:24px;padding:0 0 5px}
.class-mechanic>.icon{height:17px;width:17px;flex-shrink:0}.class-mechanic>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v6-battle .action-grid,.v6-battle.is-interlude .action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,var(--action-height));gap:6px;min-height:0}
.v6-battle .action-grid .action-button{--skill-tint:var(--class-color);height:var(--action-height);min-height:var(--action-height);padding:4px 5px;gap:2px;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--skill-tint) 35%,#142019) 0%,#142019 90%);border-color:color-mix(in srgb,var(--skill-tint) 55%,#263b2a)}
.v6-battle .action-button:hover{transform:none}.v6-battle .action-button>.icon{display:none}
.v6-battle .action-button strong{position:relative;z-index:1;font-size:.875rem;line-height:1.1;font-weight:600;text-shadow:0 1px 3px #000}
.v6-battle .action-button .action-estimate,.v6-battle .action-button .action-cost{position:relative;z-index:1;font-size:.75rem;line-height:1.1;text-shadow:0 1px 3px #000}
.v6-battle .action-button .action-key{left:4px;right:auto;top:3px;z-index:1;font-size:.75rem;color:#cfcab4}
.skill-art{display:flex!important;align-items:center;justify-content:flex-end;position:absolute;inset:0 -4px 0 0;z-index:-1;pointer-events:none;color:var(--skill-tint);opacity:.27;transform:rotate(-15deg)}
.skill-art>.icon{width:84px;height:84px;stroke-width:1.2;filter:drop-shadow(0 0 8px currentColor)}
.v6-battle .skill-power{--skill-tint:#ffb274}.v6-battle .skill-sweep{--skill-tint:#e5bf84}.v6-battle .skill-quake{--skill-tint:#ef816a}.v6-battle .skill-fortify{--skill-tint:#edc569}
.v6-battle .skill-double{--skill-tint:#b8d885}.v6-battle .skill-volley{--skill-tint:#77cdae}.v6-battle .skill-snipe{--skill-tint:#e3dd83}.v6-battle .skill-aim{--skill-tint:#a8db87}
.v6-battle .skill-fire{--skill-tint:#ff9865}.v6-battle .skill-frost{--skill-tint:#8de4ed}.v6-battle .skill-meteor{--skill-tint:#c099fa}.v6-battle .skill-focus{--skill-tint:#91bcff}
.v6-battle .skill-heal{--skill-tint:#a5eeac}.v6-battle .skill-smite{--skill-tint:#f2d780}.v6-battle .skill-nova{--skill-tint:#f7e5b4}.v6-battle .skill-grenade{--skill-tint:#eaa174}.v6-battle .skill-powder{--skill-tint:#98dbc7}
.v6-battle .skill-guard{--skill-tint:#95b9d6}.v6-battle .skill-potion{--skill-tint:#eb8d9a}
.v6-battle .action-grid .action-button.previewed{box-shadow:inset 0 0 0 2px #f7d583;border-color:#ffe9b0}
.v6-battle .action-slot{border:1px solid #94ac7b22;border-radius:4px;background:#0d181266}
.v6-battle .action-preview,.v6-battle .action-preview.playback-summary,.v6-battle .action-preview:empty{display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:7px;height:80px;min-height:80px;max-height:80px;margin:0;padding:5px 7px;overflow:hidden;background:#0d1a12}
.v6-battle .action-preview:empty:before{content:'Sélectionnez une action pour voir ses effets.';font-size:.875rem;color:#b8c8b0}
.v6-battle .preview-copy{max-height:70px;overflow:hidden}.v6-battle .preview-copy>strong{font-size:.875rem;line-height:1.2;max-height:34px;overflow:hidden}.v6-battle .preview-copy>span{font-size:.875rem;line-height:1.2;max-height:34px;overflow:hidden}
.v6-battle .preview-reason{display:block;font-size:.75rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v6-battle .preview-controls{display:grid;grid-template-columns:36px;grid-template-rows:32px 32px;gap:2px}.v6-battle .preview-controls .icon-btn{height:32px;width:36px;min-width:36px;min-height:32px;padding:7px}.control-placeholder{visibility:hidden;pointer-events:none}
.v6-battle .playback-summary{grid-template-columns:minmax(0,1fr)}
.v6-battle .action-help{height:18px;min-height:18px;margin:0;overflow:hidden;font-size:.75rem}.v6-battle .action-help .btn{height:18px;min-height:18px;font-size:.75rem;padding:0 5px;margin:0}.v6-battle .action-help>span{display:block;font-size:.75rem}
.v6-battle .enemy.conditional-target{outline-style:dashed}.v6-battle .target-forecast{max-width:160px;white-space:normal}
#app.stage-out .arena{opacity:.15;transform:scale(.985);transition:opacity .25s,transform .25s}
#app.stage-in .arena{animation:enterWave .7s ease both}
.wave-arrival{position:absolute;inset:45% 15% auto;z-index:15;padding:12px;border:1px solid #cfb27288;background:#122319e8;text-align:center;color:#f7ddb0;font-family:var(--serif);font-size:1.4rem;pointer-events:none;animation:waveTitle .85s ease both}
@keyframes enterWave{from{opacity:.15;transform:scale(1.025)}to{opacity:1;transform:none}}
@keyframes waveTitle{0%{opacity:0;transform:translateY(8px)}20%,65%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}
@media(max-width:900px){
 .menu-screen .menu-content{width:auto;margin:16px 26px 24px}.menu-screen .menu-content h1{font-size:clamp(2.5rem,8vw,4.6rem)}
 .menu-screen .menu-footer{flex-direction:column;align-items:flex-start;margin-inline:26px;gap:15px}.menu-screen .menu-footer-right{justify-content:flex-start;width:100%;gap:10px}.menu-screen .menu-footer-right>span{display:none}
 .menu-screen .main-menu{margin-left:-27px}.menu-screen .menu-option{font-size:1.25rem;padding-block:10px;min-height:44px}
 .party-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.party-picker>button{padding:8px;gap:6px}
 .v6-battle.battle-screen{--action-height:72px;--console-height:306px;grid-template-rows:34px minmax(0,1fr) 124px var(--console-height)}
 .v6-battle>.battle-console{display:block;padding:5px 8px;gap:0}
 .v6-battle .hero-status{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:16px 16px;gap:0 10px;height:32px;min-height:32px;margin:0 0 4px}
 .v6-battle .hero-status-title,.v6-battle .hero-status>.meter-block:nth-child(2),.v6-battle .hero-status>.meter.xp{display:none}
 .v6-battle .hero-status>.meter-block:nth-child(3){grid-column:1;grid-row:1/3;margin:0}
 .v6-battle .hero-status .meter-caption{font-size:.875rem;line-height:1.1;margin:0 0 3px}
 .v6-battle .hero-status .xp-label{grid-column:2;grid-row:1;margin:0;justify-content:flex-end;font-size:.75rem}
 .v6-battle .battle-wallet{display:flex;grid-column:2;grid-row:2;justify-content:flex-end}
 .v6-battle .actions-panel{grid-template-rows:24px calc(2 * var(--action-height) + 6px) 80px 0}
 .v6-battle .action-help{height:0;min-height:0}.v6-battle:not(:has(.turn-dot)) .action-help{height:0}
 .v6-battle>.party-bar{padding:4px 6px;gap:4px}.v6-battle .party-bar .party-card .party-select{padding-inline:3px}
 .v6-battle .battle-topbar{padding-inline:6px;gap:3px}.v6-battle .battle-topbar .wordmark{min-width:0}.v6-battle .battle-topbar .wordmark>span:last-child{max-width:160px;font-size:.75rem}.v6-battle .wordmark small{font-size:.75rem}
 .v6-battle .battle-topbar .region-label,.v6-battle .battle-top-actions .money{display:none}
 .v6-battle .hero-cast-slot .cast-button{gap:3px;font-size:.875rem}.cast-button .icon{display:none}
 .v6-battle .action-button .action-key{display:none}.v6-battle .preview-copy>strong small{display:none}
 .v6-battle .class-mechanic{font-size:.75rem}.v6-battle .class-mechanic>.icon{height:15px;width:15px}
 .v6-battle .encounter-card{padding:8px 12px}.v6-battle .encounter-card>.encounter-symbol,.v6-battle .encounter-card>.overline{display:none}
 .v6-battle .encounter-card h2{font-size:1.125rem}.v6-battle .encounter-card p{font-size:.875rem;line-height:1.2}
 .v6-battle .preview-copy>span{font-size:.75rem;line-height:1.3}.v6-battle .playback-summary .preview-copy>span{font-size:.875rem}
}
@media(max-height:650px) and (max-width:900px) and (orientation:portrait){
 .v6-battle.battle-screen{--action-height:60px;--console-height:282px}.v6-battle .action-button .action-estimate{display:none}
 .menu-screen .menu-top{padding-block:17px}.menu-screen .title-rule{margin-block:15px}.menu-screen .menu-content{margin-top:8px}
}
@media(max-height:520px) and (min-width:600px){
 .v6-battle.battle-screen{--action-height:60px;--console-height:auto;grid-template-columns:minmax(0,1fr) 330px;grid-template-rows:32px minmax(0,1fr) 124px}
 .v6-battle>.journey{grid-column:1/-1;grid-row:1}.v6-battle>.chapter3d{grid-column:1;grid-row:2}.v6-battle>.party-bar{grid-column:1;grid-row:3}
 .v6-battle>.battle-console{grid-column:2;grid-row:2/4;height:100%;display:block;padding:5px 6px;overflow:auto}
 .v6-battle .hero-status{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:16px 16px;height:32px;margin-bottom:4px}
 .v6-battle .hero-status-title,.v6-battle .hero-status>.meter-block:nth-child(2),.v6-battle .hero-status>.meter.xp{display:none}
 .v6-battle .hero-status>.meter-block:nth-child(3){grid-column:1;grid-row:1/3;margin:0}.v6-battle .hero-status .meter-caption{font-size:.875rem;line-height:1.1}
 .v6-battle .hero-status .xp-label{grid-column:2;grid-row:1;margin:0;font-size:.75rem}.v6-battle .battle-wallet{display:flex;grid-column:2;grid-row:2;justify-content:flex-end}
 .v6-battle .action-button .action-estimate,.v6-battle .action-button .action-key{display:none}.v6-battle .actions-panel{grid-template-rows:24px calc(2 * var(--action-height) + 6px) 80px 0}
 .v6-battle .class-mechanic{font-size:.75rem}.v6-battle .action-help{height:0;min-height:0}
 .v6-battle .battle-topbar .wordmark>span:last-child{font-size:.75rem;max-width:150px}.v6-battle .battle-topbar .region-label,.v6-battle .battle-top-actions .money{display:none}
 .v6-battle .battle-topbar{padding-inline:5px;gap:2px}.v6-battle .battle-top-actions .icon-btn{width:36px;min-width:36px;padding:7px}
 .v6-battle .turn-banner{top:49px}.v6-battle .encounter-card{top:60%;padding:7px 10px;max-height:calc(100% - 73px)}
}
@media(prefers-reduced-motion:reduce){#app.stage-out .arena,#app.stage-in .arena,.wave-arrival{animation:none;transition:none;transform:none;opacity:1}}
.reduce-motion#app.stage-out .arena,.reduce-motion #app.stage-out .arena{transition:none;transform:none;opacity:1}
/* Ability signatures remain visible with both 3D and the illustrated fallback. */
.v6-battle .action-button{--skill-tint:var(--class-color)}
.v6-battle .action-grid .skill-power{--skill-tint:#ffb274}.v6-battle .action-grid .skill-sweep{--skill-tint:#e5bf84}.v6-battle .action-grid .skill-quake{--skill-tint:#ef816a}.v6-battle .action-grid .skill-fortify{--skill-tint:#edc569}
.v6-battle .action-grid .skill-double{--skill-tint:#b8d885}.v6-battle .action-grid .skill-volley{--skill-tint:#77cdae}.v6-battle .action-grid .skill-snipe{--skill-tint:#e3dd83}.v6-battle .action-grid .skill-aim{--skill-tint:#a8db87}
.v6-battle .action-grid .skill-fire{--skill-tint:#ff9865}.v6-battle .action-grid .skill-frost{--skill-tint:#8de4ed}.v6-battle .action-grid .skill-meteor{--skill-tint:#c099fa}.v6-battle .action-grid .skill-focus{--skill-tint:#91bcff}
.v6-battle .action-grid .skill-heal{--skill-tint:#a5eeac}.v6-battle .action-grid .skill-smite{--skill-tint:#f2d780}.v6-battle .action-grid .skill-nova{--skill-tint:#f7e5b4}.v6-battle .action-grid .skill-grenade{--skill-tint:#eaa174}.v6-battle .action-grid .skill-powder{--skill-tint:#98dbc7}
.v6-battle .action-grid .skill-guard{--skill-tint:#95b9d6}.v6-battle .action-grid .skill-potion{--skill-tint:#eb8d9a}
.v6-battle .chapter3d:not(.board-3d-ready) .party-hero.melee-acting .hero-back-wrap{animation:heroLunge .95s ease both}
.v6-battle .chapter3d:not(.board-3d-ready) .enemy.melee-acting .enemy-sprite{animation:enemyLunge .95s ease both}
.v6-battle .chapter3d:not(.board-3d-ready) .party-hero.spell-acting .hero-back-wrap{filter:drop-shadow(0 0 14px #aecbff);animation:spellCast .95s ease both}
.v6-battle .party-hero.receiving-heal .hero-name-tag{animation:healingGlow .8s ease both}
.v6-battle .chapter3d:not(.board-3d-ready) .enemy.just-defeated .enemy-sprite{animation:fallAway .55s ease both}
@keyframes heroLunge{0%,100%{transform:translateY(0)}60%{transform:translateY(-24px)}}
@keyframes enemyLunge{0%,100%{transform:translateY(0)}60%{transform:translateY(22px)}}
@keyframes spellCast{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes healingGlow{0%,100%{box-shadow:0 0 0 #a9ffb600}50%{box-shadow:0 0 24px #a9ffb6}}
@keyframes fallAway{to{opacity:.15;transform:translateY(12px) rotate(30deg)}}
@media(prefers-reduced-motion:reduce){.v6-battle .hero-back-wrap,.v6-battle .enemy-sprite,.v6-battle .hero-name-tag{animation:none!important}}
.reduce-motion .v6-battle .hero-back-wrap,.reduce-motion .v6-battle .enemy-sprite,.reduce-motion .v6-battle .hero-name-tag{animation:none!important}

/* V6.1 — one row of actions; the board receives the space above the fixed controls. */
.hero-health{display:block;position:relative;isolation:isolate;height:22px;margin:3px 0;border:1px solid #98d89088;border-radius:4px;background:#08140e;overflow:hidden}
.hero-health>i{position:absolute;inset:0 auto 0 0;background:linear-gradient(0deg,#386c39,#91c774);box-shadow:inset 0 1px #d8fbb388;z-index:-1;transition:width .25s ease}
.hero-health>span{display:block;color:#fff;font:600 .8125rem/20px var(--sans);text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000,0 0 4px #000}
.hero-health.low-health{border-color:#f0ac68}.hero-health.low-health>i{background:linear-gradient(0deg,#963f29,#dc8b50)}
.picker-identity .hero-health{height:24px;margin:4px 0}.picker-identity .hero-health>span{line-height:22px}
.fullscreen-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:7px 10px;border:1px solid #b5df99;background:linear-gradient(#497443,#284b30);color:#f2ffe8;font-size:.8125rem;font-weight:600;white-space:nowrap;box-shadow:0 2px 10px #0005}
.fullscreen-button .icon{width:19px;height:19px;flex-shrink:0}.fullscreen-button:hover{background:#416b3c;border-color:#e4ffcd}.fullscreen-button[aria-pressed="true"]{background:#213d28}
.menu-footer .fullscreen-button{min-height:44px}.menu-footer-right{flex-wrap:wrap}
html:fullscreen{background:#101915;width:100%;height:100%}
html:-webkit-full-screen{background:#101915;width:100%;height:100%}
.v6-battle.v61-battle.battle-screen{--action-height:64px;--preview-height:54px;--readout-height:28px;--console-height:164px;--party-height:110px;--select-height:64px;--cast-height:34px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:28px minmax(0,1fr) var(--party-height) var(--console-height);height:100%;min-height:0;gap:0;overflow:hidden}
.v6-battle.v61-battle>.journey{grid-column:1;grid-row:1;padding:1px 8px;height:28px;min-height:0}
.v6-battle.v61-battle .journey-step{height:24px;flex-direction:row;gap:4px}.v6-battle.v61-battle .journey-step .icon{width:14px;height:14px}
.v6-battle.v61-battle>.chapter3d{grid-column:1;grid-row:2;min-height:0;height:auto;max-height:none}
.v6-battle.v61-battle>.party-bar{grid-column:1;grid-row:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr;gap:6px;padding:4px 8px;min-height:0;overflow:hidden}
.v6-battle.v61-battle .party-bar .party-card{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--select-height) var(--cast-height);align-content:center;min-height:0}
.v6-battle.v61-battle .party-bar .party-card .party-select{height:var(--select-height);min-height:var(--select-height);padding:2px 5px;display:block}
.v6-battle.v61-battle .party-card .party-identity strong{font-size:.875rem;line-height:16px;height:16px;min-width:0}
.v6-battle.v61-battle .party-card .party-identity small{font-size:.75rem;line-height:13px;height:13px}
.v6-battle.v61-battle .party-card .party-number{height:15px;width:15px;min-width:15px}
.v6-battle.v61-battle .hero-health{height:22px;margin:2px 0}.v6-battle.v61-battle .hero-health>span{line-height:20px}
.v6-battle.v61-battle .hero-xp{display:block;position:relative;width:100%;height:5px;min-height:5px;margin:0;border-radius:2px}
.v6-battle.v61-battle .hero-xp>span{display:none!important}
.v6-battle.v61-battle .hero-cast-slot{height:var(--cast-height);min-height:0;padding:2px}
.v6-battle.v61-battle .hero-cast-slot .cast-button{height:calc(var(--cast-height) - 5px);min-height:calc(var(--cast-height) - 5px);padding:1px 4px;font-size:.8125rem}
.v6-battle.v61-battle>.battle-console{grid-column:1;grid-row:4;display:block;height:var(--console-height);max-height:none;min-height:0;padding:5px 8px;overflow:hidden}
.v6-battle.v61-battle .actions-panel{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--readout-height) var(--action-height) var(--preview-height);gap:3px;position:relative;min-height:0;height:100%;padding:0}
.v6-battle.v61-battle .combat-readout{display:flex;align-items:center;gap:12px;min-width:0;height:var(--readout-height)}
.v6-battle.v61-battle .active-resource{width:clamp(145px,20vw,250px);flex-shrink:0}.v6-battle.v61-battle .active-resource .meter-block{margin:0}
.v6-battle.v61-battle .active-resource .meter-caption{font-size:.75rem;line-height:14px;margin:0 0 2px}.v6-battle.v61-battle .active-resource .meter{height:6px}
.v6-battle.v61-battle .class-mechanic{flex:1;min-width:0;height:var(--readout-height);padding:0;gap:5px;font-size:.8125rem}
.v6-battle.v61-battle .readout-tools{display:flex;align-items:center;gap:10px;flex-shrink:0}.v6-battle.v61-battle .readout-tools .money{font-size:.75rem;gap:7px}
.v6-battle.v61-battle .readout-tools .icon-btn{width:28px;min-width:28px;height:28px;min-height:28px;padding:5px}
.v6-battle.v61-battle .action-grid,.v6-battle.v61-battle.is-interlude .action-grid{display:grid;grid-template-columns:repeat(var(--action-count),minmax(0,1fr));grid-template-rows:var(--action-height);grid-auto-flow:column;gap:5px;min-width:0;min-height:0;height:var(--action-height)}
.v6-battle.v61-battle .action-grid .action-button{height:var(--action-height);min-height:var(--action-height);min-width:0;width:100%;padding:4px 3px;gap:4px;justify-content:center;margin:0;touch-action:manipulation}
.v6-battle.v61-battle .action-button .action-name{display:block;width:100%;overflow:hidden;font-size:.8125rem;line-height:16px;white-space:nowrap;text-overflow:ellipsis}
.v6-battle.v61-battle .action-name .name-short,.v6-battle.v61-battle .action-name .name-mini{display:none}
.v6-battle.v61-battle .action-button .action-estimate,.v6-battle.v61-battle .action-button .action-cost{max-width:100%;font-size:.75rem;line-height:13px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.v6-battle.v61-battle .action-button .action-key{font-size:.625rem;top:2px;left:3px}.v6-battle.v61-battle .skill-art>.icon{height:68px;width:68px}
.v6-battle.v61-battle .action-preview,.v6-battle.v61-battle .action-preview.playback-summary,.v6-battle.v61-battle .action-preview:empty{height:var(--preview-height);min-height:var(--preview-height);max-height:var(--preview-height);grid-template-columns:minmax(0,1fr) 76px;gap:5px;padding:3px 6px;margin:0;overflow:hidden}
.v6-battle.v61-battle .preview-controls{display:grid;grid-template-columns:36px 36px;grid-template-rows:36px;gap:4px}
.v6-battle.v61-battle .preview-controls .icon-btn{height:36px;min-height:36px;width:36px;min-width:36px;padding:7px}
.v6-battle.v61-battle .preview-copy{min-width:0;max-height:calc(var(--preview-height) - 6px);overflow:hidden}
.v6-battle.v61-battle .preview-copy>strong{display:block;max-height:none;font-size:.8125rem;line-height:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.v6-battle.v61-battle .preview-copy>span{display:block;max-height:none;font-size:.75rem;line-height:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.v6-battle.v61-battle .preview-reason{font-size:.6875rem;line-height:13px}
.v6-battle.v61-battle .action-help{display:none}
.v6-battle.v61-battle.is-interlude .action-preview:empty:before{display:none}
.v6-battle.v61-battle.is-interlude .action-help{display:flex;position:absolute;bottom:4px;left:6px;right:6px;height:36px;min-height:36px;justify-content:flex-start;overflow:visible}
.v6-battle.v61-battle.is-interlude .action-help .btn{height:36px;min-height:36px;font-size:.8125rem;padding:4px 12px}
@media(max-width:1200px){
 .v6-battle.v61-battle .action-name .name-full{display:none}.v6-battle.v61-battle .action-name .name-short{display:inline}
 .v6-battle.v61-battle .action-button .action-key{display:none}
}
@media(max-width:620px){
 .v6-battle.v61-battle>.party-bar{padding-inline:4px;gap:3px}.v6-battle.v61-battle .party-bar .party-card .party-select{padding-inline:3px}
 .v6-battle.v61-battle .party-card .party-identity strong{font-size:.8125rem;gap:2px}.v6-battle.v61-battle .party-card .party-number{display:none}
 .v6-battle.v61-battle .hero-health>span{font-size:.75rem}
 .v6-battle.v61-battle>.battle-console{padding-inline:4px}.v6-battle.v61-battle .action-grid{gap:3px}
 .v6-battle.v61-battle .action-grid .action-button{padding:3px 1px;gap:3px}
 .v6-battle.v61-battle .action-name .name-short{display:none}.v6-battle.v61-battle .action-name .name-mini{display:inline}
 .v6-battle.v61-battle .action-button .action-name{font-size:.6875rem;line-height:14px}
 .v6-battle.v61-battle .action-button>.icon{display:block;width:17px;height:17px}.v6-battle.v61-battle .action-button .action-estimate{display:none}
 .v6-battle.v61-battle .action-button .action-cost{font-size:.625rem;line-height:12px}
 .v6-battle.v61-battle .combat-readout{gap:5px}.v6-battle.v61-battle .active-resource{width:128px}
 .v6-battle.v61-battle .class-mechanic{font-size:.6875rem}.v6-battle.v61-battle .class-mechanic>.icon{display:none}
 .v6-battle.v61-battle .readout-tools{gap:4px}.v6-battle.v61-battle .readout-tools .money{gap:3px;font-size:.6875rem}.v6-battle.v61-battle .readout-tools .money>span{gap:2px}.v6-battle.v61-battle .readout-tools .coin{height:8px;width:8px}
 .v6-battle.v61-battle .fullscreen-button{font-size:.75rem;padding:6px 8px}
 .v6-battle.v61-battle .preview-copy>strong{font-size:.75rem}.v6-battle.v61-battle .preview-copy>span{font-size:.6875rem}
}
@media(max-height:640px){
 .v6-battle.v61-battle.battle-screen{--action-height:54px;--readout-height:24px;--preview-height:48px;--console-height:140px;--party-height:102px;--select-height:62px;--cast-height:28px}
 .v6-battle.v61-battle>.battle-console{padding-block:3px}
 .v6-battle.v61-battle .actions-panel{gap:3px}.v6-battle.v61-battle .hero-health{height:20px;margin-block:2px}.v6-battle.v61-battle .hero-health>span{line-height:18px}
 .v6-battle.v61-battle .action-grid .action-button{gap:2px}.v6-battle.v61-battle .readout-tools .icon-btn{height:24px;min-height:24px}
}
@media(max-height:540px) and (orientation:portrait){
 .v6-battle.v61-battle.battle-screen{--action-height:46px;--readout-height:20px;--preview-height:40px;--console-height:120px;--party-height:96px;--select-height:58px;--cast-height:26px;grid-template-rows:24px minmax(0,1fr) var(--party-height) var(--console-height)}
 .v6-battle.v61-battle>.journey{height:24px}.v6-battle.v61-battle .journey-step{height:20px}
 .v6-battle.v61-battle .hero-health{height:18px;margin-block:1px}.v6-battle.v61-battle .hero-health>span{line-height:16px}
 .v6-battle.v61-battle .action-button>.icon{display:none}
 .v6-battle.v61-battle .preview-reason{display:none}
}
/* Short landscape: the team sits beside the board; all actions still span one bottom row. */
@media(max-height:560px) and (min-width:600px) and (orientation:landscape){
 .v6-battle.v61-battle.battle-screen{--action-height:42px;--readout-height:20px;--preview-height:36px;--console-height:90px;--select-height:64px;--cast-height:30px;grid-template-columns:minmax(0,1fr) clamp(124px,20%,230px);grid-template-rows:24px minmax(0,1fr) var(--console-height)}
 .v6-battle.v61-battle>.journey{grid-column:1/-1;grid-row:1;height:24px}.v6-battle.v61-battle .journey-step{height:20px}
 .v6-battle.v61-battle>.chapter3d{grid-column:1;grid-row:2}
 .v6-battle.v61-battle>.party-bar{grid-column:2;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));padding:3px;gap:3px}
 .v6-battle.v61-battle .party-bar .party-card .party-select{padding-inline:2px}
 .v6-battle.v61-battle .party-card .party-identity strong{font-size:.75rem}.v6-battle.v61-battle .party-card .party-identity small{font-size:.625rem}.v6-battle.v61-battle .party-number{display:none}
 .v6-battle.v61-battle .hero-health>span{font-size:.625rem}.v6-battle.v61-battle .hero-cast-slot .cast-button{font-size:.75rem}
 .v6-battle.v61-battle>.battle-console{grid-column:1/-1;grid-row:3;height:var(--console-height);padding:3px 6px;overflow:hidden}
 .v6-battle.v61-battle .actions-panel{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--action-height) var(--preview-height);gap:4px}
 .v6-battle.v61-battle .combat-readout{position:absolute;bottom:2px;right:84px;z-index:2;max-width:240px;height:30px;gap:5px;background:#0d1a12}
 .v6-battle.v61-battle .active-resource{width:120px}.v6-battle.v61-battle .readout-tools .money{display:none}.v6-battle.v61-battle .class-mechanic{display:none}
 .v6-battle.v61-battle .readout-tools .icon-btn{height:28px;min-height:28px}
 .v6-battle.v61-battle .action-grid{grid-row:1;gap:4px}.v6-battle.v61-battle .action-grid .action-button{gap:2px;padding:2px}
 .v6-battle.v61-battle .action-button .action-estimate,.v6-battle.v61-battle .action-button>.icon{display:none}
 .v6-battle.v61-battle .action-preview{grid-row:2}.v6-battle.v61-battle .preview-copy{padding-right:160px}.v6-battle.v61-battle .preview-reason{display:none}
 .v6-battle.v61-battle .action-name .name-full{display:none}.v6-battle.v61-battle .action-name .name-short{display:inline}
 .v6-battle.v61-battle .battle-topbar .wordmark>span:last-child{display:none}
 .v6-battle.v61-battle .hero-health{height:22px;margin:2px 0}.v6-battle.v61-battle .hero-health>span{line-height:20px}
 .v6-battle.v61-battle.is-interlude .action-help{right:250px;overflow:hidden}.v6-battle.v61-battle.is-interlude .action-help .btn{white-space:nowrap;font-size:.75rem;padding-inline:5px}
}
@media(prefers-reduced-motion:reduce){.hero-health>i{transition:none}}.reduce-motion .hero-health>i{transition:none}
.reduce-motion #app.stage-in .arena,.reduce-motion .wave-arrival{animation:none;transition:none;transform:none;opacity:1}
