/* Shared caption/rule motion; page styles retain their geometry and palette. */
:root{--caption-ease:cubic-bezier(.22,1,.36,1);--review-ease:cubic-bezier(.22,.61,.36,1)}
.language-switch{position:fixed;right:20px;top:84px;z-index:19;display:grid;place-items:center;width:52px;height:44px;border:1px solid #1e6f9f;border-radius:8px;background:#080a0de8;color:#cfcfcf;text-decoration:none;font:14px/1.2 Arial,Helvetica,sans-serif}
.language-switch:hover{color:#fff;background:#163449}
body:not(.reference-home) .language-switch{top:20px}
.heading-line{display:block}
.heading-line-text{display:inline-block}
body:not(.reference-home) .section-heading p.rule-entrance{position:relative;border-bottom-color:transparent}
body:not(.reference-home) .section-heading p.rule-entrance:after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--blue)}
.js .rule-entrance:after{transform:scaleX(0);transform-origin:left center;transition:transform var(--heading-rule-duration,480ms) var(--caption-ease)}
.js .rule-entrance.rule-visible:after{transform:scaleX(1)}
.js .reference-home .gallery>h2.rule-entrance:after{transform:translateX(-50%) scaleX(0)}
.js .reference-home .gallery>h2.rule-entrance.rule-visible:after{transform:translateX(-50%) scaleX(1)}
.js .heading-sequence .heading-line-text{opacity:0;transform:translateY(4px);transition:opacity var(--heading-row-duration,360ms) ease-out,transform var(--heading-row-duration,360ms) var(--caption-ease);transition-delay:var(--heading-exit-delay,0ms)}
.js .heading-sequence.heading-visible .heading-line-text{opacity:1;transform:none;transition-delay:var(--heading-delay,0ms)}

/* Shared 1.5-second review motion, including the reviewer attribution. */
.museum-copy blockquote.review-motion{position:relative;border-left-color:transparent}
.review-motion:before{content:'';position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--blue);transform:scaleY(0);transform-origin:top;transition:transform var(--review-total-duration,1500ms) var(--review-ease)}
.review-motion.review-visible:before{transform:scaleY(1)}
.review-word{display:inline-block;opacity:0;transform:translateY(6px);transition:opacity var(--review-row-duration,450ms) ease-out,transform var(--review-row-duration,450ms) var(--review-ease);transition-delay:var(--review-exit-delay,0ms)}
.review-visible .review-word{opacity:1;transform:none;transition-delay:var(--review-delay,0ms)}
@media(prefers-reduced-motion:reduce){
  .js .heading-sequence .heading-line-text,.review-word{opacity:1;transform:none}
  .js .rule-entrance:after{transform:scaleX(1)}
  .js .reference-home .gallery>h2.rule-entrance:after{transform:translateX(-50%) scaleX(1)}
  .review-motion:before{transform:scaleY(1)}
}
