/* Decorative texture/noise overlay for cinematic warmth */
.grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.04;
  z-index: 200;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='200' height='200' filter='url(%23n)' opacity='0.5'/></svg>");
}

/* Decorative section ornament */
.ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2rem;
  color: var(--bone-dim);
  font-size: 0.6rem;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  margin-block: clamp(2rem, 5vw, 4rem);
}
.ornament::before,
.ornament::after {
  content: "";
  flex: 1;
  max-width: 8rem;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--line-strong), transparent);
}

/* Marquee-style ticker for above-fold mood */
.ticker {
  overflow: hidden;
  border-block: 1px solid var(--line);
  padding-block: 1.4rem;
  background: var(--ink-deep);
}
.ticker__track {
  display: flex;
  gap: 4rem;
  animation: ticker-scroll 38s linear infinite;
  white-space: nowrap;
  width: max-content;
}
.ticker__item {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--fs-step-3);
  color: var(--bone-soft);
}
.ticker__item::after {
  content: "✦";
  margin-left: 4rem;
  color: var(--terracotta);
  font-style: normal;
}
@keyframes ticker-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .ticker__track { animation: none; }
}
