/* assets/sticky-header-v1.css — the header stays at the top while the page scrolls (S346, 2026-09-30; operator: "on
   scroll make this sticky at the top for user easy access"). At the top of the page it looks as before; once
   scrolled (class set by sticky-header-v1.js) it becomes a slimmer bar with a solid background so text never
   shows through it. */
.header{position:fixed;inset:0 0 auto;z-index:60;transition:height .25s ease,background-color .25s ease,box-shadow .25s ease}
.header.is-scrolled{height:56px;background:#0e1120f5;box-shadow:0 8px 24px #0006;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.header.is-scrolled .mobile-nav:not([hidden]){top:56px}
@media (prefers-reduced-motion:reduce){.header{transition:none}}
/* Always pinned (operator 2026-09-30: the nav is needed while scrolling down too). Every scene below the hero gets
   the slim bar's height as extra top padding, so the bar never covers a section's first line; fit-v1.css keeps each
   scene inside one viewport. */
:root{--bar:56px}
.scene:not(.hero):not(.horizon){padding-top:calc(var(--scene-space) + var(--bar))}
