html { background: #05100B; scroll-padding-top: 6rem; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: #C5A880; color: #05100B; }

/* Film grain for hero canvases */
.grain::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .05;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}

/* Brass hairline that fades out */
.rule { height: 1px; background: linear-gradient(90deg, #C5A880 0%, rgba(197,168,128,.15) 60%, transparent 100%); }

/* Navigation underline */
.nav-link { position: relative; }
.nav-link::after { content: ""; position: absolute; left: 0; bottom: -6px; width: 0; height: 1px; background: #C5A880; transition: width .35s ease; }
.nav-link:hover::after, .nav-link.active::after { width: 100%; }
.nav-link.active { color: #F4F5F0; }

/* Editorial text link with hairline underline */
.link-arrow {
  display: inline-flex; align-items: center; gap: .75rem;
  padding-bottom: .35rem; border-bottom: 1px solid rgba(197,168,128,.45);
  color: #F4F5F0; font-size: .875rem; transition: border-color .3s ease, color .3s ease;
}
.link-arrow:hover { border-color: #C5A880; color: #C5A880; }
.link-arrow svg { width: 1rem; height: 1rem; color: #C5A880; transition: transform .3s ease; }
.link-arrow:hover svg { transform: translateX(3px); }
.link-arrow.down:hover svg { transform: translateY(3px); }
.link-arrow.brass { color: #C5A880; border-color: #C5A880; }
.link-arrow.brass:hover { color: #F4F5F0; border-color: #F4F5F0; }

/* Scroll reveal (only when JS is running) */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity .9s ease, transform .9s ease; }
.js .reveal.in { opacity: 1; transform: none; }

/* LP Portal modal */
#modal { transition: opacity .3s ease, visibility .3s; }
#modal[aria-hidden="true"] { opacity: 0; visibility: hidden; pointer-events: none; }
#modal .modal-panel { transition: transform .3s ease; }
#modal[aria-hidden="true"] .modal-panel { transform: translateY(10px); }

/* Underline-only form field */
.field { background: transparent; border: 0; border-bottom: 1px solid #182F24; color: #F4F5F0; border-radius: 0; }
.field::placeholder { color: rgba(158,171,162,.6); }
.field:focus { outline: none; border-bottom-color: #C5A880; }
.field:-webkit-autofill { -webkit-text-fill-color: #F4F5F0; transition: background-color 9999s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
}
