@charset "UTF-8";
:root{color-scheme:light;--bg:#eeece4;--panel:#faf8f1;--line:#d3d7c9;--muted:#5b6c61;--text:#273e34;--lime:#315e4c;--orange:#af542b;--red:#a03f36;--blue:#276d8a;--purple:#705189;--green:#366e53;--paper:#f4eedf;--accent:#b7562d;--ink:#233a31}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(#79826c12 .6px,transparent .6px);background-size:5px 5px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0;transition:background .15s,box-shadow .15s,transform .15s}button:disabled{cursor:not-allowed}button:not(:disabled):active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c5743c;outline-offset:3px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}img{display:block;max-width:100%}.ui-icon{display:block;width:24px;height:24px;flex-shrink:0}[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.topbar{min-height:78px;background:#263c35;color:#faf5e6;padding:12px max(28px,calc((100vw - 1460px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:4px solid #cc8e59}.brand{display:flex;align-items:center;gap:13px}.brand-mark{display:flex;justify-content:center;align-items:center;width:46px;height:50px;color:#253d32;background:#f4d9a4;transform:rotate(-6deg);border-radius:8px 3px 8px 3px;box-shadow:3px 3px 0 #132b2240}.brand-mark .ui-icon{width:30px;height:30px}.brand-title{font-size:22px;font-weight:800;letter-spacing:1px;line-height:1.4}.brand-en{display:block;font-size:12px;letter-spacing:2px;color:#c9d4c3;font-weight:400;margin-top:3px}.header-right{display:flex;align-items:center;gap:20px}.connection{font-size:13px;color:#d5dfcc}.connection i,.live-dot{display:inline-block;width:7px;height:7px;background:#b4cb8a;border-radius:50%;margin-right:7px}.icon-button{background:transparent;color:#f0eddd;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%}.icon-button:hover{background:#ffffff12}.subtle-button{display:flex;align-items:center;gap:8px;background:#ffffff0d;border:1px solid #b9c9b451;border-radius:6px;color:#eeeede;padding:9px 13px;font-size:14px;min-height:44px}.subtle-button .ui-icon{width:18px;height:18px}
main{max-width:1520px;margin:auto;padding:26px 32px 0}.intro{position:relative;isolation:isolate;min-height:185px;border-radius:10px;overflow:hidden;margin-bottom:25px;display:flex;align-items:center;padding:26px 32px;box-shadow:0 7px 20px #24382d14;background:#293e36;color:#fff6e0}.intro-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 54%;z-index:-2}.intro:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#14251d9c,transparent 75%);z-index:-1}.intro-copy{max-width:70%}.eyebrow{font-size:12px;font-weight:500;letter-spacing:1px;color:var(--muted)}.intro .eyebrow{color:#e8d9b5;background:#162a2066;padding:5px 9px;border-radius:4px;display:inline-block}h1{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:clamp(26px,2.6vw,38px);font-weight:800;line-height:1.5;letter-spacing:1px;margin:8px 0 4px}h1 span{color:#f6d79c;margin-left:2px}.intro p{font-size:14px;color:#f1ead8;text-shadow:0 1px 3px #000}.world-clock{position:absolute;right:24px;bottom:23px;text-align:right;background:#1d352be3;padding:10px 16px;border:1px solid #b3c4a64d;border-radius:6px}.day{font-variant-numeric:tabular-nums;font-size:25px;line-height:1.5}.day b{font-size:30px;color:#f7d7a1}.day span{font-size:13px}.clock-detail{font-size:12px;color:#d2dcc7}
.game-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 265px;gap:22px;align-items:start}.left-column,.center-column,.right-column{display:flex;flex-direction:column;gap:20px;min-width:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 8px #36413105;overflow:hidden}.panel-heading{padding:18px 18px 0;display:flex;justify-content:space-between;align-items:center;gap:8px}.panel-heading h2{font-size:16px;font-weight:700;display:flex;align-items:center;gap:6px;line-height:1.5}.panel-heading h2 .ui-icon{width:19px;height:19px}.tiny{font-size:12px;color:var(--muted);white-space:nowrap}.identity{display:flex;align-items:center;gap:12px;padding:20px 18px}.avatar{flex-shrink:0;width:66px;height:77px;transform:rotate(-4deg);border:4px solid #fffdf4;box-shadow:0 2px 6px #23352927;overflow:hidden;border-radius:3px}.avatar img{width:100%;height:100%;object-fit:cover}.identity h3{font-size:16px;font-weight:700}.status-label{font-size:12px;color:var(--green)}.identity p{font-size:12px;color:var(--muted);margin-top:4px}.vitals{padding:0 18px;display:grid;gap:18px}.vital-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.vital-title{display:flex;align-items:center;gap:7px;font-size:14px}.symbol{color:var(--vital-color)}.symbol .ui-icon{width:20px;height:20px}.vital-number{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.vital-number span{font-size:12px;color:var(--muted);font-weight:400}.bar{height:8px;border-radius:4px;background:#deded0;overflow:hidden}.bar>i{display:block;height:100%;width:var(--value);background:var(--vital-color);border-radius:4px;transition:width .3s}.survival-warning{font-size:12px;color:var(--red);margin:14px 18px 0}.survival-warning:empty{display:none}.inventory-line{padding:14px 18px;background:#e9eddf;display:flex;justify-content:space-between;align-items:center;margin-top:20px;font-size:14px}.inventory-line strong{font-size:19px;color:#385743}.supply-panel{background:#f3eedf}.supplies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:15px 14px}.supply{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-height:91px;background:#fffcf488;border:1px solid #d6d0bd;border-radius:6px;padding:8px 3px}.supply .glyph{width:53px;height:53px}.supply-count{position:absolute;z-index:1;right:4px;top:1px;font-size:13px;font-weight:700;color:#485842}.supply-name{font-size:13px}.supply:disabled{background:#e8e6dc;color:#677065;border-style:dashed}.supply:disabled .glyph{filter:saturate(.5)}.supply:not(:disabled):hover{background:#fff7df;box-shadow:0 0 0 2px #b7834c44}.workbench{background:#e7dbc2;display:flex;align-items:center;gap:8px;width:100%;padding:13px 15px;font-size:14px;border-top:1px solid #d3c7ac;text-align:left;min-height:48px}.workbench .ui-icon{width:20px;height:20px}.workbench span:last-child{margin-left:auto}.mutation-panel{background:#f0edf2;border-color:#d7cedc}.mutation-panel h2{color:#624976}#mutations{padding:17px 18px}.mutation-empty{display:flex;gap:12px;align-items:center;font-size:14px}.mutation-empty strong{font-weight:500}.mutation-empty p{font-size:12px;color:var(--muted);margin-top:6px}.mutation-seal{font-size:33px;color:#907c9e}.mutation-row{display:flex;gap:11px;align-items:center;padding:7px 0;font-size:14px;color:#624976}.mutation-row .glyph{width:35px;height:35px}.save-note{font-size:12px;text-align:center;color:var(--muted);padding:0 4px}
.map-panel{background:#f5f1e6;border-color:#c9c9b6;position:relative}.map-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 12px;gap:12px}.map-header h2{display:flex;align-items:center;gap:9px;font-size:23px;letter-spacing:1px;line-height:1.3;margin-top:5px}.map-header .eyebrow{font-size:12px}.map-header h2 .ui-icon{width:25px;height:25px}.zone-tag{display:flex;align-items:center;gap:6px;font-size:12px;color:#526259;border:1px solid #c7cebf;border-radius:20px;padding:5px 9px;white-space:nowrap;background:#e5e9df}.zone-tag .ui-icon{width:16px;height:16px}.map-meta{display:flex;justify-content:space-between;gap:10px;padding:0 22px 5px;font-size:12px;color:#536455}.map-wrap{position:relative;padding:6px 20px 18px;background:radial-gradient(ellipse at 70% 35%,#b1c5b638,transparent 60%),repeating-linear-gradient(27deg,transparent 0 82px,#b9baa72a 83px 85px,transparent 86px 124px)}.axis-x{display:grid;grid-template-columns:repeat(6,1fr);text-align:center;font:12px/1.5 Consolas,monospace;color:#677260;margin-bottom:7px}.world-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.tile{position:relative;height:72px;padding:6px 1px;border:1px solid #ccd0bb;border-radius:5px;background:#e7ebde;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;color:#345846}.tile .glyph{height:29px;width:29px}.tile .glyph .ui-icon{width:29px;height:29px}.tile-name{font-size:13px;white-space:nowrap;font-weight:500;line-height:1.4}.tile-coord{position:absolute;left:4px;top:2px;font:10px Consolas;color:#6c7665}.tile.fog{cursor:default;background:repeating-linear-gradient(135deg,#a7b09d0c 0 1px,transparent 1px 6px),#e3e5d9;border:1px dashed #c5cbbd;color:#89947e}.fog-mark{font-size:20px;color:#a0ab95}.tile.fog .tile-coord{color:#8c967f}.tile.reachable{background:#f9fcf1;border:1.5px dashed #679276;box-shadow:0 2px 3px #31563e0d}.tile.reachable:after{content:"";width:5px;height:5px;border-radius:50%;background:#518361;position:absolute;right:5px;top:5px}.tile.selected{outline:2px solid #c27342;outline-offset:1px;border-color:#ad643a}.tile.current{background:#355e49;color:#fff9e7;border-color:#355e49;box-shadow:0 3px 6px #344e3328}.tile.current .glyph-map{color:#fff0c6}.tile.current .tile-coord{color:#d9e6cd}.tile.current:after{content:"";width:13px;height:4px;background:#d28a4d;border-radius:3px;position:absolute;left:calc(50% - 6px);bottom:-3px}.tile.landmark{background:#eedfca;color:#7c482d;border-color:#c5a580}.tile.cleared:before{content:"✓";position:absolute;right:3px;top:0;color:#426947;font-size:12px}.tile:not(.fog):hover{box-shadow:0 0 0 2px #8bac885c;transform:translateY(-1px)}.map-footer{padding:12px 20px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:9px;font-size:12px;border-top:1px solid #d0d3c0;color:#536253;background:#ececde}.map-footer b{font-weight:500}.legend{display:flex;gap:12px;white-space:nowrap}.legend i{display:inline-block;width:8px;height:8px;margin-right:5px;border:1px solid #8fa087;border-radius:2px}.legend .current{background:#355e49;border-color:#355e49}.legend .reachable{background:#f9fcf1;border:1px dashed #679276}.legend .unknown{background:#cdd2c2}
.location-panel{padding:19px 22px;border-left:4px solid #bd7950;background:#fffcf4}.location-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.location-title{display:flex;align-items:center;gap:12px}.location-icon{width:44px;height:44px;border-radius:50%;background:#ece6d4;display:flex;justify-content:center;align-items:center}.location-icon .glyph{width:28px;height:28px}.location-title .tiny{font-size:12px}.location-title h3{font-size:21px;line-height:1.4}.location-tag{font-size:12px;color:#46684d;background:#e6eddf;padding:3px 8px;border-radius:4px}.location-panel p{font-size:14px;color:#506355;line-height:1.9;margin:13px 0}.location-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.primary-button{min-height:44px;padding:11px 17px;background:#ad512b;color:#fffaf0;border:1px solid #98431f;border-radius:5px;font-size:14px;font-weight:600;box-shadow:0 2px 0 #78391d28}.primary-button:not(:disabled):hover{background:#973f1c}.primary-button:disabled{background:#dedacc;color:#646e5d;border-color:#cecbbb;box-shadow:none}.secondary-button{min-height:44px;padding:10px 15px;background:#f7f3e7;color:#354f40;border:1px solid #b3bfaa;border-radius:5px;font-size:14px}.secondary-button:disabled{background:#eceade;color:#767a6a;border-color:#d0d3c5}.secondary-button:not(:disabled):hover{background:#e9ecdf}.danger-button{background:#983c31}.action-hint{font-size:12px;color:#5d6e5e}.text-button{padding:5px 0;min-height:38px;background:transparent;color:#a65532;font-size:13px;font-weight:500}.panel-heading h2>span{font-size:12px;color:var(--muted);font-weight:400}.deck-panel{background:transparent;border:0;box-shadow:none}.deck-panel .panel-heading{padding:0 2px}.deck-preview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 2px 0}.mini-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #c8c6b4;border-radius:7px;background:#faf4e5;padding:10px 8px;gap:6px;box-shadow:0 3px 6px #283f3010;min-width:0;border-top:3px solid var(--card-color)}.mini-card .card-art{height:84px;display:flex;align-items:center;justify-content:center;width:100%}.mini-card .glyph{width:84px;height:84px}.mini-card strong{font-size:14px;font-weight:600}.mini-card>span{font-size:11px;color:#596453;line-height:1.6}.deck-caption{font-size:12px;color:var(--muted);text-align:center;margin:13px 0 0}
.objective-panel{background:#f6edda;border:1px solid #d4c6a8;box-shadow:2px 3px 0 #dfd5c1;transform:rotate(.45deg)}.objective-panel .panel-heading{padding:17px 16px 0}.objective-panel .panel-heading h2{font-size:15px}.signal-art{margin:17px 16px 14px;position:relative;height:151px;border:6px solid #fffdf7;box-shadow:0 2px 5px #463f2725;transform:rotate(-2deg);overflow:hidden}.signal-art img{width:100%;height:100%;object-fit:cover;object-position:85% 30%}.mission-stamp{position:absolute;right:6px;bottom:8px;border:2px solid #a76539;color:#8e4823;background:#fff2cccf;padding:0 7px;transform:rotate(8deg);font-size:13px;font-weight:600}.objective-panel>h3{padding:0 17px;font-size:17px;line-height:1.6}.objective-panel>p{padding:8px 17px 0;font-size:13px;line-height:1.9;color:#5b644f}.core-slots{display:flex;gap:9px;padding:14px 17px 9px}.core-slot{height:47px;flex:1;display:flex;justify-content:center;align-items:center;background:#e8ddc6;border:1px dashed #af9d78;border-radius:5px;color:#917e57;font-size:26px}.core-slot.filled{background:#f4e0a9;border-style:solid;border-color:#b18340}.core-slot .glyph{height:41px;width:41px}.objective-progress{display:flex;justify-content:space-between;padding:0 18px 15px;font-size:13px;color:#566149}.objective-progress strong{font-size:16px}.objective-next{padding:13px 17px;background:#e6dcc3;color:#455943;font-size:13px;border-top:1px dashed #c4b493}.journal-panel{border:0;background:transparent;box-shadow:none}.journal-panel .panel-heading{padding:2px 0 10px;border-bottom:2px solid #c9ccbc}.journal-panel .panel-heading h2{font-size:16px}.journal{padding:18px 0 0;max-height:330px;overflow:auto;scrollbar-width:thin;scrollbar-color:#b3bba5 transparent}.journal-entry{position:relative;margin:0 0 0 4px;border-left:1px solid #bfc7b2;padding:0 8px 21px 16px}.journal-entry:before{content:"";position:absolute;left:-4px;top:7px;height:7px;width:7px;border-radius:50%;background:#b1bea3}.journal-entry:first-child:before{background:#b87143}.journal-entry .time{font-size:11px;color:#64735c;letter-spacing:.5px}.journal-entry p{font-size:13px;color:#3e5647;line-height:1.9;margin-top:4px}.journal-entry.danger p{color:#9b4730}.quote{font-size:13px;color:#5a6c59;text-align:center;font-style:italic}.quote span{display:block;font-size:12px;margin-top:6px;font-style:normal}.footer{margin-top:32px;padding:21px 0;border-top:1px solid #cbd0bf;display:flex;justify-content:space-between;gap:15px;color:#586b59;font-size:12px;flex-wrap:wrap}.footer b{margin:0 9px;color:#a1ab92}.footer>span:first-child{flex:1}
.glyph{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle}.glyph-map{color:var(--glyph-color,#416f52)}.glyph-map .ui-icon{width:100%;height:100%}.glyph-art{background-image:url('assets/items.png');background-size:400% 300%;background-position:var(--atlas-x) var(--atlas-y);background-repeat:no-repeat;mix-blend-mode:multiply;border-radius:5px}
dialog{color:var(--text);width:min(1020px,calc(100% - 40px));max-height:calc(100dvh - 40px);padding:0;border:1px solid #9baf97;border-radius:12px;background:#f8f5eb;box-shadow:0 25px 100px #12291f66;overflow:auto}dialog::backdrop{background:#152b23bd;backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 26px;border-bottom:1px solid #d0d4c3;background:#edf0e4;gap:15px}.modal-head .eyebrow{font-size:12px;color:#536c55;letter-spacing:.7px;margin-bottom:3px}.modal-head h2{font-size:24px;line-height:1.5;font-weight:700}.close-button{width:44px;height:44px;font-size:28px;background:transparent;color:#50624f;border-radius:50%}.close-button:hover{background:#dde4d2}.modal-body{padding:25px 27px}.modal-footer{padding:18px 26px;display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;border-top:1px solid #cdd3c0;background:#e9edde}.modal-copy,.help-grid p{font-size:15px;color:#465e4d;line-height:1.95}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.help-grid h3{font-size:17px;color:#9d4e2d;margin-bottom:8px}.help-note{padding:17px;background:#e7ecdc;color:#40593f;border-left:3px solid #74864b;font-size:14px;margin-top:23px}.seed-input{display:block;width:100%;background:#fffdf5;border:1px solid #a7b49b;border-radius:5px;padding:12px;font-size:16px;color:var(--text);margin-top:9px}.input-label{display:block;font-size:14px;margin-top:22px;color:#49604a}.recipe-list{display:grid;grid-template-columns:1fr 1fr;gap:14px}.recipe{display:flex;align-items:center;gap:14px;padding:17px;border:1px solid #cecbb8;background:#f2ebda;border-radius:7px}.recipe .glyph{width:75px;height:75px}.recipe h3{font-size:17px}.recipe p{font-size:13px;color:#56634f;margin:5px 0 9px}.recipe .secondary-button{font-size:13px;padding:8px 13px}.deck-full{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.deck-full .mini-card{min-height:225px;padding:15px}.deck-full .card-art{height:100px}.deck-full .glyph{height:100px;width:100px}.deck-full .mini-card>span{font-size:13px}.mutation-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.mutation-choice{border:1px solid #bcb0c5;background:#f0e9ee;border-radius:7px;padding:22px;text-align:left}.mutation-choice .glyph{width:62px;height:62px}.mutation-choice h3{font-size:18px;color:#684981;margin:13px 0 10px}.mutation-choice p{font-size:14px;line-height:1.9;color:#514861}.mutation-choice:hover{box-shadow:0 0 0 2px #b19ac17a}.event-symbol{text-align:center;font-size:60px;color:#76588e;padding:10px}.event-options{display:flex;gap:15px;margin-top:25px}.event-options button{flex:1;text-align:left;padding:18px;font-size:16px}.event-options small{display:block;font-size:13px;margin-top:9px;font-weight:400}.ending{text-align:center;padding:35px}.end-icon{font-size:55px;color:#a66a33}.ending h3{font-size:29px;margin:12px 0}.ending p{font-size:15px;color:#52634c;line-height:2}.end-stats{display:flex;justify-content:center;gap:50px;margin:28px 0}.end-stats strong{display:block;font-size:32px;color:#a25d32}.end-stats span{font-size:13px;color:#4d634d}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,10px);z-index:60;pointer-events:none;padding:12px 22px;background:#2b5140;color:#fff8e5;box-shadow:0 4px 22px #223d3733;border-radius:7px;font-size:14px;max-width:calc(100% - 30px);opacity:0;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.combat-zone{padding:20px 25px 0}.enemy-stage{display:flex;align-items:center;gap:23px;background:#29473c;color:#fff5df;border-radius:8px;padding:17px;position:relative;overflow:hidden}.enemy-art{width:115px;height:126px;flex-shrink:0;border:4px solid #a98b58;box-shadow:0 3px 5px #10261e66;transform:rotate(-3deg);border-radius:4px;overflow:hidden}.enemy-art img{width:100%;height:100%;object-fit:cover}.enemy-info{flex:1;min-width:0}.enemy-info .eyebrow{font-size:12px;color:#d4debf}.enemy-info h3{font-size:26px;font-weight:700;margin:5px 0 12px}.enemy-hp{display:flex;align-items:center;gap:12px}.enemy-hp .bar{flex:1;height:9px;background:#182f27;--vital-color:#eeb36c}.enemy-hp>span{font-size:15px;font-weight:600;color:#fae4b6}.enemy-intent{margin-top:11px;font-size:14px;color:#fff0cd}.combat-player{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:15px 0;border-bottom:1px solid #cbd0bf;font-size:14px}.combat-player .hp{color:#a34d30}.combat-player .san{color:#705388}.combat-player .armor{color:#326582}.combat-player strong{font-weight:700}.combat-player button{padding:8px 11px;border:1px solid #b8c2a8;background:#e5eddb;color:#36553b;border-radius:5px;font-size:13px;min-height:40px}.combat-player button:disabled{color:#687461;background:#e9e8df;border-color:#d1d3c5}.combat-meters{font-size:12px;color:#52614c}.dice-section{padding:20px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.dice-label{font-size:16px;font-weight:700;margin-bottom:13px}.dice-label span{font-size:13px;color:#52664f;margin-left:10px;font-weight:400}.dice-tray{display:flex;gap:13px}.die{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:4px;background:#fffbee;border:2px solid #b0a385;border-radius:9px;width:56px;height:56px;padding:9px;box-shadow:0 4px 0 #bab099;color:#2d4b38}.die.selected{outline:3px solid #c3703e;outline-offset:3px;background:#fff4d3}.pip{height:7px;width:7px;align-self:center;justify-self:center;background:#294b3a;border-radius:50%}.die.used{background:#dfdfd2;border:1px dashed #a1af97;box-shadow:none;display:flex;align-items:center;justify-content:center;font-size:22px;color:#697960}.dice-tools{text-align:right}.dice-tools p{font-size:12px;color:#52674e;margin-top:7px}.combat-hand{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.combat-card{display:flex;flex-direction:column;position:relative;padding:12px;min-height:259px;text-align:left;border:1px solid #bfbda8;border-top:4px solid var(--card-color);border-radius:8px;background:#fbf4e3;box-shadow:0 3px 5px #233b3021}.card-type{font-size:12px;color:var(--card-color);font-weight:600}.combat-card .card-art{display:flex;align-items:center;justify-content:center;height:104px}.combat-card .glyph{width:104px;height:104px}.combat-card h3{font-size:17px;line-height:1.5;margin:7px 0}.card-desc{font-size:14px;line-height:1.7;color:#334b3b;flex:1}.card-rule{border-top:1px dashed #c6c5ae;padding-top:9px;margin-top:10px;font-size:12px;color:#536347}.combat-card:not(:disabled):hover{transform:translateY(-4px);box-shadow:0 6px 15px #263f3526;border-color:var(--card-color)}.combat-card:disabled{background:#e8e7de;border-color:#b7bbae;box-shadow:none}.combat-card:disabled .card-art{filter:grayscale(.8);opacity:.65}.combat-card:disabled h3,.combat-card:disabled .card-desc{color:#5d6756}.combat-guide{font-size:13px;color:#4d624c;padding:16px 0;line-height:1.8}.combat-guide strong{color:#a4552f}.combat-log{padding:13px 25px;font-size:14px;color:#385d42;background:#e6eddc;border-top:1px solid #cad3be}.combat-log.danger{color:#94462b;background:#f2e5d3}.modal-footer>.tiny{margin-right:auto;white-space:normal;font-size:12px}.loot-list{padding:0;margin:20px 0;list-style:none;display:grid;gap:12px}.loot-item{display:flex;gap:16px;align-items:center;background:#f1e9d7;border:1px solid #d0c6ae;border-radius:7px;padding:13px 16px}.loot-item .glyph{width:68px;height:68px}.loot-item>div{flex:1;min-width:0}.loot-item strong{display:block;font-size:17px}.loot-item div>span{font-size:13px;color:#55644d;display:block;margin-top:4px}.loot-item>b{font-size:25px;color:#a25c2d}.loot-saved{font-size:14px;color:#38694b;margin-bottom:10px}.loot-encounter{background:#efe0c9;color:#8d4a27;border-left:3px solid #b47945;padding:14px;margin-top:15px;font-size:14px}.loot-body>.modal-copy strong{color:#374e3c}.loot-scrap{font-size:32px;color:#8c6538}dialog[data-phase="loot"]{width:min(560px,calc(100% - 32px))}
@media(min-width:1500px){.game-layout{grid-template-columns:260px minmax(0,1fr) 285px}.tile{height:81px}.journal{max-height:385px}}
@media(max-width:1180px) and (min-width:741px){main{padding:22px}.topbar{padding:12px 22px}.game-layout{grid-template-columns:225px minmax(0,1fr);gap:20px}.right-column{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:start}.quote{display:none}.objective-panel{transform:none}.objective-panel .signal-art{float:left;width:145px;margin-right:18px}.objective-panel>h3{padding-top:20px}.objective-panel>p{padding-right:22px}.objective-next{clear:both}.journal{max-height:360px}.tile{height:73px}.intro{min-height:170px}.world-clock{right:18px}.intro p{max-width:330px}.mini-card strong{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* Item inspection, encounters, and the survivor's collection. */
.tile.searched{background:#d8d9d2;border-color:#b6bcb0;color:#596353}.tile.searched .glyph{filter:grayscale(1);color:#606a5c}.tile.searched:before{content:'✓';position:absolute;right:4px;top:1px;font-size:12px;color:#4b5a44}.tile.current,.tile.current.landmark{border:2px solid #365e49;box-shadow:0 0 0 2px #e8d3a2}.tile.current.searched{background:#cdd2c7;color:#31472f}.tile.current.searched .tile-coord{color:#526449}.core-slot .glyph{width:35px;height:35px}.loot-item{width:100%;text-align:left}.loot-item:hover{border-color:#9d7044;background:#f8edd5}.loot-list>li{list-style:none}.item-detail{max-width:650px;margin:auto;text-align:center}.detail-art{width:170px;height:170px;display:grid;place-items:center;margin:0 auto 18px;border-radius:50%;background:#eee3ca}.detail-art .glyph{width:150px;height:150px}.detail-tag{font-size:13px;color:#77592f;background:#ece2c9;border-radius:20px;padding:6px 13px}.detail-description{font-size:19px;line-height:1.85;margin:23px 0 12px}.detail-rule{display:flex;gap:8px;align-items:center;justify-content:center;margin:16px 0;color:#86522d}.detail-rule .ui-icon{width:24px;height:24px}.detail-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.detail-actions .ui-icon{width:18px;height:18px;vertical-align:middle}.detail-actions small{display:block;width:100%;font-size:13px;color:var(--muted)}.inventory-items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:20px 0}.inventory-items button{background:#eee6d3;border:1px solid #d5c8af;border-radius:6px;display:flex;flex-direction:column;align-items:center;padding:12px 6px;gap:5px}.inventory-items .glyph{width:65px;height:65px}.inventory-items strong{font-size:15px}.inventory-items span{font-size:14px}.deck-full{margin-top:20px}.hand-slot{min-width:0;display:flex;flex-direction:column;border-radius:8px}.hand-slot>.mini-card,.hand-slot>.combat-card{width:100%;flex:1}.card-grip{width:100%;display:flex;gap:7px;justify-content:center;align-items:center;min-height:44px;background:#e1dfd0;border:1px solid #c0c5b3;border-radius:0 0 6px 6px;font-size:23px;color:#486344;cursor:grab;touch-action:none;user-select:none}.card-grip span{font-size:12px}.dragging{opacity:.65;outline:2px dashed #975426}.card-grip:active{cursor:grabbing}.drop-target{outline:3px solid #b26432;outline-offset:2px}.event-portrait{width:100px;height:100px;display:grid;place-items:center;margin:0 auto 23px;background:#e7e8d7;border:1px dashed #a0ae94;border-radius:50%}.event-portrait .glyph{width:70px;height:70px}.event-portrait.danger{background:#efdfd3}.event-options{flex-wrap:wrap}.event-options button{min-width:170px}.merchant-wallet{display:flex;align-items:center;gap:8px;margin:20px 0 12px;font-size:17px;font-weight:600}.merchant-wallet .ui-icon{width:24px;height:24px}.merchant-stock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.merchant-item{background:#f0e6cf;border:1px solid #d0b997;border-radius:7px;padding:10px;text-align:center;display:flex;flex-direction:column;gap:8px}.merchant-item>button:first-child{display:flex;flex-direction:column;align-items:center;background:transparent;flex:1}.merchant-item .glyph{width:80px;height:80px}.merchant-item span{font-size:12px;color:#5b654c}.merchant-item strong{font-size:16px}.merchant-item .secondary-button{padding:7px;font-size:13px}.achievement-summary{display:flex;align-items:center;gap:20px;margin-bottom:14px}.achievement-summary .glyph{width:65px;height:65px}.achievement-summary strong{font-size:32px;color:#995a33}.achievement-summary p{color:var(--muted)}.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}.achievement{display:flex;gap:16px;align-items:center;border:1px dashed #c0c5b7;border-radius:7px;padding:17px;background:#eeeee4}.achievement>.glyph{width:55px;height:55px;filter:grayscale(1);opacity:.65}.achievement>div{flex:1;min-width:0}.achievement h3{font-size:16px}.achievement p{font-size:13px;color:var(--muted);margin:4px 0}.achievement span{font-size:12px;color:#52684c}.achievement progress{display:block;width:100%;height:5px;accent-color:#6a8252;margin-top:7px}.achievement.unlocked{border:1px solid #bcac83;background:#f6edd5}.achievement.unlocked>.glyph{filter:none;opacity:1}.achievement.unlocked h3{color:#805328}.personality-card{background:#eee5cc;border:1px solid #c7b98e;border-radius:7px;margin:24px 0;padding:24px}.personality-card>.glyph{display:block;width:90px;height:90px;margin:16px auto}.personality-card h3{color:#805028}.personality-evidence{border-top:1px dashed #b7ab8b;padding-top:14px;margin-top:16px;font-size:14px}.personality-card small{font-size:12px;color:#657056;display:block;margin-top:10px}
@media(max-width:740px){.desktop-achievements{display:none}.mobile-nav{grid-template-columns:repeat(4,1fr)}.inventory-items{grid-template-columns:repeat(3,minmax(0,1fr))}.merchant-stock{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-grid{grid-template-columns:1fr}.achievement{padding:14px}.detail-description{font-size:18px}.detail-actions>button{flex:1 1 45%}.detail-art{width:145px;height:145px}.detail-art .glyph{width:130px;height:130px}.hand-slot{scroll-snap-align:start}.personality-card{padding:20px 16px}.event-options button{min-width:0;width:100%}.inventory-items .glyph{width:65px;height:65px}}
/* Keep the back control visible while inspecting long inventories. */
.modal-head{position:sticky;top:0;z-index:5}
.detail-actions>button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.detail-art .glyph{border-radius:50%}
.attack-report{text-align:center;max-width:680px;margin:auto}.attack-impact{width:108px;height:108px;margin:0 auto 18px;display:grid;place-items:center;border-radius:50%;background:#efe0cf;border:1px solid #d2a17f}.attack-impact .glyph{width:82px;height:82px}.attack-equation{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:17px;background:#e5e9dc;border-radius:7px}.attack-equation span{font-size:14px}.attack-equation b{display:block;font-size:26px;color:#49614e}.attack-equation i{font-size:23px;color:#7a806c;font-style:normal}.attack-equation .damage b{color:#a24031}.attack-report>p{font-size:15px;line-height:1.9;color:#4d5e4d;margin:20px 0}.attack-health{display:flex;align-items:center;justify-content:center;gap:14px;padding:13px;border:1px solid #d1bd99;background:#fff1d4;border-radius:6px}.attack-health .ui-icon{width:22px;height:22px}.attack-health strong{color:#9d442f;font-size:18px}.consumable-combat-card{background:#fff0c9;border-color:#c69b50}.pocket-slot .card-grip{background:#eddfb9;border-color:#c9aa69}
@media(max-width:740px){.attack-equation{gap:8px;padding:12px 7px}.attack-equation span{font-size:12px}.attack-equation b{font-size:23px}.attack-impact{width:90px;height:90px}.attack-impact .glyph{width:68px;height:68px}.attack-health{font-size:13px;gap:8px}.attack-health strong{font-size:16px}}

/* v0.4: compact enemy-action popup and combat archetype status language. */
.enemy-hp .bar{position:relative}.enemy-hp .bar>i{position:absolute;inset-block:0;left:0}.enemy-hp .enemy-health-fill{z-index:1}.enemy-hp .bar>i.enemy-poison-fill{z-index:2;left:var(--poison-left);width:var(--poison-width);background:#55b86a;border-radius:4px;box-shadow:0 0 7px #63d27888}
.enemy-statuses{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.status-chip{font-size:11px;font-weight:700;padding:3px 8px;border:1px solid;border-radius:20px}.status-chip.poison{color:#dfffe0;border-color:#65bd72;background:#265d36}.status-chip.fuel{color:#fff2c6;border-color:#d4a94e;background:#6e5321}.status-chip.burn{color:#ffe0c2;border-color:#eb8550;background:#803a24}.status-chip.clear{color:#d0dbc6;border-color:#69816d;background:#385447}
.attack-popover-layer{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#13281e70;backdrop-filter:blur(1.5px)}.attack-popover{width:min(390px,calc(100vw - 32px));padding:19px;background:#fff9e9;border:1px solid #b87342;border-left:5px solid #b34f31;border-radius:10px;box-shadow:0 18px 65px #15261f80;color:#344b3c}.attack-popover-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}.attack-popover-head .glyph{width:45px;height:45px}.attack-popover-head span{display:block;font-size:11px;color:#98512f;letter-spacing:.6px}.attack-popover-head h3{font-size:19px;line-height:1.35}.attack-popover .attack-equation{padding:11px 8px;gap:9px}.attack-popover .attack-equation span{font-size:11px}.attack-popover .attack-equation b{font-size:22px}.attack-popover .attack-health{margin-top:12px;padding:9px;font-size:13px}.attack-popover .attack-health strong{font-size:18px}.attack-popover .primary-button{width:100%;margin-top:14px}.attack-extra,.dot-receipt{font-size:12px;text-align:center;margin:9px 0;color:#9a452e}.dot-receipt{padding:7px;background:#e5eed9;color:#397048;border-radius:5px}
.pocket-card small,.consumable-combat-card .card-rule{font-variant-numeric:tabular-nums}.school-毒蚀{background:#eef3dc}.school-燃烧{background:#fbebd5}.school-蛮力{background:#f4e4d4}.school-防御{background:#e4edf0}.school-连动,.school-爆发{background:#eee7f2}
@media(max-width:740px){.attack-popover-layer{padding:14px}.attack-popover{padding:15px;width:min(355px,calc(100vw - 24px))}.attack-popover-head{margin-bottom:10px}.attack-popover-head .glyph{width:38px;height:38px}.attack-popover-head h3{font-size:17px}.attack-popover .attack-equation b{font-size:20px}.enemy-statuses{margin-top:5px}.status-chip{font-size:10px;padding:2px 6px}}

/* v0.5: rarity language, upgrade tracks and survival-collapse warnings. */
.rarity-label{display:inline-flex;align-items:center;width:max-content;max-width:100%;font-size:10px;line-height:1;padding:4px 7px;border:1px solid color-mix(in srgb,var(--rarity-color) 65%,#fff);border-radius:20px;color:var(--rarity-color);background:color-mix(in srgb,var(--rarity-color) 9%,#fff9e9);font-weight:700}.mini-card>.rarity-label,.pocket-card>.rarity-label,.collection-card>.rarity-label,.mutation-choice>.rarity-label{position:absolute;top:6px;right:6px;z-index:2}.mini-card,.pocket-card,.collection-card,.mutation-choice,.ability-card{position:relative}.rarity-legendary{box-shadow:0 0 0 1px color-mix(in srgb,var(--rarity-color) 45%,transparent),0 5px 18px #b7772422}.rarity-epic{box-shadow:0 0 0 1px color-mix(in srgb,var(--rarity-color) 35%,transparent)}.mutation-row{border-left:3px solid var(--rarity-color);padding-left:8px}.mutation-row .rarity-label{margin-left:5px;vertical-align:middle}.ability-card>.rarity-label{align-self:flex-end;margin-bottom:-18px}.detail-tag{border:1px solid color-mix(in srgb,var(--rarity-color) 45%,#d4c6a8)}
.upgrade-list{list-style:none;margin:18px auto;display:grid;gap:7px;max-width:520px;text-align:left}.upgrade-list li{display:flex;gap:10px;align-items:center;padding:9px 11px;border:1px dashed #c3c7b7;border-radius:5px;color:#788071;background:#e8e9df}.upgrade-list li.active{border-style:solid;border-color:#8fa078;background:#e5edd7;color:#3f5a42}.upgrade-list b{font-size:12px;min-width:38px}.upgrade-list span{font-size:13px}.mutation-choice small{display:block;margin-top:10px;font-size:12px;line-height:1.6;color:var(--rarity-color)}
.status-chip.bleed{color:#ffe0dc;border-color:#d8746a;background:#783a35}.status-chip.slow{color:#ddf5ff;border-color:#6eacc5;background:#31596a}.status-chip.vulnerable{color:#f1ddff;border-color:#a979c4;background:#654075}.combat-player .weakness{color:#9d4d35;font-weight:700}.survival-notice{display:none;position:fixed;right:15px;bottom:22px;width:min(410px,calc(100% - 30px));z-index:110;padding:14px;border:1px solid #b78a4b;border-left:6px solid #bc6b36;border-radius:9px;background:#fff3d0;color:#47533c;box-shadow:0 12px 40px #162b2266;gap:12px;align-items:center}.survival-notice.visible{display:flex}.survival-notice.critical{border-left-color:#a33e31;background:#ffe8d1}.survival-notice>.glyph{width:45px;height:45px}.survival-notice>div{flex:1;min-width:0}.survival-notice span{display:block;font-size:10px;color:#a25431}.survival-notice strong{display:block;font-size:16px}.survival-notice small{display:block;font-size:12px;line-height:1.5;margin-top:3px}.survival-notice button{width:44px;height:44px;background:transparent;font-size:24px;flex:none}.survival-warning{line-height:1.65}.mutation-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:740px){.survival-notice{left:10px;right:10px;bottom:calc(var(--nav-height) + var(--safe-bottom) + 10px);width:auto;padding:10px}.survival-notice>.glyph{width:36px;height:36px}.survival-notice strong{font-size:14px}.survival-notice small{font-size:11px}.mutation-choices{grid-template-columns:1fr}.rarity-label{font-size:9px;padding:3px 5px}.combat-player .weakness{grid-column:1/-1}}
