/* A single reading surface for the unlocked story archive. */
.exp-modal.modal-story-journal{display:flex;flex-direction:column;gap:16px;width:min(880px,100%);height:min(740px,100%);max-width:880px;overflow:hidden;padding:24px;min-height:0}
.story-journal-heading{flex:none;min-width:0;padding-right:44px;text-align:left}
.story-journal-heading h2{margin:7px 0 10px;font-size:clamp(22px,4vw,32px)}
.story-journal-heading p{font-size:13px;line-height:1.6;margin:0;max-width:570px;color:#c1d2db}
.story-journal-list{display:grid;grid-template-columns:1fr;align-content:start;gap:10px;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding:3px 4px 10px;scrollbar-width:thin;scrollbar-color:#8fbfbc66 transparent;flex:1}
.story-journal-entry{display:grid;grid-template-columns:94px minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:100px;width:100%;padding:10px;border:1px solid #b8d9df2b;border-radius:13px;background:linear-gradient(120deg,#1a3441,#102431);color:#f3f6f7;text-align:left;cursor:pointer;touch-action:manipulation;box-shadow:0 5px 20px #040e1620;transition:border-color .2s,background .2s}
.story-journal-entry:hover,.story-journal-entry:focus-visible{border-color:#a9dfcf;background:#244351}
.story-journal-entry:focus-visible{outline:2px solid #c1fff0;outline-offset:1px}
.story-journal-entry img{width:94px;height:70px;object-fit:cover;max-width:100%;border-radius:8px;border:1px solid #d8e9ed20}
.story-journal-entry>span{display:grid;gap:6px;min-width:0}
.story-journal-entry strong{font-size:15px;line-height:1.25;overflow-wrap:break-word}
.story-journal-entry small:first-child{font-size:8px;letter-spacing:.15em;font-weight:700;color:#9ad9cc}
.story-journal-entry small:last-child{font-size:10px;color:#adc5ce;line-height:1.4}
.story-journal-entry>.exp-icon{width:17px;height:17px;opacity:.8}
.story-journal-empty{grid-column:1/-1;text-align:center;padding:35px 12px;color:#c0d6dd}
.story-journal-empty .exp-space-icon{margin:0 auto 15px}
.modal-story-journal>.exp-screen-footer{padding-top:10px;border-top:1px solid #c6e4e524;margin:0;flex:none;justify-content:flex-end}
.modal-story-journal>.exp-screen-footer .exp-button{min-height:44px;min-width:100px}
@media(min-width:900px) and (min-height:600px){.story-journal-list{grid-template-columns:1fr 1fr}.story-journal-entry{grid-template-columns:86px minmax(0,1fr) 16px}.story-journal-entry img{width:86px}}
@media(max-width:370px){.exp-modal.modal-story-journal{padding:20px 12px 12px;gap:12px}.story-journal-entry{grid-template-columns:69px minmax(0,1fr) 16px;gap:9px;padding:9px;min-height:94px}.story-journal-entry img{width:69px;height:66px}.story-journal-entry strong{font-size:13px}.story-journal-heading{padding-left:3px}.story-journal-heading p{font-size:12px}}
@media(max-height:500px) and (min-aspect-ratio:4/3){.exp-modal.modal-story-journal{padding:13px 20px;gap:8px;max-height:100%;height:100%}.story-journal-heading h2{font-size:21px;margin:3px 0 4px}.story-journal-heading p{font-size:11px;line-height:1.4}.story-journal-heading>.exp-eyebrow{font-size:8px}.story-journal-list{grid-template-columns:1fr 1fr;gap:8px}.story-journal-entry{min-height:84px;grid-template-columns:70px minmax(0,1fr) 14px;gap:9px;padding:8px}.story-journal-entry img{width:70px;height:60px}.story-journal-entry strong{font-size:12px}.story-journal-entry small:last-child{font-size:9px}.modal-story-journal>.exp-screen-footer{padding-top:5px}}
.calm-motion .story-journal-entry{transition:none}
@media(prefers-reduced-motion:reduce){.story-journal-entry{transition:none}}

/* Keep illustrated settings in two bounded rows; a centred overflowing flex
   body previously placed its first controls underneath the artwork. */
.exp-modal.exp-illustrated:is(.modal-pause,.modal-settings){display:grid;align-items:stretch;justify-items:stretch;grid-template-columns:minmax(0,1fr);grid-template-rows:96px minmax(0,1fr);overflow:hidden}
.exp-modal.exp-illustrated:is(.modal-pause,.modal-settings)>.exp-location-art{grid-column:1;grid-row:1;min-height:0;height:100%;margin:0}
.exp-modal.exp-illustrated:is(.modal-pause,.modal-settings)>.exp-dialog-body{grid-column:1;grid-row:2;align-self:stretch;height:100%;max-height:100%;justify-content:flex-start;align-items:stretch;min-height:0;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain;padding:18px}
.exp-modal:is(.modal-pause,.modal-settings) .exp-pause-menu{width:100%;flex:none;gap:8px}
.exp-modal:is(.modal-pause,.modal-settings) .exp-pause-menu .exp-button,.exp-modal:is(.modal-pause,.modal-settings) .exp-pause-menu .exp-link{min-height:44px;padding:10px;font-size:12px;line-height:1.35}
.exp-modal:is(.modal-pause,.modal-settings) .exp-dialog-body>.exp-pause-menu:first-of-type>.exp-button:last-child{grid-column:1/-1}
.exp-modal:is(.modal-pause,.modal-settings) .game-preferences{flex:none;width:100%}
.exp-modal:is(.modal-pause,.modal-settings) .game-preferences button,.exp-modal:is(.modal-pause,.modal-settings) .game-preferences input{min-height:44px}
.exp-modal:is(.modal-pause,.modal-settings) .audio-credits-link{display:flex;align-items:center;min-height:44px}
@media(min-aspect-ratio:4/3){.exp-modal.exp-illustrated:is(.modal-pause,.modal-settings){grid-template-columns:minmax(140px,.55fr) minmax(0,1.45fr);grid-template-rows:minmax(0,1fr)!important}.exp-modal.exp-illustrated:is(.modal-pause,.modal-settings)>.exp-dialog-body{grid-column:2;grid-row:1}.exp-modal.exp-illustrated:is(.modal-pause,.modal-settings)>.exp-location-art{grid-column:1;grid-row:1}}
/* Route information is reachable by touch without crowding the map's dock. */
.exp-modal>.exp-icon-button{min-width:44px;width:44px;min-height:44px;height:44px;box-sizing:border-box}
.exp-path-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.exp-path-heading .exp-path-hint{min-width:0;white-space:normal}
.route-compare-button{flex:0 0 auto;min-height:44px;padding:6px 9px;border:1px solid #b8d5dc40;border-radius:9px;background:#152f3d;color:#d5ece8;font:inherit;font-size:11px;cursor:pointer}
.route-compare-button:disabled{opacity:.55}
.route-compare-button:focus-visible,.route-option-card:focus-visible{outline:2px solid #c0f8e6;outline-offset:2px}
.exp-modal.modal-route-options{width:min(650px,100%);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;justify-content:flex-start;align-items:stretch}
.route-options-list{display:grid;gap:10px;width:100%;text-align:left}
.route-option-card{display:flex;align-items:center;gap:12px;width:100%;min-height:92px;padding:14px;border:1px solid #bfd6d63b;border-left:3px solid var(--tile);border-radius:12px;background:#172e3b;color:#e7f4ef;font:inherit;text-align:left;cursor:pointer}
.route-option-card>span{display:grid;gap:7px;flex:1;min-width:0}
.route-option-card>.exp-icon{flex:0 0 22px;width:22px;height:22px;color:var(--tile)}
.route-option-card strong{font-size:16px;overflow-wrap:anywhere}
.route-option-card small{font-size:11px;color:#c2d6dc}
.route-option-card>span>span{font-size:13px;line-height:1.5;color:#c7dcd9}
.route-option-card:hover{background:#20434c;border-color:#bce9dd}
.modal-route-options>.exp-button{min-height:44px;position:sticky;bottom:-1px;background:#152b38;flex-shrink:0;z-index:2}
.exp-fighter-list .fighter-state{display:block;font-size:10px;line-height:1.4;margin-top:5px;color:#b9cecf}
.exp-fighter-list [aria-pressed=true] .fighter-state{color:#b9f5d5;font-weight:800}
.exp-fighter-list [aria-pressed=true]{border-color:#a8e6d2;box-shadow:inset 0 0 0 1px #a8e6d245}
.pack-source-label{font-size:10px!important;letter-spacing:.12em;line-height:1.5!important;color:#c3e2d8!important;margin:0 0 10px!important}
.pack-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.pack-experience:focus{outline:2px solid #b9eee085;outline-offset:3px;border-radius:12px}
@media(max-width:360px){.route-compare-button{font-size:10px;padding-inline:7px}.exp-path-heading{gap:4px}}
@media(max-height:480px){.route-option-card{min-height:80px;padding:10px}.route-option-card>span{gap:5px}.route-option-card>span>span{font-size:12px}}
