/* TROON 0930 — additive motion only. Existing type, palette, buttons and images stay authoritative. */
:root {
  --tm-control: 200ms;
  --tm-content: 320ms;
  --tm-panel: 240ms;
  --tm-exit: 160ms;
  --tm-reveal: 480ms;
  --tm-enter: cubic-bezier(.22,.61,.36,1);
  --tm-standard: cubic-bezier(.4,0,.2,1);
}
/* W2: the existing full-screen viewer keeps one frame, including a caption row. */
#photo-viewer.tm-gallery figure {
  display: grid;
  grid-template-rows: minmax(0, 1fr) 3em;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  justify-items: center;
}
#photo-viewer.tm-gallery figure > img {
  grid-area: 1 / 1;
  width: 100%; height: 100%; min-height: 0;
  max-width: 100%; max-height: 100%; object-fit: contain;
}
#photo-viewer.tm-gallery figcaption {
  grid-area: 2 / 1; align-self: start; text-align: center; max-width: 100%;
}
#photo-viewer .tm-photo-old { pointer-events: none; }
/* W3: no layout shift, font change or new copy. */
.tm-arrival-title { position: relative; }
.tm-arrival-line {
  display: block; position: absolute; left: 0; bottom: -10px;
  width: min(100%, 200px); height: 1px;
  background: var(--troon-sage, #596156); transform-origin: left;
  pointer-events: none;
}
html.tm-membership { scroll-behavior: auto; }
/* W4: exit copy is inert and retains the two existing pills, never a card. */
.om-sheet.tm-exit-copy { pointer-events: none; }
/* W5: activity sits inside reserved button padding; its presence cannot move the label. */
.tm-submit { position: relative; }
.tm-submit::after {
  content: ''; position: absolute; right: 7px; top: calc(50% - 6px);
  width: 12px; height: 12px; border: 1px solid currentColor;
  border-right-color: transparent; border-radius: 50%; box-sizing: border-box;
  opacity: 0; pointer-events: none;
}
.tm-submit.tm-busy::after { opacity: 1; animation: tm-activity 800ms linear infinite; }
@keyframes tm-activity { to { transform: rotate(360deg); } }
html.tm-page-hidden .tm-submit.tm-busy::after { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .tm-submit.tm-busy::after { animation: none; border-right-color: currentColor; }
}
html.tm-membership .om-section[id] { scroll-margin-top: 120px; }
