:root{--brown:#624129;--dark:#392f22;--paper:#fff4d6;--cream:#fff9e7;--green:#3c6c4b;--gold:#e2ad48}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font:16px/1.6 system-ui,-apple-system,'Microsoft Yahei',sans-serif;color:var(--dark);background:#527447}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,canvas:focus-visible{outline:3px solid #ffc76d;outline-offset:3px}button:disabled{opacity:.55;cursor:default}#world,#scene{position:absolute;inset:0;width:100%;height:100%}#scene{display:block;touch-action:none}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.placeLabel{position:absolute;transform:translate(-50%,-100%);padding:2px 11px;border:2px solid #856342;background:#fff4d8ed;border-radius:5px;font-size:13px;white-space:nowrap;box-shadow:0 3px #44311d50;pointer-events:auto;transition:opacity .2s}.placeLabel.tracked{border-color:#efba4b;background:#fff5cc}.hud{position:absolute;top:max(15px,env(safe-area-inset-top));left:22px;right:22px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none}.hud>*{pointer-events:auto}.wood{background:linear-gradient(#fff5d7,#efdfac);border:3px solid #765234;border-radius:10px;box-shadow:inset 0 0 0 2px #fff9e6,0 4px 0 #4b3828,0 7px 12px #14231040}.profile{padding:8px 16px 8px 8px;display:flex;gap:10px;align-items:center;text-align:left}.profile b{font-size:18px;display:block}.profile small{font-size:12px;display:block;color:#726449}.avatar{width:48px;height:54px;display:block;background-repeat:no-repeat;image-rendering:pixelated}.game-title{text-align:center;text-shadow:1px 2px #fbf0b9,-1px -1px #fbf0b9,0 3px 7px #fff5c7;line-height:1.25;padding-top:7px}.game-title span{font:bold 25px/1.4 Georgia,'Microsoft Yahei',serif;letter-spacing:4px;color:#38543a}.game-title small{display:block;font-size:13px;color:#4b6241;letter-spacing:4px;font-weight:700}.timeplate{padding:10px 18px;text-align:center;min-width:210px}.timeplate b{font-size:16px;display:block}.timeplate small{font-size:12px;display:block;color:#6e6048}.quest{position:absolute;top:113px;left:22px;width:280px;padding:12px 17px;box-shadow:inset 0 0 0 2px #fff9e6,0 4px 0 #4b3828,0 7px 12px #14231030}.quest>button{display:block;border:0;padding:0;width:100%;background:none;text-align:left;font-size:14px;font-weight:700;color:#7f6032}.quest>button span{float:right}.quest strong{font-size:17px;display:block;margin-top:9px}.quest p{font-size:14px;margin:6px 0 10px;color:#74644b}.smallbtn{font-size:13px;border:1px solid #a98e59;background:#fff9e3;padding:5px 12px;border-radius:5px}.toptools{position:absolute;right:24px;top:111px;display:flex;gap:9px}.iconbutton{width:43px;height:43px;font-weight:bold;font-size:22px}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #2c3e2630}.notice{position:absolute;top:110px;left:50%;transform:translateX(-50%);background:#fff1ccf5;border:2px solid #b48b4f;border-radius:7px;padding:10px 22px;max-width:500px;box-shadow:0 4px #66492f40;display:none;text-align:center;z-index:3}.approach{position:absolute;left:50%;bottom:112px;transform:translateX(-50%);background:#263e2ee8;color:#fff2cf;border:1px solid #d7b265;border-radius:20px;padding:6px 18px;font-size:14px;pointer-events:none;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.bottomhud{position:absolute;bottom:max(22px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px}.toolbelt{display:flex;padding:6px;gap:5px}.toolbelt button{width:59px;border:2px solid #c7a469;background:#fffae5;border-radius:6px;box-shadow:inset 0 -3px #decc95;line-height:1.25;padding:5px}.toolbelt button:hover{background:#fff0b6;transform:translateY(-2px)}.toolbelt span{font-size:25px;display:block;color:#4b6c43}.toolbelt small{font-size:12px;display:block}.controlsNote{font-size:12px;color:#ffedbc;text-shadow:1px 2px #22351e;position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap}.dpad{position:absolute;left:24px;bottom:24px;width:132px;height:132px;display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:0;opacity:.8;touch-action:none;user-select:none}.dpad button{border:2px solid #fff1c4;background:#4c6147d9;color:#fff2cb;font-size:21px;border-radius:11px;touch-action:none;-webkit-user-select:none}.dpad button:nth-child(1){grid-area:1/2}.dpad button:nth-child(2){grid-area:2/1}.dpad button:nth-child(3){grid-area:3/2}.dpad button:nth-child(4){grid-area:2/3}.dpad button:active{background:#d6ba77;color:#36482c}.interact{position:absolute;right:27px;bottom:36px;width:87px;height:87px;border-radius:50%;border:4px solid #f7dfa6;background:#536947e8;color:#fff5d6;box-shadow:0 0 0 3px #465337,0 5px 0 #263b29;font-weight:bold;font-size:18px;touch-action:manipulation}.interact small{display:block;font-size:12px;line-height:1}.interact.ready{background:#b48136;box-shadow:0 0 0 3px #604428,0 0 23px #ffe5a25e}dialog{color:var(--dark);border:4px solid var(--brown);border-radius:15px;background:var(--paper);padding:0;width:min(680px,calc(100% - 28px));max-height:84dvh;box-shadow:inset 0 0 0 3px #fff9e3,0 10px 0 #3d3028,0 30px 90px #18271880}dialog::backdrop{background:#17332280;backdrop-filter:blur(3px)}.panelhead{display:flex;justify-content:space-between;align-items:center;padding:17px 23px;border-bottom:2px solid #d8c28e;background:#eeddaf}.panelhead small{font-size:12px;letter-spacing:2px;color:#896b3d}.panelhead h1{font-size:23px;margin:0;line-height:1.4}.close{background:#f9edc7;border:2px solid #9d7950;border-radius:6px;font-size:24px;line-height:1;width:34px;height:34px}#panelContent{padding:23px;max-height:calc(84dvh - 90px);overflow:auto}#panelContent p{margin:5px 0 17px}#panelContent h2{font-size:19px;margin:15px 0 7px}#panelContent h3{font-size:16px;margin:12px 0 5px}.npcdialog{display:grid;grid-template-columns:88px 1fr;gap:20px;align-items:center;min-height:96px}.portrait{width:88px;height:96px;image-rendering:pixelated;background-repeat:no-repeat}.say{line-height:1.85;font-size:17px}.choicegrid{display:grid;gap:11px;margin:17px 0}.choicegrid button,.gamebtn{background:linear-gradient(#fffaf0,#f1ddb0);border:2px solid #ac8851;border-radius:7px;padding:11px 15px;text-align:left;box-shadow:0 3px 0 #8c713d29}.choicegrid button:hover,.gamebtn:hover{border-color:#48734a;background:#f0f2d3}.gamebtn.primary{background:#416e4c;border-color:#2b5137;color:#fff7d4;text-align:center}.gamebtn{font-size:15px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px}.stamp{display:inline-block;padding:3px 9px;border:1px solid #ad8952;background:#f5e7bc;border-radius:4px;color:#7b5c2d;font-size:13px}.hint{font-size:14px;color:#776647;padding:10px 13px;background:#ecdcb557;border-left:3px solid #bda068;margin:15px 0}.inventory{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.item{padding:14px 8px;border:2px solid #c7ae7a;border-radius:8px;background:#fff8e5;text-align:center}.item .itemsprite{display:block;width:64px;height:68px;margin:0 auto 6px;background-repeat:no-repeat;image-rendering:pixelated}.item b{font-size:14px;display:block}.item small{font-size:12px;color:#847149}.steps{display:grid;gap:10px}.step{display:flex;gap:12px;padding:11px;background:#fff8e6;border:1px solid #d6c295;border-radius:6px}.step span{color:#806233}.step.done span{color:#4c804a}.step p{font-size:14px;margin:0!important}.step b{display:block}input,select,textarea{width:100%;border:2px solid #bea16d;background:#fffbef;color:#453a29;border-radius:6px;padding:9px 12px;margin:7px 0 12px;font-size:16px}textarea{min-height:85px;resize:vertical}label{font-size:14px;color:#73603f;display:block}.mapplaces{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mapplaces button{padding:14px;border:2px solid #b89b66;border-radius:7px;background:#fff7df;text-align:left}.mapplaces small{display:block;color:#8c7751;font-size:12px}.minimapimage{width:100%;border:3px solid #b59868;border-radius:8px;image-rendering:pixelated}.observation{display:grid;gap:12px}.eventcard{border:2px solid #b89966;background:#fff9e6;border-radius:9px;padding:15px;cursor:pointer;text-align:left}.eventcard.seen{background:#e2edcc;border-color:#6d8b54}.eventcard span{float:right;font-size:13px;color:#628347}#book{width:95vw;height:92dvh;max-height:none}#journal{border:0;width:100%;height:calc(100% - 58px);background:#fdf4db}.bookhead{height:58px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;border-bottom:2px solid #ba9d65}.bookhead button{padding:5px 12px;border:1px solid #a5834c;background:#fff5d7;border-radius:5px}#loading{position:absolute;inset:0;background:#416749;display:grid;place-items:center;z-index:10}.loadingcard{text-align:center;color:#fff3cc}.loadingcard small{letter-spacing:4px}.loadingcard h1{font-size:48px;letter-spacing:10px;margin:10px}.loadbar{width:200px;height:9px;border:1px solid #f3dfaf;border-radius:9px;overflow:hidden;margin:auto}.loadbar span{display:block;width:40%;height:100%;background:#edcc76;animation:loading 1.5s ease-in-out infinite alternate}@keyframes loading{from{transform:translateX(-30%)}to{transform:translateX(180%)}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}@media(max-width:800px){.hud{left:12px;right:12px;top:12px}.game-title{display:none}.profile{padding:6px 10px 6px 3px}.profile b{font-size:16px}.profile small{font-size:11px}.avatar{width:38px;height:47px}.timeplate{min-width:155px;padding:8px 10px}.timeplate b{font-size:13px}.timeplate small{font-size:11px}.quest{top:101px;left:12px;width:220px;padding:10px 13px}.quest strong{font-size:15px}.quest p{font-size:13px}.toptools{right:12px;top:99px;gap:6px;flex-direction:column}.iconbutton{width:37px;height:37px;font-size:19px}.bottomhud{bottom:20px;gap:8px}.toolbelt{padding:4px;gap:3px}.toolbelt button{width:44px;padding:4px}.toolbelt span{font-size:21px}.toolbelt small{font-size:11px}.bottomhud>.smallbtn{display:none}.controlsNote{display:none}.dpad{left:14px;bottom:99px;width:114px;height:114px;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(3,38px)}.interact{right:20px;bottom:115px;width:70px;height:70px;font-size:16px}.approach{bottom:85px;font-size:12px}.notice{top:86px;width:80%;font-size:14px;max-width:400px}.placeLabel{font-size:12px;padding:2px 7px}.panelhead{padding:14px 17px}.panelhead h1{font-size:20px}#panelContent{padding:18px}.npcdialog{grid-template-columns:66px 1fr;gap:12px}.portrait{width:66px;height:80px}.say{font-size:16px}.inventory{gap:8px}.item{padding:10px 5px}}@media(max-height:530px){.quest{width:220px;top:90px}.quest p{display:none}.hud{top:8px}.toptools{top:95px}.dpad{bottom:22px}.interact{bottom:26px}.bottomhud{bottom:12px}.approach{bottom:87px}.quest strong{font-size:14px}}
@media(max-width:800px){.npcdialog{grid-template-columns:80px 1fr}.portrait{width:80px;height:96px}}
.sceneplate{position:absolute;left:50%;top:91px;transform:translateX(-50%);padding:4px 15px;font-size:14px;display:flex;gap:10px;align-items:center}.sceneplate button{border:1px solid #aa8b57;background:#fff5d8;border-radius:5px;font-size:12px}.sceneplate button[hidden]{display:none}.equipped{position:absolute;left:23px;bottom:174px;padding:4px 8px;min-width:160px;z-index:2}.equipped button{border:0;background:none;display:flex;align-items:center;gap:8px;text-align:left;padding:0}.equipped small{display:block;font-size:11px;color:#806541}.equipped b{display:block;font-size:13px}.bagSprite{width:66px;height:66px;display:block;margin:auto;background-repeat:no-repeat;image-rendering:pixelated;overflow:hidden}.baglayout{display:grid;grid-template-columns:1fr 185px;gap:18px}.bagslots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;align-content:start}.bagslot{position:relative;min-height:91px;border:2px solid #c5ab73;border-radius:6px;background:#fff7df;padding:3px 3px 5px}.bagslot.chosen{border-color:#4b7850;box-shadow:0 0 0 2px #89a86588;background:#f3f3cc}.bagslot b{display:block;font-size:11px;line-height:1.4;text-align:center}.bagslot .qty{position:absolute;right:4px;top:3px;font:bold 12px/1.4 system-ui;background:#684d2d;color:#fff3d0;border-radius:3px;padding:0 4px}.bagslot.emptyqty{opacity:.5}.bagslot.vacant{min-height:77px;background:#bfa87b20;box-shadow:inset 1px 2px 5px #80613915}.equipMark{position:absolute;bottom:21px;left:2px;font-size:10px;background:#496f42;color:#fff5c9;border-radius:3px;padding:1px 4px}.bagtabs{display:flex;gap:8px;margin-bottom:15px}.bagtabs button{flex:1;background:#fffae5;border:1px solid #b99e68;border-radius:5px;font-size:14px;padding:6px}.bagtabs .active{background:#567746;color:#fff5d7;border-color:#435f36}.bagdetail{border-left:1px solid #c9b588;padding-left:15px;font-size:14px}.bagdetail h2{font-size:18px!important}.bagdetail .gamebtn{font-size:13px;width:100%}.cropcatalog{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cropcatalog .item{font:inherit;cursor:pointer}.cropcatalog .item small{display:block}#bagBtn{background:#faf0b4;border-color:#956d2e;min-width:70px}#bagBtn small{font-size:13px;font-weight:700}#bagCount{background:#55763f;color:#fff9d9;border-radius:4px;padding:1px 3px;font-size:11px}.bottomhud{z-index:2}dialog{width:min(760px,calc(100% - 24px))}.notice{z-index:5}@media(max-width:800px){.sceneplate{top:79px;padding:2px 9px;font-size:12px;white-space:nowrap}.equipped{left:auto;right:12px;bottom:205px;min-width:126px;padding:3px 6px}.equipped .bagSprite{width:30px!important;height:30px!important}.equipped small{font-size:10px}.equipped b{font-size:11px}.equipped button{gap:4px}.baglayout{grid-template-columns:1fr}.bagslots{grid-template-columns:repeat(4,1fr)}.bagslot .bagSprite{width:55px!important;height:55px!important}.bagdetail{border-left:0;border-top:1px solid #c9b588;padding-left:0;padding-top:12px}.bagdetail>.bagSprite{float:left;margin-right:14px}.bagslot{min-height:80px}.bagdetail h2{margin-top:0!important}.bagtabs{gap:5px}.bagtabs button{font-size:13px;padding:5px}.bagslot.vacant{min-height:50px}#bagBtn{min-width:61px}.cropcatalog{gap:7px}.cropcatalog .bagSprite{width:58px!important;height:58px!important}.cropcatalog .item small{font-size:11px}}@media(max-height:530px){.sceneplate{top:83px}.equipped{right:24px;left:auto;bottom:128px}.baglayout{grid-template-columns:1fr 170px}.bagdetail{border-top:0;border-left:1px solid #c9b588;padding-left:12px}.bagdetail>.bagSprite{float:none}.bagslots{grid-template-columns:repeat(6,1fr)}}
@media(max-width:800px) and (min-height:531px){.bagdetail{order:-1;border-top:0;border-bottom:1px solid #c9b588;padding-top:0;padding-bottom:12px}.bagdetail p{font-size:13px;margin:6px 0!important}.bagdetail .actions{display:none}.bagdetail>.bagSprite{width:65px!important;height:65px!important}.bagdetail h2{font-size:16px!important}.bagdetail .gamebtn{width:auto;margin-top:5px}.bagslot b{font-size:11px}}
.farmStatus{position:absolute;right:24px;top:180px;padding:10px 15px;text-align:left;max-width:250px;font-size:13px}.farmStatus[hidden]{display:none}.farmStatus small,.farmStatus b,.farmStatus span{display:block}.farmStatus small{color:#77603e}.farmStatus b{font-size:15px}.farmStatus span{font-size:12px;color:#567042}.farmSummary{display:flex;flex-wrap:wrap;gap:9px;margin:5px 0 15px}.farmSummary b{background:#eee9c6;border:1px solid #bcab74;border-radius:7px;padding:5px 12px;font-size:14px}.plannedLabel{border-style:dashed;background:#ebe6ccd9;color:#776b52}.researchBanner{display:flex;align-items:center;gap:16px}.researchBanner>.bagSprite{flex-shrink:0}.researchBanner h2{margin:0!important}.researchBanner p{margin:7px 0!important}.cropcatalog .item small{line-height:1.6}.bagtabs{flex-wrap:wrap}.bagtabs button{min-width:65px}.step small{font-size:12px;color:#627849}.step:has(>b){display:block}.step p{margin:5px 0}.minimapimage{image-rendering:pixelated}
@media(max-width:800px){.farmStatus{top:auto;bottom:260px;right:12px;padding:5px 8px;max-width:170px;font-size:11px}.farmStatus b{font-size:12px}.farmStatus span{font-size:10px}.farmStatus small{font-size:10px}.researchBanner{gap:10px;align-items:flex-start}.researchBanner>.bagSprite{width:75px!important;height:75px!important}.researchBanner h2{font-size:18px!important}}
@media(max-height:530px){.farmStatus{top:150px;bottom:auto;right:20px;font-size:11px}.farmStatus b{font-size:12px}.farmStatus span{font-size:10px}}
.careerIntro p{margin:10px 0 20px}.careerGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.careerGrid.single{grid-template-columns:1fr}.careerCard{padding:18px;border:2px solid #b59a63;border-radius:12px;background:#fff8dc;box-shadow:inset 0 0 22px #cba56330}.careerCard.built{border-color:#6f8a51}.careerHead{display:flex;align-items:center;gap:12px}.careerHead h2{margin:4px 0 9px}.careerTransition{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 0;border-bottom:1px dashed #c5ac77}.careerTransition span{color:#796b4c}.careerTransition strong{color:#45623b}.careerRequirements{padding:0;list-style:none;margin:14px 0}.careerRequirements li{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #dac99d}.careerRequirements li>span:nth-child(2){flex:1}.careerRequirements small{display:block;font-size:12px;color:#7b6a4c;margin-top:4px}.careerRequirements .gamebtn{flex:none;padding:8px 12px;min-height:40px}.checked{color:#4a743c;font-weight:bold}.careerBoundary{font-size:13px;color:#776b52;line-height:1.65}.careerAudit{display:block;line-height:1.6;color:#786745}.careerReveal{text-align:center;padding:10px 0 20px}.careerReveal .bagSprite{display:inline-block}.careerRef{display:block;overflow-wrap:anywhere;line-height:1.7;color:#74654d}.gamebtn:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.4)}@media(max-width:700px){.careerGrid{grid-template-columns:1fr}.careerCard{padding:14px}.careerHead h2{font-size:22px}.careerRequirements li{gap:8px}.careerRequirements .gamebtn{padding:8px}.careerTransition{font-size:14px}}

/* Long journals keep one scroll area; the title and close button stay visible. */
#panel[open]{display:flex;flex-direction:column;overflow:hidden}
#panel>.panelhead{flex:0 0 auto;gap:12px}
#panel>.panelhead>div{min-width:0}
#panel>.panelhead h1{overflow-wrap:anywhere}
#panel>.panelhead .close{flex:0 0 34px}
#panelContent{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}
