:root {
  --color-primary: #4A4039;
  --color-secondary: #9A8B7A;
  --color-accent: #D4A574;
  --page-bg: #FFFCF7;
  --footer-bg: #FBF7F0;
  --soft: rgba(212,165,116,0.12);
}

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
body { font-family: 'Work Sans', system-ui, sans-serif; }

[data-animate] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  will-change: opacity, transform;
}
[data-animate].is-visible {
  opacity: 1;
  transform: translateY(0);
}

.rotate-180 { transform: rotate(180deg); }

.container-safe {
  padding-left: max(1rem, env(safe-area-inset-left));
  padding-right: max(1rem, env(safe-area-inset-right));
}

.btn-glow {
  position: relative;
}
.btn-glow::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 16px;
  background: radial-gradient(120px 60px at 50% 0%, rgba(212,165,116,.35), transparent 70%);
  opacity: 0;
  transition: opacity .25s ease;
  z-index: -1;
}
.btn-glow:hover::after { opacity: 1; }

.input-invalid {
  border-color: rgba(239, 68, 68, 0.55) !important;
  box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.10) !important;
}

.helper-error {
  color: rgb(185, 28, 28);
  font-size: 0.875rem;
  margin-top: 0.25rem;
}

::selection {
  background: rgba(212,165,116,0.25);
}