/* Horizontal Scroll Section */
.hz-section{position:relative}
.hz-pin{position:relative;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:var(--header-h,80px)}
.hz-pin .theme-label{top:calc(80px + 14px)}
.hz-track{display:flex;align-items:center;gap:clamp(1.4rem,3vw,3rem);width:max-content;padding:0 clamp(1.2rem,6vw,6rem);will-change:transform}
.hz-intro{flex:none;width:min(560px,78vw);padding-right:clamp(1rem,4vw,4rem)}
.hz-title{font-size:clamp(3rem,7vw,6.6rem);line-height:.95;margin-bottom:1.2rem}
.hz-lead{color:var(--muted);max-width:26rem;margin:0 0 2rem}
.hz-hint{display:inline-flex;gap:.6rem;align-items:center;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0}
.hz-hint span{display:inline-block;animation:hz-nudge 1.6s ease-in-out infinite}
@keyframes hz-nudge{50%{transform:translateX(8px)}}
.hz-panel{flex:none;display:flex;flex-direction:column;gap:1rem}
.hz-sm{width:clamp(200px,20vw,300px)}
.hz-md{width:clamp(240px,26vw,380px)}
.hz-lg{width:clamp(270px,32vw,470px)}
.hz-panel:nth-child(odd) {transform:translateY(-4vh)}
.hz-panel:nth-child(even){transform:translateY(5vh)}
.hz-fig{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/5;max-height:58vh;background:var(--bg2);box-shadow:0 34px 60px -30px rgba(0,0,0,.85)}
.hz-sm .hz-fig{aspect-ratio:3/4}
.hz-lg .hz-fig{aspect-ratio:5/6}
.hz-fig img{width:116%;max-width:none;height:100%;object-fit:cover;margin-left:-8%}
.hz-cap{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:baseline}
.hz-time{grid-row:span 2;font-family:var(--serif);font-size:1.5rem;color:var(--gold2)}
.hz-cap h3{font-size:1.5rem;font-style:italic}
.hz-cap p{margin:.25rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.5}
.hz-end{flex:none;width:min(520px,80vw);padding:0 clamp(1rem,4vw,4rem)}
.hz-end-title{font-size:clamp(2.6rem,5vw,4.6rem);font-style:italic;margin-bottom:1rem}
.hz-end p{color:var(--muted)}
.theme-light .hz-fig{box-shadow:0 34px 60px -34px rgba(var(--shadow-rgb),.45)}
@media (max-width:760px){
  .hz-pin .theme-label{top:calc(70px + 10px)}
  .hz-intro{width:82vw}
  .hz-sm,.hz-md{width:64vw}
  .hz-lg{width:74vw}
  .hz-fig{max-height:50vh}
  .hz-panel:nth-child(odd),.hz-panel:nth-child(even){transform:none}
}
/* reduced motion / no JS: a normal sideways-scrolling strip */
.hz-section.is-static .hz-pin{height:auto;min-height:100vh;padding-bottom:4rem;overflow:visible}
.hz-section.is-static .hz-track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1.5rem}
.hz-section.is-static .hz-track > *{scroll-snap-align:start}
.hz-section.is-static .hz-hint{display:none}
.hz-track:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
/* captions always fit on screen: the date sits above the title (full-width text, far fewer lines in narrow panels)
   and on short viewports the photo gives way, sized from what's left after the header, caption and stagger */
.hz-pin{--hz-cap:11rem;--hz-stagger:9vh}
.hz-cap{grid-template-columns:minmax(0,1fr)}
.hz-time{grid-row:auto;font-size:clamp(1.05rem,1.3vw,1.3rem);margin-bottom:.2rem}
.hz-fig{max-height:min(58vh,calc(100svh - var(--header-h,80px) - var(--hz-stagger) - var(--hz-cap) - 2.5rem))}
@media (max-width:760px){
  .hz-pin{--hz-cap:12rem;--hz-stagger:0px}
  .hz-fig{max-height:min(50vh,calc(100svh - var(--header-h,72px) - var(--hz-cap) - 2.5rem))}
}
