:root {
    --total-brand: 14;
    --logo-width: 15rem;
    --total-logo-width: calc(var(--total-brand)*var(--total-width)*2);
    --animation-duration: calc(var(--total-brand)*2s);

    --site-blue: #00b5e2;
    --site-purple: #9b4dff;
}

.slider {
    /* position: absolute; */
    margin-top: 2rem;
    width: 100%;
    height: 12rem;
    display: flex;
    align-items: center;
    overflow: hidden;
    /* box-shadow: 0 .8rem 1.4rem -.2rem #0001; */
}

.slider::before,
.slider::after {
    position: absolute;
    content: "";
    height: 100%;
    /* width: var(--logo-width); */
}

.slider ul.brands {
    list-style: none;
    width: var(--total-logo-width);
    display: flex;
    align-items: center;
    gap: 3rem;

    animation: slideLeft var(--animation-duration) linear infinite;
}

.site-blue {
    color: var(--site-blue);
}

.site-purple {
    color: var(--site-purple);
}

.bg-site-blue {
    background-color: var(--site-blue);
}

.bg-site-purple {
    background-color: var(--site-purple);
}

.slider:hover ul.brands {
    animation-play-state: paused;
}

@keyframes slideLeft {
    100% {
        transform: translateX(calc(-100%/2))
    }
}

ul.brands li.brand-logo {
    /* width: var(--logo-width); */
    text-align: center;
}

.darkmode-label {
    width: 100px;
    height: 40px;
    bottom: 12px;
    position: relative;
    display: block;
    background: #ebebeb;
    border-radius: 20px;
    box-shadow: inset 0px 2px 6px rgba(0, 0, 0, 0.4), inset 0 -2px 6px rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: 0.3s;
}

.darkmode-label:after {
    content: "";
    width: 36px;
    height: 36px;
    position: absolute;
    top: 2px;
    left: 2px;
    background: linear-gradient(180deg, #ffcc89, #d8860b);
    border-radius: 50%;
    box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.2);
    transition: 0.3s;
}

#darkmode-toggle {
    width: 0;
    height: 0;
    visibility: hidden;
}

#darkmode-toggle:checked+label {
    background: #4a4a4a;
}

#darkmode-toggle:checked+label::after {
    left: 94px;
    transform: translateX(-100%);
    background: linear-gradient(180deg, #777, #3a3a3a);
}

.darkmode-label:active::after {
    width: 44px;
}

.darkmode-label svg {
    position: absolute;
    width: 24px;
    top: 8px;
    z-index: 100;
}

.darkmode-label svg.sun {
    left: 8px;
    fill: #fff;
    transition: 0.3s;
}

.darkmode-label svg.moon {
    right: 11px;
    fill: #7e7e7e;
    transition: 0.3s;
}

.darkmode-label {
    transition: 0.3s;
    -webkit-transition: 0.3s;
}

.darkmode-label:after {
    transition: 0.3s;
    -webkit-transition: 0.3s;
}

#darkmode-toggle:checked+label::after {
    transform: translateX(-100%);
    transition: 0.3s;
    -webkit-transform: translateX(-100%);
    -webkit-transition: 0.3s;
}

.darkmode-label svg.sun,
.darkmode-label svg.moon {
    transition: 0.3s;
    -webkit-transition: 0.3s;
}


#darkmode-toggle:checked+label svg.sun {
    fill: #7e7e7e;
}

#darkmode-toggle:checked+label svg.moon {
    fill: #fff;
}

#blog .card {
    width: unset;
}

.min-h-screen {
    min-height: 100vh;
}

.w-full {
    width: 100%;
}

#home {
    height: 100vh;
    transition: height 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

#home,
#contact {
    transition: background 1s ease-in-out, opacity 0.8s ease-in-out, height 0.8s ease-in-out;
}

#contact {
    opacity: 0;
    /* Initially hidden until user scrolls */
}

.text-left {
    text-align: left;
}

.text-justify {
    text-align: justify;
}

.services-sub-card {
    min-height: calc(var(--max-card-height, auto));
    /* Set dynamically */
}

.background-flare {
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.background-flare::before,
.background-flare::after {
    content: "";
    position: absolute;
    width: 180px;
    height: 800px;
    background: radial-gradient(circle at center, rgba(120, 88, 255, 0.8), rgba(0, 0, 0, 0));
    border-radius: 50%;
    filter: blur(150px);
    opacity: 0.9;
    animation: moveFlare 6s infinite alternate ease-in-out, glowFade 3s infinite alternate ease-in-out;
}

.background-flare::after {
    width: 220px;
    height: 850px;
    background: radial-gradient(circle at center, rgba(88, 120, 255, 0.7), rgba(0, 0, 0, 0));
    border-radius: 70%;
    filter: blur(180px);
    opacity: 0.6;
    animation: moveFlare 8s infinite alternate ease-in-out, glowFade 4s infinite alternate ease-in-out;
}

.background-flare::before {
    width: 250px;
    height: 900px;
    background: linear-gradient(45deg, rgba(255, 0, 255, 0.7), rgba(0, 0, 255, 0.2));
    border-radius: 50%;
    filter: blur(120px);
    opacity: 0.8;
    animation: moveFlare 7s infinite alternate ease-in-out, glowFade 4s infinite alternate ease-in-out;
}

.background-flare .energy-wave {
    position: absolute;
    width: 140px;
    height: 750px;
    background: linear-gradient(90deg, rgba(255, 100, 255, 0.5), rgba(0, 0, 255, 0.2));
    border-radius: 40%;
    filter: blur(100px);
    opacity: 0.6;
    animation: waveMove 5s infinite alternate ease-in-out, glowFade 3s infinite alternate ease-in-out;
}


.owl-dots {
    display: none;
}

#techCanvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    /* Ensure it stays behind other content */
}

.gray-scale {
    filter: grayscale(100%) brightness(80%);
    transition: filter 0.3s ease-in-out;
}

.brand-logo>.gray-scale {
    height: 170px;
}

.equal-height {
    display: flex;
    flex-direction: column;
    height: 100%;
}

@keyframes moveFlare {
    0% {
        transform: translate(-10%, -20%) rotate(10deg) scale(1);
    }

    50% {
        transform: translate(5%, 10%) rotate(-5deg) scale(1.1);
    }

    100% {
        transform: translate(15%, 25%) rotate(15deg) scale(1.2);
    }
}

@keyframes glowFade {
    0% {
        opacity: 0.5;
    }

    100% {
        opacity: 1;
    }
}

@keyframes waveMove {
    0% {
        transform: translateX(-20px) rotate(5deg) scale(1);
    }

    100% {
        transform: translateX(20px) rotate(-5deg) scale(1.1);
    }
}

.background-flare {
    width: 100%;
    height: 100%;
    overflow: hidden;
    position: relative;
}

/* Flare Shots (Random Blasts) */
.flare {
    position: absolute;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(255, 0, 150, 0.8), rgba(0, 0, 0, 0));
    border-radius: 50%;
    filter: blur(100px);
    opacity: 0;
    animation: flareBlast 2s infinite ease-in-out;
}

/* Extra Glow Layer for Depth */
.flare::after {
    content: "";
    position: absolute;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(100, 0, 255, 0.7), rgba(0, 0, 0, 0));
    border-radius: 50%;
    filter: blur(150px);
    opacity: 0;
    animation: flareBlast 2s infinite ease-in-out;
}

/* Keyframe to Make Flares Appear at Random Positions and Move Upward */
@keyframes flareBlast {
    0% {
        opacity: 0;
        transform: translate(var(--x), 100%) scale(0.5);
        /* Start from the bottom */
    }

    50% {
        opacity: 1;
        transform: translate(var(--x), -50%) scale(1.2);
        /* Move upward */
    }

    100% {
        opacity: 0;
        transform: translate(var(--x), -100%) scale(1);
        /* Finish above the screen */
    }
}