////
///
/// Lightspeed Animations Mixin Module
/// ===========================================================================
///
/// Provides high-speed entrance and exit animations with skew effects.
/// Creates dramatic, sci-fi style transitions. Ideal for dynamic content
/// reveals and attention-grabbing entrances.
///
/// @group Animations
/// @author Scape Agency
/// @link https://move.gl
/// @since 0.1.0 initial release
/// @access public
///
////


// ============================================================================
// Use
// ============================================================================

@use "../../dev" as *;
@use "../../variables" as *;
@use "../keyframes" as *;
@use "base" as *;


// ============================================================================
// Mixins
// ============================================================================


///
/// Lightspeed In Animation
/// ---------------------------------------------------------------------------
/// High-speed entrance from the right with skew effect.
///
/// @name animate_lightspeed_in
/// @param {Length} $distance [100%] - Starting distance offscreen
/// @param {Angle} $skew_start [-30deg] - Initial skew angle
/// @param {Time} $duration [$animate_base_duration] - Animation duration
/// @param {String} $timing_function [ease-out] - Timing function
///
/// @example scss - Basic usage
///   .hero-title {
///     @include animate_lightspeed_in;
///   }
///
@mixin animate_lightspeed_in(
    $distance: 100%,
    $skew_start: -30deg,
    $duration: $animate_base_duration,
    $timing_function: ease-out
) {
    @include animate_base(
        animate_lightspeed_in,
        $duration,
        $timing_function,
        1
    );
    @include keyframes_animate_lightspeed_in($distance, $skew_start);
}


///
/// Lightspeed Out Animation
/// ---------------------------------------------------------------------------
/// High-speed exit to the right with skew effect.
///
/// @name animate_lightspeed_out
/// @param {Length} $distance [100%] - Ending distance offscreen
/// @param {Angle} $skew_end [30deg] - Final skew angle
/// @param {Time} $duration [$animate_base_duration] - Animation duration
/// @param {String} $timing_function [ease-in] - Timing function
///
/// @example scss - Usage
///   .closing-panel {
///     @include animate_lightspeed_out;
///   }
///
@mixin animate_lightspeed_out(
    $distance: 100%,
    $skew_end: 30deg,
    $duration: $animate_base_duration,
    $timing_function: ease-in
) {
    @include animate_base(
        animate_lightspeed_out,
        $duration,
        $timing_function,
        1
    );
    @include keyframes_animate_lightspeed_out($distance, $skew_end);
}


///
/// Lightspeed In Left Animation
/// ---------------------------------------------------------------------------
/// High-speed entrance from the left.
///
/// @name animate_lightspeed_in_left
/// @param {Time} $duration [$animate_base_duration] - Animation duration
///
/// @example scss - Usage
///   .slide-title {
///     @include animate_lightspeed_in_left;
///   }
///
@mixin animate_lightspeed_in_left(
    $duration: $animate_base_duration
) {
    @include animate_lightspeed_in(-100%, 30deg, $duration);
}


///
/// Lightspeed Out Left Animation
/// ---------------------------------------------------------------------------
/// High-speed exit to the left.
///
/// @name animate_lightspeed_out_left
/// @param {Time} $duration [$animate_base_duration] - Animation duration
///
/// @example scss - Usage
///   .exit-panel {
///     @include animate_lightspeed_out_left;
///   }
///
@mixin animate_lightspeed_out_left(
    $duration: $animate_base_duration
) {
    @include animate_lightspeed_out(-100%, -30deg, $duration);
}
