/* Shared Xalen UI primary actions: the supplied 3D face with depth, tinted to
   Vedika's ambient lavender (soft face, lavender edge, dark ink text).
   Existing variant classes keep server HTML and client render identical. */
:where(button,a).button-press-motion {
 position:relative; isolation:isolate; touch-action:manipulation;
 transition:transform 180ms ease-out,box-shadow 180ms ease-out,color 150ms ease-out;
}
.button-press-motion.bg-button-primary {
 background:#ddd3ff; background-image:linear-gradient(85deg,#ddd3ff,#e2d9ff,#d9cefe,#dfd6ff,#e6dfff);
 background-size:200% 200%; border:1px solid #c7b8f4; border-radius:8px; color:#231a45;
 box-shadow:inset 0 1px 0 #f3efff,inset 0 -1px 0 #c7b8f4,0 3px 0 #a996e6,0 5px 10px rgb(76 52 160 / .14);
 transform:perspective(700px) translateY(0);
}
.button-press-motion.bg-button-primary > :is(span,svg) { color:inherit; position:relative; z-index:1; }
.button-press-motion.bg-button-primary::before {
 content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
 background:radial-gradient(ellipse at top left,#fff7,transparent 55%); opacity:.6;
}
.button-press-motion.bg-button-primary:not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible) {
 transform:perspective(700px) rotateX(7deg) rotateY(-2deg) translateY(-2px);
 box-shadow:inset 0 1px 0 #f8f5ff,inset 0 -1px 0 #c7b8f4,0 5px 0 #a996e6,0 9px 16px rgb(76 52 160 / .2);
 animation:xalen-button-wind 2s ease-in-out infinite;
}
@keyframes xalen-button-wind { 0%,100%{background-position:0% 50%}50%{background-position:50% 100%} }
.button-press-motion.bg-button-primary:not(:disabled):not([aria-disabled=true]):active { transform:translateY(2px); box-shadow:0 1px 0 #a996e6; }
.dark .button-press-motion.bg-button-primary { box-shadow:inset 0 1px 0 #f3efff,inset 0 -1px 0 #c7b8f4,0 3px 0 #8f7bd6,0 6px 14px rgb(0 0 0 / .35); }
.dark .button-press-motion.bg-button-primary:not(:disabled):not([aria-disabled=true]):is(:hover,:focus-visible) { box-shadow:inset 0 1px 0 #f8f5ff,inset 0 -1px 0 #c7b8f4,0 5px 0 #8f7bd6,0 10px 18px rgb(0 0 0 / .42); }
:where(button,a).button-press-motion:focus-visible { outline:2px solid var(--color-border-focus-ring,#3565d4); outline-offset:4px; }
.button-press-motion:is(:disabled,[aria-disabled=true]) { opacity:.45; box-shadow:none; animation:none; transform:none; cursor:not-allowed; }
@media(prefers-reduced-motion:reduce) {
 :where(button,a).button-press-motion,:where(button,a).button-press-motion::before,:where(button,a).button-press-motion::after { transition:none; animation:none!important; transform:none!important; }
}
