/* Shared by every page: accessibility helpers, reading progress, back-to-top, reveal-on-scroll */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
img,svg{max-width:100%}
.skip{position:absolute;left:-999px;top:0;z-index:100;background:#fff;color:#000;padding:.6rem 1rem;font:600 .9rem system-ui,sans-serif}
.skip:focus{left:8px;top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.rp{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--rp,currentColor);z-index:60;pointer-events:none}
.totop{position:fixed;right:max(16px,3vw);bottom:max(16px,3vw);z-index:55;width:2.9rem;height:2.9rem;border-radius:50%;border:1px solid var(--tt-line,rgba(128,128,128,.5));background:var(--tt-bg,#222);color:var(--tt-ink,#fff);font:600 1.2rem/1 system-ui,sans-serif;cursor:pointer;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .25s}
.totop.on{opacity:1;transform:none;pointer-events:auto}
.js .rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
