@charset "UTF-8";
:root{--season-paper:#efdfb7;--season-shade:#16382255;--season-accent:#e7d1a2}
:root[data-season="1"]{--season-paper:#e8e3ba;--season-shade:#12564844;--season-accent:#bce1c0;--green:#3e7255;--leaf:#86b882}
:root[data-season="2"]{--season-paper:#f1dbb1;--season-shade:#804a2348;--season-accent:#f4c787;--green:#65733c;--leaf:#b7a35a}
:root[data-season="3"]{--season-paper:#e4e4d9;--season-shade:#284b664d;--season-accent:#c8dfeb;--green:#4b716b;--leaf:#9ebabc}
.collector-badge{padding:9px 7px;margin:0 0 12px;border:2px solid #d8b86b;border-radius:5px;background:#293d2ee8;color:#ffe398;box-shadow:0 3px #172c22}
.collector-badge b{display:block;font-size:17px;letter-spacing:2px}.collector-badge small{display:block;font-size:10px;line-height:1.7;margin-top:4px;color:#ece0b9}
:root[data-season] .screen-content{background:radial-gradient(ellipse at 0 0,#fff6dd55,transparent 50%),var(--season-paper)}
:root[data-season] .scene-vignette{background:linear-gradient(var(--season-shade),transparent 35%,var(--season-shade))}
:root[data-season] .season-tag{color:var(--season-accent)}
:root{color-scheme:light;--ink:#392b21;--muted:#897254;--paper:#f5e5bf;--paper-light:#fff4d6;--wood:#5c3b26;--wood-dark:#35271e;--green:#527844;--leaf:#8eac60;--gold:#f3c75f;--berry:#af4843;--line:#d5b687;--shadow:0 3px 0 #33281f,0 8px 20px #10271940}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;color:var(--ink)}body{background:#223a31;overscroll-behavior-y:none}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;filter:saturate(.3);opacity:.55}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #68babc;outline-offset:3px}img{object-fit:contain;image-rendering:pixelated;pointer-events:none}h1,h2,h3,p{margin:0}h1{font-family:"Microsoft YaHei",serif;letter-spacing:.02em}h2{font-size:18px;line-height:1.35}h3{font-size:13px;margin:14px 0 8px}p{line-height:1.75;font-size:13px}small{font-size:11px;font-weight:500}b,strong{font-weight:800}i{font-style:normal;color:var(--green)}
.forest-ambient{position:fixed;inset:0;background:radial-gradient(ellipse at 18% 5%,#91ad6e30,transparent 55%),radial-gradient(ellipse at 85% 100%,#5c947839,transparent 45%),linear-gradient(130deg,#192d27,#2e4837 48%,#183431);z-index:-1}
#app{max-width:480px;margin:0 auto;min-height:100dvh;background:var(--paper);box-shadow:0 0 0 1px #13291f,0 0 80px #07170b90}.game-shell{position:relative;height:100dvh;min-height:550px;display:flex;flex-direction:column;background:#eee0ba;overflow:hidden}
.topbar{flex:none;padding:10px 12px 8px;padding-top:max(10px,env(safe-area-inset-top));background:linear-gradient(#6d4b31,#573b28);color:#fff4d2;border-bottom:4px solid #2e251c;box-shadow:0 2px 0 #d5af6245;z-index:5}
.brand-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}.brand{display:flex;align-items:center;gap:7px;background:none;border:0;color:#fff0c4;text-align:left;padding:0;line-height:1.05;font-size:20px;font-weight:900;letter-spacing:2px}.brand small{display:block;font-size:9px;color:#c9b890;font-weight:500;letter-spacing:3px;margin-top:4px}.brand-acorn .resource-icon{width:30px;height:34px}.season-tag{margin-left:auto;font-size:10px;color:#e7d1a2;letter-spacing:.04em}.icon-button{border:2px solid #bd9662;box-shadow:0 2px 0 #292018;background:#755332;color:#fff1ce;width:37px;height:37px;font-size:21px;line-height:1}
.wallet{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.wallet-chip{padding:5px 3px;display:flex;align-items:center;justify-content:center;gap:3px;min-height:44px;border:1px solid #a37747;border-bottom:2px solid #352718;background:#39291dbb;border-radius:3px;color:#d8c199;text-align:left;font-size:9px}.wallet-chip b{display:block;color:#fff2d1;font-size:13px;line-height:1.3;font-variant-numeric:tabular-nums}.resource-icon{width:25px;height:25px;vertical-align:middle;display:inline-block}.wallet .resource-icon{width:24px;height:28px}
.screen-scroll{min-height:0;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a7916e #e9d7ad;overscroll-behavior:contain}.scene-shell{height:275px;position:relative;background:#76926a;overflow:hidden;isolation:isolate;border-bottom:4px solid #674b30}.scene-shell canvas{width:100%;height:100%;display:block;image-rendering:pixelated}.scene-vignette{position:absolute;inset:0;background:linear-gradient(#16382255,transparent 35%,#193f3540);pointer-events:none}.scene-heading{position:absolute;top:18px;left:20px;right:16px;color:#ffefd0;text-shadow:0 2px 0 #1c382f,0 3px 8px #1c382f80;pointer-events:none}.scene-heading h1{font-size:22px;margin:5px 0}.scene-heading p{font-size:11px;max-width:330px;color:#ffefd2}.eyebrow{font-size:8px;font-weight:800;letter-spacing:3px;opacity:.8}.camp-tap-hotspot{position:absolute;z-index:2;left:50%;top:63%;width:76px;min-height:78px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;border:0;background:#3e2c1d99;border-radius:50%;color:#fff2c1;text-shadow:0 2px #4e321b;filter:drop-shadow(0 3px 0 #35241599);cursor:pointer}.camp-tap-hotspot img{width:54px;height:54px;image-rendering:pixelated}.camp-tap-hotspot span{font-size:10px;font-weight:900;line-height:1.1}.camp-tap-hotspot b{font-size:9px;color:#fff0b0}.camp-tap-hotspot:active{transform:translate(-50%,-50%) scale(.94)}.screen-content{padding:15px 13px 25px;background:radial-gradient(ellipse at 0 0,#e9dfb6,transparent 50%),#efdfb7}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:4px 0 13px}.section-title>span{flex-shrink:0;font-size:11px;font-weight:700;color:#826a48}.section-title h2{letter-spacing:.05em}
.parchment{position:relative;background:linear-gradient(110deg,#fff4d6,#f6e6c0 60%,#f4dfb3);border:2px solid #9d7750;border-top-color:#b89566;border-left-color:#b89566;border-radius:7px;box-shadow:0 3px 0 #66452d,0 7px 12px #75553218;padding:14px;margin-bottom:14px}.parchment:before,.parchment:after{position:absolute;content:"";width:5px;height:5px;background:#b28b55;top:5px;left:5px;opacity:.7}.parchment:after{left:auto;right:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 16px;border:2px solid #3f4c28;border-radius:5px;font-size:14px;font-weight:800;letter-spacing:.03em;line-height:1.3;box-shadow:0 3px 0 #253623,inset 0 1px 0 #ffffff60;text-align:center;transition:transform .1s}.button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #253623}.button.primary{color:#fff5dc;background:linear-gradient(#658d43,#477034);border-color:#36522b;box-shadow:0 3px 0 #2a4326,inset 0 1px 0 #9db966}.button.gold{color:#4b3119;background:linear-gradient(#ffe58b,#f2bb42);border-color:#ac7637;box-shadow:0 3px 0 #704728,inset 0 1px 0 #fff8c1}.button.secondary{color:#65472e;background:linear-gradient(#f8e8c7,#deca9d);border-color:#9e7d51;box-shadow:0 3px 0 #705334,inset 0 1px 0 #fff4d9}.button.danger{color:#fff2dc;background:#a45748;border-color:#734335;box-shadow:0 3px 0 #4a3026}.button.small{min-height:36px;padding:6px 10px;font-size:11px}.button.wide{display:flex;width:100%;margin-top:12px}.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 8px;border:0;background:none;color:#426a3a;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.text-button.light{color:#ffedc4}.button-row{display:flex;gap:9px;margin-top:12px}.button-row>*{flex:1}.muted{color:var(--muted);font-size:11px}.notice{border-left:3px solid #ccab5d;background:#e2c99e55;border-radius:2px;color:#796039;padding:9px 10px;margin:10px 0;font-size:11px}.deficit,.sufficient{font-size:11px;font-weight:700;padding:8px 0}.deficit{color:var(--berry)}.sufficient{color:#527243}
.resource-list{display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px}.resource-value{display:inline-flex;align-items:center;gap:4px;font-size:11px;white-space:nowrap}.resource-value b{font-size:14px;font-variant-numeric:tabular-nums}.resource-value .resource-icon{width:25px;height:28px}.preview-line{border-top:1px dashed #c8ab75;border-bottom:1px dashed #c8ab75;padding:9px 0;margin:8px 0}.preview-line>span{display:block;color:#91744d;font-size:10px;margin-bottom:6px}.preview-line .resource-value{font-size:10px}.preview-line .resource-value b{font-size:12px}.stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin:8px 0;font-size:11px}.stat-row>b{font-size:17px;color:var(--green);font-variant-numeric:tabular-nums}.stat-row>small{color:var(--muted);font-size:9px}.stat-row i{color:#b09360;font-size:14px}
.inventory-snapshot{border-top:1px dashed #c8ab75;border-bottom:1px dashed #c8ab75;padding:7px 0;margin:9px 0}.inventory-snapshot h3{margin:0 0 5px;color:#91744d;font-size:10px}.inventory-snapshot .resource-list{gap:4px 8px}.inventory-snapshot .resource-value{font-size:9px}.inventory-snapshot .resource-value b{font-size:11px}.inventory-snapshot .resource-icon{width:18px;height:20px}
.income-ribbon{display:flex;justify-content:space-between;gap:6px;border-bottom:1px dashed #bca475;padding:0 0 12px;font-size:10px;align-items:center}.income-ribbon .resource-icon{width:24px;height:24px}.income-ribbon b{font-size:13px}.camp-cta{display:grid;grid-template-columns:1.15fr 1fr;gap:10px;margin:14px 0}.camp-cta .button{font-size:15px;min-height:50px}.upgrade-top{display:flex;gap:13px;align-items:center}.upgrade-art{width:95px;min-height:75px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#dec89366;border-radius:4px}.facility-art{width:95px;height:90px}.animal-art{width:100%;height:100%;max-height:110px}.upgrade-art .animal-art{width:80px;height:100px}.stats{flex:1;min-width:0}.next-level{margin-top:12px;border-top:1px solid #d4b889;padding-top:10px;font-size:11px}.next-level summary{font-weight:800;color:#79613f;cursor:pointer;margin-bottom:9px}.next-level .resource-icon{width:22px;height:24px}.next-level .resource-value b{font-size:12px}
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 5px}.feature-button{border:2px solid #ae8b55;box-shadow:0 3px 0 #755330;background:#e5d3a8;padding:13px 9px;border-radius:5px;text-align:left;min-height:73px}.feature-button strong{display:block;font-size:13px}.feature-button small{display:block;margin-top:7px;color:#8c734c;font-size:10px}
.bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;flex:none;background:#5a3d27;border-top:3px solid #9c7644;padding:5px 7px max(7px,env(safe-area-inset-bottom));z-index:6;min-height:64px;box-shadow:0 -3px 0 #392b22}.nav-item{border:1px solid #8c683e;border-radius:3px;background:#67462d;color:#d6bd8c;min-height:49px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.nav-item span{font-size:20px;line-height:1}.nav-item b{font-size:10px;font-weight:600;letter-spacing:1px}.nav-item.active{background:#e3bd6e;color:#51341d;border-color:#f2d18c;box-shadow:inset 0 1px 0 #ffe6a6}
.party-mini{display:flex;align-items:center;gap:4px}.mini-animal{width:40px;height:48px}.party-mini>div{margin-left:8px;flex:1}.party-mini small{display:block;color:var(--muted);font-size:10px}.party-mini b{font-size:18px;font-variant-numeric:tabular-nums}.party-card .resource-list{margin-top:9px}.progress{height:9px;border:2px solid #775b3b;background:#9e8c6777;border-radius:3px;overflow:hidden;margin:12px 0}.progress>span{display:block;height:100%;background:linear-gradient(#adc66c,#6a8b47);max-width:100%;min-width:0;transition:width .12s linear}.progress.gold>span{background:linear-gradient(#ffe087,#eead3d)}
.animal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.animal-card{position:relative;min-height:166px;padding:9px 5px;background:linear-gradient(#fcf0ca,#e7d3a7);border:2px solid #a98552;border-radius:6px;box-shadow:0 3px 0 #745432;display:flex;flex-direction:column;align-items:center}.animal-card img{height:85px;max-width:85px}.animal-card b{font-size:12px;margin-top:5px}.animal-card b small{font-size:9px;margin-left:3px;color:#8e744e}.animal-card>span{font-size:10px;padding:5px 0;color:#577446}.animal-card>small{font-size:9px;color:#8c734e}.animal-card.locked img{filter:brightness(.45) saturate(.5);opacity:.7}.animal-card.locked>span{color:#a08455}.recruit-art{height:140px;width:100%;display:block;margin:5px auto 15px}
.tab-strip{display:flex;gap:7px;overflow:auto;padding-bottom:7px;margin-bottom:10px;scrollbar-width:none}.pill{border:1px solid #b59966;border-radius:4px;color:#876e49;background:#e5d0a1;padding:8px 13px;white-space:nowrap;min-height:40px;font-size:12px;font-weight:700}.pill.selected{background:#67854d;color:#fff2d6;border-color:#416138;box-shadow:0 2px 0 #395430}.route-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.route-card{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;background:#f5e8c6;border:2px solid #b9a073;box-shadow:0 2px 0 #947342;border-radius:5px;min-height:65px}.route-card.selected{border-color:#698448;background:#f7edc8;box-shadow:0 2px 0 #486037,inset 4px 0 0 #82a152}.route-card.locked{background:#e5d8b9}.route-no{font-size:20px;color:#ae905c;font-weight:900;width:30px}.route-card b{display:block;font-size:13px}.route-card small{display:block;font-size:10px;color:#937850;margin-top:4px}.route-arrow{margin-left:auto;color:#a38350;font-size:25px}.route-card .lock-reason{color:#ad7956;font-size:10px}
.party-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.party-choice{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 3px;background:#e9d7af;border:2px solid #b29a6b;box-shadow:0 2px 0 #947548;border-radius:4px;min-height:114px}.party-choice img{height:67px}.party-choice strong{font-size:10px;white-space:nowrap}.party-choice small{font-size:8px}.party-choice span{font-size:9px;color:#806443}.party-choice.selected{border-color:#6d9148;background:#f0e8b3;box-shadow:0 2px 0 #55713b}.party-choice em{position:absolute;top:4px;right:3px;font-style:normal;color:#fff4d2;background:#6e904d;border-radius:50%;font-size:9px;width:14px;height:14px}.choice-row{display:flex;gap:7px;margin-top:13px}.choice-button{flex:1;border:1px solid #aa9060;border-radius:3px;background:#dfc895;color:#7a623c;padding:9px 7px;min-height:42px;font-size:11px;font-weight:700}.choice-button.selected{background:#688952;color:#fff4d6;border-color:#41623e}.priority-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.priority-item{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px solid #bda878;border-radius:3px;background:#f7eac7;min-height:68px;padding:5px 0;font-size:9px}.priority-item small{font-size:8px;color:#a0895c}.priority-item img{width:27px;height:30px}.check-row{display:flex;align-items:center;gap:7px;margin-top:13px;font-size:11px;line-height:1.5}.dispatch-preview{border-top:1px dashed #c8b17d;margin-top:12px;padding-top:6px}.trip-animals{display:flex;justify-content:center;gap:30px;margin:15px 0}.trip-animals>div{text-align:center;max-width:130px}.trip-animals img{height:100px}.trip-animals b{display:block;font-size:12px}.trip-animals small{display:block;font-size:10px;color:#92734b;margin-top:5px}.animal-selector{display:flex;overflow:auto;gap:6px;margin-bottom:13px}.animal-select{flex:none;min-width:61px;min-height:78px;background:#dfcda5;border:2px solid #aa8b5c;border-radius:5px;padding:4px;display:flex;flex-direction:column;align-items:center;font-size:10px}.animal-select.selected{border-color:#618341;background:#f0e4b8}
.tap-content{position:relative}.tap-target{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:180px;height:185px;margin:-138px auto 20px;border:0;background:radial-gradient(ellipse,#f9d87699,transparent 70%);filter:drop-shadow(0 4px 0 #785a3266);color:#fff3c9;z-index:3;text-shadow:0 2px #614627}.tap-target>.resource-icon{width:145px;height:145px;max-width:100%;max-height:100%;filter:drop-shadow(0 0 13px #ffdc6688)}.tap-target>span{display:block;background:#715031e8;border:2px solid #d6b067;box-shadow:0 3px 0 #3e2f21;border-radius:5px;padding:7px 12px;font-size:15px;font-weight:900;white-space:nowrap}.tap-target>b{font-size:13px;margin-top:5px}.tap-target:active{transform:translateY(3px) scale(.97)}.tap-float{position:absolute;color:#fff7bb;font-size:24px!important;font-weight:900;animation:tapRise .6s ease-out forwards;pointer-events:none;top:25px;text-shadow:0 2px #4d391d}.combo-panel{margin-top:15px}.combo-panel .stat-row>b{font-size:18px}.combo-panel .progress{height:14px}
.landmark-card{min-height:145px;overflow:hidden}.landmark-art{width:100%;height:115px;display:block;margin:0 auto 12px}.effect-description{font-weight:700;color:#617c46;margin-bottom:8px}.recipe-art{width:80px;height:85px;display:block;margin:8px auto}.recipe-row{display:flex;align-items:center;gap:12px}.recipe-row>div{flex:1}.recipe-row>div small{display:block;color:#927349;margin-bottom:7px}.recipe-row>b{color:#a18354;font-size:23px}.recipe-row .resource-list{flex-direction:column;align-items:flex-start}.mission.completed{opacity:.75}.mission .progress{margin-bottom:15px}.collection-strip{display:flex;gap:10px;justify-content:space-between;font-size:11px;color:#6c7346;border-bottom:1px dashed #b6a374;padding-bottom:15px;margin-bottom:18px}.codex-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px}.codex-stamp{border:1px dashed #b89e6b;background:#e1d0a9;color:#9c855d;padding:13px 7px;display:flex;flex-direction:column;align-items:center;gap:7px;min-height:100px;border-radius:5px}.codex-stamp>span{font-size:25px;color:#b39b6e}.codex-stamp b{font-size:11px}.codex-stamp small{font-size:9px}.codex-stamp.unlocked{background:#f7ebc8;color:#647847;border-style:solid;border-color:#a5aa6c}.codex-stamp.unlocked>span{color:#8a9b4b}.codex-detail-symbol{font-size:50px;color:#829152;text-align:center;margin:20px}.log-entry{border-left:3px solid #91a564;padding:10px 12px;background:#f3e6c2;margin:9px 0;border-radius:3px}.log-entry strong{font-size:12px}.log-entry p{font-size:11px;color:#8e754f;margin:5px 0}.empty-note{text-align:center;background:#e4d5b1;border:1px dashed #bba573;padding:27px 16px;border-radius:5px;color:#917a56}.empty-note p{font-size:11px;margin-top:8px}.milestone-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.milestone-grid>div{text-align:center;border:1px solid #dac395;background:#f3e8c9;padding:13px 6px;border-radius:4px}.milestone-grid b{display:block;font-size:25px;color:#658244}.milestone-grid span{font-size:11px;color:#90754b;display:block;margin-top:5px}.talent-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.talent-card .button{width:100%;margin-top:5px}.talent-symbol{font-size:33px;color:#7d9b4d;width:44px;text-align:center}.talent-card h3{margin:0 0 5px}.talent-card p{font-size:11px}.talent-card>div{flex:1}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #d8c499;position:relative;font-size:13px}.setting-row input{width:43px;height:24px;accent-color:#73934d;cursor:pointer}.switch-look{display:none}.settings-panel>.muted{margin-top:12px}.danger-panel{margin-top:22px;border-color:#ac7962}.danger-panel h3{margin-top:0}.text-input{width:100%;border:2px solid #b39a6a;background:#fff1d4;border-radius:4px;min-height:45px;padding:10px;color:#5b452d}
.modal-shade{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0c271fe0;backdrop-filter:blur(3px);padding:18px;z-index:50}.modal{width:100%;max-width:420px;max-height:85dvh;margin:0;overflow:auto;border-width:3px;box-shadow:0 5px 0 #38281e,0 20px 65px #06150ecc;padding:23px 18px 16px}.modal h2{font-size:20px;padding-right:30px;margin-bottom:18px}.modal-body{font-size:13px;line-height:1.7}.modal-intro{margin-bottom:15px;color:#93794e}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions .button{flex:1}.close-button{position:absolute;top:10px;right:10px;width:35px;height:35px;border:1px solid #b39663;border-radius:3px;background:#e4cfa3;color:#876e48;font-size:24px}.system-warning{background:#e8cf99;color:#795634;padding:8px 12px;font-size:11px;border-bottom:1px solid #b39b68;z-index:6}.system-warning .text-button{padding:0 8px;min-height:20px}
#toast-root{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:6px;z-index:80;width:min(90vw,420px);pointer-events:none}.toast{background:#304931f5;color:#fff2d2;border:1px solid #a4b76f;border-radius:5px;padding:10px 17px;box-shadow:0 3px 0 #142b1d;font-size:12px;line-height:1.5;animation:toastIn .15s ease-out}.toast.bad{background:#704937;border-color:#bc9873}.toast-inline{margin:8px 0;padding:8px 10px;font-size:11px}.toast-inline.bad{background:#704937;color:#fff2dc}
.start-screen{min-height:100dvh;position:relative;background:#1e3d2a;overflow:hidden;color:#fff1ce;display:flex;flex-direction:column;align-items:center}.start-screen>.scene-shell{position:absolute;inset:0;height:100%;width:100%;border:0;opacity:.85}.start-screen .scene-vignette{background:linear-gradient(#17392466,#17392430 45%,#132e24ef)}.start-screen .scene-heading{display:none}.start-title{position:relative;margin-top:max(85px,14dvh);text-align:center;text-shadow:0 4px 0 #1e352b;z-index:1}.start-title h1{font-size:68px;font-weight:900;letter-spacing:6px;color:#ffe6a1;margin:12px 0}.start-title p{font-size:15px;line-height:2;color:#eadcb7;letter-spacing:2px}.start-actions{position:relative;width:calc(100% - 70px);max-width:315px;margin-top:auto;z-index:3;padding-bottom:max(55px,7dvh);text-align:center}.start-actions>.button{min-height:57px;font-size:20px;border-width:3px}.start-collection{font-size:11px;color:#d1c597;padding:15px 0 5px}.start-animals{position:absolute;bottom:230px;left:50%;transform:translateX(-50%);display:flex;align-items:flex-end;gap:15px;z-index:1}.start-animals img{width:100px;height:150px;max-height:none;filter:drop-shadow(0 3px 0 #1a302340)}.start-animals img+img{height:160px;width:95px}.boot-screen{min-height:100dvh;background:#25422f;color:#efdfb6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding:30px}.boot-screen h1{font-size:36px}.boot-emblem{font-size:60px;color:#d9bc72}.loading-track{width:165px;height:8px;border:1px solid #799762;background:#132c1f}.loading-track span{display:block;height:100%;background:#b0c57e;animation:load 1.5s ease-in-out infinite}
.offline-notice{display:flex;align-items:center;justify-content:space-between;background:#f0dbad;border-bottom:1px solid #b69a62;padding:4px 12px;font-size:11px;color:#695331;flex:none}.offline-notice .text-button{min-height:32px;padding:4px 8px}.modal-body h3{margin-top:16px}.modal-body .resource-list{gap:7px 12px}.log-entry h3{font-size:11px;margin:7px 0}.log-entry .resource-value b{font-size:12px}
@keyframes tapRise{from{opacity:1;transform:translate(20px,0) scale(.8)}to{opacity:0;transform:translate(30px,-65px) scale(1.1)}}@keyframes toastIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes load{0%{width:0}60%,100%{width:100%}}
@media(min-width:700px){#app{border-left:5px solid #142d23;border-right:5px solid #142d23}.game-shell{height:100dvh;max-height:1100px}.screen-content{padding:18px}.scene-shell{height:300px}.wallet-chip b{font-size:15px}.wallet-chip{font-size:10px}}
@media(max-width:350px){h2{font-size:16px}.wallet-chip .resource-icon{width:20px}.wallet-chip b{font-size:11px}.resource-value{gap:2px;font-size:10px}.resource-list{gap:5px 8px}.stat-row>b{font-size:15px}.upgrade-art{width:75px}.party-choice strong{font-size:9px}.priority-item{font-size:8px}.start-title h1{font-size:56px}.animal-grid{gap:7px}.scene-heading h1{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Original independent raster UI, with dynamic game text kept in live DOM. */
.ui-icon{width:20px;height:20px;vertical-align:middle;flex:none;margin-right:4px}.nav-art{width:29px;height:28px;max-height:28px;object-fit:contain;display:block}.bottom-nav .nav-item{min-width:0;overflow:hidden;gap:2px}.button.art-depart,.button.art-upgrade,.button.art-confirm,.button.secondary{background-color:transparent;background-size:100% 100%;background-repeat:no-repeat;background-position:center;border-color:transparent;box-shadow:none;border-radius:0;min-height:51px;padding-left:36px;text-shadow:0 1px #ffffff60}.button.art-depart{background-image:url(assets/ui/button-depart-gold-footprints.png);color:#543716}.button.art-upgrade{background-image:url(assets/ui/button-upgrade-green-hammer.png);color:#fff6d4;text-shadow:0 1px #2c4327}.button.art-confirm{background-image:url(assets/ui/button-claim-basket.png);color:#563c22}.button.secondary{background-image:url(assets/ui/button-secondary-wood-plank.png);color:#fff1d0;padding-left:16px;text-shadow:0 1px #4c3020}.tap-target>.resource-icon{content:url(assets/ui/button-tap-acorn.png);width:168px;height:168px}.art-board{background-image:var(--board);background-size:100% 100%;background-repeat:no-repeat;min-height:83px;display:flex;flex-direction:column;justify-content:center;padding:19px 25px 18px;text-align:center;margin:0 0 13px;image-rendering:pixelated}.art-board b{font-size:15px;color:#624327;text-shadow:0 1px #fff7dc}.art-board p{font-size:10px;line-height:1.6;color:#80623a;margin-top:5px}.art-board[data-ui-key=ui-adventure-cargo-panel]{padding-bottom:24px;min-height:100px}.art-board[data-ui-key=ui-expedition-route-board]{padding-left:53px}.art-board[data-ui-key=ui-return-journal-scroll]{padding:22px 37px}.upgrade-top{border:12px solid transparent;border-image:url(assets/ui/ui-upgrade-recipe-frame.png) 18% fill stretch;background:transparent;padding:5px 0;gap:8px}.upgrade-top .upgrade-art{width:78px}.upgrade-top .stat-row{font-size:10px}.upgrade-top .stat-row>b{font-size:16px}.upgrade-top .stat-row>small{font-size:8px}.animal-card{background-image:url(assets/ui/frame-companion-card.png);background-size:100% 100%;background-color:transparent;border-color:transparent;padding:18px 10px 12px}.route-card.locked{background-image:url(assets/ui/frame-route-card.png);background-size:100% 100%;background-color:transparent;border-color:transparent;padding:14px 22px}.notice{border:12px solid transparent;border-image:url(assets/ui/panel-leaf-note.png) 21% fill stretch;background:transparent;color:#50643c;padding:2px 4px;line-height:1.7}.modal{border:18px solid transparent;border-image:url(assets/ui/panel-parchment-modal.png) 18% fill stretch;background:#f9edcb;padding:16px 8px 7px}.combo-panel{background-image:url(assets/ui/ui-tap-output-board.png);background-size:100% 100%;border:0;background-color:transparent;box-shadow:none;padding:29px 25px 45px;min-height:220px}.combo-panel:before,.combo-panel:after{display:none}.combo-panel .muted{color:#775b36}.progress{background-image:url(assets/ui/track-expedition-hourglass.png);background-color:transparent;background-size:100% 100%;border:0;height:21px;padding:7px 12px 7px 32px;overflow:hidden}.progress>span{height:7px;max-width:100%;border:0}.combo-panel .progress{background-image:url(assets/ui/track-combo-paws.png);height:27px;padding:8px 14px 12px 34px}.rest-track{background-image:url(assets/ui/track-energy-hearts.png);background-size:100% 100%;height:17px;width:80%;margin:5px auto 0;padding:6px 7px 5px 20px}.rest-track span{height:5px;background:#9ca963;display:block;width:100%}.start-actions>.button.art-depart{padding-left:30px;min-height:64px}.setting-row>span:first-child{display:flex;align-items:center}.setting-row .ui-icon{width:25px;height:25px;margin-right:8px}
@media(max-width:350px){.upgrade-top{border-width:9px}.upgrade-top .upgrade-art{width:58px}.upgrade-top .stat-row>b{font-size:13px}.upgrade-top .stat-row>small{font-size:7px}.art-board{padding-left:20px;padding-right:20px}.art-board b{font-size:13px}}
/* Touch target corrections measured on 320px phones. */
.brand{min-height:44px}.icon-button,.close-button{min-width:44px;min-height:44px;width:44px;height:44px}.pill,.choice-button,.button.small{min-height:44px}.priority-row{grid-template-columns:repeat(6,minmax(44px,1fr));overflow-x:auto;padding-bottom:5px}.priority-item{min-width:44px}.next-level summary{min-height:44px;display:flex;align-items:center}.art-board p{font-size:11px}.upgrade-top{border-width:10px}.upgrade-top .stat-row>b{font-size:18px}.upgrade-top .stat-row>small{font-size:9px}.upgrade-top .stat-row{font-size:11px}
/* Keep live numbers inside the blank faces of the original boards. */
.tap-target{height:225px;margin-top:-168px;text-shadow:none}.tap-target>b{background:#57452e;color:#fff0c2;border:1px solid #a88b50;border-radius:3px;padding:3px 8px;font-size:13px;text-shadow:none;line-height:1.2}.combo-panel{position:relative;padding:41px 39px 65px;min-height:235px;margin-bottom:75px}.combo-panel .stat-row{margin:7px 0}.combo-panel .muted{position:absolute;top:100%;left:8px;right:8px;background:#efdfb7;color:#7d6545;padding:8px;line-height:1.7;margin-top:5px}.route-card.locked{min-height:104px;padding-top:18px;padding-bottom:18px}.route-card.locked>span:nth-child(2){background:#fff1d0df;padding:3px 4px;border-radius:2px}.deficit>.ui-icon{width:16px;height:16px}.upgrade-top .stat-row>b{white-space:nowrap}.upgrade-top .stat-row>small{white-space:nowrap}
@media(max-width:350px){.upgrade-top .upgrade-art{width:58px}.upgrade-top .stat-row>b{font-size:15px}.upgrade-top .stat-row>small{font-size:8px}.upgrade-top .stat-row{font-size:10px}.combo-panel{padding-left:30px;padding-right:30px}}
.brand-row{gap:6px}.inventory-shortcut{display:flex;align-items:center;justify-content:center;padding:3px}.inventory-shortcut .ui-icon{width:31px;height:31px;margin:0}@media(max-width:350px){.season-tag{font-size:9px}.brand{font-size:18px;letter-spacing:1px}.brand small{letter-spacing:2px}}
/* Numeric readability: separate units from values and keep explanatory text on parchment. */
.upgrade-top{display:grid;grid-template-columns:78px minmax(0,1fr);gap:9px;padding:9px 8px;border-width:12px}.upgrade-top .upgrade-art{width:100%;min-width:0}.upgrade-top .facility-art,.upgrade-top .animal-art{max-width:100%;width:100%;height:88px}.upgrade-top .stats{min-width:0}.upgrade-top .stat-row{display:grid;grid-template-columns:1fr auto;gap:2px 5px;margin:5px 0;align-items:center;font-size:11px}.upgrade-top .stat-row>b{font-size:18px}.upgrade-top .stat-row>small{grid-column:1 / -1;text-align:right;padding-right:2px;font-size:10px;line-height:1.5;white-space:normal}.combo-panel{background:linear-gradient(110deg,#fff4d6,#f6e6c0);border:2px solid #a58251;box-shadow:0 3px 0 #705037;padding:14px;min-height:0;margin-bottom:15px}.combo-panel .muted{position:static;margin-top:9px;background:none;padding:0;color:#806844;line-height:1.7}.combo-panel:before,.combo-panel:after{display:block}.art-board[data-ui-key=ui-tap-output-board]{min-height:155px;padding:37px 40px 54px;margin-bottom:16px}.art-board[data-ui-key=ui-tap-output-board] b{font-size:17px}.art-board[data-ui-key=ui-tap-output-board] p{font-size:12px;color:#5c472e;background:#fff0cfcc;border-radius:3px;padding:3px 6px}.tap-content>.tap-target{margin-bottom:12px}[data-reduced-motion=true] *,[data-reduced-motion=true] *:before,[data-reduced-motion=true] *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}
@media(max-width:350px){.upgrade-top{grid-template-columns:56px minmax(0,1fr);padding:7px 3px;gap:6px}.upgrade-top .stat-row{font-size:10px}.upgrade-top .stat-row>b{font-size:16px}.upgrade-top .stat-row>small{font-size:9px}.art-board[data-ui-key=ui-tap-output-board]{padding-left:30px;padding-right:30px}}
/* Independent precheck repairs: text-safe panel interiors and card footers. */
.upgrade-top .stats{padding-right:18px}.modal{border-width:10px;padding:28px 12px 12px}.modal h2{position:relative;background:#fff1d0;color:#533b27;padding:9px 42px 9px 9px;margin-top:3px;border-radius:3px;line-height:1.45}.modal-body{background:#fff2d6;border:1px solid #d9bf8e;border-radius:3px;padding:12px}.modal-actions{background:#f8e8c4;padding-top:8px;margin-top:10px}.modal .close-button{z-index:2;top:9px;right:10px}.animal-card{padding-bottom:24px}.animal-card>small:last-child{background:#fff0cf;color:#654a2d;border:1px solid #d5b782;border-radius:3px;padding:4px 3px;display:block;margin-top:5px;font-size:10px;line-height:1.5}.animal-card>span{background:#fff1cfdd;padding:3px 4px;border-radius:2px;color:#6c5132}.animal-card>b{background:#fff1cfcc;border-radius:2px;padding:3px 2px}

/* Step 2: fixed ornament sizes, explicit text interiors, and compact dispatch controls. */
.scene-shell{height:clamp(275px,70.5vw,338px)}
.start-screen>.scene-shell{height:100%}
.art-board{background:none;border:solid transparent;border-width:34px 21px 20px 35px;border-image:var(--board) 170 105 100 175 fill stretch;min-height:112px;padding:4px 8px;margin-bottom:13px}
.art-board[data-ui-key=ui-expedition-route-board],.art-board[data-ui-key=ui-return-journal-scroll],.art-board[data-ui-key=ui-adventure-cargo-panel]{padding:4px 8px;min-height:112px}
.art-board[data-ui-key=ui-tap-output-board]{padding:5px 8px;min-height:130px}
.art-board b{line-height:1.5}.art-board p{line-height:1.6;margin-top:4px}
.button.art-depart,.button.art-upgrade,.button.art-confirm,.button.secondary{background:none;border:solid transparent;border-width:14px 22px 14px 47px;min-height:58px;padding:1px 5px;box-shadow:none;border-radius:0}
.button.art-depart{border-image:url(assets/ui/button-depart-gold-footprints.png) 62 78 62 165 fill stretch}
.button.art-upgrade{border-image:url(assets/ui/button-upgrade-green-hammer.png) 62 78 62 165 fill stretch}
.button.art-confirm{border-image:url(assets/ui/button-claim-basket.png) 62 78 62 175 fill stretch;border-left-width:50px}
.button.secondary{border-image:url(assets/ui/button-secondary-wood-plank.png) 62 78 62 78 fill stretch;border-left-width:22px}
.button-label{position:relative;z-index:1;display:block;min-width:0;overflow-wrap:anywhere;line-height:1.45}
.start-actions>.button.art-depart{border-width:16px 24px 16px 52px;padding:3px 6px;min-height:67px}
.modal{border-image-slice:155 120 115 120 fill;border-width:31px 24px 23px;padding:10px 8px 8px}
.modal-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px;align-items:stretch}
.modal-actions .button{width:100%;min-width:0;font-size:13px}.modal-actions .button-label{white-space:normal}
.modal-actions:has(.button:only-child){grid-template-columns:1fr}
.modal .close-button{top:1px;right:1px}
.dispatch-options{border:1px solid #c1a06e;border-radius:4px;background:#f8ebc9;margin:10px 0;padding:0 10px;font-size:12px}
.dispatch-options>summary{min-height:44px;padding:11px 0;font-weight:800;color:#62482d;cursor:pointer;line-height:1.7}
.dispatch-options[open]{padding-bottom:10px}.dispatch-options small{display:block;font-size:10px;color:#84643c;line-height:1.8}
.dispatch-options .route-list{margin:4px 0 0}.dispatch-options .party-picker{margin-top:4px}
.selected-companions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:5px}
.selected-companions>div{display:flex;align-items:center;gap:5px;min-width:0;background:#eadbb7;border-radius:4px;padding:5px}
.selected-companions img{width:39px;height:55px;max-height:55px;flex:none}.selected-companions span{min-width:0}
.selected-companions b{display:block;font-size:11px;line-height:1.6}.selected-companions small{display:block;font-size:9px;line-height:1.65;color:#775c37}
.dispatch-panel .dispatch-preview{margin-top:10px}.dispatch-comparison-slot:empty{display:none}
.dispatch-panel>.button[data-action=dispatch]{margin-top:12px}
.route-card.locked{background:none;border:solid transparent;border-width:33px 45px 25px 29px;border-image:url(assets/ui/frame-route-card.png) 220 300 170 190 fill stretch;padding:2px 3px;min-height:124px;gap:7px;box-shadow:none}
.route-card.locked .route-no{font-size:16px;width:20px;flex:none}.route-card.locked .route-arrow{display:none}
.route-card.locked>span:nth-child(2){padding:2px 3px;min-width:0}.route-card.locked small{line-height:1.6}
.animal-card{background-size:100% auto;background-repeat:no-repeat;background-position:center top;background-color:#f1e3c1;border:1px solid #b49564;padding:clamp(26px,8.3vw,40px) 5px 12px;min-height:196px}
.animal-card img{height:clamp(56px,18vw,86px);max-width:100%}.animal-card b{margin-top:3px}
@media(max-width:380px){.modal-shade{padding:14px}.modal{border-width:26px 19px 19px;padding:8px 5px}.modal-actions{grid-template-columns:1fr;gap:6px}.modal-actions .button{font-size:14px}.modal h2{font-size:18px}.selected-companions img{width:31px;height:49px}.selected-companions b{font-size:10px}.selected-companions small{font-size:9px}.dispatch-options{padding-left:8px;padding-right:8px}}
.comparison-intro{font-size:10px;color:#806342;margin:12px 0 7px;line-height:1.6}
.plan-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
.plan-card{min-width:0;padding:8px;border:1px solid #c7ad7d;border-radius:5px;background:#f3e6c6}
.plan-card.selected{border:2px solid #6a8a4e;padding:7px;background:#f8f1d4;box-shadow:inset 0 0 0 2px #d9e2b6}
.plan-card .choice-button{display:flex;flex-direction:column;gap:3px;width:100%;min-height:50px;padding:7px 3px;font-size:13px;line-height:1.5}
.plan-card .choice-button small{font-size:9px;line-height:1.4}
.plan-numbers{margin:9px 0 0}.plan-numbers>div{display:flex;justify-content:space-between;gap:3px;font-size:10px;line-height:1.9}.plan-numbers dt{color:#8a6b43}.plan-numbers dd{margin:0;font-size:12px;font-weight:800;color:#45683b;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-card h3{margin:10px 0 5px;font-size:11px}.comparison-resources{display:grid;grid-template-columns:1fr;gap:4px}
.comparison-resources .resource-value{gap:3px;min-width:0;font-size:10px}.comparison-resources .resource-icon{width:18px;height:20px}.comparison-resources .resource-value b{font-size:12px}
.plan-discarded,.plan-risk,.plan-free,.plan-seed{font-size:10px;line-height:1.7;margin-top:6px;overflow-wrap:anywhere}.plan-discarded{color:#926045}.plan-risk{border-top:1px dashed #d7c197;padding-top:6px;color:#7f5e3d}.plan-seed{color:#597443}.plan-free{color:#527243}
.forecast-note{display:flex;align-items:center;gap:9px;padding:8px;background:#e3e4bd;border:1px solid #a3ac77;border-radius:4px;margin:9px 0}.forecast-art{width:62px;height:60px;flex:none}.forecast-note b{font-size:12px}.forecast-note p{font-size:10px;line-height:1.7}
.offline-sack{float:right;width:72px;height:83px;margin:0 0 8px 8px}
@media(min-width:420px){.comparison-resources{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 2px}.comparison-resources .resource-icon{width:16px;height:18px}.comparison-resources .resource-value{font-size:9px}.comparison-resources .resource-value b{font-size:11px}}
@media(max-width:350px){.plan-columns{gap:6px}.plan-card{padding:6px}.plan-card.selected{padding:5px}.plan-card .choice-button{font-size:12px}.plan-numbers dd{font-size:11px}.forecast-art{width:48px;height:51px}}
/* New source sheets retain their native page geometry and measured text areas. */
.art-board[data-ui-key=ui-encyclopedia-book]{border:0;box-shadow:none;min-height:0;aspect-ratio:1610/977;background:var(--board) center/100% 100% no-repeat;display:grid;grid-template-columns:1fr 1fr;column-gap:14%;align-items:center;text-align:center;padding:13.7% 11.5% 13.2%}
.art-board[data-ui-key=ui-encyclopedia-book] b{font-size:13px;line-height:1.6}.art-board[data-ui-key=ui-encyclopedia-book] p{font-size:11px;line-height:1.65;margin:0}
.art-board[data-ui-key=ui-region-tabs]{border:0;box-shadow:none;min-height:0;aspect-ratio:1974/797;background:var(--board) center/100% 100% no-repeat;display:grid;align-items:center;justify-items:center;padding:0 13.2%}
.art-board[data-ui-key=ui-region-tabs] b{font-size:13px;line-height:1.6;text-align:center}
.art-board[data-ui-key=ui-exchange-ledger]{border:0;box-shadow:none;min-height:0;aspect-ratio:1606/979;background:var(--board) center/100% 100% no-repeat;padding:18.7% 15.6% 15.2%;display:flex;flex-direction:column;justify-content:center}
.art-board[data-ui-key=ui-exchange-ledger] b{font-size:13px;line-height:1.5}.art-board[data-ui-key=ui-exchange-ledger] p{font-size:11px;line-height:1.65}
.forecast-note{display:block;background:none;border:solid transparent;border-width:28px 44px 26px 43px;border-image:url(assets/ui/ui-weather-forecast-board.png) 285 435 266 430 fill stretch;min-height:116px;padding:4px 5px;box-shadow:none}
.forecast-note .forecast-art{display:none}.forecast-note b{display:block;font-size:12px;line-height:1.6}.forecast-note p{font-size:10px;line-height:1.65}
.art-board[data-ui-key=ui-recruit-registration]{border:0;box-shadow:none;min-height:0;aspect-ratio:1659/948;background:var(--board) center/100% 100% no-repeat;padding:15.7% 17.4% 15.6% 33.8%;display:flex;flex-direction:column;justify-content:center}
.art-board[data-ui-key=ui-recruit-registration] b{font-size:12px;line-height:1.5}.art-board[data-ui-key=ui-recruit-registration] p{font-size:10px;line-height:1.6}
