:root {
  --color-primary: #2F3E36;
  --color-secondary: #6B7F71;
  --color-accent: #E07B54;
}

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

::selection { background: rgba(224, 123, 84, 0.25); }

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

.focus-ring {
  outline: none;
}
.focus-ring:focus-visible {
  box-shadow: 0 0 0 4px rgba(224, 123, 84, 0.25);
}

.glass {
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(10px);
}

.btn-accent {
  border-radius: 0.5rem;
  background: var(--color-accent);
  color: #fff;
  font-weight: 600;
}

.btn-accent:hover { opacity: 0.95; }

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

.form-hint {
  color: rgb(239, 68, 68);
}

#mobile-menu a:focus-visible,
#mobile-menu button:focus-visible,
header a:focus-visible,
header button:focus-visible,
footer a:focus-visible,
footer button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(224, 123, 84, 0.22);
  border-radius: 0.75rem;
}