:root{--motion-standard:cubic-bezier(.22,.8,.25,1);--motion-spring:cubic-bezier(.22,.8,.25,1);--motion-emphasized:cubic-bezier(.22,.8,.25,1);--motion-panel-duration:450ms}
.rail-progress [data-rail-progress]{transform-origin:left center}
@media(prefers-reduced-motion:no-preference){
 html.expressive-boot :is(.site-header .brand,.header-actions,.home-intro__date,.home-intro__line,.home-intro__bubble),.expressive-wait{opacity:0}
 .site-header .brand{transform-origin:left center}.header-actions{transform-origin:right center}.home-intro__line{transform-origin:left bottom}.home-intro__bubble{transform-origin:100% 120%}
 /* Keep the responsive, equal corner radius from screen.css throughout the motion. */
 .site-nav{opacity:0;transform:translate3d(0,-6px,0) scale(.985);transform-origin:top right;transition:opacity var(--motion-panel-duration) var(--motion-spring),transform var(--motion-panel-duration) var(--motion-spring),visibility 0s linear var(--motion-panel-duration)}
 .site-nav.is-open{opacity:1;transform:none;transition-delay:0s}
 .site-nav li{opacity:0;transition:opacity 275ms var(--motion-standard)}
 .site-nav.is-open li{opacity:1;transition-delay:calc(20ms + var(--expressive-order,0)*12ms)}
 .site-nav li:focus-within{opacity:1;transition:none}
 .header-icon--menu path{transition:transform 350ms var(--motion-spring)}
 button,.section-link,.load-more,.pill-button,.kg-btn{transition:transform 325ms var(--motion-standard),border-radius 525ms var(--motion-spring),background-color 325ms var(--motion-standard),color 325ms ease}
 .header-actions :is(.search-button,.nav-toggle){transition:transform 275ms var(--motion-standard),background-color 275ms var(--motion-standard),color 275ms ease}
 button:active:not(:disabled),.section-link:active,.load-more:active{transform:scale(.96)}
 .story-card,:is(.podium-card,.honour-card),.author-card{transition:transform 575ms var(--motion-spring)}
 .story-card__media img,.home-template .rail-section--featured .feature-card img:not(.feature-card__avatar),.author-card__media img,:is(.podium-card__media,.honour-card__media) img{transition:transform 800ms var(--motion-emphasized)}
 .newsletter__field{transition:transform 525ms var(--motion-spring),border-radius 525ms var(--motion-spring)}
 .newsletter__field:focus-within{transform:scale(1.012);border-radius:30px 30px 12px 30px}
 .story-card.is-pointer-hover,:is(.podium-card,.honour-card).is-pointer-hover,.author-card.is-pointer-hover{transform:translateY(-6px) scale(1.008)}
 .story-card.is-pointer-hover .story-card__media img,.author-card.is-pointer-hover .author-card__media img,:is(.podium-card,.honour-card).is-pointer-hover :is(.podium-card__media,.honour-card__media) img{transform:scale(1.045)}
 .home-template .rail-section--featured .feature-card.is-pointer-hover img:not(.feature-card__avatar){transform:scale(1.035)}
 .site-nav a{transition:transform 275ms var(--motion-spring),background-color 250ms var(--motion-standard)}
 .site-nav a.is-pointer-hover{transform:translateX(4px);background:rgba(255,255,255,.09)}
 .rail-control.is-pointer-hover:not(:disabled):not(:active),.search-button.is-pointer-hover:not(:active),.nav-toggle.is-pointer-hover:not(:active){transform:scale(1.06)}
 .image-lightbox:not([hidden]){animation:expressive-fade 325ms var(--motion-standard) both}
 .image-lightbox:not([hidden]) .image-lightbox__figure{animation:expressive-lightbox 650ms var(--motion-spring) both}
}
@keyframes expressive-fade{from{opacity:0}to{opacity:1}}
@keyframes expressive-lightbox{from{opacity:0;transform:translate3d(0,12px,0) scale(.97)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.expressive-wait{opacity:1!important}}
@media print{.expressive-wait{opacity:1!important}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Loading affects opacity only; the surrounding layout keeps its existing dimensions. */
@media(prefers-reduced-motion:no-preference){.media-loading{opacity:0}}
@media(prefers-reduced-motion:reduce){.media-loading{opacity:1!important}}
@media print{.media-loading{opacity:1!important}}

@media(prefers-reduced-motion:no-preference){.newsletter__form:is(.loading,.success,.error) .form-message{animation:expressive-fade 450ms var(--motion-standard) both}}

/* Pointer states transferred from the iFeed base styles. */
.load-more.is-pointer-hover:not([aria-disabled=true]),.pagination a.is-pointer-hover,.pill-button.is-pointer-hover,.section-link.is-pointer-hover,[role=button].is-pointer-hover:not([aria-disabled=true]),button.is-pointer-hover:not(:disabled):not([aria-disabled=true]),input.is-pointer-hover:not(:disabled):not([aria-disabled=true]){background:color-mix(in srgb,var(--accent) 8%,transparent);filter:none}
.load-more:active:not([aria-disabled=true]),.pagination a:active,.pill-button:active,.section-link:active,[role=button]:active:not([aria-disabled=true]),button:active:not(:disabled),input:is([type=button],[type=submit],[type=reset]):active:not(:disabled){background:color-mix(in srgb,var(--accent) 13%,transparent);filter:none;}
.load-more.is-error.is-pointer-hover{background:color-mix(in srgb,#b42318 9%,transparent)}
.site-header .header-actions :is(.search-button,.nav-toggle).is-pointer-hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
body.menu-open .site-header .header-actions :is(.search-button,.nav-toggle).is-pointer-hover{background:color-mix(in srgb,color-mix(in srgb,var(--accent) 8%,#fff) 12%,transparent)}
.site-header .header-actions :is(.search-button,.nav-toggle):active{background:color-mix(in srgb,var(--accent) 13%,transparent)}
body.menu-open .site-header .header-actions :is(.search-button,.nav-toggle):active{background:color-mix(in srgb,color-mix(in srgb,var(--accent) 13%,#fff) 18%,transparent)}
.rail-control.is-pointer-hover:not(:disabled){color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.newsletter__field button.is-pointer-hover:not(:disabled){background:color-mix(in srgb,var(--accent) 8%,transparent)}
/* iFeed keeps Ghost editor buttons stationary in every interaction state. */
.image-lightbox__close.is-pointer-hover,.image-lightbox__close:focus-visible{color:#fff;background:rgba(255,255,255,.14)}
.gh-content :is(.kg-btn,.kg-header-card-button,.kg-product-card-button,.kg-signup-card-button){transition:none!important}
.gh-content :is(.kg-btn,.kg-header-card-button,.kg-product-card-button,.kg-signup-card-button):hover{transform:none!important;scale:none!important;filter:none!important;opacity:1!important;box-shadow:none!important}
.gh-content .kg-button-card,.gh-content .kg-button-card .kg-btn{animation:none!important;transition:none!important;transform:none!important;translate:none!important;scale:none!important}

/* DroidReader integration: preserve layout while exposing the source motion. */
.site-nav, .site-nav.is-open { border-radius: 28px; }
.site-nav li { transform: none; }
.site-nav a { transform: none; }
.author-card__media img { transform: none; }
@media(max-width:720px){.site-nav,.site-nav.is-open{border-radius:24px}}
@media(prefers-reduced-motion:no-preference){
  .site-nav li { opacity:0; }
  .site-nav.is-open li { opacity:1; }
  .site-nav a.is-pointer-hover { transform:translateX(4px); }
}
/* iFeed's transparent control hover uses its accent foreground. */
.site-header .header-actions :is(.search-button,.nav-toggle).is-pointer-hover,
body.menu-open .site-header .header-actions :is(.search-button,.nav-toggle).is-pointer-hover,
.newsletter__field button.is-pointer-hover,.section-link.is-pointer-hover,.load-more.is-pointer-hover,.pagination a.is-pointer-hover,.pill-button.is-pointer-hover {color:var(--accent)}

/* Featured cards share the article-card hover lift and timing. */
@media (prefers-reduced-motion: no-preference) {
  .home-template .rail-section--featured .feature-card {
    transition: transform 575ms var(--motion-spring);
  }
  .home-template .rail-section--featured .feature-card.is-pointer-hover {
    transform: translateY(-6px) scale(1.008);
  }
}
