/* Adam L. McMath — visual upgrade. Load LAST in <head>. No dependencies. */
:root { --vu-ease:cubic-bezier(.22,1,.36,1); }
/* Fail open: content stays readable if either JavaScript file fails. */
.reveal,.reveal.in { opacity:1; transform:none; transition:none; }
.grain { opacity:.065; }
.hero { padding-top:clamp(2rem,4vw,3.5rem); }
.hero > .wrap { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); column-gap:4%; align-items:start; }
.hero-grid { display:contents; }
.hero-copy { grid-column:1; grid-row:1; padding-top:1.5rem; }
.hero h1 { font-size:clamp(4rem,10.3vw,9rem); }
.hero-photo { grid-column:2; grid-row:1 / 5; margin:0 14px 14px 0; }
.hero-photo .ph { aspect-ratio:4/5; }
.hero-ghost { grid-column:1; grid-row:2; font-size:clamp(2.3rem,4.15vw,3.8rem); margin:1rem 0 0; white-space:normal; }
.hero-lede { grid-column:1; grid-row:3; margin-top:1.4rem; font-size:clamp(1rem,1.25vw,1.15rem); max-width:39ch; }
.hero-actions { grid-column:1; grid-row:4; margin-top:1.5rem; gap:.7rem; }
.hero-actions .btn { padding:.8rem 1.05rem; font-size:.72rem; }
.hero-photo::after { transform:translate(12px,12px); }
.nav-links a[aria-current="location"]::after { width:100%; }
.vu-progress { position:absolute; left:0; bottom:0; width:100%; height:2px; background:var(--ox); transform:scaleX(0); transform-origin:left; pointer-events:none; }
/* A full-width film passage using the existing Uganda footage. */
.manifesto { background:var(--ink); color:var(--bone); padding-block:clamp(3.5rem,7vw,6rem); }
.manifesto-grid { grid-template-columns:1fr; gap:2.5rem; }
.manifesto-grid .manifesto-quote { max-width:950px; }
.manifesto-grid .manifesto-quote p { text-align:left; font-size:clamp(2rem,4.8vw,4.6rem); line-height:1.13; }
.manifesto-quote b { color:var(--ochre); font-weight:inherit; }
.manifesto .attr { color:var(--bone-2); text-align:left; }
.manifesto-media { width:100%; }
.manifesto .mf-video { border-radius:0; box-shadow:none; aspect-ratio:16/9; object-fit:contain; }
.manifesto .mf-frame::after { border-radius:0; border-color:var(--ochre); transform:translate(10px,10px); }
.manifesto .mf-cap { color:var(--bone); text-align:left; margin-top:1.7rem; font-size:.95rem; font-weight:400; }
.manifesto .mf-eyebrow { color:var(--ochre); }
/* Keep venture links honest until project photography is available. */
.venture { transition:background .25s ease; }
.venture:hover,.venture:focus-visible { padding-left:0; background:rgba(185,134,47,.055); }
.venture > div { transition:transform .3s var(--vu-ease); }
.venture:hover > div,.venture:focus-visible > div { transform:translateX(8px); }
.press-list li a:hover,.press-list li a:focus-visible { padding-left:0; }
.press-list .ttl { transition:transform .25s var(--vu-ease); }
.press-list a:hover .ttl { transform:translateX(5px); }
/* Existing conversation photographs become a visitor-controlled contact sheet. */
.vu-gallery .acb-slider { aspect-ratio:4/3; background:var(--bone-2); }
.vu-gallery .speak-photo .acb-slide { object-fit:contain; transition:opacity .4s ease; }
.vu-gallery .acb-dots { display:none; }
.vu-thumbs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin-top:16px; }
.vu-thumb { appearance:none; padding:3px; border:1px solid transparent; background:transparent; cursor:pointer; min-width:0; min-height:44px; }
.vu-thumb img { width:100%; aspect-ratio:1; object-fit:cover; opacity:.6; transition:opacity .2s; }
.vu-thumb:hover img,.vu-thumb[aria-pressed="true"] img { opacity:1; }
.vu-thumb[aria-pressed="true"] { border-color:var(--ox); }
.vu-gallery-caption { display:flex; gap:1rem; justify-content:space-between; font-size:.8rem; line-height:1.5; margin-top:12px; color:var(--muted); }
.vu-gallery-caption .vu-count { color:var(--ox); font-variant-numeric:tabular-nums; flex-shrink:0; }
.vu-gallery .acb-nav { width:44px; height:44px; border-radius:0; background:var(--ink); }
.book-cover { perspective:900px; }
.book-cover img { transform-origin:left center; transition:transform .65s var(--vu-ease),box-shadow .65s var(--vu-ease); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .book-card:hover .book-cover img { transform:rotateY(-8deg) rotateZ(-2deg); box-shadow:12px 16px 20px rgba(23,19,16,.16); }
}
@media(min-width:1000px) {
  .vu-gallery { position:sticky; top:110px; align-self:start; }
}
@media(max-width:900px) {
  .hero > .wrap { grid-template-columns:minmax(0,1fr); }
  .hero-copy { grid-column:1; grid-row:1; padding-top:0; }
  .hero h1 { font-size:clamp(3.8rem,15vw,7rem); }
  .hero-ghost { grid-column:1; grid-row:2; font-size:clamp(2.2rem,8vw,3.7rem); }
  .hero-lede { grid-column:1; grid-row:3; max-width:48ch; }
  .hero-actions { grid-column:1; grid-row:4; }
  .hero-photo { grid-column:1; grid-row:5; margin-top:2.3rem; max-width:560px; width:calc(100% - 14px); }
  .hero-photo .ph { aspect-ratio:4/5; }
  .manifesto-grid .manifesto-quote p { text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .hero-photo,.hero h1 span,.reveal,.acb-slide,.book-cover img,.venture > div,.press-list .ttl { animation:none !important; transition:none !important; transform:none !important; }
}
@media(max-width:480px) {
  .vu-thumbs { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .vu-thumb img { aspect-ratio:4/3; }
}
