/* TSP stacked header (Hallmark, draft 2026-10-28, awaiting Scott).
   Stacked lockup only: mark on top, wordmark and laurel below. Never a -horizontal- file.
   Fibonacci and phi spacing: phone logo 64px in an 89px bar; desktop logo 80px in a 110px bar; nav gap 21px. */
:root{--hdr-h:89px;--logo-h:64px}
@media (min-width:768px){:root{--hdr-h:96px;--logo-h:72px}}
@media (min-width:1024px){:root{--hdr-h:110px;--logo-h:80px}}
.site-header .nav-links{gap:21px}.site-header .nav-links a{white-space:nowrap}
@media (min-width:1024px) and (max-width:1199px){.site-header .nav-links{gap:13px;font-size:.88rem}}
.site-header .nav{height:var(--hdr-h);transition:height .3s var(--ease)}
.site-header .brand-lockup,.site-header .brand-lockup--stacked,
[data-theme="night"] .site-header .brand-lockup{height:var(--logo-h);width:auto;max-width:none;flex-shrink:0;transition:height .3s var(--ease)}
/* scrolled: compact bar, logo stays stacked and at or above 9px wordmark cap height */
.site-header.scrolled{--hdr-h:76px;--logo-h:64px}
@media (min-width:1024px){.site-header.scrolled{--hdr-h:89px;--logo-h:64px}}
/* the :root vars are re-declared on .site-header.scrolled so they win there */
.mobile-panel{top:var(--hdr-h)}
/* longer top fade so the taller header sits on calm ground over the A3 lane */
.hero-scrim{background:
  linear-gradient(to bottom,rgba(var(--wash),.95) 0%,rgba(var(--wash),.88) 12%,rgba(var(--wash),0) 24%),
  linear-gradient(to top,rgb(var(--wash)) 0%,rgb(var(--wash)) 60%,rgba(var(--wash),.8) 64%,rgba(var(--wash),0) 72%)}
@media (min-width:768px){.hero-scrim{background:
  linear-gradient(to bottom,rgba(var(--wash),.95) 0%,rgba(var(--wash),.88) 13%,rgba(var(--wash),0) 24%),
  linear-gradient(to top,rgb(var(--wash)) 0%,rgba(var(--wash),0) 22%),
  linear-gradient(to right,rgba(var(--wash),.94) 0%,rgba(var(--wash),.94) 38%,rgba(var(--wash),.72) 49%,rgba(var(--wash),0) 64%)}}
