/*
 * Labkhand V3 — RC4.9.4 Delight Motion System
 * Shared mobile + desktop microinteractions.
 * Design goals: playful-premium, responsive to intent, no endless decoration,
 * progressive enhancement, and full prefers-reduced-motion fallback.
 */

@property --lv3-mi-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@property --lv3-mi-glow {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}
@property --lv3-mi-scale {
  syntax: "<number>";
  inherits: false;
  initial-value: 1;
}

:root{
  --lv3-mi-fast:130ms;
  --lv3-mi-base:220ms;
  --lv3-mi-medium:360ms;
  --lv3-mi-slow:520ms;
  --lv3-mi-ease:cubic-bezier(.2,.8,.2,1);
  --lv3-mi-spring:linear(0,.006,.026 2.3%,.102 4.9%,.577 13.4%,.895 19.7%,1.045 25.7%,1.085 30.8%,1.071 35.4%,1.032 43.4%,.997 55.6%,1.003 70.5%,1);
  --lv3-mi-navy:#173b63;
  --lv3-mi-pink:#f70a78;
  --lv3-mi-cyan:#13b8c7;
  --lv3-mi-cream:#fff8f3;
  --lv3-mi-shadow:0 16px 38px rgba(23,59,99,.13);
  --lv3-mi-shadow-hover:0 24px 54px rgba(23,59,99,.18);
  --lv3-mi-ring:0 0 0 4px rgba(19,184,199,.15),0 0 0 1px rgba(19,184,199,.5);
}

html{interpolate-size:allow-keywords}
@view-transition{navigation:auto}
body.labkhand-v3 .lv3-logo-img{view-transition-name:lv3-brand}
body.labkhand-v3 #lv3-main{view-transition-name:lv3-main}
::view-transition-group(lv3-brand){animation-duration:420ms;animation-timing-function:var(--lv3-mi-spring)}
::view-transition-old(lv3-main){animation:lv3MiPageOut 190ms ease both}
::view-transition-new(lv3-main){animation:lv3MiPageIn 420ms var(--lv3-mi-spring) both}
@keyframes lv3MiPageOut{to{opacity:.15;transform:translateY(-6px) scale(.995)}}
@keyframes lv3MiPageIn{from{opacity:0;transform:translateY(12px) scale(.992)}to{opacity:1;transform:none}}

/* --------------------------------------------------------------------------
   1. Tactile controls — stronger than RC4.9.3, but still brief.
   -------------------------------------------------------------------------- */
body.labkhand-v3 :where(.lv3-btn,.lv3a3-trigger,.lv3a3-card,.lv3a3-close,.lv3-menu-toggle,.lv3-nav__close,.lv3-mega-tab,.lv3-mobile-bar__button,.lv3-mobile-bar__main,.lv3-mobile-submenu-toggle,.lv3-mobile-sheet__head button,.lv3-support-chat__launcher,.lv3-support-chat__close,.lv3-support-chat__quick a,.lv3-support-chat__form-foot button,.lv3-home-disclosure__toggle){
  -webkit-tap-highlight-color:transparent;
  transform:translate3d(var(--lv3-mi-mag-x,0),var(--lv3-mi-mag-y,0),0) scale(var(--lv3-mi-control-scale,1));
  transition:transform var(--lv3-mi-base) var(--lv3-mi-spring),box-shadow var(--lv3-mi-base) ease,border-color var(--lv3-mi-base) ease,background-color var(--lv3-mi-base) ease,color var(--lv3-mi-base) ease;
  will-change:transform;
}
body.labkhand-v3 :where(.lv3-btn,.lv3a3-trigger,.lv3a3-card,.lv3a3-close,.lv3-mobile-bar__main,.lv3-home-disclosure__toggle,.lv3-support-chat__form-foot button){
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
body.labkhand-v3 :where(.lv3-btn--primary,.lv3a3-trigger--contact,.lv3-mobile-bar__main,.lv3-support-chat__form-foot button)::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:44%;
  height:220%;
  inset-block-start:-60%;
  inset-inline-start:-62%;
  border-radius:999px;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.56),transparent);
  transform:rotate(14deg);
  transition:inset-inline-start 620ms var(--lv3-mi-ease);
  pointer-events:none;
}
@media(hover:hover) and (pointer:fine){
  body.labkhand-v3 :where(.lv3-btn--primary,.lv3a3-trigger--contact,.lv3-mobile-bar__main,.lv3-support-chat__form-foot button):hover::before{inset-inline-start:118%}
  body.labkhand-v3 :where(.lv3-btn,.lv3a3-trigger,.lv3-mobile-bar__button,.lv3-mobile-bar__main,.lv3-home-disclosure__toggle):hover{--lv3-mi-control-scale:1.025}
}
body.labkhand-v3 .lv3-mi-pressed{animation:lv3MiTapPop 420ms var(--lv3-mi-spring)}
@keyframes lv3MiTapPop{0%{--lv3-mi-control-scale:1}32%{--lv3-mi-control-scale:.94}64%{--lv3-mi-control-scale:1.045}100%{--lv3-mi-control-scale:1}}

.lv3-mi-ripple-host{position:relative;overflow:hidden;isolation:isolate}
.lv3-mi-ripple{
  position:absolute;z-index:0;left:0;top:0;width:var(--lv3-mi-ripple-size);height:var(--lv3-mi-ripple-size);
  margin-left:calc(var(--lv3-mi-ripple-size)/-2);margin-top:calc(var(--lv3-mi-ripple-size)/-2);
  transform:translate(var(--lv3-mi-ripple-x),var(--lv3-mi-ripple-y)) scale(0);
  border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.62) 0 18%,rgba(19,184,199,.22) 42%,rgba(247,10,120,.10) 61%,transparent 70%);
  animation:lv3MiRipple 560ms cubic-bezier(.16,.78,.22,1) forwards;
}
@keyframes lv3MiRipple{55%{opacity:.85}100%{transform:translate(var(--lv3-mi-ripple-x),var(--lv3-mi-ripple-y)) scale(1);opacity:0}}

/* --------------------------------------------------------------------------
   2. Premium CTA aura — animated angle only on deliberate interaction.
   -------------------------------------------------------------------------- */
body.labkhand-v3 :where(.lv3-btn--primary,.lv3a3-trigger--contact,.lv3-mobile-bar__main){
  --lv3-mi-angle:0deg;
}
body.labkhand-v3 :where(.lv3-btn--primary,.lv3a3-trigger--contact,.lv3-mobile-bar__main)::after{
  content:"";position:absolute;z-index:-2;inset:-1px;border-radius:inherit;padding:1px;
  background:conic-gradient(from var(--lv3-mi-angle),rgba(255,255,255,.85),rgba(19,184,199,.72),rgba(247,10,120,.82),rgba(255,255,255,.75));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;
  transition:opacity 180ms ease,--lv3-mi-angle 720ms var(--lv3-mi-ease);
  pointer-events:none;
}
body.labkhand-v3 :where(.lv3-btn--primary,.lv3a3-trigger--contact,.lv3-mobile-bar__main):is(:hover,:focus-visible)::after{opacity:.82;--lv3-mi-angle:320deg}

/* --------------------------------------------------------------------------
   3. Hamburger morph + drawer choreography.
   -------------------------------------------------------------------------- */
@media(max-width:1024px){
  body.labkhand-v3 .lv3-menu-toggle{position:relative;display:grid!important;place-items:center;grid-template-rows:repeat(3,3px);align-content:center;gap:5px;overflow:visible}
  body.labkhand-v3 .lv3-menu-toggle>span:not(.screen-reader-text){margin:0!important;transform-origin:center;transition:transform 360ms var(--lv3-mi-spring),opacity 150ms ease,width 260ms var(--lv3-mi-spring),background 180ms ease}
  body.labkhand-v3 .lv3-menu-toggle[aria-expanded="true"]>span:nth-child(1){transform:translateY(8px) rotate(45deg);width:28px}
  body.labkhand-v3 .lv3-menu-toggle[aria-expanded="true"]>span:nth-child(2){opacity:0;transform:scaleX(.1)}
  body.labkhand-v3 .lv3-menu-toggle[aria-expanded="true"]>span:nth-child(3){transform:translateY(-8px) rotate(-45deg);width:28px}
  body.labkhand-v3 .lv3-menu-toggle[aria-expanded="true"]{box-shadow:0 14px 34px rgba(23,59,99,.15),0 0 0 5px rgba(19,184,199,.08)}

  body.labkhand-v3 #lv3-nav.is-open>.lv3-nav__mobile-head{animation:lv3MiDrawerHead 420ms var(--lv3-mi-spring) backwards}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-nav__mobile-intro{animation:lv3MiDrawerItem 400ms 40ms var(--lv3-mi-spring) backwards}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li{animation:lv3MiDrawerItem 460ms var(--lv3-mi-spring) backwards}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(1){animation-delay:45ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(2){animation-delay:75ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(3){animation-delay:105ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(4){animation-delay:135ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(5){animation-delay:165ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(6){animation-delay:195ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(7){animation-delay:225ms}
  body.labkhand-v3 #lv3-nav.is-open>.lv3-mobile-nav-tree>li:nth-child(8){animation-delay:255ms}
  @keyframes lv3MiDrawerHead{from{opacity:0;transform:translateY(-12px) scale(.985)}to{opacity:1;transform:none}}
  @keyframes lv3MiDrawerItem{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

  body.labkhand-v3 .lv3-mobile-nav-tree>li>.lv3-mobile-submenu-toggle svg,
  body.labkhand-v3 .lv3-mobile-nav-tree>li>.lv3-submenu-toggle svg{transition:transform 360ms var(--lv3-mi-spring)}
  body.labkhand-v3 .lv3-mobile-nav-tree>li:is(.is-open,.menu-item-has-children:has(>.sub-menu:not([hidden])))>.lv3-mobile-submenu-toggle svg,
  body.labkhand-v3 .lv3-mobile-nav-tree>li:is(.is-open,.menu-item-has-children:has(>.sub-menu:not([hidden])))>.lv3-submenu-toggle svg{transform:rotate(180deg)}

  body.labkhand-v3 .lv3-mobile-nav-tree .sub-menu:not([hidden])>li{animation:lv3MiSubItem 320ms var(--lv3-mi-spring) backwards}
  body.labkhand-v3 .lv3-mobile-nav-tree .sub-menu:not([hidden])>li:nth-child(2){animation-delay:24ms}
  body.labkhand-v3 .lv3-mobile-nav-tree .sub-menu:not([hidden])>li:nth-child(3){animation-delay:48ms}
  body.labkhand-v3 .lv3-mobile-nav-tree .sub-menu:not([hidden])>li:nth-child(4){animation-delay:72ms}
  body.labkhand-v3 .lv3-mobile-nav-tree .sub-menu:not([hidden])>li:nth-child(5){animation-delay:96ms}
  body.labkhand-v3 .lv3-mobile-nav-tree .sub-menu:not([hidden])>li:nth-child(6){animation-delay:120ms}
  @keyframes lv3MiSubItem{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
}

/* --------------------------------------------------------------------------
   4. Hero choreography + branded depth.
   -------------------------------------------------------------------------- */
html.lv3-mi-ready body.labkhand-v3-home .lv3-hero-title-group>.lv3-kicker{animation:lv3MiHeroIn 520ms 40ms var(--lv3-mi-spring) backwards}
html.lv3-mi-ready body.labkhand-v3-home .lv3-hero-title-group>h1{animation:lv3MiHeroIn 620ms 90ms var(--lv3-mi-spring) backwards}
html.lv3-mi-ready body.labkhand-v3-home .lv3-hero__media{animation:lv3MiHeroMedia 720ms 130ms var(--lv3-mi-spring) backwards}
html.lv3-mi-ready body.labkhand-v3-home .lv3-hero-title-group>.lv3-lead{animation:lv3MiHeroIn 560ms 180ms var(--lv3-mi-spring) backwards}
html.lv3-mi-ready body.labkhand-v3-home .lv3-inline-trust>*{animation:lv3MiHeroChip 520ms var(--lv3-mi-spring) backwards}
html.lv3-mi-ready body.labkhand-v3-home .lv3-inline-trust>*:nth-child(1){animation-delay:230ms}
html.lv3-mi-ready body.labkhand-v3-home .lv3-inline-trust>*:nth-child(2){animation-delay:275ms}
html.lv3-mi-ready body.labkhand-v3-home .lv3-inline-trust>*:nth-child(3){animation-delay:320ms}
@keyframes lv3MiHeroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes lv3MiHeroMedia{from{opacity:0;transform:translateY(18px) scale(.965)}to{opacity:1;transform:none}}
@keyframes lv3MiHeroChip{from{opacity:0;transform:translateY(10px) scale(.88)}to{opacity:1;transform:none}}

body.labkhand-v3 .lv3-hero__media{position:relative;transform-style:preserve-3d;will-change:transform}
body.labkhand-v3 .lv3-hero__media::after{
  content:"";position:absolute;inset:2%;border-radius:inherit;pointer-events:none;opacity:var(--lv3-mi-shine-o,0);
  background:radial-gradient(circle at var(--lv3-mi-shine-x,50%) var(--lv3-mi-shine-y,50%),rgba(255,255,255,.30),transparent 34%);
  mix-blend-mode:screen;transition:opacity 180ms ease;
}
@media(hover:hover) and (pointer:fine){
  body.labkhand-v3 .lv3-hero__media.lv3-mi-depth-active{transform:perspective(1100px) rotateX(var(--lv3-mi-tilt-x,0deg)) rotateY(var(--lv3-mi-tilt-y,0deg)) translateY(-3px);transition:transform 90ms linear}
  body.labkhand-v3 .lv3-hero__media.lv3-mi-depth-active::after{--lv3-mi-shine-o:1}
}

/* --------------------------------------------------------------------------
   5. Card depth system — responsive, cursor-aware, and restrained.
   -------------------------------------------------------------------------- */
body.labkhand-v3 :where(.lv3-card,.lv3-home-disclosure__summary,.lv3-mega-item,.lv3-booking-guide__choices>article,.lv3-contact-fact,.lv3-gallery-grid figure){
  --lv3-mi-tilt-x:0deg;--lv3-mi-tilt-y:0deg;--lv3-mi-shine-x:50%;--lv3-mi-shine-y:50%;
  position:relative;transform-style:preserve-3d;
}
body.labkhand-v3 :where(.lv3-card,.lv3-home-disclosure__summary,.lv3-mega-item,.lv3-booking-guide__choices>article,.lv3-contact-fact,.lv3-gallery-grid figure)::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
  background:radial-gradient(260px circle at var(--lv3-mi-shine-x) var(--lv3-mi-shine-y),rgba(19,184,199,.13),rgba(247,10,120,.045) 38%,transparent 68%);
  transition:opacity 180ms ease;
}
@media(hover:hover) and (pointer:fine){
  body.labkhand-v3 :where(.lv3-card,.lv3-home-disclosure__summary,.lv3-mega-item,.lv3-booking-guide__choices>article,.lv3-contact-fact,.lv3-gallery-grid figure).lv3-mi-depth-active{
    transform:perspective(1050px) rotateX(var(--lv3-mi-tilt-x)) rotateY(var(--lv3-mi-tilt-y)) translateY(-5px);
    box-shadow:var(--lv3-mi-shadow-hover);
    transition:transform 90ms linear,box-shadow 220ms ease;
    z-index:2;
  }
  body.labkhand-v3 :where(.lv3-card,.lv3-home-disclosure__summary,.lv3-mega-item,.lv3-booking-guide__choices>article,.lv3-contact-fact,.lv3-gallery-grid figure).lv3-mi-depth-active::after{opacity:1}
  body.labkhand-v3 .lv3-home-disclosure__summary.lv3-mi-depth-active .lv3-home-disclosure__image,
  body.labkhand-v3 .lv3-card.lv3-mi-depth-active :is(.lv3-card__image,.lv3-card__media img),
  body.labkhand-v3 .lv3-gallery-grid figure.lv3-mi-depth-active img{transform:scale(1.025)}
}
body.labkhand-v3 :where(.lv3-home-disclosure__image,.lv3-card__image,.lv3-card__media img,.lv3-gallery-grid figure img){transition:transform 520ms var(--lv3-mi-spring)}

/* Disclosure affordance now feels mechanical rather than generic. */
body.labkhand-v3 .lv3-home-disclosure__toggle svg{transition:transform 420ms var(--lv3-mi-spring)}
body.labkhand-v3 .lv3-home-disclosure[open] .lv3-home-disclosure__toggle svg{transform:rotate(180deg)}
body.labkhand-v3 .lv3-home-disclosure[open]>.lv3-home-disclosure__content{animation:lv3MiDetailOpen 460ms var(--lv3-mi-spring) backwards}
@keyframes lv3MiDetailOpen{from{opacity:0;transform:translateY(-10px) scale(.992)}to{opacity:1;transform:none}}

/* --------------------------------------------------------------------------
   6. Desktop mega navigation — tab feedback + card choreography.
   -------------------------------------------------------------------------- */
@media(min-width:1025px){
  body.labkhand-v3 .lv3-mega-tab__icon{transition:transform 420ms var(--lv3-mi-spring),filter 220ms ease}
  body.labkhand-v3 .lv3-mega-tab__chevron{transition:transform 420ms var(--lv3-mi-spring)}
  body.labkhand-v3 .lv3-mega-tab[aria-expanded="true"] .lv3-mega-tab__chevron{transform:rotate(180deg)}
  body.labkhand-v3 .lv3-mega-tab:is(:hover,:focus-visible) .lv3-mega-tab__icon{transform:translateY(-3px) rotate(-4deg) scale(1.08);filter:saturate(1.12)}
  body.labkhand-v3 .lv3-mega-panel:not([hidden]) .lv3-mega-item{animation:lv3MiMegaCard 460ms var(--lv3-mi-spring) backwards}
  body.labkhand-v3 .lv3-mega-panel:not([hidden]) .lv3-mega-item:nth-child(2){animation-delay:35ms}
  body.labkhand-v3 .lv3-mega-panel:not([hidden]) .lv3-mega-item:nth-child(3){animation-delay:70ms}
  body.labkhand-v3 .lv3-mega-panel:not([hidden]) .lv3-mega-item:nth-child(4){animation-delay:105ms}
  body.labkhand-v3 .lv3-mega-panel:not([hidden]) .lv3-mega-item:nth-child(5){animation-delay:140ms}
  body.labkhand-v3 .lv3-mega-panel:not([hidden]) .lv3-mega-item:nth-child(6){animation-delay:175ms}
  @keyframes lv3MiMegaCard{from{opacity:0;transform:translateY(13px) scale(.965)}to{opacity:1;transform:none}}
  body.labkhand-v3 .lv3-mega-item__arrow{transition:transform 360ms var(--lv3-mi-spring),color 180ms ease}
  body.labkhand-v3 .lv3-mega-item:is(:hover,:focus-within) .lv3-mega-item__arrow{transform:translateX(-7px) scale(1.12);color:var(--lv3-mi-pink)}
}

/* --------------------------------------------------------------------------
   7. Bottom dock — entrance, elastic center action, icon pops.
   -------------------------------------------------------------------------- */
@media(max-width:1024px){
  html.lv3-mi-ready body.labkhand-v3 .lv3-mobile-bar{animation:lv3MiDockIn 600ms 250ms var(--lv3-mi-spring) backwards}
  @keyframes lv3MiDockIn{from{opacity:0;transform:translateY(28px) scale(.94)}to{opacity:1;transform:none}}
  html.lv3-mi-ready body.labkhand-v3 .lv3-mobile-bar__main{animation:lv3MiPrimaryHello 700ms 650ms var(--lv3-mi-spring) backwards}
  @keyframes lv3MiPrimaryHello{0%,100%{transform:none}45%{transform:translateY(-5px) scale(1.055)}70%{transform:translateY(1px) scale(.99)}}
  body.labkhand-v3 .lv3-mobile-bar__icon{transition:transform 420ms var(--lv3-mi-spring)}
  body.labkhand-v3 .lv3-mobile-bar :is(button,a).lv3-mi-pressed .lv3-mobile-bar__icon{animation:lv3MiIconPop 420ms var(--lv3-mi-spring)}
  @keyframes lv3MiIconPop{35%{transform:translateY(-5px) scale(1.18) rotate(-7deg)}100%{transform:none}}
}

/* --------------------------------------------------------------------------
   8. Sheets/support — stronger spring arrival, no repetitive character motion.
   -------------------------------------------------------------------------- */
body.labkhand-v3 .lv3-support-chat__launcher{transform-origin:80% 100%}
@media(hover:hover) and (pointer:fine){
  body.labkhand-v3 .lv3-support-chat__launcher:hover{--lv3-mi-control-scale:1.035;box-shadow:0 20px 46px rgba(23,59,99,.22)}
  body.labkhand-v3 .lv3-support-chat__launcher:hover .lv3-support-chat__launcher-agent{transform:translateY(-4px) rotate(-3deg) scale(1.055)}
}
body.labkhand-v3 .lv3-support-chat__launcher-agent{transition:transform 520ms var(--lv3-mi-spring)}
body.labkhand-v3 .lv3-support-chat__panel:not([hidden]){animation:lv3MiPanelIn 520ms var(--lv3-mi-spring) backwards}
body.labkhand-v3 .lv3-mobile-sheet:not([hidden]){animation:lv3MiSheetIn 520ms var(--lv3-mi-spring) backwards}
@keyframes lv3MiPanelIn{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:none}}
@keyframes lv3MiSheetIn{from{opacity:0;transform:translateY(28px) scale(.965)}to{opacity:1;transform:none}}
body.labkhand-v3 .lv3-support-chat__quick a:is(:hover,:focus-visible){transform:translateY(-3px) scale(1.025);box-shadow:0 12px 26px rgba(23,59,99,.10)}

/* --------------------------------------------------------------------------
   9. Forms — focus lift, state color, and completion feedback.
   -------------------------------------------------------------------------- */
body.labkhand-v3 :where(.lv3-booking-form,.lv3-support-chat__form,.lv3-account-form) label{transition:color 180ms ease,transform 260ms var(--lv3-mi-spring)}
body.labkhand-v3 :where(.lv3-booking-form,.lv3-support-chat__form,.lv3-account-form) label:focus-within{color:var(--lv3-mi-cyan);transform:translateY(-2px)}
body.labkhand-v3 :where(.lv3-booking-form,.lv3-support-chat__form,.lv3-account-form) :is(input,select,textarea){transition:border-color 180ms ease,box-shadow 220ms ease,background-color 180ms ease,transform 260ms var(--lv3-mi-spring)}
body.labkhand-v3 :where(.lv3-booking-form,.lv3-support-chat__form,.lv3-account-form) :is(input,select,textarea):focus{background:#fff;box-shadow:var(--lv3-mi-ring);transform:translateY(-1px)}
@supports selector(input:user-invalid){
  body.labkhand-v3 :where(.lv3-booking-form,.lv3-support-chat__form,.lv3-account-form) :is(input,select,textarea):user-invalid{border-color:#d94b7b;background:#fff8fb}
  body.labkhand-v3 :where(.lv3-booking-form,.lv3-support-chat__form,.lv3-account-form) :is(input,select,textarea):user-valid{border-color:rgba(37,161,109,.55);background:#fbfffd}
}
body.labkhand-v3 :where(.lv3-booking-form button[type="submit"].lv3-mi-submitting,.lv3-support-chat__form-foot button:disabled){position:relative;padding-inline-end:46px}
body.labkhand-v3 :where(.lv3-booking-form button[type="submit"].lv3-mi-submitting,.lv3-support-chat__form-foot button:disabled)::after{
  content:"";position:absolute;inset-inline-end:16px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;animation:lv3MiSpin 620ms linear infinite;
}
@keyframes lv3MiSpin{to{rotate:1turn}}
body.labkhand-v3 .lv3-form-message{animation:lv3MiMessageIn 460ms var(--lv3-mi-spring) backwards}
@keyframes lv3MiMessageIn{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:none}}

/* --------------------------------------------------------------------------
   10. One-shot viewport reveals. JS adds classes; no per-frame scroll script.
   -------------------------------------------------------------------------- */
html.lv3-mi-ready body.labkhand-v3 .lv3-mi-reveal{opacity:0;transform:translateY(20px) scale(.985)}
html.lv3-mi-ready body.labkhand-v3 .lv3-mi-reveal.lv3-mi-inview{opacity:1;transform:none;transition:opacity 520ms ease,transform 680ms var(--lv3-mi-spring)}

/* Native view-timeline polish where supported: image gets a small depth settle. */
@supports(animation-timeline:view()){
  @media(prefers-reduced-motion:no-preference){
    body.labkhand-v3 :where(.lv3-home-disclosure__visual,.lv3-gallery-grid figure,.lv3-contact-studio__visual){
      animation:lv3MiNativeReveal linear both;animation-timeline:view();animation-range:entry 0% cover 28%;
    }
    @keyframes lv3MiNativeReveal{from{opacity:.76;transform:translateY(12px) scale(.975)}to{opacity:1;transform:none}}
  }
}

/* Short status pulse only; no endless ambient motion. */
body.labkhand-v3 :where(.lv3-utility__live,.lv3-support-chat__presence,.lv3-support-chat__head span i){animation:lv3MiStatusPulse 920ms ease-out 2}
@keyframes lv3MiStatusPulse{0%{box-shadow:0 0 0 0 rgba(80,215,150,.38)}72%{box-shadow:0 0 0 9px rgba(80,215,150,0)}100%{box-shadow:0 0 0 0 rgba(80,215,150,0)}}

/* Reduced motion — state feedback remains, movement disappears. */
@media(prefers-reduced-motion:reduce){
  @view-transition{navigation:none}
  ::view-transition-old(root),::view-transition-new(root),::view-transition-group(lv3-brand),::view-transition-old(lv3-main),::view-transition-new(lv3-main){animation:none!important}
  html.lv3-mi-ready body.labkhand-v3 .lv3-mi-reveal{opacity:1!important;transform:none!important}
  body.labkhand-v3 *,body.labkhand-v3 *::before,body.labkhand-v3 *::after{scroll-behavior:auto!important;animation:none!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .lv3-mi-ripple{display:none!important}
  body.labkhand-v3 :where(.lv3-card,.lv3-home-disclosure__summary,.lv3-mega-item,.lv3-booking-guide__choices>article,.lv3-contact-fact,.lv3-gallery-grid figure,.lv3-hero__media){transform:none!important}
}

/* RC4.10.1 photo fidelity: microinteraction depth never rasterizes the photo surface. */
body.labkhand-v3 .lv3-hero__media{transform:none!important;will-change:auto!important}
body.labkhand-v3 .lv3-hero__media::after{display:none!important}
body.labkhand-v3 .lv3-gallery-grid figure img,
body.labkhand-v3 .lv3-home-disclosure__image,
body.labkhand-v3 .lv3-card__image,
body.labkhand-v3 .lv3-feature__image,
body.labkhand-v3 .lv3-page-hero__image{
  transform:none!important;
  filter:none!important;
  opacity:1!important;
}

/* RC4.10.4 — photo-fidelity interaction guard.
   Keep motion on the card chrome, not on approved photographic pixels. */
body.labkhand-v3-home .lv3-home-disclosure__summary.lv3-mi-depth-active{transform:none!important}
body.labkhand-v3-home .lv3-home-disclosure__summary.lv3-mi-depth-active::after{opacity:.34!important}
body.labkhand-v3-home .lv3-home-disclosure__summary.lv3-mi-depth-active .lv3-home-disclosure__image,
body.labkhand-v3-home .lv3-hero__media .lv3-hero-image{transform:none!important;will-change:auto!important}
