/* Main CSS */

/* Override Bootstrap variables for the dark theme */
/* :root {
	--bs-body-color: #fff;
    --bs-body-bg: #030918;
	--bs-secondary-bg: #0c1827; */

    /* --bs-dropdown-link-hover-bg: #345;
    --bs-dropdown-link-color: #000;
    --bs-navbar-active-color: #000; */
/* } */

/* :root, [data-bs-theme="light"] {
	--bs-blue: #0d6efd;
	--bs-indigo: #6610f2;
	--bs-purple: #6f42c1;
	--bs-pink: #d63384;
	--bs-red: #dc3545;
	--bs-orange: #fd7e14;
	--bs-yellow: #ffc107;
	--bs-green: #198754;
	--bs-teal: #20c997;
	--bs-cyan: #0dcaf0;
	--bs-black: #000;
	--bs-white: #fff;
	--bs-gray: #6c757d;
	--bs-gray-dark: #343a40;
	--bs-gray-100: #f8f9fa;
	--bs-gray-200: #e9ecef;
	--bs-gray-300: #dee2e6;
	--bs-gray-400: #ced4da;
	--bs-gray-500: #adb5bd;
	--bs-gray-600: #6c757d;
	--bs-gray-700: #495057;
	--bs-gray-800: #343a40;
	--bs-gray-900: #212529;
	--bs-primary: #0d6efd;
	--bs-secondary: #6c757d;
	--bs-success: #198754;
	--bs-info: #0dcaf0;
	--bs-warning: #ffc107;
	--bs-danger: #dc3545;
	--bs-light: #f8f9fa;
	--bs-dark: #212529;
	--bs-primary-rgb: 13,110,253;
	--bs-secondary-rgb: 108,117,125;
	--bs-success-rgb: 25,135,84;
	--bs-info-rgb: 13,202,240;
	--bs-warning-rgb: 255,193,7;
	--bs-danger-rgb: 220,53,69;
	--bs-light-rgb: 248,249,250;
	--bs-dark-rgb: 33,37,41;
	--bs-primary-text-emphasis: #052c65;
	--bs-secondary-text-emphasis: #2b2f32;
	--bs-success-text-emphasis: #0a3622;
	--bs-info-text-emphasis: #055160;
	--bs-warning-text-emphasis: #664d03;
	--bs-danger-text-emphasis: #58151c;
	--bs-light-text-emphasis: #495057;
	--bs-dark-text-emphasis: #495057;
	--bs-primary-bg-subtle: #cfe2ff;
	--bs-secondary-bg-subtle: #e2e3e5;
	--bs-success-bg-subtle: #d1e7dd;
	--bs-info-bg-subtle: #cff4fc;
	--bs-warning-bg-subtle: #fff3cd;
	--bs-danger-bg-subtle: #f8d7da;
	--bs-light-bg-subtle: #fcfcfd;
	--bs-dark-bg-subtle: #ced4da;
	--bs-primary-border-subtle: #9ec5fe;
	--bs-secondary-border-subtle: #c4c8cb;
	--bs-success-border-subtle: #a3cfbb;
	--bs-info-border-subtle: #9eeaf9;
	--bs-warning-border-subtle: #ffe69c;
	--bs-danger-border-subtle: #f1aeb5;
	--bs-light-border-subtle: #e9ecef;
	--bs-dark-border-subtle: #adb5bd;
	--bs-white-rgb: 255,255,255;
	--bs-black-rgb: 0,0,0;
	--bs-font-sans-serif: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
	--bs-font-monospace: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
	--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
	--bs-body-font-family: var(--bs-font-sans-serif);
	--bs-body-font-size: 1rem;
	--bs-body-font-weight: 400;
	--bs-body-line-height: 1.5;
	--bs-body-color: #212529;
	--bs-body-color-rgb: 33,37,41;
	--bs-body-bg: #fff;
	--bs-body-bg-rgb: 255,255,255;
	--bs-emphasis-color: #000;
	--bs-emphasis-color-rgb: 0,0,0;
	--bs-secondary-color: rgba(33, 37, 41, 0.75);
	--bs-secondary-color-rgb: 33,37,41;
	--bs-secondary-bg: #e9ecef;
	--bs-secondary-bg-rgb: 233,236,239;
	--bs-tertiary-color: rgba(33, 37, 41, 0.5);
	--bs-tertiary-color-rgb: 33,37,41;
	--bs-tertiary-bg: #f8f9fa;
	--bs-tertiary-bg-rgb: 248,249,250;
	--bs-heading-color: inherit;
	--bs-link-color: #0d6efd;
	--bs-link-color-rgb: 13,110,253;
	--bs-link-decoration: underline;
	--bs-link-hover-color: #0a58ca;
	--bs-link-hover-color-rgb: 10,88,202;
	--bs-code-color: #d63384;
	--bs-highlight-bg: #fff3cd;
	--bs-border-width: 1px;
	--bs-border-style: solid;
	--bs-border-color: #dee2e6;
	--bs-border-color-translucent: rgba(0, 0, 0, 0.175);
	--bs-border-radius: 0.375rem;
	--bs-border-radius-sm: 0.25rem;
	--bs-border-radius-lg: 0.5rem;
	--bs-border-radius-xl: 1rem;
	--bs-border-radius-xxl: 2rem;
	--bs-border-radius-2xl: var(--bs-border-radius-xxl);
	--bs-border-radius-pill: 50rem;
	--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
	--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);
	--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);
	--bs-focus-ring-width: 0.25rem;
	--bs-focus-ring-opacity: 0.25;
	--bs-focus-ring-color: rgba(13, 110, 253, 0.25);
	--bs-form-valid-color: #198754;
	--bs-form-valid-border-color: #198754;
	--bs-form-invalid-color: #dc3545;
	--bs-form-invalid-border-color: #dc3545;
} */

/*=================================================================
    Electric container style
=================================================================*/
@keyframes gradient {
    0% {background-position: 0% 50%;}
    50% {background-position: 0% 0%;}
    100% {background-position: 0% 50%;}
}

@keyframes wiremove {
    0% {background-position: 0px 0px;}
    100% {background-position: 0px 1500px;}
}

body{
    /*! color:#ffffff; */
    margin:0px;
    background: linear-gradient(0deg, #9e14d0, #e73c7e, #23a6d5, #23d5ab, #23a6d5, #e73c7e, #9e14d0);
    background-size: 100% 800%;
    background-attachment:fixed;
    animation: gradient 25s ease infinite;
}

.everything{
    height: 100vh;
    display: flex;
    flex-flow: column;
}

.wires{
    background-image: url( "/static/img/bg/wire-bg.png");
    background-attachment:fixed;
    padding: 7rem 0;
    animation: wiremove 44s linear infinite;
    /*! text-align:center; */
    flex: 1 1 auto;
}


/*=================================================================
    Electric container style
=================================================================*/
.e-container-border{
    padding: 4px;
    margin: 0;
    height: 100%;
    width: 100%;
    background-color:#222222;
    background: linear-gradient(180deg, #4b8fca, #e73c7e, #23a6d5, #23d5ab);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
    box-shadow: 0px 2px 10px 0px #221133;
    transition-timing-function: ease-out;
    transition-duration: 0.3s;
}

.e-container{
    height: 100%;
    width: 100%;
    overflow: auto;
    background-color: #222222;
    text-align: justify;
}

.e-container-radius{
    border-radius: 25px;
}


/*=================================================================
    Responsive image gallery old
=================================================================*/
.gallery-container {
    max-width: auto;
    margin: 32px auto;
    display: flex;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
    justify-content: center;
    align-items: center;
    width: 100%;
    gap: 4px;
}

.img-holder {
    flex-grow:1;
    margin: .2rem;
    overflow: hidden;

    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;

    border: 2px #707070 solid;
    border-radius: 8px;
    background-color: #707070;
} 
  
.img-holder img {
    padding: 0px;
    border-radius: 8px;
    display: block;
    margin: 0 auto;
    width: 50%;
    min-width: 100%;
    height: 24rem;
    object-fit: cover;
    transition-duration: 300ms;
}

.img-holder img.blur {
	filter: blur(1.5rem);
}

.img-holder-small img {
	height: 12rem !important;
}

.img-holder-small img.blur {
	filter: blur(1.5rem);
}

.img-holder .layer {
    opacity: 0;
    position: absolute;
    display: grid;
    margin: 0 auto;
    width: 50%;
    min-width: 100%;
    justify-content: center;
    align-items: center;
    height: 100%;
    object-fit: cover;
    background: #0a030e;
    color: #fff;
    grid-row: 1;
    transition: all 0.9s ease;
	z-index: 1;
}

.img-holder .layer p {
    text-align: center;
    font-size: 15px;
    letter-spacing: 1px;
    transition: all 0.9s ease;
    /* transform: scale(0.8); */
}

.img-holder .layer h3 {
    text-align: center;
    font-size: 100%;
    letter-spacing: 1px;
    transition: all 0.9s ease;
    /* transform: scale(0.8); */
}

.img-holder:hover .layer {
    opacity: 0.8;
    transition: all 0.5s ease;
	
}

/* .img-holder:hover .layer p {
    transform: scale(1);
    transition: all 0.9s ease;
}

.img-holder:hover .layer h3 {
    transform: scale(1);
    transition: all 0.9s ease;
} */


.tag {
	text-decoration: none;
}

.tag:hover {
	/* transition: all 0; */
	text-decoration: underline;
}


/*=================================================================
    Responsive image gallery
=================================================================*/
    
.gallery-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px; /* Adjust the gap between items */
}

.gallery-item {
    height: 20vh;
    position: relative; /* Positioning context for the overlay */
    overflow: hidden; /* Ensure that the content does not overflow the set height */
    display: flex; /* Use Flexbox for vertical centering */
    justify-content: center; /* Center horizontally */
    align-items: center; /* Center vertically */
    border-radius: 1vmin;
    border: 2px solid black;
}

.gallery-item img {
    max-height: 100%;
    /* min-width: 50%; */
    object-fit: contain;
    vertical-align: bottom;
    border-radius: 1vmin;
}

.gallery-item img.blur {
    filter: blur(1.5rem);
}

/* ADVANCED */

/* Portrait */

@media (max-aspect-ratio: 1/1) {
    .gallery-item {
        height: 30vh;
    }
}

/* Short screens */

@media (max-height: 480px) {
    .gallery-item {
        height: 80vh;
    }
}

/* Smaller screens in portrait */

@media (max-aspect-ratio: 1/1) and (max-width: 480px) {
    .gallery-container {
        flex-direction: row;
    }
    
    .gallery-item {
        height: auto;
        width: 100%;
    }
    
    .gallery-item img {
        width: 100%;
        max-height: 75vh;
        min-width: 0;
    }
}

.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8); /* Semi-transparent black background */
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    opacity: 0; /* Hide the overlay by default */
    transition: opacity 0.3s ease; /* Smooth transition for the overlay */
}

.gallery-item:hover .overlay {
    opacity: 1; /* Show the overlay on hover */
}


/*=================================================================
    Site icon overlay on gallery
=================================================================*/

.site-btn-overlay {
    position: absolute;
    z-index: 2;
    right: 0;
    top: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 14px;
    letter-spacing: .5px;
    width: 30px;
    color: #232326;
    background-color: #414141;
    border: 1.25px solid #232326;
    border-radius: 0 1vmin 0 1vmin;
    white-space: nowrap;
    padding: 4px 4px 5px;
    margin: 0 0 0 1px;
    cursor: pointer;
    opacity: .8;
}

.site-btn-overlay img {
    height: 16px;
}


/*=================================================================
    Glitch text on 404 Page
=================================================================*/

.glitch {
    position: relative;
    color: white;
    font-size: 8em;
    letter-spacing: 0.5em;
    animation: glitch-skew 1s infinite linear alternate-reverse;
}

.glitch::before {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    left: 2px;
    text-shadow: -2px 0 #ff00c1;
    clip: rect(44px, 450px, 56px, 0);
    animation: glitch-anim 5s infinite linear alternate-reverse;
}

.glitch::after {
    content: attr(data-text);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    left: -2px;
    text-shadow: -2px 0 #00fff9, 2px 2px #ff00c1;
    animation: glitch-anim2 1s infinite linear alternate-reverse;
}

@keyframes glitch-anim {
    0% {
        clip: rect(80px, 9999px, 31px, 0);
        transform: skew(1deg);
    }
    5% {
        clip: rect(87px, 9999px, 12px, 0);
        transform: skew(0.31deg);
    }
    10% {
        clip: rect(34px, 9999px, 13px, 0);
        transform: skew(0.56deg);
    }
    15% {
        clip: rect(82px, 9999px, 74px, 0);
        transform: skew(0.69deg);
    }
    20% {
        clip: rect(1px, 9999px, 72px, 0);
        transform: skew(0.52deg);
    }
    25% {
        clip: rect(35px, 9999px, 54px, 0);
        transform: skew(0.5deg);
    }
    30% {
        clip: rect(62px, 9999px, 2px, 0);
        transform: skew(0.17deg);
    }
    35% {
        clip: rect(6px, 9999px, 28px, 0);
        transform: skew(0.12deg);
    }
    40% {
        clip: rect(50px, 9999px, 85px, 0);
        transform: skew(0.88deg);
    }
    45% {
        clip: rect(34px, 9999px, 53px, 0);
        transform: skew(0.98deg);
    }
    50% {
        clip: rect(15px, 9999px, 58px, 0);
        transform: skew(0.15deg);
    }
    55% {
        clip: rect(20px, 9999px, 68px, 0);
        transform: skew(0.06deg);
    }
    60% {
        clip: rect(77px, 9999px, 52px, 0);
        transform: skew(0.02deg);
    }
    65% {
        clip: rect(20px, 9999px, 11px, 0);
        transform: skew(0.2deg);
    }
    70% {
        clip: rect(97px, 9999px, 57px, 0);
        transform: skew(0.17deg);
    }
    75% {
        clip: rect(1px, 9999px, 36px, 0);
        transform: skew(1deg);
    }
    80% {
        clip: rect(31px, 9999px, 63px, 0);
        transform: skew(0.49deg);
    }
    85% {
        clip: rect(80px, 9999px, 39px, 0);
        transform: skew(0.78deg);
    }
    90% {
        clip: rect(74px, 9999px, 60px, 0);
        transform: skew(0.96deg);
    }
    95% {
        clip: rect(97px, 9999px, 59px, 0);
        transform: skew(0.46deg);
    }
    100% {
        clip: rect(56px, 9999px, 84px, 0);
        transform: skew(0.12deg);
    }
}

@keyframes glitch-anim2 {
    0% {
        clip: rect(39px, 9999px, 61px, 0);
        transform: skew(0.08deg);
    }
    5% {
        clip: rect(13px, 9999px, 77px, 0);
        transform: skew(0.62deg);
    }
    10% {
        clip: rect(16px, 9999px, 14px, 0);
        transform: skew(0.35deg);
    }
    15% {
        clip: rect(83px, 9999px, 24px, 0);
        transform: skew(0.81deg);
    }
    20% {
        clip: rect(70px, 9999px, 14px, 0);
        transform: skew(0.93deg);
    }
    25% {
        clip: rect(43px, 9999px, 88px, 0);
        transform: skew(0.05deg);
    }
    30% {
        clip: rect(60px, 9999px, 63px, 0);
        transform: skew(0.89deg);
    }
    35% {
        clip: rect(35px, 9999px, 11px, 0);
        transform: skew(0.87deg);
    }
    40% {
        clip: rect(10px, 9999px, 4px, 0);
        transform: skew(0.63deg);
    }
    45% {
        clip: rect(56px, 9999px, 51px, 0);
        transform: skew(0.12deg);
    }
    50% {
        clip: rect(22px, 9999px, 21px, 0);
        transform: skew(0.26deg);
    }
    55% {
        clip: rect(45px, 9999px, 80px, 0);
        transform: skew(0.56deg);
    }
    60% {
        clip: rect(65px, 9999px, 18px, 0);
        transform: skew(0.08deg);
    }
    65% {
        clip: rect(71px, 9999px, 89px, 0);
        transform: skew(0.38deg);
    }
    70% {
        clip: rect(89px, 9999px, 98px, 0);
        transform: skew(0.71deg);
    }
    75% {
        clip: rect(63px, 9999px, 3px, 0);
        transform: skew(0.75deg);
    }
    80% {
        clip: rect(4px, 9999px, 68px, 0);
        transform: skew(0.98deg);
    }
    85% {
        clip: rect(22px, 9999px, 85px, 0);
        transform: skew(0.8deg);
    }
    90% {
        clip: rect(28px, 9999px, 58px, 0);
        transform: skew(0.06deg);
    }
    95% {
        clip: rect(70px, 9999px, 12px, 0);
        transform: skew(0.99deg);
    }
    100% {
        clip: rect(11px, 9999px, 87px, 0);
        transform: skew(0.15deg);
    }
}

@keyframes glitch-skew {
    0% {
        transform: skew(4deg);
    }
    10% {
        transform: skew(5deg);
    }
    20% {
        transform: skew(1deg);
    }
    30% {
        transform: skew(1deg);
    }
    40% {
        transform: skew(5deg);
    }
    50% {
        transform: skew(1deg);
    }
    60% {
        transform: skew(0deg);
    }
    70% {
        transform: skew(3deg);
    }
    80% {
        transform: skew(4deg);
    }
    90% {
        transform: skew(5deg);
    }
    100% {
        transform: skew(-1deg);
    }
}