@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');
:root{--ink:#273d35;--muted:#849087;--paper:#f6f5ed;--white:#fffefa;--green:#55765d;--deep:#355941;--mint:#eaf0dc;--line:#e5e7d9;--sun:#f2d99e;--peach:#e99c7c;--shadow:0 15px 40px #3348340c}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 12% 7%,#f0f1de,transparent 32%),var(--paper);font-family:'DM Sans',sans-serif;min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer}.app-shell{max-width:1320px;margin:auto;padding:22px 34px 14px}.topbar{height:64px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.brand{display:flex;gap:12px;align-items:center;border:0;background:none;text-align:left;padding:0}.brand-mark{width:42px;height:42px;background:#d9e3cf;border-radius:15px;display:grid;place-items:center;color:#507252;font-size:24px}.brand small,.eyebrow{display:block;color:#9a9f89;font:600 9px 'DM Sans',sans-serif;letter-spacing:.16em}.brand strong{display:block;font:800 18px Manrope,sans-serif;letter-spacing:-.6px;margin-top:2px}.resource-bar{display:flex;gap:10px;align-items:center}.resource{display:flex;align-items:center;gap:6px;background:#fffefa;border:1px solid var(--line);padding:8px 12px;border-radius:15px;font-size:13px}.icon-button{width:37px;height:37px;border:1px solid var(--line);background:#fffefa;border-radius:13px;font-size:16px;color:#67806a}.game-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);gap:20px;align-items:stretch}.farm-panel,.side-panel{background:#fffefa;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.farm-panel{padding:22px;display:flex;flex-direction:column;min-width:0}.farm-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.farm-heading h1{font:800 23px Manrope,sans-serif;letter-spacing:-.8px;margin:5px 0 0}.map-switch{border:1px solid var(--line);border-radius:12px;background:white;padding:10px 13px;font-size:12px;font-weight:600}.farm-land{height:clamp(380px,57vh,610px);min-height:380px;position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(160deg,#d8e9d5 0%,#d4e7cc 42%,#bfdcb7 100%);isolation:isolate}.farm-land:before{content:"";position:absolute;inset:0;opacity:.26;background-image:radial-gradient(#fff 1px,transparent 1.4px),radial-gradient(#52795030 1px,transparent 1.5px);background-size:37px 36px,53px 47px;background-position:0 0,18px 22px;z-index:-1}.sun-glow{position:absolute;width:300px;height:180px;right:-55px;top:-75px;background:#fff8ce;border-radius:50%;filter:blur(14px);opacity:.7}.landscape-hills{position:absolute;inset:0;background:radial-gradient(ellipse 65% 31% at 50% 110%,#9fc28e 0 99%,transparent 100%),radial-gradient(ellipse 54% 25% at 17% 100%,#b4d39e 0 99%,transparent 100%);opacity:.55;z-index:-1}.stream{position:absolute;width:98px;height:150%;left:74%;top:-23%;transform:rotate(17deg);border-radius:50%;background:linear-gradient(90deg,#a3d3cc,#bce6de 35%,#9dcec9 80%,#88beb7);opacity:.76}.stream:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(160deg,transparent 0 33px,#ffffff3a 34px 36px,transparent 37px 70px);border-radius:inherit}.farm-grid{position:absolute;inset:6% 6% 9%;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(4,1fr);gap:clamp(3px,1vw,12px);transform:perspective(800px) rotateX(8deg);z-index:2}.farm-object{border:0;background:transparent;position:relative;display:grid;place-items:center;transition:transform .18s,filter .18s;min-width:0;min-height:0;padding:2px;filter:drop-shadow(0 5px 3px #34533324);touch-action:manipulation}.farm-object:hover{transform:translateY(-4px) scale(1.06);z-index:4}.farm-object .art{font-size:clamp(30px,5vw,62px);line-height:1;filter:drop-shadow(0 2px 0 #fff7)}.farm-object .nameplate{position:absolute;bottom:0;background:#fffdf1dd;padding:3px 7px;border-radius:9px;font-size:9px;font-weight:700;white-space:nowrap;color:#546a51;box-shadow:0 2px 6px #274a2212}.farm-object.plot:before{content:"";position:absolute;inset:24% 10% 15%;border-radius:40%;background:#9a744f;transform:rotate(-8deg);box-shadow:inset 0 4px 0 #b48e65,inset 0 -4px 0 #805e42;z-index:-1}.farm-object.plot .art{font-size:clamp(22px,4vw,44px)}.farm-object.animal .art{font-size:clamp(38px,5.5vw,65px)}.farm-object.building .art{font-size:clamp(43px,6vw,76px)}.farm-object.decoration .art{font-size:clamp(31px,5vw,59px)}.farm-object.movable{outline:2px dashed #678759;border-radius:16px;background:#f7f2c04a}.farm-object.selected{transform:translateY(-3px);outline:2px solid #dca466;border-radius:16px}.farm-object.needs:after{content:"•";position:absolute;right:16%;top:14%;color:#df8b4e;font-size:28px;text-shadow:0 1px #fff}.farm-decor{position:absolute;color:#fff7ca;letter-spacing:8px;pointer-events:none}.decor-flowers{left:3%;bottom:10%;font-size:19px}.decor-bushes{right:0;top:13%;color:#699364;font-size:24px}.map-label{position:absolute;right:12px;bottom:12px;background:#fffefa9c;color:#648578;border-radius:9px;padding:6px 9px;font-size:8px;letter-spacing:.18em;display:grid;text-align:center;gap:3px}.build-hint{position:absolute;left:12px;bottom:13px;background:#fffefaab;color:#637360;padding:7px 10px;border-radius:10px;font-size:9px;z-index:5}.farm-tools{display:flex;justify-content:space-between;align-items:center;padding-top:14px}.mode-switch{display:flex;background:#f0f1e6;padding:4px;border-radius:13px;gap:3px}.mode-button{border:0;background:transparent;padding:9px 13px;border-radius:10px;color:#777f6f;font-size:12px;font-weight:700}.mode-button.active{background:white;box-shadow:0 2px 8px #23321b12;color:#466a4c}.tool-actions{display:flex;gap:7px}.tool-button{border:1px solid var(--line);border-radius:10px;background:white;padding:8px 11px;color:#617565;font-weight:600}.tool-button:disabled{opacity:.4;cursor:not-allowed}.side-panel{padding:15px;display:flex;flex-direction:column;min-height:560px}.main-nav{display:grid;grid-template-columns:repeat(4,1fr);background:#f3f3e9;padding:4px;border-radius:14px;gap:2px}.nav-button{position:relative;border:0;background:transparent;padding:10px 4px;border-radius:11px;color:#888d7f;font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:5px}.nav-button span{font-size:15px}.nav-button.active{color:#476b4c;background:white;box-shadow:0 2px 8px #293f2010}.nav-button i{position:absolute;width:6px;height:6px;border-radius:50%;background:#e59a66;right:14%;top:22%}#view-content{padding:17px 4px 5px;overflow:auto;flex:1}.section-title{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:13px}.section-title h2{font:800 17px Manrope,sans-serif;margin:4px 0 0;letter-spacing:-.4px}.soft-link{border:0;background:none;color:#769078;font-size:11px;font-weight:700;padding:5px}.welcome-card{background:linear-gradient(130deg,#f3f0d9,#f2e7c7);border-radius:16px;padding:15px 16px;margin-bottom:14px;position:relative;overflow:hidden}.welcome-card:after{content:"☀";position:absolute;right:13px;top:4px;color:#e0b860;font-size:43px;opacity:.42}.welcome-card h3{font:800 14px Manrope,sans-serif;margin:0 0 5px;position:relative}.welcome-card p{font-size:11px;line-height:1.5;color:#7a806c;margin:0;max-width:82%;position:relative}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.stat-card{border:1px solid #eaebdf;border-radius:13px;padding:10px 8px;background:#fff}.stat-card span{font-size:10px;color:#929787}.stat-card b{display:block;font:800 17px Manrope,sans-serif;margin-top:4px}.section-label{font-size:10px;font-weight:800;color:#838879;letter-spacing:.1em;margin:19px 0 8px}.task-card,.animal-card,.order-card,.shop-card,.friend-card{border:1px solid #eaebdf;border-radius:14px;padding:12px;margin:8px 0;background:#fff}.task-row{display:flex;align-items:center;gap:10px}.task-icon,.item-icon{width:37px;height:37px;border-radius:12px;display:grid;place-items:center;background:#edf2e5;font-size:20px;flex:none}.task-main{flex:1;min-width:0}.task-main strong{display:block;font-size:11px}.task-main small{display:block;color:#94998c;font-size:9px;margin-top:3px}.small-button{border:0;background:#e9f0de;color:#557657;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:800;white-space:nowrap}.small-button:disabled{opacity:.42;cursor:not-allowed}.primary-button{border:0;background:#55765d;color:white;border-radius:12px;padding:11px 14px;font-size:11px;font-weight:800;box-shadow:0 4px 12px #52755321}.primary-button:disabled{opacity:.45}.full-button{width:100%;margin-top:9px}.progress-track{height:6px;background:#edf0e7;border-radius:9px;overflow:hidden;margin-top:9px}.progress-track i{display:block;height:100%;background:#a6bd83;border-radius:9px}.animal-card{display:flex;align-items:center;gap:11px}.animal-face{width:47px;height:47px;border-radius:15px;background:#f6efda;display:grid;place-items:center;font-size:28px;flex:none}.animal-info{flex:1;min-width:0}.animal-info strong{font-size:11px}.animal-info small{display:block;color:#979b8c;font-size:9px;margin-top:2px}.need-row{display:flex;gap:4px;margin-top:7px}.need{height:5px;flex:1;border-radius:8px;background:#e9eee5;overflow:hidden}.need i{display:block;height:100%;background:#9ab781}.need.low i{background:#e0ac6c}.order-card{padding:14px}.order-top{display:flex;justify-content:space-between;align-items:center}.vendor{display:flex;align-items:center;gap:9px}.vendor-face{width:35px;height:35px;display:grid;place-items:center;border-radius:12px;background:#f4e5d3;font-size:21px}.vendor strong{font-size:11px;display:block}.vendor small{color:#95998d;font-size:9px}.order-reward{color:#b88a39;font-weight:800;font-size:11px}.order-items{display:flex;flex-wrap:wrap;gap:6px;margin:11px 0}.order-item{background:#f2f4e9;border-radius:8px;padding:6px 8px;color:#68775f;font-size:9px;font-weight:600}.order-status{font-size:9px;color:#9c9f91}.store-list{display:grid;gap:8px}.store-item{border:1px solid #eaebdf;border-radius:13px;padding:11px;display:flex;align-items:center;gap:9px}.store-item .task-main strong{font-size:10px}.store-item .small-button{margin-left:auto}.empty-state{text-align:center;padding:28px 17px;color:#909788;font-size:11px;line-height:1.5}.empty-state b{font-size:34px;display:block;margin-bottom:8px}.sheet{border:1px solid var(--line);background:#fffefa;color:var(--ink);border-radius:22px;width:min(490px,calc(100vw - 28px));padding:21px;box-shadow:0 24px 100px #243a2966;max-height:85dvh;overflow:auto}.sheet::backdrop{background:#243a2966;backdrop-filter:blur(5px)}.sheet-head{display:flex;justify-content:space-between;align-items:start}.sheet-head h2{font:800 19px Manrope,sans-serif;margin:4px 0}.close-button{border:0;background:#f0f1e8;border-radius:50%;width:30px;height:30px;font-size:20px;color:#708071}.sheet-copy{font-size:11px;line-height:1.5;color:#848b7e;margin:8px 0 16px}.build-list,.map-list{display:grid;gap:8px}.build-option,.map-option{width:100%;display:flex;align-items:center;gap:11px;border:1px solid #eaebdf;background:#fff;border-radius:14px;padding:11px;text-align:left}.build-option .item-icon,.map-option .item-icon{width:43px;height:43px}.build-option strong,.map-option strong{font-size:11px;display:block}.build-option small,.map-option small{font-size:9px;color:#92988b;display:block;margin-top:3px}.build-option .price{margin-left:auto;font-size:10px;font-weight:800;color:#aa843b;white-space:nowrap}.map-option.locked{opacity:.57}.map-option.current{border-color:#93b286;background:#f7f9f2}.footer{display:flex;justify-content:space-between;padding:13px 5px;color:#9a9d8d;font-size:10px}.footer b{color:#d4a84b}.footer button{border:0;background:none;color:#8a9a84;font-size:10px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#344c39;color:#fff;padding:10px 15px;border-radius:12px;font-size:11px;box-shadow:0 8px 30px #253c3280;transition:.2s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}
.farm-object .art.generated{width:min(100%,100px);height:min(100%,110px);display:grid;place-items:center}.farm-object .art.generated img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 2px #425c3035)}.farm-object.plot:before{display:none}.farm-object.plot .art.generated{width:min(100%,124px);height:min(100%,100px)}.farm-object.building .art.generated{width:min(100%,130px);height:min(100%,135px)}.farm-object.decoration .art.generated{width:min(100%,105px);height:min(100%,115px)}
.download-link{color:#607d61;text-decoration:none;font-weight:700}.download-link:hover{text-decoration:underline}
.app-shell{max-width:none;height:100dvh;padding:10px 14px;display:flex;flex-direction:column;overflow:hidden}.topbar{height:52px;flex:none;margin-bottom:8px}.game-layout{display:block;position:relative;flex:1;min-height:0}.farm-panel{height:100%;padding:10px 14px 12px;border-radius:20px;display:flex;min-height:0;background:#fffef8}.farm-heading{position:absolute;z-index:8;left:27px;top:20px;margin:0;padding:8px 12px;border-radius:13px;background:#fffef0dc;box-shadow:0 4px 16px #263c2520;backdrop-filter:blur(8px)}.farm-heading h1{font-size:17px;margin-top:2px}.farm-heading .eyebrow{font-size:8px}.map-switch{position:absolute;left:calc(100% + 9px);top:2px;white-space:nowrap;background:#fffef0}.farm-scene{position:relative;flex:1;min-height:0;overflow:hidden;border-radius:17px;isolation:isolate;background:linear-gradient(170deg,#bce1b4 0%,#acd79f 36%,#9dcc8e 100%);box-shadow:inset 0 0 0 3px #f5efcc,inset 0 -28px 45px #63995b30}.farm-scene:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.34;background:radial-gradient(ellipse at 19% 26%,#e5f0c9 0 2%,transparent 2.3%),radial-gradient(ellipse at 83% 74%,#75a866 0 3%,transparent 3.4%),radial-gradient(ellipse at 57% 16%,#dce9b8 0 1.8%,transparent 2.2%);background-size:140px 110px,170px 135px,120px 145px}.farm-scene:after{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(90deg,#fff5 0 1px,transparent 1px calc(100% - 1px),#557d4320 calc(100% - 1px)),linear-gradient(0deg,#fff4 0 1px,transparent 1px calc(100% - 1px),#557d4320 calc(100% - 1px));border-radius:inherit}.sun-glow{width:260px;height:160px;right:6%;top:-100px;filter:blur(20px)}.landscape-hills{z-index:-1;opacity:.54}.stream{left:78%;width:7%;z-index:-1}.farm-grid{position:absolute;inset:3.5% 3.5% 8%;display:grid;grid-template-columns:repeat(var(--grid-cols,9),minmax(0,1fr));grid-template-rows:repeat(var(--grid-rows,6),minmax(0,1fr));gap:3px;transform:none;z-index:2}.land-cell{position:relative;border:1px solid #fff8;border-radius:12px;background-image:linear-gradient(145deg,#c6db9d50,#b0cd8270),url('assets/generated/meadow-tile.webp');background-size:cover,cover;background-position:center;box-shadow:inset 0 1px #faffdf7a,inset 0 -3px #729b5252;min-width:0;min-height:0;padding:0;transition:.12s;touch-action:manipulation}.land-cell.alternate{background-image:linear-gradient(145deg,#d0dfaa45,#bad18e65),url('assets/generated/meadow-tile.webp');background-size:cover,cover;background-position:center}.land-cell:before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:radial-gradient(#fff8 1px,transparent 1.5px);background-size:19px 19px;opacity:.32;pointer-events:none}.building-mode .land-cell{cursor:crosshair;border:1px solid #fffC;box-shadow:inset 0 1px #fff9,inset 0 -3px #729b5252,0 0 0 1px #67875425}.building-mode .land-cell:hover{background:#e3efb8;border-color:#fff;transform:scale(.97)}.farm-object{z-index:3;overflow:visible;filter:drop-shadow(0 7px 4px #33562b38);touch-action:manipulation}.farm-object .art.generated{width:100%;height:92%;max-width:none;max-height:none}.farm-object .art.generated img{object-fit:contain;filter:drop-shadow(0 4px 2px #24422242)}.farm-object .nameplate{bottom:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;background:#fffde9ed;border:1px solid #fff;box-shadow:0 2px 5px #38552c30;font-size:clamp(7px,.8vw,10px)}.farm-object.plot:before{display:block;inset:18% 5% 13%;border-radius:18px;transform:rotate(-2deg);background:repeating-linear-gradient(0deg,#936c46 0 12%,#a27b50 13% 23%);box-shadow:inset 0 3px #c29a66,inset 0 -3px #76543a,0 3px 5px #4967445c}.farm-object.plot .art.generated{width:78%;height:72%;align-self:start}.farm-object.animal .art.generated{width:84%;height:82%}.farm-object.building .art.generated{width:100%;height:100%}.farm-object.decoration .art.generated{width:85%;height:90%}.farm-object.selected{outline:3px solid #ffda69;background:#fff8a544}.farm-object.movable{outline:3px dashed #fff1a0;background:#fff8}.build-hint{z-index:7;left:15px;bottom:12px;font-size:10px;background:#fffef0e8;border:1px solid #fff}.scene-actions{position:absolute;right:14px;top:14px;z-index:8;display:flex;gap:8px}.scene-action{width:41px;height:41px;border:1px solid #ffffffd9;background:#fffef0e8;border-radius:14px;color:#466544;font-size:21px;box-shadow:0 3px 12px #3d5b3530}.farm-hud{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 3px 0;flex:none}.mode-switch{box-shadow:0 2px 7px #2a432018}.mode-button{padding:9px 15px}.hud-actions{display:flex;gap:7px;align-items:center}.hud-action{min-width:68px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:8px 11px;color:#536d51;font-size:15px;box-shadow:0 2px 7px #2a43200b}.hud-action span{font-size:10px;font-weight:700;margin-left:3px}.tool-button{padding:8px 12px}.build-tray{position:absolute;z-index:12;bottom:67px;left:50%;transform:translateX(-50%);width:min(820px,calc(100% - 28px));padding:12px 14px;background:#fffef4f2;border:1px solid #fff;border-radius:17px;box-shadow:0 10px 38px #314a2670;backdrop-filter:blur(12px)}.build-tray[hidden]{display:none}.build-tray-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:9px}.build-tray-items{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 6px}.tray-item{flex:0 0 78px;min-height:78px;border:1px solid #e2e7d4;background:#fff;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px}.tray-item span{font-size:23px}.tray-item b{font-size:9px;white-space:nowrap}.tray-item small{font-size:8px;color:#9a8748}.tray-item.chosen{border:2px solid #6f965d;background:#f1f6e8}.tray-help{display:block;color:#71806a;font-size:9px;margin-top:4px}.side-panel{position:absolute;z-index:11;right:10px;top:10px;bottom:10px;width:min(390px,calc(100% - 20px));min-height:0;padding:16px;border-radius:18px;box-shadow:0 10px 50px #233e2990;transform:translateX(calc(100% + 20px));transition:transform .22s ease;overflow:auto}.side-panel.open{transform:translateX(0)}.panel-close{position:sticky;top:0;float:right;border:0;background:#f0f1e8;border-radius:50%;width:31px;height:31px;font-size:21px;color:#708071;z-index:2}.side-panel #view-content{padding:5px 3px 10px;overflow:visible}.footer{height:21px;flex:none;padding:4px 8px 0;font-size:9px}.app-shell:has(.side-panel.open) .farm-scene{filter:brightness(.92)}
@media(max-width:700px){.app-shell{padding:6px;height:100dvh}.topbar{height:40px;margin-bottom:5px}.brand-mark{width:33px;height:33px}.brand strong{font-size:14px}.brand small{font-size:7px}.resource{padding:5px 7px;font-size:10px}.icon-button{width:30px;height:30px}.farm-panel{padding:7px;border-radius:15px}.farm-heading{top:14px;left:14px;padding:6px 9px}.farm-heading h1{font-size:14px}.farm-heading .eyebrow{font-size:7px}.map-switch{left:calc(100% + 5px);padding:7px 8px;font-size:9px}.farm-scene{border-radius:13px}.farm-grid{inset:3% 2.5% 10%;gap:2px}.land-cell{border-radius:7px}.farm-object .nameplate{font-size:6px;padding:2px 4px}.farm-object.plot:before{border-radius:10px}.scene-actions{right:8px;top:8px}.scene-action{width:34px;height:34px;border-radius:11px}.farm-hud{padding-top:6px}.mode-button{padding:8px 9px;font-size:11px}.hud-actions{gap:4px}.hud-action{min-width:0;padding:7px 8px;border-radius:10px;font-size:13px}.hud-action span{font-size:9px}.tool-button{padding:7px 8px;font-size:10px}.build-tray{bottom:58px;padding:9px}.tray-item{flex-basis:68px;min-height:69px}.footer{height:17px;font-size:8px}.side-panel{top:7px;right:7px;bottom:7px;width:min(360px,calc(100% - 14px));padding:12px}.build-hint{font-size:8px;max-width:60%;left:8px;bottom:8px}}
@media(orientation:landscape) and (max-height:560px){.app-shell{padding:5px 9px}.topbar{height:36px}.brand-mark{width:30px;height:30px}.farm-heading{top:11px;left:14px}.farm-heading h1{font-size:13px}.farm-grid{inset:3% 2.5% 9%;gap:2px}.farm-hud{padding-top:4px}.mode-button{padding:6px 10px}.hud-action{padding:5px 8px}.footer{height:14px}.build-tray{bottom:52px}}
@media(max-width:850px){.app-shell{padding:14px 15px 9px}.game-layout{grid-template-columns:1fr;gap:12px}.farm-panel{padding:15px;border-radius:20px}.farm-land{height:clamp(340px,53vh,550px);min-height:340px}.side-panel{min-height:410px;padding:11px;border-radius:20px}.main-nav{grid-template-columns:repeat(4,1fr)}#view-content{padding:13px 4px}.topbar{margin-bottom:12px}.farm-heading h1{font-size:20px}}
@media(max-width:480px){.app-shell{padding:9px 9px 6px}.brand-mark{width:35px;height:35px;border-radius:12px}.brand{gap:8px}.brand strong{font-size:14px}.brand small{font-size:7px}.resource-bar{gap:5px}.resource{padding:7px 8px;font-size:11px}.icon-button{width:32px;height:32px}.farm-panel{padding:12px;border-radius:18px}.farm-heading h1{font-size:18px}.map-switch{padding:9px;font-size:10px}.farm-land{height:clamp(330px,49vh,470px);min-height:330px}.farm-grid{inset:5% 3% 9%;gap:2px}.farm-object .nameplate{font-size:7px;padding:2px 4px}.build-hint{font-size:8px;max-width:70%}.side-panel{min-height:390px}.tool-button{padding:8px 9px;font-size:11px}.footer{font-size:9px}}
@media(orientation:landscape) and (min-width:650px){.app-shell{padding:12px 20px 8px}.topbar{height:48px;margin-bottom:10px}.game-layout{grid-template-columns:minmax(0,1.55fr) minmax(310px,.72fr);gap:13px}.farm-panel{padding:14px}.farm-land{height:calc(100dvh - 148px);min-height:280px}.side-panel{height:calc(100dvh - 137px);min-height:280px}.farm-heading{margin-bottom:8px}.farm-heading h1{font-size:19px}.footer{padding-top:7px}}
@media(orientation:landscape) and (max-height:520px){.app-shell{padding:6px 12px}.topbar{height:38px}.brand-mark{width:32px;height:32px}.farm-panel{padding:10px}.farm-land{height:calc(100dvh - 110px);min-height:230px}.side-panel{height:calc(100dvh - 100px);padding:8px}.main-nav .nav-button{padding:6px}.farm-heading h1{font-size:16px}}
\n.farm-scene{background-image:linear-gradient(#ffffff10,#426a3430),url(assets/generated/willowbrook-meadow-map.webp);background-size:100% 100%;background-position:center;background-repeat:no-repeat}.farm-scene:before{display:none}.farm-grid{inset:3% 16.6% 4%}.land-cell{background:transparent!important;border:1px solid transparent!important;box-shadow:none!important}.land-cell:before{display:none}.building-mode .land-cell{background:#f5ffcf22!important;border:1px dashed #fff9!important;box-shadow:inset 0 0 0 1px #658c4e35!important}.building-mode .land-cell:hover{background:#e6f6a477!important}.farm-object{background:transparent}.map-hotspots{position:absolute;inset:0;z-index:5;pointer-events:none}.map-hotspot{position:absolute;pointer-events:auto;border:1px solid transparent;background:transparent;border-radius:16px;touch-action:manipulation}.map-hotspot span{position:absolute;left:50%;top:100%;transform:translate(-50%,3px);white-space:nowrap;padding:4px 8px;border-radius:9px;background:#fffdf0ed;color:#52694b;font-size:9px;font-weight:800;box-shadow:0 2px 6px #34492830;opacity:.72;transition:opacity .14s}.farm-scene:hover .map-hotspot span,.map-hotspot:focus-visible span{opacity:1}.map-hotspot:hover,.map-hotspot:focus-visible{outline:2px solid #fff8;background:#ffffff1c}.homestead{left:7%;top:3%;width:19%;height:28%}.barnyard{left:25%;top:0;width:22%;height:31%}.orchard-area{left:48%;top:0;width:34%;height:25%}.bridge-area{right:0;top:27%;width:14%;height:37%}.farm-grid{z-index:3}.map-hotspots{z-index:4}.farm-object{z-index:5}\n@media(max-width:700px){.map-hotspot span{opacity:.84}}.map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}.farm-scene{background:#9fcb8b}.farm-grid{z-index:3}
@media(orientation:landscape){.map-art{object-fit:contain}.farm-grid{left:16.6%;right:16.6%;top:3%;bottom:4%}.homestead{left:23%;top:2%;width:13%;height:27%}.barnyard{left:33%;top:0;width:16%;height:30%}.orchard-area{left:49%;top:0;width:25%;height:25%}.bridge-area{right:16%;top:25%;width:10%;height:37%}}
.side-panel{position:fixed;right:12px;top:68px;bottom:48px;width:min(390px,calc(100vw - 24px));z-index:30}
@media(max-width:700px){.side-panel{top:48px;right:7px;bottom:42px;width:min(360px,calc(100vw - 14px))}}
.map-hotspot span{left:5px;top:8px;transform:none}
.building-mode .map-hotspot{pointer-events:none}

.crop-art{width:80%!important;height:83%!important;align-self:start;position:relative;z-index:1;overflow:hidden;filter:drop-shadow(0 3px 2px #425c3035)}.crop-art img{width:300%!important;height:300%!important;max-width:none!important;max-height:none!important;object-fit:fill!important;position:absolute;left:0;top:0;filter:drop-shadow(0 3px 2px #24422242)}.farm-object.plot .nameplate{z-index:2}.farm-object.plot.stage-0 .crop-art{filter:saturate(.35) brightness(.82)}.farm-object.plot.stage-1 .crop-art{filter:saturate(.6) brightness(.95)}.farm-object.plot.stage-2 .crop-art{filter:saturate(.9)}.farm-object.plot.stage-3 .crop-art{filter:drop-shadow(0 0 8px #ffe57a) drop-shadow(0 3px 2px #24422242)}









.farm-object.plot .crop-art{width:80%!important;height:83%!important;align-self:start;position:relative;z-index:1;overflow:hidden;filter:drop-shadow(0 3px 2px #425c3035)}.farm-object.plot .crop-art img{width:300%!important;height:300%!important;max-width:none!important;max-height:none!important;object-fit:fill!important;position:absolute;left:0;top:0;filter:drop-shadow(0 3px 2px #24422242)}.farm-object.plot .nameplate{z-index:2}.farm-object.plot.stage-0 .crop-art{filter:saturate(.35) brightness(.82)}.farm-object.plot.stage-1 .crop-art{filter:saturate(.6) brightness(.95)}.farm-object.plot.stage-2 .crop-art{filter:saturate(.9)}.farm-object.plot.stage-3 .crop-art{filter:drop-shadow(0 0 8px #ffe57a) drop-shadow(0 3px 2px #24422242)}

.farm-object.plot.stage-3 .nameplate{background:#fff2bd;border-color:#f4d777;color:#775c24}
.farm-object.plot .crop-art{transform-origin:50% 78%;transition:transform 1.2s cubic-bezier(.2,.8,.2,1),filter .9s;animation:crop-breathe 3.2s ease-in-out infinite alternate}.farm-object.plot.stage-0 .crop-art{transform:scale(.42) translateY(18%);filter:saturate(.35) brightness(.82)}.farm-object.plot.stage-1 .crop-art{transform:scale(.63) translateY(10%);filter:saturate(.63) brightness(.94)}.farm-object.plot.stage-2 .crop-art{transform:scale(.82) translateY(4%);filter:saturate(.88)}.farm-object.plot.stage-3 .crop-art{transform:scale(1);filter:drop-shadow(0 0 8px #ffe57a) drop-shadow(0 3px 2px #24422242)}@keyframes crop-breathe{from{translate:0 1px}to{translate:0 -2px}}.crop-state{position:absolute;z-index:3;right:5%;top:14%;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#fffef0e8;border:1px solid #fff;box-shadow:0 2px 6px #34592b44;font:13px system-ui;animation:crop-state-pop .55s cubic-bezier(.18,.85,.3,1.3) both}.crop-state.is-ready{background:#fff0a4;color:#a67424;animation:crop-ready-glow 1.5s ease-in-out infinite alternate}@keyframes crop-state-pop{from{scale:.2;opacity:0}to{scale:1;opacity:1}}@keyframes crop-ready-glow{from{scale:1;box-shadow:0 0 2px #ffd86b}to{scale:1.15;box-shadow:0 0 11px #ffd86b}}.crop-stats{position:absolute;left:18%;right:18%;bottom:15%;z-index:3;height:4px;border:1px solid #fff9;border-radius:4px;background:#304a2c80;overflow:hidden}.crop-stats i{display:block;height:100%;background:linear-gradient(90deg,#c1df74,#f6d568);transition:width .8s linear}.farm-object.plot.stage-3 .crop-stats{opacity:0}@media(prefers-reduced-motion:reduce){.farm-object.plot .crop-art,.crop-state,.crop-state.is-ready{animation:none}}
/* Tighter orchard field layout: compact isometric tiles inside the open meadow. */
.farm-grid{left:14%!important;right:14%!important;top:29%!important;bottom:3%!important;gap:0!important;transform:perspective(1000px) rotateX(22deg)!important;transform-origin:50% 100%!important}
.farm-object.plot:before{display:none!important;content:none!important}
.farm-object.plot .crop-art{width:100%!important;height:100%!important;align-self:center;transform-origin:50% 85%;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),filter .8s;animation:crop-sway 3s ease-in-out infinite alternate}
.farm-object.plot .field-soil{width:100%!important;height:100%!important;transform:none!important;transition:none!important;animation:none!important;position:absolute!important;inset:0!important}
.farm-object.plot .crop-art{position:absolute!important;left:0;right:0;bottom:14%;width:100%!important;height:72%!important;align-self:auto!important;transform:scale(calc(.28 + var(--growth, 0%) * .0072))!important;transform-origin:50% 100%!important;transition:transform .9s ease,filter .9s ease!important}
.farm-object.plot .crop-art img{width:100%!important;height:100%!important;object-fit:contain!important}
/* Keep the isometric soil tile fixed while only the crop sprite scales from its soil anchor. */
.farm-grid{transform:perspective(860px) rotateX(27deg)!important;transform-origin:50% 100%!important;gap:0!important}
.coop-preview .grand-yard-art{left:0!important;top:0!important;width:100%!important;height:100%!important;object-fit:contain!important}
.farm-object.plot .field-soil{transform:none!important}
.farm-object.plot .crop-art img{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;position:static;filter:drop-shadow(0 2px 1px #24422242)}
.farm-object.plot.stage-0 .crop-art{transform:scale(.42) translateY(16%);filter:saturate(.5)}
.farm-object.plot.stage-1 .crop-art{transform:scale(.62) translateY(10%);filter:saturate(.72)}
.farm-object.plot.stage-2 .crop-art{transform:scale(.82) translateY(4%);filter:saturate(.92)}
.farm-object.plot.stage-3 .crop-art{transform:scale(1);filter:drop-shadow(0 0 5px #ffe57a)}
.farm-object.plot .crop-state{right:0;top:3%;width:16px;height:16px;font-size:10px}
.farm-object.plot .crop-stats{left:22%;right:22%;bottom:12%;height:3px}
.farm-object.plot .nameplate{display:none!important}.farm-object.plot:hover .nameplate,.farm-object.plot:focus-visible .nameplate{display:block!important}
@keyframes crop-sway{from{translate:-1px 1px}to{translate:1px -1px}}
/* Shape the landmark hit zones around the painted art; labels appear only on demand. */
.map-hotspot{border:0!important;border-radius:0!important;background:transparent!important;clip-path:none;}
.map-hotspot span{opacity:0!important;left:50%;top:100%;transform:translate(-50%,3px);pointer-events:none;font-size:8px}
.map-hotspot:hover span,.map-hotspot:focus-visible span{opacity:1!important}
.app-shell{position:fixed;inset:0;max-width:none;width:100%;height:100dvh;margin:0;padding:0;overflow:hidden;background:#9fcb8b}
body{height:100dvh;min-height:0;overflow:hidden;background:#9fcb8b;overscroll-behavior:none}
.topbar{position:absolute;z-index:20;left:0;right:0;top:0;height:auto;min-height:58px;margin:0;padding:calc(env(safe-area-inset-top) + 8px) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left));background:linear-gradient(#f7f6edee,#f7f6edaa 75%,transparent);pointer-events:none}
.topbar>*{pointer-events:auto}.brand-mark{box-shadow:0 2px 12px #284b2b22}.resource-bar{gap:6px}.resource{background:#fffef0df;box-shadow:0 2px 10px #29462520}
.game-layout{position:absolute;inset:0;display:block}
.farm-panel{position:absolute;inset:0;display:block;min-width:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.farm-heading{position:absolute;z-index:10;left:max(12px,env(safe-area-inset-left));top:calc(env(safe-area-inset-top) + 62px);margin:0;padding:8px 11px;border-radius:14px;background:#fffef0d9;box-shadow:0 3px 12px #26442221;pointer-events:auto}
.farm-heading h1{font-size:clamp(16px,2vw,22px)}.farm-heading .eyebrow{font-size:8px}.map-switch{padding:9px 11px;background:#fffef5e8}
.farm-scene{position:absolute;inset:0;width:100%;height:100dvh;min-height:0;border-radius:0;background:#9fcb8b;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
.camera-map{position:absolute;left:calc((100vw - max(100vw,150dvh))/2);top:0;width:max(100vw,150dvh);aspect-ratio:3/2;transform:translate3d(var(--camera-x,0px),var(--camera-y,0px),0) scale(var(--camera-zoom,1));transform-origin:50% 50%;will-change:transform}
.map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;object-position:center}
.farm-grid{left:14%!important;right:14%!important;top:29%!important;bottom:3%!important;gap:0!important;transform:perspective(1000px) rotateX(22deg)!important;transform-origin:50% 100%!important}
.farm-object.plot .crop-art{width:114%!important;height:114%!important}
.farm-object.plot .crop-art{transform:scale(calc(.34 + var(--growth, 0%) * .0074)) translateY(calc(24% - var(--growth, 0%) * .22%));transform-origin:50% 85%;transition:transform 2.2s cubic-bezier(.2,.8,.2,1),filter 2s;filter:saturate(calc(.42 + var(--growth, 0%) * .0058));animation:crop-sway 3s ease-in-out infinite alternate}
.farm-object.plot.stage-3 .crop-art{filter:drop-shadow(0 0 5px #ffe57a)}
.homestead{left:8%;top:4%;width:18%;height:24%;clip-path:polygon(7% 25%,58% 0,100% 11%,96% 78%,61% 96%,15% 100%,0 57%)}
.barnyard{left:23%;top:0;width:20%;height:29%;clip-path:polygon(6% 28%,48% 0,95% 2%,100% 72%,70% 100%,10% 84%,0 49%)}
.orchard-area{left:42%;top:0;width:34%;height:28%;clip-path:polygon(0 34%,25% 5%,56% 0,100% 30%,91% 79%,53% 100%,12% 83%)}
.bridge-area{left:77%;right:auto;top:26%;width:20%;height:34%;clip-path:polygon(69% 0,100% 8%,34% 100%,0 85%)}
.farm-hud{position:absolute;z-index:15;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px max(12px,env(safe-area-inset-right)) calc(env(safe-area-inset-bottom) + 10px) max(12px,env(safe-area-inset-left));background:linear-gradient(transparent,#f5f4e9eb 22%,#f5f4e9f5);pointer-events:none}
.farm-hud>*{pointer-events:auto}.mode-switch,.hud-actions{box-shadow:0 3px 14px #314a2a26}.build-tray{position:absolute;z-index:18;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 73px);max-height:34dvh;overflow:auto;background:#fffef2f2;backdrop-filter:blur(12px);box-shadow:0 5px 22px #26442230}
.scene-actions{position:absolute;z-index:12;right:max(12px,env(safe-area-inset-right));top:calc(env(safe-area-inset-top) + 64px);display:grid;gap:7px}
.scene-action{width:42px;height:42px;border:1px solid #ffffffa8;border-radius:14px;background:#fffef0dc;color:#385b3c;font-size:21px;box-shadow:0 3px 12px #25432135;backdrop-filter:blur(8px);touch-action:manipulation}
.build-hint{position:absolute;z-index:12;left:max(12px,env(safe-area-inset-left));bottom:calc(env(safe-area-inset-bottom) + 76px);font-size:11px;padding:7px 10px;border-radius:11px;background:#fffef0d9;color:#52684d;pointer-events:none}
.side-panel{top:calc(env(safe-area-inset-top) + 10px);right:max(10px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 78px);width:min(390px,calc(100vw - 20px));max-height:none;z-index:30;border:1px solid #fff9;box-shadow:0 8px 30px #253d2940;backdrop-filter:blur(14px)}
.footer{display:none!important}.farm-object .nameplate{display:none!important}.farm-object:focus-visible .nameplate{display:block!important}.farm-object.plot:focus-visible .nameplate{display:block!important}
@media(max-width:700px){.farm-heading{top:calc(env(safe-area-inset-top) + 56px)}.farm-hud{align-items:flex-end;flex-direction:column}.mode-switch{align-self:flex-start}.hud-actions{width:100%;justify-content:space-between}.hud-action{flex:1}.build-tray{bottom:calc(env(safe-area-inset-bottom) + 105px);max-height:32dvh}.build-hint{bottom:calc(env(safe-area-inset-bottom) + 160px)}.farm-object.plot .crop-state{width:18px;height:18px}.side-panel{top:calc(env(safe-area-inset-top) + 12px);bottom:calc(env(safe-area-inset-bottom) + 126px)}}
@media(orientation:landscape) and (max-height:520px){.topbar{min-height:42px}.farm-heading{top:calc(env(safe-area-inset-top) + 46px)}.farm-hud{flex-direction:row;align-items:center;padding-bottom:calc(env(safe-area-inset-bottom) + 6px)}.mode-switch{align-self:auto}.hud-actions{width:auto}.hud-action{flex:initial}.build-tray{bottom:calc(env(safe-area-inset-bottom) + 60px);max-height:42dvh}.build-hint{bottom:calc(env(safe-area-inset-bottom) + 64px)}.side-panel{bottom:calc(env(safe-area-inset-bottom) + 64px)}}
/* Meadow & Market: field-journal visual system */
:root{--ink:#20392e;--muted:#718176;--paper:#f5f0df;--white:#fffcf2;--green:#4c7657;--deep:#244c3c;--mint:#e6edda;--line:#dfe3d2;--sun:#f2d188;--peach:#d98261;--shadow:0 12px 32px #1d3c2c24;--forest:#183f31;--leaf:#74945e;--clay:#c97957;--cream:#fff9e9}
button{transition:filter .15s ease,transform .15s ease,box-shadow .15s ease}button:hover{filter:brightness(1.035)}button:active{transform:scale(.97)}button:focus-visible{outline:3px solid #e7b65f;outline-offset:2px}
.topbar{background:linear-gradient(180deg,#183f31f4 0%,#214d3ae8 76%,#214d3a00 100%);min-height:76px;align-items:flex-start;padding-top:calc(env(safe-area-inset-top) + 12px)}
.brand{color:#fff9e9;gap:10px}.brand-mark{width:40px;height:40px;border:1px solid #f5e5bb70;background:#f7e9c627;border-radius:13px;color:#f5d68e;box-shadow:inset 0 1px #fff4}.brand small{color:#d6dfc5;letter-spacing:.19em}.brand strong{font-size:17px;letter-spacing:-.35px}
.resource-bar{gap:8px}.resource{min-height:38px;padding:7px 12px;border:1px solid #f5eacb88;border-radius:12px;background:#fff8e8;box-shadow:0 3px 10px #102e2440;color:#254b39}.resource:first-child{background:#fff1ca}.resource b{font:800 13px Manrope,sans-serif}.icon-button{width:38px;height:38px;border:1px solid #f5eacb88;border-radius:12px;background:#fff8e8;color:#315d45;box-shadow:0 3px 10px #102e2440}
.farm-heading{top:calc(env(safe-area-inset-top) + 80px);left:max(16px,env(safe-area-inset-left));padding:10px 14px;border:1px solid #fff9e9d9;border-radius:15px;background:#fff9e9ed;box-shadow:0 6px 18px #243c2926}.farm-heading .eyebrow{color:#8a7855;letter-spacing:.18em}.farm-heading h1{color:#234432;font-size:clamp(17px,2vw,23px);letter-spacing:-.45px}.map-switch{border:1px solid #d9dfcd;border-radius:11px;background:#f1f3e8;color:#34563f;font-weight:800;box-shadow:0 2px 6px #263b2410}
.scene-actions{top:calc(env(safe-area-inset-top) + 78px);gap:8px}.scene-action{border:1px solid #fff7e5;border-radius:13px;background:#fff8e9ed;color:#244d3a;box-shadow:0 4px 13px #173e2f3d;font-weight:700}.scene-action:hover{background:#fffdf4}
.farm-hud{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:calc(env(safe-area-inset-bottom) + 12px);background:linear-gradient(transparent,#173f31b8 24%,#173f31f5 100%)}
.mode-switch{display:flex;gap:4px;padding:5px;border:1px solid #ffffffa3;border-radius:16px;background:#fff9e9;box-shadow:0 6px 18px #1a3b2e48}.mode-button{min-height:43px;padding:9px 15px;border:0;border-radius:12px;background:transparent;color:#57705b;font-weight:800}.mode-button.active{background:#285940;color:#fff8e8;box-shadow:0 3px 8px #16392745}
.hud-actions{gap:6px;padding:5px;border:1px solid #ffffffa3;border-radius:16px;background:#fff9e9;box-shadow:0 6px 18px #1a3b2e48}.hud-action,.tool-button{min-height:42px;min-width:76px;padding:8px 12px;border:1px solid transparent;border-radius:11px;background:transparent;color:#345940;font-weight:800;box-shadow:none}.hud-action.active,.hud-action:hover{background:#e8eedc}.hud-action span{font-size:10px}.tool-button{min-width:auto;border-color:#d9dfce;background:#f2f2e8;color:#667463}.tool-button:disabled{opacity:.45}
.build-hint{bottom:calc(env(safe-area-inset-bottom) + 82px);padding:8px 12px;border:1px solid #fff8e8;border-radius:10px;background:#fff9e9ed;color:#395941;font-size:10px;font-weight:700;box-shadow:0 3px 10px #233e2925}
.build-tray{bottom:calc(env(safe-area-inset-bottom) + 82px);padding:15px 16px 12px;border:1px solid #fff5df;border-radius:20px;background:#fff9eaf2;box-shadow:0 14px 38px #14382973;color:#294a37}.build-tray-head{font:800 14px Manrope,sans-serif;color:#244936}.build-tray-head .small-button{min-height:36px;padding:8px 14px;border-radius:10px;background:#285940;color:#fff8e8}.build-tray-items{gap:9px}.tray-item{flex-basis:84px;min-height:84px;border:1px solid #e2dfcc;border-radius:14px;background:#fffdf6;box-shadow:0 2px 6px #283f2710}.tray-item span{font-size:26px}.tray-item b{font-size:10px;color:#355540}.tray-item small{font-size:9px;color:#987545}.tray-item.chosen{border:2px solid #4d7952;background:#ecf2e3;box-shadow:0 0 0 3px #85a16b35}
.side-panel{padding:20px;border:1px solid #fff5dc;border-radius:21px;background:#fff9eaf5;color:#283f32;box-shadow:0 14px 42px #183b2e75;backdrop-filter:blur(18px)}.panel-close,.close-button{width:38px;height:38px;border:1px solid #dfe1d1;border-radius:12px;background:#f1f0e5;color:#4e6954;font-size:22px}.side-panel #view-content{padding:7px 2px 14px}
.eyebrow,.section-label{color:#8a7753;letter-spacing:.17em}.section-title{margin:5px 0 14px}.section-title h2{font:800 21px Manrope,sans-serif;letter-spacing:-.5px;color:#254633}.soft-link{border:1px solid #e2dfce;border-radius:10px;background:#f5f1e3;color:#527153;font-weight:800}
.welcome-card{padding:16px;border:1px solid #dce4d1;border-radius:16px;background:linear-gradient(135deg,#edf2e2,#f8f3df);box-shadow:inset 0 1px #fff}.welcome-card h3{color:#31543d;font:800 15px Manrope,sans-serif}.welcome-card p{color:#718073;line-height:1.55}.stats-row{gap:8px}.stat-card{border:1px solid #e3e2d4;border-radius:13px;background:#fffdf5;box-shadow:0 2px 8px #29462d0c}.stat-card span{color:#72806f}.stat-card b{color:#2b523b;font:800 20px Manrope,sans-serif}
.section-label{margin:18px 2px 8px;font-size:9px;font-weight:800}.task-card,.animal-card,.order-card,.friend-card{border:1px solid #e5e1d1;border-radius:14px;background:#fffdf7;box-shadow:0 3px 10px #283e290a}.task-row{gap:12px}.task-icon,.item-icon,.animal-face{border:1px solid #e5e2d1;border-radius:13px;background:#f3efdf}.task-main strong{color:#304c39}.task-main small{color:#7b8779;line-height:1.4}.small-button,.primary-button{min-height:38px;border:1px solid #d5dec9;border-radius:10px;background:#edf1e4;color:#385b40;font-weight:800}.primary-button{border:1px solid #193f30;background:linear-gradient(180deg,#376b4b,#224e39);color:#fff8e8;box-shadow:0 4px 10px #234a3540}.primary-button:hover{filter:brightness(1.09)}
.progress-track{height:8px;border:1px solid #d9dfcd;border-radius:99px;background:#e8ecdf}.progress-track i{border-radius:99px;background:linear-gradient(90deg,#73a45c,#dfb85f)}
.animal-card{gap:11px;padding:12px}.animal-face{width:48px;height:48px;background:#f5edda;font-size:27px}.animal-info strong{font-size:12px;color:#2b4b38}.animal-info small{font-size:10px;color:#7d897a}.need{height:6px;background:#e7e9dd}.need i{border-radius:8px;background:#82a869}.need.low i{background:#d27e5b}
.order-card{padding:14px}.vendor-face{border:1px solid #eadfc9;background:#f6edda}.vendor strong{font-size:12px;color:#2d4c38}.vendor small,.order-status{color:#7c887c}.order-reward{color:#9a7130}.order-item{border:1px solid #e3e6d7;border-radius:9px;background:#edf0e5;color:#506d50}.store-item{border:1px solid #e4e2d5;border-radius:13px;background:#fffdf6}.empty-state{color:#758273}.empty-state b{font-size:40px}
.sheet{width:min(520px,calc(100vw - 26px));padding:22px;border:1px solid #fff4d9;border-radius:22px;background:#fff9e9;color:#2a4233;box-shadow:0 24px 90px #122e246b}.sheet::backdrop{background:#173b2ed1;backdrop-filter:blur(7px)}.sheet-head h2{font:800 22px Manrope,sans-serif;color:#244632}.sheet-copy{font-size:12px;color:#728073;line-height:1.6}.close-button{border-radius:12px}.build-option,.map-option{min-height:67px;border:1px solid #e4e1d1;border-radius:14px;background:#fffdf6;box-shadow:0 2px 7px #263f2710}.build-option:hover,.map-option:hover{border-color:#8da879;background:#f4f5e9}.build-option strong,.map-option strong{color:#304b38;font-size:12px}.build-option small,.map-option small{font-size:10px;color:#788477}.build-option .price,.price{color:#987034}.map-option.current{border-color:#76966c;background:#eff3e5;box-shadow:inset 0 0 0 1px #d3dfc9}.map-option.locked{filter:saturate(.55)}
.toast{bottom:calc(env(safe-area-inset-bottom) + 94px);max-width:min(92vw,440px);padding:12px 17px;border:1px solid #f3e8c6;border-radius:14px;background:#214d3a;color:#fff8e8;font-size:12px;font-weight:700;box-shadow:0 8px 24px #102e2470}
.land-cell{border-radius:6px}.farm-object.plot .crop-state{border:2px solid #fff9e9;background:#fff6d9;color:#56753f;box-shadow:0 3px 8px #1e402f36}.farm-object.plot .crop-state.is-ready{background:#f7d979;color:#795c21}.crop-stats{height:5px!important;border:1px solid #fff9e6;background:#294b34a8}.crop-stats i{background:linear-gradient(90deg,#90ba67,#edcf67)}
@media(max-width:700px){.topbar{min-height:65px;padding-top:calc(env(safe-area-inset-top) + 8px)}.brand-mark{width:35px;height:35px}.brand strong{font-size:14px}.resource{min-height:34px;padding:5px 8px}.resource-bar{gap:5px}.icon-button{width:34px;height:34px}.farm-heading{top:calc(env(safe-area-inset-top) + 68px);left:max(10px,env(safe-area-inset-left));padding:8px 10px}.farm-heading h1{font-size:15px}.map-switch{position:static;margin-left:8px;padding:8px 9px;font-size:10px}.scene-actions{top:calc(env(safe-area-inset-top) + 68px);right:max(10px,env(safe-area-inset-right));gap:6px}.scene-action{width:38px;height:38px;border-radius:12px}.farm-hud{gap:7px;padding-left:max(9px,env(safe-area-inset-left));padding-right:max(9px,env(safe-area-inset-right));padding-bottom:calc(env(safe-area-inset-bottom) + 8px)}.farm-hud{flex-direction:column;align-items:stretch}.mode-switch{align-self:flex-start;padding:4px}.mode-button{min-height:38px;padding:7px 12px}.hud-actions{width:100%;justify-content:space-between;gap:2px;padding:4px;border-radius:14px}.hud-action,.tool-button{min-width:0;flex:1;min-height:39px;padding:7px 5px;font-size:13px}.hud-action span{font-size:9px}.tool-button{flex:0 0 auto}.build-tray{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 103px);width:auto;max-height:36dvh;padding:11px;border-radius:17px}.tray-item{flex-basis:75px;min-height:75px}.build-hint{left:max(10px,env(safe-area-inset-left));bottom:calc(env(safe-area-inset-bottom) + 160px);font-size:9px}.side-panel{top:calc(env(safe-area-inset-top) + 9px);right:max(8px,env(safe-area-inset-right));bottom:calc(env(safe-area-inset-bottom) + 112px);width:min(380px,calc(100vw - 16px));padding:14px}.sheet{padding:18px}.toast{bottom:calc(env(safe-area-inset-bottom) + 115px)}}
@media(orientation:landscape) and (max-height:520px){.topbar{min-height:46px;padding-top:calc(env(safe-area-inset-top) + 4px)}.brand-mark{width:33px;height:33px}.farm-heading{top:calc(env(safe-area-inset-top) + 50px)}.scene-actions{top:calc(env(safe-area-inset-top) + 48px)}.farm-hud{flex-direction:row;align-items:center;padding-bottom:calc(env(safe-area-inset-bottom) + 5px)}.mode-switch{align-self:auto}.hud-actions{width:auto}.hud-action{flex:initial;min-width:62px}.tool-button{flex:0 0 auto}.build-tray{bottom:calc(env(safe-area-inset-bottom) + 55px);max-height:42dvh}.build-hint{bottom:calc(env(safe-area-inset-bottom) + 60px)}.side-panel{bottom:calc(env(safe-area-inset-bottom) + 58px)}.toast{bottom:calc(env(safe-area-inset-bottom) + 60px)}}
.homestead{left:15.5%;top:4%;width:13%;height:24%;clip-path:polygon(7% 25%,58% 0,100% 11%,96% 78%,61% 96%,15% 100%,0 57%)}
.barnyard{left:26%;top:0;width:16%;height:28%;clip-path:polygon(6% 28%,48% 0,95% 2%,100% 72%,70% 100%,10% 84%,0 49%)}
.orchard-area{left:40%;top:0;width:28%;height:27%;clip-path:polygon(0 34%,25% 5%,56% 0,100% 30%,91% 79%,53% 100%,12% 83%)}
.bridge-area{right:19%;top:25%;width:13%;height:36%;clip-path:polygon(69% 0,100% 8%,34% 100%,0 85%)}
@media(max-width:700px){.farm-grid{left:14%!important;right:14%!important;top:29%!important;bottom:3%!important}.homestead{left:15.5%;}.barnyard{left:26%;}.orchard-area{left:40%;}.bridge-area{right:19%;}}

/* Bigger build tiles and coop growth visuals. */
.farm-grid{grid-template-columns:repeat(var(--grid-cols,14),minmax(0,1fr));grid-template-rows:repeat(var(--grid-rows,10),minmax(0,1fr))}
.coop-yard{position:absolute;inset:-4%;display:block;overflow:visible;pointer-events:none;filter:drop-shadow(0 5px 3px #27452c36)}
.coop-yard .coop-run{position:absolute;display:none;inset:9% 0 0;width:100%;height:91%;object-fit:fill;z-index:0}
.coop-yard .coop-house{position:absolute;left:3%;top:-5%;width:94%;height:87%;object-fit:contain;z-index:1;filter:drop-shadow(0 3px 2px #3b2b1b65)}
.coop-yard .yard-hen{position:absolute;display:none;width:21%;height:30%;object-fit:contain;z-index:2;filter:drop-shadow(0 2px 1px #40322070)}
.coop-yard .coop-tier-mark{position:absolute;z-index:3;right:2%;top:0;padding:3px 6px;border:1px solid #fff8e7;border-radius:99px;background:#fff6d9;color:#715427;font:800 clamp(7px,1vw,11px) Manrope,sans-serif;box-shadow:0 2px 6px #3b4b2d38;white-space:nowrap}
.coop-yard.tier-1 .coop-run,.coop-yard.tier-2 .coop-run,.coop-yard.tier-3 .coop-run{display:block}
.coop-yard.tier-3 .grand-yard-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:4;filter:drop-shadow(0 4px 3px #27452c40)}
.coop-yard.tier-3 .coop-tier-mark{display:none}
.coop-yard.tier-1 .coop-house{left:20%;top:0;width:62%;height:84%}.coop-yard.tier-2 .coop-house{left:22%;top:-1%;width:58%;height:79%}.coop-yard.tier-3 .coop-house{left:30%;top:4%;width:40%;height:72%}
.coop-yard.tier-1 .yard-hen:nth-of-type(3){display:block;left:5%;top:56%}
.coop-yard.tier-2 .yard-hen:nth-of-type(3),.coop-yard.tier-2 .yard-hen:nth-of-type(4){display:block}.coop-yard.tier-2 .yard-hen:nth-of-type(3){left:8%;top:58%}.coop-yard.tier-2 .yard-hen:nth-of-type(4){right:5%;top:46%}
.coop-yard.tier-3 .yard-hen{display:block;width:17%;height:26%}.coop-yard.tier-3 .yard-hen:nth-of-type(3){left:5%;top:61%}.coop-yard.tier-3 .yard-hen:nth-of-type(4){left:41%;top:67%}.coop-yard.tier-3 .yard-hen:nth-of-type(5){right:4%;top:55%}
.coop-preview{position:relative;height:150px;margin:12px 0 15px;border:1px solid #e2e5d5;border-radius:16px;background:linear-gradient(145deg,#e9efdc,#f6f0dd);overflow:hidden}.coop-preview img{position:absolute;object-fit:contain}.coop-preview .coop-house{width:62%;height:100%;left:20%;top:-4%}.coop-preview .coop-run{display:block;inset:10% 8% 0;width:84%;height:90%}.coop-preview .yard-hen{width:18%;height:31%;bottom:12%}.coop-preview .yard-hen:nth-of-type(3){left:12%}.coop-preview .yard-hen:nth-of-type(4){left:43%}.coop-preview .yard-hen:nth-of-type(5){right:12%}.coop-upgrade-list{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.coop-tier-step{padding:7px 3px;border:1px solid #e1e3d6;border-radius:10px;background:#f7f5e9;text-align:center;color:#7d8877;font:700 9px 'DM Sans',sans-serif}.coop-tier-step.active{border-color:#87a276;background:#eaf1df;color:#2c563d;box-shadow:inset 0 0 0 1px #c9dcc0}
.farm-grid{left:6.8%!important;right:6.8%!important;top:19.5%!important;bottom:1%!important}
@media(max-width:700px){.coop-tier-mark{font-size:8px}.coop-preview{height:132px}}

/* A plot has two clear soil steps before crop growth begins. */
.farm-object.plot.soil-empty{background:transparent!important;border:0!important;box-shadow:none!important}
.farm-object.plot .field-soil{position:relative;z-index:1;display:block;width:88%;height:83%;align-self:start;overflow:visible;filter:drop-shadow(0 3px 3px #263e2d45);transition:filter .35s,transform .35s}
.farm-object.plot .field-soil img{display:block;width:100%;height:100%;object-fit:contain}
.farm-object.plot .field-soil.raw{filter:drop-shadow(0 2px 2px #263e2d35) saturate(.72) brightness(1.14);transform:scale(.94)}
.farm-object.plot .field-soil.tilled{filter:drop-shadow(0 4px 4px #263e2d48) saturate(1.12);transform:scale(1.02)}
.farm-object.plot .crop-state.soil-action{right:3%;top:4%;background:#fff9e9;color:#536a43;border:1px solid #fff;box-shadow:0 2px 6px #27432e54}
.farm-object.plot.soil-raw .nameplate,.farm-object.plot.soil-tilled .nameplate{display:block;background:#fff9e9e8;color:#526243;border:1px solid #fff8e5;font-size:clamp(7px,.76vw,10px)}
.farm-object.plot .field-soil.planted{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;z-index:1!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important}
.farm-object.plot .field-soil.planted img{width:100%!important;height:100%!important;object-fit:fill!important}
.farm-object.plot .crop-art{position:absolute!important;left:0!important;right:0!important;bottom:12%!important;width:100%!important;height:76%!important;align-self:auto!important;z-index:2!important;overflow:visible!important;transform:scale(calc(.28 + var(--scale-growth,0) * .82))!important;transform-origin:50% 100%!important;transition:transform .9s cubic-bezier(.18,.72,.3,1)!important;filter:none!important}
.farm-object.plot .crop-art img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;position:static!important;filter:drop-shadow(0 2px 2px #24422248)!important}
.farm-grid{transform:perspective(860px) rotateX(27deg)!important;transform-origin:50% 100%!important;gap:0!important}
.friend-code-input{flex:1;min-width:0;min-height:42px;padding:9px 12px;border:1px solid #dfe3d2;border-radius:11px;background:#fffdf5;color:#294a37;font:700 13px 'DM Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase}
.friend-farm-preview{min-height:150px;margin:12px 0;border:1px solid #dfe3d2;border-radius:16px;background-size:cover;background-position:center;display:flex;align-items:flex-end;justify-content:space-between;gap:8px;padding:12px;color:#fff9e9;font-weight:800;text-shadow:0 2px 5px #183f31}

/* A true isometric board: JS projects every logical cell onto these diagonal axes. */
.farm-grid{left:6%!important;right:6%!important;top:20%!important;bottom:2%!important;display:block!important;transform:none!important;perspective:none!important;overflow:visible!important;}
.farm-grid>.land-cell,.farm-grid>.farm-object{position:absolute!important;margin:0!important;min-width:0!important;min-height:0!important;}
.farm-grid>.land-cell{padding:0!important;border-radius:0!important;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);}
.building-mode .farm-grid>.land-cell{background:#f5ffcf4d!important;border:2px solid #fffde8!important;box-shadow:none!important;}
.building-mode .farm-grid>.land-cell:hover{background:#e6f6a477!important;}
.farm-grid>.farm-object{padding:0!important;}
.farm-grid>.farm-object:hover,.farm-grid>.farm-object.selected{transform:translateY(-2px) scale(1.03);}
@media(orientation:landscape){.farm-grid{left:18%!important;right:18%!important;top:5%!important;bottom:3%!important;}}
.tray-head-actions{display:flex;gap:6px}.build-tray.collapsed{width:min(340px,calc(100% - 20px));padding:10px 12px}.build-tray.collapsed #build-tray-items,.build-tray.collapsed .tray-help{display:none}.build-tray.collapsed .build-tray-head{margin:0}.tray-item,.building-mode .farm-object{user-select:none;-webkit-user-select:none}.build-tray-items{touch-action:pan-x;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.build-tray-items .tray-item{touch-action:pan-x}
.farm-object .flower-art{transform:scale(var(--flower-scale,.25));transform-origin:50% 82%;transition:transform 2s cubic-bezier(.2,.7,.25,1);}
.farm-object .flower-art img{filter:drop-shadow(0 2px 2px #24422240)}
.barn-level{position:absolute;inset:0;display:block}.barn-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 2px #26392055)}.barn-fence,.barn-silo,.barn-star{position:absolute;z-index:2;color:#fff5c8;text-shadow:0 1px 3px #233b2c;font-weight:900}.barn-fence{left:8%;bottom:15%;font-size:clamp(12px,2.5vw,23px)}.barn-silo{right:8%;top:8%;font-size:clamp(15px,3vw,27px);color:#e9ead5}.barn-star{left:50%;top:10%;font-size:clamp(12px,2vw,22px);transform:translateX(-50%);color:#ffe07e}.barn-capacity{position:absolute;z-index:3;left:50%;bottom:2%;transform:translateX(-50%);white-space:nowrap;background:#fffdf0e8;color:#52694b;border-radius:9px;padding:3px 6px;font-size:clamp(6px,.8vw,9px);font-weight:900}.barn-modal-art{height:130px;position:relative;background:#edf2e5;border-radius:14px;margin:12px 0;display:grid;place-items:center}.barn-modal-art img{height:120px;max-width:80%;object-fit:contain}.barn-modal-art span{position:absolute;bottom:7px;right:9px;background:#fffdf0e8;border-radius:8px;padding:5px 8px;color:#52694b;font-size:9px;font-weight:800}

/* Interactive regions track the painted landmarks in the wide map artwork. */
.map-hotspots{z-index:6}
.map-hotspot{border:0!important;border-radius:0!important;background:transparent!important;clip-path:none;}
.homestead{left:3.5%;top:11%;width:18%;height:25%;clip-path:polygon(8% 24%,56% 0,100% 10%,95% 76%,63% 100%,13% 91%,0 53%)}
.barnyard{left:27%;top:2%;width:19%;height:25%;clip-path:polygon(4% 32%,51% 0,100% 10%,94% 76%,61% 100%,8% 84%,0 49%)}
.orchard-area{left:49%;top:0;width:28%;height:25%;clip-path:polygon(0 38%,23% 4%,67% 0,100% 33%,91% 79%,56% 100%,13% 82%)}
.bridge-area{left:78%;right:auto;top:27%;width:18%;height:32%;clip-path:polygon(72% 0,100% 10%,34% 100%,0 85%)}
@media(orientation:portrait){
  .homestead{left:3%;top:12%;width:22%;height:25%}
  .barnyard{left:27%;top:3%;width:23%;height:25%}
  .orchard-area{left:48%;top:0;width:33%;height:26%}
  .bridge-area{left:78%;top:25%;width:20%;height:34%}
}

/* Meadow grid: fixed tile spacing, fitted to the central clearing in the map art. */
.farm-grid{left:12%!important;right:8%!important;top:29.5%!important;bottom:5.5%!important;display:block!important;transform:none!important;perspective:none!important;overflow:visible!important;z-index:9!important;}
.map-hotspots{z-index:4!important;}
.farm-grid>.land-cell,.farm-grid>.farm-object{position:absolute!important;margin:0!important;min-width:0!important;min-height:0!important;}
.farm-grid>.land-cell{padding:0!important;border:0!important;border-radius:0!important;clip-path:none!important;background:transparent!important;box-shadow:none!important;transition:background .15s;}
.farm-grid>.land-cell:before,.farm-grid>.land-cell:after{content:"";display:block!important;position:absolute;inset:0;pointer-events:none;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);}
.farm-grid>.land-cell:before{background:#eee5b997;}
.farm-grid>.land-cell:after{inset:1.5px;background:#a9bf6d12;}
.farm-grid>.land-cell.alternate:after{background:#eaf0b81c;}
.farm-grid>.land-cell.locked:before{background:#465a3f92;}
.farm-grid>.land-cell.locked:after{background:#7b845f29;}
.building-mode .farm-grid>.land-cell.unlocked:before,.farm-grid>.land-cell.place-target:before{background:#fff7d9e8;}
.building-mode .farm-grid>.land-cell.unlocked:after,.farm-grid>.land-cell.place-target:after{background:#d9f29d40;}
.building-mode .farm-grid>.land-cell.unlocked:hover:after,.farm-grid>.land-cell.place-target:hover:after{background:#e6f6a477;}
.farm-grid>.farm-object{padding:0!important;}
.farm-grid>.farm-object.plot{z-index:10!important;overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.farm-grid>.farm-object.plot:before{display:none!important;}
.farm-object.plot .field-soil{position:absolute!important;inset:0!important;display:block!important;width:100%!important;height:100%!important;margin:0!important;overflow:hidden!important;transform:none!important;filter:none!important;transition:none!important;animation:none!important;z-index:1!important;}
.farm-object.plot .field-soil img{display:block!important;width:100%!important;height:100%!important;object-fit:fill!important;}
.farm-object.plot .crop-art{z-index:2!important;}
.farm-object.plot .soil-action{z-index:3!important;}
.farm-grid>.farm-object.barn,.farm-grid>.farm-object.building{z-index:11!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.barn-level{position:absolute!important;inset:0!important;display:block!important;}
.barn-art{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:fill!important;filter:drop-shadow(0 4px 3px #26392055)!important;}
.barn-capacity,.paddock-capacity{position:absolute;z-index:4;left:50%;bottom:1%;transform:translateX(-50%);white-space:nowrap;padding:3px 6px;border-radius:9px;background:#fffdf0e8;color:#52694b;font-size:clamp(6px,.8vw,9px);font-weight:900;}
.farm-object.paddock{z-index:10!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.paddock-level{position:absolute;inset:0;display:block;}
.paddock-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 3px 2px #26392048);}
.paddock-cow{position:absolute;z-index:2;width:15%;height:21%;object-fit:contain;filter:drop-shadow(0 2px 2px #26392070);}
.cow-slot-0{left:31%;top:20%}.cow-slot-1{left:47%;top:24%}.cow-slot-2{left:63%;top:33%}.cow-slot-3{left:26%;top:40%}.cow-slot-4{left:43%;top:45%}.cow-slot-5{left:60%;top:51%}.cow-slot-6{left:34%;top:63%}.cow-slot-7{left:52%;top:69%}
.paddock-capacity{bottom:4%;color:#405d37;}
.paddock-preview{height:150px;margin:12px 0;position:relative;display:grid;place-items:center;background:#e8f0dc;border-radius:14px;overflow:hidden;}
.paddock-preview>img:first-child{width:100%;height:100%;object-fit:contain;}
.paddock-preview>img:not(:first-child){position:absolute;width:15%;height:34%;object-fit:contain;filter:drop-shadow(0 2px 2px #26392055);}
.paddock-preview>img:nth-child(2){left:34%;top:33%}.paddock-preview>img:nth-child(3){left:50%;top:42%}.paddock-preview>img:nth-child(4){left:40%;top:52%}.paddock-preview>img:nth-child(5){left:57%;top:58%}
@media(orientation:landscape){.farm-grid{left:12%!important;right:8%!important;top:29.5%!important;bottom:5.5%!important;}}

/* Keep the isometric plot grid on the usable clearing; map-painted coop and orchard yards stay scenery. */
.farm-grid>.land-cell:before,.farm-grid>.land-cell:after{display:block!important;}
.farm-object.orchard{z-index:12!important;filter:drop-shadow(0 5px 4px #234a2c66)!important;}
.orchard-level{position:absolute;inset:0;display:block;overflow:visible;}
.orchard-canopy{position:absolute;inset:-26% -20% -4%;width:140%;height:130%;object-fit:contain;opacity:.25;filter:blur(2px) saturate(.8);pointer-events:none;}
.orchard-tree{position:absolute;z-index:2;width:39%;height:62%;object-fit:contain;filter:drop-shadow(0 4px 3px #183b2866);}
.orchard-tree.tree-slot-0{left:5%;top:5%}.orchard-tree.tree-slot-1{right:5%;top:3%}.orchard-tree.tree-slot-2{left:31%;top:0}.orchard-tree.tree-slot-3{left:1%;bottom:0}.orchard-tree.tree-slot-4{right:1%;bottom:0}.orchard-tree.tree-slot-5{left:21%;bottom:-7%}.orchard-tree.tree-slot-6{right:21%;bottom:-7%}
.orchard-count{position:absolute;z-index:4;left:50%;bottom:-4%;transform:translateX(-50%);white-space:nowrap;border:1px solid #fff9d5;background:#fff8e7ee;color:#4b6439;border-radius:9px;padding:3px 7px;font-size:clamp(6px,.8vw,9px);font-weight:900;box-shadow:0 2px 5px #26452650;}
.orchard-preview{height:150px;margin:12px 0;position:relative;display:grid;place-items:center;background:radial-gradient(ellipse,#d5e7b4,#edf2e0);border-radius:14px;overflow:hidden;}
.orchard-preview-tree{position:absolute;width:34%;height:72%;object-fit:contain;filter:drop-shadow(0 4px 4px #24452d60);}
.orchard-preview-tree.tree-slot-0{left:12%;top:8%}.orchard-preview-tree.tree-slot-1{right:12%;top:7%}.orchard-preview-tree.tree-slot-2{left:33%;top:0}.orchard-preview-tree.tree-slot-3{left:0;bottom:0}.orchard-preview-tree.tree-slot-4{right:0;bottom:0}.orchard-preview-tree.tree-slot-5{left:23%;bottom:-4%}.orchard-preview-tree.tree-slot-6{right:23%;bottom:-4%}
.orchard-preview>span{position:absolute;bottom:7px;z-index:4;border-radius:8px;padding:4px 8px;background:#fffdf0e8;color:#52694b;font-size:9px;font-weight:800;}

/* Farm identity shares the existing top HUD row; it does not add another row or height. */
.topbar{display:flex;align-items:center!important;gap:12px;min-height:76px;padding-bottom:8px;}
.top-hud-farm{position:static!important;inset:auto!important;z-index:auto!important;display:flex;align-items:center;justify-content:center;gap:9px;flex:1 1 auto;min-width:0;max-width:400px;margin:0 auto;padding:0 8px;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;}
.top-hud-farm>div{min-width:0;}
.top-hud-farm .eyebrow{color:#d6dfc5!important;font-size:clamp(6px,.62vw,8px)!important;line-height:1.2;}
.top-hud-farm h1{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff9e9!important;font-size:clamp(12px,1.25vw,17px)!important;line-height:1.2;letter-spacing:-.2px!important;margin:2px 0 0!important;}
.top-hud-farm .map-switch{position:static!important;left:auto!important;top:auto!important;flex:none;padding:6px 8px;border-radius:10px;font-size:10px;white-space:nowrap;}
.topbar>.resource-bar{flex:none;margin-left:auto;}
@media(max-width:700px){.topbar{gap:5px;min-height:76px;padding-right:max(8px,env(safe-area-inset-right));padding-left:max(8px,env(safe-area-inset-left));}.topbar .brand{gap:6px;flex:none}.topbar .brand-mark{width:32px;height:32px}.topbar .brand small{font-size:7px;letter-spacing:.03em;text-transform:none}.topbar .brand strong{display:none}.top-hud-farm{flex:1 1 auto;max-width:none;gap:3px;padding:0 2px}.top-hud-farm .eyebrow{display:none}.top-hud-farm h1{max-width:clamp(50px,17vw,100px);font-size:clamp(9px,2.4vw,12px)!important}.top-hud-farm .map-switch{width:27px;height:27px;padding:0;display:grid;place-items:center;font-size:12px}.top-hud-farm .map-switch span{display:none}.topbar>.resource-bar{gap:3px}.topbar .resource{min-height:30px;padding:4px 5px;gap:3px;font-size:10px}.topbar .resource b{font-size:10px}.topbar .icon-button{width:29px;height:29px}.topbar .orientation{display:none}}




/* One ground tile per occupied farm square: prevent a second cell outline showing around placed soil and buildings. */
.farm-grid>.farm-object.plot .field-soil{width:100%!important;height:100%!important;align-self:stretch!important;transform:none!important;filter:none!important}
.farm-grid>.farm-object.plot .field-soil img{width:100%!important;height:100%!important;object-fit:fill!important}
.share-qr-wrap{display:grid;place-items:center;margin:8px auto 10px;padding:10px;width:max-content;max-width:100%;border:1px solid #e5e1d1;border-radius:16px;background:#fffdf6}
.share-qr{display:block;width:min(196px,52vw);height:auto;aspect-ratio:1;image-rendering:pixelated}
.share-game-card{padding:8px 10px!important;margin:5px 0!important}
.share-game-card .task-row{gap:8px}
.share-game-card .task-icon{width:32px;height:32px;font-size:17px}
.share-qr-wrap{margin:5px auto 7px;padding:5px;border-radius:12px}
.share-qr{width:min(126px,34vw)}
.sheet:has(.share-game-card){max-height:94dvh;overflow-y:auto;overscroll-behavior:contain}
/* The tray is anchored to the left inset; the former centering transform clipped it offscreen. */
.build-tray{transform:none}
/* The old high-specificity build-mode border drew a square lattice behind the diamond tiles. */
.building-mode .farm-grid>.land-cell{border:0!important;background:transparent!important}
.share-game-card #share-game-url{min-width:0;font-size:11px;letter-spacing:0;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.share-game-card #share-game-url{font-size:10px}
@media(orientation:landscape){.build-tray.collapsed{width:min(300px,32vw);max-width:300px;padding:7px 9px}.build-tray.collapsed .build-tray-head{gap:8px}}

/* Keep the plotted cells, map landmarks, and their tap areas registered to the same full map canvas. */
.farm-grid{left:7%!important;right:6%!important;top:26.5%!important;bottom:3.5%!important;z-index:9!important}
.farm-grid>.land-cell{z-index:1!important;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)!important}
.farm-grid>.farm-object{z-index:20!important;pointer-events:auto!important}
.map-hotspots{z-index:8!important;pointer-events:none!important}
.map-hotspot{pointer-events:auto!important;clip-path:none!important}
.homestead{left:0.5%!important;top:3%!important;width:20%!important;height:31%!important;clip-path:polygon(10% 22%,52% 0,100% 12%,96% 75%,60% 100%,13% 94%,0 56%)!important}
.barnyard{left:22%!important;top:2%!important;width:30%!important;height:28%!important;clip-path:polygon(7% 23%,42% 0,78% 3%,100% 45%,91% 85%,58% 100%,15% 88%,0 53%)!important}
.orchard-area{left:49%!important;top:0!important;width:38%!important;height:31%!important;clip-path:polygon(9% 27%,32% 0,71% 3%,100% 26%,93% 74%,67% 100%,22% 87%,0 53%)!important}
.bridge-area{left:77%!important;right:auto!important;top:28%!important;width:23%!important;height:48%!important;clip-path:polygon(76% 0,100% 9%,40% 100%,0 84%,43% 42%)!important}
@media(orientation:landscape){.farm-grid{left:7%!important;right:6%!important;top:26.5%!important;bottom:3.5%!important}}
.farm-grid>.land-cell:before{background:#fff7!important}
.farm-grid>.land-cell:after{inset:1.25px!important;background:#7f9c5730!important}
.farm-grid>.land-cell.alternate:after{background:#e2edb948!important}
.farm-grid>.land-cell{border:1px solid #fff9!important;background:transparent!important}
.building-mode .farm-grid>.land-cell.unlocked{border:1.5px solid #fffdebdc!important}
.building-mode .farm-grid>.land-cell.unlocked:before,.building-mode .farm-grid>.land-cell.place-target:before{background:#fffdebf2!important}
.building-mode .farm-grid>.land-cell.unlocked:after,.building-mode .farm-grid>.land-cell.place-target:after{background:#b9d47c28!important}
.building-mode .farm-grid>.land-cell.locked:before{background:#f4e8c477!important}
.building-mode .farm-grid>.land-cell.locked:after{background:#80916a36!important}
/* Object ground contact is the tile centre; tall art rises above that anchor. */
.farm-grid>.farm-object{z-index:var(--object-depth,20)!important}
.object-footprint{position:absolute;inset:0;display:none;pointer-events:none;clip-path:var(--footprint-shape,polygon(50% 0,100% 50%,50% 100%,0 50%));background:#d4e6a84d}
.building-mode .object-footprint,.farm-object.selected .object-footprint{display:block}
.building-mode .object-footprint:after{content:"";position:absolute;left:calc(50% - 2px);top:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#fff3b8}
.farm-grid>.farm-object.tree,.farm-grid>.farm-object.flowers{overflow:visible!important;transform:none!important}
.farm-grid>.farm-object.tree .art.generated{position:absolute!important;left:4%!important;bottom:44%!important;top:auto!important;width:92%!important;height:184%!important;max-width:none!important;max-height:none!important;display:block!important;transform:none!important;margin:0!important}
.farm-grid>.farm-object.flowers .art.generated.flower-art{position:absolute!important;left:9%!important;bottom:30%!important;top:auto!important;width:82%!important;height:164%!important;max-width:none!important;max-height:none!important;display:block!important;margin:0!important;transform:scale(var(--flower-scale,1))!important;transform-origin:50% 100%!important}
.farm-grid>.farm-object.tree .art.generated img,.farm-grid>.farm-object.flowers .art.generated img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center bottom!important;pointer-events:none}
.farm-grid>.farm-object.tree .nameplate,.farm-grid>.farm-object.flowers .nameplate{bottom:-12px}
.update-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.update-actions button{min-height:42px;padding-inline:18px}

/* Let the farm remain visible around the floating controls. */
.topbar,.farm-hud{background:transparent;box-shadow:none;backdrop-filter:none}
.topbar .brand,.top-hud-farm{text-shadow:0 1px 4px #173f31,0 1px 8px #173f3199}
/* Connected land shares the same tile angle, with grass masks per illustration. */
#world-links{position:absolute;inset:0;pointer-events:none;z-index:12}
.area-path{position:absolute;pointer-events:auto;background:#fff8e5ed;border:1px solid #e4d6ab;border-radius:12px;padding:7px 10px;font-size:11px;font-weight:700;box-shadow:0 3px 10px #183f3140}
.back-path{left:30%;top:2%}.return-path{left:14%;top:26%}
.map-hotspot[hidden]{display:none!important}
.farm-land[data-map="east"] .farm-grid,.farm-land[data-map="back"] .farm-grid{left:7%!important;right:6%!important;top:15%!important;bottom:9%!important}
.crossing-farmer{position:absolute;z-index:50;width:5%;height:10%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 2px #183f3170)}
.travelling .farm-grid,.travelling .map-hotspots,.travelling #world-links{pointer-events:none!important}
.travelling .camera-map{animation:crossing-light 1.4s ease-in-out}
@keyframes crossing-light{0%,100%{filter:brightness(1)}60%{filter:brightness(1.12)}}
.animal-face img{width:48px;height:48px;object-fit:contain}
.farm-object.sheep .art.generated,.farm-object.goat .art.generated{width:85%;height:160%;position:absolute;bottom:35%;left:7.5%;transform:none!important}
.farm-object.sheep .art.generated img,.farm-object.goat .art.generated img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
@media(prefers-reduced-motion:reduce){.travelling .camera-map{animation:none}}
.bridge-area{left:76%!important;right:auto!important;top:26%!important;width:22%!important;height:15%!important;clip-path:polygon(10% 0,100% 62%,91% 93%,0 31%)!important}

.farm-grid{pointer-events:none!important}.farm-grid>.farm-object,.farm-grid>.land-cell{pointer-events:auto}


.tray-animal{width:40px;height:40px;object-fit:contain;vertical-align:middle}

.back-path{left:37%;top:15%}


.farm-scene:not(.building-mode) .land-cell{opacity:0;pointer-events:none!important}


.paddock-preview>img:first-child{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:contain}
body:has(.build-tray:not([hidden]):not(.collapsed)) #guide-launcher{display:none}
/* Combined crop fields occupy exact square sets of isometric cells. */
.farm-grid>.farm-object.plot{transform:none!important;filter:none!important;overflow:visible!important}
.plot-plants{position:absolute;inset:0;display:block;pointer-events:none;z-index:2}
.farm-grid>.farm-object.plot .plot-plants>.crop-art{left:var(--plant-left)!important;top:var(--plant-top)!important;right:auto!important;bottom:auto!important;width:var(--plant-width)!important;height:var(--plant-height)!important;margin:0!important;pointer-events:none;transform:scale(calc(.12 + var(--scale-growth,0)*.88))!important;transform-origin:50% 100%!important;transition:transform .9s linear!important}
.farm-grid>.farm-object.plot .plot-plants>.crop-art img{object-fit:contain!important;object-position:center bottom!important;filter:drop-shadow(0 1px 1px #3f452d35)!important}
.plot-upgrade-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0}
.plot-upgrade-stages>div{padding:12px 4px;border:1px solid #e5dcc7;border-radius:12px;background:#f6f1e3;display:grid;gap:5px;text-align:center}
.plot-upgrade-stages>div.active{background:#e5edcf;border-color:#a4b48b}
.plot-upgrade-stages strong{font-size:20px}.plot-upgrade-stages span{font-size:11px}.plot-upgrade-stages small{font-size:10px;color:#7b795f}
#manage-plot,#move-plot{margin-top:12px;min-height:40px}

.audio-settings h3{margin-top:0}.audio-mute{display:flex;align-items:center;gap:10px;margin:12px 0}.audio-slider{display:grid;grid-template-columns:120px minmax(70px,1fr) 42px;align-items:center;gap:10px;margin:16px 0}.audio-slider input{width:100%;accent-color:#426e51;min-height:32px;touch-action:pan-x}.audio-slider output{text-align:right;font-size:12px}@media(max-width:450px){.audio-slider{grid-template-columns:92px minmax(65px,1fr) 36px;gap:6px}}

.well-art{position:absolute;left:-5%;bottom:29%;width:110%;height:230%;pointer-events:none}.well-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.well-preview{display:block;width:180px;height:200px;object-fit:contain;margin:0 auto}.well-helper-face{width:48px;height:48px;object-fit:contain}.farm-worker{position:absolute;width:7%;aspect-ratio:1;transform:translate(-50%,-88%);pointer-events:none;contain:layout style;filter:drop-shadow(0 2px 1px #30492a30)}.worker-sprite{position:absolute;inset:0;background-size:800% 800%;background-repeat:no-repeat}.worker-shadow{position:absolute;left:34%;bottom:6%;width:32%;height:9%;border-radius:50%;background:#26402735}.worker-name{position:absolute;bottom:0;left:50%;transform:translate(-50%,100%);font-size:7px;background:#fff8e5d9;color:#45623b;border-radius:5px;padding:1px 4px;white-space:nowrap}.farm-worker[hidden]{display:none}

/* Keep currency, journal and settings reachable while a panel is open. */
.side-panel{top:calc(env(safe-area-inset-top,0px) + 78px)!important}


.farm-object.hold-pending::after{content:"";position:absolute;inset:-5px;border:3px solid #f7d26c;border-radius:50%;pointer-events:none;opacity:0;animation:object-hold-feedback 1.2s linear forwards}@keyframes object-hold-feedback{0%,25%{opacity:0;transform:scale(.75)}100%{opacity:1;transform:scale(1)}}

#friend-visit-overlay{position:fixed;inset:0;z-index:800;background:#20442f;overflow:hidden}#visit-viewport{position:absolute;inset:0;touch-action:none;overflow:hidden}.friend-visit-map{position:absolute;left:50%;top:0;width:max(100vw,150dvh);height:auto;aspect-ratio:3/2;border-radius:0;overflow:visible;transform:translateX(-50%);transform-origin:50% 50%;pointer-events:none}.friend-visit-map>.map-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.friend-visit-map .farm-object{pointer-events:none!important}.friend-visit-toolbar{position:absolute;top:calc(env(safe-area-inset-top,0px) + 10px);left:10px;right:10px;z-index:10;display:flex;align-items:center;gap:12px;justify-content:space-between;background:#fff8e9f5;padding:12px 16px;border-radius:18px;box-shadow:0 4px 20px #183f3130}.friend-visit-toolbar strong,.friend-visit-toolbar small,.friend-visit-toolbar span{display:block}.friend-visit-toolbar small,.friend-visit-toolbar span{font-size:10px}.friend-visit-toolbar select{max-width:30%;padding:10px;border:1px solid #d9dfce;border-radius:10px;background:#fffdf1}.visit-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);z-index:10;background:#fff8e9ed;padding:8px 12px;border-radius:12px;font-size:11px;white-space:nowrap;pointer-events:none}@media(max-width:600px){.friend-visit-toolbar{gap:6px;padding:9px}.friend-visit-toolbar strong{font-size:12px}.friend-visit-toolbar .primary-button{padding:10px;font-size:11px}.friend-visit-toolbar select{font-size:10px;padding:8px;max-width:26%}}
.farm-object,.farm-object *,.guide-panel,.guide-panel *{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}

#toast{pointer-events:none!important}

.crop-stats{display:none!important}.friend-card>strong,.friend-card>small{display:block;margin-bottom:6px}

.product-icon{width:46px;height:46px;object-fit:contain;vertical-align:middle}.kitchen-preview{display:block;width:190px;height:190px;object-fit:contain;margin:0 auto}.kitchen-art{position:absolute;left:0;bottom:28%;width:100%;height:190%;pointer-events:none}.kitchen-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.kitchen-queue{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kitchen-queue small{display:block;font-size:11px;margin-top:5px}.brand strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand{min-width:0}.brand strong{max-width:160px}

/* Plant-only growth strips share a fixed ground anchor; soil never scales. */
.farm-grid>.farm-object.plot .plot-plants>.crop-art.has-growth-strip{transform:none!important;animation:none!important;filter:none!important;overflow:visible!important}
.crop-growth-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;transition:opacity .9s linear}
.farm-grid>.farm-object.plot .plot-plants>.crop-art.has-growth-strip .crop-growth-layer img{position:absolute!important;top:0!important;width:400%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:fill!important;object-position:initial!important;filter:none!important}

.hive-art{position:absolute;left:1%;bottom:24%;width:98%;height:210%;pointer-events:none}.hive-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.hive-preview{display:block;width:200px;height:210px;object-fit:contain;margin:0 auto}.farm-grid>.farm-object.flowers .art.generated.flower-art.has-growth-strip{transform:none!important}.farm-grid>.farm-object.flowers .art.generated.flower-art.has-growth-strip .crop-growth-layer img{position:absolute!important;top:0!important;width:400%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:fill!important;object-position:initial!important}
@media(orientation:landscape) and (max-height:600px){.kitchen-preview,.hive-preview,.well-preview{width:130px;height:115px}}

.story-chapter{margin-top:22px}.story-heading{display:flex;align-items:center;gap:12px}.story-heading img{width:54px;height:68px;object-fit:contain}.story-heading h3{font-size:17px}.story-chapter .task-main small{line-height:1.5;margin-top:6px}.story-chapter .progress-track{margin-top:12px;height:5px}

.animal-preview{display:block;width:170px;height:150px;object-fit:contain;margin:0 auto}.animal-care-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.animal-care-actions button{min-height:44px}.animal-needs .stat-card b{font-size:20px}@media(orientation:landscape) and (max-height:600px){.animal-preview{height:100px;width:120px}}

.farm-land[data-map="coast"] .farm-grid,.farm-land[data-map="pine"] .farm-grid,.farm-land[data-map="orchard"] .farm-grid{left:7%!important;right:6%!important;top:15%!important;bottom:9%!important}.map-option-preview{width:90px;height:64px;object-fit:cover;border-radius:9px;flex:none}.crossing-farmer{height:auto!important;aspect-ratio:1;background-image:url("assets/generated/workers/jade-walk.webp?v=70");background-size:800% 800%;background-repeat:no-repeat;transform:translate(-50%,-94%)}
.building-mode .farm-grid>.land-cell.locked:before{opacity:1!important;background:#d5b774cc!important}.building-mode .farm-grid>.land-cell.locked:after{opacity:1!important;background:#48684035!important}
/* Buildings and animals can be tapped on their visible artwork, above the ground footprint. */
.farm-grid>.farm-object:not(.plot) img{pointer-events:auto!important}

.travelling .farm-worker{opacity:0}.travelling .farm-grid *{pointer-events:none!important}

.home-adoption-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-adoption-actions button{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px}.home-adoption-actions img{width:48px;height:48px;object-fit:contain}.home-adoption-actions small{font-size:10px}#animal-home{margin:8px 0 14px;width:100%}
/* Only the real isometric footprint receives ground taps; overlapping rectangular boxes do not. */
.farm-grid>.farm-object{pointer-events:none!important}
.farm-grid>.farm-object>.object-footprint{display:block!important;pointer-events:auto!important;background:transparent}
.building-mode .farm-grid>.farm-object>.object-footprint,.farm-grid>.farm-object.selected>.object-footprint{background:#d4e6a84d}
#friend-visit-overlay .farm-object *,.travelling .farm-grid>.farm-object *{pointer-events:none!important}
/* Match the illustrated bridge deck instead of covering the river below it. */
.bridge-area{left:77%!important;top:28%!important;width:23%!important;height:16%!important;clip-path:polygon(9% 0,96% 57%,78% 100%,0 35%)!important}

.order-card+.order-card{margin-top:14px}.order-ready{background:#dcebd4;color:#244f32}.order-replace{margin:8px 0 0;min-height:40px}.order-replace:disabled{opacity:.65}.order-item .product-icon{width:30px;height:30px;object-fit:contain}

.landscape-loading .friend-visit-map .farm-grid{visibility:hidden}.landscape-loading #visit-viewport:after{content:"Loading farm landscape…";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:16px 24px;border-radius:16px;background:#fff8e9;color:#244f32;font-weight:700}

.farm-object.alpaca .art.generated{width:92%;height:185%;position:absolute;bottom:35%;left:4%;transform:none!important}.farm-object.alpaca .art.generated img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.home-adoption-actions{flex-wrap:wrap}.home-adoption-actions>button{min-width:100px;flex:1}

.resident-icon{width:34px;height:34px;object-fit:contain;vertical-align:middle;margin-right:5px}.tray-item>span>.tray-animal{width:55px;height:48px;object-fit:contain}

.paddock-cow.animal-alpaca{transform:scale(1.3);transform-origin:50% 100%}

.book-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.book-tab-active{background:#315c46!important;color:#fff!important}.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 20px}.book-entry{display:flex;flex-direction:column;align-items:center;gap:6px;background:#fffdf5;border:1px solid #e0ddcb;border-radius:15px;padding:12px;min-height:135px;text-align:center}.book-entry strong{font-size:13px}.book-entry small{font-size:10px;color:#6d7d65}.book-product,.book-plant{width:58px;height:58px;object-fit:contain;display:inline-block}.book-plant{overflow:hidden;position:relative}.book-plant img{position:absolute;left:-300%;top:0;width:400%;height:100%;max-width:none}.book-detail-art{text-align:center;margin:12px}.book-detail-art>.book-product,.book-detail-art>.book-plant{width:112px;height:112px}.book-farm{margin-bottom:7px}.order-good{font:inherit;cursor:pointer;min-height:36px}.order-good:after{content:' ?';font-weight:800;color:#527648}.sheet:has(.book-grid){max-height:90dvh;overflow-y:auto}.book-entry:hover,.book-entry:focus-visible{border-color:#68885d;outline:2px solid #a6bc80}

.crop-preview{position:relative;width:120px;height:120px;margin:0 auto 12px;overflow:hidden}.crop-preview .crop-growth-layer{position:absolute;inset:0;overflow:hidden}.crop-preview .crop-growth-layer img{position:absolute;top:0;width:400%;height:100%;max-width:none}

.crop-preview>img{width:100%;height:100%;object-fit:contain}

/* Flower atlas padding must never block neighbouring fields. */
.farm-grid>.farm-object.flowers img{pointer-events:none!important}

.farm-grid>.farm-object img{-webkit-user-drag:none;touch-action:none}

/* Barn art keeps its authored proportions; its feet meet the consumed footprint. */
.farm-object.barn .barn-level{inset:auto 0 0!important;width:100%!important;height:auto!important;aspect-ratio:1}
.farm-object.barn .barn-art{object-fit:contain!important;transform:translateY(var(--barn-pad-bottom,8.453%))}
.barn-stage-thumb{display:block;width:100%;height:58px;object-fit:contain;margin-bottom:5px}.barn-modal-art{height:180px}.barn-modal-art img{height:170px}
.farm-grid>.farm-object.barn,.farm-grid>.farm-object.building,.farm-grid>.farm-object.paddock{z-index:var(--object-depth,20)!important}

.home-residents{margin:14px 0}.home-resident .animal-info{min-width:0}.home-resident .animal-info small{line-height:1.5}.animal-bond-card h3{margin-bottom:6px}.animal-bond-card>p:not(.sheet-copy){color:#b66250;letter-spacing:3px}

/* A game-only account entrance that works in portrait and landscape. */
.account-screen{width:min(940px,96vw);max-width:940px;padding:0;border:0;border-radius:26px;background:#fff9e9;color:#284e3b;max-height:94dvh;overflow:auto;box-shadow:0 25px 90px #102b2799}.account-screen::backdrop{background:#153c32b8;backdrop-filter:blur(7px)}.account-layout{display:grid;grid-template-columns:44% 56%;min-height:480px}.account-art{position:relative;overflow:hidden;background:linear-gradient(180deg,#153f32aa,#1c4932cc),url('assets/generated/willowbrook-meadow-map.webp') center/cover;padding:40px 28px;color:#fff7dd;display:flex;flex-direction:column;justify-content:center}.account-art .eyebrow{color:#e8e6b5;font-size:10px}.account-art h1{font-family:Georgia,serif;font-size:54px;line-height:1.05;margin:20px 0 10px;letter-spacing:-2px}.account-art p{font-size:16px}.account-family{display:flex;justify-content:center;align-items:end;margin:30px -15px -35px}.account-family img{width:33%;height:125px;object-fit:contain;filter:drop-shadow(0 5px 7px #102b2766)}.account-form-panel{position:relative;align-self:center;padding:38px 34px}.account-form-panel h2{font-family:Georgia,serif;font-size:29px;line-height:1.15;margin:10px 0}.account-close{position:absolute;top:10px;right:10px}.account-form-panel .full-button{margin-top:10px;min-height:46px}.account-form-panel label{display:block;font-size:13px;font-weight:800;margin:14px 0 6px}.account-form-panel input{box-sizing:border-box;width:100%;min-width:0;height:48px;border:1px solid #cad2bd;border-radius:12px;background:#fffef7;padding:12px;color:#284e3b;font-size:16px}.account-password{display:flex;gap:7px}.account-password button{min-width:62px}.account-note{font-size:12px;line-height:1.6;color:#687961;margin:13px 0 0}.account-status{font-size:13px;color:#a04b36;line-height:1.5;min-height:20px;margin:12px 0}.account-scope{display:block;color:#748269;font-size:10px;line-height:1.5}.account-form-panel button:disabled{opacity:.55}.account-form-panel input:focus-visible{outline:3px solid #a5bc7c}.account-form-panel .sheet-copy{font-size:14px;line-height:1.6}
@media(max-width:620px){.account-screen{width:94vw;border-radius:20px}.account-layout{grid-template-columns:1fr;min-height:0}.account-art{padding:22px 25px;min-height:115px}.account-art h1{font-size:34px;margin:9px 0 4px}.account-art h1 br{display:none}.account-art p{margin:4px 0;font-size:13px}.account-family{position:absolute;right:15px;bottom:0;width:145px;margin:0}.account-family img{height:90px}.account-art .eyebrow{font-size:8px;max-width:180px}.account-form-panel{padding:24px}.account-form-panel h2{font-size:25px;max-width:90%}.account-form-panel .sheet-copy{font-size:13px}}
@media(max-height:500px) and (min-width:621px){.account-layout{min-height:0}.account-art{padding:20px}.account-art h1{font-size:40px}.account-family{margin:10px 0 -20px}.account-family img{height:90px}.account-form-panel{padding:24px 30px}.account-form-panel h2{font-size:24px}.account-form-panel .sheet-copy{font-size:12px;margin:7px 0}.account-form-panel .full-button{margin-top:7px;min-height:42px}.account-note{font-size:11px;margin-top:8px}}

@media(max-width:620px){.account-art{min-height:140px}.account-art h1{font-size:32px;max-width:calc(100% - 115px);letter-spacing:-1px}.account-art h1 br{display:block}.account-art p{max-width:155px;font-size:12px;line-height:1.45}.account-family{width:130px;right:12px;bottom:12px}.account-family img{height:86px}}

.cloud-save-review{position:fixed;right:85px;top:calc(env(safe-area-inset-top,0px) + 90px);z-index:49;max-width:240px;min-height:44px;padding:10px 14px;border-radius:14px;border:1px solid #d6c898;background:#fff2c7;color:#315c46;box-shadow:0 4px 12px #193e3333;font-size:12px;font-weight:800}.cloud-save-review[hidden]{display:none!important}@media(max-width:620px){.cloud-save-review{top:calc(env(safe-area-inset-top,0px) + 118px);right:70px;max-width:210px;font-size:11px}}

.upgrade-explainer{margin:8px 0;padding:8px 10px;background:#eef0dc;border-radius:10px}.upgrade-explainer p{font-size:12px;line-height:1.5;margin:7px 0 0}.upgrade-explainer p[hidden]{display:none}

/* Crop needs occupy the original borderless watered-icon anchor inside each plant. */
.farm-object.plot .crop-need{position:absolute;right:4%;top:0;font:18px system-ui;filter:drop-shadow(0 1px 2px #fff);z-index:3;pointer-events:none;background:none;border:0;box-shadow:none;padding:0;width:auto;height:auto;border-radius:0;animation:none}

/* Separate map-space overlay escapes each object's depth/transform stacking context. */
.crop-need-layer{position:absolute;inset:0;z-index:100000;pointer-events:none!important;overflow:visible}
.farm-object.plot .crop-need{visibility:hidden}
.crop-need-floating{position:absolute;display:block;pointer-events:none!important;background:none;border:0;box-shadow:none;padding:0;filter:drop-shadow(0 1px 2px #fff);animation:crop-need-bob 2.4s ease-in-out infinite}
@keyframes crop-need-bob{0%,100%{translate:0 0}50%{translate:0 -4px}}
@media(prefers-reduced-motion:reduce){.crop-need-floating{animation:none}}
