/* REVIG motion system — presentation only; visible by default. */
:root{
  --motion-fast:240ms;--motion-component:460ms;--motion-reveal:720ms;
  --motion-ease:cubic-bezier(.22,1,.36,1);--motion-return:cubic-bezier(.2,1.12,.4,1);
  --motion-perspective:1100px;--motion-lift:-3px;--motion-distance:14px;
  --motion-shadow:0 8px 24px -16px rgba(3,22,16,.25);
  --motion-shadow-active:0 16px 32px -18px rgba(3,22,16,.32);
  --ease:var(--motion-ease);--rv-ease:var(--motion-ease);
}
/* Existing hero entrances are replaced by one orchestrated sequence. */
.revig-hero-rule,.revig-title-line,.revig-hero-description,.revig-hero-actions{animation:none}
.revig-home .header-cta,.revig-home .revig-hero-consult,.revig-home .revig-hero-about{animation:none!important}
/* No hidden initial state: JS animates only when an element enters the viewport. */
[data-rv-reveal]{scroll-margin-top:90px}
[data-card-motion]{position:relative;--card-lift:0px;
  transform:perspective(var(--motion-perspective)) rotateX(var(--card-rotate-x,0deg)) rotateY(var(--card-rotate-y,0deg));
  transition:transform var(--motion-component) var(--motion-ease),translate var(--motion-component) var(--motion-ease),scale var(--motion-fast) var(--motion-return),box-shadow var(--motion-component) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease);
}
[data-card-motion].rv-tracking{will-change:transform;transition-duration:160ms}
[data-card-motion].is-pressed{scale:.993;translate:0 1px}
.rv-card-light{position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:1;opacity:0;
  background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,40%),rgba(255,239,198,.075),transparent 65%);
  transition:opacity var(--motion-component) var(--motion-ease)}
:where(.button,.header-cta,.revig-hero-about,.icon-button,.text-link){
  transition:transform var(--motion-fast) var(--motion-return),scale var(--motion-fast) var(--motion-return),box-shadow var(--motion-component) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease),border-color var(--motion-fast) var(--motion-ease),color var(--motion-fast) var(--motion-ease);
}
:where(.button,.header-cta,.revig-hero-about,.icon-button):active{scale:.98}
.button svg,.text-link svg,.revig-hero-about svg{transition:transform var(--motion-fast) var(--motion-ease)}
.desktop-nav a::after{transition:transform var(--motion-component) var(--motion-ease),opacity var(--motion-fast) var(--motion-ease)}
.desktop-nav a{transition:color var(--motion-fast) var(--motion-ease)}
.mobile-menu[open]{animation:rv-menu-in var(--motion-component) var(--motion-ease) both}
.mobile-menu.rv-closing{animation:none}
.mobile-menu nav a{transition:color var(--motion-fast) var(--motion-ease),background-color var(--motion-fast) var(--motion-ease)}
.mobile-menu nav a:active{background:rgba(198,142,5,.06)}
@keyframes rv-menu-in{from{opacity:.5;translate:24px 0}to{opacity:1;translate:0 0}}
@media(hover:hover) and (pointer:fine){
  [data-card-motion]:hover{translate:0 var(--motion-lift);box-shadow:var(--motion-shadow-active)}
  [data-card-motion]:hover .rv-card-light{opacity:1}
  :where(.button,.header-cta,.revig-hero-about):hover{transform:perspective(var(--motion-perspective)) translateY(-1px) rotateX(1deg);box-shadow:var(--motion-shadow-active),inset 0 1px 0 rgba(255,240,210,.12)}
  .product-card:hover .product-image img{transform:scale(1.018);transition:transform var(--motion-reveal) var(--motion-ease)}
  .revig-hero-rule{transform:perspective(var(--motion-perspective)) rotateY(var(--hero-turn,0deg));transition:transform var(--motion-component) var(--motion-ease)}
}
@media(hover:none),(pointer:coarse){
  [data-card-motion]:hover{translate:none;transform:none;--card-lift:0px}
  .rv-card-light{display:none}
  .product-card:hover .product-image img{transform:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  [data-rv-reveal],[data-card-motion],.revig-hero-art img{opacity:1!important;translate:none!important;scale:1!important;transform:none!important}
  .rv-card-light{display:none}
  .care-ribbon-track,.care-ribbon-list{animation:none!important}
}
@media print{[data-rv-reveal],[data-card-motion]{opacity:1!important;translate:none!important;transform:none!important}.rv-card-light{display:none}}

/* v41: no 3D layers in resting cards; light uses opacity, never a moving gradient. */
[data-card-motion]{transform:none;backface-visibility:visible}
[data-card-motion].rv-tracking{transform:perspective(var(--motion-perspective)) rotateX(var(--card-rotate-x,0deg)) rotateY(var(--card-rotate-y,0deg));will-change:transform}
.rv-card-light{background:radial-gradient(ellipse at 45% 30%,rgba(255,239,198,.06),transparent 65%)}
/* Header already has a solid brand background: avoid blurring every scrolling frame. */
.revig-home .header.is-scrolled{backdrop-filter:none;-webkit-backdrop-filter:none}
@media(hover:none),(pointer:coarse){
 [data-card-motion]{transform:none!important;will-change:auto!important}
 [data-card-motion]:hover{box-shadow:none}
}
