/* Motion layer: deliberately independent from layout/content. */
html.js.reveal-ready [data-reveal] {
  opacity: 1;
  transform: none;
  clip-path: none;
  transition: transform 500ms var(--ease-out), opacity 500ms var(--ease-out);
  will-change: auto;
}

html.js.reveal-ready [data-reveal="scale"] { opacity:1; transform:none; }
html.js.reveal-ready [data-reveal="clip"] { opacity:1; transform:none; clip-path:none; }
html.js.reveal-ready [data-reveal].is-visible { opacity:1; transform:none; }
html.js.reveal-ready [data-reveal="clip"].is-visible { opacity:1; transform:none; clip-path:none; }

.hero-copy .eyebrow,
.hero-copy .display,
.hero-copy .lead,
.hero-actions,
.hero-meta {
  transition-delay: var(--reveal-delay, 0ms);
}
.hero-copy .display { --reveal-delay: 80ms; }
.hero-copy .lead { --reveal-delay: 150ms; }
.hero-actions { --reveal-delay: 220ms; }
.hero-meta { --reveal-delay: 300ms; }

.hero-orb,
.final-cta__orb,
.footer-orb,
.brand-panel__glow {
  animation: organicFloat 10s ease-in-out infinite alternate;
}
.hero-orb--two { animation-duration: 14s; animation-direction: alternate-reverse; }
.final-cta__orb { animation-duration: 16s; }

@keyframes organicFloat {
  0% { transform: translate3d(-2%, -1%, 0) scale(1); }
  50% { transform: translate3d(4%, 2%, 0) scale(1.06); }
  100% { transform: translate3d(0, 5%, 0) scale(.98); }
}

.taste-rail__track { animation: rail 28s linear infinite; }
@keyframes rail { to { transform: translateX(-50%); } }

.hero-note { animation: noteFloat 5.5s ease-in-out infinite; }
@keyframes noteFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-1.5deg); }
  50% { transform: translate3d(0, -10px, 0) rotate(.8deg); }
}

.btn--shine { position: relative; overflow: hidden; isolation: isolate; }
.btn--shine::after {
  content: "";
  position: absolute;
  inset: -50% auto -50% -70%;
  width: 45%;
  transform: skewX(-18deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);
  transition: left 700ms var(--ease-out);
  pointer-events: none;
}
.btn--shine:hover::after { left: 125%; }

.workshop-card {
  transition: transform 500ms var(--ease-out), box-shadow 500ms var(--ease-out), border-color 500ms var(--ease-out);
}
.workshop-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 26px 80px rgba(84,22,80,.13);
  border-color: rgba(84,22,80,.16);
}
.workshop-card img,
.gallery-item img,
.editorial-media img,
.split-feature__media img,
.hero-media img {
  transition: transform 900ms var(--ease-out), filter 700ms var(--ease-out);
}
.workshop-card:hover img { transform: scale(1.035); }
.gallery-item:hover img { transform: scale(1.06); }

.gallery-item { transition: transform 650ms var(--ease-out), border-radius 650ms var(--ease-out); }
.gallery-item:hover { transform: translateY(-6px); border-radius: 42px 18px 42px 18px; }

.site-header { transition: height 350ms var(--ease-out), box-shadow 350ms ease, background 350ms ease; }
.site-header.is-scrolled { box-shadow: 0 12px 42px rgba(84,22,80,.07); background: rgba(255,253,248,.96); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  html.js.reveal-ready [data-reveal] { opacity: 1; transform: none; clip-path: none; }
}

/* F1.4 motion restraint on touch/small screens. */
@media (hover: none), (pointer: coarse) {
  .workshop-card:hover,
  .gallery-item:hover,
  .btn:hover { transform: none; }
  .workshop-card:hover img,
  .gallery-item:hover img { transform: none; }
  .btn--shine::after { display: none; }
}

@media (max-width: 768px) {
  .hero-orb, .final-cta__orb, .footer-orb, .brand-panel__glow { animation-duration: 18s; }
  .hero-note { animation-duration: 8s; }
  .taste-rail__track { animation-duration: 34s; }
}
