/* Parametric Animation System */
/* CSS-only animations using @starting-style with full control via CSS variables */

@media (prefers-reduced-motion: no-preference) {
  /* Base animation class with common properties */
  .css-motion {
    --anim-duration: 0.5s;
    --anim-delay: 0s;
    --anim-timing: ease-out;
    --anim-translate-x: 0;
    --anim-translate-y: 0;
    --anim-scale: 1;
    --anim-rotate: 0deg;
    --anim-blur: 0px;
    --anim-opacity-start: 1;
    --anim-opacity-end: 1;
    will-change: opacity, transform, filter;
  }

  /* Animation triggered on load */
  .css-motion--load {
    transition-property: opacity, transform, filter;
    transition-duration: var(--anim-duration);
    transition-timing-function: var(--anim-timing);
    transition-delay: var(--anim-delay);
    opacity: var(--anim-opacity-end);
    transform: translateX(0) translateY(0) scale(1) rotate(0deg);
    filter: blur(0);

    @starting-style {
      opacity: var(--anim-opacity-start);
      transform: translateX(var(--anim-translate-x))
        translateY(var(--anim-translate-y)) scale(var(--anim-scale))
        rotate(var(--anim-rotate));
      filter: blur(var(--anim-blur));
    }
  }

  /* Animation triggered on intersection */
  .css-motion--view {
    opacity: var(--anim-opacity-start);
    transform: translateX(var(--anim-translate-x))
      translateY(var(--anim-translate-y)) scale(var(--anim-scale))
      rotate(var(--anim-rotate));
    filter: blur(var(--anim-blur));
    transition: none;
  }

  .css-motion--view.in-view {
    transition-property: opacity, transform, filter;
    transition-duration: var(--anim-duration);
    transition-timing-function: var(--anim-timing);
    transition-delay: var(--anim-delay);
    opacity: var(--anim-opacity-end);
    transform: translateX(0) translateY(0) scale(1) rotate(0deg);
    filter: blur(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .css-motion,
  .css-motion--load,
  .css-motion--view {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdHlsZXMuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIiwiZmlsZSI6InN0eWxlcy5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBQYXJhbWV0cmljIEFuaW1hdGlvbiBTeXN0ZW0gKi9cbi8qIENTUy1vbmx5IGFuaW1hdGlvbnMgdXNpbmcgQHN0YXJ0aW5nLXN0eWxlIHdpdGggZnVsbCBjb250cm9sIHZpYSBDU1MgdmFyaWFibGVzICovXG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAvKiBCYXNlIGFuaW1hdGlvbiBjbGFzcyB3aXRoIGNvbW1vbiBwcm9wZXJ0aWVzICovXG4gIC5jc3MtbW90aW9uIHtcbiAgICAtLWFuaW0tZHVyYXRpb246IDAuNXM7XG4gICAgLS1hbmltLWRlbGF5OiAwcztcbiAgICAtLWFuaW0tdGltaW5nOiBlYXNlLW91dDtcbiAgICAtLWFuaW0tdHJhbnNsYXRlLXg6IDA7XG4gICAgLS1hbmltLXRyYW5zbGF0ZS15OiAwO1xuICAgIC0tYW5pbS1zY2FsZTogMTtcbiAgICAtLWFuaW0tcm90YXRlOiAwZGVnO1xuICAgIC0tYW5pbS1ibHVyOiAwcHg7XG4gICAgLS1hbmltLW9wYWNpdHktc3RhcnQ6IDE7XG4gICAgLS1hbmltLW9wYWNpdHktZW5kOiAxO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5LCB0cmFuc2Zvcm0sIGZpbHRlcjtcbiAgfVxuXG4gIC8qIEFuaW1hdGlvbiB0cmlnZ2VyZWQgb24gbG9hZCAqL1xuICAuY3NzLW1vdGlvbi0tbG9hZCB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtLCBmaWx0ZXI7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tYW5pbS1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWFuaW0tdGltaW5nKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS1hbmltLWRlbGF5KTtcbiAgICBvcGFjaXR5OiB2YXIoLS1hbmltLW9wYWNpdHktZW5kKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gICAgZmlsdGVyOiBibHVyKDApO1xuXG4gICAgQHN0YXJ0aW5nLXN0eWxlIHtcbiAgICAgIG9wYWNpdHk6IHZhcigtLWFuaW0tb3BhY2l0eS1zdGFydCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tYW5pbS10cmFuc2xhdGUteCkpXG4gICAgICAgIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS10cmFuc2xhdGUteSkpIHNjYWxlKHZhcigtLWFuaW0tc2NhbGUpKVxuICAgICAgICByb3RhdGUodmFyKC0tYW5pbS1yb3RhdGUpKTtcbiAgICAgIGZpbHRlcjogYmx1cih2YXIoLS1hbmltLWJsdXIpKTtcbiAgICB9XG4gIH1cblxuICAvKiBBbmltYXRpb24gdHJpZ2dlcmVkIG9uIGludGVyc2VjdGlvbiAqL1xuICAuY3NzLW1vdGlvbi0tdmlldyB7XG4gICAgb3BhY2l0eTogdmFyKC0tYW5pbS1vcGFjaXR5LXN0YXJ0KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tYW5pbS10cmFuc2xhdGUteCkpXG4gICAgICB0cmFuc2xhdGVZKHZhcigtLWFuaW0tdHJhbnNsYXRlLXkpKSBzY2FsZSh2YXIoLS1hbmltLXNjYWxlKSlcbiAgICAgIHJvdGF0ZSh2YXIoLS1hbmltLXJvdGF0ZSkpO1xuICAgIGZpbHRlcjogYmx1cih2YXIoLS1hbmltLWJsdXIpKTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5cbiAgLmNzcy1tb3Rpb24tLXZpZXcuaW4tdmlldyB7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgdHJhbnNmb3JtLCBmaWx0ZXI7XG4gICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogdmFyKC0tYW5pbS1kdXJhdGlvbik7XG4gICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWFuaW0tdGltaW5nKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiB2YXIoLS1hbmltLWRlbGF5KTtcbiAgICBvcGFjaXR5OiB2YXIoLS1hbmltLW9wYWNpdHktZW5kKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKSBzY2FsZSgxKSByb3RhdGUoMGRlZyk7XG4gICAgZmlsdGVyOiBibHVyKDApO1xuICB9XG59XG5cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5jc3MtbW90aW9uLFxuICAuY3NzLW1vdGlvbi0tbG9hZCxcbiAgLmNzcy1tb3Rpb24tLXZpZXcge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICAgIGZpbHRlcjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG59XG4iXX0= */