/* ============================================================
   ARTHUR L. BERNSTEIN — design system (GeneratePress child theme)
   Cinematic / editorial. Near-black, bone, brass.
   Type: Fraunces (display serif) · Archivo (interface sans)
   Fonts are self-hosted variable latin subsets (SIL OFL).
   ============================================================ */

/* ---------- fonts (local, variable, latin subset) ---------- */
@font-face {
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url("../fonts/fraunces-normal-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Fraunces";
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url("../fonts/fraunces-italic-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Archivo";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/archivo-normal-latin.woff2") format("woff2");
}

:root {
  --bg-0: #0b0a08;
  --bg-1: #12100d;
  --bg-2: #1a1712;
  --line: rgba(236, 231, 221, 0.14);
  --line-soft: rgba(236, 231, 221, 0.08);
  --text: #ece7dd;
  --muted: #a89f8f;
  --dim: #756e60;
  --brass: #c2a15f;
  --brass-deep: #96773a;
  --oxblood: #6e2b26;
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --measure: 64ch;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --section: clamp(4.5rem, 10vw, 8.5rem);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
body {
  background: var(--bg-0);
  color: var(--text);
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }

/* film grain */
body::after {
  content: "";
  position: fixed;
  inset: -50%;
  width: 200%;
  height: 200%;
  pointer-events: none;
  z-index: 2000;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

::selection { background: var(--brass); color: var(--bg-0); }

/* ---------- type ---------- */
h1, h2, h3, .display {
  font-family: var(--serif);
  font-weight: 380;
  line-height: 1.04;
  letter-spacing: -0.015em;
  text-wrap: balance;
}
.display-xl { font-size: clamp(2.9rem, 9.5vw, 7.5rem); font-variation-settings: "opsz" 144; }
.display-lg { font-size: clamp(2.3rem, 6vw, 4.6rem); font-variation-settings: "opsz" 100; }
.display-md { font-size: clamp(1.7rem, 3.6vw, 2.7rem); }
.display-sm { font-size: clamp(1.3rem, 2.4vw, 1.75rem); }
.italic { font-style: italic; font-weight: 340; }

.kicker {
  font-family: var(--sans);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--brass);
}
.kicker--dim { color: var(--dim); }
.meta {
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.lede { font-size: clamp(1.15rem, 1.8vw, 1.4rem); line-height: 1.55; color: var(--muted); max-width: var(--measure); }
.prose { max-width: var(--measure); }
.prose p { margin-bottom: 1.35em; color: #cfc8ba; }
.prose p:last-child { margin-bottom: 0; }
.prose a { color: var(--brass); text-decoration-color: rgba(194,161,95,.4); text-underline-offset: 3px; }
.prose a:hover { text-decoration-color: var(--brass); }

/* ---------- layout ---------- */
.container { width: min(100% - 2 * var(--gutter), 1280px); margin-inline: auto; }
.container--wide { width: min(100% - 2 * var(--gutter), 1480px); margin-inline: auto; }
.container--narrow { width: min(100% - 2 * var(--gutter), 860px); margin-inline: auto; }
.section { padding-block: var(--section); }
.section + .section { padding-top: 0; }
.rule { border: 0; border-top: 1px solid var(--line-soft); }

.section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}
.section-head .num { font-family: var(--serif); font-style: italic; color: var(--dim); margin-right: 0.9rem; font-size: 0.9em; }

/* ---------- controls ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.95rem 1.7rem;
  border: 1px solid var(--brass-deep);
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.35s var(--ease), color 0.35s var(--ease), border-color 0.35s var(--ease);
}
.btn:hover { background: var(--brass); border-color: var(--brass); color: var(--bg-0); }
.btn--ghost { border-color: var(--line); color: var(--muted); }
.btn--ghost:hover { border-color: var(--text); background: transparent; color: var(--text); }
.btn .arrow { transition: transform 0.35s var(--ease); }
.btn:hover .arrow { transform: translateX(4px); }

.text-link {
  display: inline-flex; align-items: baseline; gap: 0.5rem;
  color: var(--brass);
  font-size: 0.78rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid rgba(194,161,95,.35);
  padding-bottom: 0.25rem;
  transition: border-color .3s var(--ease);
}
.text-link:hover { border-color: var(--brass); }

:is(a, button, input, textarea, select, summary):focus-visible {
  outline: 2px solid var(--brass);
  outline-offset: 3px;
  border-radius: 1px;
}

.skip-link {
  position: absolute; left: 1rem; top: -4rem; z-index: 3000;
  background: var(--brass); color: var(--bg-0);
  padding: 0.7rem 1.2rem; font-weight: 600; text-decoration: none;
  transition: top 0.2s;
}
.skip-link:focus { top: 1rem; }

/* ---------- header ---------- */
.site-header {
  position: fixed; inset-inline: 0; top: 0; z-index: 1000;
  transition: background 0.4s var(--ease), border-color 0.4s var(--ease), padding 0.4s var(--ease);
  border-bottom: 1px solid transparent;
}
.site-header.is-solid {
  background: rgba(11, 10, 8, 0.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom-color: var(--line-soft);
}
.header-inner {
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.4rem var(--gutter);
  transition: padding 0.4s var(--ease);
}
.site-header.is-solid .header-inner { padding-block: 0.9rem; }
.brand {
  font-family: var(--serif);
  font-size: 1.15rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  white-space: nowrap;
}
.brand .init { color: var(--brass); font-style: italic; }
.primary-nav ul { display: flex; gap: clamp(1.2rem, 2.5vw, 2.4rem); list-style: none; padding: 0; }
.primary-nav a {
  font-size: 0.74rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--muted); text-decoration: none;
  padding-block: 0.4rem;
  border-bottom: 1px solid transparent;
  transition: color 0.3s, border-color 0.3s;
}
.primary-nav a:hover { color: var(--text); }
.primary-nav a[aria-current="page"] { color: var(--brass); border-bottom-color: var(--brass); }

.primary-nav .nav-foot { display: none; }
.nav-toggle { display: none; z-index: 1200; padding: 0.6rem; margin: -0.6rem; }
.nav-toggle .bars { display: block; width: 26px; height: 2px; background: var(--text); position: relative; transition: background 0.2s; }
.nav-toggle .bars::before, .nav-toggle .bars::after {
  content: ""; position: absolute; left: 0; width: 26px; height: 2px; background: var(--text);
  transition: transform 0.3s var(--ease), top 0.3s var(--ease);
}
.nav-toggle .bars::before { top: -8px; }
.nav-toggle .bars::after { top: 8px; }
.nav-toggle[aria-expanded="true"] .bars { background: transparent; }
.nav-toggle[aria-expanded="true"] .bars::before { top: 0; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .bars::after { top: 0; transform: rotate(-45deg); }

@media (max-width: 820px) {
  .nav-toggle { display: block; }
  .primary-nav {
    position: fixed; inset: 0; z-index: 1100;
    background: rgba(11, 10, 8, 0.97);
    display: grid; place-items: center;
    opacity: 0; visibility: hidden;
    transition: opacity 0.35s var(--ease), visibility 0.35s;
  }
  .primary-nav.is-open { opacity: 1; visibility: visible; }
  .primary-nav ul { flex-direction: column; text-align: center; gap: 2.2rem; }
  .primary-nav a { font-family: var(--serif); font-size: clamp(1.6rem, 6vw, 2.2rem); font-weight: 380; letter-spacing: 0.02em; text-transform: none; color: var(--text); }
  .primary-nav a[aria-current="page"] { color: var(--brass); border-bottom: none; font-style: italic; }
  .primary-nav.is-open .nav-foot { display: block; margin-top: 3rem; font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--dim); text-align: center; }
}

/* ---------- hero ---------- */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex; align-items: flex-end;
  isolation: isolate;
  overflow: hidden;
}
.hero-media { position: absolute; inset: 0; z-index: -2; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; filter: saturate(0.72) contrast(1.06); }
.hero-scrim {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(11,10,8,0.62) 0%, rgba(11,10,8,0.25) 34%, rgba(11,10,8,0.66) 68%, rgba(11,10,8,0.97) 100%),
    radial-gradient(120% 90% at 70% 10%, transparent 40%, rgba(11,10,8,0.55) 100%);
}
.hero-inner { width: 100%; padding: 0 var(--gutter) clamp(3rem, 8vh, 6rem); }
.hero .kicker { margin-bottom: 1.4rem; }
.hero-name { max-width: 14ch; }
.hero-name em { font-style: italic; color: var(--brass); }
.hero-sub { margin-top: 1.6rem; max-width: 52ch; font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: var(--muted); line-height: 1.6; }
.hero-actions { margin-top: 2.4rem; display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-foot {
  margin-top: clamp(2.5rem, 6vh, 4.5rem);
  padding-top: 1.2rem;
  border-top: 1px solid var(--line-soft);
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  font-size: 0.72rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--dim);
}

/* page hero (interior) */
.page-hero { padding-top: clamp(8rem, 18vh, 12rem); padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.page-hero .kicker { margin-bottom: 1.1rem; }
.page-hero .lede { margin-top: 1.4rem; }

/* ---------- featured slate ---------- */
.feature {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: clamp(1.2rem, 3vw, 3rem);
  align-items: end;
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
}
.feature + .feature { border-top: 1px solid var(--line-soft); }
.feature-media { grid-column: 1 / 8; position: relative; overflow: hidden; background: var(--bg-2); }
.feature:nth-child(even) .feature-media { grid-column: 6 / 13; order: 2; }
.feature:nth-child(even) .feature-body { grid-column: 1 / 6; order: 1; }
.feature-media img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  filter: saturate(0.85);
  transition: transform 1.2s var(--ease), filter 0.8s var(--ease);
}
.feature-media a:hover img, .feature-media a:focus-visible img { transform: scale(1.03); filter: saturate(1); }
.feature-media .frame-year {
  position: absolute; top: 1rem; left: 1.1rem;
  font-size: 0.7rem; letter-spacing: 0.24em; color: rgba(236,231,221,0.85);
  text-transform: uppercase;
  background: rgba(11,10,8,0.55); padding: 0.35rem 0.7rem;
  backdrop-filter: blur(6px);
}
.feature-body { grid-column: 8 / 13; padding-bottom: 0.4rem; }
.feature-body .roles { margin: 0.9rem 0 1.1rem; }
.feature-body .blurb { color: var(--muted); margin-bottom: 1.6rem; max-width: 44ch; }
.feature-title a { color: inherit; text-decoration: none; }
.feature-title a:hover { color: var(--brass); }
.feature-links { display: flex; gap: 1.6rem; align-items: center; flex-wrap: wrap; }

@media (max-width: 900px) {
  .feature, .feature:nth-child(even) { display: block; }
  .feature-body { margin-top: 1.4rem; }
}

/* ---------- filmography table ---------- */
.filmo { width: 100%; border-collapse: collapse; }
.filmo caption { text-align: left; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.filmo th[scope="col"] {
  text-align: left; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--dim);
  padding: 0 1rem 0.9rem 0; border-bottom: 1px solid var(--line);
}
.filmo td, .filmo th[scope="row"] { padding: 1.15rem 1rem 1.15rem 0; border-bottom: 1px solid var(--line-soft); vertical-align: baseline; }
.filmo th[scope="row"] { font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.45rem); font-weight: 400; letter-spacing: 0; text-align: left; }
.filmo th[scope="row"] a { text-decoration: none; transition: color 0.25s; }
.filmo th[scope="row"] a:hover { color: var(--brass); }
.filmo .year { font-variant-numeric: tabular-nums; color: var(--brass); white-space: nowrap; }
.filmo td { color: var(--muted); font-size: 0.92rem; }
.filmo tr:hover td, .filmo tr:hover th[scope="row"] { background: linear-gradient(90deg, transparent, rgba(236,231,221,0.025), transparent); }
@media (max-width: 700px) {
  .filmo .hide-sm { display: none; }
}

/* filters */
.filters { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 2.2rem; }
.chip {
  padding: 0.55rem 1.1rem;
  border: 1px solid var(--line);
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--muted);
  transition: color 0.25s, border-color 0.25s, background 0.25s;
}
.chip[aria-pressed="true"] { background: var(--brass); border-color: var(--brass); color: var(--bg-0); }
.chip:hover:not([aria-pressed="true"]) { border-color: var(--brass-deep); color: var(--text); }

/* ---------- cards ---------- */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: clamp(1.2rem, 2.5vw, 2rem); }
.press-card {
  border: 1px solid var(--line-soft);
  padding: 1.8rem 1.7rem 1.6rem;
  display: flex; flex-direction: column; gap: 0.9rem;
  background: linear-gradient(160deg, var(--bg-1), var(--bg-0));
  transition: border-color 0.35s var(--ease), transform 0.35s var(--ease);
}
.press-card:hover { border-color: rgba(194,161,95,0.45); transform: translateY(-3px); }
.press-card .pub { color: var(--brass); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; }
.press-card h3 { font-size: 1.28rem; font-weight: 400; line-height: 1.25; }
.press-card h3 a { text-decoration: none; }
.press-card h3 a:hover { color: var(--brass); }
.press-card .excerpt { color: var(--muted); font-size: 0.95rem; flex: 1; }
.press-card .date { color: var(--dim); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; }

/* project index cards */
.proj-card { position: relative; text-decoration: none; display: block; border: 1px solid var(--line-soft); background: var(--bg-1); overflow: hidden; }
.proj-card img { aspect-ratio: 16/9; object-fit: cover; width: 100%; filter: saturate(0.8); transition: transform 1s var(--ease), filter 0.6s; }
.proj-card:hover img { transform: scale(1.04); filter: saturate(1); }
.proj-card .body { padding: 1.4rem 1.5rem 1.5rem; }
.proj-card .body h3 { font-size: 1.45rem; font-weight: 400; margin: 0.4rem 0 0.5rem; }
.proj-card:hover .body h3 { color: var(--brass); }
.typo-cover {
  width: 100%; aspect-ratio: 16/9; display: grid; place-items: center;
  background:
    radial-gradient(90% 130% at 50% 0%, rgba(194,161,95,0.14), transparent 60%),
    var(--bg-2);
}
.typo-cover span { font-family: var(--serif); font-style: italic; font-size: clamp(1.8rem, 4vw, 2.6rem); color: rgba(236,231,221,0.35); }

/* ---------- trailer facade / modal ---------- */
.trailer-facade { position: relative; display: block; width: 100%; overflow: hidden; background: #000; border: 0; padding: 0; }
.trailer-facade img { width: 100%; aspect-ratio: 16/9; object-fit: cover; opacity: 0.82; transition: opacity 0.4s, transform 1s var(--ease); }
.trailer-facade:hover img { opacity: 1; transform: scale(1.02); }
.trailer-facade .play {
  position: absolute; inset: 0; display: grid; place-items: center;
}
.play-ring {
  width: clamp(64px, 9vw, 92px); height: clamp(64px, 9vw, 92px);
  border: 1px solid rgba(236,231,221,0.75); border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(11,10,8,0.45);
  backdrop-filter: blur(6px);
  transition: background 0.35s, border-color 0.35s, transform 0.35s var(--ease);
}
.trailer-facade:hover .play-ring { background: var(--brass); border-color: var(--brass); transform: scale(1.06); }
.play-ring svg { width: 26%; margin-left: 6%; fill: var(--text); transition: fill 0.35s; }
.trailer-facade:hover .play-ring svg { fill: var(--bg-0); }
.trailer-facade .label {
  position: absolute; left: 1.2rem; bottom: 1.1rem;
  font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(236,231,221,0.9);
}
.embed-wrap { position: relative; aspect-ratio: 16/9; background: #000; }
.embed-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- gallery ---------- */
.masonry { columns: 3 300px; column-gap: 1.1rem; }
.masonry a { display: block; margin-bottom: 1.1rem; break-inside: avoid; position: relative; overflow: hidden; background: var(--bg-2); }
.masonry img { width: 100%; filter: saturate(0.85); transition: transform 0.9s var(--ease), filter 0.5s; }
.masonry a:hover img { transform: scale(1.03); filter: saturate(1.05); }

.filmstrip { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(220px, 26vw, 340px); gap: 1rem; overflow-x: auto; padding-bottom: 1rem; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: var(--brass-deep) transparent; }
.filmstrip a { scroll-snap-align: start; display: block; overflow: hidden; background: var(--bg-2); }
.filmstrip img { width: 100%; aspect-ratio: 4/3; object-fit: cover; filter: saturate(0.85); transition: transform 0.9s var(--ease); }
.filmstrip a:hover img { transform: scale(1.04); }

/* lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 4000;
  background: rgba(6, 5, 4, 0.94);
  display: none;
  place-items: center;
  padding: clamp(1rem, 4vw, 3rem);
}
.lightbox.is-open { display: grid; }
.lightbox img { max-height: 84vh; max-width: 100%; width: auto; box-shadow: 0 30px 80px rgba(0,0,0,0.6); }
.lightbox .lb-close, .lightbox .lb-prev, .lightbox .lb-next {
  position: absolute; color: var(--text);
  font-size: 0.8rem; letter-spacing: 0.2em; text-transform: uppercase;
  padding: 1rem;
}
.lightbox .lb-close { top: 1rem; right: 1.2rem; }
.lightbox .lb-prev { left: 0.8rem; top: 50%; transform: translateY(-50%); }
.lightbox .lb-next { right: 0.8rem; top: 50%; transform: translateY(-50%); }
.lightbox :is(.lb-close,.lb-prev,.lb-next):hover { color: var(--brass); }
.lb-count { position: absolute; bottom: 1.2rem; left: 50%; transform: translateX(-50%); color: var(--dim); font-size: 0.75rem; letter-spacing: 0.2em; }

/* modal */
.modal {
  position: fixed; inset: 0; z-index: 4000;
  background: rgba(6,5,4,0.94);
  display: none; place-items: center; padding: clamp(1rem, 4vw, 3rem);
}
.modal.is-open { display: grid; }
.modal .modal-box { width: min(100%, 1100px); }
.modal .lb-close { position: absolute; top: 1rem; right: 1.2rem; color: var(--text); font-size: 0.8rem; letter-spacing: 0.2em; text-transform: uppercase; padding: 1rem; }
.modal .lb-close:hover { color: var(--brass); }

/* ---------- project page ---------- */
.proj-hero { position: relative; isolation: isolate; padding-top: clamp(9rem, 22vh, 14rem); padding-bottom: clamp(2.6rem, 6vw, 4.5rem); overflow: hidden; }
.proj-hero .backdrop { position: absolute; inset: 0; z-index: -2; }
.proj-hero .backdrop img { width: 100%; height: 100%; object-fit: cover; opacity: 0.38; filter: saturate(0.6) blur(1px); }
.proj-hero .backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,10,8,0.7), rgba(11,10,8,0.92) 70%, var(--bg-0)); }
.proj-meta { display: flex; gap: 1.6rem; flex-wrap: wrap; margin-top: 1.6rem; }
.proj-meta div { font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.proj-meta dt { color: var(--dim); font-size: 0.64rem; letter-spacing: 0.24em; margin-bottom: 0.3rem; }
.proj-meta dd { margin: 0; color: var(--text); }

.proj-layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
@media (max-width: 900px) { .proj-layout { grid-template-columns: 1fr; } }
.side-panel { border-top: 1px solid var(--line); padding-top: 1.4rem; position: sticky; top: 6rem; }
.side-panel dl { display: grid; gap: 1.1rem; }
.side-panel dt { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--dim); margin-bottom: 0.25rem; }
.side-panel dd { margin: 0; color: #cfc8ba; font-size: 0.95rem; }
.side-panel .ext { margin-top: 1.6rem; display: grid; gap: 0.7rem; }

.proj-nav { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); }
.proj-nav a {
  padding: 2.2rem var(--gutter); text-decoration: none; display: grid; gap: 0.5rem;
  transition: background 0.3s;
}
.proj-nav a:hover { background: var(--bg-1); }
.proj-nav a + a { border-left: 1px solid var(--line-soft); text-align: right; }
.proj-nav .dir { font-size: 0.68rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--dim); }
.proj-nav .title { font-family: var(--serif); font-size: clamp(1.2rem, 2.4vw, 1.7rem); }
.proj-nav a:hover .title { color: var(--brass); }

/* ---------- bio ---------- */
.bio-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 5rem); align-items: start; }
@media (max-width: 900px) { .bio-grid { grid-template-columns: 1fr; } }
.bio-portrait { position: sticky; top: 6rem; }
.bio-portrait img { filter: saturate(0.82); }
.bio-portrait figcaption { margin-top: 0.8rem; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--dim); }
.pullquote {
  border-left: 2px solid var(--brass);
  padding-left: 1.6rem;
  margin: 2.6rem 0;
  font-family: var(--serif); font-style: italic;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  line-height: 1.45;
  color: var(--text);
}
.pullquote cite { display: block; margin-top: 0.9rem; font-family: var(--sans); font-style: normal; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--dim); }

.milestones { border-top: 1px solid var(--line); }
.milestone { display: grid; grid-template-columns: 7rem 1fr; gap: 1.5rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line-soft); }
.milestone .yr { font-family: var(--serif); font-style: italic; color: var(--brass); font-size: 1.25rem; }
.milestone p { color: var(--muted); margin-top: 0.2rem; }
@media (max-width: 600px) { .milestone { grid-template-columns: 1fr; gap: 0.3rem; } }

/* ---------- contact ---------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 5rem); }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }
.form-grid { display: grid; gap: 1.4rem; }
.form-row { display: grid; gap: 1.4rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } }
.field label { display: block; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); margin-bottom: 0.55rem; }
.field :is(input, textarea, select) {
  width: 100%;
  background: var(--bg-1);
  border: 1px solid var(--line);
  color: var(--text);
  padding: 0.9rem 1rem;
  font: inherit;
  transition: border-color 0.3s;
}
.field :is(input, textarea, select):focus { border-color: var(--brass); outline: none; }
.field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23a89f8f'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; }
.field .err { display: none; color: #d98d84; font-size: 0.85rem; margin-top: 0.4rem; }
.field.is-invalid .err { display: block; }
.field.is-invalid :is(input, textarea, select) { border-color: var(--oxblood); }
.form-note { color: var(--dim); font-size: 0.85rem; }
.form-status { display: none; padding: 1rem 1.2rem; border: 1px solid var(--line); font-size: 0.95rem; }
.form-status.ok { display: block; border-color: rgba(120, 160, 110, 0.5); color: #b8ccae; }
.form-status.fail { display: block; border-color: var(--oxblood); color: #d98d84; }
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.contact-list { display: grid; gap: 1.3rem; border-top: 1px solid var(--line); padding-top: 1.6rem; }
.contact-list dt { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--dim); margin-bottom: 0.3rem; }
.contact-list dd { margin: 0; font-size: 1.05rem; }
.contact-list a { color: var(--text); text-decoration-color: rgba(194,161,95,0.4); text-underline-offset: 4px; }
.contact-list a:hover { color: var(--brass); }

/* ---------- footer ---------- */
.site-footer { background: var(--bg-0); background-color: var(--bg-0); border-top: 1px solid var(--line); margin-top: var(--section); padding: clamp(2.5rem, 6vw, 4rem) 0 2rem; color: var(--text); }
.footer-grid { display: flex; justify-content: space-between; gap: 2rem; flex-wrap: wrap; align-items: baseline; }
.footer-brand { font-family: var(--serif); font-size: 1.5rem; }
.footer-nav { display: flex; gap: 1.6rem; flex-wrap: wrap; list-style: none; padding: 0; }
.footer-nav a { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); text-decoration: none; }
.footer-nav a:hover { color: var(--brass); }
.footer-meta { margin-top: 2.4rem; padding-top: 1.4rem; border-top: 1px solid var(--line-soft); display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; font-size: 0.76rem; color: var(--dim); }
.footer-meta a { color: var(--dim); }
.footer-meta a:hover { color: var(--brass); }

/* ---------- closing contact band ---------- */
.contact-band { text-align: center; padding-block: var(--section); border-top: 1px solid var(--line-soft); }
.contact-band .display-lg { max-width: 22ch; margin-inline: auto; }
.contact-band p { color: var(--muted); max-width: 54ch; margin: 1.4rem auto 2.4rem; }

/* ---------- reveal ---------- */
@media (prefers-reduced-motion: no-preference) {
  .reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); }
  .reveal.is-in { opacity: 1; transform: none; }
  .reveal-stagger > * { opacity: 0; transform: translateY(22px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
  .reveal-stagger.is-in > * { opacity: 1; transform: none; }
  .reveal-stagger.is-in > *:nth-child(2) { transition-delay: 0.08s; }
  .reveal-stagger.is-in > *:nth-child(3) { transition-delay: 0.16s; }
  .reveal-stagger.is-in > *:nth-child(4) { transition-delay: 0.24s; }
  .reveal-stagger.is-in > *:nth-child(5) { transition-delay: 0.32s; }
  .reveal-stagger.is-in > *:nth-child(6) { transition-delay: 0.4s; }
}

/* ---------- misc ---------- */
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.err-page { min-height: 80svh; display: grid; place-items: center; text-align: center; padding: 8rem var(--gutter) 4rem; }
.roles-line { color: var(--brass); font-size: 0.76rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; }
.dot { color: var(--dim); padding-inline: 0.45em; }

/* ============================================================
   WordPress / GeneratePress integration layer
   ============================================================ */

/* GP containers: the design manages its own widths — free the shell. */
html,
body,
.site,
.site-content,
.site.grid-container,
.inside-article,
#page,
#content {
  background: var(--bg-0) !important;
  color: var(--text);
}

.site-content,
.site.grid-container,
.inside-article,
#content {
  max-width: none;
  padding: 0;
  margin: 0;
}
body .grid-container { max-width: none; padding: 0; }
.site-main { margin: 0; background: var(--bg-0); }

body,
.site,
.site.grid-container,
.site-content,
.inside-article,
.entry-content,
.separate-containers .inside-article,
.one-container .site-content,
.separate-containers .site-main,
#page,
#content,
#primary,
main.site-main,
.site-footer,
.site-info,
.inside-site-info,
.footer-widgets,
.footer-bar,
.alb-footer-inner {
  background: var(--bg-0) !important;
  background-color: var(--bg-0) !important;
  color: var(--text) !important;
}

.site-content,
.inside-article,
.entry-content,
#content,
#primary,
main.site-main {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* GP skip link inherits our focus style; keep it visible on focus. */
a.skip-link.screen-reader-text:focus {
  position: absolute;
  left: 1rem;
  top: 1rem;
  z-index: 3000;
  width: auto;
  height: auto;
  clip: auto;
  clip-path: none;
  background: var(--brass);
  color: var(--bg-0);
  padding: 0.7rem 1.2rem;
  font-weight: 600;
  text-decoration: none;
}

/* Menus rendered by wp_nav_menu inside .primary-nav / .footer-nav */
.primary-nav > ul,
.primary-nav > div > ul { display: flex; gap: clamp(1.2rem, 2.5vw, 2.4rem); list-style: none; padding: 0; margin: 0; }
@media (max-width: 820px) {
  .primary-nav > ul,
  .primary-nav > div > ul { flex-direction: column; text-align: center; gap: 2.2rem; }
}
ul.footer-nav { margin: 0; }

/* Sticky header offset for anchored content */
html { scroll-padding-top: 5rem; }

/* External press list on project pages */
.ext-press-list { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: 0.9rem; }
.ext-press-list li { border-top: 1px solid var(--line-soft); padding-top: 0.9rem; }
.ext-press-list .pub { display: block; color: var(--brass); font-size: 0.68rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; margin-bottom: 0.25rem; }
.ext-press-list a { color: var(--text); text-decoration-color: rgba(194, 161, 95, 0.4); text-underline-offset: 3px; }
.ext-press-list a:hover { color: var(--brass); }

/* Archive pagination */
.pagination, .nav-links { display: flex; gap: 1rem; justify-content: center; margin-top: 3rem; flex-wrap: wrap; }
.nav-links .page-numbers {
  padding: 0.55rem 1rem;
  border: 1px solid var(--line);
  color: var(--muted);
  text-decoration: none;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.nav-links .page-numbers.current { background: var(--brass); border-color: var(--brass); color: var(--bg-0); }
.nav-links a.page-numbers:hover { border-color: var(--brass-deep); color: var(--text); }

/* Core blocks inside .prose content */
.prose h2, .prose h3 { margin: 1.6em 0 0.6em; }
.prose ul, .prose ol { color: #cfc8ba; margin: 0 0 1.35em 1.2em; }
.prose blockquote,
.wp-block-quote {
  border-left: 2px solid var(--brass);
  padding-left: 1.6rem;
  margin: 2.6rem 0;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  line-height: 1.45;
  color: var(--text);
}
.wp-block-quote cite { display: block; margin-top: 0.9rem; font-family: var(--sans); font-style: normal; font-size: 0.72rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--dim); }
.wp-block-separator { border: 0; border-top: 1px solid var(--line-soft); max-width: 8rem; margin: 3rem auto; }
.wp-block-image figcaption { color: var(--dim); font-size: 0.8rem; letter-spacing: 0.06em; margin-top: 0.6rem; }
.wp-block-button__link {
  background: transparent;
  border: 1px solid var(--brass-deep);
  color: var(--text);
  border-radius: 0;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 0.95rem 1.7rem;
  transition: background 0.35s var(--ease), color 0.35s var(--ease);
}
.wp-block-button__link:hover { background: var(--brass); border-color: var(--brass); color: var(--bg-0); }

/* Gravity Forms - match the static contact form design language. */
.contact-grid .gform_wrapper,
.contact-grid .gform-theme--framework,
.contact-grid .gform-theme,
.contact-grid .gform-theme--foundation {
  --gf-form-gap-y: 1.4rem;
  --gf-form-gap-x: 1.4rem;
  --gf-field-gap-y: 0.55rem;
  --gf-ctrl-bg-color: var(--bg-1);
  --gf-ctrl-color: var(--text);
  --gf-ctrl-border-color: var(--line);
  --gf-ctrl-border-color-focus: var(--brass);
  --gf-ctrl-border-radius: 0;
  --gf-ctrl-font-family: var(--sans);
  --gf-label-color-primary: var(--muted);
  --gf-label-color-secondary: var(--dim);
  --gf-color-primary: var(--brass);
  --gf-ctrl-btn-bg-color-primary: transparent;
  --gf-ctrl-btn-color-primary: var(--text);
  --gf-ctrl-btn-bg-color-hover-primary: var(--brass);
  --gf-ctrl-btn-color-hover-primary: var(--bg-0);
}

.contact-grid .gform_wrapper.gravity-theme,
.contact-grid .gform_wrapper.gravity-theme form {
  margin: 0 !important;
}

.contact-grid .gform_wrapper.gravity-theme .gform-body,
.contact-grid .gform_wrapper.gravity-theme .gform_body {
  margin: 0 !important;
}

.contact-grid .gform_wrapper.gravity-theme .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1.4rem !important;
  inline-size: 100% !important;
}

.contact-grid .gform_wrapper.gravity-theme .gfield {
  grid-column: 1 / -1;
  margin: 0 !important;
  padding: 0 !important;
}

.contact-grid .gform_wrapper.gravity-theme .gfield--width-half {
  grid-column: span 1;
}

.contact-grid .gform_wrapper.gravity-theme .gfield.gform_validation_container,
.contact-grid .gform_wrapper.gravity-theme .gform_validation_container,
.contact-grid .gform_wrapper.gravity-theme .gform_hidden {
  display: none !important;
}

.contact-grid .gform_wrapper.gravity-theme .gfield_label,
.contact-grid .gform_wrapper.gravity-theme legend.gfield_label,
.contact-grid .gform_wrapper.gravity-theme .gform-field-label {
  display: block;
  margin: 0 0 0.55rem !important;
  color: var(--muted) !important;
  font-family: var(--sans) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  line-height: 1.35 !important;
  text-transform: uppercase !important;
}

.contact-grid .gform_wrapper.gravity-theme .ginput_container {
  margin: 0 !important;
}

.contact-grid .gform_wrapper.gravity-theme input[type="text"],
.contact-grid .gform_wrapper.gravity-theme input[type="email"],
.contact-grid .gform_wrapper.gravity-theme input[type="tel"],
.contact-grid .gform_wrapper.gravity-theme input[type="url"],
.contact-grid .gform_wrapper.gravity-theme input[type="number"],
.contact-grid .gform_wrapper.gravity-theme select,
.contact-grid .gform_wrapper.gravity-theme textarea {
  width: 100% !important;
  min-height: 0 !important;
  background: var(--bg-1) !important;
  background-color: var(--bg-1) !important;
  border: 1px solid var(--line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--text) !important;
  font-family: var(--sans) !important;
  font-size: 1.0625rem !important;
  line-height: 1.65 !important;
  padding: 0.9rem 1rem !important;
  transition: border-color 0.3s var(--ease), background-color 0.3s var(--ease) !important;
}

.contact-grid .gform_wrapper.gravity-theme textarea {
  min-height: 11.5rem !important;
  resize: vertical;
}

.contact-grid .gform_wrapper.gravity-theme select {
  appearance: none !important;
  padding-right: 2.6rem !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23a89f8f'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
}

.contact-grid .gform_wrapper.gravity-theme input:focus,
.contact-grid .gform_wrapper.gravity-theme select:focus,
.contact-grid .gform_wrapper.gravity-theme textarea:focus {
  border-color: var(--brass) !important;
  outline: none !important;
}

.contact-grid .gform_wrapper.gravity-theme input::placeholder,
.contact-grid .gform_wrapper.gravity-theme textarea::placeholder {
  color: var(--dim) !important;
  opacity: 1;
}

.contact-grid .gform_wrapper.gravity-theme .gfield--type-consent {
  border-top: 1px solid var(--line-soft);
  padding-top: 1.1rem !important;
}

.contact-grid .gform_wrapper.gravity-theme .ginput_container_consent {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.75rem !important;
}

.contact-grid .gform_wrapper.gravity-theme input[type="checkbox"] {
  flex: 0 0 auto;
  width: 1rem !important;
  height: 1rem !important;
  margin: 0.2rem 0 0 !important;
  accent-color: var(--brass);
}

.contact-grid .gform_wrapper.gravity-theme .gfield_consent_label,
.contact-grid .gform_wrapper.gravity-theme .gfield--type-consent .gform-field-label--type-inline {
  margin: 0 !important;
  color: var(--dim) !important;
  font-size: 0.85rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.6 !important;
  text-transform: none !important;
}

.contact-grid .gform_wrapper.gravity-theme .gfield_description,
.contact-grid .gform_wrapper.gravity-theme .gfield_validation_message,
.contact-grid .gform_wrapper.gravity-theme .validation_message {
  margin: 0.4rem 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: #d98d84 !important;
  font-size: 0.85rem !important;
  line-height: 1.45 !important;
}

.contact-grid .gform_wrapper.gravity-theme .gfield_error input,
.contact-grid .gform_wrapper.gravity-theme .gfield_error select,
.contact-grid .gform_wrapper.gravity-theme .gfield_error textarea,
.contact-grid .gform_wrapper.gravity-theme .gfield_error [aria-invalid="true"] {
  border-color: var(--oxblood) !important;
}

.contact-grid .gform_wrapper.gravity-theme .gform_validation_errors {
  margin: 0 0 1.4rem !important;
  padding: 1rem 1.2rem !important;
  background: transparent !important;
  border: 1px solid var(--oxblood) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: #d98d84 !important;
  font-size: 0.95rem !important;
}

.contact-grid .gform_wrapper.gravity-theme .gform-footer,
.contact-grid .gform_wrapper.gravity-theme .gform_footer {
  display: block !important;
  margin: 1.4rem 0 0 !important;
  padding: 0 !important;
}

.contact-grid .gform_wrapper.gravity-theme .gform_button,
.contact-grid .gform_wrapper.gravity-theme input[type="submit"].gform_button,
.contact-grid .gform_wrapper.gravity-theme .button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.7rem !important;
  min-height: 0 !important;
  width: auto !important;
  padding: 0.95rem 1.7rem !important;
  background: transparent !important;
  border: 1px solid var(--brass-deep) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--text) !important;
  font-family: var(--sans) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.35s var(--ease), border-color 0.35s var(--ease), color 0.35s var(--ease) !important;
}

.contact-grid .gform_wrapper.gravity-theme .gform_button:hover,
.contact-grid .gform_wrapper.gravity-theme input[type="submit"].gform_button:hover,
.contact-grid .gform_wrapper.gravity-theme .button:hover {
  background: var(--brass) !important;
  border-color: var(--brass) !important;
  color: var(--bg-0) !important;
}

.gform_confirmation_message,
.contact-grid .gform_confirmation_message {
  padding: 1rem 1.2rem !important;
  border: 1px solid rgba(120, 160, 110, 0.5) !important;
  color: #b8ccae !important;
  background: transparent !important;
}

@media (max-width: 600px) {
  .contact-grid .gform_wrapper.gravity-theme .gform_fields {
    grid-template-columns: 1fr !important;
  }

  .contact-grid .gform_wrapper.gravity-theme .gfield--width-half {
    grid-column: 1 / -1;
  }
}
/* Contact form final overrides: beat Gravity Forms orbital runtime CSS. */
.contact-grid #gform_wrapper_1,
.contact-grid #gform_wrapper_1.gform-theme,
.contact-grid #gform_wrapper_1.gform-theme--framework,
.contact-grid #gform_wrapper_1.gform-theme--foundation,
.contact-grid #gform_1 {
  --gf-ctrl-size: auto !important;
  --gf-ctrl-size-md: auto !important;
  --gf-ctrl-padding-x: 1rem !important;
  --gf-ctrl-padding-y: 0.9rem !important;
  --gf-ctrl-border-width: 1px !important;
  --gf-ctrl-border-style: solid !important;
  --gf-ctrl-border-color: var(--line) !important;
  --gf-ctrl-border-color-focus: var(--brass) !important;
  --gf-ctrl-radius: 0 !important;
  --gf-ctrl-border-radius: 0 !important;
  --gf-ctrl-btn-border-width-primary: 1px !important;
  --gf-ctrl-btn-border-style-primary: solid !important;
  --gf-ctrl-btn-border-color-primary: var(--brass-deep) !important;
  --gf-ctrl-btn-border-color-hover-primary: var(--brass) !important;
  --gf-ctrl-btn-radius: 0 !important;
  --gf-ctrl-btn-border-radius: 0 !important;
}

.contact-grid #gform_1 .gform_fields,
.contact-grid #gform_wrapper_1 .gform_fields {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: 1.4rem !important;
  row-gap: 1.4rem !important;
}

.contact-grid #gform_1 .gfield,
.contact-grid #gform_wrapper_1 .gfield {
  min-width: 0 !important;
}

.contact-grid #gform_1 .gfield--width-half,
.contact-grid #gform_wrapper_1 .gfield--width-half {
  grid-column: span 1 !important;
}

.contact-grid #gform_1 .gfield:not(.gfield--width-half),
.contact-grid #gform_wrapper_1 .gfield:not(.gfield--width-half) {
  grid-column: 1 / -1 !important;
}

.contact-grid #gform_1 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.contact-grid #gform_1 select,
.contact-grid #gform_1 textarea,
.contact-grid #gform_wrapper_1 input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.contact-grid #gform_wrapper_1 select,
.contact-grid #gform_wrapper_1 textarea {
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 3.55rem !important;
  padding: 0.9rem 1rem !important;
  background: var(--bg-1) !important;
  background-color: var(--bg-1) !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--line) !important;
  border-radius: 0 !important;
  color: var(--text) !important;
  box-shadow: none !important;
  appearance: none;
}

.contact-grid #gform_1 textarea,
.contact-grid #gform_wrapper_1 textarea {
  height: 11.5rem !important;
  min-height: 11.5rem !important;
  padding-top: 0.9rem !important;
  resize: vertical !important;
}

.contact-grid #gform_1 select,
.contact-grid #gform_wrapper_1 select {
  padding-right: 2.6rem !important;
}

.contact-grid #gform_1 input:focus,
.contact-grid #gform_1 select:focus,
.contact-grid #gform_1 textarea:focus,
.contact-grid #gform_wrapper_1 input:focus,
.contact-grid #gform_wrapper_1 select:focus,
.contact-grid #gform_wrapper_1 textarea:focus {
  border-color: var(--brass) !important;
  box-shadow: none !important;
  outline: none !important;
}

.contact-grid #gform_1 .gform_footer,
.contact-grid #gform_1 .gform-footer,
.contact-grid #gform_wrapper_1 .gform_footer,
.contact-grid #gform_wrapper_1 .gform-footer {
  margin-top: 1.4rem !important;
  padding: 0 !important;
}

.contact-grid #gform_1 button#gform_submit_button_1,
.contact-grid #gform_wrapper_1 button#gform_submit_button_1,
.contact-grid #gform_submit_button_1.gform_button,
body .contact-grid #gform_submit_button_1.button.btn {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0.95rem 1.7rem !important;
  background: transparent !important;
  background-color: transparent !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-color: var(--brass-deep) !important;
  border-radius: 0 !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

.contact-grid #gform_1 button#gform_submit_button_1:hover,
.contact-grid #gform_wrapper_1 button#gform_submit_button_1:hover,
.contact-grid #gform_submit_button_1.gform_button:hover,
body .contact-grid #gform_submit_button_1.button.btn:hover {
  background: var(--brass) !important;
  background-color: var(--brass) !important;
  border-color: var(--brass) !important;
  color: var(--bg-0) !important;
}

@media (max-width: 600px) {
  .contact-grid #gform_1 .gform_fields,
  .contact-grid #gform_wrapper_1 .gform_fields {
    grid-template-columns: 1fr !important;
  }

  .contact-grid #gform_1 .gfield--width-half,
  .contact-grid #gform_wrapper_1 .gfield--width-half {
    grid-column: 1 / -1 !important;
  }
}
/* GeneratePress back-to-top and footer bar are unused; hide safely */
.generate-back-to-top { display: none; }

.site-content { display: block !important; width: 100%; }
.alb-main { display: block; width: 100%; min-width: 0; background: var(--bg-0); }

/* WordPress parity overrides: keep the GP shell from changing the static design on every public page. */
body {
  background: var(--bg-0) !important;
  color: var(--text) !important;
}

body .site-header,
body header.site-header {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  width: 100% !important;
  background: transparent !important;
  color: var(--text) !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}

body .site-header.is-solid,
body header.site-header.is-solid {
  background: rgba(11, 10, 8, 0.88) !important;
  border-bottom-color: var(--line-soft) !important;
}

body .site-header .brand {
  color: var(--text) !important;
}

body .site-header .primary-nav a {
  color: var(--muted) !important;
}

body .site-header .primary-nav a:hover {
  color: var(--text) !important;
}

body .site-header .primary-nav a[aria-current="page"] {
  color: var(--brass) !important;
  border-bottom-color: var(--brass) !important;
}

body .site-header .nav-toggle,
body .site-header .nav-foot {
  color: var(--text) !important;
}

body .site-header .nav-toggle .bars,
body .site-header .nav-toggle .bars::before,
body .site-header .nav-toggle .bars::after {
  background: var(--text) !important;
}

body #page,
body #content,
body .site,
body .site-content,
body .inside-article,
body .entry-content,
body .alb-main {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--bg-0) !important;
  color: var(--text) !important;
}

body .alb-main > .hero {
  margin-top: 0 !important;
}

body .alb-main > .section,
body .alb-main > .contact-band,
body .alb-main .container,
body .alb-main .container--wide,
body .alb-main .container--narrow,
body .page-hero,
body .section,
body article,
body .project,
body .proj-hero,
body .contact-band,
body .container,
body .container--wide,
body .container--narrow {
  background: transparent !important;
  background-color: transparent !important;
  color: inherit;
}

body .site-footer,
body .site-info,
body .inside-site-info,
body .footer-widgets,
body .footer-bar,
body .alb-footer-inner {
  background: var(--bg-0) !important;
  background-color: var(--bg-0) !important;
  color: var(--text) !important;
}

body .alb-main h1,
body .alb-main h2,
body .alb-main h3,
body .alb-main .display-xl,
body .alb-main .display-lg,
body .alb-main .display-md,
body .alb-main .display-sm {
  color: var(--text);
}

body .alb-main .lede,
body .alb-main .blurb,
body .alb-main .prose p,
body .alb-main .press-card .excerpt,
body .alb-main .milestone p,
body .alb-main .filmo td {
  color: var(--muted);
}

body .alb-main .kicker,
body .alb-main .text-link,
body .alb-main .roles-line,
body .alb-main .filmo .year,
body .alb-main .milestone .yr,
body .alb-main .press-card .pub {
  color: var(--brass);
}

body .alb-main .section-head,
body .alb-main .feature + .feature,
body .alb-main .filmo th[scope="col"],
body .alb-main .filmo td,
body .alb-main .filmo th[scope="row"],
body .alb-main .press-card,
body .alb-main .contact-band {
  border-color: var(--line-soft);
}