/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: Mar 15 2026 | 18:21:16 */
/* ==========================================================
   Intro animation shared settings
   ========================================================== */

:root {
  --intro-distance: 0.5em;
  --intro-unit-distance: 5em;
  --intro-duration: 0.4s;
  --intro-stagger: 0.025s;
  --intro-ease: cubic-bezier(0.2, 0.8, 0.4, 1);
  --intro-delay: 0s;
  --intro-blur: 2px;
  --intro-text-stretch: 1.2;
  --intro-unit-stretch: 1.1;
}

/* ==========================================================
   Pre-init visibility protection
   ========================================================== */

html:not(.no-js) .text-intro,
html:not(.no-js) .intro-unit {
  visibility: hidden;
}

html:not(.no-js) .text-intro.is-split,
html:not(.no-js) .intro-unit.is-ready {
  visibility: visible;
}

/* ==========================================================
   Character-based intro
   ========================================================== */

/* Word wrapper to preserve normal word-based line wrapping */
.text-intro .word {
  display: inline-block;
  white-space: nowrap;
}

.text-intro .char {
  display: inline-block;
  opacity: 0;
  transform: translateY(var(--intro-distance)) scaleY(var(--intro-text-stretch));
  filter: blur(var(--intro-blur));
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  transform-origin: center center;
}

.text-intro.is-visible .char {
  animation: textIntroChar var(--intro-duration) var(--intro-ease) forwards;
  animation-delay: calc(var(--intro-delay, 0s) + (var(--char-index) * var(--intro-stagger)));
}

/* ==========================================================
   Whole-unit intro
   ========================================================== */

.intro-unit {
  opacity: 0;
  transform: translateY(var(--intro-unit-distance)) scaleY(var(--intro-unit-stretch));
  filter: blur(var(--intro-blur));
  will-change: transform, opacity, filter;
  backface-visibility: hidden;
  transform-origin: center center;
}

.intro-unit.is-visible {
  animation: introUnitReveal var(--intro-duration) var(--intro-ease) forwards;
  animation-delay: var(--intro-delay, 0s);
}

/* ==========================================================
   Keyframes
   ========================================================== */

@keyframes textIntroChar {
  from {
    opacity: 0;
    transform: translateY(var(--intro-distance)) scaleY(var(--intro-text-stretch));
    filter: blur(var(--intro-blur));
  }
  to {
    opacity: 1;
    transform: translateY(0) scaleY(1);
    filter: blur(0);
  }
}

@keyframes introUnitReveal {
  from {
    opacity: 0;
    transform: translateY(var(--intro-unit-distance)) scaleY(var(--intro-unit-stretch));
    filter: blur(var(--intro-blur));
  }
  to {
    opacity: 1;
    transform: translateY(0) scaleY(1);
    filter: blur(0);
  }
}

/* ==========================================================
   Reduced motion
   ========================================================== */

@media (prefers-reduced-motion: reduce) {
  .text-intro,
  .intro-unit {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }

  .text-intro .char {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }
}

/* ==========================================================
   Intro delay utility classes
   ========================================================== */

.delay-0  { --intro-delay: 0s; }
.delay-1  { --intro-delay: 0.1s; }
.delay-2  { --intro-delay: 0.2s; }
.delay-3  { --intro-delay: 0.3s; }
.delay-4  { --intro-delay: 0.4s; }
.delay-5  { --intro-delay: 0.5s; }
.delay-6  { --intro-delay: 0.6s; }
.delay-7  { --intro-delay: 0.7s; }
.delay-8  { --intro-delay: 0.8s; }
.delay-9  { --intro-delay: 0.9s; }
.delay-10 { --intro-delay: 1s; }
.delay-12 { --intro-delay: 1.2s; }
.delay-15 { --intro-delay: 1.5s; }
.delay-20 { --intro-delay: 2s; }

.delay-lg-1 { --intro-delay: 1.2s; }
.delay-lg-2 { --intro-delay: 1.4s; }
.delay-lg-3 { --intro-delay: 1.6s; }
.delay-lg-4 { --intro-delay: 1.8s; }
.delay-lg-5 { --intro-delay: 2s; }