#heroWindow{
 box-sizing:border-box;width:min(730px,calc(100% - 20px));max-width:none;
 max-height:calc(100dvh - 20px);overflow:auto;padding:clamp(10px,2.8vw,22px);
 border:12px solid transparent;border-image:url('/assets/rustic-v1045/production.webp') 14 18 14 18 stretch;
 background:#211810 linear-gradient(90deg,#120f0bb3,#17120d35 61%,#110e0b44);
 background-image:linear-gradient(90deg,#110e0aba,#17120d20 67%,#110e0b45),url('/assets/onboarding/hero-command-tent-v1178.webp');
 background-size:cover;background-position:center;
 background-clip:padding-box;color:#f4e2bf;
 font-family:var(--entry-font,serif);box-shadow:0 16px 50px #000a;
}
#heroWindow::backdrop{background:#000a}
#heroWindow .hero-header{
 position:relative;isolation:isolate;display:grid;
 grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px;
 margin:0 0 12px;padding:4px 7px;border-bottom:1px solid #795a3a;
 background:linear-gradient(90deg,transparent,#261b13c9 28%,#261b13c9 72%,transparent);
}
#heroWindow .hero-header::before{
 content:'';position:absolute;z-index:-1;pointer-events:none;inset-inline:12%;top:50%;height:9px;
 transform:translateY(-50%);
 background:linear-gradient(90deg,transparent,#a1794e 28%,#a1794e 72%,transparent) center/100% 1px no-repeat,
 linear-gradient(90deg,transparent,#604329 28%,#604329 72%,transparent) center/100% 5px no-repeat;
}
#heroWindow .hero-header #heroTitle{
 grid-column:2;justify-self:center;min-width:0;width:min(164px,100%);box-sizing:border-box;
 padding:7px 12px;background:url('/assets/rustic-v1045/title.webp') center/100% 100% no-repeat;
 color:#f6e3bb!important;letter-spacing:.26em;text-indent:.26em;text-shadow:0 2px 2px #080706;
}
#heroWindow .hero-header form{grid-column:3;margin:0}
#heroWindow h2,#heroWindow h3{margin:0;color:#fff1cd!important;text-align:center;background:url('/assets/rustic-v1045/title.webp') center/100% 100% no-repeat;padding:6px 18px}
#heroWindow h2{font-size:23px;min-width:126px}
#heroWindow h3{font-size:18px}
#heroWindow .hero-close{width:38px;height:34px;padding:0;color:#fff1d2;border:0;font-size:22px;background:url('/assets/rustic-v1045/button.webp') center/100% 100% no-repeat}
#heroWindow .hero-layout{
 position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
 column-gap:24px;min-height:min(390px,60dvh);padding:13px 0;
 border-block:2px solid #715133;
 box-shadow:0 -4px 0 #1b130e,0 4px 0 #1b130e;
}
#heroWindow .hero-layout::before{
 content:'';position:absolute;inset:-2px auto -2px 50%;width:10px;
 transform:translateX(-50%);pointer-events:none;
 background:linear-gradient(90deg,#1a120d,#765236 33%,#4d3321 68%,#1a120d);
 box-shadow:1px 0 6px #080502b0;
}
#heroWindow .hero-equipment{
 background:radial-gradient(ellipse at 50% 70%,#a86e3335,transparent 68%);
 padding:8px 5px 15px;
}
#heroWindow .hero-stats{align-self:start;padding:10px;border:1px solid #785a3a;background:#171912e8;color:#f4e2bf;box-shadow:inset 0 0 16px #0007}
#heroWindow dl{margin:8px auto 0;width:min(100%,230px)}
#heroWindow dl div{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:8px;padding:5px 2px;border-bottom:1px solid #98734770}
#heroWindow dd{margin:0;font-weight:700}
#heroWindow .hero-equipment{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.5fr) minmax(0,1fr);grid-template-areas:'head head head' 'left portrait right' '. name .' 'boots deputies mount' 'rule rule rule';grid-template-rows:61px minmax(220px,1fr) auto 61px auto;gap:8px;align-items:center}
#heroWindow .hero-equipment ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;align-content:start}
#heroWindow .hero-head-slot{grid-area:head;justify-self:center;width:calc((100% - 16px) / 4.5);transform:translateY(8px)}
#heroWindow .hero-left-slots{grid-area:left}
#heroWindow .hero-right-slots{grid-area:right}
#heroWindow .hero-slot{box-sizing:border-box;height:61px;display:grid;align-content:center;gap:4px;text-align:center;padding:3px;color:#f4e2bf;background:radial-gradient(ellipse at 50% 28%,#473124,#1c1310 85%);
 border:1px solid #c6a76e;border-radius:8px;box-shadow:inset 0 0 0 2px #211610,0 2px 5px #100a08b3;font-size:clamp(12px,2vw,15px)}
#heroWindow .hero-slot small{font-size:12px;color:#d2b38a}
#heroWindow .hero-character{grid-area:portrait;position:relative;z-index:2;align-self:center;justify-self:center;width:100%;aspect-ratio:1;transform:translateY(8px) scale(1.34);pointer-events:none;background:url('/assets/onboarding/faction-mascots.webp') var(--hero-sprite,0%) center/300% 100% no-repeat}
#heroWindow[data-faction="魏"]{--hero-sprite:50%}
#heroWindow[data-faction="吳"]{--hero-sprite:100%}
@media(max-width:640px){
 #heroWindow .hero-layout{grid-template-columns:minmax(0,1fr);min-height:0;row-gap:20px}
 #heroWindow .hero-layout::before{display:none}
 #heroWindow .hero-stats{margin-bottom:0}
 #heroWindow .hero-equipment{border-top:3px solid #715133;padding-top:12px}
}
/* The shared game theme sets dark text directly on some descendants. */
html body #heroWindow :is(.hero-stats dt,.hero-stats dd,.hero-slot span){
 color:#fff0d0!important;
 text-shadow:0 1px 2px #110c08;
}
html body #heroWindow .hero-slot small{
 color:#dfc69f!important;
 text-shadow:0 1px 2px #110c08;
}
#heroWindow .hero-stats{background:#16140fbd}
#heroWindow .hero-stats dd:not(.hero-stepper){padding-inline-start:27px}
#heroWindow .hero-stepper{display:grid;grid-template-columns:25px minmax(0,1fr) 25px;align-items:center;gap:4px}
#heroWindow .hero-stepper output{
 display:grid;place-items:center;min-height:28px;padding:0 2px;
 color:#fff0d0!important;background:#140f0c;border:1px solid #a88354;
 font:700 13px/1 system-ui,sans-serif;white-space:nowrap;
}
html body #heroWindow :is(.hero-stepper button,#heroApply){
 border:1px solid #a37c4d;color:#fff0d0!important;border-radius:2px;
 background:#523722 url('/assets/rustic-v1045/button.webp') center/100% 100% no-repeat;
 font-weight:700;cursor:pointer;
}
#heroWindow .hero-stepper button{min-width:0;height:28px;padding:0}
#heroWindow #heroApply{min-height:32px;padding:3px 10px}
#heroWindow :is(.hero-stepper button,#heroApply):disabled{opacity:.48;cursor:default}
#heroWindow .hero-point-footer{
 box-sizing:border-box;padding-inline:2px;
 width:min(100%,230px);margin:10px auto 0;display:flex;align-items:center;justify-content:space-between;gap:5px;
}
html body #heroWindow :is(.hero-point-footer p,#heroPointStatus,#heroPoints){color:#fff0d0!important}
#heroWindow .hero-point-footer p{margin:0}
#heroWindow #heroPointStatus{width:min(100%,230px);margin:5px auto 0;min-height:1.3em;font-size:13px}

#heroWindow .hero-stats dd.hero-exp{position:relative;min-width:0;padding:0}
#heroWindow .hero-exp progress{
 display:block;appearance:none;width:100%;height:18px;overflow:hidden;
 box-sizing:border-box;padding:2px;border:1px solid #896a46;border-radius:3px;
 background:#1c1510 url('/assets/rustic-v1045/progress-track.webp') center/100% 100% no-repeat;
}
#heroWindow .hero-exp progress::-webkit-progress-bar{background:#100e0d;border-radius:2px}
#heroWindow .hero-exp progress::-webkit-progress-value{background:linear-gradient(#8bd4ff,#358bd3 45%,#174d8a);border-radius:2px}
#heroWindow .hero-exp progress::-moz-progress-bar{background:linear-gradient(#8bd4ff,#358bd3 45%,#174d8a);border-radius:2px}
html body #heroWindow #heroExperienceText{
 position:absolute;inset:0;display:grid;place-items:center;
 color:#fff0d0!important;text-shadow:0 1px 2px #110c08;font:700 12px system-ui,sans-serif;
}
#heroWindow .hero-equipment :is(.hero-left-slots,.hero-right-slots){
 gap:4px;align-self:center;
}
#heroWindow .hero-equipment .hero-deputies{
 grid-area:deputies;justify-self:center;
 width:calc(100% / 2.5 * 2 + 8px);
 grid-template-columns:repeat(2,minmax(0,1fr));
}
#heroWindow .hero-drawer{margin-top:8px}
#heroWindow .hero-drawer summary{
 display:grid;place-items:center;width:32px;height:27px;margin-left:auto;list-style:none;cursor:pointer;
 border:1px solid #a7804d;border-radius:4px;background:#2f2017;
}
#heroWindow .hero-drawer summary::-webkit-details-marker{display:none}
#heroWindow .hero-drawer summary span{
 width:0;height:0;border-inline:6px solid transparent;border-top:7px solid #e9c887;
}
#heroWindow .hero-drawer[open] summary span{transform:rotate(180deg)}
#heroWindow .hero-drawer-content{
 margin-top:7px;padding:12px 14px 14px;
 border:1px solid #92744d;border-radius:8px;
 background:
  linear-gradient(180deg,#17120df2 0%,#211810bd 45%,#120e0aeb 100%),
  url('/assets/onboarding/hero-command-tent-v1178.webp') center 65%/cover no-repeat,
  #19120e;
 box-shadow:inset 0 0 0 3px #1a130d,inset 0 0 0 4px #ac80554d,0 4px 12px #0008;
}
#heroWindow .hero-drawer-content [data-hero-panel]{
 border-top:1px solid #98734766;padding-top:3px;
}
#heroWindow .hero-drawer-buttons{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}
html body #heroWindow .hero-drawer-buttons button{
 min-height:30px;padding:3px 10px;border:1px solid #8d6a44;border-radius:3px;cursor:pointer;
 color:#fff0d0!important;background:#4b3221 url('/assets/rustic-v1045/button.webp') center/100% 100% no-repeat;
}
#heroWindow .hero-drawer-buttons button[aria-pressed="true"]{
 border-color:#e9c887;box-shadow:inset 0 0 0 1px #e9c887;
}
#heroWindow .hero-drawer [hidden]{display:none!important}
html body #heroWindow .hero-drawer p{margin:4px 0;color:#dfc69f!important;font-size:14px}
#heroWindow .hero-drawer-grid{
 display:grid;grid-template-columns:repeat(10,minmax(0,1fr));
 gap:clamp(3px,1vw,8px);list-style:none;padding:0;margin:8px 0 0;
}
#heroWindow .hero-drawer-grid li{
 box-sizing:border-box;min-width:0;aspect-ratio:1;border:1px solid #817970;border-radius:5px;
 background:
  linear-gradient(135deg,#a69a89 0 6px,transparent 6px),
  linear-gradient(225deg,#81786d 0 6px,transparent 6px),
  linear-gradient(45deg,#81786d 0 6px,transparent 6px),
  linear-gradient(315deg,#a69a89 0 6px,transparent 6px),
  radial-gradient(ellipse at 50% 24%,#3b3028,#211914 85%);
 box-shadow:inset 0 0 0 2px #221d19,inset 0 0 0 3px #7770678c,0 2px 5px #100a08b3;
}
#heroWindow .hero-equipment-toolbar{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:5px}
#heroWindow .hero-equipment-toolbar [inert]{display:none}
#heroWindow .hero-equipment .hero-boots-slot{grid-area:boots}
#heroWindow .hero-equipment .hero-mount-slot{grid-area:mount}
#heroWindow .hero-equipment-toolbar .hero-drawer-buttons{margin-bottom:0}
html body #heroWindow .hero-drawer-content #heroEquipmentEmpty{margin:0 0 5px}
html body #heroWindow .hero-name{
 grid-area:name;justify-self:center;position:relative;z-index:3;
 margin:0;padding:3px 10px;max-width:100%;overflow-wrap:anywhere;
 border:1px solid #9b7a52;border-radius:4px;background:#211b16e8;
 color:#f6e3bb!important;font-size:14px;line-height:1.2;text-align:center;
}
#heroWindow .hero-skills{position:relative;width:min(100%,230px);margin:2px auto 0}
html body #heroWindow .hero-skills summary{
 display:flex;align-items:center;gap:7px;width:max-content;min-height:28px;margin:0 2px 0 auto;
 padding:2px 8px;border:1px solid #95764e;border-radius:3px;background:#35281c;
 color:#fff0d0!important;list-style:none;cursor:pointer;
}
#heroWindow .hero-skills summary::-webkit-details-marker{display:none}
#heroWindow .hero-skills summary span{
 width:0;height:0;border-inline:4px solid transparent;border-top:5px solid #e9c887;
}
#heroWindow .hero-skills[open] summary span{transform:rotate(180deg)}
#heroWindow .hero-skill-content{
 position:absolute;z-index:5;inset:auto 2px calc(100% + 6px) 2px;
 max-height:min(310px,36dvh);overflow:auto;overscroll-behavior:contain;
 padding:9px 10px;border:1px solid #a88152;border-radius:5px;
 background:linear-gradient(#33271a,#1d1711 38%);box-shadow:0 5px 16px #000b;
}
html body #heroWindow .hero-skill-content :is(p,li,strong,span){color:#f1ddbb!important;font-size:13px}
#heroWindow .hero-skill-content p{margin:0 0 6px}
#heroWindow .hero-skill-list{list-style:none;padding:0;margin:0}
#heroWindow .hero-skill-list li{display:flex;align-items:center;gap:6px;padding:3px 0}
#heroWindow .hero-skill-options{margin-top:5px;padding-top:4px;border-top:1px solid #715433}
#heroWindow .hero-skill-options li{align-items:baseline}
#heroWindow .hero-skill-options strong{white-space:nowrap}
#heroWindow .hero-skill-lock{
 display:inline-block;flex:0 0 18px;width:18px;height:17px;
 background:url('/assets/onboarding/hero-antique-lock.svg') center/contain no-repeat;
}
#heroWindow .hero-skill-list .is-unlocked .hero-skill-lock{visibility:hidden}
html body #heroWindow .hero-equipment-rule{
 grid-area:rule;margin:0;text-align:center;font-size:12px;color:#eed3a5!important;
}
html body #heroWindow .hero-slot.is-tactical small{font-size:11px;line-height:1.15;overflow-wrap:anywhere;color:#fff0c2!important}
html body #heroWindow .hero-drawer-grid li{display:grid;place-items:center;padding:3px;text-align:center;overflow-wrap:anywhere;color:#fff0c2!important;font-size:11px}
html body #heroWindow .hero-tactical-button{
 display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;
 border:0;padding:0;background:none;box-shadow:none;cursor:pointer;
}
html body #heroWindow .hero-tactical-button:focus-visible{outline:1px solid #f6e3bb;outline-offset:-2px}
#heroWindow .hero-tactical-button:disabled{cursor:wait;opacity:.55}
#heroWindow .hero-tactical-icon{
 display:block;width:min(100%,48px);aspect-ratio:1;
 background:url('/assets/onboarding/tactical-black-icons-v1225.webp') var(--gear-x) var(--gear-y)/400% 200% no-repeat;
}
#heroWindow .hero-slot.is-tactical{gap:0;grid-template-rows:minmax(0,1fr)}
#heroWindow .hero-slot.is-tactical small[hidden]{display:none!important}
#heroWindow .hero-slot.is-tactical .hero-tactical-icon{width:min(100%,52px)}
#heroWindow .hero-slot.is-tactical>span{display:none!important}
#heroWindow .hero-drawer-content{container-type:inline-size}
#heroWindow .hero-drawer-grid{
 --gear-gap:clamp(3px,1vw,8px);
 --gear-cell:calc((100cqw - 10px - 9 * var(--gear-gap)) / 10);
 grid-auto-rows:var(--gear-cell);
 max-height:calc(3 * var(--gear-cell) + 2 * var(--gear-gap));
 overflow-y:scroll;scrollbar-gutter:stable;scrollbar-color:#8c6c49 #211812;
}
#heroWindow .hero-drawer-grid::-webkit-scrollbar{width:10px}
#heroWindow .hero-drawer-grid li{aspect-ratio:auto}
html body #heroWindow .hero-tactical-button{
 grid-template-rows:minmax(0,1fr) auto;gap:0;overflow:hidden;
}
#heroWindow .hero-tactical-icon{max-height:100%;aspect-ratio:1;justify-self:center}
html body #heroWindow .hero-tactical-name{
 display:block;max-width:100%;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
 font-size:10px;line-height:1.3;color:#fff0c2!important;
}
#heroWindow .hero-drawer-grid .hero-tactical-button:disabled{opacity:1;cursor:default}
#heroWindow .hero-classic-icon{background-image:url('/assets/onboarding/three-kingdoms-equipment-v1230.svg')}
html body #heroWindow .hero-slot.is-tactical .hero-tactical-button{
 grid-template-rows:minmax(0,39px) auto;align-content:center;gap:0;
}
#heroWindow .hero-slot.is-tactical .hero-tactical-icon{width:min(100%,39px)}
html body #heroWindow .hero-slot.is-tactical .hero-tactical-name{line-height:1.1}
/* Preserve legible full equipment names within each grid cell. */
html body #heroWindow .hero-drawer-grid .hero-tactical-name{white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:2!important;line-height:1.1!important;font-size:9px!important;overflow-wrap:anywhere!important;text-align:center!important}
/* Equipment bulk discard, future salvage entry point */
#heroWindow .hero-discard-bar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:7px;padding:3px 8px;color:#e9d6ac;font-size:12px}
#heroWindow .hero-discard-bar button,.hero-discard-warning button{background:linear-gradient(#60452e,#302116);color:#f4e2bf;border:1px solid #9a7650;border-radius:5px;padding:6px 12px;cursor:pointer;font-family:inherit}
#heroWindow .hero-discard-bar .hero-discard-count{margin-right:auto}
#heroWindow .hero-drawer-grid .is-discard-selected{outline:2px solid #d7a44b;outline-offset:-2px;background:rgba(183,105,44,.26)!important}
.hero-discard-warning{position:fixed;inset:0;margin:auto;max-width:min(480px,90vw);max-height:75vh;overflow:auto;padding:24px;background:#e9d6b5;color:#392818;border:8px ridge #775134;border-radius:9px;box-shadow:0 15px 45px #0009;font-family:inherit}
.hero-discard-warning::backdrop{background:#0009}
.hero-discard-warning h3{text-align:center;margin:0 0 12px}
.hero-discard-warning .hero-discard-list{padding:12px;background:#f4e6cc;border:1px solid #b99a73;max-height:200px;overflow:auto}
.hero-discard-warning .hero-discard-list div{padding:4px 0;border-bottom:1px solid #dbc5a4}
.hero-discard-warning .hero-discard-actions{display:flex;justify-content:center;gap:15px;margin-top:18px}
/* Keep the discard action visible at the equipment panel's lower-right edge. */
#heroWindow [data-hero-panel="equipment"]{position:relative!important;padding-bottom:48px!important}
#heroWindow [data-hero-panel="equipment"] .hero-discard-bar{position:absolute!important;right:4px!important;bottom:3px!important;z-index:12!important;display:flex!important;visibility:visible!important;opacity:1!important;margin:0!important;padding:2px!important;align-items:center!important}
#heroWindow .hero-discard-toggle{min-width:92px!important;min-height:34px!important;font-size:13px!important;background:#48301f!important;color:#f5dfb9!important;border:1px solid #aa885c!important}
#heroWindow .hero-roster-box{padding:9px 5px;color:#efddb9;font-size:13px}
#heroWindow .hero-roster-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 4px;border-bottom:1px solid #97754d55}
#heroWindow .hero-roster-row span{flex:1;min-width:140px}
#heroWindow .hero-roster-row button{background:#4d3524;color:#f1dcba;border:1px solid #a28055;border-radius:4px;padding:5px 9px;cursor:pointer}
#heroWindow .hero-roster-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px!important;color:#ead2a6!important}
#heroWindow .hero-roster-cell strong{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis}
#heroWindow .hero-roster-cell small{font-size:9px;color:#d1b58a;text-align:center}
#heroWindow .hero-roster-cell.is-main-hero{border-color:#b7965a;box-shadow:inset 0 0 0 1px #c7a46b}
/* Ensure selected equipment count is readable on the dark inventory background. */
#heroWindow [data-hero-panel="equipment"] .hero-discard-bar .hero-discard-count{color:#f5dfb9!important;-webkit-text-fill-color:#f5dfb9!important;opacity:1!important;text-shadow:0 1px 2px #000!important;font-weight:600!important;white-space:nowrap!important}
/* V1366: manual equipment sorting without changing persisted acquisition order. */
#heroWindow .hero-equipment-sort{margin-left:auto!important;min-width:76px!important;background:#513723!important;color:#f3dfb9!important;border:1px solid #a17b50!important;border-radius:3px!important;padding:4px 8px!important;cursor:pointer!important;font:inherit!important}
/* V1368: sort action sits at far right of equipment categories. */
#heroWindow .hero-drawer-categories{display:flex!important;flex-wrap:wrap!important;width:100%!important}
#heroWindow .hero-drawer-categories .hero-equipment-sort{margin-left:auto!important;order:99!important;min-width:64px!important;flex:0 0 auto!important}