/* One 1672 × 941 illustrated world. Interactive state is rendered above the art. */
body.farm-mode .shell{display:block}body.farm-mode .sidebar{display:none}body.farm-mode .main.farm-main{width:100%;max-width:1740px;margin:0 auto;padding:16px 20px}body.farm-mode .main>footer{margin-top:16px}.farm-app{font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#653815;width:100%}.farm-viewport{width:min(100%,var(--farm-fit-width,100%));margin-inline:auto;overflow:hidden;border-radius:12px;background:#344e21;box-shadow:0 7px 25px #2d442c25}.farm-canvas{container-type:inline-size;position:relative;isolation:isolate;width:100%;min-width:0;aspect-ratio:1672/941;overflow:hidden;background:#8cbc45 url('/assets/farm/scene-v3.png') center/100% 100% no-repeat;user-select:none}.farm-canvas *{box-sizing:border-box}.farm-canvas button{font-family:inherit;cursor:pointer;touch-action:manipulation}.farm-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.farm-canvas button:focus-visible{outline:3px solid #fff5ae;outline-offset:-3px;filter:drop-shadow(0 0 5px #ffbf21)}.farm-hotspot{background:transparent;border:0;position:absolute;padding:0}.farm-hotspot:hover{box-shadow:inset 0 0 1.5cqw #fff0ac80;border-radius:15%}.farm-hotspot[aria-pressed=true]{box-shadow:inset 0 0 .7cqw #ffdc7380;border-radius:15%}
.farm-hud{position:absolute;inset:0;pointer-events:none;z-index:5;color:#fff6d1;font-weight:900;text-shadow:0 .14cqw .12cqw #6d320b}.farm-level{position:absolute;left:26.9%;top:2.6%;width:10.7%;height:6.1%;font-size:1.5cqw;line-height:1.2}.farm-level>b{display:block}.farm-xp{position:relative;display:block;margin-top:.2cqw;width:100%;height:1.05cqw;border-radius:1cqw;background:#60310c;box-shadow:inset 0 .12cqw .12cqw #3e1c08}.farm-xp i{position:absolute;inset:0 auto 0 0;display:block;border-radius:1cqw;background:linear-gradient(#ffe976,#f7af15 60%,#e68b0a);min-width:2%}.farm-xp small{position:relative;display:block;text-align:center;font-size:.8cqw;line-height:1.05cqw}.farm-coins,.farm-water{position:absolute;top:3.1%;font-size:1.65cqw;line-height:1.25;text-align:center}.farm-coins{left:43.2%;width:9.7%}.farm-water{left:58.2%;width:8.2%}.farm-water em{font-size:.85cqw;font-style:normal;opacity:.8}.farm-settings{left:94.7%;top:1.7%;width:4%;height:6.3%;z-index:8}.farm-mail{left:88.7%;top:1.7%;width:4.6%;height:6.3%;z-index:8}
.farm-scene{position:absolute;inset:0;pointer-events:none}.farm-plot{pointer-events:auto;position:absolute;left:var(--plot-left);top:var(--plot-top);width:var(--plot-width);height:var(--plot-height);background:transparent;border:0;padding:0;z-index:2;isolation:isolate}.farm-plot:hover{filter:brightness(1.13);z-index:3}.farm-plant{position:absolute;inset:-32% -5% 3%;pointer-events:none}.farm-crop-art{display:block;flex-shrink:0;background:url('/assets/farm/crops-v3.png') var(--crop-x) var(--crop-y)/300% 200% no-repeat;width:4cqw;height:4cqw}.farm-plant>.farm-crop-art{width:100%;height:100%;filter:drop-shadow(0 .2cqw .13cqw #3e541b45);transform-origin:50% 100%}.farm-sprout{display:none;position:absolute;inset:35% 10% 12%;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);gap:0}.farm-sprout svg{width:100%;height:100%;filter:drop-shadow(.1cqw .2cqw .1cqw #3a4d2440)}.farm-plot[data-stage=sprout] .farm-plant>.farm-crop-art{display:none}.farm-plot[data-stage=sprout] .farm-sprout{display:grid}.farm-plot[data-stage=growing] .farm-plant>.farm-crop-art{transform:scale(.78);filter:saturate(.9)}.farm-plot[data-stage=ripe] .farm-plant>.farm-crop-art{animation:farm-sway 4s ease-in-out infinite}.farm-plot[data-stage=empty] .farm-plant,.farm-plot[data-stage=locked] .farm-plant{display:none}.farm-plot-status,.farm-lock-sign{position:absolute;z-index:2;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;color:#fff5d1;background:linear-gradient(#a96e36,#7e461e);border:.12cqw solid #e0b87a;border-radius:.25cqw;padding:.1cqw .48cqw;box-shadow:0 .1cqw .15cqw #51331780;font-size:.83cqw;font-weight:700;line-height:1.45;text-shadow:0 .1cqw #522a0f;pointer-events:none}.farm-lock-sign{display:none;font-size:.73cqw;background:linear-gradient(#bfa474,#8d6a40);opacity:.9}.farm-plot[data-stage=locked] .farm-lock-sign{display:block}.farm-plot[data-stage=locked] .farm-plot-status{display:none}.farm-plot[data-stage=empty] .farm-plot-status{opacity:.7}.farm-plot[data-stage=ripe] .farm-plot-status{color:#fff8dd}.farm-empty-plus{display:none;position:absolute;inset:15% 35% 25%;font-size:2cqw;color:#f9d79685;pointer-events:none}.farm-plot[data-stage=empty]:hover .farm-empty-plus,.farm-plot[data-stage=empty]:focus-visible .farm-empty-plus{display:block}.farm-plot-progress{position:absolute;left:25%;bottom:-3%;height:.25cqw;width:50%;border-radius:1cqw;overflow:hidden;background:#503119;display:none}.farm-plot-progress>span{display:block;height:100%;background:#afd76b}.farm-plot[data-stage=sprout] .farm-plot-progress,.farm-plot[data-stage=growing] .farm-plot-progress{display:block}.farm-watered{display:none;position:absolute;right:5%;bottom:15%;font-size:1.1cqw;pointer-events:none}.farm-plot[data-watered=true][data-stage=sprout] .farm-watered,.farm-plot[data-watered=true][data-stage=growing] .farm-watered{display:block}
.farm-tools{position:absolute;left:13.8%;top:80.4%;width:36.7%;height:15.4%;display:grid;grid-template-columns:repeat(4,1fr);gap:1.3%;z-index:5}.farm-tool{position:relative;background:transparent;border:0;border-radius:.8cqw;padding:0;color:#fff6dc;font-size:1.35cqw;font-weight:900;text-shadow:0 .15cqw .1cqw #4e2209}.farm-tool>span{position:absolute;bottom:0;left:0;right:0}.farm-tool.selected{box-shadow:inset 0 0 .6cqw #ffdd6470}.farm-tool:hover{background:#fff7ba18}.farm-seeds{position:absolute;left:53.9%;top:83.7%;width:32.3%;height:11.3%;display:flex;gap:1.7%;overflow:auto;scrollbar-width:none;z-index:5;scroll-snap-type:x mandatory;padding:.15cqw}.farm-seeds::-webkit-scrollbar{display:none}.farm-seed{position:relative;flex:0 0 18.65%;height:100%;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.15cqw;border:.15cqw solid #be8744;border-radius:.9cqw;background:linear-gradient(#fff2c5,#f4d699);box-shadow:inset 0 .1cqw #fff9e5,0 .2cqw .1cqw #693f2080;color:#6d3f1d}.farm-seed .farm-crop-art{width:3.6cqw;height:3.1cqw}.farm-seed b{font-size:.97cqw;line-height:1.2}.farm-seed small{font-size:.62cqw;line-height:1.3;color:#91613c}.farm-seed.selected{border-color:#ffe475;box-shadow:0 0 .6cqw .13cqw #ffd134,inset 0 0 .25cqw #fff}.farm-seed:disabled{opacity:.7;filter:saturate(.45);cursor:default}.farm-seed-next{position:absolute;left:86.5%;top:85.4%;width:3%;height:8.2%;border:.15cqw solid #efc987;border-radius:.6cqw;background:linear-gradient(#bf8945,#9d5d29);font-size:2.6cqw;color:#ffe7b7;line-height:1;z-index:5}
.farm-tabs{position:absolute;inset:0;pointer-events:none;z-index:6}.farm-tabs button{pointer-events:auto;left:93.6%;width:5.7%;height:11.7%;color:#fff8dc;font-size:1.35cqw;font-weight:900;text-shadow:0 .15cqw .12cqw #592a10}.farm-tabs button:nth-child(1){top:15.1%}.farm-tabs button:nth-child(2){top:29.5%}.farm-tabs button:nth-child(3){top:43.7%}.farm-tabs button span{position:absolute;bottom:1.5%;left:0;right:0}.farm-popup{position:absolute;left:77.1%;top:13.5%;width:14.7%;height:29.4%;z-index:7;padding:.25cqw .35cqw;color:#70401b}.farm-popup-close{left:96%;top:-5%;width:16%;height:14%;z-index:2;transform:translateX(-50%)}#farmPanel{height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#b68b4f transparent;font-size:.85cqw;line-height:1.6;padding-right:.15cqw}.farm-popup h2{font-size:1.13cqw;margin:0 0 .3cqw;font-weight:900;color:#74401a}.farm-popup h3{font-size:.75cqw;font-weight:600;text-align:center;margin:.1cqw 0 .25cqw;color:#956b43}.farm-order-pages{position:absolute;right:.7cqw;top:.2cqw;display:flex;align-items:center;gap:.25cqw;font-size:.65cqw}.farm-order-pages button{background:none;border:0;color:#8b582d;font-size:1.25cqw;line-height:1;padding:0 .15cqw}.farm-order-needs{display:flex;justify-content:center;gap:.5cqw;min-height:6.3cqw;align-items:center}.farm-order-needs>div{display:flex;flex-direction:column;align-items:center;line-height:1.3;flex:1}.farm-order-needs .farm-crop-art{width:4.5cqw;height:3.7cqw}.farm-order-needs span{font-size:.68cqw}.farm-order-needs b{font-size:1cqw;color:#9e542c}.farm-order-needs b.enough{color:#43772b}.farm-order-needs em{font-style:normal;font-size:1.1cqw;color:#709b3d}.farm-order-clock{display:block;font-size:.6cqw;color:#aa7a4d;text-align:center;margin:.2cqw 0}.farm-order-reward{border-top:.08cqw dashed #c99e65;padding-top:.25cqw;display:flex;flex-direction:column;font-size:.75cqw}.farm-order-reward b{font-size:1.15cqw;color:#99591e;white-space:nowrap}.farm-order-reward button{border:.15cqw solid #467d13;border-radius:2cqw;background:linear-gradient(#b5ed52,#72bb14 55%,#4c9a08);box-shadow:inset 0 .14cqw #e5ffa5,0 .14cqw .12cqw #6c6b2c66;color:#fffbe8;font-weight:900;font-size:1.3cqw;line-height:1.5;text-shadow:0 .1cqw #4e701d;width:90%;margin:.35cqw auto 0}.farm-order-reward button:disabled{cursor:default;opacity:.65;filter:saturate(.6)}.farm-inventory{display:grid;gap:.3cqw}.farm-inventory article{display:flex;align-items:center;gap:.2cqw;border-bottom:.08cqw solid #e3ca9f;padding:.15cqw 0}.farm-inventory .farm-crop-art{width:2.4cqw;height:2.4cqw}.farm-inventory article>div{flex:1;font-size:.7cqw}.farm-inventory small{display:block;font-size:.56cqw;color:#a0784d}.farm-inventory button,.farm-help button{border:.1cqw solid #a67c3b;border-radius:.3cqw;background:#eec582;color:#724719;font-size:.6cqw;padding:.12cqw .25cqw}.farm-ranking>div{display:flex;align-items:center;gap:.35cqw;border-bottom:.08cqw solid #e4c89b;padding:.35cqw 0;font-size:.66cqw}.farm-ranking b{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis}.farm-ranking small{display:block;font-size:.55cqw;color:#a4784a}.farm-ranking strong{font-size:.8cqw}.farm-ranking .is-me{background:#e7eab584}.farm-rank-note{font-size:.65cqw;margin:.4cqw 0;color:#9b7546}.farm-help{font-size:.7cqw;line-height:1.8}.farm-help p{margin:.3cqw 0}.farm-overview{font-size:.85cqw;line-height:1.8}.farm-overview p{margin:.4cqw 0}.farm-notice{position:absolute;left:30%;top:8.4%;max-width:40%;border:.1cqw solid #b58341;border-radius:.35cqw;background:#fff2c9ed;color:#87542d;padding:.15cqw .6cqw;font-size:.7cqw;line-height:1.5;z-index:9;box-shadow:0 .15cqw .3cqw #5d3e1733;pointer-events:none}.farm-notice.warning,.farm-notice.error{background:#fff1c4;color:#a34d24}.farm-notice button{pointer-events:auto;font-size:.7cqw;border:.1cqw solid #b48a48;border-radius:.2cqw;background:#f5d69b;color:#754b21;padding:.1cqw .3cqw;margin-left:.3cqw}.farm-shortcuts{position:absolute;right:9%;bottom:.35%;display:flex;align-items:center;gap:.3cqw;z-index:8;font-size:.58cqw;color:#fff3c3;text-shadow:0 .1cqw #3a5b22}.farm-shortcuts button{font-size:.62cqw;border:.1cqw solid #dfbb78;border-radius:.3cqw;background:#86512bd9;color:#fff0c4;padding:.12cqw .45cqw}.farm-shortcuts small{font-size:inherit}.farm-loading,.farm-load-error{min-height:450px;display:grid;place-content:center;text-align:center;color:#638b38}.farm-loading>span,.farm-load-error>span{font-size:45px}.farm-loading h1,.farm-load-error h1{font-size:24px}.farm-loading p,.farm-load-error p{font-size:13px}.farm-app[data-busy=true] [data-plot],.farm-app[data-busy=true] [data-deliver],.farm-app[data-busy=true] [data-sell]{cursor:wait}
.farm-viewport:fullscreen{width:100%;height:100%;margin:0;background:#213318;display:flex;align-items:center;justify-content:center;overflow:auto;border-radius:0}.farm-viewport:fullscreen .farm-canvas{flex:0 0 auto;width:min(100vw,177.68dvh);min-width:0}
@keyframes farm-sway{0%,100%{transform:rotate(-.5deg)}50%{transform:rotate(.5deg)}}@media(prefers-reduced-motion:reduce){.farm-plot[data-stage=ripe] .farm-plant>.farm-crop-art{animation:none}}
@media(max-width:700px){body.farm-mode .main.farm-main{padding:8px}.farm-viewport{border-radius:6px}}
.farm-order-needs{min-height:5.15cqw}.farm-order-needs .farm-crop-art{height:3.15cqw}.farm-order-needs em{font-size:.9cqw}.farm-order-reward button{margin-top:.2cqw}.farm-order-clock{margin:.1cqw 0}
.farm-crop-art{background-image:url('/assets/farm/icons-v3.png')}.farm-plant>.farm-crop-art{background-image:url('/assets/farm/crops-v3.png')}
/* Keep an entire order, including its action, within the original parchment. */
.farm-popup h2{line-height:1.2;margin-bottom:.2cqw}.farm-popup h3{font-size:.65cqw;line-height:1.3;margin:.1cqw 0}.farm-order-needs{height:4.7cqw;min-height:0}.farm-order-needs .farm-crop-art{height:2.5cqw;width:3.7cqw}.farm-order-needs span{font-size:.6cqw}.farm-order-needs b{font-size:.85cqw}.farm-order-needs em{font-size:.8cqw}.farm-order-clock{font-size:.55cqw;line-height:1.3}.farm-order-reward{font-size:.65cqw;line-height:1.3;padding-top:.2cqw}.farm-order-reward b{font-size:1.05cqw;line-height:1.3}.farm-order-reward button{font-size:1.2cqw;line-height:1.4;margin-top:.2cqw}
/* Crop foliage may overlap a neighboring plot; labels stay above every crop. */
.farm-plot{z-index:auto;isolation:auto}.farm-plant{z-index:0}.farm-plot-status,.farm-lock-sign{z-index:3}
