/* Shared desktop window geometry. Content scrolls; the window never jumps between menus. */
:root{--menu-width:min(1140px,calc(var(--game-width) - 48px));--menu-height:min(760px,calc(var(--game-height) - 48px));--hud-gap:24px}
dialog.game-window:not(.small-window){display:flex;flex-direction:column;width:var(--menu-width);max-width:var(--menu-width);height:var(--menu-height);max-height:var(--menu-height);margin:0;padding:0;overflow:hidden}
.game-window:not(.small-window) .window-heading{flex:0 0 48px;height:48px;padding:0 16px}
.game-window:not(.small-window) .armory-nav{flex:0 0 48px;min-height:48px;height:48px;padding:7px 12px;gap:6px;box-sizing:border-box;border-bottom:1px solid #67573966}
.game-window:not(.small-window) .armory-nav button{min-width:96px;min-height:32px;height:32px;font-size:12px}
.game-window:not(.small-window) .window-body{flex:1;min-height:0;max-height:none;padding:12px;overflow:auto;scrollbar-gutter:stable}
.game-window.inventory-window .window-body,.game-window.character-window .window-body{display:flex;flex-direction:column;overflow:hidden}
.game-window .armory-layout{flex:1;min-height:0;height:auto;grid-template-columns:222px minmax(300px,1fr) 306px;gap:10px}
.game-window .armory-wallet{flex-shrink:0;min-height:40px;margin-top:9px}
.game-window .bag-grid{grid-template-columns:repeat(6,64px);gap:5px;justify-content:start}
.game-window .bag-grid .gear-cell{width:64px;height:64px;min-height:64px;aspect-ratio:1}
.game-window .gear-cell .gear-icon{width:56px;height:56px;background-size:224px 224px;background-position:calc(var(--ix) * -56px) calc(var(--iy) * -56px)}
.game-window .paperdoll{height:112px;margin:8px 0 12px}
.game-window .portrait-plinth.nine{width:112px;height:112px}
.game-window .armory-portrait{width:96px;height:96px;background-size:768px 768px}
.game-window .loadout-row{grid-template-columns:54px minmax(0,1fr);gap:8px}
.game-window .loadout-slots{gap:6px}.game-window .loadout-stats dd{font-size:18px}
.game-window .inspect-heading h3{font-size:17px}.game-window .armory-button{font-size:12px}
.game-window.forge-window .window-body{overflow:hidden}
.game-window.forge-window .inventory-layout{height:100%;min-height:0;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr)}
.game-window.forge-window .inventory-panel{display:flex;flex-direction:column;min-height:0}
.game-window.forge-window .items-scroll{flex:1;min-height:0;height:auto;overflow:auto}
.game-window.forge-window .item-detail{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#675b40 #151510}
.game-window .world-map-list{gap:12px}.game-window .map-destination{min-height:138px}
.game-window .settings-grid{gap:24px;padding:10px}
.game-window .settings-grid label{font-size:13px}.game-window .settings-grid h3{font-size:16px}
/* HUD uses one bottom baseline across desktop resolutions, preserving 64px world sprites. */
.vitals{left:var(--hud-gap);bottom:var(--hud-gap);width:268px;height:88px}
.actionbar{left:50%;bottom:var(--hud-gap);gap:4px}
.hud-slot{width:64px;min-width:64px;height:78px}
.utilitybar.nine{right:var(--hud-gap);bottom:var(--hud-gap)}
.vital-name{font-size:12px}.slot-label,.menu-caption{font-size:11px}
.field-objective{max-width:330px;top:90px;line-height:1.7;pointer-events:none}
.field-objective>span{display:block;font-size:13px}.field-objective>small{font-size:11px}
.field-objective button{pointer-events:auto;margin-top:10px;max-width:100%;font-size:12px;padding:5px 12px}
.field-objective .next-stage{color:#f1d49b;min-height:38px}
.camp-hint{display:flex;align-items:center;gap:12px;bottom:136px;font-size:12px}
.camp-hint button{pointer-events:auto;font-size:12px}


/* Blocking choices remain readable, above the world, with no close-to-dismiss path. */
.blessing-overlay{z-index:2;background:#080b07a8;backdrop-filter:blur(2px)}
.blessing-dialog.nine{width:min(880px,calc(var(--game-width) - 48px));max-height:calc(var(--game-height) - 48px);padding:24px;overflow:auto}
.blessing-dialog h2{font-size:22px;line-height:1.5;margin:8px 0 10px}
.blessing-instruction{font-size:13px;line-height:1.7;color:#c5bba4;margin:0 0 24px}
.blessing-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.blessing-card.nine{display:flex;flex-direction:column;min-height:208px;padding:14px 12px;white-space:normal}
.blessing-card kbd{align-self:flex-start;margin:0;padding:2px 7px;font-size:12px;color:#dac08c}
.blessing-card h3{font-size:18px;line-height:1.5;margin:13px 0 10px}
.blessing-card p{font-size:13px;line-height:1.8;color:#cfc6b2;margin:0 0 18px}
.blessing-card>span{font-size:12px;margin-top:auto;color:#e1c38a}
.blessing-card:focus-visible{outline:2px solid #e9cc8a;outline-offset:3px}
.audio-credits{font-size:11px;color:#bdb099;margin-top:10px}
.audio-credits summary{cursor:pointer}.audio-credits a{color:#d4c299;text-decoration:underline;text-underline-offset:3px}
/* v0.10: layout and readable text only. Equipment and boss artwork are PNG assets. */
.game-window .gear-icon.item-art{background:none;object-fit:contain;image-rendering:auto;pointer-events:none}
.game-window .loadout-row strong{font-size:12px;line-height:1.6;overflow:visible;white-space:normal;overflow-wrap:anywhere}
.game-window .loadout-row small,.game-window .loadout-row>div>span{font-size:11px;color:#c4b9a2}
.game-window .inspect-heading h3{font-size:18px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.game-window .inspect-heading>small,.game-window .inspect-heading>span{font-size:12px}
.game-window .stat-comparison>div{min-height:27px;font-size:12px;gap:4px}
.game-window .stat-comparison em{font-size:11px;min-width:42px}
.game-window .stat-comparison>div>span{color:#cec3ad;min-width:0;overflow-wrap:anywhere}
.game-window .stat-comparison h4{font-size:13px;color:#e8d3a5}
.item-properties,.item-properties .affix-line{font-size:13px;line-height:1.8;overflow-wrap:anywhere}
.base-implicit{padding:10px 0;border-bottom:1px solid #79664466;margin-bottom:9px;color:#ddc18c}
.base-implicit b{font-size:12px;font-weight:500}.base-implicit p{margin:5px 0}
.relic-summary{padding:10px 0;margin:8px 0;border-bottom:1px solid #79664488;color:#eed3a0}
.relic-summary b{font-size:13px}.relic-summary p{color:#d4c7ad;font-size:12px;line-height:1.8;margin-top:6px}
.attack-interval{font-size:11px;line-height:1.8;color:#c7bda8;margin:8px 0}
.inspect-scroll-note{display:block;flex-shrink:0;font-size:11px;line-height:1.5;color:#d8c59c;padding:7px 0 0}.inspect-scroll-note[hidden]{display:none}
.forge-window .item-name strong{font-size:13px;white-space:normal;overflow-wrap:anywhere}
.forge-window .item-name small{font-size:11px;line-height:1.7;color:#bdb39d}
.forge-window .affixes{font-size:13px}.forge-window .detail-title .eyebrow,.forge-window .detail-title p{font-size:12px}
.location-hud{padding:5px 10px;background:#10120ee0;border-radius:0}
.location-button small{font-size:12px;color:#dacfb6}
.field-objective{padding:8px 12px;background:#10120ee0;max-width:340px;color:#eee2c6;top:105px}
.field-objective>small{font-size:12px;line-height:1.8;color:#d0c4ac}
.hud-messages p{font-size:12px;line-height:1.65;color:#ead8ad;background:#0c100dde;padding:5px 9px;overflow-wrap:anywhere}
.hp-count{font-size:11px;color:#efe0c2}.hud-meter.hp>span{background:#b34535}
.target-hud.nine{top:20px;width:320px;border-width:8px;border-image-width:8px;padding:6px 10px;box-shadow:none}
.target-hud.boss{width:min(460px,calc(var(--game-width) - 430px))}
.target-title{font-size:14px;line-height:1.6;white-space:normal;color:#f0dfbb}
.target-cast{font-size:12px;line-height:1.6;color:#ffc78c;min-height:0;margin-top:5px}
.target-cast:empty{display:none}.cast-meter{height:4px;background:#241b16;margin-top:7px}.cast-meter[hidden]{display:none}.cast-meter>span{display:block;height:100%;background:#e6b067}
.boss-announcement.nine{position:absolute;top:130px;left:50%;transform:translateX(-50%);width:340px;text-align:center;pointer-events:none;z-index:3;border-width:9px;border-image-width:9px;padding:10px 14px;color:#e9d3a1}
.boss-announcement[hidden]{display:none}.boss-announcement small{display:block;font-size:12px;line-height:1.8;color:#cbbfa4}.boss-announcement strong{display:block;font:20px/1.6 Georgia,"Apple SD Gothic Neo",serif}
.boss-announcement[data-kind="rage"] small{color:#ffb798}.boss-announcement[data-kind="victory"] small{color:#e8d290}

.armory-heading h3{white-space:normal;overflow:visible;overflow-wrap:anywhere;line-height:1.5}
.game-window .map-destination small,.game-window .map-destination p{font-size:12px;line-height:1.7}
/* Option roll quality is independent of the item's rarity color. */
.roll-plain{--roll-color:#ded8ca;color:var(--roll-color)}
.roll-good{--roll-color:#9fd7a3;color:var(--roll-color)}
.roll-fine{--roll-color:#93caff;color:var(--roll-color)}
.roll-superior{--roll-color:#d0a7f3;color:var(--roll-color)}
.roll-perfect{--roll-color:#ffdc80;color:var(--roll-color)}
.item-properties .affix-line,.forge-window .affixes .affix-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 7px;padding:5px 0;margin:0;color:var(--roll-color);line-height:1.65}
.affix-line>span{color:var(--roll-color);font-size:13px}
.option-grade{font-size:10px;font-weight:600;margin-left:auto;white-space:nowrap;color:var(--roll-color)}
.option-range{display:block;flex-basis:100%;font-size:11px;color:#bfb39d}
.option-legend{display:flex;flex-wrap:wrap;gap:5px;font-size:10px!important;line-height:1.5!important}.option-legend span{font-weight:600}
.inspect-heading>span>b{font-weight:500}

.exploration-destinations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid #bda47733}
.exploration-destinations h3,.exploration-destinations p{grid-column:1/-1;margin:0 0 6px}
.exploration-destinations p{font-size:14px;line-height:1.6;color:#b9c2c3}
.exploration-destinations button{min-height:44px;text-align:left;font-size:14px}
