/* Size utilities share the same bounded turn; override --dawn-hover-turn if needed. */
.hover-sm { --dawn-hover-turn:4; }
.hover-md { --dawn-hover-turn:2; }
.hover-lg { --dawn-hover-turn:1; }
/* DAWN's only decorative hover motion. Apply dawn-pointer to any surface. */
.dawn-pointer-inline { display:inline-block; max-width:100%; }
.dawn-pointer:hover { transform:none!important; translate:none!important; rotate:none!important; scale:1!important; }
.dawn-pointer:is(.is-pointer-following,.is-pointer-settling) {
  transform:var(--dawn-turn-matrix,matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1))!important;
  transform-origin:center; translate:none!important; rotate:none!important; scale:1!important;
  transition:none!important;
}
.dawn-pointer.is-pointer-animating { will-change:transform; }
@media (prefers-reduced-motion:reduce), (hover:none), (pointer:coarse) {
  .dawn-pointer:is(:hover,.is-pointer-following,.is-pointer-settling) { transform:none!important; transition:none; }
}

/* Dense navigation stays quiet; stable hit bounds prevent edge shaking. */
.dawn-sidebar-rail .dawn-pointer { --dawn-hover-turn:.4; }
.see-action-dock .dawn-pointer,.see-dock-action,.nav-button { --dawn-hover-turn:.75; }

/* The card face turns; text, images and controls stay on a crisp, stable layout layer. */
.has-pointer-plane{isolation:isolate;background:transparent!important}
.has-pointer-plane:is(:hover,.is-pointer-following,.is-pointer-settling){transform:none!important}
.dawn-pointer-plane{position:absolute;inset:0;display:block;border-radius:inherit;overflow:clip;pointer-events:none;z-index:-1}
.dawn-pointer-face{position:absolute;inset:0;display:block;transform:var(--dawn-surface-turn,none);transform-origin:center;pointer-events:none}
.has-pointer-plane.is-pointer-animating{will-change:auto}
.has-pointer-plane.is-pointer-animating>.dawn-pointer-plane>.dawn-pointer-face{will-change:transform}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.dawn-pointer-face{transform:none!important}}
