/* Samta Floating Graduation Caps — front-end only */
.samta-fgc-layer {
    position: fixed;
    inset: 0;
    z-index: 99990;
    overflow: hidden;
    pointer-events: none;
    user-select: none;
    opacity: 0;
    visibility: hidden;
    transition: opacity .35s ease, visibility .35s ease;
    contain: layout paint style;
}

.samta-fgc-layer.is-visible {
    opacity: 1;
    visibility: visible;
}

.samta-fgc-cap {
    --cap-size: 58px;
    --cap-duration: 18s;
    --cap-delay: 0s;
    --cap-top: 18vh;
    --cap-opacity: .88;
    position: absolute;
    left: -18vw;
    top: 0;
    width: var(--cap-size);
    height: auto;
    opacity: var(--cap-opacity);
    filter: drop-shadow(0 9px 11px rgba(15, 61, 74, .22));
    will-change: transform, opacity;
    animation: samta-fgc-fly var(--cap-duration) linear var(--cap-delay) infinite;
}

.samta-fgc-cap:nth-child(even) {
    animation-name: samta-fgc-fly-alt;
}

@keyframes samta-fgc-fly {
    0% {
        transform: translate3d(-12vw, var(--cap-top), 0) rotate(-16deg) scale(.86);
        opacity: 0;
    }
    6% { opacity: var(--cap-opacity); }
    23% {
        transform: translate3d(22vw, calc(var(--cap-top) - 32px), 0) rotate(7deg) scale(1);
    }
    48% {
        transform: translate3d(50vw, calc(var(--cap-top) + 20px), 0) rotate(-5deg) scale(.96);
    }
    74% {
        transform: translate3d(80vw, calc(var(--cap-top) - 28px), 0) rotate(11deg) scale(1.04);
    }
    94% { opacity: var(--cap-opacity); }
    100% {
        transform: translate3d(122vw, calc(var(--cap-top) + 8px), 0) rotate(-10deg) scale(.9);
        opacity: 0;
    }
}

@keyframes samta-fgc-fly-alt {
    0% {
        transform: translate3d(122vw, var(--cap-top), 0) rotate(14deg) scale(.9);
        opacity: 0;
    }
    6% { opacity: var(--cap-opacity); }
    26% {
        transform: translate3d(82vw, calc(var(--cap-top) + 26px), 0) rotate(-8deg) scale(1.02);
    }
    52% {
        transform: translate3d(52vw, calc(var(--cap-top) - 24px), 0) rotate(6deg) scale(.96);
    }
    77% {
        transform: translate3d(20vw, calc(var(--cap-top) + 18px), 0) rotate(-11deg) scale(1.05);
    }
    94% { opacity: var(--cap-opacity); }
    100% {
        transform: translate3d(-20vw, calc(var(--cap-top) - 8px), 0) rotate(9deg) scale(.88);
        opacity: 0;
    }
}

@media (max-width: 782px) {
    .samta-fgc-cap {
        --cap-size: 44px;
        --cap-opacity: .76;
        filter: drop-shadow(0 6px 8px rgba(15, 61, 74, .18));
    }

    .samta-fgc-cap:nth-child(n+4) {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .samta-fgc-cap {
        animation-duration: 38s;
    }
}

@media print {
    .samta-fgc-layer {
        display: none !important;
    }
}
