/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

@import url('https://cdn-uicons.flaticon.com/4.0.0/uicons-regular-rounded/css/uicons-regular-rounded.css');

@import url('https://cdn-uicons.flaticon.com/4.0.0/uicons-bold-rounded/css/uicons-bold-rounded.css');

@import url('https://cdn-uicons.flaticon.com/4.0.0/uicons-thin-rounded/css/uicons-thin-rounded.css');

@import url('https://cdn-uicons.flaticon.com/4.0.0/uicons-regular-straight/css/uicons-regular-straight.css');

@import url('https://cdn-uicons.flaticon.com/4.0.0/uicons-regular-chubby/css/uicons-regular-chubby.css');

@font-face {
    font-family: xirod;
    src: url("../assets/fonts/Xirod.otf");
}

@font-face {
    font-family: nautilus;
    src: url("../assets/fonts/Nautilus.otf");
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
    color: currentColor;
}

button, div, input, textarea, a {
    transition: all ease 0.5s;
}

:root {
    --primary-color: #fe082b;
    --primary-color: #B70404;
    --secondary-color: #53eb4f;
    --background-color: #090909;
    --background-color-75: rgba(25, 25, 25, 0.75);
    --text-color: #f9f9f9;
    --primary-rgb: 254, 8, 43;
    --secondary-rgb: 83, 235, 79;
    --white-color: 249, 249, 249;
    --background-rgb: 9, 9, 9;
    
    /* font size */
    font-size: 16px;
}

html {
    scroll-behavior: smooth;
}

body {
    cursor: auto;
    overflow-x: hidden;
    font-family: "Montserrat", sans-serif;
    background-color: var(--background-color);
    /* background-image: linear-gradient(var(--background-color), #181818); */
    /* background-image: linear-gradient(to bottom, rgba(var(--primary-rgb), 0.25) 0%, transparent 10%, rgba(var(--secondary-rgb), 0));
    background-size: cover;
    background-repeat: no-repeat;
    
    background-image:  linear-gradient(rgba(var(--white-color), 0.015) 1.4000000000000001px, transparent 1.4000000000000001px), linear-gradient(to right, rgba(var(--white-color), 0.015) 1.4000000000000001px, var(--background-color) 1.4000000000000001px);
    background-size: 28px 28px; */
    color: var(--text-color);
    /* min-height: 100vh; */
}

i.zh {
    line-height: 0px;
}

p, span, li {
    cursor: text;
}

::selection {
  color: rgba(var(--white-color), 1);
  text-shadow: 0px 0px 25px rgba(var(--white-color), 1);
}

/* ...Font Formatting... */

/* Fonts Family */
.ff-xirod {
    font-family: xirod, sans-serif;
}

.ff-nautilus {
    font-family: nautilus, sans-serif;
    letter-spacing: 1px;
}

/* Headings */

h1, .h1 {
    font-size: 3.125rem;
    font-weight: 700;
    line-height: 1.15;
}

h2, .h2 {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
}

h3, .h3 {
    font-size: 1.625rem;
    font-weight: 600;
    line-height: 1.25;
}

h4, .h4 {
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 1.3;
}

h5, .h5 {
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.35;
}

h6, .h6 {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
}

/* Paragraph scale */
.max-p {
    max-width: 600px;
}

.max-p-md {
    max-width: 700px;
}

.op-50 {
    opacity: 0.50;
}

.op-text-25 {
    color: rgba(var(--white-color), 0.25)
}

.op-text-50 {
    color: rgba(var(--white-color), 0.5)
}

.centered-txt {
    text-align: center;
}

.p-too-small {
    font-size: 0.65rem;
    line-height: 1.65;
}

.p-small {
    font-size: 0.85rem;
    line-height: 1.65;
}

.p1 {
    font-size: 1.125rem;
    line-height: 1.6;
}

.p2 {
    font-size: 1rem;
    line-height: 1.65;
}

.p3 {
    font-size: 0.9375rem;
    line-height: 1.65;
}

.p4 {
    font-size: 0.875rem;
    line-height: 1.7;
}

.p5 {
    font-size: 0.8125rem;
    line-height: 1.7;
}

.p6 {
    font-size: 0.75rem;
    line-height: 1.75;
}

/* Font Weight */
.fw-thin {
    font-weight: 200;
}

.fw-light {
    font-weight: 300;
}

.fw-normal {
    font-weight: 400;
}

.fw-semibold {
    font-weight: 500;
}

.fw-bold {
    font-weight: 600;
}

.fw-bolder {
    font-weight: 700;
}

.fw-black {
    font-weight: 800;
}

.fw-max {
    font-weight: 900;
}

.txt-center {
    text-align: center;
}

/* colored */
.primary-text {
    color: var(--primary-color);
}

.secondary-text {
    color: var(--secondary-color)
}

/* utility */
.flxc,
.flx {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flxc {
    flex-direction: column;
}

.flx-jc-start {
    justify-content: flex-start;
}

.flx-ai-stretch {
    align-items: stretch;
}

.flx-ai-start {
    align-items: flex-start;
}

.gap-1 {
    gap: 0.75rem;
}

.gap-2 {
    gap: 1.5rem;
}

.w-full {
    width: 100%;
}

.responsive {
    width: 100%;
    max-width: 1920px;
    margin-inline: auto;
}

[data-goto] {
    cursor: pointer;
}

[data-goto][data-linktype="external"] {
    cursor: alias;
}

.hover-light span {
  /* color: rgba(var(--white-color), 0.25); */
}

.title-badge {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 10px 20px;
    border: 1px solid rgba(var(--white-color), 0.25);
    box-shadow: 
        inset 0 0 15px 0px rgba(var(--white-color), 0.1);
    border-radius: 99px;
    font-size: 0.75rem;
}

#switchtosidenav {
    display: none;
}

.sidenav {
    position: fixed;
    cursor: move;
    z-index: 9;
    top: 50%;
    right: 0px;
    transform: translateY(-50%);
}

.sidenav:hover {
    scale: 1.2;
}

.sidenav ul {
    background-color: rgb(var(--white-color), 0.05);
    backdrop-filter: blur(10px);
    list-style: none;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 15px;
    padding: 25px 15px;
    border: 1px solid rgba(var(--white-color), 0.25);
    border-right: none;
    border-radius: 99px 0 0 99px;
    color: rgba(var(--white-color), 0.5);
}

.sidenav ul li:hover,
.sidenav ul li.active {
    color: rgba(var(--white-color), 1);
    filter: drop-shadow(0 0 15px 0px rgba(var(--white-color), 0.1));
}

.sidenav ul .color-switcher {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    cursor: pointer;
    background-image: linear-gradient(45deg, 
        var(--primary) 45%,
        transparent 45%, 
        transparent 55%, 
        var(--secondary) 55%);
}

.sidenav ul .color-switcher:hover {
    transform: rotateZ(90deg);
}

.color-palette {
    position: fixed;
    width: 100vw;
    height: 100vh;
    display: none;
    place-items: center;
    z-index: 9;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.color-palette-close {
    width: 100%;
    height: 100%;
    background-color: rgba(var(--background-rgb), 0.5);
}

.color-palette .colors {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    max-width: 265px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 15px;
    padding: 15px 25px;
    border: 1px solid rgba(var(--white-color), 0.1);
    background-color: rgba(var(--background-rgb), 0.25);
    backdrop-filter: blur(10px);
    border-radius: 15px;
}

.color-palette .color {
    background-image: linear-gradient(45deg, 
        var(--primary) 45%, 
        transparent 45%, 
        transparent 55%, 
        var(--secondary) 55%);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    outline: 1px solid rgba(var(--white-color), 0.15);
}

.color-palette .color:active {
    transform: scale(0.75);
}

.color-palette .color.active {
    clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);


}

/* Main */
/* Header */
header {
    border-bottom: 1px solid rgba(var(--white-color), 0.05);
}

header .logo img {
    width: 27.5px;
}

header #menu.fixed,
header #menu {
    position: static;
    display: none;
    font-size: 1.25rem;
}

header .header-nav {
    position: relative;
    justify-content: space-between;
}

header nav ul {
    position: relative;
    list-style: none;
    margin: 0px;
}

header nav ul .follower {
    box-shadow: 0px 0px 30px 0px rgba(var(--white-color), 1);
    position: absolute;
    bottom: 0px;
    left: 0px;
    height: 1px;
    background-color: rgba(var(--white-color), 1);
    border-radius: 99px;
    transition: all cubic-bezier(0.175, 0.885, 0.32, 1.275) 1s;
}

header nav ul li {
    padding-inline: 1.15rem;
    height: 100%;
}

header nav ul li:hover {
    text-shadow: 0px 0px 30px rgba(var(--white-color), 1);
}

header nav ul li i {
    display: none;
}

header nav .social-links {
    padding-left: 1px;
    padding-bottom: 1px;
    background-color: rgba(var(--white-color), 0.05);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 12% 100%);
    position: absolute;
    right: 0;
    top: 100%;
}

header nav .social-links ul {
    clip-path: inherit;
    background-color: var(--background-color);
}

/* Sections */
section {
    display: block;
    width: 100%;
}

.fade-up {
    opacity: 0;
    transform: translateY(40px);
}

.slide-left {
    opacity: 0;
    transform: translateX(-80px);
}

.zoom-in {
    opacity: 0;
    transform: scale(0.8);
}

section .container {
    margin-inline: auto;
    width: clamp(50px, 100%, 1250px);
}

section .container.grid-2 {
    display: grid;
    gap: 20px;
    grid-template-columns: repeat(2, 1fr);
}

section .container.grid-2 .content-part {
    align-items: flex-start !important;
}

section .container.grid-2 .stay-part {
    position: sticky;
    height: fit-content;
    top: 20px;
}

/* bannerGraphic */
#bannerGraphic {
    width: 100%;
    height: 400px;
    /* overflow: hidden; */
    position: relative;
}

#bannerGraphic canvas {
    width: 100% !important;
}

/* designation */
.designations {
    width: 100%;
    overflow: hidden;
}

.designations:active {
    cursor: grabbing;
}

.designations .skill_set {
    width: fit-content;
    list-style-type: none;
    padding: 0;
    display: flex;
    gap: 16px;
    width: max-content;
    user-select: none;

    animation: autoSlide 20s linear infinite;
}

@keyframes autoSlide {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

.designations .skill_set li {
    flex: 0 0 auto;
    border: 1px solid rgb(var(--white-color), 0.1);
    padding: 10px 25px;
    box-shadow: inset 0 0 15px 0px rgba(var(--white-color), 0.05);
}

/* aboutme */
#aboutme .right-part {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
}

#aboutme .right-part .my-stats {
    justify-content: flex-start !important;
    text-align: center;
    width: 100%;

    border: 1px solid rgba(var(--white-color), 0.1);
    box-shadow: 
        inset 0 0 15px 0px rgba(var(--white-color), 0.05);
}

.center-cross {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    opacity: 0.25;
}

@keyframes center-cross {
    to {
        opacity: 0.75;
        background-color: rgba(var(--secondary-rgb), 1);
    }
}

.center-cross .cross-line {
    position: absolute;
    background-color: rgba(var(--white-color), 0.25);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: center-cross 2s ease infinite alternate;
}

.center-cross .cross-line:first-child {
    width: 100%;
    height: 1px;
}

.center-cross .cross-line:last-child {
    height: 100%;
    width: 1px;
}

/* edu_n_achievements */
#edu_n_achievements {
    background-image:  linear-gradient(rgba(var(--white-color), 0.015) 1.4000000000000001px, transparent 1.4000000000000001px), linear-gradient(to right, rgba(var(--white-color), 0.015) 1.4000000000000001px, var(--background-color) 1.4000000000000001px);
    background-attachment: fixed;
    background-size: 28px 28px;
}

#edu_n_achievements .container.grid-2 {
    gap: 20px;
}

#edu_n_achievements .left-part,
#edu_n_achievements .right-part {
    justify-content: flex-start !important;
}

.timeline-list {
    position: relative;
    list-style-type: none;
    display: flex;
    flex-direction: column;
    gap: 42px;
    margin-top: 25px;
    padding: 20px 0px;
}

.timeline-list::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 1px;
    height: 100%;
    /* background-color: rgba(var(--white-color), 0.25); */

    background-image: linear-gradient(180deg, rgba(var(--white-color), 0.05), rgba(var(--white-color), 0.25), rgba(var(--white-color), 0.05));
}

.timeline-list li {
    padding-left: 35px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.timeline-list a {
    width: fit-content;
}

.timeline-list a i {
    opacity: 0.25;
}

.timeline-list a:hover i {
    opacity: 1;
}

.timeline-list li .timeline-header {
    flex-wrap: wrap;
    position: relative;
    justify-content: flex-start !important;
    text-align: start !important;
    align-items: flex-start !important;
}

.timeline-list li .timeline-header::before {
    content: "";
    position: absolute;
    left: -35px;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 15px;
    height: 15px;
    border: 1px solid rgba(var(--white-color), 0.25);
    background-color: var(--background-color);
    border-radius: 50%;
}

.timeline-list li .timeline-header::after {
    content: "";
    position: absolute;
    left: -35px;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 5px;
    height: 5px;
    background-color: var(--secondary-color);
    border-radius: 50%;
}

.timeline-list .title-badge.duration {
    width: fit-content;
    box-shadow: none;
}

/* exp_n_skills */
#exp_n_skills {
    background: linear-gradient(rgb(var(--white-color), 0.05), transparent);
}

#services_n_contact .timeline-list.skills-list-set,
#exp_n_skills .timeline-list.skills-list-set {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px;
}

#services_n_contact .timeline-list.skills-list-set .skill_group,
#exp_n_skills .timeline-list.skills-list-set .skill_group {
    padding: 0;
    width: fit-content;
}

#services_n_contact .timeline-list.skills-list-set .skill_group.grouped,
#exp_n_skills .timeline-list.skills-list-set .skill_group.grouped {
    width: 100%;
}

#services_n_contact .left-part .timeline-list::before,
#exp_n_skills .left-part .timeline-list::before {
    display: none;
}

#services_n_contact .used-skills,
#exp_n_skills .used-skills {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

#services_n_contact .used-skills .title-badge,
#exp_n_skills .used-skills .title-badge {
    font-size: 0.7rem;
    width: fit-content;
    background: 
        linear-gradient(var(--background-color), var(--background-color)) padding-box, /* inner content bg */
        linear-gradient(to right, var(--secondary-color), var(--primary-color)) border-box;

    background-clip: padding-box, border-box;
    background-size: 200%;
    background-position: 0 0;
    font-weight: normal;
    box-shadow: none;
    border-radius: 0;
    padding: 5px 15px;
    border-inline-width: 3.5px;

    clip-path: polygon(5% 0, 100% 0%, 95% 100%, 0% 100%);

    animation: skill_shine 3s linear infinite alternate;
}

@keyframes skill_shine {
    to {
        background-position: 100% 100%;
    }
}

#services_n_contact .skill_group.grouped .title-badge,
#exp_n_skills .skill_group.grouped .title-badge {
    width: 95%;
}

#services_n_contact .skill_group .title-badge,
#exp_n_skills .skill_group .title-badge {
    cursor: pointer;
    display: flex;
    width: fit-content;
    justify-content: space-between;
    align-items: center;
    font-size: 0.75rem;
    background: 
        linear-gradient(var(--background-color), var(--background-color)) padding-box, /* inner content bg */
        linear-gradient(to right, var(--secondary-color), var(--primary-color)) border-box;

    background-clip: padding-box, border-box;
    background-size: 200%;
    background-position: 0 0;
    font-weight: normal;
    box-shadow: none;
    
    animation: skill_shine 3s linear infinite alternate;
}

#services_n_contact .skill_group .title-badge:active,
#exp_n_skills .skill_group .title-badge:active {
    opacity: 0.95;
    transform: scale(0.97);
}

#services_n_contact .skill_group .title-badge.active,
#exp_n_skills .skill_group .title-badge.active {
    border: none;
    background: 
  linear-gradient(105deg, transparent 75%, var(--background-color) 75%, var(--background-color) 75.5%, transparent 75.5%),
  linear-gradient(to right, var(--secondary-color), var(--primary-color));
    background-clip: unset;
    color: var(--background-color);
    font-weight: 500;
}

#services_n_contact .skill_group .title-badge.active i,
#exp_n_skills .skill_group .title-badge.active i {
    transform: rotateZ(180deg) rotateY(180deg) translateY(2px);
}

#services_n_contact .skill_group .title-badge.active span,
#exp_n_skills .skill_group .title-badge.active span {
    color: var(--background-color);
}

#services_n_contact .skill_group .skill-summary,
#exp_n_skills .skill_group .skill-summary {
    position: relative;
    width: 100%;
    display: none;
    flex-direction: column;
    gap: 20px;
    border: 0.5px solid var(--secondary-color);
    border-right: 0.5px solid rgba(var(--white-color), 1);
    border-top: none;
    border-bottom: none;
    border-radius: 0 0 10px 10px;
}

#services_n_contact .skill_group .skill-summary .tech-group-head,
#exp_n_skills .skill_group .skill-summary .tech-group-head {
    width: 100%;
    text-align: left;
}

#services_n_contact .skill_group .skill-summary .tech-list,
#exp_n_skills .skill_group .skill-summary .tech-list {
    justify-content: space-between;
}

#services_n_contact .skill_group .skill-summary::before,
#services_n_contact .skill_group .skill-summary::after,
#exp_n_skills .skill_group .skill-summary::before,
#exp_n_skills .skill_group .skill-summary::after {
    content: '';
    position: absolute;
    height: 1px;
    top: 0;
    border-radius: 99px;
}

#services_n_contact .skill_group .skill-summary::before,
#exp_n_skills .skill_group .skill-summary::before {
    width: calc(var(--skill) - 3%);
    left: 0;
    background: var(--secondary-color);
}

#services_n_contact .skill_group .skill-summary::after,
#exp_n_skills .skill_group .skill-summary::after {
    width: calc(100% - var(--skill));
    right: 0;
    background: rgba(var(--white-color), 1);
}

.dot-divider {
    width: 100%;
    border-top: 1px dotted rgba(var(--white-color), 0.25);
}

.designations.skills-slides {
    /* background: linear-gradient(rgb(var(--white-color), 0.05), rgb(var(--white-color), 0.025), rgb(var(--white-color), 0.05)); */
}

.designations.skills-slides .skill_set:first-child {
    animation-duration: 50s;
}

/* Our Works */
#my_works:fullscreen {
  overflow-y: auto;
  height: 100vh;
}

#my_works::-webkit-scrollbar {
    display: none;
}

#my_works {
    /* background: linear-gradient(rgb(var(--white-color), 0.05), transparent); */
    text-align: center;
}

#my_works .full-screen-cta {
    cursor: pointer;
    color: transparent !important;
    background-image: linear-gradient(to right, rgba(var(--white-color), 0.25), rgba(var(--white-color), 1));
    background-size: 200%;
    background-position: 0 0;
    animation: full-screen-glow ease 1s infinite alternate;
    background-clip: text;
    -webkit-background-clip: text;
}

@keyframes full-screen-glow {
    to {
        background-position: 100% 100%;
    }
}

#my_works .bottom-part .filter-head {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

#my_works .bottom-part .filter-head input {
    width: 100vw;
    max-width: 325px;
    background-color: transparent;
    padding: 12.5px 20px;
    border: 1px solid rgb(var(--white-color), 0.15);
    border-right: none;
    border-radius: 99px 0 0 99px;
}

#my_works .bottom-part .filter-head input::-webkit-search-cancel-button {
  -webkit-appearance: none; /* Removes default styling */
  height: 1.2em;
  width: 1.2em;
  cursor: pointer;
  
  /* Example: Using a custom SVG for the cross icon */
  background: url("../assets/images/delete.png") no-repeat 50% 50%;
  background-size: contain;
  opacity: 0.6;
}

#my_works .bottom-part .filter-head input::-webkit-search-cancel-button:hover {
  opacity: 1; /* Hover effect */
}

#my_works .bottom-part .filter-head button {
    cursor: none;
    padding-inline: 15px;
    box-shadow: inset 0 0 0px 1px rgb(var(--white-color), 0.15);
    border: none;
    background-color: transparent;
}

#my_works .bottom-part .filter-head button:hover {
    background-color: rgb(var(--white-color), 0.1);
    box-shadow: inset 0 0 0px 1px rgb(var(--white-color), 0);
}

#my_works .bottom-part .filter-head button#sort-button.sort-desc i {
    transform: rotateX(180deg);
}

#my_works .bottom-part .filter-head .filter-tags-slider-wrapper {
    position: relative;
    width: 60%;
    border-radius: 99px;
    overflow: hidden;
}

#my_works .bottom-part .filter-head .filter-tags-slider-wrapper::before,
#my_works .bottom-part .filter-head .filter-tags-slider-wrapper::after {
    content: '';
    position: absolute;
    z-index: 1;
    top: 0;
    width: 10px;
    height: 100%;
    background-image: linear-gradient(to right, var(--background-color), transparent);
}

#my_works .bottom-part .filter-head .filter-tags-slider-wrapper::before {
    left: 0;
}

#my_works .bottom-part .filter-head .filter-tags-slider-wrapper::after {
    right: 0;
    background-image: linear-gradient(to left, var(--background-color), transparent);
}

#my_works .bottom-part .filter-head .filter-tags-slider::-webkit-scrollbar {
    display: none;
}

#my_works .bottom-part .filter-head .filter-tags-slider {
    overflow-x: scroll;
    display: flex;
    padding-inline: 5px;
}

#my_works .bottom-part .filter-head .filter-search {
    justify-content: flex-end;
    width: 40%;
}

#my_works .bottom-part .filter-head .filter-tags {
    gap: 2px;
}

#my_works .bottom-part .filter-head .filter-tags .filter-tag {
    padding: 7.5px 12.5px;
    border: 1px solid rgba(var(--white-color), 0.1);
    font-size: 0.75rem;
    color: rgba(var(--white-color), 0.5);
}

#my_works .bottom-part .filter-head .filter-tags .filter-tag:first-child {
    border-radius: 99px 0 0 99px;
}

#my_works .bottom-part .filter-head .filter-tags .filter-tag:last-child {
    border-radius: 0 99px 99px 0;
}

#my_works .bottom-part .filter-head .filter-tags .filter-tag.active,
#my_works .bottom-part .filter-head .filter-tags .filter-tag:hover {
    border: 1px solid rgba(var(--white-color), 0.5);
    color: rgba(var(--white-color), 1);
}

#my_works .bottom-part .filter-head .filter-tags .filter-tag.active {
    border-color: var(--secondary-color);
    color: var(--secondary-color);
}

#my_works .bottom-part .filter-head .filter-tags .filter-tag::before {
    content: '#';
    font-size: 0.6rem;
    padding-right: 5px;
}

#my_works .bottom-part .filter-text {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    text-align: start;
}

/* *** */
/* Project Cards */
#my_works .bottom-part .portfolio-projects {
    width: 100%;
    flex-wrap: wrap;
}

.project-card {
    --speedBase: 20s;
    --height: 225px;
    width: 100%;
    max-width: 400px;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: center;
    align-items: flex-start;
}

.project-card .speed {
    z-index: 1;
    width: 100%;
    height: calc(var(--height) / 5);
    position: absolute;
    left: 0;
    top: calc((var(--height) / 5) * (var(--speed) - 1));
}

.project-card .project-display {
    cursor: pointer;
    width: 100%;
    position: relative;
    overflow: hidden;
    border-radius: 10px 10px 10px 10px;
    background: linear-gradient(45deg, transparent, rgba(var(--white-color), 0.05), transparent );
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite linear;
}

@keyframes shimmer {
  to {
    background-position-x: -200%;
  }
}

.project-card .speed.slowest:hover ~ .project-display .project_.p_img {
    animation: hoverProject linear calc(var(--speedBase) / 1) infinite alternate;
}

.project-card .speed.slow:hover ~ .project-display .project_.p_img {
    animation: hoverProject linear calc(var(--speedBase) / 2) infinite alternate;
}

.project-card .speed.normal:hover ~ .project-display .project_.p_img {
    animation: hoverProject linear calc(var(--speedBase) / 3) infinite alternate;
}

.project-card .speed.fast:hover ~ .project-display .project_.p_img {
    animation: hoverProject linear calc(var(--speedBase) / 4) infinite alternate;
}

.project-card .speed.fastest:hover ~ .project-display .project_.p_img {
    animation: hoverProject linear calc(var(--speedBase) / 5) infinite alternate;
}

.project-card .project-display .pagination,
.project-card .nav {
    position: absolute;
    z-index: 8;
    display: none;
}

.project-card.variant .project-display .pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
}

.project-card.variant .nav {
    background: transparent;
    cursor: pointer;
    transform: translateY(-50%);
    border: none;
    padding: 10px;
    width: 55px;
    height: 35px;
    display: grid;
    place-items: center;
    background-color: rgb(var(--white-color), 0.1);
    backdrop-filter: blur(5px);
    border-radius: 50%;
    color: rgba(var(--white-color), 0.5);
    opacity: 0;
    transition: all ease 0.5s;
}

.project-card.variant .nav:hover {
    color: var(--background-color);
    background-color: var(--secondary-color);
}

.project-card.variant .nav.prev {
    top: calc(var(--height) / 1.75);
    left: 0;
    border-radius: 99px 0 0 99px;
}

.project-card.variant .nav.next {
    top: calc(var(--height) / 2.25);
    right: 0;
    border-radius: 0 99px 99px 0;
}

.project-card.variant:hover .nav.prev {
    left: -55px;
    opacity: 1;
}

.project-card.variant:hover .nav.next {
    right: -55px;
    opacity: 1;
}

.project-card .project-display .pagination {
    left: 50%;
    transform: translateX(-50%);
    bottom: 5%;
    background-color: rgba(var(--background-rgb), 0.85);
    padding: 5px 10px;
    border-radius: 99px;
}

.project-card .project-display .pagination > div {
    width: 5px;
    aspect-ratio: 1;
    border: 1px solid rgba(var(--white-color), 0.3);
    border-radius: 50%;
}

.project-card .project-display .pagination > .active {
    background-color: rgba(var(--white-color), 0.75);
    border: none;
}

.project-card .project-assets {
    display: flex;
    width: fit-content;
    transition: transform 0.4s ease;
}

.project-card .project_ {
    width: var(--width);
    height: var(--height);
}

.project-card .project_.p_img {
    background-size: 100% auto;
    background-position: 0% 0%;
    background-repeat: no-repeat;
}

.project-card.cover .project_.p_img {

    background-size: cover !important;
    background-position: center !important;
}

.project-card[data-template="projectS"] .project-assets,
.project-card[data-template="projectS"] .project-assets .project_.p_img,
.project-card[data-template="projectC"] .project-assets,
.project-card[data-template="projectC"] .project-assets .project_.p_img {
    width: 100%;
}

.project-display .project-loader {
    z-index: -1;
}

.project-tags a {
    margin-inline: 3px;
}

@keyframes hoverProject {
    0%, 4% {
        background-position: 0% 0%;
    }

    23%, 27% {
        background-position: 25% 25%;
    }

    48%, 52% {
        background-position: 50% 50%;
    }

    73%, 77% {
        background-position: 77% 77%;
    }

    96%, 100% {
        background-position: 100% 100%;
    }
}

.project-card .project-text {
    width: 100%;
    background-color: rgb(var(--white-color), 0.025);
    border-radius: 10px 10px 20px 20px;
    padding: 20px 25px;
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    text-align: start;
    gap: 7.5px;
    outline: 1px solid rgb(var(--white-color), 0.075);
}

.project-card .cta-view {
    background: transparent;
    cursor: pointer;
    border: none;
    padding: 5px 20px;
    padding-left: 0px;
    border-radius: 0 99px 99px 0;
    border: 1px solid rgb(var(--white-color), 0.15);
    border-left: none;
    border-right: none;
}

.project-card .cta-view:hover {
    padding-left: 20px;
    background-color: rgb(var(--white-color), 0.05);
}

/* Services & Contact */
#services_n_contact {
    background-color: rgb(var(--white-color), 0.025);
}

#services_n_contact .skill_group .skill-summary {
    display: flex;
}

#services_n_contact .skill_group .title-badge {
    border-radius: 5px;
    padding-block: 15px;
}

#services_n_contact .skill_group .title-badge {
    position: relative;
    overflow: hidden;
}

#services_n_contact .skill_group .title-badge::after {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 50px;
    height: 115%;
    transform: skew(-15deg) translate(-250%, -50%);
    opacity: 0.025;
    animation: shine ease 10s infinite;
}

@keyframes shine {
    0%, 50% {
        left: 0;
        background-image: linear-gradient(to right, transparent, rgba(var(--white-color), 1));
    }
    75% {
        left: 200%;
        opacity: 0.1;
    }

    95% {
        background-image: linear-gradient(to right, rgba(var(--white-color), 1), transparent);
    }
    
    100% {
        left: 0%;
        opacity: 0.025;
    }
}

#services_n_contact .skill_group .title-badge {
    transform: rotateZ(-2deg);
}

#services_n_contact .skill_group:nth-child(odd) .title-badge {
    transform: rotateZ(2deg);
}

#services_n_contact .skill_group .title-badge.active {
    font-family: nautilus;
    background: rgba(var(--white-color), 1);
    transform: rotateZ(0deg);
}

#services_n_contact .timeline-list.skills-list-set {
    row-gap: 35px;
}

/* thanksforhelp */
#thanksforhelp {
    background-image:  linear-gradient(rgba(var(--white-color), 0.015) 1.4000000000000001px, transparent 1.4000000000000001px), linear-gradient(to right, rgba(var(--white-color), 0.015) 1.4000000000000001px, var(--background-color) 1.4000000000000001px);
    background-attachment: fixed;
    background-size: 28px 28px;
}

/* footer */
footer {
    background-image: linear-gradient(to bottom, rgb(var(--white-color), 0.025), transparent);
}

footer .thankyou {
    text-align: center;
    padding: 35px 25px;
    width: 100%;
}

footer .thankyou span {
    animation-name: thankyouGlow;
    animation-duration: calc(var(--char-count) * 0.5s);
    animation-iteration-count: infinite;
    animation-timing-function: linear;
}

@keyframes thankyouGlow {
    0%, 47%, 53%, 100% {
        font-family: "nautilus", sans-serif;
        color: rgba(var(--white-color), 0.25);
    }
    
    48%, 52% {
        font-family: "xirod", sans-serif;
        color: var(--secondary-color);
        font-size: 0.8rem;
    }
}

footer .footer-content {
    padding-block: 5px;
    text-align: center;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-image: linear-gradient(to right, 
        transparent, 
        var(--secondary-color),
        transparent);
    color: var(--background-color);
}

/* project lightbox */
.project-lightbox {
    position: fixed;
    z-index: 10;
    gap: 20px;
    width: 0vw;
    height: 0vh;
    overflow: hidden;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    background-color: rgba(var(--background-rgb), 0.75);
    display: flex;
    top: 100%;
    left: 0%;

    padding-top: 25px;
    overflow: initial;
    width: 100vw;
    height: 100vh;
    opacity: 0;
    pointer-events: none;
    user-select: none;
}

.project-lightbox.active {
    left: 0%;
    top: 0%;
    opacity: 1;
    pointer-events: auto;
    user-select: auto;
}

.project-lightbox .project-box {
    position: relative;
    width: calc(100%);
    max-width: 1200px;
    height: 90%;
    background-color: rgba(var(--background-rgb), 0.25);
    backdrop-filter: blur(5px);
    border: 1px solid rgba(var(--white-color), 0.1);
    box-shadow: inset 0 0 15px 0px rgba(var(--secondary-rgb), 0.05);
    border-radius: 20px 20px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.project-lightbox.noPrev .project-box button.project-box-prev,
.project-lightbox.noNext .project-box button.project-box-next {
    display: none;
}

.project-lightbox.lightboxtemp_S .project-controls,
.project-lightbox.lightboxtemp_C .project-controls {
    display: none;
}

.project-lightbox .project-box button.project-box-prev,
.project-lightbox .project-box button.project-box-next,
.project-lightbox .project-box button.project-box-close {
    z-index: 1;
    cursor: pointer;
    position: absolute;
    top: 0;
    background-color: transparent;
    border: none;
}

.project-lightbox .project-box button.project-box-prev,
.project-lightbox .project-box button.project-box-next {
    top: 50%;
    /* background-color: rgb(var(--white-color), 1); */
    /* color: var(--background-color); */
    border: 1px solid rgb(var(--white-color), 0.25);
    outline: 1px solid var(--background-color);
    padding: 10px 15px;
}

.project-lightbox .project-box button.project-box-prev {
    right: 100%;
    border-radius: 20px 0 0 20px;
    border-right: 1px solid var(--background-color);
}

.project-lightbox .project-box button.project-box-next {
    left: 100%;
    border-radius: 0 20px 20px 0;
    border-left: 1px solid var(--background-color);
}

.project-lightbox .project-box button.project-box-close {
    right: 20px;
    top: initial;
    bottom: 100%;
    /* border: 5px solid var(--background-color); */
    background-color: rgb(var(--white-color), 0.1);
    color: rgba(var(--white-color), 1);
    padding: 10px 15px;
    border-radius: 20px 20px 0 0;
}

.project-lightbox .project-lightbox-header {
    width: 95%;
    max-width: 1200px;
    justify-content: space-between;
}

.project-lightbox .project-card {
    margin-inline: auto;
    width: 100% !important;
    max-width: 950px;
    --height: calc(80vh - 30px);
}

.project-lightbox .project-wrapper {
    width: 100%;
    overflow: scroll;
}

.project-lightbox .project-wrapper::-webkit-scrollbar {
    display: none;
}

.project-lightbox .project-card .project-controls {
    width: 100%;
}

.project-lightbox .project-card .nav {
    display: inline-block;
    /* width: 25%; */
    position: static;
    opacity: 1;
    transform: translate(0);
}

.project-lightbox .project-card .project-display {
    border-radius: 0 0 10px 10px;
}

.project-lightbox .project-card .project-text p a {
    color: var(--secondary-color);
    font-weight: bold;
    cursor: alias;
}

.project-lightbox .project-card .project-text {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.project-lightbox .project-card .project_tags {
    font-size: 0.75rem;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.project-lightbox .project-card .project_tags .project_tag:before {
    content: '#';
    font-weight: bold;
    color: rgba(var(--white-color), 0.75);
    padding-right: 5px;
    color: var(--secondary-color);
}

/* requestAccess */
.requestAccess-cta {
    position: relative;
    cursor: pointer;
}

.requestAccess-cta::before,
.requestAccess-cta::after {
    transition: all ease 0.25s;
    content: '';
    position: absolute;
    top: 0;
    height: 100%;
    width: 50%;
    border-radius: 99px;
    border: none;
}

.requestAccess-cta:hover::before,
.requestAccess-cta:hover::after {
    background-image: none;
}

.requestAccess-cta::before {
    right: 0%;
    border-radius: 0 99px 99px 0;
    background-image: linear-gradient(to left, rgba(var(--secondary-rgb), 0.05), transparent);
}

.requestAccess-cta::after {
    left: 0%;
    border-radius: 99px 0 0 99px;
    background-image: linear-gradient(to right, rgba(var(--secondary-rgb), 0.05), transparent);
}

.requestAccess-cta:hover::before {
    right: 100%;
    border-right: 1px solid rgba(var(--secondary-rgb), 0.25);
}

.requestAccess-cta:hover::after {
    left: 100%;
    border-left: 1px solid rgba(var(--secondary-rgb), 0.25);
}

.req-prnt .not-sent,
.req-prnt .sent-no-response,
.req-prnt .access-granted,
.req-prnt .banned {
    display: none;
}

.req-prnt.not-sent .not-sent {
    display: block;
}

.req-prnt.sent-no-response .sent-no-response {
    display: block;
}

.req-prnt.access-granted .access-granted {
    display: block;
}

.req-prnt.banned .banned {
    display: block;
}

.requestAccess {
    cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M16 4v24M4 16h24" stroke="rgb(136, 136, 136)" stroke-width="2" transform="rotate(45 16 16)"/></svg>') 16 16, auto;

    position: fixed;
    inset: 0;
    z-index: 99;

    background-color: rgba(var(--background-rgb), 0.95);

    display: none;
    justify-content: center;

    overflow-y: auto;
    overflow-x: hidden;

    padding: 40px 0;
}

.requestAccess > .requestAccessWrapper {
    width: 100%;
    max-width: 700px;

    padding: 25px;

    display: flex;
    flex-direction: column;
    gap: 25px;

    margin: auto 0;
}

.requestAccess button {
    cursor: pointer;
}

.requestAccess .requestAccess-form {
    width: clamp(50px, 100%, 350px);
}

.requestAccess .requestAccess-form input,
.requestAccess .requestAccess-form textarea {
    font-family: monospace;
    width: 100%;
    background-color: rgba(var(--white-color), 0.025);
    padding: 10px 20px;
    border: 1px solid rgba(var(--white-color), 0.25);
}

.pastime-games {
    cursor: none;
    margin: 0 auto;
    margin-top: 40px;
    width: clamp(50px, 100%, 500px);
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.pastime-games .game-frame {
    width: 100%;
    min-height: 300px;
    border: 1px solid rgba(var(--white-color), 0.25);
    border-radius: 10px;
    overflow: hidden;
}

.pastime-games .game-list {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
}

.pastime-games .game-list .game_ {
    border: 1px solid rgba(var(--white-color), 0.25);
    color: rgba(var(--white-color), 0.75);
    padding: 5px 15px;
}

.pastime-games .game-list .game_.active {
    border: 1px solid rgba(var(--secondary-rgb), 0.75);
}
