/* Base */
html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }

/* Utility: glass background used in header/button */
.glass { backdrop-filter: saturate(180%) blur(10px); background: rgba(255,255,255,0.08); }

/* Fixed header contrast handling */
.site-header {
  background: linear-gradient(to bottom, rgba(14,44,74,0.8), rgba(14,44,74,0.45));
  backdrop-filter: saturate(160%) blur(8px);
}
.site-header.scrolled {
  background: rgba(14,44,74,0.95);
  box-shadow: 0 6px 24px -8px rgba(2,6,23,0.45);
}
.site-header a { color: #fff; }

/* Equal-height grids and cards */
.grid-equal { align-items: stretch; }
.grid-equal > * { height: 100%; }
.card { display: flex; flex-direction: column; height: 100%; }
.card ul { margin-top: 0.75rem; }
.card a.mt-8 { margin-top: auto; }

/* Responsive fixes for mobile nav panel opened via script */
#navLinks.absolute { width: calc(100% - 2rem); max-width: 20rem; }
#navLinks.absolute a { display: block; }

/* Image gallery uniform sizing fallback (in case of slow Tailwind load) */
#work img { aspect-ratio: 4/3; object-fit: cover; }

/* Section spacing consistency */
section { scroll-margin-top: 90px; }

/* Buttons hover/active refinements */
button, .btn { transition: transform .15s ease, filter .2s ease; }
button:hover, .btn:hover { transform: translateY(-1px); }
button:active, .btn:active { transform: translateY(0); filter: brightness(.98); }

/* Form contrast improvements */
input[type="text"], input[type="email"], textarea {
  background-color: #fff;
  color: #0f172a; /* slate-900 */
  border-color: #cbd5e1; /* slate-300 */
}
input::placeholder, textarea::placeholder {
  color: #64748b; /* slate-500 for better readability */
  opacity: 1;
}
input:focus, textarea:focus {
  border-color: #14B8A6; /* teal */
  box-shadow: 0 0 0 3px rgba(20,184,166,0.25);
  outline: none;
}
