@keyframes driftLeftRight {
    0% { transform: translateX(-15%); }
    50% { transform: translateX(15%); }
    100% { transform: translateX(-15%); }
}

@keyframes driftRightLeft {
    0% { transform: translateX(15%); }
    50% { transform: translateX(-15%); }
    100% { transform: translateX(15%); }
}

.intro-drift-strip-a {
    width: 33%;
    height: 6rem;
    animation: driftLeftRight 14s ease-in-out infinite;
}

.intro-drift-strip-b {
    width: 50%;
    height: 4rem;
    animation: driftRightLeft 18s ease-in-out infinite;
}

.intro-drift-strip-c {
    width: 25%;
    height: 5rem;
    animation: driftLeftRight 12s ease-in-out infinite;
    animation-delay: 3s;
}

.intro-drift-container {
    max-width: 80rem;
}

.intro-drift-textbox {
    max-width: 48rem;
}

/* Steps v20 — Horizontal Boarding-Pass Ticket Row Steps with Perforated Stub Divider */

/* Responsive card grid (avoids mixing Bootstrap row/col with a flex/grid gap on the same node) */
.ticket-stub__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 768px) {
    .ticket-stub__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 992px) {
    .ticket-stub__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Fixed-width code/number stub (no Bootstrap utility equivalent) */
.ticket-stub__code-box {
    width: 5rem;
}

/* Perforated divider — dashed edge between the stub and the ticket body */
.ticket-stub__divider {
    width: 0;
    border-left-style: dashed;
    margin-top: 1rem;
    margin-bottom: 1rem;
}

/* Prevents flex-child text overflow inside the ticket body */
.ticket-stub__min-shrink {
    min-width: 0;
}

.precept-dashboard__topo {
    background-image: repeating-radial-gradient(circle at 20% 30%, currentColor 0, transparent 2px, transparent 40px);
}

.precept-dashboard__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 640px) {
    .precept-dashboard__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .precept-dashboard__grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.stats__icon-dim {
  width: 4rem;
  height: 4rem;
}

.stats-card-hover {
  transition:
    box-shadow 0.3s ease,
    transform 0.3s ease;
}

.stats-card-hover:hover {
  box-shadow:
    0 25px 50px -12px rgb(0 0 0 / 0.25);
  transform: translateY(-0.5rem) scale(1.05);
}

.stats-icon-inner-hover {
  transition: transform 0.3s ease;
}

.stats-card-hover:hover .stats-icon-inner-hover {
  transform: scale(1.1);
}


