/* Lightweight motion: transform and opacity, with visible-by-default content. */
.hero h1 > .hero-line { display: block; color: var(--green); }
.hero h1 > .hero-line-accent { color: #7fa875; }

.brand-ribbon > .ribbon-track {
  display: flex;
  width: max-content;
  min-width: 0;
  gap: 0;
  margin: 0;
  justify-content: flex-start;
}
.ribbon-group {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: space-around;
  width: max-content;
  min-width: 100vw;
  gap: 44px;
  padding-inline: 22px;
}
.brand-ribbon span { white-space: nowrap; }
.motion-ready .ribbon-track { animation: ribbon-flow 32s linear infinite; }
.brand-ribbon:hover .ribbon-track { animation-play-state: paused; }
.motion-ready .hero-orbit:before {
  border-style: dashed;
  border-color: #bed2ae;
  animation: orbit-turn 65s linear infinite;
}
.motion-ready .hero-orbit:after { animation: orbit-breathe 7s ease-in-out infinite; }
.hero-can-float {
  translate: var(--pointer-x, 0px) calc(var(--pointer-y, 0px) + var(--scroll-shift, 0px));
  transition: translate .65s cubic-bezier(.2, .7, .2, 1);
}
.motion-ready .zero-seal { animation: seal-drift 9s ease-in-out infinite; }
.motion-ready .duo-front { animation: front-drift 8s ease-in-out infinite; }
.motion-ready .duo-back { animation: back-drift 9s ease-in-out infinite; }
.motion-ready .scroll-cue > span { animation: scroll-hint 2.8s ease-in-out 3; }
.motion-ready .signature-art img {
  transform: translateY(var(--photo-shift, 0px)) scale(1.08);
  transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
.motion-ready .signature-art:hover img {
  transform: translateY(var(--photo-shift, 0px)) scale(1.12);
}
.button { position: relative; overflow: hidden; isolation: isolate; }
.button:after {
  content: '';
  position: absolute;
  top: -55%; left: -75%; width: 50%; height: 210%;
  background: linear-gradient(90deg, transparent, #ffffff25, transparent);
  transform: skewX(-20deg);
  transition: left .65s ease;
  pointer-events: none;
}
.button:hover:after { left: 140%; }
.button > span, .quiet-link > span, .text-button > span, .header-cta > span {
  display: inline-block;
  transition: transform .25s ease;
}
.button:hover > span, .quiet-link:hover > span, .text-button:hover > span, .header-cta:hover > span {
  transform: translate(3px, -2px);
}
.button:active { transform: translateY(-1px) scale(.985); }
.gallery-view .thumbnail { transition: transform .35s cubic-bezier(.2, .7, .2, 1); }
.gallery-view:hover .thumbnail { transform: translateY(-4px) rotate(-5deg); }
.gallery-view { transition: background .2s, border-color .2s, box-shadow .2s; }
.disclosure-icon { transition: transform .3s ease; }
summary:hover .disclosure-icon { transform: rotate(90deg); }
details[open] summary:hover .disclosure-icon { transform: none; }
.motion-toggle {
  position: relative; width: max-content; margin-top: 18px;
  display: flex; align-items: center; gap: 10px;
  border: 1px solid #c5d2bf; border-radius: 30px;
  padding: 8px 13px; min-height: 38px;
  color: var(--muted); background: transparent;
  font-size: 12px;
}
.motion-toggle:hover { background: #e8efe0; color: var(--green); }
.motion-toggle-icon { width: 8px; height: 10px; border-inline: 2px solid currentColor; }
.motion-toggle[aria-pressed=true] .motion-toggle-icon {
  width: 0; height: 0;
  border-left: 8px solid currentColor;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-right: 0;
}
.motion-paused *, .motion-paused *:before, .motion-paused *:after,
.motion-background *, .motion-background *:before, .motion-background *:after,
.motion-offscreen, .motion-offscreen *, .motion-offscreen:before, .motion-offscreen:after,
.motion-offscreen *:before, .motion-offscreen *:after {
  animation-play-state: paused !important;
}
.motion-paused, .motion-paused * { scroll-behavior: auto !important; }
.motion-paused *, .motion-paused *:before, .motion-paused *:after { transition: none !important; }

@keyframes ribbon-flow { to { transform: translateX(-50%); } }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
@keyframes orbit-breathe {
  0%, 100% { transform: scale(.98); opacity: .65; }
  50% { transform: scale(1.035); opacity: 1; }
}
@keyframes seal-drift {
  0%, 100% { transform: translateY(0) rotate(10deg); }
  50% { transform: translateY(-8px) rotate(4deg); }
}
@keyframes front-drift {
  0%, 100% { transform: translateY(0) rotate(-13deg); }
  50% { transform: translateY(-13px) rotate(-10deg); }
}
@keyframes back-drift {
  0%, 100% { transform: translateY(0) rotate(16deg); }
  50% { transform: translateY(9px) rotate(19deg); }
}
@keyframes scroll-hint {
  0%, 70%, 100% { transform: translateY(0); }
  35% { transform: translateY(5px); }
}
@media (max-width: 600px) {
  .ribbon-group { gap: 27px; padding-inline: 14px; }
  .motion-toggle { padding: 9px 12px; font-size: 11px; }
  .hero-can-float { translate: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .hero-can-float { translate: none; }
  .motion-ready .signature-art img { transform: none; }
  .motion-toggle { display: none; }
}
