:root {
  --primary: #005c55;
  --primary-container: #0f766e;
  --on-primary: #ffffff;
  --surface: #f7f9fb;
  --on-surface: #191c1e;
  --on-surface-variant: #3e4947;
  --outline: #6e7977;
  --outline-variant: #bdc9c6;
}

html { scroll-behavior: smooth; }

/* iOS Safari: usa dvh al posto di vh per evitare overlap con la barra URL */
@supports (min-height: 100dvh) {
  .min-h-screen { min-height: 100dvh; }
}

/* Niente overflow orizzontale indesiderato */
html, body { max-width: 100%; overflow-x: hidden; }

body {
  font-family: 'Inter', ui-sans-serif, system-ui;
  background-color: var(--surface);
  color: var(--on-surface);
  -webkit-font-smoothing: antialiased;
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f2f4f6; }
::-webkit-scrollbar-thumb { background: var(--primary-container); border-radius: 3px; }

/* Animations */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes float {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-8px) rotate(0.5deg); }
  66% { transform: translateY(-4px) rotate(-0.5deg); }
}
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0,92,85,0.3); }
  50% { box-shadow: 0 0 0 10px rgba(0,92,85,0); }
}
@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(16px); }
  to { opacity: 1; transform: translateX(0); }
}

/* Reveal */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.08s; }
.reveal-delay-2 { transition-delay: 0.16s; }
.reveal-delay-3 { transition-delay: 0.24s; }
.reveal-delay-4 { transition-delay: 0.32s; }
.reveal-delay-5 { transition-delay: 0.40s; }
.reveal-delay-6 { transition-delay: 0.48s; }

/* Float animation */
.animate-float {
  animation: float 6s ease-in-out infinite;
}

/* Pulse glow CTA */
.animate-pulse-glow {
  animation: pulseGlow 2s ease-in-out infinite;
}

/* Shimmer text */
.shimmer-text {
  background: linear-gradient(90deg, var(--on-surface) 0%, var(--primary-container) 50%, var(--on-surface) 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: shimmer 3s linear infinite;
}

/* Gradient bg */
.bg-hero-gradient {
  background: radial-gradient(ellipse 80% 80% at 50% -20%, rgba(0,92,85,0.06) 0%, transparent 60%),
              linear-gradient(180deg, #ffffff 0%, #f7f9fb 100%);
}

/* Card hover */
.card-hover {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card-hover:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 30px -5px rgba(0,92,85,0.12);
}

/* Mock screen frame */
.screen-frame {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 25px 60px -15px rgba(0,92,85,0.2), 0 0 0 1px rgba(0,0,0,0.06);
}

/* Scrolled header */
header.scrolled {
  box-shadow: 0 2px 20px -5px rgba(25,28,30,0.1);
}
