/* FarmDew Immersive Game Shell — Phase 4A mobile composition */
:root{--farm-ink:#1a2e1f;--farm-muted:#4a6a4a;--farm-cream:#fff9e9;--farm-paper:#fffdf5;--farm-green:#2a5535;--farm-green-dark:#14301c;--farm-leaf:#5f8e48;--farm-gold:#efbd55;--farm-soil:#6c4229;--farm-line:rgba(34,75,44,.16);--farm-danger:#9f2f2f;--farm-hud-bg:rgba(18,42,24,.82);--farm-toolbelt-bg:linear-gradient(180deg,rgba(42,28,16,.94),rgba(28,18,10,.97));--farm-wood:#8b6843;--farm-wood-dark:#5c3d24;--farm-wood-light:#c9a870;--farmdew-visual-height:100dvh}
*{box-sizing:border-box}
html.farmdew-root,html.farmdew-root body.farmdew-page{margin:0;width:100%;overflow:hidden;overscroll-behavior:none;background:#1a3d24}
html.farmdew-root{height:100%}
html.farmdew-root body.farmdew-page{position:fixed;inset:0;height:var(--farmdew-visual-height,100dvh);min-height:0;color:var(--farm-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}
/* Fallback for pages without .farmdew-root on html */
html:not(.farmdew-root){overflow-x:hidden;background:#1a3d24}
body.farmdew-page{min-height:100dvh;margin:0;overflow:hidden;background:#1a3d24;color:var(--farm-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}

/* Game shell: fit the FarmDew-owned visual viewport, never the document scrollport. */
.farmdew-game{position:absolute;inset:0;width:100%;height:100%;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;overscroll-behavior:none}

/* === HUD === */
.farmdew-hud{position:relative;z-index:20;display:flex;align-items:center;gap:8px;padding:max(4px,env(safe-area-inset-top)) 10px 4px;background:var(--farm-hud-bg);backdrop-filter:blur(6px);color:#e8f4dc}
.farmdew-hud-energy{display:flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;background:rgba(255,232,90,.12);font-size:.82rem;font-weight:900}
.farmdew-hud-icon{font-size:1rem}
.farmdew-hud-level{display:flex;flex:1;align-items:center;gap:6px;min-width:0}
.farmdew-hud-lv{font-size:.74rem;font-weight:900;white-space:nowrap}
.farmdew-hud-lv b{font-size:.95rem}
.farmdew-hud-xp-bar{flex:1;height:5px;min-width:40px;max-width:120px;border-radius:99px;background:rgba(255,255,255,.15);overflow:hidden}
.farmdew-hud-xp-bar i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#74a84d,#e7b84c);transition:width .4s ease}
.farmdew-hud-lv-name,.farmdew-hud-xp-text,.farmdew-hud-xp-next{display:none}
.farmdew-hud-menu{display:grid;min-width:44px;min-height:44px;place-items:center;border:none;border-radius:50%;background:rgba(255,255,255,.1);color:#e8f4dc;font-size:1.3rem;cursor:pointer;-webkit-tap-highlight-color:transparent}
.farmdew-hud-menu:active{background:rgba(255,255,255,.2)}
.farmdew-hud-menu:focus-visible{outline:3px solid rgba(239,189,85,.5);outline-offset:2px}

/* === Farm Scene === */
.farmdew-scene{position:relative;flex:1;width:100%;border:none;border-radius:0;background:#6fa84c;overflow:hidden;touch-action:pan-y;isolation:isolate}
/* Stage: single coordinate system for SVG + world-space overlays */
.farmdew-stage{position:absolute;left:50%;bottom:0;width:100%;aspect-ratio:5/8;transform:translateX(-50%)}
.farmdew-stage>.farmdew-landscape{position:absolute;inset:0;width:100%;height:100%;display:block}
.farm-unlock{opacity:0;transform:translateY(6px) scale(.97);transform-box:fill-box;transform-origin:center;transition:opacity .4s ease,transform .4s ease}.farm-unlock.is-unlocked{opacity:1;transform:none}
.farm-path-mud{transition:opacity .4s ease}.farm-path.is-unlocked~.farm-path-mud{opacity:.08}
.farm-fence{opacity:.65;transition:stroke .4s ease,opacity .4s ease}.farm-fence.is-repaired{stroke:#d7b078;opacity:1}
.farm-house.is-repaired>rect:first-of-type{fill:#f5dca8}.farm-house.is-repaired .farm-house-crack{opacity:0}.farm-house>rect:first-of-type,.farm-house-crack{transition:fill .5s ease,opacity .35s ease}

/* Ambient animations */
.farmdew-clouds{animation:farm-cloud-drift 28s ease-in-out infinite alternate}
.farm-windmill-blades{transform-box:fill-box;transform-origin:center;animation:farm-windmill 14s linear infinite}
.farmdew-sun{animation:farm-sun-glow 6s ease-in-out infinite alternate}
.farmdew-pond-ripple{animation:farm-pond-ripple 4s ease-in-out infinite}
.farmdew-firefly{animation:farm-firefly 5s ease-in-out infinite}
.farmdew-firefly:nth-child(2){animation-delay:-1.8s}
.farmdew-firefly:nth-child(3){animation-delay:-3.2s}
.farmdew-lights circle{animation:farm-light-twinkle 3s ease-in-out infinite alternate}
.farmdew-lights circle:nth-child(2){animation-delay:-.5s}
.farmdew-lights circle:nth-child(3){animation-delay:-1s}
.farmdew-lights circle:nth-child(4){animation-delay:-1.5s}
.farmdew-lights circle:nth-child(5){animation-delay:-2s}
.farmdew-grass{animation:farm-grass-sway 4s ease-in-out infinite alternate}

/* === Crop Plots — Soil Beds === */
.farmdew-plots{position:absolute;z-index:4;left:40%;top:59%;display:grid;width:44%;height:35%;grid-template-columns:repeat(2,minmax(52px,1fr));grid-template-rows:repeat(4,minmax(40px,1fr));gap:3px 5px;pointer-events:none}
.farm-plot{position:relative;display:grid;min-width:0;min-height:44px;padding:2px;place-items:center;border:none;border-radius:5px;background:linear-gradient(180deg,#6b4024 0%,#4e2c18 60%,#3d2212 100%);box-shadow:inset 0 1px 0 rgba(180,120,60,.22),inset 0 -2px 4px rgba(20,10,4,.35),0 1px 2px rgba(0,0,0,.16);color:#fff8dd;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent;overflow:hidden}
/* Soil furrows */
.farm-plot::before{position:absolute;inset:3px 2px;background:repeating-linear-gradient(90deg,transparent 0,transparent 42%,rgba(90,55,30,.4) 43%,rgba(90,55,30,.4) 44%,transparent 45%,transparent 100%),repeating-linear-gradient(0deg,transparent 0,transparent 30%,rgba(200,150,90,.08) 32%,transparent 34%,transparent 100%);border-radius:4px;content:""}.farm-plot>span,.farm-plot>small,.farm-plot>i{position:relative;z-index:1}.farm-plot small{display:block;max-width:100%;font-size:.5rem;font-weight:800;line-height:1;text-align:center;text-shadow:0 1px 2px rgba(20,10,4,.6);opacity:.85}.farm-plot:focus-visible{outline:3px solid #fff0a8;outline-offset:2px}.farm-plot:active{transform:scale(.96);box-shadow:inset 0 2px 6px rgba(20,10,4,.5)}
/* Empty plot: subtle seed marker */
.farm-plot.empty{background:linear-gradient(180deg,#5e3820,#442818,#362014)}.farm-plot-empty{display:grid;width:18px;height:18px;place-items:center;border:1.5px dashed rgba(200,160,100,.4);border-radius:50%;font-size:.85rem;opacity:.7;color:#d4b080}.farm-plot-lock{font-size:.7rem;opacity:.6;filter:grayscale(.4)}
/* Locked plots: overgrown land */
.farm-plot.locked{background:linear-gradient(180deg,#3a5c2e,#2d4a24,#1f3818);border:none;box-shadow:inset 0 0 8px rgba(20,50,15,.5)}.farm-plot.locked::before{background:repeating-linear-gradient(55deg,transparent 0,transparent 6px,rgba(60,100,40,.2) 7px,transparent 8px),repeating-linear-gradient(-35deg,transparent 0,transparent 8px,rgba(40,80,30,.15) 9px,transparent 10px);border-radius:4px}.farm-plot.locked::after{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 70%,rgba(80,120,50,.3),transparent 50%),radial-gradient(ellipse at 70% 30%,rgba(60,100,40,.2),transparent 50%);content:"";border-radius:6px}
/* Growing/ready crops */
.farm-crop-stage{display:block;font-size:clamp(1rem,4.5vw,1.6rem);line-height:1;filter:drop-shadow(0 2px 2px rgba(38,22,15,.3));transform-origin:50% 100%}.farm-crop-stage.stage-0{opacity:.7;font-size:.9rem}.farm-crop-stage.stage-1{font-size:1rem}.farm-crop-stage.stage-2{font-size:1.2rem}.farm-crop-stage.stage-3{font-size:1.35rem}
.farm-plot>i{position:absolute;right:3px;bottom:2px;left:3px;height:2px;border-radius:999px;background:linear-gradient(90deg,#c8e574 calc(var(--crop-progress,0)*100%),rgba(255,255,255,.15) 0)}
.farm-plot.ready{box-shadow:inset 0 0 0 1px rgba(255,232,123,.3),0 0 12px rgba(255,224,91,.4),0 0 4px rgba(255,224,91,.6)}.farm-plot.ready .farm-crop-stage{animation:farm-ready-bounce 1.3s ease-in-out infinite}.farm-plot.ready::after{position:absolute;top:2px;right:3px;color:#fff3a4;font-size:.5rem;content:"✦";animation:farm-sparkle 1.1s ease-in-out infinite alternate}

/* Farmer starts in the walkable clearing instead of overlapping the farmhouse door. */
.farmdew-farmer{position:absolute;z-index:6;left:var(--farmer-x,30%);top:var(--farmer-y,64%);width:42px;height:60px;transform:translate(-50%,-100%);transition:left .7s cubic-bezier(.2,.72,.25,1),top .7s cubic-bezier(.2,.72,.25,1);filter:drop-shadow(0 3px 3px rgba(20,44,24,.26));pointer-events:none}.farmdew-farmer svg{display:block;width:100%;height:100%}.farmdew-farmer.is-walking svg{animation:farm-farmer-bob .22s ease-in-out 3 alternate}

/* Scene message sits below the floating area control. */
.farmdew-scene-message{position:absolute;z-index:8;top:56px;left:50%;width:auto;max-width:min(calc(100% - 24px),320px);min-height:0;padding:4px 10px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(18,42,24,.78);backdrop-filter:blur(6px);color:#fffbe7;font-size:.6rem;font-weight:760;line-height:1.2;text-align:center;box-shadow:0 4px 12px rgba(15,43,24,.18);pointer-events:none;transform:translateX(-50%);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.farmdew-scene-message.error{background:rgba(111,36,36,.92);display:block;-webkit-line-clamp:unset;overflow:visible}
.farmdew-scene.is-loading::after{position:absolute;inset:0;z-index:7;display:grid;place-items:center;background:rgba(26,61,36,.7);color:#e8f4dc;font-weight:900;content:"Opening the farm gate…";backdrop-filter:blur(3px)}
.farmdew-harvest-burst{position:absolute;z-index:10;width:1px;height:1px;pointer-events:none}.farmdew-harvest-burst span{position:absolute;opacity:0;font-size:.75rem;font-weight:950;white-space:nowrap}.farmdew-harvest-burst.is-active span{animation:farm-burst .8s cubic-bezier(.17,.7,.24,1) forwards;animation-delay:calc(var(--burst-index)*35ms)}.farmdew-harvest-burst span:nth-child(1){--burst-x:-42px;--burst-y:-40px}.farmdew-harvest-burst span:nth-child(2){--burst-x:-20px;--burst-y:-60px}.farmdew-harvest-burst span:nth-child(3){--burst-x:8px;--burst-y:-55px}.farmdew-harvest-burst span:nth-child(4){--burst-x:36px;--burst-y:-36px}.farmdew-harvest-burst span:nth-child(5){--burst-x:22px;--burst-y:-68px}

/* Auth gate */
.farmdew-auth-gate{position:absolute;z-index:12;inset:50% 12px auto;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:14px;border:1px solid var(--farm-line);border-radius:20px;background:rgba(255,253,245,.95);box-shadow:0 12px 32px rgba(31,66,37,.15);transform:translateY(-50%);color:var(--farm-ink)}.farmdew-auth-gate[hidden]{display:none}.farmdew-auth-gate>span{font-size:1.8rem}.farmdew-auth-gate h2{margin:0 0 4px;font-size:1rem;font-weight:800}.farmdew-auth-gate p{margin:0;color:var(--farm-muted);font-size:.78rem;line-height:1.4}
.farmdew-button{display:inline-flex;min-height:44px;padding:9px 14px;align-items:center;justify-content:center;border:1px solid #285134;border-radius:12px;background:linear-gradient(135deg,#477a4e,#285134);box-shadow:0 6px 14px rgba(34,75,44,.14);color:#fff;font:850 .8rem/1 inherit;text-decoration:none;cursor:pointer}.farmdew-button.secondary{width:100%;margin-top:10px;border-color:var(--farm-line);background:#eef4df;box-shadow:none;color:var(--farm-green-dark)}

/* === Toolbelt — Game Dock === */
.farmdew-toolbelt{position:relative;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:5px 6px calc(5px + env(safe-area-inset-bottom));background:var(--farm-toolbelt-bg);border-top:2px solid rgba(160,110,60,.4);box-shadow:0 -4px 16px rgba(10,6,2,.3)}
.farmdew-tool{position:relative;display:grid;min-height:50px;padding:5px 2px 3px;place-items:center;border:none;border-radius:8px;background:linear-gradient(180deg,rgba(100,70,40,.3),rgba(60,40,20,.15));color:#e8d8b8;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .1s ease,background .15s ease}
.farmdew-tool>span{font-size:1.4rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}
.farmdew-tool>small{font-size:.5rem;font-weight:900;margin-top:1px;opacity:.7;text-transform:uppercase;letter-spacing:.04em}
.farmdew-tool:active{transform:scale(.93);background:rgba(255,200,100,.12)}
.farmdew-tool.is-active{background:linear-gradient(180deg,rgba(180,140,60,.25),rgba(120,80,30,.2));box-shadow:inset 0 -2px 0 rgba(239,189,85,.5);color:#ffe8a8}
.farmdew-tool:disabled{opacity:.35;cursor:default}
.farmdew-tool:focus-visible{outline:3px solid rgba(239,189,85,.5);outline-offset:-2px}

/* === Menu dialog === */
.farmdew-menu-dialog{position:fixed;inset:auto 0 0 0;width:min(100%,480px);max-width:none;max-height:min(80dvh,660px);margin:auto;padding:12px 16px calc(16px + env(safe-area-inset-bottom));overflow:auto;border:1px solid rgba(49,95,60,.18);border-radius:22px 22px 0 0;background:var(--farm-paper);box-shadow:0 -20px 50px rgba(18,48,27,.26);color:var(--farm-ink);overscroll-behavior:contain}
.farmdew-menu-dialog::backdrop{background:rgba(14,34,20,.5);backdrop-filter:blur(2px)}
.farmdew-menu-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.farmdew-menu-dialog h2{margin:0;font-family:Georgia,serif;font-size:1.4rem}
.farmdew-menu-dialog header button{display:grid;min-width:44px;min-height:44px;place-items:center;border:1px solid var(--farm-line);border-radius:50%;background:#edf2df;color:var(--farm-green-dark);font-size:1.4rem;cursor:pointer}
.farmdew-menu-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.farmdew-menu-stats>div{display:grid;place-items:center;padding:10px 6px;border:1px solid rgba(49,95,60,.12);border-radius:14px;background:#f5f9e8}
.farmdew-menu-stats b{font-size:1.2rem;line-height:1}
.farmdew-menu-stats small{font-size:.62rem;font-weight:800;color:var(--farm-muted);margin-top:3px}
.farmdew-menu-unlock{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--farm-line);border-radius:16px;background:#fffdf5;margin-bottom:12px}
.farmdew-menu-unlock>span{font-size:1.6rem}
.farmdew-menu-unlock strong{display:block;font-size:.88rem}
.farmdew-menu-unlock p{margin:3px 0 0;color:var(--farm-muted);font-size:.72rem;line-height:1.35}
.farmdew-menu-links{display:grid;gap:4px}
.farmdew-menu-link{display:flex;min-height:44px;padding:10px 12px;align-items:center;border:none;border-radius:12px;background:transparent;color:var(--farm-green-dark);font:700 .84rem/1.2 inherit;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.farmdew-menu-link:hover,.farmdew-menu-link:active{background:rgba(49,95,60,.06)}
.farmdew-menu-link:focus-visible{outline:3px solid rgba(239,189,85,.5);outline-offset:-2px}

/* Help dialog */
.farmdew-help-sheet{max-height:min(78dvh,640px)}
.farmdew-help-content ol{display:grid;gap:7px;margin:0;padding-left:20px;font-size:.84rem;line-height:1.45}
.farmdew-help-note{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--farm-line);color:var(--farm-muted);font-size:.74rem;line-height:1.4}

/* === Sheets (shared) === */
.farmdew-sheet{position:fixed;inset:auto 0 0 0;width:min(100%,520px);max-width:none;max-height:min(80dvh,680px);margin:auto;padding:10px 16px calc(14px + env(safe-area-inset-bottom));overflow:auto;border:1px solid rgba(49,95,60,.18);border-radius:22px 22px 0 0;background:var(--farm-paper);box-shadow:0 -20px 50px rgba(18,48,27,.26);color:var(--farm-ink);overscroll-behavior:contain}
.farmdew-sheet::backdrop{background:rgba(14,34,20,.46);backdrop-filter:blur(2px)}
.farmdew-sheet-handle{width:40px;height:4px;margin:0 auto 11px;border-radius:999px;background:#c9d2b7}
.farmdew-sheet header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.farmdew-sheet h2{margin:0;font-family:Georgia,serif;font-size:1.5rem}
.farmdew-sheet header button{display:grid;min-width:44px;min-height:44px;place-items:center;border:1px solid var(--farm-line);border-radius:50%;background:#edf2df;color:var(--farm-green-dark);font-size:1.4rem;cursor:pointer}
.farmdew-sheet-copy{margin:8px 0 12px;color:var(--farm-muted);font-size:.82rem;line-height:1.4}
.farmdew-kicker{margin:0 0 4px;color:#6d7b30;font-size:.66rem;font-weight:950;letter-spacing:.12em;text-transform:uppercase}
.farmdew-crop-choices{display:grid;gap:8px}
.farmdew-crop-choice{display:grid;grid-template-columns:auto 1fr;gap:10px;width:100%;min-height:72px;padding:10px 12px;align-items:center;border:1px solid rgba(49,95,60,.15);border-radius:16px;background:#fffdf4;color:var(--farm-ink);text-align:left;cursor:pointer}
.farmdew-crop-choice>span{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:#eaf2d8;font-size:1.7rem}
.farmdew-crop-choice strong,.farmdew-crop-choice small{display:block}.farmdew-crop-choice strong{font-size:.9rem}.farmdew-crop-choice small{margin-top:2px;color:#5e743e;font-size:.7rem;font-weight:850}.farmdew-crop-choice p{margin:4px 0 0;color:var(--farm-muted);font-size:.7rem;line-height:1.3}
.farmdew-crop-choice:disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.5}
.farmdew-crop-choice:not(:disabled):active{transform:scale(.988)}
.farmdew-crop-choice:focus-visible,.farmdew-button:focus-visible,.farmdew-sheet header button:focus-visible{outline:3px solid rgba(239,189,85,.48);outline-offset:2px}

/* Toast */
.farmdew-toast{position:fixed;z-index:100;right:10px;bottom:calc(70px + env(safe-area-inset-bottom));left:10px;max-width:440px;margin:auto;padding:10px 14px;border-radius:14px;background:#14301c;box-shadow:0 12px 36px rgba(14,37,22,.28);color:#fff;font-size:.78rem;font-weight:800;text-align:center;opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .2s ease,transform .2s ease}.farmdew-toast.show{opacity:1;transform:none}.farmdew-toast.error{background:#742d2d}
.farmdew-sheet-open{overflow:hidden}

/* Board/Customize prop presentation owned by farmdew-orders.css / farmdew-customization.css */

/* Chickens */
.farmdew-chickens{position:absolute;z-index:5;right:6%;top:72%;width:68px;height:38px;pointer-events:none}
.farmdew-chickens[hidden]{display:none}
.farmdew-chicken{position:absolute;font-size:1.2rem;line-height:1;filter:drop-shadow(0 2px 2px rgba(28,43,24,.28));animation:farm-chicken-peck 3.5s ease-in-out infinite}
.farmdew-chicken.chicken-1{left:0;bottom:4px}
.farmdew-chicken.chicken-2{left:24px;bottom:0;animation-delay:-1.2s}
.farmdew-chicken.chicken-3{right:0;bottom:6px;animation-delay:-2.4s}
.farmdew-chicken.has-eggs::after{position:absolute;right:-6px;top:-6px;font-size:.55rem;content:"🥚";animation:farm-egg-bounce 1.4s ease-in-out infinite alternate}

/* Keyframes */
@keyframes farm-cloud-drift{to{transform:translateX(14px)}}
@keyframes farm-windmill{to{transform:rotate(360deg)}}
@keyframes farm-sun-glow{to{opacity:1;r:36}}
@keyframes farm-pond-ripple{0%,100%{opacity:.5;transform:scaleX(1)}50%{opacity:.3;transform:scaleX(1.1)}}
@keyframes farm-firefly{0%,100%{opacity:0;transform:translate(0,0)}30%{opacity:.7;transform:translate(4px,-8px)}70%{opacity:.5;transform:translate(-3px,-4px)}}
@keyframes farm-light-twinkle{0%{opacity:.6}100%{opacity:1}}
@keyframes farm-grass-sway{to{transform:translateX(1px) rotate(.5deg)}}
@keyframes farm-ready-bounce{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-4px) rotate(1.5deg)}}
@keyframes farm-sparkle{to{opacity:.3;transform:translateY(2px) scale(.8)}}
@keyframes farm-farmer-bob{to{transform:translateY(-2px) rotate(.5deg)}}
@keyframes farm-burst{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:1}100%{opacity:0;transform:translate(var(--burst-x),var(--burst-y)) scale(1.1)}}
@keyframes farm-chicken-peck{0%,85%,100%{transform:translateY(0)}88%{transform:translateY(2px) rotate(4deg)}92%{transform:translateY(0) rotate(-2deg)}}
@keyframes farm-egg-bounce{to{transform:translateY(-2px) scale(1.1)}}
@keyframes farm-barn-ready{50%{transform:translateY(-2px)}}
@keyframes farm-barn-idle{0%,70%,100%{transform:translateY(0) rotate(0)}78%{transform:translateY(-2px) rotate(-2deg)}86%{transform:translateY(0) rotate(2deg)}}
@keyframes farm-crop-sway{0%,100%{transform:rotate(0)}50%{transform:rotate(2deg)}}

/* Crop sway for growing plants */
.farm-crop-stage.stage-2,.farm-crop-stage.stage-3{animation:farm-crop-sway 3s ease-in-out infinite}

/* Responsive */
@media(max-width:390px){
  .farmdew-hud{gap:6px;padding-inline:8px}
  .farmdew-hud-energy{padding:2px 7px;font-size:.78rem}
  .farmdew-hud-xp-bar{max-width:80px}
  .farmdew-toolbelt{padding-inline:4px}
  .farmdew-tool{min-height:46px}
  .farmdew-tool>span{font-size:1.2rem}
  .farmdew-tool>small{font-size:.46rem}
  .farmdew-plots{left:39%;top:59%;width:45%;height:35%;gap:2px 4px}
  .farm-plot{min-height:44px;border-radius:4px}
  .farmdew-farmer{width:36px;height:52px}
}
@media(max-width:320px){
  .farmdew-hud-energy{padding:2px 6px;font-size:.74rem}
  .farmdew-hud-lv{font-size:.68rem}
  .farmdew-hud-xp-bar{max-width:60px}
  .farmdew-plots{left:37.5%;width:46.5%;top:58.5%;height:35.5%;gap:2px 3px}
  .farm-plot{min-height:44px}
  .farm-crop-stage{font-size:.9rem!important}
  .farmdew-farmer{width:32px;height:46px}
  .farmdew-scene-message{font-size:.55rem;padding:3px 8px}
}
@media(orientation:landscape) and (max-height:520px){
  .farmdew-game{grid-template-rows:auto 1fr auto}
  .farmdew-hud{padding-top:max(4px,env(safe-area-inset-top))}
  .farmdew-scene{height:auto}
  .farmdew-toolbelt{padding-bottom:max(4px,env(safe-area-inset-bottom))}
  .farmdew-sheet,.farmdew-menu-dialog{max-height:90dvh}
}
@media(prefers-reduced-motion:reduce){
  .farmdew-clouds,.farm-windmill-blades,.farm-plot.ready .farm-crop-stage,.farm-plot.ready::after,
  .farmdew-farmer.is-walking svg,.farmdew-harvest-burst.is-active span,.farmdew-sun,
  .farmdew-pond-ripple,.farmdew-firefly,.farmdew-lights circle,.farmdew-grass,
  .farmdew-chicken,.farmdew-chicken.has-eggs::after,.farm-crop-stage.stage-2,.farm-crop-stage.stage-3{animation:none}
  .farmdew-farmer,.farm-unlock,.farmdew-hud-xp-bar i,.farmdew-toast,.farmdew-tool,.farmdew-game>.farmdew-scene,.farmdew-game>.farmdew-expansion-scene{transition:none}
  .farm-plot.ready{box-shadow:inset 0 0 0 1px rgba(255,232,123,.3),0 0 8px rgba(255,224,91,.4)}
}
/* Ensure document hidden stops animations */
@media(prefers-reduced-motion:no-preference){
  .farmdew-page:not(:focus-within) .farmdew-firefly{animation-play-state:paused}
}

/* Immersive shell + Back Forty integration. Keep the four-row grid contract, but
   remove the area switcher from track sizing so the farm gets that space back. */
.farmdew-game{grid-template-rows:auto auto minmax(0,1fr) auto}
.farmdew-game>.farmdew-hud{grid-row:1}
.farmdew-game>.farmdew-area-switcher{grid-row:2;position:absolute;top:calc(env(safe-area-inset-top) + 52px);left:50%;z-index:19;width:min(calc(100% - 24px),360px);margin:0;padding:3px;border:1px solid rgba(236,244,219,.16);border-radius:999px;box-shadow:0 4px 14px rgba(8,24,13,.2);align-self:start;background:rgba(18,42,24,.72);backdrop-filter:blur(5px);gap:3px;grid-template-columns:1fr 1fr;transform:translateX(-50%)}
.farmdew-game>.farmdew-area-switcher .farmdew-area-tab{min-height:44px;padding:4px 8px;border:1px solid transparent;border-radius:999px;column-gap:5px;grid-template-rows:auto;background:transparent;box-shadow:none}
.farmdew-game>.farmdew-area-switcher .farmdew-area-tab strong{font-size:.7rem}
.farmdew-game>.farmdew-area-switcher .farmdew-area-tab small{display:none}
.farmdew-game>.farmdew-area-switcher .farmdew-area-tab>span{font-size:1rem;grid-row:1}
.farmdew-game>.farmdew-area-switcher .farmdew-area-tab.is-active{background:rgba(237,244,223,.16);border-color:rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.farmdew-game>.farmdew-scene,.farmdew-game>.farmdew-expansion-scene{grid-row:3;min-height:0;align-self:stretch;transition:opacity .25s ease-out;grid-column:1}
.farmdew-game>.farmdew-scene[hidden],.farmdew-game>.farmdew-expansion-scene[hidden]{display:block!important;opacity:0;pointer-events:none;z-index:-1;visibility:hidden}
.farmdew-game>.farmdew-expansion-scene{width:100%;height:auto;border:0;border-radius:0;box-shadow:none}
.farmdew-game>.farmdew-toolbelt{grid-row:4}

/* FarmDew has its own HUD/toolbelt. On mobile, suppress the shared WhatDew chrome
   so the game occupies the usable viewport instead of rendering underneath it. */
@media(max-width:720px){
  body.farmdew-page.mobile-app-chrome-ready{padding-top:0!important;padding-bottom:0!important}
  body.farmdew-page .mobile-app-header,body.farmdew-page .mobile-global-nav{display:none!important}
}
@media(orientation:landscape) and (max-height:520px){
  .farmdew-game{grid-template-rows:auto auto minmax(0,1fr) auto}
  .farmdew-game>.farmdew-area-switcher{top:calc(env(safe-area-inset-top) + 48px);width:min(calc(100% - 140px),320px)}
  .farmdew-scene-message{top:50px}
  /* In landscape the tall 5:8 stage would overflow; contain it instead */
  .farmdew-stage{left:50%;bottom:auto;top:0;width:auto;height:100%;aspect-ratio:5/8;transform:translateX(-50%)}
}

/* Barn/Coop prop presentation owned by farmdew-barn.css / farmdew-coop.css */