/* Quiet scroll motion (preview for Andy, 2026-10-21). Nothing moves for visitors who ask for reduced motion. */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.4s cubic-bezier(.2,.65,.2,1),transform 1.4s cubic-bezier(.2,.65,.2,1);transition-delay:calc(var(--i,0) * 120ms)}
.reveal.in{opacity:1;transform:none}
/* Hairlines draw across instead of fading */
.reveal.hairline{opacity:1;transform:scaleX(0);transform-origin:left center}
.center > .reveal.hairline,.reveal.hairline.mid{transform-origin:center}
.reveal.hairline.in{transform:scaleX(1)}
/* Headlines settle line by line: the italic second line follows the first */
.reveal.headline i,.reveal.lede i{display:inline-block;opacity:0;transform:translateY(14px);transition:opacity 1.4s cubic-bezier(.2,.65,.2,1),transform 1.4s cubic-bezier(.2,.65,.2,1);transition-delay:calc(var(--i,0) * 120ms + 380ms)}
.reveal.in.headline i,.reveal.in.lede i{opacity:1;transform:none}

@media (prefers-reduced-motion:no-preference){
  /* Large photos drift a little slower than the page */
  @supports (animation-timeline:view()){
    .photo:not(.whole):not(.founder):not(.seal-figure){overflow:hidden}
    .photo:not(.whole):not(.founder):not(.seal-figure) img{animation:drift linear both;animation-timeline:view();animation-range:cover}
    @keyframes drift{from{transform:translateY(-5%) scale(1.1)}to{transform:translateY(5%) scale(1.1)}}
  }
  /* A slow light passes across the gold of the Seal, then rests */
  .seal-wrap::after{animation:glint 10s 1.4s ease-in-out infinite}
}
.seal-wrap{position:relative;display:block;max-width:100%;min-width:0}
.seal-wrap::after{content:"";position:absolute;inset:calc(var(--d) / 8);pointer-events:none;-webkit-mask:var(--seal) center/contain no-repeat;mask:var(--seal) center/contain no-repeat;background:linear-gradient(105deg,transparent 46.5%,rgba(255,248,228,.95) 50%,transparent 53.5%) 100% 0/300% 100% no-repeat;mix-blend-mode:screen}
@keyframes glint{0%{background-position:100% 0}22%,100%{background-position:0 0}}
/* Printed pages show everything */
@media print{.reveal,.reveal i{opacity:1!important;transform:none!important}}
