:root{color-scheme:light;font-family:'Arial Rounded MT Bold','Hiragino Maru Gothic ProN',system-ui,sans-serif;background:#f9edcf;color:#65452f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(#e6cda0 1px,transparent 1px),#f9edcf;background-size:18px 18px}header{min-height:84px;border-bottom:3px solid #e9c99d;background:#fff9e9;display:flex;align-items:center;justify-content:space-between;padding:14px 36px;gap:15px}a{color:#c44f3d;text-decoration:none;font-size:23px;font-weight:850;letter-spacing:1px}a span{display:block;color:#957553;font-size:11px;letter-spacing:1px;margin-top:3px}.preview-label{font-size:11px;color:#96704d;background:#f4e5c8;border-radius:20px;padding:8px 13px}main{max-width:1580px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;padding:28px}button{font:inherit;color:inherit;cursor:pointer;transition:background .15s,box-shadow .15s}button:focus-visible,.map-viewport:focus-visible{outline:3px solid #cb6048;outline-offset:4px}.tree-shell{background:#fff9e9;border:3px solid #c89360;border-radius:25px;box-shadow:0 7px 0 #dfbd87,0 14px 25px #a57b3c12;overflow:hidden}.toolbar{padding:22px 25px;display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #f0d6ab;background:#fff5db;gap:12px}small{font-size:10px;letter-spacing:1.5px;color:#ab7851;font-weight:700}h1{font-size:22px;letter-spacing:1px;margin:4px 0 0;color:#bb4f3c}.growth{display:flex;gap:3px;background:#eedfbd;padding:5px;border-radius:18px}.growth button{border:0;border-radius:13px;background:transparent;font-size:11px;padding:8px 12px;color:#806043;font-weight:700}.growth button[aria-pressed=true]{background:#d9694e;color:#fffaf0;box-shadow:0 3px 0 #b75039}.map-viewport{height:650px;overflow:auto;background:radial-gradient(ellipse at center,#ffecbb80,transparent 60%),radial-gradient(#dcc7a044 1.5px,transparent 1.5px),#fffbef;background-size:auto,24px 24px,auto;position:relative;scrollbar-color:#d1af7e #fff4db}#map{position:relative;margin:auto;transform-origin:top left;width:980px;height:840px}.connections{position:absolute;width:980px;height:840px;overflow:visible;pointer-events:none}.orbit{fill:none;stroke:#ceba92;stroke-opacity:.2;stroke-width:2;stroke-dasharray:3 10}.link-shadow{stroke:#fff9ea;stroke-width:11;fill:none;stroke-linecap:round}.link{stroke:#d6cbb8;stroke-width:5;fill:none;stroke-linejoin:round;stroke-linecap:round}.link.done{stroke:#86b768}.link.available{stroke:#e6ac48;stroke-dasharray:6 8}.skill{position:absolute;width:112px;transform:translate(-50%,-50%);text-align:center}.skill button{width:72px;height:72px;border:3px solid #d0b998;border-radius:19px;background:#eee6d7;box-shadow:inset 0 3px 0 #fff9ef,0 5px 0 #d9c4a5;position:relative;padding:11px;display:block;margin:auto}.skill button:hover{box-shadow:inset 0 3px 0 #fff9ef,0 5px 0 #bca181,0 0 0 5px #edbd5c33}.skill.done button{background:#dceec7;border-color:#84ad64;box-shadow:inset 0 3px 0 #f4ffdf,0 5px 0 #9cbf7d}.skill.available button{background:#ffe09a;border-color:#e1a443;box-shadow:inset 0 3px 0 #fff2c9,0 5px 0 #dfb05f}.skill.locked button svg{filter:grayscale(.65);opacity:.65}.skill.selected button{outline:3px solid #d8644b;outline-offset:6px}.skill .title{display:inline-block;margin-top:13px;font-size:12px;line-height:1.3;white-space:nowrap;background:#fff9e9e8;border-radius:12px;padding:4px 7px;color:#88765f;font-weight:700}.skill.done .title{color:#547640}.skill.available .title{color:#986022}.skill.root button{width:94px;height:94px;border-radius:29px;border-color:#d4694e;background:#ffd888;padding:18px;box-shadow:inset 0 4px 0 #ffedbb,0 6px 0 #c36a43}.skill .status{position:absolute;right:-7px;bottom:-6px;min-width:23px;background:#fff8e8;border:2px solid #b9a182;border-radius:12px;color:#75644c;font-size:10px;font-weight:800;padding:2px 5px}.skill.done .status{background:#679249;color:#fffce9;border-color:#fff8e8}.skill.available .status{background:#d96b48;color:#fff9e5;border-color:#fff8e8}.sector{position:absolute;color:#b6926b;font-size:13px;font-weight:700;letter-spacing:1px;background:#f3e7cf;border-radius:18px;padding:6px 15px}.supply{left:85px;top:365px;color:#698443;background:#e7eed4}.kitchen{right:85px;top:365px;color:#ba6741;background:#fae2ca}.service{left:85px;top:465px;color:#5f8b96;background:#e0eff0}.shop{right:85px;top:465px;color:#967398;background:#eee1ed}.map-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-top:2px solid #efdcba;gap:10px;background:#fff5dc}.legend{display:flex;gap:16px;font-size:10px;color:#887154}.legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:#c8baa4}.legend .green:before{background:#84b263}.legend .gold:before{background:#e6af4a}.map-footer button{background:#fffaf0;border:2px solid #dbc096;border-radius:12px;padding:6px 10px;font-size:12px;box-shadow:0 2px 0 #e5cca1}.map-footer button:hover{background:#ffe3a5}aside{padding:24px 20px;background:#fff9e9;border:2px solid #e1c59b;border-radius:24px;box-shadow:0 5px 0 #ead6b1;align-self:start}#detail{padding-top:24px}.detail-icon{width:86px;height:86px;padding:15px;border-radius:24px;background:#e8f0d4;border:2px solid #a2bc7c;box-shadow:inset 0 3px 0 #f6ffdf,0 4px 0 #c7d6a7}h2{font-size:20px;margin:22px 0 10px;color:#785037}.branch-name{font-size:11px;color:#99805d;letter-spacing:1px}.state{display:inline-block;font-size:11px;font-weight:700;color:#ac682b;background:#ffe4a8;border-radius:14px;padding:6px 12px;margin:12px 0}#detail p{font-size:13px;line-height:1.9;color:#8b7053}#detail dl{margin:20px 0;border-top:2px dotted #e7d4b4}#detail dl div{border-bottom:2px dotted #e7d4b4;padding:13px 0}dt{font-size:10px;color:#a98c6a;margin-bottom:6px}dd{margin:0;font-size:12px;color:#775b3e}.branch-guide{margin-top:30px;padding-top:22px;border-top:2px dotted #e7d4b4}.branch-guide p{display:flex;font-size:11px;align-items:center;gap:9px}.branch-guide i{width:7px;height:7px;border-radius:50%}.branch-guide span{color:#a28a6a;margin-left:auto}.preview-note{font-size:10px;color:#a18b6c;line-height:1.9;margin-top:28px}.pixel-icon{width:100%;height:100%;image-rendering:pixelated;shape-rendering:crispEdges}@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 245px;padding:18px;gap:16px}.toolbar{padding:18px 14px}.growth button{padding:7px}.map-viewport{height:540px}.legend{gap:9px}.map-footer{padding:12px}aside{padding:20px 15px}}@media(max-width:700px){header{padding:12px 18px;min-height:70px}.preview-label{font-size:9px;max-width:118px;line-height:1.6;padding:7px 10px}a{font-size:21px}main{grid-template-columns:1fr;padding:14px 12px;gap:18px}.toolbar{padding:15px 12px}h1{font-size:18px}.growth button{font-size:10px;padding:7px 6px}.map-viewport{height:440px}aside{display:grid;grid-template-columns:1fr}.map-footer{align-items:flex-start;flex-wrap:wrap}.legend{font-size:10px;padding:7px 0}.skill .title{font-size:12px}.branch-guide{display:none}}
/* Branching and build-planning preview */
#map{width:1400px;height:1120px}.connections{width:1400px;height:1120px}.supply{left:225px;top:490px}.kitchen{right:225px;top:490px}.service{left:225px;top:620px}.shop{right:225px;top:620px}.link.path-selected{stroke:#d88055;stroke-width:7}.merge-link{stroke-dasharray:8 6}.merge-node button{border-style:double;border-width:5px;background:#f4e1d7}.merge-node .title{color:#a45f4f}.merge-node.done button{background:#e4edc4}.build-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px 8px}.build-tools b{color:#c65e3e;font-size:24px}.build-tools span{font-size:11px;color:#a78c65}.templates{display:flex;flex-wrap:wrap;gap:5px}.templates button,.focus-tools button{background:#fff6e1;border:1px solid #dabe91;padding:7px 10px;border-radius:12px;font-size:11px}.templates button:hover,.focus-tools button:hover{background:#ffe6a4}#build-stats{display:grid;grid-template-columns:repeat(4,1fr) 1.6fr;gap:6px;padding:8px 20px}#build-stats>div{padding:9px;border-radius:13px;background:#f3ecd9;border:1px solid #e7d9bc}#build-stats span{display:block;font-size:10px;color:#967956}#build-stats b{display:block;font-size:17px;padding-top:4px}#build-stats small{font-size:9px;letter-spacing:0;font-weight:400}#build-stats .bottleneck{background:#ffe9c0;border-color:#e5b872}#build-stats .profit-stat{background:#edf1d6}#build-notice{font-size:11px;line-height:1.8;margin:5px 20px;color:#917250}.focus-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 20px 15px;border-bottom:1px solid #f0dfbd}.focus-tools span{font-size:10px;color:#a38b67;margin-right:5px}.effect-list{background:#f4eedb;padding:6px 12px;border-radius:15px}.effect-list>div{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:6px 0}.effect-list strong{color:#6d8c43}.comparison{background:#f9edce;border-radius:15px;padding:12px;margin-top:15px}.comparison p{margin:6px 0!important;font-size:11px!important}.prereq{display:inline-block;margin:3px 4px 3px 0;border:1px solid #d9c7a4;border-radius:10px;padding:6px 8px;font-size:11px;background:#fff6e3}.prereq.met{background:#eaf0d7;border-color:#b4c58e;color:#628442}.learn-button,.refund-button{width:100%;padding:12px;border:2px solid #be583a;border-radius:15px;background:#da7251;color:#fff9e5;font-weight:bold;box-shadow:0 3px 0 #ba583a}.learn-button:disabled{background:#e2d8c5;border-color:#cdbfa7;color:#9a8d78;box-shadow:none;cursor:default}.refund-button{background:#fff6df;color:#927150;border-color:#d4bd94;box-shadow:0 3px 0 #ddcaa5}.refund-note{font-size:10px!important}.detail-jump{font-size:11px;color:#b95c3d;border-bottom:1px dotted #c78f67}.map-viewport{height:650px}.map-footer{flex-wrap:wrap}@media(max-width:1000px){#build-stats{grid-template-columns:repeat(4,1fr)}#build-stats .profit-stat{grid-column:1/-1}.build-tools{align-items:flex-start;flex-direction:column}.map-viewport{height:520px}}@media(max-width:700px){#build-stats{padding:8px 12px}.build-tools{padding:12px}.templates button{font-size:10px}#build-stats b{font-size:15px}#build-stats small{display:block}#build-stats .profit-stat b small{display:inline}#build-notice{margin:5px 12px}.focus-tools{padding:8px 12px 12px}.focus-tools span{width:100%}.map-viewport{height:440px}.skill .title{font-size:13px}}
/* One-screen, cumulative growth. Map scrolls independently of the learning dock. */
html:has(.growth-screen){height:100%;overflow:hidden}.growth-screen{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.growth-screen header{height:52px;min-height:52px;padding:5px 22px;flex:none}.growth-screen header a{font-size:18px}.growth-screen header a span{font-size:9px;margin:0}.growth-screen .preview-label{padding:5px 10px;font-size:10px}.growth-screen main{display:block;width:100%;max-width:1480px;padding:10px 16px 14px;flex:1;min-height:0;margin:0 auto}.growth-screen .tree-shell{height:100%;display:flex;flex-direction:column;border-radius:20px;box-shadow:0 4px 0 #dfbd87}.growth-screen .toolbar{padding:10px 18px;flex:none}.growth-screen h1{font-size:19px;margin:0}.growth-screen #next-skill{border:1px solid #d4aa72;background:#ffdf8e;padding:7px 12px;border-radius:15px;font-size:12px;font-weight:700}.growth-screen #next-skill:disabled{opacity:.5;cursor:default}.growth-summary{display:flex;justify-content:space-between;gap:12px;padding:9px 18px;background:#fff9e8;flex:none}.growth-summary>div{display:flex;align-items:center;flex-wrap:wrap;column-gap:10px;row-gap:3px}.growth-summary b{font-size:17px;color:#b95d37}.growth-summary span{font-size:10px;color:#977a53}.growth-summary progress{appearance:none;display:block;width:100%;height:5px;border:0;background:#e8ddbf;border-radius:10px;overflow:hidden}.growth-summary progress::-webkit-progress-bar{background:#e8ddbf}.growth-summary progress::-webkit-progress-value{background:#84ae60;border-radius:10px}.growth-summary .summary-profit{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:2px}.growth-summary .summary-profit b{color:#6c8d40}.growth-screen .focus-tools{padding:6px 18px;flex:none;gap:5px}.growth-screen .focus-tools button{font-size:11px;padding:5px 10px}.map-controls{display:flex;gap:4px;margin-left:auto}.growth-screen .map-viewport{flex:1;min-height:0;height:auto;overscroll-behavior:contain;scroll-behavior:auto}.growth-screen .map-footer{flex:none;padding:5px 16px;min-height:29px;flex-wrap:nowrap;gap:10px}.growth-screen #build-notice{font-size:10px;line-height:1.4;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.growth-screen .legend{flex:none;padding:0;gap:8px;font-size:9px}.detail-dock{padding:12px 18px 10px;border-top:2px solid #e9d0a4;background:#fff7e2;flex:none}.growth-screen #detail{padding:0}.dock-heading{display:flex;align-items:center;gap:10px}.growth-screen .detail-icon{width:44px;height:44px;padding:6px;border-radius:14px;border-width:1px;box-shadow:none;flex:none}.growth-screen h2{font-size:17px;line-height:1.3;margin:2px 0 0}.growth-screen .branch-name{font-size:10px}.dock-state{margin-left:auto;font-size:11px;color:#8c734c;flex:none}.dock-description{font-size:12px!important;line-height:1.6!important;margin:7px 0!important;color:#8a6e4a!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dock-bottom{display:flex;align-items:center;gap:15px}.dock-benefit{flex:1;min-width:0}.dock-benefit b{display:block;font-size:13px;color:#64833c}.dock-benefit small{display:block;font-size:10px;letter-spacing:0;font-weight:400;line-height:1.5;color:#a18055;max-height:30px;overflow:auto}.growth-screen .learn-button{width:160px;padding:11px 8px;flex:none;font-size:14px;min-height:44px}.dock-prereqs{min-height:12px;font-size:10px;color:#a18660;margin-top:6px}.dock-prereqs:empty{display:none}.dock-prereqs .prereq{font-size:10px;padding:3px 7px;margin:0 5px}.growth-pop{animation:grow .5s ease-out}@keyframes grow{0%{box-shadow:inset 0 0 35px #b5cd6b99}100%{box-shadow:inset 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.growth-pop{animation:none}}@media(max-width:700px){.growth-screen header{height:46px;min-height:46px;padding:4px 13px}.growth-screen header a{font-size:17px}.growth-screen .preview-label{font-size:9px;max-width:none}.growth-screen main{padding:6px 8px 10px}.growth-screen .toolbar{padding:8px 11px}.growth-screen h1{font-size:17px}.growth-screen #next-skill{font-size:10px;padding:7px 9px}.growth-summary{padding:7px 11px}.growth-summary b{font-size:15px}.growth-summary span{font-size:9px}.growth-screen .focus-tools{padding:6px 9px;gap:3px;flex-wrap:wrap}.growth-screen .focus-tools button{padding:5px 7px;font-size:10px}.map-controls{gap:2px}.growth-screen .map-footer{padding:5px 10px}.growth-screen .legend{display:none}.detail-dock{padding:9px 11px}.growth-screen h2{font-size:16px}.growth-screen .learn-button{width:120px;font-size:13px;padding:10px 6px}.dock-benefit b{font-size:12px}.dock-state{font-size:10px}.dock-description{font-size:11px!important}.dock-prereqs{font-size:9px}.growth-screen .detail-icon{width:38px;height:38px}.dock-bottom{gap:8px}}@media(max-height:650px){.growth-screen header{height:35px;min-height:35px}.growth-screen header a span{display:none}.growth-screen .toolbar{padding:5px 10px}.growth-summary{padding:5px 11px}.growth-summary progress{display:none}.growth-screen .focus-tools{padding:4px 9px}.dock-description{display:none}.detail-dock{padding:6px 11px}.growth-screen .detail-icon{width:30px;height:30px}.growth-screen .dock-heading h2{font-size:14px}.growth-screen .dock-bottom{margin-top:5px}.growth-screen .map-footer{min-height:22px;padding-top:3px;padding-bottom:3px}}
.growth-screen .sector{display:none}.growth-screen [hidden]{display:none!important}
.growth-screen .map-viewport{display:flex}.growth-screen #map{flex:none;margin:auto}
/* Scale an explicit canvas wrapper so zoom never resizes the viewport itself. */
.growth-screen #map-space{position:relative;flex:none;margin:auto}.growth-screen #map{position:absolute;left:0;top:0;margin:0;transform-origin:0 0}.growth-screen .map-controls button:disabled{opacity:.45;cursor:default}
.growth-screen header .title-logo{display:flex;align-items:center;flex:none;height:100%;line-height:1}.title-logo img{display:block;width:180px;height:42px;object-fit:contain;object-position:left center}@media(max-width:700px){.title-logo img{width:172px;height:37px}}@media(max-height:650px){.title-logo img{width:140px;height:29px}}
/* Keep transparent artwork margins outside the compact header viewport. */
.growth-screen header .title-logo{width:180px;overflow:hidden}.title-logo img{width:180px;height:auto;max-width:none;flex:none}@media(max-width:700px){.growth-screen header .title-logo{width:172px}.title-logo img{width:172px;height:auto}}@media(max-height:650px){.growth-screen header .title-logo{width:140px}.title-logo img{width:140px;height:auto}}
.embedded-tree .growth-screen header{display:none}.embedded-tree .growth-screen main{padding-top:7px}
.growth-screen .dev-reveal{border:1px dashed #c3a374;border-radius:12px;background:#f9efd6;color:#9b7b52;font-size:10px;padding:6px 10px;cursor:pointer}.growth-screen .dev-reveal[aria-pressed=true]{background:#e9efd8;border-color:#7d9a60;color:#587a3d}.skill.locked button{border-style:dashed;background:#eee6da}.link.locked{stroke:#cdbfa9;stroke-dasharray:4 8}
.growth-screen .map-viewport{touch-action:none}.cost-tier{font-size:9px;font-weight:400;color:#a0835b;white-space:nowrap}
.asset-icon{object-fit:contain;display:block}.skill.locked .asset-icon{filter:grayscale(.6);opacity:.55}.recipe-node button{border-color:#da9a5c!important;background:#ffe8bc!important}.recipe-node.done button{background:#e6efd0!important;border-color:#8cab66!important}.recipe-node .title:before{content:'新商品 ';font-size:9px;color:#bf734d}.shop-change{margin:3px 0 7px!important;font-size:10px!important;line-height:1.5!important;color:#7f9454!important}.growth-screen .focus-tools button{white-space:nowrap}@media(max-width:550px){.growth-screen .focus-tools{gap:3px;padding:5px 8px}.growth-screen .focus-tools button{padding:5px 6px;font-size:9px}.growth-screen .dock-description{-webkit-line-clamp:1}.shop-change{font-size:9px!important;margin:3px 0 6px!important}.dock-benefit small{font-size:9px}.growth-screen .dev-reveal{font-size:9px}.growth-screen .learn-button{width:112px}}
.growth-screen .map-viewport{cursor:grab;user-select:none}.growth-screen .map-viewport:active{cursor:grabbing}

/* Keep native image dragging and scroll anchoring out of map gestures. */
.growth-screen .map-viewport{overflow-anchor:none;-webkit-user-select:none;-webkit-touch-callout:none}
.growth-screen .map-viewport.is-dragging{cursor:grabbing}
.growth-screen .map-viewport .pixel-icon{pointer-events:none;-webkit-user-drag:none}
