/*
 * Avelen premium interaction system
 * Shared motion tokens + progressive enhancements for the public site.
 */

:root {
  --avelen-ease: cubic-bezier(.22, .8, .24, 1);
  --avelen-ease-out: cubic-bezier(.16, 1, .3, 1);
  --avelen-ease-press: cubic-bezier(.2, .7, .2, 1);
  --avelen-focus: #f5c4a8;
  --avelen-focus-shadow: rgba(239, 174, 198, .34);
  --avelen-glow-rose: rgba(239, 180, 202, .42);
  --avelen-glow-sand: rgba(240, 198, 162, .38);
  --avelen-line: rgba(245, 196, 168, .55);
  --avelen-motion-fast: 180ms;
  --avelen-motion-base: 620ms;
  --avelen-motion-slow: 980ms;
  --avelen-cursor-tone: 255, 222, 209;
  --avelen-cursor-glow: 247, 184, 205;
}

html.avelen-interactions {
  scroll-padding-top: 6.5rem;
}

/* ── Global cursor / touch field (never intercepts input) ── */
.avelen-cursor-field {
  position: fixed;
  inset: 0;
  z-index: 70;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
}

.avelen-cursor-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}

.avelen-cursor-dot {
  position: absolute;
  top: 0;
  left: 0;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  border-radius: 50%;
  background: rgba(var(--avelen-cursor-tone), .55);
  box-shadow: 0 0 18px rgba(var(--avelen-cursor-glow), .35);
  opacity: 0;
  transform: translate3d(-100px, -100px, 0) scale(.4);
  transition: width 220ms var(--avelen-ease), height 220ms var(--avelen-ease), margin 220ms var(--avelen-ease), opacity 220ms ease, background 220ms ease, box-shadow 220ms ease;
  will-change: transform;
  pointer-events: none;
}

.avelen-cursor-dot.is-on {
  opacity: .9;
}

.avelen-cursor-dot.is-hot {
  width: 28px;
  height: 28px;
  margin: -14px 0 0 -14px;
  background: rgba(var(--avelen-cursor-glow), .22);
  box-shadow: 0 0 0 1px rgba(var(--avelen-cursor-tone), .45), 0 0 28px rgba(var(--avelen-cursor-glow), .4);
}

.avelen-cursor-dot.is-press {
  width: 16px;
  height: 16px;
  margin: -8px 0 0 -8px;
  opacity: .7;
}

.avelen-touch-ring {
  position: fixed;
  z-index: 71;
  width: 12px;
  height: 12px;
  margin: -6px 0 0 -6px;
  border: 1px solid rgba(var(--avelen-cursor-tone), .7);
  border-radius: 50%;
  box-shadow: 0 0 18px rgba(var(--avelen-cursor-glow), .28);
  pointer-events: none;
  animation: avelen-touch-ring 720ms var(--avelen-ease-out) forwards;
}

@keyframes avelen-touch-ring {
  0% { transform: scale(.35); opacity: .85; }
  100% { transform: scale(7.5); opacity: 0; }
}

.avelen-scroll-progress {
  position: fixed;
  z-index: 150;
  inset: 0 auto auto 0;
  width: 100%;
  height: 2px;
  transform: scaleX(var(--avelen-scroll-progress, 0));
  transform-origin: left;
  background: linear-gradient(90deg, #edb6ca, #f0c49d 58%, #fff1e7);
  box-shadow: 0 1px 10px rgba(239, 180, 202, .34);
  pointer-events: none;
}

/* ── Reveals ── */
.avelen-reveal {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition:
    opacity var(--avelen-motion-base) var(--avelen-ease),
    transform var(--avelen-motion-base) var(--avelen-ease);
}

.avelen-reveal.avelen-reveal-soft {
  transform: translate3d(0, 14px, 0);
}

.avelen-reveal.avelen-reveal-rise {
  transform: translate3d(0, 28px, 0) scale(.985);
}

.avelen-reveal.avelen-in {
  opacity: 1;
  transform: none;
}

.avelen-route-intro {
  transition-delay: 40ms;
}

.avelen-reveal.avelen-route-intro:not(.avelen-in) {
  opacity: 1;
  transform: translate3d(0, 12px, 0);
}

.avelen-stagger > .avelen-reveal:nth-child(2) { transition-delay: 60ms; }
.avelen-stagger > .avelen-reveal:nth-child(3) { transition-delay: 110ms; }
.avelen-stagger > .avelen-reveal:nth-child(4) { transition-delay: 160ms; }
.avelen-stagger > .avelen-reveal:nth-child(5) { transition-delay: 210ms; }
.avelen-stagger > .avelen-reveal:nth-child(6) { transition-delay: 260ms; }

/* ── Tactile press ── */
.avelen-tactile {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  transition: transform var(--avelen-motion-fast) var(--avelen-ease-press), filter var(--avelen-motion-fast) ease;
}

.avelen-tactile:focus-visible {
  outline: 2px solid var(--avelen-focus) !important;
  outline-offset: 3px;
  box-shadow: 0 0 0 5px var(--avelen-focus-shadow);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 2px solid var(--avelen-focus);
  outline-offset: 3px;
}

.avelen-tactile.avelen-is-pressed {
  filter: brightness(1.04);
  transform: scale(.978) !important;
}

.avelen-selection-hit {
  animation: avelen-selection-hit 420ms var(--avelen-ease);
}

@keyframes avelen-selection-hit {
  0% { box-shadow: 0 0 0 0 rgba(245, 196, 168, 0); }
  35% { box-shadow: 0 0 0 5px rgba(245, 196, 168, .26); }
  100% { box-shadow: 0 0 0 9px rgba(245, 196, 168, 0); }
}

/* ── Magnetic CTAs ── */
.avelen-magnetic {
  --avelen-mx: 0px;
  --avelen-my: 0px;
  will-change: transform;
  transition: transform 280ms var(--avelen-ease);
}

.avelen-magnetic.avelen-is-magnet {
  transform: translate3d(var(--avelen-mx), var(--avelen-my), 0);
}

.avelen-magnetic.avelen-is-pressed {
  transform: translate3d(var(--avelen-mx), var(--avelen-my), 0) scale(.978) !important;
}

/* ── Spotlight / cursor glow on cards ── */
.avelen-spotlight {
  --avelen-spot-x: 50%;
  --avelen-spot-y: 50%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.avelen-spotlight::before {
  position: absolute;
  z-index: 0;
  inset: -1px;
  border-radius: inherit;
  background: radial-gradient(
    420px circle at var(--avelen-spot-x) var(--avelen-spot-y),
    rgba(239, 180, 202, .18),
    transparent 58%
  );
  opacity: 0;
  transition: opacity 280ms var(--avelen-ease);
  content: "";
  pointer-events: none;
}

.avelen-spotlight.avelen-is-lit::before {
  opacity: 1;
}

/* Never force position on children — that breaks absolute galleries (results slides). */
.avelen-spotlight > :not(img):not(.result-slide):not(.hero-slide):not(.live-slide) {
  position: relative;
  z-index: 1;
}

/* Dark surfaces get a warmer, brighter spotlight */
.hero .avelen-spotlight::before,
.methods .avelen-spotlight::before,
.booking .avelen-spotlight::before,
.site-footer .avelen-spotlight::before,
.method-card.avelen-spotlight::before,
.price-card.featured.avelen-spotlight::before,
.card.avelen-spotlight::before {
  background: radial-gradient(
    460px circle at var(--avelen-spot-x) var(--avelen-spot-y),
    rgba(255, 230, 214, .16),
    transparent 60%
  );
}

/* ── Soft tilt / parallax cards ── */
.avelen-tilt {
  --avelen-tilt-x: 0deg;
  --avelen-tilt-y: 0deg;
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform 280ms var(--avelen-ease), box-shadow 280ms var(--avelen-ease);
}

.avelen-tilt.avelen-is-tilting {
  transform: translate3d(0, -4px, 0) rotateX(var(--avelen-tilt-y)) rotateY(var(--avelen-tilt-x));
}

/* ── Media zoom inside frame ── */
.avelen-media-zoom {
  overflow: hidden;
}

/* Media zoom must not fight absolute-positioned gallery slides. */
.avelen-media-zoom:not(.result-feature):not(.hero-photo) > img,
.avelen-media-zoom:not(.result-feature):not(.hero-photo) img.avelen-zoom-target {
  transform: scale(1.001);
  transition: transform var(--avelen-motion-slow) var(--avelen-ease);
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .avelen-media-zoom:not(.result-feature):not(.hero-photo):hover > img,
  .avelen-media-zoom:not(.result-feature):not(.hero-photo):hover img.avelen-zoom-target,
  .avelen-media-zoom:not(.result-feature):not(.hero-photo).avelen-is-zooming > img,
  .avelen-media-zoom:not(.result-feature):not(.hero-photo).avelen-is-zooming img.avelen-zoom-target {
    transform: scale(1.055);
  }
}

/* ── Animated hairline frame ── */
.avelen-frame {
  position: relative;
}

.avelen-frame::after {
  position: absolute;
  z-index: 3;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    rgba(245, 196, 168, 0),
    rgba(245, 196, 168, .55),
    rgba(239, 180, 202, .35),
    rgba(245, 196, 168, 0)
  );
  background-size: 220% 220%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 320ms var(--avelen-ease);
  content: "";
  pointer-events: none;
}

.avelen-frame.avelen-is-framed::after,
.avelen-frame:focus-within::after {
  opacity: 1;
  animation: avelen-frame-drift 3.6s linear infinite;
}

@keyframes avelen-frame-drift {
  0% { background-position: 0% 40%; }
  100% { background-position: 100% 60%; }
}

/* ── Link underline draw ── */
.avelen-link-draw {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  transition: background-size 320ms var(--avelen-ease), color 220ms ease, opacity 220ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .avelen-link-draw:hover {
    background-size: 100% 1px;
  }
}

.avelen-link-draw:focus-visible {
  background-size: 100% 1px;
}

/* ── Section divider breath ── */
.avelen-section-live {
  position: relative;
}

.avelen-section-live.avelen-in-view::before {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 8%;
  width: 84%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(245, 196, 168, .45), transparent);
  content: "";
  transform: scaleX(.2);
  transform-origin: center;
  animation: avelen-section-line 900ms var(--avelen-ease-out) forwards;
  pointer-events: none;
}

@keyframes avelen-section-line {
  to { transform: scaleX(1); opacity: .85; }
}

/* ── Scroll parallax (light) ── */
.avelen-parallax {
  --avelen-py: 0px;
  will-change: transform;
  transform: translate3d(0, var(--avelen-py), 0);
}

/* ── Gallery swipe feedback ── */
.avelen-gallery-feedback {
  touch-action: pan-y pinch-zoom;
  transition: box-shadow var(--avelen-motion-fast) ease;
}

.avelen-gallery-feedback.avelen-swipe-left {
  box-shadow: inset -3px 0 0 rgba(246, 204, 178, .85), 0 0 0 1px rgba(246, 204, 178, .22);
}

.avelen-gallery-feedback.avelen-swipe-right {
  box-shadow: inset 3px 0 0 rgba(246, 204, 178, .85), 0 0 0 1px rgba(246, 204, 178, .22);
}

/* ── Image mask reveal ── */
.avelen-mask-reveal {
  clip-path: inset(8% 8% 8% 8% round 18px);
  transition: clip-path var(--avelen-motion-slow) var(--avelen-ease-out), opacity var(--avelen-motion-base) var(--avelen-ease);
  opacity: .92;
}

.avelen-mask-reveal.avelen-in {
  clip-path: inset(0 0 0 0 round 0);
  opacity: 1;
}

/* ── CTA / footer polish ── */
.end-cta .avelen-tactile,
.results-cta .avelen-tactile,
.hero-actions .avelen-tactile {
  box-shadow: 0 10px 28px rgba(18, 12, 11, .08);
}

.site-footer .footer-links a {
  transition: color 220ms ease, opacity 220ms ease, transform 220ms var(--avelen-ease);
}

@media (hover: hover) and (pointer: fine) {
  .site-footer .footer-links a:hover {
    color: #f5d3b5;
    transform: translateY(-1px);
  }

  .avelen-tactile:hover:not(:disabled) {
    filter: brightness(1.035);
  }

  .nav-links a {
    transition: color 200ms ease, opacity 200ms ease;
  }

  .nav-links a:hover {
    color: #fff;
  }
}

body.avelen-interactions-ready .form-field:focus-within > label,
body.avelen-interactions-ready .field:focus-within > label {
  color: #f5c7a7;
}

body.avelen-interactions-ready .form-field:focus-within,
body.avelen-interactions-ready .field:focus-within {
  position: relative;
}

body.avelen-interactions-ready .form-field:focus-within::after,
body.avelen-interactions-ready .field:focus-within::after {
  position: absolute;
  right: 0;
  bottom: -2px;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, #ecb4c8, #f0c7a4, transparent);
  content: "";
  transform-origin: left;
  animation: avelen-field-line 360ms var(--avelen-ease);
  pointer-events: none;
}

@keyframes avelen-field-line {
  from { transform: scaleX(.15); opacity: .35; }
  to { transform: scaleX(1); opacity: 1; }
}

/* Booking feedback reflects the real availability state returned by the API. */
.booking-scheduler[data-avelen-calendar-state="checking"] .calendar-card {
  border-color: rgba(240, 199, 169, .32);
  box-shadow: inset 0 0 0 1px rgba(240, 199, 169, .06);
}

.booking-scheduler[data-avelen-calendar-state="error"] .calendar-card {
  border-color: rgba(255, 161, 151, .38);
}

.booking-scheduler[data-avelen-calendar-state="selected"] .appointment-summary {
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(239, 180, 202, .09), rgba(240, 199, 169, .06));
}

.booking-scheduler .calendar-day.is-checking {
  border-color: rgba(240, 199, 169, .09);
  background: rgba(255, 255, 255, .045);
}

.booking-scheduler .calendar-day.is-checking::after {
  width: 5px;
  height: 5px;
  background: rgba(240, 199, 169, .64);
  box-shadow: 0 0 7px rgba(240, 199, 169, .36);
}

.booking-scheduler .calendar-day.avelen-selection-hit,
.booking-scheduler .time-tile.avelen-selection-hit {
  animation-duration: 520ms;
}

.result-stack .avelen-story-card {
  cursor: pointer;
  transition: opacity 220ms var(--avelen-ease), box-shadow 220ms var(--avelen-ease), border-color 220ms var(--avelen-ease);
}

.result-stack .avelen-story-card.avelen-story-active {
  border-color: rgba(245, 199, 169, .76);
  box-shadow: 0 0 0 2px rgba(239, 180, 202, .15), 0 18px 32px rgba(18, 12, 11, .18);
}

.result-stack .avelen-story-card:focus-visible,
.edit-grid .edit-frame:focus-visible {
  outline: 2px solid #f5c4a8;
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  .result-stack:has(.avelen-story-active) .avelen-story-card:not(.avelen-story-active) {
    opacity: .68;
  }
}

.method-grid[data-avelen-method-comparison] .method-card {
  transition: border-color 240ms var(--avelen-ease), box-shadow 240ms var(--avelen-ease), filter 240ms var(--avelen-ease);
}

.method-grid[data-avelen-method-comparison] .method-card.avelen-method-active {
  border-color: rgba(245, 199, 169, .78);
  box-shadow: 0 18px 38px rgba(72, 39, 34, .18), inset 0 0 0 1px rgba(255, 245, 235, .14);
}

.method-grid[data-avelen-method-comparison] .method-card.avelen-method-active .method-card-number,
.method-grid[data-avelen-method-comparison] .method-card.avelen-method-active > .method-card-content > span:first-child {
  color: #f5cca9;
}

@media (hover: hover) and (pointer: fine) {
  .method-grid[data-avelen-method-comparison] .method-card:not(.avelen-method-active) {
    filter: saturate(.76) brightness(.88);
  }
}

.price-grid[data-avelen-price-guide] .price-card {
  isolation: isolate;
  transition: border-color 220ms var(--avelen-ease), box-shadow 220ms var(--avelen-ease), opacity 220ms var(--avelen-ease), transform 220ms var(--avelen-ease);
}

.price-grid[data-avelen-price-guide] .price-card.avelen-price-active {
  z-index: 1;
  border-color: rgba(239, 181, 201, .78);
  box-shadow: 0 18px 38px rgba(92, 49, 57, .17), inset 0 0 0 1px rgba(255, 244, 232, .18);
}

.price-grid[data-avelen-price-guide] .price-card.avelen-price-active::after {
  position: absolute;
  right: 16px;
  bottom: 14px;
  left: 16px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #efb5c9, #f1c5a0);
  content: "";
}

@media (hover: hover) and (pointer: fine) {
  .price-grid[data-avelen-price-guide]:has(.avelen-price-active) .price-card:not(.avelen-price-active) {
    opacity: .72;
  }
}

.social-feed[data-avelen-social-progression] .social-tile {
  transition: opacity 220ms var(--avelen-ease), border-color 220ms var(--avelen-ease), box-shadow 220ms var(--avelen-ease);
}

.social-feed[data-avelen-social-progression] .social-tile.avelen-social-active {
  z-index: 1;
  border-color: rgba(244, 199, 170, .72);
  box-shadow: 0 14px 29px rgba(0, 0, 0, .23);
}

@media (hover: hover) and (pointer: fine) {
  .social-feed[data-avelen-social-progression] .social-grid:has(.avelen-social-active) .social-tile:not(.avelen-social-active) {
    opacity: .7;
  }
}

.edit-grid[data-avelen-editorial] .edit-frame {
  cursor: pointer;
  transition: border-color 260ms var(--avelen-ease), box-shadow 260ms var(--avelen-ease), filter 260ms var(--avelen-ease);
}

.edit-grid[data-avelen-editorial] .edit-frame.avelen-editorial-active {
  z-index: 2;
  border-color: rgba(249, 219, 197, .86);
  box-shadow: 0 22px 46px rgba(12, 8, 7, .28), inset 0 0 0 1px rgba(255, 248, 242, .18);
}

.plan-steps .plan-step {
  transition: opacity 240ms var(--avelen-ease), transform 240ms var(--avelen-ease), border-color 240ms var(--avelen-ease);
}

.plan-steps .plan-step.avelen-plan-active {
  position: relative;
  border-color: rgba(219, 141, 168, .58);
  transform: translateX(5px);
}

.plan-steps .plan-step.avelen-plan-active span {
  color: #f1bdca;
  text-shadow: 0 0 16px rgba(241, 189, 202, .34);
}

#photo-consultation[data-avelen-photo-stage] .photo-plan-card {
  transition: border-color 220ms var(--avelen-ease), background 220ms var(--avelen-ease), opacity 220ms var(--avelen-ease);
}

#photo-consultation .photo-plan-card.avelen-photo-complete {
  border-color: rgba(142, 224, 170, .52);
  background: linear-gradient(135deg, rgba(142, 224, 170, .11), rgba(240, 199, 165, .08));
}

#photo-consultation .photo-plan-card.avelen-photo-complete i {
  background: #9be8b4;
}

#photo-consultation .photo-plan-card.avelen-photo-next {
  border-color: rgba(240, 199, 165, .5);
  box-shadow: inset 0 0 0 1px rgba(240, 199, 165, .08);
}

#photo-consultation[data-avelen-photo-stage="ready"] .photo-upload-status,
#photo-consultation[data-avelen-photo-stage="complete"] .photo-upload-status {
  border-color: rgba(142, 224, 170, .4);
  background: linear-gradient(110deg, rgba(142, 224, 170, .1), rgba(240, 199, 165, .08));
}

#photo-consultation .dropzone.avelen-photo-ready {
  border-color: rgba(142, 224, 170, .72);
}

.booking-scheduler {
  position: relative;
}

.booking-scheduler::before {
  position: absolute;
  z-index: 2;
  top: -1px;
  left: 7%;
  width: 86%;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #edb5c8, #f0c59e);
  content: "";
  transform: scaleX(.08);
  transform-origin: left;
  transition: transform 260ms var(--avelen-ease);
  pointer-events: none;
}

.booking-scheduler[data-avelen-booking-step="day"]::before {
  transform: scaleX(.55);
}

.booking-scheduler[data-avelen-booking-step="time"]::before {
  transform: scaleX(1);
}

.booking-scheduler[data-avelen-booking-step="time"] .time-tile.is-selected {
  box-shadow: 0 10px 22px rgba(232, 159, 185, .22);
}

.booking-wrap[data-avelen-consultation-step="look"] :is(.selection-card, .quick-card),
.booking-wrap[data-avelen-consultation-step="date"] :is(.selection-card, .quick-card),
.booking-wrap[data-avelen-consultation-step="time"] :is(.selection-card, .quick-card) {
  border-color: rgba(240, 199, 165, .42);
  box-shadow: 0 13px 30px rgba(12, 9, 8, .18);
}

.booking-wrap[data-avelen-consultation-step="time"] .book-submit {
  box-shadow: 0 13px 28px rgba(239, 180, 202, .22);
}

.dashboard .avelen-reveal {
  transition-delay: 20ms;
}

/* Kit / gift request pages */
.kit-card,
.gift-note,
.gift-form {
  transition: border-color 240ms var(--avelen-ease), box-shadow 240ms var(--avelen-ease), transform 240ms var(--avelen-ease);
}

.kit-card.selected {
  box-shadow: 0 16px 34px rgba(72, 39, 34, .1);
}

/* Hard restore for results gallery — spotlight/zoom must never collapse absolute slides. */
.result-feature.avelen-spotlight > .result-slide,
.result-feature.avelen-media-zoom > .result-slide,
.result-feature > .result-slide {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-height: none;
}

.result-feature {
  min-height: 640px;
}

.result-small.avelen-media-zoom > img,
.result-small > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.result-stack {
  min-height: 640px;
  align-content: stretch;
}

.result-small {
  min-height: 0;
  height: 100%;
}

@media (hover: none), (pointer: coarse) {
  .avelen-tactile:active:not(:disabled) {
    filter: brightness(1.035);
    transform: scale(.978);
  }

  .avelen-gallery-feedback {
    -webkit-user-select: none;
    user-select: none;
  }

  .avelen-cursor-dot {
    display: none;
  }

  .avelen-tilt,
  .avelen-tilt.avelen-is-tilting,
  .avelen-magnetic,
  .avelen-magnetic.avelen-is-magnet {
    transform: none !important;
  }

  .avelen-spotlight::before {
    display: none;
  }

  .avelen-parallax {
    transform: none !important;
  }
}

@media (max-width: 900px) {
  .avelen-reveal {
    transform: translate3d(0, 14px, 0);
  }

  .avelen-section-live.avelen-in-view::before {
    left: 4%;
    width: 92%;
  }

  /* Keep social masonry from avelen-social.css — do not force a broken horizontal strip. */

  .plan-steps .plan-step.avelen-plan-active {
    transform: none;
  }

  .avelen-mask-reveal {
    clip-path: inset(4% 4% 4% 4% round 14px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .avelen-scroll-progress,
  .avelen-cursor-dot,
  .avelen-touch-ring,
  .avelen-frame::after,
  .avelen-section-live::before {
    animation: none !important;
    transition: none !important;
  }

  .avelen-cursor-field,
  .avelen-cursor-dot,
  .avelen-touch-ring {
    display: none !important;
  }

  .avelen-reveal,
  .avelen-reveal.avelen-in,
  .avelen-route-intro,
  .avelen-tactile,
  .avelen-gallery-feedback,
  .avelen-tilt,
  .avelen-tilt.avelen-is-tilting,
  .avelen-magnetic,
  .avelen-magnetic.avelen-is-magnet,
  .avelen-media-zoom:not(.result-feature):not(.hero-photo) > img,
  .avelen-parallax,
  .avelen-mask-reveal {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    clip-path: none !important;
  }

  .avelen-reveal,
  .avelen-mask-reveal {
    opacity: 1 !important;
  }

  .avelen-selection-hit {
    animation: none !important;
  }

  .result-stack .avelen-story-card,
  .method-grid[data-avelen-method-comparison] .method-card,
  .price-grid[data-avelen-price-guide] .price-card,
  .social-feed[data-avelen-social-progression] .social-tile,
  .edit-grid[data-avelen-editorial] .edit-frame,
  .plan-steps .plan-step,
  #photo-consultation[data-avelen-photo-stage] .photo-plan-card,
  .booking-scheduler::before {
    animation: none !important;
    transition: none !important;
  }

  .social-feed[data-avelen-social-progression] .social-grid {
    scroll-snap-type: none;
  }

  body.avelen-interactions-ready .form-field:focus-within::after,
  body.avelen-interactions-ready .field:focus-within::after {
    animation: none !important;
  }
}
