:root {
    --surface-primary: #0b0c0c;
    --surface-primary-inverse: #FFFAF0;
    --surface-secondary: #242727;
    --surface-secondary-inverse: #e4e1dc;

}

::selection {
    background-color: var(--surface-secondary)
}

body {
    font-family: "Fira Code", serif;
    background-color: var(--surface-primary);
    color: var(--surface-primary-inverse);
    margin: 0;
    padding: 0;
}

h1 {
    font-size: 2em;
}

h2 {
    font-size: 2.4em;
}

h3 {
    font-size: 1.8em;
}


.header {
    border-bottom: 1px solid var(--surface-primary-inverse);
    display: flex;
}

.header-left {
    flex: 1;
    margin-left: 40px;
}

.header-right {
    flex: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}

#menu a {
    color: var(--surface-primary-inverse);
    text-decoration: none;
    font-size: 1.3em;
    transition: color 0.5s ease;
    cursor: pointer;
}

#menu a:hover {
    color: #ff6347;
}

#menu a:visited {
    color: inherit;
}

.menu-link {
    display: inline-flex;
    margin: 0 2.8em;
}

.contacts {
    display: flex;
    gap: 20px;
}

.contacts-mobile {
    display: none;
}

.contact-link {
    padding: 2px 8px;
    background-color: var(--surface-primary-inverse);;
    color: var(--surface-primary);
    margin: 0;
}

.section {
    text-align: center;
    padding: 4.5em 5em 1em 5em;
}

.section h2 {
    padding: 1em 0 1em 0;
}

.project {
    border: 1px solid var(--surface-primary-inverse);;
    border-radius: 6px;
    width: 70%;
    margin: 0 auto 5.8em auto;
}

.project h3 {
    margin: 2.2em;
}

.project p {
    color: var(--surface-secondary-inverse);
    padding: 0 2.2em;
    text-align: left;
}

.viewmore {
    display: inline-flex;
    align-items: center;
    padding: 9px 18px;
    margin-bottom: 3em;
    font-size: 14px;
    text-decoration: underline;
    border-radius: 14px;
    background-color: var(--surface-primary-inverse);;
    color: var(--surface-primary);
    vertical-align: center;
    gap: 1.4em;
}

.viewmore img {
    height: 1.4em;
    width: auto;
}

.project-features {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 1.6em;
    column-gap: 5.4em;
    row-gap: 2.2em;
}

.feature-info {
    text-decoration: underline;
    padding: 8px 18px;
    background-color: var(--surface-secondary);
    color: var(--surface-secondary-inverse);
    border-radius: 10px;
}

.contact-link::selection, .viewmore::selection {
    color: var(--surface-secondary-inverse)
}

#section-aboutme {
    margin: 0 3em;
}

#section-aboutme p {
    font-size: 1.6em;
}

.skills {
    border: 0px solid var(--surface-primary-inverse);
    border-radius: 6px;
    width: 60%;
    padding: 2rem;
    text-align: left;
    margin: 4rem;
}

.skills h3 {
    margin: 0 0 2rem 0;
}

.skill-left {
    margin: 0 auto 0 0;
}
.skill-right {
    margin: 0 0 0 auto;
}

#footer {
    border-top: 1px solid var(--surface-secondary-inverse);
    padding: 2.0rem;
}

@media (max-width:820px) {
    .header {
        display: block;
    }

    .header-left {
        text-align: center;
        margin: 0;
    }

    .header-right {
        text-align: center;
    }

    .menu-link {
        display: block;
    }

    #name {
        display: inline-block;
        margin: 2.8em 0;
    }

    .contacts {
        display: none;
    }

    .contacts-mobile {
        display: block;
        margin: 1.4em auto;
    }

    .menu-link {
        margin: 4.4em;
        padding: 0;
    }

    .section {
        padding: 2.2em 1.2em;
    }

    .project {
        width: 100%;
        margin: 0 auto 100px auto;
    }

    .project > h3 {
        font-size: 1.4em;
        margin: 30px 0 45px 0;
        padding: 0 12px;
    }

    .project > p {
        font-size: 0.8em;
        padding: 0 1.4em;
        text-align: left;
    }

    .project-features {
        padding: 2em;
        column-gap: 1.8em;
        row-gap: 1.8em;
        font-size: 0.8rem;
    }

    #section-aboutme {
        margin: 0 1.2em;
    }

    #section-aboutme p {
        font-size: 1.2em;
        margin-top: 2.6em;
    }

    #footer {
        padding: 1.2rem;
    }
}

/* === Animation === */
.slash-container {
    display: inline-flex;
    align-items: center;
    letter-spacing: 0;
    word-spacing: 0;
}

.slash {
    opacity: 0;
}

.slash:nth-child(1) {
    animation: firstSlash 3s infinite;
    animation-delay: 1s;
}

.slash:nth-child(2) {
    animation: secondSlash 3s infinite;
    animation-delay: 1s;
}

@keyframes firstSlash {
    0% { opacity: 0; }

    20% { opacity: 1; }

    90% { opacity: 1; }

    100% { opacity: 0; }
}

@keyframes secondSlash {
    0% { opacity: 0; }

    10% { opacity: 0; }

    30% { opacity: 1; }

    90% { opacity: 1; }

    100% { opacity: 0; }
}