/* Rustic House motion layer. Every rule starts with html.rh-m so nothing changes when motion is off.
   Initial (hidden) states exist ONLY under html.rh-m; rh-motion.js adds html.rh-m-on when it starts,
   and the 2.8 s failsafe in rh-motion-head.js removes rh-m if the script never runs. */

/* Gold sample A: scroll progress bar */
html.rh-m .rh-progress {
    position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 9999;
    background: var(--primary, #8C5A3C);
    transform-origin: 0 50%; transform: scaleX(0); pointer-events: none;
}

/* Gold sample B: room photo opens like a curtain, image settles from a slight zoom */
html.rh-m .room-image { overflow: hidden; }
html.rh-m .room-image.rh-gs { clip-path: inset(0 0 100% 0); }
html.rh-m .room-image.rh-gs img { transform: scale(1.14); }

/* C: OTA review scores count up; the number waits hidden until its badge scrolls in */
html.rh-m .ota-score.rh-gs { opacity: 0; }

/* D: section headers rise in, the eyebrow appears 0.1 s before the title */
html.rh-m .section-header .eyebrow.rh-gs { opacity: 0; }
html.rh-m .section-header .section-title.rh-gs { opacity: 0; transform: translateY(24px); }

/* E needs no initial state: the hero zoom is a scrub tied to the scrollbar,
   it starts from the natural look and never hides anything. */

/* F: amenity icons pop in from small and dim */
html.rh-m .amenity-icon.rh-gs { opacity: 0; transform: scale(0.6); }

/* G: review stars start dim and brighten one by one */
html.rh-m .review-card .stars i.rh-gs { opacity: 0.25; }
