.reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:30;pointer-events:none}
.reading-progress>span{display:block;width:100%;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left}
.hero-scroll{grid-column:1/-1;position:relative;z-index:1;display:flex;align-items:center;justify-self:start;gap:16px;width:fit-content;min-height:44px;margin:16px var(--page-pad) 0;font-size:12px;letter-spacing:.03em;color:var(--muted)}
.hero-scroll span{font-size:22px;color:var(--red)}
.hero-scroll:hover{color:var(--ink)}
.back-to-top{position:fixed;right:24px;bottom:24px;z-index:8;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:0 4px 18px #0002;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,visibility .2s}
.back-to-top svg{width:23px;height:23px}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
.back-to-top:hover{border-color:var(--red);color:var(--red)}
.nav-open .back-to-top,.modal-open .back-to-top{visibility:hidden;opacity:0;pointer-events:none}
@media(min-width:1024px){
  .hero{min-height:calc(100svh - 81px);grid-template-rows:minmax(auto,1fr) auto auto;padding-bottom:20px;--hero-photo-floor:140px}
  .hero-scroll{margin-inline:0;align-self:end}
  .hero-caption{margin-top:14px;margin-inline:calc(-1 * var(--wall-gutter));padding-inline:var(--wall-gutter)}
}
@media(max-width:767px){
  .hero{display:flex;flex-direction:column;min-height:calc(100svh - 73px);min-height:calc(100dvh - 73px)}
  .hero-copy,.hero-caption{flex:none}
  .hero-photo{height:auto;min-height:120px;flex:1 0 120px;align-self:stretch}
  .hero-photo img{position:absolute;inset:0;width:100%;height:100%}
  .hero-scroll{display:none}
  .back-to-top{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
}
@media(prefers-reduced-motion:no-preference){.hero-scroll span{animation:scroll-invite 2.4s ease-in-out 3}}
@keyframes scroll-invite{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}
@media print{.reading-progress,.back-to-top,.hero-scroll{display:none}}
