/* Camp journals and inventory. Terrain and map styling are deliberately untouched. */
.story-book{min-width:0;border:1px solid #68736c;background:#202b2d;border-radius:6px;overflow:hidden}
.story-library-grid .story-book>button{width:100%;border:0;border-radius:0;margin:0}
.story-library-grid .story-read-text{min-height:44px;display:block;font-size:14px;color:#ebd6a6;background:#162224;border-top:1px solid #59675d}
.story-library-grid .story-intro{grid-column:1/-1;min-height:54px;display:block;text-align:center;background:#29292a;border-color:#958264}
.story-prose{max-width:740px;align-self:center;width:100%;box-sizing:border-box;margin:10px auto 20px;padding:clamp(18px,4vw,42px);border:1px solid #736750;background:linear-gradient(135deg,#24272a,#192125);box-shadow:0 16px 50px #0005;color:#e7dfcc;text-align:left}
.story-prose p{font-family:ui-serif,"Noto Serif CJK SC","Songti SC",serif;font-size:clamp(17px,2vw,19px);line-height:2;margin:0 0 1.2em;overflow-wrap:anywhere}
.story-prose p:first-child{color:#f3d9a9}.story-prose p:last-child{margin-bottom:0}
.story-prose[hidden]{display:none!important}
.story-shell:has(.story-prose:not([hidden])){display:flex;max-width:850px}.story-shell:has(.story-prose:not([hidden])) .story-header{position:sticky;top:-10px;background:#0b1118;padding:10px 0;z-index:1}
.stash-toolbar{text-align:left;margin:14px 0 18px}.stash-filters{display:flex;gap:6px;flex-wrap:wrap}
.stash-filters button{min-height:42px;padding:8px 12px;font-size:14px;background:#172d2e;border:1px solid #526661;border-radius:6px}
.stash-filters button[aria-pressed=true]{color:#19282b;background:#d2b77f;border-color:#f0d6a5;font-weight:700}
.stash-filters [data-quality="2"]{border-bottom-color:#91cba6}.stash-filters [data-quality="3"]{border-bottom-color:#87bce8}.stash-filters [data-quality="4"]{border-bottom-color:#c4a0f0}.stash-filters [data-quality="5"]{border-bottom-color:#f2cc79}
.stash-tools{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.stash-tools select,.stash-tools button{font-size:14px;min-height:42px;padding:8px 12px;border:1px solid #59716b;background:#12282b;color:#e1dec7;border-radius:5px}
.stash-summary,.stash-feedback{font-size:13px;line-height:1.8;color:#b9c8bc;margin:7px 0}.stash-feedback:empty{display:none}.stash-feedback{color:#cde9b5}
#stash-bulk-sell{min-height:46px;background:#503c30;color:#f0d3a6;border:1px solid #a48960;font-size:15px;padding:10px 16px;width:100%;border-radius:6px}
.stash-select-item{display:flex;gap:12px;align-items:center;cursor:pointer}.stash-select-item input{appearance:auto;width:21px;height:21px;min-width:21px;accent-color:#dfc284;margin:0}
.stash-info{min-width:0}.stash-info strong{overflow-wrap:anywhere}.stash-protection{display:inline-block;margin:7px 0 0 33px;padding:2px 8px;background:#91a7931a;color:#cccca9;border-radius:4px;font-size:12px}
.stash-actions [aria-pressed=true]{color:#ead191;border-color:#ac9054;background:#63513366}
.stash-confirm{background:#372b32;border:1px solid #c59488;border-radius:7px;padding:16px;margin-top:12px}.stash-confirm p{font-size:14px;line-height:1.8;color:#e1ccbf}.stash-confirm strong{color:#ffd3a4}.stash-confirm button{min-height:44px;margin:6px 8px 0 0;font-size:14px}.stash-confirm[hidden]{display:none!important}
.codex-overlay{position:fixed;inset:0;z-index:2100;overflow:auto;overscroll-behavior:contain;background:#0b1219fa;color:#e8dfcb;padding:clamp(12px,3vw,32px);padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));box-sizing:border-box;touch-action:manipulation}
.codex-overlay[hidden],.codex-detail[hidden],.codex-grid[hidden],.codex-overlay select[hidden],.codex-overlay p[hidden]{display:none!important}
.codex-shell{max-width:1130px;margin:0 auto}.codex-head{position:sticky;top:-1px;z-index:2;display:flex;justify-content:space-between;gap:18px;align-items:center;background:#0b1219f5;border:0;border-bottom:1px solid #596057;padding:14px 0;margin-bottom:18px;backdrop-filter:blur(8px)}
.codex-head small{font-size:12px;letter-spacing:3px;color:#b8a37e}.codex-head h2{font-family:serif;font-size:clamp(24px,4vw,34px);margin:7px 0 0;letter-spacing:3px;color:#ead8b6}.codex-head button{min-height:44px;white-space:nowrap;font-size:14px;background:#252c31;color:#e4d6bb;border:1px solid #8a7d64;padding:10px 17px;border-radius:5px}
.codex-intro,.codex-score{font-size:14px;line-height:1.8;color:#afbbb8;margin:12px 0}.codex-score{color:#d6c69f}
.codex-shell>select{min-height:44px;max-width:100%;width:290px;background:#202d34;border:1px solid #667773;color:#e8ddc4;padding:8px 12px;font-size:16px;border-radius:5px}
.codex-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:18px 0 24px}
.codex-card{min-width:0;padding:0 0 14px;background:#1a252d;border:1px solid #5c645e;border-radius:7px;overflow:hidden;display:flex;flex-direction:column;text-align:left;gap:6px;transition:border-color .15s,transform .15s}
.codex-card:not(:disabled):hover{border-color:#d2ba8c;transform:translateY(-3px)}.codex-card:disabled{cursor:default;opacity:.62}
.codex-card canvas{display:block;width:100%;height:auto;margin:0 0 7px;border-bottom:1px solid #536259}
.codex-card strong{font:600 17px serif;color:#e7d5b7;margin:0 11px}.codex-card small{color:#aabeb7;font-size:11px;margin:0 11px}.codex-card span{font-size:11px;color:#b5bcae;margin:2px 11px 0}
.codex-detail{display:grid;grid-template-columns:minmax(250px,.83fr) minmax(0,1.4fr);gap:26px;margin:24px 0}.codex-visual{align-self:start;position:sticky;top:112px;background:#17222c;border:1px solid #687167;border-radius:8px;overflow:hidden;text-align:center}.codex-visual canvas{width:100%;height:auto;display:block}.codex-visual small{color:#cbb78d;font-size:13px}.codex-visual p{color:#a9bbb9;font-size:14px;margin:9px 0 20px}
.codex-basis{margin-top:0;color:#c6b88f;line-height:1.7;font-size:14px}.codex-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#596456;border:1px solid #596456;margin:10px 0 14px}.codex-stats>div{padding:13px 15px;background:#1b2930;min-width:0}.codex-stats dt{color:#b4c0b8;font-size:12px;margin:0 0 8px}.codex-stats dd{color:#e9d8b5;font-size:clamp(16px,2vw,21px);line-height:1.4;margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.codex-note{font-size:12px;line-height:1.8;color:#a5b3b2}.codex-description h3{font:600 20px serif;margin:26px 0 12px;color:#e4c994;border-bottom:1px solid #5b635b;padding-bottom:10px}.codex-skill{padding:12px 15px;margin-bottom:8px;border-left:3px solid #968477;background:#222b31}.codex-skill h4{margin:0 0 7px;color:#e0cfae;font-size:16px}.codex-skill p,.codex-tip{font-size:15px;line-height:1.85;margin:0;color:#c9d1c7}.codex-tip{margin:10px 0;padding-left:15px;border-left:2px solid #7fa49c}
.codex-overlay button:focus-visible,.codex-overlay select:focus-visible,.stash-toolbar button:focus-visible{outline:3px solid #edd9ad;outline-offset:3px}
.codex-open{overflow:hidden}.codex-open #touch{visibility:hidden!important}body.game-live #bestiary-open{display:none}
.bestiary-unlock{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1300;padding:10px 17px;background:#162a32ed;border:1px solid #c2ab7d;border-radius:6px;color:#f0d7a2;font-size:14px;max-width:80%;text-align:center;pointer-events:none;box-shadow:0 5px 25px #0006}.bestiary-unlock[hidden]{display:none}
@media(max-width:850px){.codex-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.codex-detail{gap:16px;grid-template-columns:minmax(210px,.8fr) minmax(0,1.2fr)}}
@media(max-width:600px){.codex-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.codex-detail{display:block}.codex-visual{position:static;width:min(100%,340px);margin:0 auto 20px}.codex-visual canvas{max-height:350px;object-fit:contain}.codex-head{padding:10px 0}.codex-head h2{font-size:23px;letter-spacing:2px}.codex-head small{font-size:11px;letter-spacing:1px}.codex-head button{padding:8px 12px}.codex-description{width:100%}.stash-tools{display:grid;grid-template-columns:1fr 1fr}.stash-tools select{grid-column:1/-1}.stash-actions{padding-left:33px;box-sizing:border-box}.bestiary-unlock{bottom:auto;top:88px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.codex-card{transition:none}.codex-card:not(:disabled):hover{transform:none}}

.codex-tabs{display:flex;gap:12px;margin:16px 0}.weapon-codex-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.weapon-codex-card{border:1px solid var(--weapon-color);border-radius:12px;background:#101d23;padding:18px}.weapon-codex-card h3{color:var(--weapon-color);font-size:21px}.weapon-codex-card p{font-size:14px;line-height:1.65}.weapon-codex-card .codex-stats{grid-template-columns:1fr 1fr}
