/* Smooth scrolling */
html { scroll-behavior: smooth; }

/* Theme: light/dark */
:root { color-scheme: light; }
html.theme-light { color-scheme: light; }
html.theme-dark { color-scheme: dark; }
html.theme-dark body { background-color: #0f172a; color: #e2e8f0; }
html.theme-dark .bg-white { background-color: #0b1220 !important; }
html.theme-dark .bg-slate-50 { background-color: #0f172a !important; }
html.theme-dark [class*="bg-white/"] { background-color: rgba(11, 18, 32, 0.85) !important; }
html.theme-dark .text-slate-900 { color: #f1f5f9 !important; }
html.theme-dark .text-slate-800 { color: #e2e8f0 !important; }
html.theme-dark .text-slate-700 { color: #cbd5f5 !important; }
html.theme-dark .text-slate-600 { color: #cbd5e1 !important; }
html.theme-dark .text-slate-500 { color: #94a3b8 !important; }
html.theme-dark .text-navy-900 { color: #e2e8f0 !important; }
html.theme-dark .text-navy-800 { color: #cbd5e1 !important; }
html.theme-dark .text-navy-700 { color: #cbd5e1 !important; }
html.theme-dark .border-slate-200 { border-color: #1f2937 !important; }
html.theme-dark .border-slate-300 { border-color: #334155 !important; }
html.theme-dark .bg-navy-50 { background-color: #0b1220 !important; }
html.theme-dark .bg-white\/5 { background-color: rgba(255,255,255,.06) !important; }
html.theme-dark .bg-white\/10 { background-color: rgba(255,255,255,.10) !important; }
html.theme-dark .bg-white\/15 { background-color: rgba(255,255,255,.12) !important; }
html.theme-dark .bg-white\/25 { background-color: rgba(255,255,255,.18) !important; }
html.theme-dark .shadow-soft { box-shadow: 0 12px 30px rgba(0,0,0,.45) !important; }
html.theme-dark .bg-navy-900 { background-color: #0b1f3a !important; }
html.theme-dark .hover\\:bg-slate-50:hover { background-color: rgba(255,255,255,.06) !important; }
html.theme-dark [class*="border-white/"] { border-color: rgba(255,255,255,.10) !important; }
html.theme-dark input,
html.theme-dark textarea {
  background-color: #0b1220 !important;
  border-color: #1f2937 !important;
  color: #e2e8f0 !important;
}

/* Subtle grid background */
.grid-bg {
  background-image:
    linear-gradient(to right, rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 24px 24px;
}

/* Fade-in animation */
.reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .6s ease, transform .6s ease;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Focus ring */
:focus-visible {
  outline: 3px solid rgba(47,92,255,.45);
  outline-offset: 2px;
}
