/* Akeakamai upgrade: native, lightweight interactions and existing brand tokens. */
[hidden] { display: none !important; }
[id] { scroll-margin-top: 100px; }
.hero-content { animation: none; }
.leaf-shadow, .final-cta::before { animation: none; }
.hero-note, .hero-content > p:not(.eyebrow):not(.hero-tagline) { animation: supporting-enter 700ms cubic-bezier(.22,1,.36,1); }
@keyframes supporting-enter { from { opacity: .35; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.reveal { opacity: 1; transform: none; transition: none; }
.reveal.is-visible { animation: section-arrive 760ms cubic-bezier(.22,1,.36,1) var(--arrival-delay, 0ms) both; }
@keyframes section-arrive { from { opacity: .25; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.button { transition: color 160ms, background-color 160ms, box-shadow 160ms, transform 160ms; }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0); }
.site-nav a { text-underline-offset: .3em; text-decoration-thickness: 2px; transition: text-decoration-color 160ms; }
.site-nav a:hover { text-decoration: underline; }
.methodology-item { transition: border-color 180ms; }
.methodology-item:hover { border-color: var(--bronze); }
.testimonials { background: var(--paper); border-block: 1px solid var(--line); }
.testimonial-layout { display: grid; grid-template-columns: 1fr 1.65fr; gap: clamp(32px, 6vw, 90px); align-items: start; }
.testimonial-layout h2 { font-size: clamp(30px, 3.5vw, 48px); line-height: 1.12; }
.testimonial-stage { min-width: 0; display: flex; flex-direction: column; }
.testimonial-slides { order: 0; }
.testimonial-slide { padding-block: 0 24px; }
.testimonial-slide h3 { font-size: 18px; line-height: 1.5; margin: 0 0 18px; }
.testimonial-slide blockquote { margin: 0; font-family: var(--font-serif); color: var(--forest); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.4; }
.testimonial-slide blockquote p { margin: 0 0 24px; }
.quote-attribution { font-size: 16px; line-height: 1.65; margin: 0; }
.quote-attribution a { text-underline-offset: 4px; }
[data-initialized] .testimonial-slides { display: grid; }
[data-initialized] .testimonial-slide { grid-area: 1 / 1; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 300ms ease, visibility 0s 300ms; }
[data-initialized] .testimonial-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity 300ms ease; }
.carousel-controls { order: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px solid var(--line); padding-top: 18px; }
.carousel-controls button { min-height: 44px; min-width: 60px; padding: 8px 12px; border: 1px solid var(--line); background: transparent; color: var(--forest); border-radius: 4px; cursor: pointer; transition: background-color 160ms; }
.carousel-controls button:hover { background: var(--ivory-deep); }
.carousel-controls [data-position] { margin-left: auto; font-variant-numeric: tabular-nums; }
.carousel-controls button:disabled { cursor: default; opacity: .65; }
.membership { background: var(--ivory-deep); }
.membership-inner { display: flex; align-items: center; justify-content: center; gap: 32px; padding-block: 24px; }
.membership a { flex: 0 0 146px; }
.membership img { width: 146px; height: auto; }
.membership p { max-width: 34ch; color: var(--forest); font-size: 20px; font-weight: 600; }
.text-link { display: inline-block; padding-block: 12px; color: var(--bronze-dark); font-weight: 700; text-underline-offset: 5px; }
.teaching-context { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 30px; }
.resources { background: var(--paper); }
.resources h3 { font-size: clamp(24px,2.5vw,32px); line-height: 1.3; color: var(--forest); }
.upgrade-article { max-width: 920px; }
.article-copy { max-width: 70ch; margin: auto; font-size: 18px; line-height: 1.8; }
.article-copy h2 { margin: 56px 0 18px; font-size: clamp(26px,3vw,36px); line-height: 1.2; color: var(--forest); }
.article-copy p { margin: 0 0 22px; }
.article-copy ul, .article-copy ol { padding-left: 26px; }
.article-copy li { margin-block: 12px; }
.article-copy a:not(.button), .blog-meta a { text-decoration: underline; text-underline-offset: 4px; color: var(--bronze-dark); }
.article-copy table { width: 100%; border-collapse: collapse; font-size: 16px; }
.article-copy th, .article-copy td { text-align: left; padding: 12px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.static-testimonials .testimonial-slide { border-bottom: 1px solid var(--line); padding-block: 24px; }
.static-testimonials blockquote { font-size: 24px; }
.prompt-block { padding: 24px; border-left: 3px solid var(--bronze); background: var(--paper); }
.share-tools { margin-top: 40px; }
[data-copy-status], [data-share-status] { display: block; margin-top: 12px; }
@media (max-width: 1023px) { .testimonial-layout { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 767px) {
 .testimonials { padding: 48px 20px; }
 .testimonials .section-inner { width: 100%; }
 .testimonial-slide blockquote { font-size: 22px; }
 .membership-inner { flex-direction: column; gap: 8px; padding: 24px; text-align: center; }
 .membership a { flex-basis: auto; }
 .membership p { margin: 4px 0; font-size: 18px; }
 .article-copy { font-size: 17px; }
 .article-copy h2 { margin-top: 40px; }
 .carousel-controls { gap: 6px; }
 .carousel-controls button { padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
 .button:hover { transform: none; }
}

/* Motion refinement: a clear entrance, gentle depth and useful interaction feedback. */
.motion-word { display: inline-block; animation: word-arrive 780ms cubic-bezier(.22,1,.36,1) var(--word-delay,0ms) both; }
@keyframes word-arrive { from { opacity: .3; transform: translateY(.35em) rotateX(8deg); } to { opacity: 1; transform: none; } }
.hero img { transform: translate3d(0,var(--coast-shift,0px),0) scale(1.045); }
.site-nav a:not(.nav-cta), .text-link { background-image: linear-gradient(currentColor,currentColor); background-size: 0% 1px; background-repeat: no-repeat; background-position: left calc(100% - 6px); transition: background-size 240ms ease, color 180ms ease; }
.site-nav a:not(.nav-cta):hover, .site-nav a:not(.nav-cta):focus-visible, .text-link:hover, .text-link:focus-visible { background-size: 100% 1px; text-decoration: none; }
.button:hover, .button:focus-visible { transform: translateY(-3px); box-shadow: 0 7px 18px rgba(13,36,29,.15); }
.button:active { transform: translateY(0) scale(.985); }
.methodology-item { position: relative; }
.methodology-item::before { content: ''; display: block; width: 52px; height: 2px; margin-bottom: 24px; background: var(--bronze); transform-origin: left; }
.methodology-item.is-visible::before { animation: method-trace 900ms cubic-bezier(.22,1,.36,1) var(--arrival-delay,0ms) both; }
@keyframes method-trace { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.reading-progress { position: fixed; top: 0; left: 0; z-index: 110; width: 100%; height: 3px; background: var(--bronze); transform: scaleX(0); transform-origin: left; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
 .hero img { transform: none; }
 .motion-word { animation: none; }
 .button:hover, .button:focus-visible, .button:active { transform: none; }
 .reading-progress { display: none; }
}
