/* =====================================================================================
   Veggie Patch world (12-worlds-d §B, Garden.dc.html). Keyframes and classes are prefixed gdn- so they never collide with other worlds.
   Shared rules used as-is from pointwalk.css: bean animations, .pop, .press/.ready, .padhit, .sign, .cf0-5, .adlb.
   ===================================================================================== */
.gdn-scene-wrap { width: 100%; max-width: 1200px; margin: 0 auto; overflow: hidden; border-radius: 28px; }
.gdn-scene { position: relative; width: 1200px; height: 660px; transform-origin: 0 0; }
/* Teammate replay wrapper: the bean anchor stands at the START of the walk; the wrapper translates it along the recorded path. */
.gdn-walker { position: absolute; left: 0; top: 0; width: 0; height: 0; }
.gdn-quick { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.gdn-quick button { min-width: 44px; height: 44px; padding: 0 10px; border: 3px solid #1E1B2E; border-radius: 12px; box-shadow: 0 3px 0 #1E1B2E; font-family: 'Lilita One', sans-serif; font-size: 18px; color: #1E1B2E; cursor: pointer; }
/* Seed-packet sign: tilted 2deg; hover lifts it 4px (keeps the tilt, unlike the shared .sign:hover). */
.gdn-sign:hover { transform: translate(-50%, -100%) translateY(-4px) rotate(-2deg) !important; }
.gdn-sign:focus-visible { outline: 3px solid #5AA9FF; outline-offset: 3px; }

@keyframes gdn-grow { 0% { transform: scale(.05); } 55% { transform: scale(1.18); } 75% { transform: scale(.94); } 90% { transform: scale(1.04); } 100% { transform: scale(1); } }
.gdn-grow { transform-origin: 50% 100%; animation: gdn-grow 1s cubic-bezier(.3, 1.3, .5, 1) both; }
@keyframes gdn-sway { 0%, 100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
.gdn-sway { transform-origin: 50% 100%; animation: gdn-sway 3.2s ease-in-out infinite; }
@keyframes gdn-mound { 0% { transform: scale(0); } 70% { transform: scale(1.25); } 100% { transform: scale(1); } }
.gdn-mound { transform-origin: 50% 100%; animation: gdn-mound .45s cubic-bezier(.3, 1.4, .5, 1) both; }
@keyframes gdn-rosette { 0% { transform: scale(0) rotate(-40deg); } 70% { transform: scale(1.2) rotate(8deg); } 100% { transform: scale(1) rotate(0); } }
.gdn-rosette { transform-origin: 50% 50%; animation: gdn-rosette .6s cubic-bezier(.3, 1.4, .5, 1) .9s both; }

/* Reduced motion (OS setting, or session.reducedMotionAll => class `rm` on <html>): plants and rosette appear at full size, no mound pop, no walking. */
@media (prefers-reduced-motion: reduce) {
  .gdn-grow, .gdn-sway, .gdn-mound, .gdn-rosette { animation: none; }
  .gdn-walker { animation: none !important; transform: var(--fin) !important; z-index: var(--zf) !important; }
}
.rm .gdn-grow, .rm .gdn-sway, .rm .gdn-mound, .rm .gdn-rosette { animation: none; }
.rm .gdn-walker { animation: none !important; transform: var(--fin) !important; z-index: var(--zf) !important; }
