:root {
  --color-primary: #2D2D2D;
  --color-secondary: #6B6B6B;
  --color-accent: #F5A623;
}

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

::selection { background: rgba(245, 166, 35, 0.28); }

[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));
}

.glass {
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.focus-ring:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

button, a { -webkit-tap-highlight-color: transparent; }

.form-error {
  border-color: rgba(239, 68, 68, 0.55) !important;
  background: rgba(254, 242, 242, 0.75) !important;
}

.helper-text {
  font-size: 0.75rem;
  line-height: 1.2;
}

.badge-soft {
  background: rgba(245, 166, 35, 0.18);
  color: var(--color-primary);
}

.shadow-soft {
  box-shadow: 0 18px 50px rgba(17, 24, 39, 0.10);
}

#cookie-consent .shadow-2xl {
  box-shadow: 0 30px 70px rgba(17, 24, 39, 0.22);
}