:root{
  --ink:#18120d;--bg:#100e0c;--panel:#201913;--panel2:#17120f;--line:#574436;
  --paper:#eadbc0;--muted:#b9a98e;--gold:#d5a052;--gold2:#f0c57b;--copper:#9b5d37;
  --good:#8ab480;--bad:#d57962;--water:#71aab2;--root:#8fa474;--asc:#c28b58;
  --shadow:0 20px 55px rgba(0,0,0,.42);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 20% 0,#2a2017 0,#100e0c 44%);color:var(--paper);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
button,.file-label{font:inherit;color:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.portrait-warning{display:none;background:#7b4e24;padding:8px;text-align:center;font-size:13px}

.prologue{position:fixed;inset:0;z-index:30;display:flex;align-items:flex-end;justify-content:center;padding:clamp(18px,5vw,64px);background:#111 url("map_background.png") 9% 88%/220% auto no-repeat}
.prologue-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,9,.12),rgba(8,7,6,.38) 38%,rgba(8,7,6,.94) 100%),radial-gradient(circle at 22% 78%,transparent 0,rgba(0,0,0,.42) 60%)}
.prologue-topline{position:absolute;z-index:1;left:clamp(18px,5vw,64px);right:clamp(18px,5vw,64px);top:clamp(18px,4vw,42px);display:flex;justify-content:space-between;letter-spacing:.16em;text-transform:uppercase;color:#f6e5c6;font-size:12px;text-shadow:0 2px 8px #000}
.prologue-card{position:relative;z-index:1;width:min(760px,100%);padding:clamp(22px,4vw,40px);border:1px solid rgba(231,196,140,.44);background:linear-gradient(145deg,rgba(33,26,20,.94),rgba(18,14,11,.97));box-shadow:var(--shadow);border-radius:3px}
.prologue-card .speaker{margin-bottom:10px}
.prologue-card h2{font-family:Georgia,"Songti SC",serif;font-size:clamp(25px,4vw,42px);font-weight:500;margin:6px 0 14px;color:#f6dfb8}
.prologue-card p{font-size:clamp(15px,2vw,18px);line-height:1.8;color:#e7dac5;margin:0 0 12px}

.app{min-height:100vh;padding:12px;display:flex;flex-direction:column;gap:10px}
.topbar{display:grid;grid-template-columns:240px minmax(280px,1fr) auto;align-items:center;gap:18px;padding:4px 4px 0}
.brand .eyebrow{display:block;font-size:10px;color:var(--muted);letter-spacing:.12em}
.brand h1{font:500 29px/1 Georgia,"Songti SC",serif;margin:4px 0;color:#f2dbb0;letter-spacing:.22em}
.chapter-progress{display:grid;grid-template-columns:auto minmax(120px,420px) auto;gap:10px;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}
.progress-track{height:4px;background:#382d25;border-radius:99px;overflow:hidden}
.progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--copper),var(--gold2));transition:width .5s ease}
.toolbar,.footer-tools>div{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.quiet,.file-label{min-height:38px;padding:8px 11px;border:1px solid #594638;border-radius:7px;background:#251c16;color:#d8c8ad;font-size:12px;font-weight:600}
.quiet:hover,.file-label:hover{border-color:#9a734d;background:#32241b}

.hud{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));gap:7px}
.hud-item{border:1px solid #46362b;background:linear-gradient(180deg,#241c16,#19130f);padding:7px 10px;border-radius:8px;text-align:left;min-height:54px}
.hud-item span{display:block;color:var(--muted);font-size:10px;margin-bottom:4px}
.hud-item b{font-size:16px;font-weight:650;font-style:normal;color:#f1dfc2}
.hud-item i{font-style:normal}
.hud-item.water b{color:#a6d1d4}
.hud-item.collection{cursor:pointer}

.workspace{display:grid;grid-template-columns:minmax(620px,1.45fr) minmax(360px,.75fr);gap:10px;flex:1;min-height:0}
.panel{border:1px solid var(--line);background:rgba(29,23,18,.96);border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.22);overflow:hidden}
.map-panel{display:flex;flex-direction:column;min-height:0}
.map-stage{position:relative;width:100%;aspect-ratio:2048/1158;background:#090807;overflow:hidden}
.map-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.03) brightness(.84);transition:filter .6s ease}
.map-stage.is-prologue>img{filter:saturate(.45) brightness(.48) blur(1px)}
.map-veil{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 25% 87%,transparent 0 18%,rgba(9,8,7,.72) 36%,rgba(9,8,7,.9) 100%);transition:opacity .7s ease}
.map-stage.reveal-all .map-veil{opacity:0}
.routes{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none}
.route{fill:none;stroke-linecap:round;opacity:.7;filter:drop-shadow(0 1px 1px #000)}
.route.locked{opacity:.12}
.railway,.mountain_railway,.highland_railway,.mine_railway{stroke:#d0a16c;stroke-width:5}
.road,.mine_road{stroke:#c3b18c;stroke-width:3.5}
.mountain,.mountain_path{stroke:#98908a;stroke-width:3.5;stroke-dasharray:8 7}
.engineering{stroke:#a47854;stroke-width:4.5;stroke-dasharray:12 7}
.mountain_water{stroke:#76b1bd;stroke-width:4.5;stroke-dasharray:8 5}
.node-wrap{position:absolute;z-index:4;transform:translate(-50%,-50%);display:flex;align-items:center;gap:5px}
.node{position:relative;width:30px;height:30px;min-height:0;padding:0;border-radius:50%;border:2px solid rgba(244,225,190,.58);background:rgba(29,34,34,.95);font-size:10px;font-weight:800;box-shadow:0 2px 7px #000}
.node-name{display:none;white-space:nowrap;padding:3px 5px;border-radius:4px;background:rgba(17,14,12,.88);font-size:10px;color:#eadcc4;pointer-events:none}
.node-wrap:hover .node-name,.node-wrap.current .node-name{display:block}
.node-wrap.locked{opacity:.18;pointer-events:none}
.node-wrap.current .node{background:var(--gold);color:#21150c;border-color:#fff3c7;box-shadow:0 0 0 5px rgba(213,160,82,.28),0 2px 8px #000}
.node-wrap.reachable .node{border-color:#fff1aa;box-shadow:0 0 0 3px rgba(255,239,158,.2),0 2px 8px #000}
.node-wrap.goal .node:after{content:"";position:absolute;inset:-8px;border:2px solid var(--gold2);border-radius:50%;animation:pulse 1.5s infinite}
.node-wrap.core .node{background:rgba(80,51,29,.96)}
.node-wrap.done .node{background:#50614a}
@keyframes pulse{50%{transform:scale(1.12);opacity:.38}}
.map-pulse{position:absolute;z-index:5;width:16px;height:16px;border:2px solid #ffdda0;border-radius:50%;transform:translate(-50%,-50%);animation:mapEcho 1.1s ease-out forwards;pointer-events:none}
@keyframes mapEcho{to{width:130px;height:130px;opacity:0}}
.map-footer{display:flex;justify-content:space-between;gap:12px;padding:8px 11px;color:var(--muted);font-size:11px;border-top:1px solid #49382c}
.legend{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 4px 0 9px;background:#6d7774}
.legend.current{background:var(--gold)}.legend.reachable{border:1px solid #fff1aa}.legend.core{background:#744a2d}

.story-panel{display:flex;flex-direction:column;min-height:580px}
.story-tabs{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid #49382d;background:#19130f}
.story-tabs button{border:0;border-right:1px solid #3e3027;background:transparent;color:#9f917b;min-height:42px;font-weight:700}
.story-tabs button.active{color:#f0d6a9;background:#2b2018;box-shadow:inset 0 -2px var(--gold)}
.tab-view{padding:15px;overflow:auto;flex:1}
.scene-kicker{display:flex;justify-content:space-between;gap:10px;color:var(--gold2);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.scene-title{font:500 25px/1.25 Georgia,"Songti SC",serif;color:#f2dfbd;margin:0 0 12px}
.speaker{display:flex;align-items:center;gap:9px;margin:11px 0 7px}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#795033,#3f2c20);border:1px solid #b48252;color:#ffe8bf;font:700 14px Georgia,serif;flex:none}
.speaker b{display:block;font-size:13px}.speaker small{display:block;color:var(--muted);font-size:10px;margin-top:1px}
.dialogue{border-left:2px solid var(--copper);padding:8px 0 8px 12px;color:#f0e2ce;font-size:14px;line-height:1.65;margin-bottom:10px}
.narrative{color:#cfbea3;font-size:13px;line-height:1.7;margin:8px 0 12px}
.history-note{display:grid;grid-template-columns:auto 1fr;gap:8px 11px;align-items:start;margin:10px 0 12px;padding:9px 10px;border:1px solid #57452e;border-radius:8px;background:linear-gradient(145deg,rgba(92,65,37,.2),rgba(24,19,15,.78));font-size:11px;line-height:1.55;color:#c9b99e}
.history-note b{color:#e4bd7d;white-space:nowrap;font-size:10px;letter-spacing:.07em}
.history-note span{min-width:0}
.stakes{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:11px 0}
.stake{background:#18130f;border:1px solid #433329;border-radius:7px;padding:8px;font-size:11px;line-height:1.45;color:#c7b79d}
.stake b{display:block;color:#e5c88f;margin-bottom:3px;font-size:10px;letter-spacing:.08em}.stake.risk b{color:#dc9c89}
.evidence-row,.change-row,.chip-row{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}
.chip{font-size:10px;padding:4px 7px;border-radius:99px;background:#33271f;border:1px solid #5a4333;color:#d8c6a8}
.chip.good{border-color:#61745b;color:#b9d5b4}.chip.bad{border-color:#875346;color:#e6aa99}.chip.water{border-color:#4f7e85;color:#a9d2d6}
.choice-list{display:grid;gap:7px;margin-top:13px}
.choice{display:grid;grid-template-columns:1fr auto;gap:6px 12px;text-align:left;padding:10px 11px;border:1px solid #5a4434;border-radius:8px;background:linear-gradient(160deg,#2c2018,#1c1612);color:#eadac0;min-height:58px}
.choice:hover{border-color:#b78650;background:#35261c;transform:translateY(-1px)}
.choice strong{font-size:13px}.choice small{grid-column:1/2;color:#ad9d85;line-height:1.4}.choice em{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font-size:10px;color:#e1bc7b;border:1px solid #6f543a;border-radius:99px;padding:3px 6px}
.choice.primary{border-color:#b47b42;background:linear-gradient(155deg,#5b3b24,#2b1e16)}
.scene-note{margin-top:10px;color:#9e907c;font-size:10px}
.outcome{padding:12px;border:1px solid #5b4c37;background:#1b2119;border-radius:8px;margin-top:12px}
.outcome.bad{border-color:#70463c;background:#261815}.outcome h3{margin:0 0 6px;font-size:14px}.outcome p{margin:0;color:#d3c5ae;font-size:12px;line-height:1.55}
.continue-btn{width:100%;margin-top:10px;min-height:42px;border:1px solid #a97842;background:#5b3c25;color:#ffe9c4;border-radius:7px;font-weight:800}

.thread-card,.person-card,.log-line,.collection-card{padding:9px 10px;border:1px solid #423329;border-radius:8px;background:#18130f;margin-bottom:7px}
.thread-card header,.person-card header{display:flex;justify-content:space-between;gap:8px;align-items:center}
.thread-card b,.person-card b{font-size:12px}.thread-card p,.person-card p{color:#a99b86;font-size:11px;line-height:1.5;margin:5px 0 0}
.thread-card.done{border-color:#526249}.thread-card.locked{opacity:.52}
.person-meter{display:flex;gap:3px}.person-meter i{width:7px;height:7px;border-radius:50%;background:#45362c}.person-meter i.on{background:var(--gold)}
.person-card{padding:11px}.person-card .person-background{color:#c9b89e;margin:8px 0 9px}.person-detail{display:grid;grid-template-columns:58px 1fr;gap:8px;padding-top:6px;margin-top:6px;border-top:1px solid #392c23;font-size:10px;line-height:1.45}.person-detail b{color:#c69a61;font-size:9px}.person-detail span{color:#9f907b}
.person-memory{padding-top:8px;margin-top:8px;border-top:1px solid #392c23}.person-memory>b{display:block;color:#c69a61;font-size:9px;margin-bottom:6px}.person-memory>div{display:flex;flex-wrap:wrap;gap:5px}.person-memory span{font-size:9px;color:#cbb99d;border:1px solid #4e3a2b;background:#211811;border-radius:99px;padding:3px 6px}
.thread-card.preparation{border-color:#9a6d3e;background:linear-gradient(145deg,#2a1e14,#1a1510)}
.era-card{border:1px solid #4c3a2d;border-radius:10px;background:#18130f;margin-bottom:10px;overflow:hidden}.era-card>header{padding:11px 12px;background:linear-gradient(145deg,#2b2017,#1d1611);border-bottom:1px solid #3c2e24}.era-card>header>div{display:flex;justify-content:space-between;gap:10px;align-items:center}.era-card>header b{font:500 16px Georgia,"Songti SC",serif;color:#ead3aa}.era-card>header span{font-size:9px;color:#c79a61}.era-card>header p{font-size:10px;line-height:1.5;color:#a89983;margin:5px 0 0}.era-card.locked{opacity:.56}.era-insights{display:grid;gap:0}.era-insights article{padding:10px 12px;border-bottom:1px solid #33271f}.era-insights article:last-child{border-bottom:0}.era-insights small{display:block;color:#947d63;font-size:8px;margin-bottom:3px}.era-insights b{display:block;color:#d9c6a6;font-size:11px}.era-insights p{color:#a99b86;font-size:10px;line-height:1.55;margin:4px 0 0}.era-empty{padding:15px 12px;color:#897b68;font-size:10px}
.log-line{font-size:11px;line-height:1.45;color:#bfae93}.log-line time{color:#766a5b;margin-right:5px}.log-line.good{border-left:2px solid var(--good)}.log-line.bad{border-left:2px solid var(--bad)}
.empty{color:#9a8c78;font-size:12px;text-align:center;padding:34px 12px}

.expedition-card{border:1px solid #5a4434;background:#17120f;border-radius:9px;padding:10px;margin:10px 0}
.depth-track{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0}.depth-track span{height:5px;background:#3b2d24;border-radius:9px}.depth-track span.on{background:linear-gradient(90deg,#8f5c35,#e3b469)}
.loot-list{display:flex;gap:5px;flex-wrap:wrap;min-height:27px}.loot-item{font-size:10px;border:1px solid #6d523c;padding:4px 6px;background:#302219;border-radius:4px}

.footer-tools{display:flex;justify-content:space-between;align-items:center;color:#756a5b;font-size:10px;padding:0 4px}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:rgba(6,5,4,.78);backdrop-filter:blur(8px)}
.modal-card{width:min(600px,100%);max-height:min(760px,92vh);overflow:auto;border:1px solid #8e6746;background:linear-gradient(145deg,#2c2018,#15110e);border-radius:12px;box-shadow:var(--shadow);padding:20px}
.reveal{text-align:center;padding:18px}.reveal .rarity{color:#ffd88d;letter-spacing:.14em;font-size:16px}.reveal h2{font:500 30px Georgia,"Songti SC",serif;color:#f3dfbd;margin:10px 0}.reveal .specimen-glyph{width:126px;height:126px;margin:14px auto;border-radius:52% 42% 49% 39%;background:radial-gradient(circle at 38% 32%,#bfe0ca 0,#4e9d7e 12%,#1c4a42 35%,#15211e 64%,#0e0b09 70%);box-shadow:0 0 48px rgba(84,180,143,.34),inset -14px -18px 26px rgba(0,0,0,.55);transform:rotate(-8deg);animation:revealIn .7s cubic-bezier(.2,.8,.2,1)}
.specimen-reveal .mineral-swatch{width:170px;height:140px;margin:10px auto 14px}.specimen-reveal .fact-pairs{text-align:left;margin:14px 0}
@keyframes revealIn{from{transform:scale(.6) rotate(-20deg);opacity:0}}
.toast{position:fixed;z-index:70;left:50%;bottom:28px;transform:translateX(-50%);padding:10px 16px;background:#2b2119;border:1px solid #9b744e;border-radius:99px;color:#f2dfbd;box-shadow:0 8px 24px #000;font-size:12px}

/* D20 */
.dice-overlay{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px;background:radial-gradient(circle at 50% 42%,rgba(63,43,27,.72),rgba(5,4,3,.94));backdrop-filter:blur(10px)}
.dice-card{width:min(640px,96vw);border:1px solid #a77947;border-radius:16px;background:linear-gradient(155deg,#302116 0,#17110d 62%,#0f0c09 100%);box-shadow:0 26px 90px rgba(0,0,0,.72),inset 0 1px rgba(255,222,168,.12);padding:18px 20px 20px;overflow:hidden}
.dice-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dice-heading h2{font:500 28px/1.1 Georgia,"Songti SC",serif;color:#f5dfb9;margin:5px 0 0}.dice-context{color:#c99a5b;font-size:10px;letter-spacing:.12em}.dice-target{border:1px solid #8d673f;border-radius:99px;padding:6px 10px;color:#f1c887;background:#21170f;font:700 13px Georgia,serif}
.dice-stage{position:relative;height:min(44vh,410px);min-height:280px;display:grid;place-items:center;margin:2px 0 0;cursor:pointer;user-select:none;background:radial-gradient(ellipse at 50% 78%,rgba(115,61,31,.19),transparent 45%)}.dice-stage:after{content:"";position:absolute;inset:8% 11% 8%;border:1px solid rgba(178,104,55,.12);border-radius:50%;box-shadow:inset 0 0 58px rgba(114,57,27,.13);pointer-events:none}.dice-stage canvas{display:block;width:100%;height:100%;position:relative;z-index:1;filter:drop-shadow(0 20px 19px rgba(0,0,0,.5))}.dice-stage canvas.dice-impact{animation:diceImpact .34s cubic-bezier(.2,.8,.2,1)}
.dice-prompt{position:absolute;z-index:3;bottom:6px;color:#a99577;font-size:11px;letter-spacing:.05em}.dice-prompt.settled{color:#c69d7a}.dice-face-result{position:absolute;z-index:4;top:14px;right:14px;padding:6px 10px;border:1px solid #75513c;border-radius:99px;background:rgba(25,14,9,.82);font:800 13px/1.1 Georgia,serif;color:#cba481;box-shadow:0 4px 16px rgba(0,0,0,.35),inset 0 1px rgba(255,215,164,.1);pointer-events:none;animation:diceNumberIn .3s cubic-bezier(.2,.9,.2,1)}
@keyframes diceNumberIn{from{transform:translateY(-5px) scale(.86);opacity:0}}
@keyframes diceImpact{0%{transform:translateY(-8px) scale(1.025)}45%{transform:translateY(5px) scale(.985)}75%{transform:translateY(-2px) scale(1.008)}100%{transform:none}}
.dice-formula{display:flex;align-items:center;justify-content:center;gap:8px;margin:2px auto 12px}.dice-formula span{min-width:88px;border:1px solid #4c3829;border-radius:8px;background:#18110d;padding:7px 10px;text-align:center}.dice-formula b{display:block;color:#8f806b;font-size:9px;margin-bottom:2px}.dice-formula i{display:block;color:#f0d6a8;font:700 20px Georgia,serif;font-style:normal}.dice-formula em{font-style:normal;color:#77634c;font-size:16px}
.dice-verdict{text-align:center;border:1px solid #5c6e51;background:#192018;border-radius:8px;color:#c6dda9;padding:9px;font-weight:800;margin-bottom:10px}.dice-verdict.excellent{border-color:#ba8d46;color:#ffe2a2;background:#2b2111}.dice-verdict.limited{border-color:#8a7147;color:#e4c58d;background:#251e14}.dice-verdict.failure{border-color:#874c3f;color:#efad9c;background:#2b1713}
.dice-roll-btn,.dice-continue-btn{width:100%;min-height:48px;border-radius:8px;border:1px solid #c28c4d;background:linear-gradient(180deg,#86552e,#5b351f);color:#fff0cc;font-weight:800;font-size:14px;box-shadow:0 5px 16px rgba(0,0,0,.28)}.dice-roll-btn:hover,.dice-continue-btn:hover{filter:brightness(1.12)}.dice-roll-btn:disabled{opacity:.65;cursor:wait}

/* 标本馆与资料卡 */
.modal.museum-modal .modal-card{width:min(980px,96vw);max-height:94vh;padding:0;background:#15110e;border-color:#8a6442}
.museum-shell{min-height:min(720px,88vh);display:flex;flex-direction:column}.museum-header{display:grid;grid-template-columns:1fr auto;gap:10px;padding:20px 22px 15px;border-bottom:1px solid #473528;background:radial-gradient(circle at 12% 0,rgba(95,126,101,.18),transparent 38%),linear-gradient(150deg,#2c2017,#18120e)}.museum-header h2{font:500 30px/1.15 Georgia,"Songti SC",serif;color:#f2dfbd;margin:4px 0}.museum-header p{margin:0;color:#b3a38c;font-size:11px}.museum-close{align-self:start;width:34px;height:34px;min-height:0;border-radius:50%;padding:0;border:1px solid #594333;background:#1b1511;color:#d8c4a5;font-size:18px}.museum-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #473528;background:#17120e}.museum-tabs button{border:0;border-right:1px solid #35271f;background:transparent;color:#998a74;min-height:44px;font-weight:750}.museum-tabs button.active{color:#f0d3a2;background:#2a1f18;box-shadow:inset 0 -2px #c48b48}.museum-body{padding:17px 20px 22px;overflow:auto;flex:1}
.museum-hero{display:grid;grid-template-columns:minmax(220px,.72fr) 1.28fr;gap:14px;margin-bottom:16px}.museum-tier,.museum-summary{border:1px solid #49382c;border-radius:10px;background:#1b1511;padding:14px}.museum-tier small{color:#9f8f78}.museum-tier h3{font:500 22px Georgia,"Songti SC",serif;margin:5px 0;color:#ead5af}.museum-progress{height:6px;background:#352920;border-radius:99px;overflow:hidden;margin:10px 0 6px}.museum-progress i{display:block;height:100%;background:linear-gradient(90deg,#6d8d72,#d2a35d)}.museum-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-content:center}.museum-stat{text-align:center;border-right:1px solid #3e3027}.museum-stat:last-child{border:0}.museum-stat b{display:block;font:700 25px Georgia,serif;color:#ead2a7}.museum-stat span{font-size:10px;color:#998a75}
.museum-shelves{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:9px}.museum-item{position:relative;min-height:168px;border:1px solid #49372c;border-radius:10px;background:linear-gradient(165deg,#251b15,#17120e);padding:9px;text-align:left;overflow:hidden}.museum-item:hover{border-color:#987047;transform:translateY(-1px)}.mineral-swatch{height:86px;border-radius:7px;margin-bottom:9px;background:radial-gradient(circle at 38% 30%,#d7c9a7,#648b77 24%,#171411 62%);background:radial-gradient(circle at 38% 30%,color-mix(in srgb,var(--mineral) 72%,white),var(--mineral) 24%,#171411 62%);box-shadow:inset -13px -12px 22px rgba(0,0,0,.45),0 7px 18px rgba(0,0,0,.2);clip-path:polygon(12% 30%,35% 9%,69% 13%,91% 37%,81% 83%,48% 96%,11% 78%,2% 51%)}.museum-item strong{display:block;color:#e9d7ba;font-size:12px}.museum-item small{display:block;color:#9d8e79;margin-top:4px;font-size:9px}.museum-item .rarity{position:absolute;top:13px;right:13px;color:#ffe09a;font-size:10px;text-shadow:0 1px 4px #000}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:9px}.catalog-card{border:1px solid #46362b;border-radius:9px;background:#1b1511;padding:11px;text-align:left;min-height:125px}.catalog-card:hover{border-color:#987047}.catalog-card.locked{opacity:.48;filter:saturate(.25)}.catalog-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.catalog-card b{font-size:12px;color:#e9d7ba}.catalog-card span{font-size:9px;color:#c79b62}.catalog-card p{color:#a99a84;font-size:10px;line-height:1.5;margin:8px 0 0}.catalog-nodes{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.catalog-nodes i{font-style:normal;font-size:8px;border:1px solid #534033;border-radius:99px;padding:2px 5px;color:#9d8b73}
.fact-card{display:grid;grid-template-columns:210px 1fr;gap:18px}.fact-visual{border:1px solid #4d3a2d;border-radius:12px;background:#1a1410;padding:13px}.fact-visual .mineral-swatch{height:190px}.fact-visual h2{font:500 25px Georgia,"Songti SC",serif;color:#f1ddb8;margin:10px 0 3px}.fact-visual p{color:#a9977d;font-size:10px;margin:0}.fact-content{display:grid;gap:9px}.fact-section{border-bottom:1px solid #3c2e25;padding:0 0 9px}.fact-section:last-child{border:0}.fact-section h3{font-size:10px;letter-spacing:.1em;color:#c79a5f;margin:0 0 5px}.fact-section p{color:#c8b79d;font-size:12px;line-height:1.65;margin:0}.fact-pairs{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.fact-pair{background:#1d1712;border:1px solid #3e3027;border-radius:7px;padding:8px}.fact-pair b{display:block;color:#8f806b;font-size:9px}.fact-pair span{display:block;color:#dfc9a7;font-size:11px;margin-top:3px}.back-btn{border:1px solid #5a4434;background:#251b15;color:#d6c1a0;border-radius:7px;padding:7px 10px;margin-bottom:12px}

@media(max-width:760px){.museum-hero{grid-template-columns:1fr}.museum-shelves,.catalog-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.fact-card{grid-template-columns:1fr}.fact-visual{display:grid;grid-template-columns:140px 1fr;gap:12px}.fact-visual .mineral-swatch{height:130px;margin:0}.dice-card{padding:14px}.dice-stage{min-height:230px}.dice-face-result{font-size:68px}}

@media(max-width:1050px){.topbar{grid-template-columns:190px 1fr}.toolbar{grid-column:1/-1;justify-content:flex-end}.workspace{grid-template-columns:minmax(540px,1.3fr) minmax(340px,.7fr)}}
@media(max-width:850px){.workspace{grid-template-columns:1fr}.story-panel{min-height:620px}.hud{grid-template-columns:repeat(3,1fr)}.topbar{grid-template-columns:1fr}.chapter-progress{grid-template-columns:auto 1fr auto}.toolbar{justify-content:flex-start}.map-footer{flex-direction:column}.map-stage{min-height:310px}.node-name{display:none!important}}
@media(orientation:portrait) and (max-width:850px){.portrait-warning{display:block}.app{padding:8px}.prologue{padding:18px}.story-panel{min-height:560px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
