/* ─────────────────────────────────────────────
   PLANTAÇÃO DAS LEMBRANÇAS — Overcooked romântico
───────────────────────────────────────────── */

.screen--crops {
  min-height: calc(100vh - var(--topbar-h));
  display: grid;
  place-items: center;
  padding: 14px;
}

.crops-panel {
  width: min(1180px, calc(100vw - 38px));
  max-height: calc(100vh - var(--topbar-h) - 22px);
  overflow-y: auto;
  border: 5px solid var(--wood-900);
  outline: 3px solid rgba(240, 200, 64, .34);
  outline-offset: -11px;
  background: rgba(91, 64, 37, .96);
  box-shadow:
    0 0 0 4px rgba(0,0,0,.34),
    9px 9px 0 rgba(0,0,0,.36);
  color: var(--cream-100);
  padding: clamp(13px, 1.8vw, 20px);
}

.crops-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: end;
  margin-bottom: 8px;
}

.crops-kicker {
  color: var(--green-400);
  font-size: clamp(15px, 1.45vw, 21px);
  text-shadow: 2px 2px 0 var(--shadow-hard);
}

.crops-header h1 {
  margin: 4px 0 0;
  color: var(--gold-300);
  font-size: clamp(30px, 3.7vw, 50px);
  line-height: .9;
  text-shadow: 3px 3px 0 var(--shadow-hard);
}

.crops-progress {
  min-width: 124px;
  border: 4px solid var(--wood-900);
  background: rgba(58, 38, 16, .78);
  padding: 8px 12px;
  text-align: right;
  box-shadow: 4px 4px 0 rgba(0,0,0,.25);
}

.crops-progress span {
  display: block;
  color: var(--cream-300);
  font-size: 14px;
}

.crops-progress strong {
  display: block;
  color: var(--gold-300);
  font-size: 30px;
  line-height: 1;
  text-shadow: 2px 2px 0 var(--shadow-hard);
}

.crops-map-stage {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 5px solid var(--wood-900);
  background: #5b4025;
  box-shadow:
    inset 0 0 0 4px rgba(255,255,255,.06),
    inset 0 -20px 45px rgba(0,0,0,.14);
}

.crops-map-stage.is-zoom-pulse {
  animation: stageZoomPulse .22s ease-out;
}

.crops-map-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  image-rendering: auto;
  user-select: none;
  pointer-events: none;
}

.crops-map-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 54%, transparent 32%, rgba(0,0,0,.05) 100%),
    linear-gradient(180deg, rgba(255,220,160,.05), rgba(0,0,0,.04));
}

.crops-map-layer {
  position: absolute;
  inset: 0;
  z-index: 8;
  pointer-events: none;
}

.crops-hud {
  position: absolute;
  z-index: 30;
  left: 14px;
  right: 14px;
  top: 14px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  pointer-events: none;
}

.crops-care-panel,
.crops-timer-panel,
.crops-objective-panel,
.crops-inventory-panel {
  border: 4px solid var(--wood-900);
  background: rgba(58, 38, 16, .86);
  box-shadow: 4px 4px 0 rgba(0,0,0,.26);
  text-shadow: 2px 2px 0 var(--shadow-hard);
  padding: 8px 10px;
}

.crops-objective-panel--wide {
  width: min(470px, 42vw);
  text-align: center;
}

.crops-inventory-panel {
  width: 160px;
  text-align: center;
}

.crops-timer-panel {
  min-width: 104px;
  text-align: right;
}

.crops-care-panel span,
.crops-timer-panel span,
.crops-objective-panel span,
.crops-inventory-panel span {
  display: block;
  color: var(--cream-300);
  font-size: 14px;
  line-height: 1.1;
  margin-bottom: 5px;
}

.crops-care-panel strong,
.crops-timer-panel strong,
.crops-objective-panel strong,
.crops-inventory-panel strong {
  display: block;
  color: var(--gold-300);
  font-size: 20px;
  line-height: 1.05;
}

.crops-tutorial {
  position: absolute;
  z-index: 60;
  left: 50%;
  top: 50%;
  width: min(760px, calc(100% - 42px));
  transform: translate(-50%, -50%);
  border: 5px solid var(--wood-900);
  outline: 3px solid rgba(240, 200, 64, .34);
  outline-offset: -10px;
  background: rgba(58, 38, 16, .96);
  padding: 22px 26px;
  text-align: center;
  box-shadow:
    0 0 0 999px rgba(0,0,0,.34),
    8px 8px 0 rgba(0,0,0,.34);
}

.crops-tutorial strong {
  display: block;
  color: var(--gold-300);
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
  text-shadow: 3px 3px 0 var(--shadow-hard);
  margin-bottom: 12px;
}

.crops-tutorial p {
  margin: 0 0 12px;
  color: var(--cream-100);
  font-size: clamp(18px, 1.72vw, 25px);
  line-height: 1.18;
  text-shadow: 2px 2px 0 var(--shadow-hard);
}

.crops-tutorial__small {
  color: var(--cream-300) !important;
  font-size: clamp(15px, 1.35vw, 20px) !important;
}

.crop-zone,
.crop-station {
  position: absolute;
  z-index: 10;
  width: 9.4%;
  height: 13.6%;
  transform: translate(-50%, -50%);
  border: 0;
  background: transparent;
  cursor: pointer;
  pointer-events: auto;
  image-rendering: pixelated;
}

.crop-station {
  width: 7.8%;
  height: 11.5%;
}

.crop-zone::before,
.crop-station::before {
  content: "";
  position: absolute;
  inset: 7% 4% 8%;
  border: 3px solid rgba(255, 218, 88, 0);
  background: transparent;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.crop-zone:hover::before,
.crop-zone:focus-visible::before,
.crop-zone.is-near::before,
.crop-station:hover::before,
.crop-station:focus-visible::before,
.crop-station.is-near::before {
  border-color: rgba(255, 218, 88, .72);
  box-shadow: 0 0 16px rgba(255, 218, 88, .30);
  outline: none;
}

.crop-zone.is-recommended::before,
.crop-station.is-recommended::before {
  border-color: rgba(255, 218, 88, .70);
  box-shadow:
    0 0 0 4px rgba(255, 218, 88, .14),
    0 0 18px rgba(255, 218, 88, .30);
  animation: recommendedPulse 1s ease-in-out infinite;
}

.crop-label {
  position: absolute;
  z-index: 14;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  padding: 1px 4px;
  color: var(--cream-100);
  background: rgba(43, 21, 8, .62);
  font-size: clamp(10px, .95vw, 13px);
  line-height: 1;
  text-shadow: 2px 2px 0 var(--shadow-hard);
  white-space: nowrap;
  opacity: .9;
}

.crop-plant,
.crop-station__icon {
  position: absolute;
  z-index: 13;
  left: 50%;
  top: 55%;
  width: 34px;
  height: 34px;
  transform: translate(-50%, -50%);
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.28));
}

.crop-station__icon {
  width: 42px;
  height: 42px;
}

.crop-state-dry .crop-plant { width: 22px; height: 22px; opacity: .86; }
.crop-state-seeded .crop-plant { width: 30px; height: 30px; }
.crop-state-growing .crop-plant { width: 36px; height: 36px; }
.crop-state-ready .crop-plant { width: 48px; height: 48px; animation: cropRipePulse 1.05s ease-in-out infinite; }

.crop-plant img,
.crop-station__icon img,
.crop-need img,
.crops-map-character img,
.crop-shadow img,
.crop-water-fx img,
.crop-heart-fx img,
.crop-sparkle-fx img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}

.crop-need {
  position: absolute;
  z-index: 20;
  left: 50%;
  top: -1%;
  width: 42px;
  height: 42px;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  border: 4px solid var(--wood-900);
  background: rgba(255, 237, 156, .95);
  box-shadow:
    0 0 14px rgba(255, 218, 88, .40),
    4px 4px 0 rgba(0,0,0,.25);
  animation: cropNeedPop .5s ease-out both;
}

.crop-need img {
  width: 28px;
  height: 28px;
}

.crop-need--shadow {
  background: rgba(75, 46, 112, .96);
  animation:
    cropNeedPop .5s ease-out both,
    urgentShake .55s ease-in-out infinite;
}

.crop-grow-ring {
  position: absolute;
  z-index: 21;
  left: 50%;
  top: 54%;
  width: 54px;
  height: 54px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    conic-gradient(rgba(255, 224, 92, .95) calc(var(--progress) * 1turn), rgba(18,8,6,.62) 0);
  -webkit-mask:
    radial-gradient(circle, transparent 55%, #000 58%);
  mask:
    radial-gradient(circle, transparent 55%, #000 58%);
  pointer-events: none;
}

.crops-map-character {
  position: absolute;
  z-index: 35;
  width: 45px;
  height: 62px;
  transform: translate(-50%, -86%);
  display: grid;
  place-items: center;
  pointer-events: none;
  filter: drop-shadow(3px 5px 0 rgba(0,0,0,.32));
}

.crops-map-character--diego {
  z-index: 34;
  width: 46px;
  height: 66px;
  opacity: .96;
}

.crops-map-character span:not(.held-item-icon) {
  position: absolute;
  bottom: -8px;
  color: var(--gold-300);
  font-size: 13px;
  line-height: 1;
  text-shadow: 2px 2px 0 var(--shadow-hard);
  white-space: nowrap;
}

.crops-map-character.is-walking img {
  animation: cropsWalkBounce .34s ease-in-out infinite;
}

.held-item-icon {
  position: absolute;
  z-index: 40;
  left: 50%;
  top: -25px;
  width: 34px;
  height: 34px;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  border: 3px solid var(--wood-900);
  background: rgba(255, 237, 156, .96);
  box-shadow:
    0 0 12px rgba(255, 218, 88, .38),
    3px 3px 0 rgba(0,0,0,.25);
  animation: heldItemBob .85s ease-in-out infinite;
}

.held-item-icon img {
  width: 25px;
  height: 25px;
  object-fit: contain;
  image-rendering: pixelated;
}

.crop-shadow {
  position: absolute;
  z-index: 28;
  width: 56px;
  height: 56px;
  transform: translate(-50%, -50%);
  filter:
    drop-shadow(0 0 10px rgba(75, 46, 112, .45))
    drop-shadow(3px 4px 0 rgba(0,0,0,.28));
  animation: shadowFloat 1.1s ease-in-out infinite;
}

.crop-near-ring {
  position: absolute;
  z-index: 9;
  width: 10.6%;
  height: 14.6%;
  transform: translate(-50%, -50%);
  border: 3px dashed rgba(255, 218, 88, .72);
  box-shadow: 0 0 18px rgba(255, 218, 88, .20);
  pointer-events: none;
  animation: cropNearRingPulse 1.1s ease-in-out infinite;
}

.crop-beacon {
  position: absolute;
  z-index: 41;
  transform: translate(-50%, -50%);
  color: #ffe36d;
  font-size: 34px;
  line-height: 1;
  text-shadow:
    2px 2px 0 var(--wood-900),
    0 0 12px rgba(255, 218, 88, .68);
  animation: beaconBounce .72s ease-in-out infinite;
  pointer-events: none;
}

.crop-water-fx,
.crop-heart-fx,
.crop-sparkle-fx,
.crop-poof-fx,
.crop-float-text {
  position: absolute;
  z-index: 50;
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.crop-water-fx,
.crop-sparkle-fx {
  width: 58px;
  height: 58px;
  animation: cropSplash .55s ease-out forwards;
}

.crop-heart-fx {
  width: 24px;
  height: 24px;
  animation: cropHeartBurst .9s ease-out forwards;
}

.crop-poof-fx {
  color: #d2a0ff;
  font-size: 44px;
  line-height: 1;
  text-shadow: 2px 2px 0 var(--shadow-hard);
  animation: poofFx .7s ease-out forwards;
}

.crop-float-text {
  color: var(--cream-100);
  font-size: 18px;
  line-height: 1;
  text-shadow: 2px 2px 0 var(--shadow-hard);
  animation: floatText .7s ease-out forwards;
}

.crop-float-text--good {
  color: var(--green-400);
}

.crop-float-text--bad {
  color: #ff7b8e;
}

.crop-message {
  position: absolute;
  z-index: 45;
  left: 50%;
  bottom: 12px;
  transform: translateX(-50%);
  width: min(850px, calc(100% - 40px));
  border: 4px solid var(--gold-500);
  background: rgba(18, 8, 6, .84);
  color: var(--cream-100);
  padding: 10px 14px;
  text-align: center;
  font-size: clamp(17px, 1.55vw, 23px);
  line-height: 1.08;
  text-shadow: 2px 2px 0 var(--shadow-hard);
}

.crops-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.crops-actions .gold-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.crops-actions .gold-button img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  image-rendering: pixelated;
}

.crops-complete-button:disabled {
  opacity: .48;
  cursor: not-allowed;
  filter: grayscale(.45);
}

@keyframes stageZoomPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.006); }
  100% { transform: scale(1); }
}

@keyframes cropNeedPop {
  0% { opacity: 0; transform: translateX(-50%) translateY(-8px) scale(.82); }
  100% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}

@keyframes urgentShake {
  0%, 100% { margin-left: 0; }
  25% { margin-left: -3px; }
  75% { margin-left: 3px; }
}

@keyframes recommendedPulse {
  0%, 100% { opacity: .72; }
  50% { opacity: 1; }
}

@keyframes cropNearRingPulse {
  0%, 100% { opacity: .55; }
  50% { opacity: 1; }
}

@keyframes beaconBounce {
  0%, 100% { margin-top: 0; }
  50% { margin-top: -8px; }
}

@keyframes cropSplash {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.55); }
  30% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -78%) scale(1.35); }
}

@keyframes cropHeartBurst {
  0% { opacity: 0; transform: translate(-50%, -50%) translateX(var(--x, 0)) scale(.55); }
  25% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -125%) translateX(var(--x, 0)) scale(1.25); }
}

@keyframes cropRipePulse {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.12); }
}

@keyframes cropsWalkBounce {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
}

@keyframes heldItemBob {
  0%, 100% { margin-top: 0; }
  50% { margin-top: -5px; }
}

@keyframes shadowFloat {
  0%, 100% { margin-top: 0; opacity: .92; }
  50% { margin-top: -7px; opacity: 1; }
}

@keyframes floatText {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.86); }
  20% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -145%) scale(1.05); }
}

@keyframes poofFx {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.6) rotate(0deg); }
  25% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -80%) scale(1.5) rotate(25deg); }
}

@media (max-width: 900px) {
  .crops-map-stage {
    min-height: 620px;
    aspect-ratio: auto;
  }

  .crops-hud {
    flex-direction: column;
    right: auto;
    width: min(280px, calc(100% - 28px));
  }

  .crops-objective-panel--wide,
  .crops-inventory-panel {
    width: 100%;
  }

  .crop-label {
    display: none;
  }

  .crops-map-character {
    width: 38px;
    height: 52px;
  }

  .crops-map-character--diego {
    width: 39px;
    height: 54px;
  }
}




/* V1.64 — bloco único consolidado do minigame */
.crops-map-stage.is-rush .crops-danger-vignette {
  opacity: .34;
  animation: rushPulse .75s ease-in-out infinite;
}

.crops-map-stage.is-time-critical .crops-danger-vignette {
  opacity: .62;
  animation: rushPulse .38s ease-in-out infinite;
}

.crop-zone.is-urgent::before {
  border-color: rgba(255, 86, 105, .95);
  box-shadow:
    0 0 0 4px rgba(255, 86, 105, .17),
    0 0 22px rgba(255, 86, 105, .38);
  animation: urgentPlotPulse .42s ease-in-out infinite;
}

.crop-zone.is-urgent .crop-need {
  animation:
    cropNeedPop .5s ease-out both,
    urgentShake .45s ease-in-out infinite;
}

.crop-grow-ring--warning {
  background: conic-gradient(rgba(255, 118, 88, .96) calc(var(--progress) * 1turn), rgba(18,8,6,.66) 0);
}

.crop-grow-ring--grow {
  background: conic-gradient(rgba(255, 224, 92, .95) calc(var(--progress) * 1turn), rgba(18,8,6,.62) 0);
}

.crop-grow-ring--fresh {
  background: conic-gradient(rgba(118, 227, 91, .96) calc(var(--progress) * 1turn), rgba(18,8,6,.66) 0);
}

.held-item-icon.is-urgent {
  border-color: #ff5669;
  box-shadow:
    0 0 0 4px rgba(255, 86, 105, .18),
    0 0 18px rgba(255, 86, 105, .50),
    3px 3px 0 rgba(0,0,0,.25);
  animation:
    heldItemBob .55s ease-in-out infinite,
    urgentHeldPulse .45s ease-in-out infinite;
}

.crops-gameover-card {
  position: relative;
  overflow: hidden;
}

.crops-gameover-card h1,
.crops-gameover-card p,
.crops-gameover-card .crops-fail-actions,
.crops-gameover-card > img {
  position: relative;
  z-index: 2;
}

.gameover-hearts {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.gameover-hearts span {
  position: absolute;
  left: calc((var(--i) * 37px) % 100%);
  bottom: -28px;
  color: rgba(255, 120, 160, .78);
  font-size: 24px;
  text-shadow: 2px 2px 0 rgba(43, 21, 8, .80), 0 0 10px rgba(255, 120, 160, .45);
  animation: gameoverHeartFloat calc(2.2s + (var(--i) * .12s)) linear infinite;
  animation-delay: calc(var(--i) * -.21s);
}

.crops-drop-button {
  min-width: 150px;
  text-align: center;
}

.crops-drop-button.is-active {
  border-color: var(--gold-500);
  color: var(--gold-300);
  box-shadow: 0 0 0 3px rgba(240, 200, 64, .18), 4px 4px 0 rgba(0,0,0,.24);
}

.crops-drop-button:disabled {
  opacity: .42;
  cursor: not-allowed;
  filter: grayscale(.35);
}

/* plot states and shadow look */
.crop-zone--overcooked::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 11;
  pointer-events: none;
  border-radius: 3px;
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity .18s ease, background .18s ease;
}

.crop-state-dry::after {
  opacity: .10;
  background: radial-gradient(circle, rgba(255, 240, 160, .42), transparent 63%);
}

.crop-state-seeded::after {
  opacity: .28;
  background: radial-gradient(circle at 50% 52%, rgba(255, 130, 80, .42), transparent 48%), linear-gradient(180deg, transparent, rgba(255, 105, 70, .18));
}

.crop-state-growing::after {
  opacity: .24;
  background: radial-gradient(circle, rgba(110, 255, 120, .50), transparent 58%);
}

.crop-state-ready::after {
  opacity: .38;
  background: radial-gradient(circle, rgba(255, 235, 110, .62), transparent 54%), radial-gradient(circle at 35% 35%, rgba(255, 120, 160, .38), transparent 35%);
  animation: readyGlowPulse .78s ease-in-out infinite;
}

.crop-state-seeded .crop-plant {
  opacity: .86;
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.28)) sepia(.18) saturate(1.08);
}

.crop-state-growing .crop-plant {
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.28)) saturate(1.22) brightness(1.04);
}

.crop-state-ready .crop-plant {
  filter: drop-shadow(0 0 8px rgba(255, 228, 98, .48)) drop-shadow(2px 3px 0 rgba(0,0,0,.28)) saturate(1.25) brightness(1.08);
  animation: cropRipePulse .72s ease-in-out infinite, readyWiggle .54s ease-in-out infinite;
}

.crop-shadow--abigail {
  opacity: .72;
  filter: hue-rotate(48deg) saturate(2.15) brightness(.68) contrast(1.25) drop-shadow(0 0 12px rgba(130, 64, 255, .74)) drop-shadow(3px 4px 0 rgba(0,0,0,.34));
}

.crop-shadow--abigail img {
  animation: shadowFloat 1.05s ease-in-out infinite, abigailShadowFlicker .56s steps(2, end) infinite;
}

.held-item-icon {
  border-color: rgba(255, 226, 116, .98);
  background: radial-gradient(circle at 50% 35%, rgba(255,255,210,.96), rgba(255, 218, 102, .88));
}

.held-item-icon::after {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: 50%;
  border: 2px solid rgba(255, 226, 116, .45);
  animation: heldAuraPulse 1.1s ease-in-out infinite;
}

.crop-float-text--bad { color: #ff8fa2; }
.crop-float-text--good { color: #9cf27c; }

/* clean final sizing/alignment */
.crop-zone--overcooked {
  width: var(--plot-w, 9.15%);
  height: var(--plot-h, 14.15%);
  transform: translate(-50%, -50%);
  background: transparent;
}

.crop-zone--overcooked::before {
  inset: 0;
  border-width: 3px;
  border-radius: 3px;
}

.crop-zone--overcooked .crop-plant {
  top: 58%;
}

.crop-zone--overcooked .crop-label {
  bottom: -7px;
}

.crop-zone--overcooked .crop-need {
  top: 5px;
  left: 50%;
  width: 30px;
  height: 30px;
  border-width: 3px;
  background: rgba(255, 237, 156, .92);
  transform: translateX(-50%);
}

.crop-zone--overcooked .crop-need img {
  width: 20px;
  height: 20px;
}

.crop-zone.is-recommended::before,
.crop-zone.is-near::before,
.crop-zone.is-urgent::before {
  border-radius: 2px;
}

.crop-station--seedBag .crop-station__icon {
  width: 50px;
  height: 50px;
  top: 50%;
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.34)) saturate(1.18) brightness(1.05);
}

.crop-station--seedBag .crop-station__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}

.crop-station--seedBag .crop-label,
.crop-zone.is-urgent .crop-label,
.crop-station.is-delivery-target .crop-label,
.crop-station.is-near .crop-label,
.crop-zone.is-near .crop-label {
  color: #ffe36d;
}

.crop-station--basket .crop-station__icon {
  width: 50px;
  height: 50px;
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.30)) saturate(1.12) brightness(1.04);
}

.crop-station--basket.is-delivery-target::before {
  border-color: rgba(255, 224, 92, .96);
  box-shadow: 0 0 0 5px rgba(255, 224, 92, .18), 0 0 24px rgba(255, 224, 92, .48);
  animation: recommendedPulse .55s ease-in-out infinite;
}

.station-alert {
  position: absolute;
  z-index: 24;
  left: 50%;
  top: -20px;
  width: 26px;
  height: 36px;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  filter: drop-shadow(0 0 8px rgba(255, 224, 92, .72)) drop-shadow(2px 2px 0 rgba(0,0,0,.36));
  animation: stationAlertBounce .45s ease-in-out infinite;
}

.station-alert img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}

@keyframes urgentPlotPulse {
  0%, 100% { opacity: .64; }
  50% { opacity: 1; }
}

@keyframes urgentHeldPulse {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.08); }
}

@keyframes rushPulse {
  0%, 100% { opacity: .20; }
  50% { opacity: .42; }
}

@keyframes gameoverHeartFloat {
  0% { transform: translateY(0) translateX(0) rotate(-8deg) scale(.75); opacity: 0; }
  12% { opacity: .9; }
  100% { transform: translateY(-430px) translateX(36px) rotate(14deg) scale(1.18); opacity: 0; }
}

@keyframes readyGlowPulse {
  0%, 100% { opacity: .30; }
  50% { opacity: .56; }
}

@keyframes readyWiggle {
  0%, 100% { margin-left: 0; }
  25% { margin-left: -2px; }
  75% { margin-left: 2px; }
}

@keyframes abigailShadowFlicker {
  0%, 100% { opacity: .74; transform: scale(1); }
  50% { opacity: .92; transform: scale(1.035); }
}

@keyframes heldAuraPulse {
  0%, 100% { opacity: .20; transform: scale(.88); }
  50% { opacity: .62; transform: scale(1.08); }
}

@keyframes stationAlertBounce {
  0%, 100% { margin-top: 0; transform: translateX(-50%) scale(1); }
  50% { margin-top: -7px; transform: translateX(-50%) scale(1.08); }
}

/* V1.65 — correção final dos overlays, seed bag e clique */
.crops-map-stage.is-rush .crops-danger-vignette {
  opacity: .34;
  animation: rushPulse .75s ease-in-out infinite;
}

.crops-map-stage.is-time-critical .crops-danger-vignette {
  opacity: .62;
  animation: rushPulse .38s ease-in-out infinite;
}

.crop-zone--overcooked {
  width: var(--plot-w, 8.70%);
  height: var(--plot-h, 13.45%);
  transform: translate(-50%, -50%);
  background: transparent;
}

.crop-zone--overcooked::before {
  inset: 0;
  border-width: 3px;
  border-radius: 2px;
}

.crop-zone--overcooked::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 11;
  pointer-events: none;
  border-radius: 2px;
  opacity: 0;
  mix-blend-mode: screen;
  transition: opacity .18s ease, background .18s ease;
}

.crop-state-dry::after {
  opacity: .08;
  background: radial-gradient(circle, rgba(255, 240, 160, .34), transparent 63%);
}

.crop-state-seeded::after {
  opacity: .28;
  background: radial-gradient(circle at 50% 52%, rgba(255, 130, 80, .42), transparent 48%), linear-gradient(180deg, transparent, rgba(255, 105, 70, .18));
}

.crop-state-growing::after {
  opacity: .24;
  background: radial-gradient(circle, rgba(110, 255, 120, .50), transparent 58%);
}

.crop-state-ready::after {
  opacity: .38;
  background: radial-gradient(circle, rgba(255, 235, 110, .62), transparent 54%), radial-gradient(circle at 35% 35%, rgba(255, 120, 160, .38), transparent 35%);
  animation: readyGlowPulse .78s ease-in-out infinite;
}

.crop-zone--overcooked .crop-plant {
  top: 58%;
}

.crop-zone--overcooked .crop-label {
  bottom: -7px;
  font-size: clamp(9px, .8vw, 12px);
}

.crop-zone--overcooked .crop-need {
  top: 6px;
  left: 50%;
  width: 28px;
  height: 28px;
  border-width: 3px;
  background: rgba(255, 237, 156, .92);
  transform: translateX(-50%);
}

.crop-zone--overcooked .crop-need img {
  width: 18px;
  height: 18px;
}

.crop-zone.is-recommended::before,
.crop-zone.is-near::before {
  border-color: rgba(255, 218, 88, .72);
  box-shadow: 0 0 0 3px rgba(255, 218, 88, .12), 0 0 14px rgba(255, 218, 88, .26);
}

.crop-zone.is-urgent::before {
  border-color: rgba(255, 86, 105, .95);
  box-shadow: 0 0 0 4px rgba(255, 86, 105, .17), 0 0 22px rgba(255, 86, 105, .38);
  animation: urgentPlotPulse .42s ease-in-out infinite;
}

.crop-zone.is-urgent .crop-need {
  animation: cropNeedPop .5s ease-out both, urgentShake .45s ease-in-out infinite;
}

.crop-grow-ring--warning {
  background: conic-gradient(rgba(255, 118, 88, .96) calc(var(--progress) * 1turn), rgba(18,8,6,.66) 0);
}

.crop-grow-ring--grow {
  background: conic-gradient(rgba(255, 224, 92, .95) calc(var(--progress) * 1turn), rgba(18,8,6,.62) 0);
}

.crop-grow-ring--fresh {
  background: conic-gradient(rgba(118, 227, 91, .96) calc(var(--progress) * 1turn), rgba(18,8,6,.66) 0);
}

.crop-station--seedBag {
  width: 6.2%;
  height: 9.4%;
}

.crop-station--seedBag .crop-station__icon {
  width: 50px;
  height: 50px;
  top: 50%;
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.34)) saturate(1.18) brightness(1.05);
}

.crop-station--seedBag .crop-station__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}

.crop-station--seedBag .crop-label,
.crop-zone.is-urgent .crop-label,
.crop-station.is-delivery-target .crop-label,
.crop-station.is-near .crop-label,
.crop-zone.is-near .crop-label {
  color: #ffe36d;
}

.crop-station--basket .crop-station__icon {
  width: 50px;
  height: 50px;
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.30)) saturate(1.12) brightness(1.04);
}

.crop-station--basket.is-delivery-target::before {
  border-color: rgba(255, 224, 92, .96);
  box-shadow: 0 0 0 5px rgba(255, 224, 92, .18), 0 0 24px rgba(255, 224, 92, .48);
  animation: recommendedPulse .55s ease-in-out infinite;
}

.station-alert {
  position: absolute;
  z-index: 24;
  left: 50%;
  top: -20px;
  width: 26px;
  height: 36px;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  filter: drop-shadow(0 0 8px rgba(255, 224, 92, .72)) drop-shadow(2px 2px 0 rgba(0,0,0,.36));
  animation: stationAlertBounce .45s ease-in-out infinite;
}

.station-alert img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
}

.crop-state-seeded .crop-plant {
  opacity: .86;
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.28)) sepia(.18) saturate(1.08);
}

.crop-state-growing .crop-plant {
  filter: drop-shadow(2px 3px 0 rgba(0,0,0,.28)) saturate(1.22) brightness(1.04);
}

.crop-state-ready .crop-plant {
  filter: drop-shadow(0 0 8px rgba(255, 228, 98, .48)) drop-shadow(2px 3px 0 rgba(0,0,0,.28)) saturate(1.25) brightness(1.08);
  animation: cropRipePulse .72s ease-in-out infinite, readyWiggle .54s ease-in-out infinite;
}

.crop-shadow--abigail {
  opacity: .72;
  filter: hue-rotate(48deg) saturate(2.15) brightness(.68) contrast(1.25) drop-shadow(0 0 12px rgba(130, 64, 255, .74)) drop-shadow(3px 4px 0 rgba(0,0,0,.34));
}

.crop-shadow--abigail img {
  animation: shadowFloat 1.05s ease-in-out infinite, abigailShadowFlicker .56s steps(2, end) infinite;
}

.held-item-icon {
  border-color: rgba(255, 226, 116, .98);
  background: radial-gradient(circle at 50% 35%, rgba(255,255,210,.96), rgba(255, 218, 102, .88));
}

.held-item-icon::after {
  content: "";
  position: absolute;
  inset: -7px;
  border-radius: 50%;
  border: 2px solid rgba(255, 226, 116, .45);
  animation: heldAuraPulse 1.1s ease-in-out infinite;
}

.held-item-icon.is-urgent {
  border-color: #ff5669;
  box-shadow: 0 0 0 4px rgba(255, 86, 105, .18), 0 0 18px rgba(255, 86, 105, .50), 3px 3px 0 rgba(0,0,0,.25);
  animation: heldItemBob .55s ease-in-out infinite, urgentHeldPulse .45s ease-in-out infinite;
}

.crops-drop-button {
  min-width: 150px;
  text-align: center;
}

.crops-drop-button.is-active {
  border-color: var(--gold-500);
  color: var(--gold-300);
  box-shadow: 0 0 0 3px rgba(240, 200, 64, .18), 4px 4px 0 rgba(0,0,0,.24);
}

.crops-drop-button:disabled {
  opacity: .42;
  cursor: not-allowed;
  filter: grayscale(.35);
}

.crops-gameover-card {
  position: relative;
  overflow: hidden;
}

.crops-gameover-card h1,
.crops-gameover-card p,
.crops-gameover-card .crops-fail-actions,
.crops-gameover-card > img {
  position: relative;
  z-index: 2;
}

.gameover-hearts {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.gameover-hearts span {
  position: absolute;
  left: calc((var(--i) * 37px) % 100%);
  bottom: -28px;
  color: rgba(255, 120, 160, .78);
  font-size: 24px;
  text-shadow: 2px 2px 0 rgba(43, 21, 8, .80), 0 0 10px rgba(255, 120, 160, .45);
  animation: gameoverHeartFloat calc(2.2s + (var(--i) * .12s)) linear infinite;
  animation-delay: calc(var(--i) * -.21s);
}

.crop-float-text--bad { color: #ff8fa2; }
.crop-float-text--good { color: #9cf27c; }

@keyframes urgentPlotPulse { 0%, 100% { opacity: .64; } 50% { opacity: 1; } }
@keyframes urgentHeldPulse { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.08); } }
@keyframes rushPulse { 0%, 100% { opacity: .20; } 50% { opacity: .42; } }
@keyframes readyGlowPulse { 0%, 100% { opacity: .30; } 50% { opacity: .56; } }
@keyframes readyWiggle { 0%, 100% { margin-left: 0; } 25% { margin-left: -2px; } 75% { margin-left: 2px; } }
@keyframes abigailShadowFlicker { 0%, 100% { opacity: .74; transform: scale(1); } 50% { opacity: .92; transform: scale(1.035); } }
@keyframes heldAuraPulse { 0%, 100% { opacity: .20; transform: scale(.88); } 50% { opacity: .62; transform: scale(1.08); } }
@keyframes stationAlertBounce { 0%, 100% { margin-top: 0; transform: translateX(-50%) scale(1); } 50% { margin-top: -7px; transform: translateX(-50%) scale(1.08); } }
@keyframes gameoverHeartFloat {
  0% { transform: translateY(0) translateX(0) rotate(-8deg) scale(.75); opacity: 0; }
  12% { opacity: .9; }
  100% { transform: translateY(-430px) translateX(36px) rotate(14deg) scale(1.18); opacity: 0; }
}

/* V1.66 — sem quadrados estranhos */
.crops-map-stage.is-rush .crops-danger-vignette{opacity:.34;animation:rushPulse .75s ease-in-out infinite}
.crops-map-stage.is-time-critical .crops-danger-vignette{opacity:.62;animation:rushPulse .38s ease-in-out infinite}

.crop-zone--overcooked{width:var(--plot-w,8.55%);height:var(--plot-h,13.15%);transform:translate(-50%,-50%);background:transparent}
.crop-zone--overcooked::before{inset:0;border-width:0;border-radius:2px;background:transparent;box-shadow:none}
.crop-zone--overcooked::after{content:"";position:absolute;inset:0;z-index:11;pointer-events:none;border-radius:2px;opacity:0;mix-blend-mode:screen;transition:opacity .18s ease,background .18s ease}
.crop-state-dry::after{opacity:0}
.crop-state-seeded::after{opacity:.18;background:radial-gradient(circle at 50% 52%,rgba(255,130,80,.35),transparent 52%)}
.crop-state-growing::after{opacity:.20;background:radial-gradient(circle,rgba(110,255,120,.45),transparent 60%)}
.crop-state-ready::after{opacity:.34;background:radial-gradient(circle,rgba(255,235,110,.60),transparent 58%);animation:readyGlowPulse .78s ease-in-out infinite}

.crop-zone.is-recommended::before,.crop-zone.is-near::before{border-width:2px;border-style:solid;border-color:rgba(255,218,88,.58);box-shadow:0 0 10px rgba(255,218,88,.20)}
.crop-zone.is-urgent::before{border-width:3px;border-style:solid;border-color:rgba(255,86,105,.95);box-shadow:0 0 0 4px rgba(255,86,105,.17),0 0 22px rgba(255,86,105,.38);animation:urgentPlotPulse .42s ease-in-out infinite}

.crop-zone--overcooked .crop-plant{top:58%}
.crop-zone--overcooked .crop-label{bottom:-7px;font-size:clamp(9px,.8vw,12px)}
.crop-zone--overcooked .crop-need{top:5px;left:50%;width:24px;height:24px;border:0;background:transparent;box-shadow:none;transform:translateX(-50%);filter:drop-shadow(2px 2px 0 rgba(0,0,0,.55)) drop-shadow(0 0 7px rgba(255,224,92,.55))}
.crop-zone--overcooked .crop-need img{width:24px;height:24px}

.crop-station--seedBag{width:5.8%;height:8.8%}
.crop-station--seedBag::before{inset:4% 8% 8%}
.crop-station--seedBag .crop-station__icon{width:54px;height:54px;top:50%;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.38))}
.crop-station--seedBag .crop-station__icon img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.crop-station--seedBag .crop-label,.crop-zone.is-urgent .crop-label,.crop-station.is-delivery-target .crop-label,.crop-station.is-near .crop-label,.crop-zone.is-near .crop-label{color:#ffe36d}

.held-item-icon{width:30px;height:30px;top:-24px;border:0;background:transparent;box-shadow:none;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.55)) drop-shadow(0 0 7px rgba(255,224,92,.45))}
.held-item-icon::after{content:none}
.held-item-icon img{width:30px;height:30px;object-fit:contain;image-rendering:pixelated}
.held-item-icon.is-urgent{border:0;box-shadow:none;animation:heldItemBob .55s ease-in-out infinite,urgentHeldPulse .45s ease-in-out infinite;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.55)) drop-shadow(0 0 10px rgba(255,86,105,.65))}

.crop-station--basket .crop-station__icon{width:50px;height:50px;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.30)) saturate(1.12) brightness(1.04)}
.crop-station--basket.is-delivery-target::before{border-color:rgba(255,224,92,.96);box-shadow:0 0 0 5px rgba(255,224,92,.18),0 0 24px rgba(255,224,92,.48);animation:recommendedPulse .55s ease-in-out infinite}
.station-alert{position:absolute;z-index:24;left:50%;top:-20px;width:26px;height:36px;transform:translateX(-50%);display:grid;place-items:center;filter:drop-shadow(0 0 8px rgba(255,224,92,.72)) drop-shadow(2px 2px 0 rgba(0,0,0,.36));animation:stationAlertBounce .45s ease-in-out infinite}
.station-alert img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}

.crop-state-ready .crop-plant{filter:drop-shadow(0 0 8px rgba(255,228,98,.48)) drop-shadow(2px 3px 0 rgba(0,0,0,.28)) saturate(1.25) brightness(1.08);animation:cropRipePulse .72s ease-in-out infinite,readyWiggle .54s ease-in-out infinite}
.crop-shadow--abigail{opacity:.72;filter:hue-rotate(48deg) saturate(2.15) brightness(.68) contrast(1.25) drop-shadow(0 0 12px rgba(130,64,255,.74)) drop-shadow(3px 4px 0 rgba(0,0,0,.34))}
.crop-shadow--abigail img{animation:shadowFloat 1.05s ease-in-out infinite,abigailShadowFlicker .56s steps(2,end) infinite}
.crops-drop-button{min-width:150px;text-align:center}
.crops-drop-button.is-active{border-color:var(--gold-500);color:var(--gold-300);box-shadow:0 0 0 3px rgba(240,200,64,.18),4px 4px 0 rgba(0,0,0,.24)}
.crops-drop-button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.35)}

.crops-gameover-card{position:relative;overflow:hidden}
.crops-gameover-card h1,.crops-gameover-card p,.crops-gameover-card .crops-fail-actions,.crops-gameover-card>img{position:relative;z-index:2}
.gameover-hearts{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.gameover-hearts span{position:absolute;left:calc((var(--i)*37px)%100%);bottom:-28px;color:rgba(255,120,160,.78);font-size:24px;text-shadow:2px 2px 0 rgba(43,21,8,.80),0 0 10px rgba(255,120,160,.45);animation:gameoverHeartFloat calc(2.2s + (var(--i)*.12s)) linear infinite;animation-delay:calc(var(--i)*-.21s)}
.crop-float-text--bad{color:#ff8fa2}.crop-float-text--good{color:#9cf27c}

@keyframes urgentPlotPulse{0%,100%{opacity:.64}50%{opacity:1}}
@keyframes urgentHeldPulse{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.08)}}
@keyframes rushPulse{0%,100%{opacity:.20}50%{opacity:.42}}
@keyframes readyGlowPulse{0%,100%{opacity:.30}50%{opacity:.56}}
@keyframes readyWiggle{0%,100%{margin-left:0}25%{margin-left:-2px}75%{margin-left:2px}}
@keyframes abigailShadowFlicker{0%,100%{opacity:.74;transform:scale(1)}50%{opacity:.92;transform:scale(1.035)}}
@keyframes stationAlertBounce{0%,100%{margin-top:0;transform:translateX(-50%) scale(1)}50%{margin-top:-7px;transform:translateX(-50%) scale(1.08)}}
@keyframes gameoverHeartFloat{0%{transform:translateY(0) translateX(0) rotate(-8deg) scale(.75);opacity:0}12%{opacity:.9}100%{transform:translateY(-430px) translateX(36px) rotate(14deg) scale(1.18);opacity:0}}

/* V1.67 — CSS limpo da plantação */
.crops-map-stage.is-rush .crops-danger-vignette{opacity:.34;animation:rushPulse .75s ease-in-out infinite}
.crops-map-stage.is-time-critical .crops-danger-vignette{opacity:.62;animation:rushPulse .38s ease-in-out infinite}

.crop-zone--overcooked{width:var(--plot-w,8.55%);height:var(--plot-h,13.15%);transform:translate(-50%,-50%);background:transparent}
.crop-zone--overcooked::before{inset:0;border-width:0;border-radius:2px;background:transparent;box-shadow:none}
.crop-zone--overcooked::after{content:"";position:absolute;inset:0;z-index:11;pointer-events:none;border-radius:2px;opacity:0;mix-blend-mode:screen;transition:opacity .18s ease,background .18s ease}

.crop-state-dry::after{opacity:0}
.crop-state-seeded::after{opacity:.18;background:radial-gradient(circle at 50% 52%,rgba(255,130,80,.35),transparent 52%)}
.crop-state-growing::after{opacity:.20;background:radial-gradient(circle,rgba(110,255,120,.45),transparent 60%)}
.crop-state-ready::after{opacity:.34;background:radial-gradient(circle,rgba(255,235,110,.60),transparent 58%);animation:readyGlowPulse .78s ease-in-out infinite}

.crop-zone.is-recommended::before,.crop-zone.is-near::before{border-width:2px;border-style:solid;border-color:rgba(255,218,88,.58);box-shadow:0 0 10px rgba(255,218,88,.20)}
.crop-zone.is-urgent::before{border-width:3px;border-style:solid;border-color:rgba(255,86,105,.95);box-shadow:0 0 0 4px rgba(255,86,105,.17),0 0 22px rgba(255,86,105,.38);animation:urgentPlotPulse .42s ease-in-out infinite}

.crop-zone--overcooked .crop-plant{top:58%}
.crop-zone--overcooked .crop-label{bottom:-7px;font-size:clamp(9px,.8vw,12px)}
.crop-zone--overcooked .crop-need{top:5px;left:50%;width:24px;height:24px;border:0;background:transparent;box-shadow:none;transform:translateX(-50%);filter:drop-shadow(2px 2px 0 rgba(0,0,0,.55)) drop-shadow(0 0 7px rgba(255,224,92,.55))}
.crop-zone--overcooked .crop-need img{width:24px;height:24px}

.crop-station--seedBag{width:5.8%;height:8.8%}
.crop-station--seedBag::before{inset:4% 8% 8%}
.crop-station--seedBag .crop-station__icon{width:54px;height:54px;top:50%;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.38))}
.crop-station--seedBag .crop-station__icon img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.crop-station--seedBag .crop-label,.crop-zone.is-urgent .crop-label,.crop-station.is-delivery-target .crop-label,.crop-station.is-near .crop-label,.crop-zone.is-near .crop-label{color:#ffe36d}

.held-item-icon{width:30px;height:30px;top:-24px;border:0;background:transparent;box-shadow:none;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.55)) drop-shadow(0 0 7px rgba(255,224,92,.45))}
.held-item-icon::after{content:none}
.held-item-icon img{width:30px;height:30px;object-fit:contain;image-rendering:pixelated}
.held-item-icon.is-urgent{border:0;box-shadow:none;animation:heldItemBob .55s ease-in-out infinite,urgentHeldPulse .45s ease-in-out infinite;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.55)) drop-shadow(0 0 10px rgba(255,86,105,.65))}

.crop-station--basket .crop-station__icon{width:50px;height:50px;filter:drop-shadow(2px 3px 0 rgba(0,0,0,.30)) saturate(1.12) brightness(1.04)}
.crop-station--basket.is-delivery-target::before{border-color:rgba(255,224,92,.96);box-shadow:0 0 0 5px rgba(255,224,92,.18),0 0 24px rgba(255,224,92,.48);animation:recommendedPulse .55s ease-in-out infinite}

.station-alert{position:absolute;z-index:24;left:50%;top:-20px;width:26px;height:36px;transform:translateX(-50%);display:grid;place-items:center;filter:drop-shadow(0 0 8px rgba(255,224,92,.72)) drop-shadow(2px 2px 0 rgba(0,0,0,.36));animation:stationAlertBounce .45s ease-in-out infinite}
.station-alert img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}

.crop-state-ready .crop-plant{filter:drop-shadow(0 0 8px rgba(255,228,98,.48)) drop-shadow(2px 3px 0 rgba(0,0,0,.28)) saturate(1.25) brightness(1.08);animation:cropRipePulse .72s ease-in-out infinite,readyWiggle .54s ease-in-out infinite}
.crop-shadow--abigail{opacity:.72;filter:hue-rotate(48deg) saturate(2.15) brightness(.68) contrast(1.25) drop-shadow(0 0 12px rgba(130,64,255,.74)) drop-shadow(3px 4px 0 rgba(0,0,0,.34))}
.crop-shadow--abigail img{animation:shadowFloat 1.05s ease-in-out infinite,abigailShadowFlicker .56s steps(2,end) infinite}

.crops-drop-button{min-width:150px;text-align:center}
.crops-drop-button.is-active{border-color:var(--gold-500);color:var(--gold-300);box-shadow:0 0 0 3px rgba(240,200,64,.18),4px 4px 0 rgba(0,0,0,.24)}
.crops-drop-button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.35)}

.crops-gameover-card{position:relative;overflow:hidden}
.crops-gameover-card h1,.crops-gameover-card p,.crops-gameover-card .crops-fail-actions,.crops-gameover-card>img{position:relative;z-index:2}
.gameover-hearts{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.gameover-hearts span{position:absolute;left:calc((var(--i)*37px)%100%);bottom:-28px;color:rgba(255,120,160,.78);font-size:24px;text-shadow:2px 2px 0 rgba(43,21,8,.80),0 0 10px rgba(255,120,160,.45);animation:gameoverHeartFloat calc(2.2s + (var(--i)*.12s)) linear infinite;animation-delay:calc(var(--i)*-.21s)}

.crop-float-text--bad{color:#ff8fa2}.crop-float-text--good{color:#9cf27c}

@keyframes urgentPlotPulse{0%,100%{opacity:.64}50%{opacity:1}}
@keyframes urgentHeldPulse{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.08)}}
@keyframes rushPulse{0%,100%{opacity:.20}50%{opacity:.42}}
@keyframes readyGlowPulse{0%,100%{opacity:.30}50%{opacity:.56}}
@keyframes readyWiggle{0%,100%{margin-left:0}25%{margin-left:-2px}75%{margin-left:2px}}
@keyframes abigailShadowFlicker{0%,100%{opacity:.74;transform:scale(1)}50%{opacity:.92;transform:scale(1.035)}}
@keyframes stationAlertBounce{0%,100%{margin-top:0;transform:translateX(-50%) scale(1)}50%{margin-top:-7px;transform:translateX(-50%) scale(1.08)}}
@keyframes gameoverHeartFloat{0%{transform:translateY(0) translateX(0) rotate(-8deg) scale(.75);opacity:0}12%{opacity:.9}100%{transform:translateY(-430px) translateX(36px) rotate(14deg) scale(1.18);opacity:0}}



/* V1.70 final: canteiros fechados e fantasmas menos bruscos */
.crops-map-bg {
  object-fit: fill;
}

.crop-zone--overcooked {
  width: var(--plot-w, 8.02%) !important;
  height: var(--plot-h, 12.45%) !important;
  transform: translate(-50%, -50%) !important;
  background: transparent !important;
}

.crop-zone--overcooked::before {
  inset: 0 !important;
  border-width: 0 !important;
  border-radius: 2px !important;
  background: transparent !important;
  box-shadow: none !important;
}

.crop-zone.is-near::before,
.crop-zone.is-recommended::before {
  border: 2px solid rgba(255, 218, 88, .42) !important;
  box-shadow: 0 0 8px rgba(255, 218, 88, .16) !important;
}

.crop-zone.is-urgent::before {
  border: 3px solid rgba(255, 86, 105, .88) !important;
  box-shadow: 0 0 0 3px rgba(255, 86, 105, .14), 0 0 18px rgba(255, 86, 105, .30) !important;
}

.crop-zone--overcooked .crop-label {
  bottom: -7px !important;
}

.crop-zone--overcooked .crop-need {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.crop-station--basket .crop-station__icon {
  display: none !important;
}

.crop-station--basket::before {
  display: none !important;
}

.crop-station--basket.is-delivery-target::before {
  display: block !important;
  border: 2px solid rgba(255, 224, 92, .68) !important;
  box-shadow: 0 0 14px rgba(255, 224, 92, .28) !important;
}

.crop-shadow--abigail {
  transition: opacity .18s ease, transform .18s ease;
}



/* V1.75 — medidas finais dos canteiros, sem modo de calibração */
.crops-map-bg {
  object-fit: fill;
}

.crop-zone--overcooked {
  width: var(--plot-w, 7.41%) !important;
  height: var(--plot-h, 13.43%) !important;
  transform: translate(-50%, -50%) !important;
}

.crop-station--basket .crop-station__icon {
  display: none !important;
}


/* V1.76 — tutorial mais claro + destaque único nos canteiros */
.crops-tutorial--romantic {
  width: min(780px, calc(100% - 42px));
  padding: 22px 26px 24px;
}

.crops-tutorial__badge {
  display: inline-block;
  margin-bottom: 8px;
  padding: 5px 10px;
  border: 2px solid rgba(240, 200, 64, .56);
  background: rgba(96, 55, 28, .72);
  color: var(--gold-300);
  font-size: 14px;
  text-transform: lowercase;
  box-shadow: 3px 3px 0 rgba(0,0,0,.20);
}

.crops-tutorial--romantic strong {
  margin-bottom: 8px;
}

.crops-tutorial__steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0;
  padding: 0;
  list-style: none;
}

.crops-tutorial__steps li {
  min-height: 92px;
  border: 3px solid var(--wood-900);
  background:
    linear-gradient(180deg, rgba(255, 230, 159, .14), rgba(71, 41, 20, .60));
  box-shadow: 3px 3px 0 rgba(0,0,0,.22);
  padding: 9px 8px;
  color: var(--cream-100);
  font-size: clamp(12px, 1.08vw, 15px);
  line-height: 1.22;
}

.crops-tutorial__steps b {
  display: block;
  margin-bottom: 5px;
  color: var(--gold-300);
  font-size: 18px;
}

.crops-tutorial__steps span {
  color: #ffe36d;
}

/* Fica só UM destaque: nada de tracejado + contínuo ao mesmo tempo. */
.crop-zone--overcooked::before {
  border-style: solid !important;
  outline: 0 !important;
}

.crop-zone--overcooked::after {
  border: 0 !important;
  outline: 0 !important;
}

.crop-zone.is-near::before,
.crop-zone.is-recommended::before {
  border: 2px solid rgba(255, 226, 116, .58) !important;
  box-shadow: 0 0 12px rgba(255, 226, 116, .22) !important;
  background: rgba(255, 226, 116, .035) !important;
}

.crop-zone.is-urgent::before {
  border: 3px solid rgba(255, 86, 105, .86) !important;
  box-shadow:
    0 0 0 3px rgba(255, 86, 105, .12),
    0 0 18px rgba(255, 86, 105, .30) !important;
  background: rgba(255, 86, 105, .045) !important;
}

.crop-zone.is-near.is-recommended::before {
  border-color: rgba(255, 226, 116, .78) !important;
}

.crop-zone--overcooked .crop-label {
  max-width: 110%;
  padding: 2px 4px;
  border-radius: 4px;
  background: rgba(43, 25, 10, .50);
  color: #ffe7a6;
  font-size: clamp(9px, .78vw, 12px);
  white-space: nowrap;
}

@media (max-width: 820px) {
  .crops-tutorial__steps {
    grid-template-columns: 1fr;
  }

  .crops-tutorial__steps li {
    min-height: unset;
  }
}


/* V1.77 — contorno único dos canteiros */
.crop-zone--overcooked,
.crop-zone--overcooked:focus,
.crop-zone--overcooked:focus-visible,
.crop-zone--overcooked:hover {
  outline: none !important;
  box-shadow: none !important;
}

.crop-zone--overcooked::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  border: 0 solid transparent !important;
  border-radius: 2px !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  animation: none;
}

.crop-zone--overcooked::after {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* só aparece o contorno que foi calibrado quando estiver perto ou for próximo alvo */
.crop-zone.is-near::before,
.crop-zone.is-recommended::before {
  border: 2px solid rgba(255, 226, 116, .70) !important;
  box-shadow: 0 0 11px rgba(255, 226, 116, .20) !important;
  background: rgba(255, 226, 116, .025) !important;
}

/* urgência troca a cor do mesmo contorno, não cria outro retângulo */
.crop-zone.is-urgent::before {
  border: 3px solid rgba(255, 86, 105, .86) !important;
  box-shadow:
    0 0 0 3px rgba(255, 86, 105, .10),
    0 0 16px rgba(255, 86, 105, .28) !important;
  background: rgba(255, 86, 105, .04) !important;
}

.crop-zone.is-near.is-recommended::before {
  border-color: rgba(255, 226, 116, .82) !important;
}

.crop-zone.is-near.is-urgent::before,
.crop-zone.is-recommended.is-urgent::before {
  border-color: rgba(255, 86, 105, .90) !important;
}


/* V1.78 — remove o retângulo tracejado de proximidade */
.crop-near-ring {
  display: none !important;
  visibility: hidden !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.crop-zone,
.crop-zone:hover,
.crop-zone:focus,
.crop-zone:focus-visible,
.crop-zone:active {
  outline: 0 !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
}

.crop-zone--overcooked {
  border: 0 !important;
}

.crop-zone--overcooked::before {
  border-style: solid !important;
  outline: 0 !important;
  box-shadow: none;
}

.crop-zone--overcooked::after {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* O único retângulo visível agora é o do próprio canteiro, quando perto/recomendado. */
.crop-zone.is-near::before,
.crop-zone.is-recommended::before {
  border: 2px solid rgba(255, 226, 116, .72) !important;
  box-shadow: 0 0 10px rgba(255, 226, 116, .22) !important;
  background: rgba(255, 226, 116, .025) !important;
}

/* Urgente troca a cor do mesmo contorno. */
.crop-zone.is-urgent::before {
  border: 3px solid rgba(255, 86, 105, .86) !important;
  box-shadow: 0 0 14px rgba(255, 86, 105, .30) !important;
  background: rgba(255, 86, 105, .04) !important;
}

.crop-state-done {
  cursor: default !important;
}

.crop-state-done::before {
  border: 0 !important;
  box-shadow: none !important;
}

.crop-state-done::after {
  opacity: .28 !important;
  background: radial-gradient(circle, rgba(255, 226, 116, .38), transparent 60%) !important;
}

.crop-state-done .crop-label {
  color: #fff0b8 !important;
}
