:root{--color-farm-green-main:#4caf50;--color-farm-green-dark:#2e7d32;--color-farm-green-light:#81c784;--color-sprout-yellow-green:#8bc34a;--color-sky-blue:#29b6f6;--color-sky-blue-dark:#0288d1;--color-sky-bg:#e1f5fe;--color-soil-dry:#8d6e63;--color-soil-dry-light:#a1887f;--color-soil-wet:#4e342e;--color-soil-border:#3e2723;--color-withered-gray:#78909c;--color-coin-gold:#ffc107;--color-coin-gold-dark:#ffa000;--color-star-yellow:#ffeb3b;--color-surface-card:#fffdf9;--color-surface-card-hover:#fff8e7;--color-surface-overlay:#21212199;--color-text-primary:#2d231e;--color-text-muted:#6d5d55;--color-text-inverted:#fff;--color-feedback-error:#e53935;--color-feedback-error-dark:#c62828;--color-feedback-success:#43a047;--color-feedback-success-dark:#2e7d32;--color-feedback-warning:#fb8c00;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-full:9999px;--font-family:"Fredoka", "Quicksand", "Nunito", system-ui, -apple-system, sans-serif;--duration-instant:.1s;--duration-quick:.2s;--duration-standard:.3s;--duration-feedback:.6s;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.25, .1, .25, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}body{font-family:var(--font-family);background:var(--color-sky-bg);color:var(--color-text-primary);font-variant-numeric:tabular-nums;min-height:100dvh;overflow-x:hidden}.btn-tactile{justify-content:center;align-items:center;gap:var(--space-xs);font-family:var(--font-family);border-radius:var(--radius-md);cursor:pointer;min-width:56px;min-height:56px;padding:var(--space-sm) var(--space-lg);color:var(--color-text-inverted);transition:transform var(--duration-instant), box-shadow var(--duration-instant), background-color var(--duration-quick);border:none;font-size:18px;font-weight:700;display:inline-flex;position:relative}.btn-tactile:active:not(:disabled){transform:translateY(4px)}.btn-tactile:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(40%)}.btn-primary{background-color:var(--color-farm-green-main);box-shadow:0 5px 0 var(--color-farm-green-dark)}.btn-primary:active:not(:disabled){box-shadow:0 1px 0 var(--color-farm-green-dark)}.btn-water{background-color:var(--color-sky-blue);box-shadow:0 5px 0 var(--color-sky-blue-dark)}.btn-water:active:not(:disabled){box-shadow:0 1px 0 var(--color-sky-blue-dark)}.btn-gold{background-color:var(--color-coin-gold);color:var(--color-text-primary);box-shadow:0 5px 0 var(--color-coin-gold-dark)}.btn-gold:active:not(:disabled){box-shadow:0 1px 0 var(--color-coin-gold-dark)}.btn-danger{background-color:var(--color-feedback-error);box-shadow:0 5px 0 var(--color-feedback-error-dark)}.btn-danger:active:not(:disabled){box-shadow:0 1px 0 var(--color-feedback-error-dark)}.btn-neutral{color:var(--color-text-primary);background-color:#e0d6cd;box-shadow:0 5px #bcaaa4}.btn-neutral:active:not(:disabled){box-shadow:0 1px #bcaaa4}.modal-overlay{background:var(--color-surface-overlay);-webkit-backdrop-filter:blur(8px);z-index:1000;padding:var(--space-md);animation:fadeIn var(--duration-quick) var(--ease-smooth);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-surface-card);border-radius:var(--radius-lg);max-width:90vw;max-height:90vh;padding:var(--space-xl);animation:popIn var(--duration-standard) var(--ease-spring);border:4px solid #efebe9;overflow-y:auto;box-shadow:0 16px 32px #00000040}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes shakeHorizontal{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.animate-shake{animation:shakeHorizontal var(--duration-feedback) ease-in-out}@keyframes pulseGold{0%,to{box-shadow:0 0 #ffc10766}50%{box-shadow:0 0 20px 6px #ffc107cc}}.animate-pulse-gold{animation:1.5s infinite pulseGold}@keyframes floatGentle{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-float{animation:2.5s ease-in-out infinite floatGentle}
