:root{font-family:Noto Sans CJK SC,Microsoft YaHei,system-ui,sans-serif;color:#3e3a30;background:#eee8dd;font-synthesis:none;--paper:#faf7ef;--ink:#38382e;--muted:#797868;--line:#ded8ca;--green:#526b50;--green-dark:#354c36;--copper:#a76c44;--red:#a64f3d;line-height:1.6;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{color:inherit;border:1px solid #d4cebe;border-radius:6px;background:#faf7ef;padding:.55rem .9rem;cursor:pointer;transition:background .16s,border-color .16s,transform .16s}button:hover:not(:disabled){background:#eee8da;border-color:#b0b49c}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.44;cursor:not-allowed}button.primary{color:#fffdf2;background:var(--green);border-color:var(--green)}button.primary:hover:not(:disabled){background:var(--green-dark)}button.text-button{background:none;border-color:transparent;padding:.35rem .4rem;font-size:.8rem;color:var(--green)}button.danger-outline{color:var(--red);border-color:#d9b8a9}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b88c4e;outline-offset:3px}input,select{min-width:0;max-width:100%;color:var(--ink);background:#fffcf4;border:1px solid #d6d0c0;border-radius:5px;padding:.45rem .55rem}select{width:100%}input[type=checkbox]{accent-color:var(--green);width:17px;height:17px;flex-shrink:0}input[type=number]{width:72px}h1,h2,h3,h4,p{margin-top:0}h2,h3,h4{font-family:"Noto Serif CJK SC",Songti SC,serif;line-height:1.4}h2{font-size:1.65rem;font-weight:600;margin-bottom:.65rem}h3{font-size:1.1rem;margin-bottom:.6rem}h4{font-size:.95rem}p{font-size:.9rem}small{font-size:.75rem;color:var(--muted)}a{color:inherit}strong{font-weight:600}.eyebrow{display:block;font-family:system-ui,sans-serif;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);font-weight:650;margin-bottom:.6rem}.muted{color:var(--muted);font-size:.8rem}.error{color:var(--red);font-size:.8rem}.notice{background:#f3ecdc;color:#7c6241;padding:.8rem 1rem;border-left:3px solid #c6a06a;font-size:.83rem;margin:1rem 0;border-radius:3px}.hidden{display:none!important}.actions,.dialog-actions{display:flex;gap:.5rem;flex-wrap:wrap}.panel{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:1.4rem;box-shadow:0 3px 10px #4c452205;margin-bottom:1.2rem}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.panel-heading h3{margin:0}.panel-heading>span{color:var(--muted);font-size:.72rem}.section-heading{margin:1rem 0 1.5rem}.section-heading h2{font-size:1.85rem;margin-bottom:.4rem}.section-heading p{margin:0;color:var(--muted);font-size:.83rem}.stats{display:flex;gap:.4rem;flex-wrap:wrap}.stat{font-size:.72rem;background:#ececde;color:#5a6250;padding:.15rem .4rem;border-radius:3px}.stat strong{color:#3e523d}.costs{display:flex;flex-wrap:wrap;gap:.4rem}.cost{font-size:.73rem;padding:.2rem .4rem;background:#eee9dd;border-radius:3px;white-space:nowrap}.cost small{font-size:.65rem}.cost.missing{background:#f4e1d9;color:var(--red)}.tag{display:inline-block;font-style:normal;font-size:.65rem;border:1px solid #d9c6ab;padding:.05rem .3rem;margin-right:.3rem;border-radius:3px;color:#98713e}.game-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:1.7rem 1.1rem;background:#e5e0d3;border-right:1px solid #d5d0c1;display:flex;flex-direction:column}.brand{display:flex;gap:.65rem;align-items:center;text-decoration:none;font-family:serif;font-weight:600;font-size:1.08rem;line-height:1.6}.brand small{display:block;font-family:inherit;font-size:.65rem;font-weight:400;color:#787365;letter-spacing:.05em}.brand-mark{font-size:2rem;color:var(--green)}.chapter-label{margin:2.6rem .5rem 2rem}.chapter-label strong{font-family:serif;font-size:1rem}.chapter-label small{display:block;margin-top:.5rem}.progress-line{height:3px;background:#cdcdbb;margin-top:1rem}.progress-line i{height:3px;display:block;background:var(--green)}nav{display:grid;gap:.5rem}.nav-button{display:flex;text-align:left;align-items:center;gap:.75rem;border-color:transparent;background:transparent;padding:.8rem .7rem;width:100%;font-size:.9rem}.nav-button small{display:block;font-size:.66rem;margin-top:.1rem}.nav-button.active{background:#f5f1e6;box-shadow:0 2px 6px #44442208;border-color:#dad7c8}.nav-icon{font-size:1.5rem;width:25px;color:var(--green);text-align:center}.sidebar-bottom{margin-top:auto;font-size:.7rem;color:#7d7b6b;padding:.8rem .4rem}.sidebar-bottom button{display:block;margin-top:.5rem}.warm-dot{display:inline-block;height:5px;width:5px;border-radius:50%;background:#bb8b48;margin-right:.4rem}.workspace{min-width:0}.topbar{height:65px;border-bottom:1px solid var(--line);padding:0 2rem;display:flex;justify-content:space-between;align-items:center;background:#f4efe5}.breadcrumb{font-size:.75rem;color:var(--muted)}.breadcrumb span{padding:0 .7rem;color:#bcb7a7}.top-resources{display:flex;gap:1.6rem;align-items:center;font-size:.7rem;color:#898374}.gold{color:#9b733f;font-size:.85rem}.gold b{font-size:1.1rem}.quest-ribbon{margin:1.3rem 2rem 0;padding:.8rem 1rem;background:#e7eadc;border:1px solid #d1d9be;border-radius:7px;display:flex;gap:1rem;align-items:center}.ribbon-icon{font-size:1.6rem;color:var(--green)}.quest-ribbon>div{flex:1;min-width:0}.quest-ribbon small{display:block;font-size:.62rem;color:#737f66}.quest-ribbon strong{font-family:serif;font-size:.92rem}.quest-ribbon div>span{display:block;font-size:.75rem;color:#68715f;margin-top:.1rem}.quest-ribbon button{flex-shrink:0;font-size:.8rem}#main{padding:1rem 2rem 2rem;max-width:1600px;margin:auto;min-height:75vh}.game-footer{padding:1rem 2rem;border-top:1px solid var(--line);font-size:.67rem;color:#969080;display:flex;justify-content:space-between}.tabs{display:flex;gap:1.4rem;border-bottom:1px solid var(--line);margin-bottom:1.4rem}.tabs button{background:transparent;border:0;border-radius:0;padding:.7rem .2rem;font-size:.85rem;color:var(--muted);border-bottom:2px solid transparent}.tabs button.selected{color:var(--green);border-bottom-color:var(--green);font-weight:600}.craft-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1.3rem;align-items:start}.recipe-list{padding:1rem;max-height:950px;overflow:auto}.recipe-list .panel-heading{font-size:.8rem}.recipe-list .panel-heading span{font-size:.65rem}.group-title{font-size:.68rem;color:#9b967e;letter-spacing:.12em;border-top:1px solid var(--line);padding-top:1rem;margin:1rem .4rem .5rem}.recipe-button{width:100%;display:flex;text-align:left;align-items:center;gap:.7rem;border-color:transparent;background:none;padding:.6rem .5rem;font-size:.82rem;margin:.15rem 0}.recipe-button.selected{background:#e7ebdc;border-color:#c9d2b7}.recipe-button small{display:block;font-size:.65rem}.recipe-button>i{font-style:normal;font-size:.65rem;margin-left:auto;color:#9c957e}.recipe-icon{width:30px;height:30px;display:grid;place-items:center;background:#eee7d8;border-radius:4px;color:#9c744c;font-size:1.2rem}.recipe-hero{text-align:center;border-bottom:1px solid var(--line);padding:.5rem 0 1.5rem}.recipe-emblem{height:78px;width:78px;border:1px solid #d6c7a9;border-radius:50%;display:grid;place-items:center;margin:0 auto 1rem;font-size:2.5rem;color:#8d6b42;background:radial-gradient(circle,#e9dfc5,#f7f3e7)}.recipe-hero h2{font-size:1.6rem}.recipe-hero p{color:var(--muted);max-width:550px;margin:0 auto .8rem}.recipe-hero .stats{justify-content:center}.detail-section{padding:1.3rem 0;border-bottom:1px solid var(--line)}.detail-section .panel-heading{margin-bottom:.5rem}.affix-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.affix{display:flex;align-items:flex-start;gap:.45rem;border:1px solid #dedacc;border-radius:5px;padding:.65rem;background:#f9f6ed;cursor:pointer}.affix.checked{background:#e9eedf;border-color:#9aaa83}.affix.locked{opacity:.55}.affix input{margin-top:.2rem}.affix strong{font-size:.8rem;display:block}.affix small{font-size:.69rem;display:block}.affix .costs{margin-top:.4rem}.affix .cost{background:none;padding:0;font-size:.64rem}.craft-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding-top:1.3rem}.craft-bottom h3{font-size:.95rem}.craft-controls{display:flex;flex-direction:column;gap:.6rem;min-width:140px}.craft-controls label{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem}.result-preview{padding:.7rem 0}.result-preview>small{display:block}.result-preview>strong{display:block;font-size:.8rem;margin-bottom:.4rem}.saved-plans{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;padding:.7rem 0;border-top:1px solid var(--line)}.chip{font-size:.67rem;padding:.3rem .5rem}details>summary{cursor:pointer;font-size:.82rem;color:#67715a;padding:.65rem 0}details>p{font-size:.8rem;color:var(--muted)}.garden-intro{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(110deg,#e5ead8,#f7f3e9)}.garden-intro p{max-width:600px;color:#707a61}.garden-decoration{font-size:5rem;color:#7b9163;padding:0 2rem}.plot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.plot{text-align:center;padding:1.5rem 1rem}.plot .eyebrow{text-align:left}.sprout{font-size:4rem;color:#819565;height:120px;display:grid;place-items:center;background:radial-gradient(ellipse,#e9ebd7,transparent 65%)}.plot.mature .sprout{color:#6d884f}.plot h3{margin:.5rem 0}.plot p{color:var(--muted);font-size:.76rem;min-height:42px}.plot select{margin-bottom:.8rem}.growth{display:flex;gap:.3rem;justify-content:center;margin:1rem}.growth i{height:6px;width:50px;background:#dedecb;border-radius:5px}.growth i.filled{background:#8eaa73}.harvest-tools{display:flex;align-items:center;justify-content:space-between;gap:1rem}.harvest-tools p{margin:0}.market-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:1.2rem;align-items:start}.trade-row{display:flex;justify-content:space-between;gap:.7rem;align-items:center;padding:.9rem 0;border-top:1px solid var(--line)}.trade-row strong{font-size:.85rem}.trade-row small{display:block;font-size:.68rem}.trade-row button{font-size:.75rem;margin-left:.3rem;padding:.35rem .5rem}.material-row{display:grid;grid-template-columns:minmax(0,1fr) 40px auto;gap:.5rem;align-items:center;padding:.6rem 0;border-top:1px solid #e9e4d8}.material-row b{font-size:.8rem}.material-row small{display:block;font-size:.66rem;line-height:1.4}.material-row>strong{text-align:right;font-size:.85rem}.material-cabinet{max-height:600px;overflow:auto}.inventory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.inventory-item{padding:1rem;border:1px solid var(--line);border-radius:5px;background:#f8f4e9}.inventory-item h4{margin:.4rem 0}.inventory-item p{font-size:.7rem;color:var(--muted);margin-bottom:.6rem}.item-type{font-size:.62rem;color:#997743}.inventory-foot{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap;margin-top:.7rem}.inventory-foot b{font-size:.8rem;margin-right:auto}.empty-state{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:.85rem}.team-select .primary{margin-top:1rem}.hero-select-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.hero-choice{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:5px;padding:.7rem;background:#f7f3e8;cursor:pointer}.hero-choice.selected{background:#e9eddf;border-color:#9baa89}.hero-choice.locked{opacity:.5}.hero-choice small{display:block;font-size:.66rem}.hero-choice b{font-size:.83rem}.portrait{--hero:#7d865c;background:color-mix(in srgb,var(--hero) 18%,#f8f3df);border:1px solid color-mix(in srgb,var(--hero) 60%,#ede4cc);height:68px;width:62px;flex-shrink:0;border-radius:50% 50% 8px 8px;position:relative;overflow:hidden;display:grid;place-items:center}.portrait span{z-index:1;color:var(--hero);font-size:2rem;text-shadow:1px 2px #fff9}.portrait i{position:absolute;bottom:-10px;height:37px;width:48px;border-radius:50% 50% 0 0;background:color-mix(in srgb,var(--hero) 20%,transparent)}.portrait.small{height:42px;width:38px}.portrait.small span{font-size:1.3rem}.portrait.small i{width:32px;height:23px}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.hero-heading{display:flex;align-items:center;gap:.7rem;margin-bottom:.8rem}.hero-heading h3{margin:0;font-size:1.25rem}.hero-heading small{font-size:.65rem}.hero-panel>p{font-size:.73rem;min-height:58px;color:var(--muted)}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;border-block:1px solid var(--line);padding:.6rem 0;margin-bottom:1rem}.hero-stats span{font-size:.62rem;color:var(--muted);text-align:center}.hero-stats b{display:block;font-size:1rem;color:#56654b;font-family:serif}.equipment-label{display:block;font-size:.74rem;margin-bottom:.7rem;color:#7b7968}.equipment-label select{font-size:.73rem;margin-top:.25rem}.equipment-preview{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:1rem}.equipment-preview .stat{font-size:.6rem}.supply-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.supply-slot{padding:1rem;border:1px dashed #d3cdbb;background:#f5f0e4;border-radius:6px}.supply-slot label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.6rem}.supply-slot select{margin-top:.3rem;font-size:.76rem}.preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.preset-grid>div{border-left:2px solid #d9ddc7;padding-left:.8rem}.preset-grid strong{display:block;font-size:.83rem}.preset-grid small{display:block;min-height:22px;font-size:.65rem}.preset-grid button{font-size:.73rem;padding:.3rem .6rem;margin-right:.3rem}.route-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1.2rem;align-items:start}.route-card{width:100%;display:block;text-align:left;margin-bottom:.8rem;padding:1rem}.route-card.selected{border-color:#9aaa83;background:#eef0e1}.route-card strong{display:block;font-family:serif;font-size:1rem}.route-card small{display:block;margin:.5rem 0;font-size:.7rem}.route-card>span:last-child{font-size:.7rem;color:var(--green)}.route-card .eyebrow{font-size:.58rem}.route-detail h2{font-size:1.5rem}.route-detail>p{color:var(--muted)}.target-select{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.8rem;background:#efeadc;padding:.65rem .8rem;border-radius:5px}.target-select select{max-width:220px;font-size:.8rem}.route-path{padding:1rem 0}.route-node{display:flex;gap:1rem;position:relative;padding:.7rem 0}.route-node:not(:last-child):before{content:"";position:absolute;left:14px;top:40px;bottom:-5px;width:1px;background:#d8d6c3}.route-node>div{flex:1;min-width:0}.node-number{width:30px;height:30px;display:grid;place-items:center;background:#e5e8d7;border:1px solid #c8d0b4;border-radius:50%;font-size:.75rem;color:var(--green);flex-shrink:0}.route-node h4{font-family:inherit;font-size:.8rem;margin:.2rem 0 .7rem}.route-node p{font-size:.75rem;color:var(--muted)}.enemy-intel{display:flex;gap:.7rem;align-items:center;margin:.4rem 0;padding:.6rem .7rem;background:#eeeadd;border-radius:5px}.enemy-icon{font-size:1.8rem;color:#9c8060;width:35px;flex-shrink:0;text-align:center}.enemy-intel>span:last-child{flex:1;min-width:0}.enemy-intel strong{font-size:.8rem}.enemy-intel small{display:block;font-size:.65rem}.enemy-intel .tag{margin-top:.3rem}.route-bottom{border-top:1px solid var(--line);padding-top:1rem;display:flex;gap:.6rem;align-items:center}.route-bottom>div{flex:1}.route-bottom strong{font-size:.75rem}.route-bottom p{font-size:.68rem;color:var(--muted);margin:0}.route-bottom button{font-size:.78rem}.expedition-status{display:flex;gap:2rem;align-items:center;justify-content:space-between}.travel-team{display:flex;gap:1.5rem;flex:1}.travel-team>div{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.travel-team>div>span{min-width:75px;flex:1}.travel-team b{font-size:.82rem}.travel-team small{display:block;font-size:.65rem}.travel-loot{max-width:280px;border-left:1px solid var(--line);padding-left:1rem}.travel-loot b,.travel-loot small{display:block}.travel-loot .cost{font-size:.6rem}.active-node{text-align:center;padding:2rem}.active-node>.enemy-intel{max-width:480px;margin:.5rem auto;text-align:left}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;margin:1.5rem auto;max-width:800px;text-align:left;align-items:stretch}.choice-grid>div{border:1px solid var(--line);padding:1rem;border-radius:7px}.choice-grid>div>.primary,.choice-grid>div>button{margin-top:.8rem;width:100%}.large-choice{text-align:center;padding:2rem 1rem;background:#f5f1e5;min-height:230px}.large-choice>span{font-size:3rem;color:#8b8057;display:block}.large-choice strong{display:block;margin:.5rem;font-size:1.15rem;font-family:serif}.large-choice small{display:block;font-size:.8rem}.quiet-choice{text-align:center}.quiet-choice>span{font-size:2.7rem;color:#839363}.quiet-choice p{font-size:.8rem;color:var(--muted)}.route-retreat{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:1rem;margin-top:2rem;text-align:left;gap:1rem}.route-retreat p{font-size:.75rem;max-width:500px;margin:0;color:var(--muted)}.route-retreat button{flex-shrink:0}.health-bar{height:5px;border-radius:3px;background:#d9d8c7;overflow:hidden;margin:.3rem 0}.health-bar i{display:block;height:100%;background:#889c6d;transition:width .2s}.battle-stage{background:radial-gradient(ellipse at center,#f5f2e4,#e7e5d6);padding:1.2rem 1.5rem}.battle-topline{display:flex;justify-content:space-between;color:#99917d;font-size:.75rem;border-bottom:1px solid #d8d6c4;padding-bottom:.6rem}.combatants{display:grid;grid-template-columns:1fr 30px 1fr;gap:.8rem;align-items:center;min-height:300px;padding:2rem 0}.battle-side{display:flex;gap:.7rem;justify-content:center;align-items:center;min-width:0}.battle-unit{flex:1;max-width:150px;text-align:center;border:1px solid #d4d5be;border-radius:8px;padding:1rem .55rem;background:#fbf8ecb8;min-width:0;transition:opacity .2s,transform .2s}.battle-unit .portrait{margin:auto}.battle-unit h3{font-size:.85rem;margin:.7rem 0 .5rem}.battle-unit small{font-size:.65rem}.battle-unit.fallen{opacity:.35;filter:grayscale(1)}.battle-unit.acting{transform:translateY(-5px);border-color:#a2ae83;box-shadow:0 5px 10px #7a865322}.enemy-portrait{width:65px;height:68px;margin:auto;font-size:2.7rem;display:grid;place-items:center;background:#d9cbb8;border:1px solid #bfa687;color:#846548;border-radius:45% 45% 12px 12px}.enemies .health-bar i{background:#b58b68}.versus{color:#b4a789;font-size:1.5rem;text-align:center}.status-chips{min-height:25px;display:flex;gap:.2rem;flex-wrap:wrap;justify-content:center;font-size:.6rem}.status-chips span{background:#e2e6d3;padding:.05rem .3rem;border-radius:3px}.status-chips .poison{background:#e2dfeb;color:#80608c}.battle-caption{min-height:60px;text-align:center;font-size:.9rem;padding:1rem;background:#f6f3e7;border:1px solid #d9d7c5;border-radius:5px}.battle-controls{display:flex;justify-content:center;gap:.65rem;align-items:center;flex-wrap:wrap;margin-top:1.2rem}.battle-controls button{font-size:.8rem}.speed-controls{display:flex;gap:.2rem;background:#e0e2d1;padding:.2rem;border-radius:4px}.speed-controls button{padding:.25rem .5rem;border-color:transparent;background:none}.speed-controls button.selected{background:#fcf9ee;color:var(--green);box-shadow:0 1px 3px #2221}.battle-result{text-align:center}.battle-result h2{font-size:1.5rem}.battle-result p{color:var(--muted)}.battle-result ul{display:inline-block;text-align:left;font-size:.8rem;color:#627257}.timeline{max-height:500px;overflow:auto}.event-row{padding:.2rem .5rem;border-bottom:1px solid #e7e1d3}.event-row summary{font-size:.75rem;display:flex;gap:.7rem}.event-row summary span{font-family:monospace;color:#a0885f;min-width:30px}.event-row p{font-size:.72rem;margin:.1rem 0 .4rem;padding-left:2.8rem}.event-row small{display:block;padding-left:2.8rem;font-size:.6rem}.journal-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:1.2rem;align-items:start}.quest-entry{border-top:1px solid var(--line);padding:.3rem 0}.quest-entry summary{display:flex;align-items:center;gap:.6rem}.quest-entry summary>span{width:20px;color:#81936c}.quest-entry summary small{margin-left:auto;font-size:.63rem}.quest-entry strong{font-size:.8rem;color:var(--ink)}.quest-entry p{margin:.4rem 0;font-size:.75rem}.quest-entry.current{border-left:2px solid #8b9c70;padding-left:.65rem}.quest-entry button{display:block;margin:.6rem 0;font-size:.8rem}.recruit-row{display:flex;gap:.6rem;align-items:center;border-top:1px solid var(--line);padding:.8rem 0}.recruit-row>span{flex:1;min-width:0}.recruit-row b{font-size:.75rem;display:block}.recruit-row small{display:block;font-size:.65rem}.recruit-row button{font-size:.7rem;padding:.35rem .5rem;flex-shrink:0}.spaced-heading{margin-top:1.5rem}.story-link{display:flex;width:100%;justify-content:space-between;text-align:left;border:none;border-bottom:1px solid var(--line);background:none;border-radius:0;font-size:.8rem}.story-link small{font-size:.65rem;flex-shrink:0}.side-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.side-quest{border:1px solid var(--line);border-radius:5px;padding:1rem;background:#f5f1e6}.side-quest h4{margin:.4rem 0}.side-quest p{font-size:.72rem;color:var(--muted);min-height:50px}.side-quest small{font-size:.6rem}.side-quest button{font-size:.7rem}.side-quest.done{background:#edf0e2}.report-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:1.3rem}.report-list{max-height:500px;overflow:auto}.report-list button{display:block;width:100%;text-align:left;border-color:transparent;border-bottom-color:var(--line);border-radius:0;background:none;padding:.65rem .5rem}.report-list button.selected{background:#e8ecdc}.report-list strong{display:block;font-size:.75rem}.report-list small{font-size:.65rem}.report h3{font-size:1rem}.report p,.report li{font-size:.76rem}.report ul{padding-left:1.2rem;color:#66775a}.comparison{margin-top:1rem;border-top:1px solid var(--line)}.comparison p{font-size:.75rem}.prose p{font-size:.9rem;line-height:1.9;color:#666451}.settings-form{display:grid;gap:1rem;margin:1.4rem 0}.settings-form label{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;gap:1rem}.settings-form select{width:150px}.settings-form input[type=range]{width:200px}.save-warning{margin:1rem 2rem;background:#f3dcd0;border:1px solid #c9896e;padding:.7rem 1rem;font-size:.8rem;color:#894831;border-radius:5px}.toast{position:fixed;bottom:22px;left:calc(50% + 90px);transform:translate(-50%);background:#3e4d39;box-shadow:0 5px 25px #0002;color:#fffdf0;border:1px solid #667957;padding:.7rem 1.2rem;border-radius:6px;font-size:.8rem;max-width:min(700px,80vw);z-index:20;opacity:0;pointer-events:none}.toast.visible{opacity:1}.debug{font-size:.7rem;color:#8b5a3d;background:#f0dfb8;padding:.2rem .5rem;border-radius:4px}.title-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;background:radial-gradient(ellipse at top,#f7f3e5,#e5e3d4);text-align:center;position:relative;overflow:hidden}.title-screen:before,.title-screen:after{content:"";position:absolute;border:1px solid #bfc6a648;width:600px;height:600px;transform:rotate(45deg);pointer-events:none;z-index:0}.title-screen:after{width:680px;height:680px}.title-screen>*{position:relative;z-index:1}.title-orbit{font-size:2rem;width:70px;height:70px;display:grid;place-items:center;border:1px solid #bcbd9b;border-radius:50%;color:#919967;margin-bottom:1.4rem;background:#f2edda}.title-screen h1{font-family:serif;font-size:3.7rem;letter-spacing:.18em;color:#45563d;margin:.3rem 0;font-weight:500}.title-screen .subtitle{font-family:serif;letter-spacing:.24em;color:#8f7b56;margin:.4rem 0 1.5rem}.title-copy{color:#7b7d6c;line-height:1.9;font-size:.85rem}.slot-grid{width:min(1000px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.4rem}.save-slot{background:#f9f6e9d9;border:1px solid #d4d5bd;border-radius:8px;padding:1.4rem;text-align:left;box-shadow:0 4px 12px #62632608}.save-slot h3{font-size:1.02rem}.save-slot p{font-size:.72rem;color:#8c8978;min-height:42px}.save-slot button{font-size:.75rem}.title-footer{display:flex;align-items:center;gap:1rem;margin-top:1.5rem}.title-footer span{font-size:.65rem;color:#91927e}.title-footer button{font-size:.75rem}dialog{color:var(--ink);background:var(--paper);border:1px solid #c8c8af;border-radius:10px;box-shadow:0 20px 100px #24291655;max-width:min(680px,92vw);max-height:85vh;padding:2rem;overflow:auto}dialog::backdrop{background:#30352a88;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog h2{font-size:1.5rem}dialog p{color:#74725e}dialog .dialog-actions{justify-content:flex-end;margin-top:1.5rem}.sr-only,.skip-link{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link:focus{width:auto;height:auto;clip:auto;padding:1rem;top:5px;left:230px;background:#fff;z-index:100}pre{font-size:.7rem;overflow:auto}.reduced-motion *{transition:none!important;animation:none!important}.reduced-motion .battle-unit.acting{transform:none}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media(max-width:1200px){.game-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:1.5rem .8rem}.brand{font-size:.95rem}.brand small{font-size:.57rem}.craft-layout,.route-layout{grid-template-columns:220px minmax(0,1fr)}#main{padding:1rem 1.3rem 2rem}.topbar{padding:0 1.3rem}.quest-ribbon{margin:1.1rem 1.3rem 0}.panel{padding:1.1rem}.team-grid{gap:.6rem}.hero-panel{padding:.9rem}.hero-select-grid{gap:.5rem}.hero-choice{padding:.5rem}.hero-choice .portrait{display:none}.inventory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.battle-unit{padding:.7rem .3rem}.battle-side{gap:.4rem}.market-grid{gap:1rem}.affix-grid{gap:.4rem}.affix{padding:.5rem}.combatants{gap:.4rem;grid-template-columns:1fr 15px 1fr}.toast{left:calc(50% + 80px)}}@media(max-width:900px){.game-shell{grid-template-columns:150px minmax(0,1fr)}.sidebar{padding:1rem .5rem}.brand{font-size:.8rem}.brand-mark{display:none}.brand small{font-size:.5rem}.nav-button{font-size:.8rem;padding:.7rem .4rem}.nav-icon{font-size:1.2rem}.chapter-label{margin:2rem .3rem}.craft-layout,.route-layout{grid-template-columns:180px minmax(0,1fr);gap:.7rem}.affix-grid,.market-grid,.journal-grid,.team-grid{grid-template-columns:1fr}.hero-panel>p{min-height:0}.team-grid .hero-panel{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.hero-heading{grid-column:1}.hero-panel>p{grid-column:2;grid-row:1}.hero-stats,.equipment-preview{grid-column:1/-1;margin:0}.supply-grid{gap:.5rem}.supply-slot{padding:.6rem}.hero-select-grid{grid-template-columns:repeat(2,1fr)}.plot-grid{gap:.5rem}.garden-intro{padding:1rem}.garden-decoration{padding:0 .5rem}.harvest-tools{display:block}.travel-team{gap:.5rem}.travel-team .portrait{display:none}.battle-stage{padding:.8rem}.battle-unit .portrait,.enemy-portrait{width:43px;height:49px;font-size:1.9rem}.battle-unit .portrait span{font-size:1.6rem}.battle-unit h3{font-size:.7rem}.battle-unit small{font-size:.55rem}.battle-unit{padding:.65rem .3rem}.combatants{min-height:250px}.quest-ribbon>div>span{font-size:.65rem}.top-resources{gap:.8rem}.side-grid{grid-template-columns:repeat(2,1fr)}.report-layout{grid-template-columns:180px minmax(0,1fr)}}@media(max-width:650px){.game-shell{display:block}.sidebar{position:static;width:100%;height:auto;display:block;padding:.8rem;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:1rem}.brand small,.chapter-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:.3rem;margin-top:.6rem}.nav-button{justify-content:center;font-size:.7rem;padding:.5rem .2rem;gap:.3rem}.nav-button small{display:none}.nav-icon{font-size:1rem;width:auto}.topbar{height:45px;padding:0 .8rem}.top-resources{font-size:.55rem}.gold{font-size:.75rem}#main{padding:1rem .8rem}.quest-ribbon{margin:.8rem .8rem 0;padding:.6rem;gap:.5rem}.quest-ribbon strong{font-size:.8rem}.quest-ribbon button{font-size:.65rem;padding:.4rem}.quest-ribbon>div>span{display:none}.ribbon-icon{font-size:1.2rem}.craft-layout,.route-layout{display:block}.recipe-list{max-height:220px;margin-bottom:1rem}.recipe-list .group-title{display:none}.recipe-list .recipe-button{display:inline-flex;width:auto;max-width:100%;margin:.2rem;padding:.4rem}.recipe-list .recipe-button small,.recipe-list .recipe-button i{display:none}.recipe-list .recipe-icon{width:22px;height:22px;font-size:.9rem}.recipe-list .panel-heading{margin-bottom:.4rem}.affix-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.craft-controls{min-width:115px}.section-heading h2{font-size:1.5rem}.panel{padding:1rem}.plot-grid{grid-template-columns:1fr}.plot{display:grid;grid-template-columns:80px 1fr;gap:.3rem 1rem;text-align:left;align-items:center}.plot .eyebrow{grid-column:1/-1}.sprout{grid-row:2/6;height:100px;font-size:3rem}.plot p{min-height:0}.plot h3{margin:0}.plot .growth{margin:.5rem;justify-content:flex-start}.garden-decoration{display:none}.supply-grid,.preset-grid,.side-grid,.inventory-grid{grid-template-columns:1fr}.preset-grid{gap:1rem}.team-grid .hero-panel{display:block}.hero-panel .hero-stats{margin-bottom:1rem}.hero-select-grid{grid-template-columns:repeat(2,1fr)}.travel-team{display:grid;gap:.6rem}.expedition-status{gap:1rem}.travel-loot{max-width:45%}.choice-grid{grid-template-columns:1fr;gap:.7rem}.active-node{padding:1rem}.large-choice{min-height:180px}.route-retreat{display:block}.route-retreat button{margin-top:.6rem}.combatants{display:flex;flex-direction:column;gap:1rem;padding:1rem 0}.battle-side{width:100%}.battle-unit{max-width:130px}.versus{font-size:1rem}.battle-unit .portrait,.enemy-portrait{height:50px;width:45px}.report-layout{display:block}.report-list{max-height:180px;margin-bottom:1rem}.route-list{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.route-card{padding:.7rem;margin:0}.route-card small{display:none}.route-card .eyebrow{font-size:.5rem}.route-card strong{font-size:.85rem}.route-detail{margin-top:1rem}.route-bottom{flex-wrap:wrap}.route-bottom>div{flex-basis:100%}.toast{left:50%;max-width:94vw;width:max-content;bottom:12px;font-size:.72rem}.game-footer{padding:1rem .8rem;font-size:.55rem}.title-screen{padding:2rem 1rem}.title-screen h1{font-size:2.6rem}.title-screen .subtitle{font-size:.8rem}.slot-grid{grid-template-columns:1fr;gap:.7rem}.save-slot{padding:1rem}.save-slot p{min-height:0;margin-bottom:.6rem}.title-footer{display:block}.title-footer span{display:block;margin-top:.6rem}.title-screen:before,.title-screen:after{display:none}.save-warning{margin:.6rem .8rem}.tabs{gap:.9rem}.tabs button{font-size:.75rem}.skip-link:focus{left:5px}}
