/* The reading line ties each chapter back to the same yellow thread. */
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;z-index:30;pointer-events:none}
/* Feedback stays local to the control and never moves the page layout. */
.desktop-nav a,.header-contact,.signature-strip a,.footer-socials a,.back-top,.text-link:not(.text-link-dark){text-decoration-line:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:.4em;transition:color 160ms var(--ease-out),text-decoration-color 160ms var(--ease-out)}
.desktop-nav a:focus-visible,.header-contact:focus-visible,.signature-strip a:focus-visible,.footer-socials a:focus-visible,.back-top:focus-visible,.text-link:not(.text-link-dark):focus-visible{text-decoration-color:currentColor}
.contact-form :is(input,textarea,select){transition:border-color 160ms var(--ease-out),background-color 160ms var(--ease-out)}
.contact-form :is(input,textarea,select):focus{border-color:var(--gold,#ffcc00);background-color:rgb(255 204 0/.025)}
.contact-form .field label{transition:color 160ms var(--ease-out)}
.contact-form .field:focus-within label{color:var(--gold,#ffcc00)}
@media(hover:hover){
  .desktop-nav a:hover,.header-contact:hover,.signature-strip a:hover,.footer-socials a:hover,.back-top:hover,.text-link:not(.text-link-dark):hover{text-decoration-color:currentColor}
}
@media(prefers-reduced-motion:no-preference){
  .desktop-nav a,.header-contact,.footer-socials a{position:relative;text-decoration:none}
  .desktop-nav a::after,.header-contact::after,.footer-socials a::after{content:"";position:absolute;bottom:6px;left:0;right:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform 260ms var(--ease-out)}
  .desktop-nav a:focus-visible::after,.header-contact:focus-visible::after,.footer-socials a:focus-visible::after{transform:scaleX(1);transform-origin:left}
  .button-gold{position:relative;isolation:isolate;overflow:hidden}
  .button-gold::before{content:"";position:absolute;inset:0;background:var(--white);transform:translateX(-102%);transition:transform 340ms var(--ease-out);z-index:-1;pointer-events:none}
  .button-gold:focus-visible::before{transform:translateX(0)}
  .button,.contact-submit,button:not(:disabled),.expertise summary,.mobile-menu summary{transition:color 160ms var(--ease-out),background-color 160ms var(--ease-out),transform 120ms var(--ease-out)}
  .button:active,.contact-submit:active,button:not(:disabled):active{transform:translateY(2px) scale(.97)}
  .expertise summary:active,.mobile-menu summary:active{transform:translateY(1px)}
  .expertise summary h3{transition:transform 260ms var(--ease-out)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .desktop-nav a:hover::after,.header-contact:hover::after,.footer-socials a:hover::after{transform:scaleX(1);transform-origin:left}
  .button-gold:hover::before{transform:translateX(0)}
  .expertise summary:hover h3{transform:translateX(12px)}
}
@media(prefers-reduced-motion:reduce){
  .reading-progress{display:none}
  .contact-form :is(input,textarea,select),.contact-form .field label,.desktop-nav a,.header-contact,.signature-strip a,.footer-socials a,.back-top,.text-link:not(.text-link-dark){transition:none}
}
