html { scroll-behavior: smooth; }

body {
  font-family: 'Work Sans', sans-serif;
  background-color: #E8D9B7;
}

.font-display { font-family: 'Oswald', sans-serif; }

:focus-visible {
  outline: 3px solid #C23B22;
  outline-offset: 3px;
}

/* Diagonal hairlines evoking the flat-top grill (chapa) */
.grill-texture {
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.045) 0px,
    rgba(255, 255, 255, 0.045) 2px,
    transparent 2px,
    transparent 15px
  );
}

/* Faint grain evoking kraft/butcher paper */
.paper-grain {
  background-image: radial-gradient(circle, rgba(30, 22, 15, 0.07) 1px, transparent 1px);
  background-size: 15px 15px;
}

/* Rubber ink-stamp badge — the site's signature mark */
.stamp {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 3px solid currentColor;
  border-radius: 9999px;
  transform: rotate(-6deg);
}

.stamp::before {
  content: '';
  position: absolute;
  inset: 5px;
  border: 1px solid currentColor;
  border-radius: 9999px;
  opacity: 0.55;
}

@keyframes stamp-in {
  0%   { opacity: 0; transform: rotate(-6deg) scale(2.4); }
  55%  { opacity: 1; transform: rotate(-6deg) scale(0.9); }
  100% { opacity: 1; transform: rotate(-6deg) scale(1); }
}

.stamp-animate { animation: stamp-in 0.6s cubic-bezier(.22,.85,.32,1) 0.2s both; }

@media (prefers-reduced-motion: reduce) {
  .stamp-animate { animation: none; }
}

/* Torn / perforated paper edge under the promo band */
.torn-edge {
  height: 14px;
  background-image: linear-gradient(-45deg, #E8D9B7 8px, transparent 0), linear-gradient(45deg, #E8D9B7 8px, transparent 0);
  background-size: 16px 24px;
  background-repeat: repeat-x;
  background-position: top;
}

.nav-link {
  position: relative;
}

.nav-link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -4px;
  height: 2px;
  background: currentColor;
  transition: right 0.2s ease;
}

.nav-link:hover::after,
.nav-link[aria-current="page"]::after {
  right: 0;
}

[id] { scroll-margin-top: 90px; }
