/* One button system for the whole site (loaded last).
   Primary: cobalt fill (Meet Jacob, Ask about coaching/speaking). Secondary: outline (Explore the Library, Moments arrows).
   Text links: underline that fills in (Discover his story, Get to know Jacob).
   Every control answers a tap within 100ms, hover only adds polish (never the only signal), and nothing changes the layout. */

.hero-bottom button,.hero-bottom a,.coaching-cta,.moments-controls button,
.personal-statement button:not(:where(.letter-paper)),.closing .author-link,.contact-mail{
 cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
 transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out,box-shadow .18s ease-out,transform .12s ease-out,filter .12s ease-out}

/* Primary */
.hero-bottom button,.coaching-cta{font-weight:600}
@media(hover:hover){
 .hero-bottom button:hover,.coaching-cta:hover{background:var(--cobalt-hover);border-color:var(--cobalt-on-dark-hi);box-shadow:0 8px 20px -10px rgba(var(--cobalt-on-dark-rgb),.7);transform:translateY(-1px)}
 .hero-bottom a:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff}
 .moments-controls button:hover{background:rgba(255,255,255,.1)}
 /* Text links: the underline thickens into a soft cobalt bar. */
 .personal-statement button:not(:where(.letter-paper)):hover{box-shadow:inset 0 -.9em 0 rgba(var(--cobalt-rgb),.18)}
 .closing .author-link:hover{box-shadow:inset 0 -.9em 0 rgba(var(--cobalt-on-dark-rgb),.3)}
}

/* Pressed: immediate, small, and never moves neighbours. */
.hero-bottom button:active,.hero-bottom a:active,.coaching-cta:active,.moments-controls button:active,
.personal-statement button:not(:where(.letter-paper)):active,.closing .author-link:active,.contact-mail:active{
 transform:translateY(1px) scale(.98);filter:brightness(.92);box-shadow:none;transition-duration:.06s}

/* The text links have no box of their own, so give them room to be pressed. */
.personal-statement button:not(:where(.letter-paper)),.closing .author-link{padding-inline:2px;border-radius:2px;min-height:44px}
/* The words sit on their underline; the extra height for the finger goes above them. */
.personal-statement button:not(:where(.letter-paper)){display:inline-flex;align-items:flex-end;padding-bottom:5px}

/* Keyboard focus: same cobalt ring, with a gap so it never touches the label. */
.hero-bottom :focus-visible,.coaching-cta:focus-visible,.moments-controls button:focus-visible,
.personal-statement button:not(:where(.letter-paper)):focus-visible,.closing .author-link:focus-visible,.contact-mail:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
 .hero-bottom button,.hero-bottom a,.coaching-cta,.moments-controls button,.personal-statement button:not(:where(.letter-paper)),.closing .author-link,.contact-mail{transition:none}
 .hero-bottom button:hover,.coaching-cta:hover,.hero-bottom button:active,.hero-bottom a:active,.coaching-cta:active,.moments-controls button:active,
 .personal-statement button:not(:where(.letter-paper)):active,.closing .author-link:active,.contact-mail:active{transform:none}
}
