/*
 * Labkhand Interaction Runtime v2 — RC4.10.13.3.3.3
 * Authoritative, cache-safe action anchoring + permanent control feedback.
 * The action surface is animated by Web Animations API; CSS supplies only
 * material, focus and fallback states so stale legacy transitions cannot win.
 */
:root{
  --lv3-ir-ease:cubic-bezier(.16,1,.3,1);
  --lv3-ir-control-ease:cubic-bezier(.2,.8,.2,1);
  --lv3-ir-ring:0 0 0 4px rgba(24,184,199,.14),0 0 0 1px rgba(24,184,199,.50);
}
body.labkhand-v3 .lv3a3-panel{
  transition:none!important;
  transform-origin:var(--lv3-ir-anchor-x,50%) var(--lv3-ir-origin-y,0%)!important;
  contain:layout style;
}
body.labkhand-v3 .lv3a3-backdrop{transition:none!important}
body.labkhand-v3 .lv3a3-panel[data-lv3-placement="below"]{transform-origin:var(--lv3-ir-anchor-x,50%) 0%!important}
body.labkhand-v3 .lv3a3-panel[data-lv3-placement="above"]{transform-origin:var(--lv3-ir-anchor-x,50%) 100%!important}

/* Runtime-owned control contract. Existing branded motion keeps its own
   transform; only formerly static controls receive the native lift. */
body.labkhand-v3 .lv3-ir-control{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  cursor:pointer;
  transition:box-shadow 220ms ease,border-color 190ms ease,background-color 190ms ease,color 190ms ease,filter 190ms ease,translate 220ms var(--lv3-ir-control-ease),scale 160ms var(--lv3-ir-control-ease);
}
body.labkhand-v3 .lv3-ir-control.lv3-ir-native-motion{translate:0 0;scale:1}
@media(hover:hover) and (pointer:fine){
  body.labkhand-v3 .lv3-ir-control.lv3-ir-native-motion:hover{translate:0 -2px;scale:1.012;filter:saturate(1.035)}
  body.labkhand-v3 .lv3-route-button.lv3-ir-control:hover,
  body.labkhand-v3 .lv3-related-card.lv3-ir-control:hover,
  body.labkhand-v3 .lv3-faq details>summary.lv3-ir-control:hover{box-shadow:0 14px 34px rgba(16,58,99,.12)}
}
body.labkhand-v3 .lv3-ir-control.lv3-ir-native-motion.lv3-ir-pressed{translate:0 1px;scale:.972;transition-duration:90ms}
body.labkhand-v3 .lv3-ir-control:focus-visible{outline:none;box-shadow:var(--lv3-ir-ring),0 8px 22px rgba(16,58,99,.08)}

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

body.labkhand-v3 .lv3-text-link.lv3-ir-control{position:relative;display:inline-flex;align-items:center;gap:.35em;border-radius:10px;padding:5px 8px;margin-inline:-8px}
body.labkhand-v3 .lv3-text-link.lv3-ir-control::after{content:"";position:absolute;inset-inline:8px;bottom:2px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--lv3-turquoise,#18b8c7),var(--lv3-pink,#f70a78));transform:scaleX(0);transform-origin:100% 50%;transition:transform 260ms var(--lv3-ir-ease);opacity:.72}
@media(hover:hover) and (pointer:fine){body.labkhand-v3 .lv3-text-link.lv3-ir-control:hover::after{transform:scaleX(1)}}

body.labkhand-v3 .lv3-faq details>summary.lv3-ir-control{transition:box-shadow 220ms ease,border-color 190ms ease,background 190ms ease,translate 220ms var(--lv3-ir-control-ease)}
@media(hover:hover) and (pointer:fine){body.labkhand-v3 .lv3-faq details>summary.lv3-ir-control:hover{translate:0 -2px;border-color:rgba(24,184,199,.28);background:linear-gradient(145deg,#fff,#f7fdfe)}}
body.labkhand-v3 .lv3-faq details[open]>summary.lv3-ir-control{border-color:rgba(247,10,120,.18);background:linear-gradient(145deg,#fff,#fff7fb)}
body.labkhand-v3 .lv3-faq details[open]>div{animation:lv3IrDisclosure 340ms var(--lv3-ir-ease) backwards}
@keyframes lv3IrDisclosure{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  body.labkhand-v3 .lv3-ir-control,body.labkhand-v3 .lv3a3-panel,body.labkhand-v3 .lv3a3-backdrop,body.labkhand-v3 .lv3-faq details>div{transition:none!important;animation:none!important;translate:none!important;scale:none!important}
  body.labkhand-v3 .lv3-ir-ripple{display:none!important}
}
