/* File: assets/css/base.css */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--page);
  color: var(--text);
  font-family: var(--sans);
  line-height: 1.65;
  overflow-x: hidden;
  transition: background-color 180ms ease, color 180ms ease;
}
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
::selection { background: var(--blue); color: #ffffff; }
:focus-visible { outline: 3px solid #93c5fd; outline-offset: 3px; }

/* Legacy backdrop elements from the previous design — retired */
.noise, .orb { display: none; }

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1);
}
.reveal.visible { opacity: 1; transform: translateY(0); }

@keyframes pulse {
  50% { opacity: .45; transform: scale(.75); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
