html { scroll-behavior: smooth; }

:root { --ov-fade-duration: 280ms; --ov-section-gap: 6rem; }

/* Page fade */
body.fade-enter { opacity: 0; }
body.fade-enter-active { opacity: 1; transition: opacity var(--ov-fade-duration) ease; }
body.fade-exit-active { opacity: 0; transition: opacity var(--ov-fade-duration) ease; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.fade-enter-active, body.fade-exit-active { transition: none !important; }
}

.reveal { opacity: 0; transform: translateY(12px); will-change: opacity, transform; }
.reveal.visible { opacity: 1; transform: none; transition: opacity 560ms ease-out, transform 560ms ease-out; }

/* Ensure footer is never visually suppressed */
footer, footer * { opacity: 1 !important; transform: none !important; }

html, body { margin: 0; height: 100%; }
body { min-height: 100vh; display: flex; flex-direction: column; }

.site-main { flex: 1 0 auto; padding-bottom: var(--ov-section-gap); background: inherit; }

footer { margin-top: 0 !important; margin-bottom: 0 !important; }

dl, dt, dd { margin-left: 0; padding-left: 0; }
dd { margin-inline-start: 0; }
