:root {
    --primary: #2C3639;
    --dark-primary: #152125;
    --secondary: #3F4E4F;
    --accent1: #A27B5C;
    --dark-accent1: #72553c;
    --accent2: #DCD7C9;

    --transition1s: all 0.1s ease;
    --transition2s: all 0.2s ease;
    --transition3s: all 0.3s ease;
    --transition4s: all 0.4s ease;
}

* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
    scroll-behavior: smooth;
}

html::-webkit-scrollbar {
    width: 0.5rem;
}

html::-webkit-scrollbar-track {
    background-color: transparent;
}

html::-webkit-scrollbar-thumb {
    background-color: var(--accent1);
    border-radius: 10px;
}

::selection {
    background-color: #a27b5c;
    color: #ffffff;
}

/* JPL BRAND */
.bg-primary {
    background-color: var(--primary) !important;
}

.bg-dark-primary {
    background-color: var(--dark-primary) !important;
}

.bg-secondary {
    background-color: var(--secondary) !important;
}

.bg-accent1 {
    background-color: var(--accent1) !important;
}

.bg-light-accent1 {
    background-color: #b49a85 !important;
}

.bg-accent2 {
    background-color: var(--accent2) !important;
}

.text-primary {
    color: var(--primary) !important;
}

.text-secondary {
    color: var(--secondary) !important;
}

.text-accent1 {
    color: var(--accent1) !important;
}

.text-accent2 {
    color: var(--accent2) !important;
}

.text-dark-primary {
    color: var(--dark-primary) !important;
}

.btn-accent1 {
    background-color: var(--accent1);
    border-color: var(--accent1);
    color: #fff;
}

.btn-accent1:hover,
.btn-accent1:active {
    background-color: var(--dark-accent1) !important;
    border-color: var(--accent1) !important;
    color: var(--accent2) !important;
}

.btn-accent1:disabled {
    background-color: var(--accent1);
    border-color: var(--accent1);
    color: #fff;
    cursor: not-allowed;
}

.form-control:focus {
    box-shadow: 0 0 8px var(--secondary);
    border-color: var(--secondary);
}

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

.bg-dot-pattern {
    background-color: var(--dark-primary);
    background-image: url(../img/dot-pattern.svg);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

.hamburger {
    border: none;
    outline: none;
    outline: none;
    background: none;

    position: relative;
    width: 35px;
    height: 35px;
    cursor: pointer;
}

.hamburger::after,
.hamburger::before,
.hamburger .bar {
    content: '';
    display: block;
    width: 100%;
    height: 5px;
    background-color: #fff;
    border-radius: 5px;
    transition: var(--transition4s);
}

.hamburger .bar {
    margin: 6px 0;
}

.hamburger.is-active::before {
    transform: rotate(-45deg) translate(-9px, 6px);
}

.hamburger.is-active::after {
    transform: rotate(45deg) translate(-9px, -8px);
}

.hamburger.is-active .bar {
    opacity: 0;
}

.typewriter {
    overflow: hidden;
    /* Ensures the content is not revealed until the animation */
    border-right: .15em solid var(--accent1);
    /* The typwriter cursor */
    white-space: nowrap;
    /* Keeps the content on a single line */
    margin: 0 auto;
    /* Gives that scrolling effect as the typing happens */
    letter-spacing: .12em;
    /* Adjust as needed */
    animation:
        typing 2.5s steps(40, end),
        blink-caret .75s step-end infinite;
}

/* The typing effect */
@keyframes typing {
    from {
        width: 0
    }

    to {
        width: 100%
    }
}

/* The typewriter cursor effect */
@keyframes blink-caret {

    from,
    to {
        border-color: transparent
    }

    50% {
        border-color: var(--accent1);
    }
}

/* shake */
@keyframes shake {
    0% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    50% {
        transform: translateX(5px);
    }

    75% {
        transform: translateX(-5px);
    }

    100% {
        transform: translateX(0);
    }
}

/* START */
.big-padding {
    padding-top: 75px;
    padding-bottom: 20px;
}

.navbar {
    z-index: 3;

    transition: var(--transition1s);
}

.nav-link {
    transition: var(--transition4s);
}

.nav-link.active {
    color: var(--accent1) !important;
}

.navbar .container {
    border-bottom: 1px solid #ddd;
}

.divider {
    width: 100%;
    height: 0.5px;
    background-color: #ddd;
}

.section-title {
    font-size: 36px;
    text-transform: uppercase;
    font-weight: 700;
}

#landing-page {
    min-height: 100vh;
}

.info {
    min-height: 100vh;
    padding: 70px 10px;
    padding-top: 143px;
    z-index: 1;
}

.info * {
    z-index: 1;
}

.info .circle-pic-container {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    overflow: hidden;
}

/* SERVICES */
#provide .service-container {
    width: 85%;
    max-width: 1000px;
}

#provide .service-icon {
    font-size: 24px;
    font-weight: 700;
}

#provide .service-offer {
    font-size: 19px;
    font-weight: 600;
}

.service:hover .fa-solid {
    animation: shake 0.4s ease-in-out;
}

/* SKILLS */
#skills .skill-container {
    max-width: 1060px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 20px;
    justify-content: center;
}

#skills .skill-container .skill {
    max-width: 250px;
    padding: 25px;
    margin: 0 auto;
    text-align: center;
    background-color: var(--accent2);
    border-radius: 5px;
    /* box-shadow: 0 0 7px var(--accent1); */

    transition: var(--transition4s);
}

#skills .skill-container .skill:hover {
    transform: scale(110%);
}

#skills .skill-container .skill img {
    width: 50%;
    margin-bottom: 10px;
}

#skills .skill-container .skill .skill-title {
    font-size: 20px;
    font-weight: 600;
    color: var(--dark-primary);
}

/* PROJECTS */
.proj-title {
    font-size: 24px;
    font-weight: 700;
}
.proj-img-card {
    overflow: hidden;
}
.proj-img-card img {
    transition: 0.4s linear;
}
.proj-img-card:hover img {
    transform: scale(120%);
}

/* CONTACT */
.personal-info {
    background-color: var(--accent2);
    margin-bottom: 5px;
    border-radius: 8px;
    padding: 8px;
}

.personal-info * {
    color: var(--dark-primary);
}

.personal-info-icon {
    width: 25px;
    height: 25px;
}

.form-container {
    max-width: 650px;
    margin: 0 auto;
}

.form-container #message {
    resize: none;
    height: 200px;
}


/* Footer */
footer {
    background-color: var(--accent2);
    padding: 90px 24px;
    color: var(--dark-primary);
}

.socmed-icons {
    display: flex;
    justify-content: center;
}

.socmed-icons a {
    text-decoration: none;
    color: var(--primary);
    font-size: 40px;

    transition: var(--transition3s);
}

.socmed-icons a:not(:last-child) {
    margin-right: 36px;
}

.facebook:hover {
    color: #4267B2;
}

.instagram:hover {
    background: radial-gradient(circle farthest-corner at 35% 90%, #fec564, transparent 50%), radial-gradient(circle farthest-corner at 0 140%, #fec564, transparent 50%), radial-gradient(ellipse farthest-corner at 0 -25%, #5258cf, transparent 50%), radial-gradient(ellipse farthest-corner at 20% -50%, #5258cf, transparent 50%), radial-gradient(ellipse farthest-corner at 100% 0, #893dc2, transparent 50%), radial-gradient(ellipse farthest-corner at 60% -20%, #893dc2, transparent 50%), radial-gradient(ellipse farthest-corner at 100% 100%, #d9317a, transparent), linear-gradient(#6559ca, #bc318f 30%, #e33f5f 50%, #f77638 70%, #fec66d 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.linkedin:hover {
    color: #0077b5;
}

.github:hover {
    color: #080808;
}


/* responsiveness */
@media (max-width: 770px) {
    #skills .skill-container {
        grid-template-columns: 1fr 1fr;
    }

    #skills .skill-container .skill {
        width: 100%;
        max-width: none;
    }

    #skills .skill-container .skill img {
        max-width: 70px;
    }
}

@media screen and (max-width: 450px) {
    .socmed-icons a {
        font-size: 30px;
    }
}

@media screen and (max-width: 315.5px) {
    .proj-buttons a:first-child {
        margin-bottom: 6px;
    }
}