/* Motion follows the Forward Roadmap: a line, a sequence, then a clear next step. */
:root { --motion-ease:cubic-bezier(.22,1,.36,1); }
.headline-line { display:block; overflow:hidden; padding-bottom:.09em; margin-bottom:-.09em; }
.headline-line>span { display:block; }
.hero-gold { position:relative; }
.hero-gold::after { content:''; display:block; width:72px; height:3px; margin-top:21px; background:#dfb85f; transform-origin:left; }
.photo-frame,.bench-photo { overflow:hidden; border-radius:var(--photo-radius); }
.photo-frame img { margin:0; }
.hero-image>img,.photo-frame img,.bench-photo img { transition:transform 1.2s var(--motion-ease); }
.steps li { border-top-color:#d4d8cd; }
.steps li::before { content:''; position:absolute; height:2px; background:#b68b38; left:0; right:0; top:-1px; transform-origin:left; }
.motion-ready .steps li::before { transform:scaleX(0); transition:transform 1s var(--motion-ease); }
.motion-ready .steps li.is-in-view::before { transform:scaleX(1); transition-delay:var(--reveal-delay,0ms); }
.pillar { position:relative; }
.pillar::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:#b68b38; transform:scaleX(0); transform-origin:left; transition:transform .4s var(--motion-ease); }
.button { transition:background .25s,transform .35s var(--motion-ease),box-shadow .35s; }
.button::after { content:none; font-size:18px; font-weight:400; transition:transform .35s var(--motion-ease); }
.header nav a:not(.nav-contact),.text-link,.email-link { position:relative; }
.text-link,.email-link { text-decoration:none; background:linear-gradient(currentColor,currentColor) left bottom/100% 1px no-repeat; padding-bottom:3px; transition:background-size .3s; }
.header nav a:not(.nav-contact)::after { content:''; position:absolute; left:0; right:0; bottom:-5px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.nav-contact { transition:background .25s,border-color .25s; }
.founder-grid summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; padding:4px 2px 9px; }
.founder-grid summary::-webkit-details-marker { display:none; }
.founder-grid summary::after { content:'+'; flex:none; display:grid; place-items:center; width:28px; height:28px; border:1px solid #ced4c5; border-radius:50%; font-size:20px; line-height:1; color:#805a16; transition:transform .35s var(--motion-ease),background .25s; }
.founder-grid details[open] summary::after { transform:rotate(45deg); background:#f3f3ed; }
.bio-content { display:flow-root; padding-bottom:3px; }
.founder-grid details.is-animating { overflow:hidden; }
@media(hover:hover) and (pointer:fine) {
  .hero-image:hover>img,.photo-frame:hover img,.bench-photo:hover img { transform:scale(1.035); }
  .button:hover { transform:translateY(-3px); box-shadow:0 8px 22px #0002; }
  .button:hover::after { transform:translate(2px,-2px); }
  .pillar:hover::after { transform:scaleX(1); }
  .header nav a:hover::after { transform:scaleX(1); }
  .nav-contact:hover { background:#ffffff0c; border-color:#dfb85f; }
  .text-link:hover,.email-link:hover { background-size:35% 1px; }
}
@media(prefers-reduced-motion:no-preference) {
  @supports(animation-timeline:scroll()) {
    body::before { content:''; position:fixed; left:0; top:0; width:100%; height:3px; background:#dfb85f; z-index:20; pointer-events:none; transform-origin:left; animation:reading-progress linear; animation-timeline:scroll(root); }
    @keyframes reading-progress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
  }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .motion-ready .steps li::before { transform:none; }
  .hero-image:hover>img,.photo-frame:hover img,.bench-photo:hover img,.button:hover,.button:hover::after { transform:none; }
}
@media print { body::before { display:none; } .motion-ready .steps li::before { transform:none; } }
