/* Editorial motion is an enhancement, never a condition for reading a page. */
.reveal, .reveal.visible { opacity: 1; transform: none; transition: none; }

/* Retire the original perpetual scoop/whisk/sparkle loops. */
.ritual-step .ritual-illustration *,
.ritual-step.visible .ritual-illustration * { animation: none; }
.ritual-step:hover .step-icon { transform: none; }

.editorial-photo { overflow: hidden; }
.heritage-photo,.story-experience-photo { overflow:hidden; }
.experience-copy h1 .hero-line { display:inline-block; max-width:100%; vertical-align:top; }
.chapter-nav a { transition:color 220ms ease, border-color 220ms ease, background-color 220ms ease; }
.chapter-nav a[aria-current='location'] {
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:6px;
}
.chapter-nav a:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.chapter-nav a>span { transition:color 220ms ease, translate 300ms cubic-bezier(.22,1,.36,1); }
.chapter-nav a[aria-current='location']>span { translate:2px 0; }
.experience-shop>span, .experience-discover>span, .story-chapter-link>span {
  display:inline-block;
  transition:translate 320ms cubic-bezier(.22,1,.36,1);
}
.experience-shop:focus-visible>span { translate:3px -2px; }
.story-chapter-link:focus-visible>span { translate:3px 3px; }
/* The motion module owns the product frame's entrance; avoid a second
   entrance from commerce-finish.css on the same photograph. */
.order-page .order-aside .aside-photo img { animation: none; }

.button {
  transition: background-color 220ms ease, color 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}
.button:hover, .button:active { transform: none; }
.button > span:last-child:not(.hero-buy-price),
.journal-grid a b,
.story-down span {
  display: inline-block;
  transition: transform 320ms cubic-bezier(.22, 1, .36, 1);
}
.desktop-nav a {
  transition: color 180ms ease;
}
.desktop-nav a:hover { opacity: 1; color: var(--pink); }
.desktop-nav a::after {
  content: '';
  position: absolute;
  height: 1px;
  inset: auto 0 3px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 280ms cubic-bezier(.22, 1, .36, 1);
}
.desktop-nav a[aria-current='page']::after,
.desktop-nav a:focus-visible::after { transform: scaleX(1); }
.menu-toggle i {
  transition: transform 250ms cubic-bezier(.22, 1, .36, 1);
  transform-origin: center;
}
.menu-toggle[aria-expanded='true'] i:first-child { transform: translateY(3px) rotate(45deg); }
.menu-toggle[aria-expanded='true'] i:last-child { transform: translateY(-3px) rotate(-45deg); }

@media (hover: hover) and (pointer: fine) {
  .desktop-nav a:hover::after { transform: scaleX(1); }
  .button:not(:disabled):hover { box-shadow: 0 5px 14px #49342e14; }
  .button:not(:disabled):hover > span:last-child:not(.hero-buy-price) { transform: translate(3px, -2px); }
  .journal-grid a:hover b { transform: translate(3px, -2px); }
  .story-down:hover span { transform: translateY(3px); }
  .editorial-photo > img, .feature-image:not(.koume-campaign) > img, .aside-photo > img,
  .story-editorial-image > img, .home-story-photo > img, .heritage-photo > img, .story-experience-photo > img, .journal-grid img {
    transition: scale 850ms cubic-bezier(.22, 1, .36, 1), filter 320ms ease;
  }
  /* The independent scale property preserves the product's existing rotation. */
  .editorial-photo:hover > img, .feature-image:not(.koume-campaign):hover > img, .aside-photo:hover > img { scale: 1.018; }
  .story-editorial-image:hover > img, .home-story-photo:hover > img { scale: 1.018; }
  .heritage-photo:hover > img { scale:1.018; }
  .story-experience-photo:hover > img { scale:1.018; }
  .journal-grid a:hover img { scale: 1.012; }
  .experience-shop:hover>span { translate:3px -2px; }
  .experience-discover:hover>span { translate:0 3px; }
  .story-chapter-link:hover>span { translate:3px 3px; transform:none; }
  .text-link > span { display:inline-block; transition:transform 300ms cubic-bezier(.22,1,.36,1); }
  .text-link:hover > span { transform:translate(3px,-2px); }
}
@media (max-width: 750px) {
  .desktop-nav.open { animation: menu-arrive 240ms cubic-bezier(.22, 1, .36, 1); }
}
@keyframes menu-arrive {
  from { opacity: .7; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}
details[open] > .faq-answer {
  animation: answer-arrive 240ms cubic-bezier(.22,1,.36,1);
}
details.blend-details[open] > :not(summary),
details.product-profile-details[open] > :not(summary) {
  animation: answer-arrive 320ms cubic-bezier(.22,1,.36,1);
}
.blend-details summary>span { transition:transform 260ms cubic-bezier(.22,1,.36,1); }
:is(.cup-switch,.product-views) button {
  transition:background-color 220ms ease, border-color 220ms ease, color 220ms ease;
}
.quantity-stepper button, .basket-item-qty button, .calendar-controls button {
  transition:background-color 180ms ease, color 180ms ease;
}
.quantity-stepper button:not(:disabled):active,
.basket-item-qty button:not(:disabled):active { background:#49342e18; }
.nav-shop [data-basket-count] { transition:color 220ms ease, background-color 220ms ease; }
@keyframes answer-arrive {
  from { opacity:.75; transform:translateY(4px); }
  to { opacity:1; transform:translateY(0); }
}

/* JS mirrors save-data and live OS preference changes into this class. */
.motion-still *, .motion-still *::before, .motion-still *::after {
  animation: none !important;
  transition: none !important;
}
.motion-still .button > span:last-child,
.motion-still .journal-grid a b,
.motion-still .story-down span,
.motion-still .text-link > span { transform: none !important; }
.motion-still .hero-buy-price b, .motion-still .hero-discover span { transform:none !important; }
.motion-still .chapter-nav a>span,
.motion-still .experience-shop>span,
.motion-still .experience-discover>span,
.motion-still .story-chapter-link>span { translate:none !important; transform:none !important; }
.motion-still .editorial-photo > img,
.motion-still .feature-image > img,
.motion-still .aside-photo > img,
.motion-still .story-editorial-image > img,
.motion-still .home-story-photo > img,
.motion-still .heritage-photo > img,
.motion-still .story-experience-photo > img,
.motion-still .journal-grid img { scale:1 !important; }
.motion-still { scroll-behavior:auto !important; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .button > span:last-child, .journal-grid a b, .story-down span, .text-link > span { transform: none !important; }
  .hero-buy-price b, .hero-discover span { transform:none !important; }
  .chapter-nav a>span, .experience-shop>span, .experience-discover>span,
  .story-chapter-link>span { translate:none !important; transform:none !important; }
  .editorial-photo > img, .feature-image > img, .aside-photo > img,
  .story-editorial-image > img, .home-story-photo > img, .heritage-photo > img, .story-experience-photo > img, .journal-grid img { scale:1 !important; }
}
