/* Marquee scrolling animation */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.marquee-track {
  display: flex;
  width: max-content;
  animation: marquee 28s linear infinite;
  will-change: transform;
}
.marquee-track:hover { animation-play-state: paused; }

.font-heading {
  text-wrap: balance;
}

/* 1px grid overlay for hero sections */
.grid-overlay {
  background-image:
    linear-gradient(rgba(17,17,17,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(17,17,17,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
}

/* Hard shadow utility */
.shadow-hard { box-shadow: 4px 4px 0px #111111; }
.shadow-hard-accent { box-shadow: 4px 4px 0px #DEFF00; }

/* Chartreuse square bullet */
.bullet-sq li {
  position: relative;
  padding-left: 1.25rem;
}
.bullet-sq li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  background-color: #DEFF00;
  outline: 1px solid #111111;
}

/* Body base */
body {
  background-color: #FAF9F4;
  color: #1C1C1C;
  font-family: 'Outfit', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #FAF9F4; }
::-webkit-scrollbar-thumb { background: #D1D1C7; }

/* Firefox scrollbar */
html { scrollbar-color: #D1D1C7 #FAF9F4; scrollbar-width: thin; }

/* Focus ring */
:focus-visible { outline: 2px solid #111111; outline-offset: 2px; }

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

/* Sticky scroll-spy active state */
.spy-link { color: #9CA3AF; transition: color 200ms; }
.spy-link.active { color: #111111; font-weight: 700; }

/* Alpine x-cloak — prevents FOUC on Alpine-controlled elements */
[x-cloak] { display: none !important; }
