﻿html {
    scroll-behavior: smooth;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    animation: fadePage 1s ease;

    background: #f5f5f2;

    color: #111;

    font-family: 'Inter', sans-serif;

    overflow-x: hidden;
}

/* NAVBAR */

.navbar {

    width: 100%;

    padding: 30px 60px;

    display: flex;

    justify-content: space-between;

    align-items: center;
}

.logo {

    font-family: 'Bodoni Moda', serif;

    font-size: 30px;

    letter-spacing: 2px;
}

/* DESKTOP MENU */

.nav-links {

    display: flex !important;

    align-items: center;

    gap: 35px;

    list-style: none;
}

.nav-links a {

    position: relative;

    text-decoration: none !important;

    color: #111 !important;

    font-size: 13px;

    letter-spacing: 2px;

    font-family: 'Inter', sans-serif;

    transition: 0.3s ease;
}

.nav-links a::after {

    content: "";

    position: absolute;

    left: 0;
    bottom: -6px;

    width: 0%;

    height: 1px;

    background: #8b0000;

    transition: 0.4s ease;
}

.nav-links a:hover::after {

    width: 100%;
}
.nav-links a:hover {

    color: #8b0000;
}
nav {

    all: unset;
}
/* BURGER BUTTON */

.menu-button {

    display: none;

    font-size: 32px;

    cursor: pointer;

    z-index: 2000;
}

/* HERO */

.hero {

    min-height: 85vh;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 60px;

    padding: 40px 60px;
}

.hero-text {

    flex: 1;
}

.small-text {

    color: #8b0000;

    letter-spacing: 4px;

    margin-bottom: 20px;

    font-size: 13px;
}

.hero-text h1 {

    font-family: 'Bodoni Moda', serif;

    font-size: 82px;

    line-height: 0.95;

    margin-bottom: 30px;
}

.description {

    max-width: 500px;

    line-height: 1.8;

    color: #444;

    font-size: 16px;
}

.hero-image {

    flex: 1;

    display: flex;

    justify-content: center;
}

.hero-image img {

    width: 100%;

    max-width: 550px;

    height: 750px;

    object-fit: cover;

    transition: 0.5s ease;

    box-shadow: 0 20px 60px rgba(0,0,0,0.12);
}

.hero-image img:hover {

    transform: scale(1.02);
}

/* GALLERY */

.gallery-page {

    padding: 40px 60px;
}

.gallery-title {

    font-family: 'Bodoni Moda', serif;

    font-size: 52px;

    margin-bottom: 60px;
}

.gallery-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 18px;
}

.gallery-grid img {

    width: 100%;

    display: block;

    cursor: pointer;

    transition: 0.4s ease;
}

.gallery-grid img:hover {

    opacity: 0.92;

    transform: scale(1.015);
}
/* FULLSCREEN */

.fullscreen {

    position: fixed;

    inset: 0;

   background: rgba(10,10,10,0.96);

   backdrop-filter: blur(10px);

    display: none;

    justify-content: center;

    align-items: center;

    padding: 30px;

    z-index: 999;
}

.fullscreen img {

    max-width: 90%;

    max-height: 90%;

    object-fit: contain;
}

.fullscreen.active {

    display: flex;
}

/* ANIMATION */

.hidden {

    opacity: 0;

    transform: translateY(40px);

    transition: 1s ease;
}

.show {

    opacity: 1;

    transform: translateY(0);
}

/* MOBILE */

@media (max-width: 900px) {

    .navbar {

        padding: 25px;
    }

    .logo {

        font-size: 28px;
    }

    /* SHOW BURGER */

    .menu-button {

        display: block;
    }

    /* MOBILE MENU */

    .nav-links {

        position: fixed;

        top: 0;
        left: 0;

        width: 100%;
        height: 100vh;

        background: #f5f5f2;

        display: flex;

        flex-direction: column;

        justify-content: center;

        align-items: center;

        gap: 30px;

        opacity: 0;

        pointer-events: none;

        transition: 0.4s ease;

        z-index: 1500;
    }

    .nav-links.active {

        opacity: 1;

        pointer-events: all;
    }

    .nav-links a {

        font-size: 20px;

        letter-spacing: 4px;
    }


    /* HERO MOBILE */

    .hero {

        flex-direction: column;

        padding: 20px;

        gap: 40px;
    }

    .hero-text h1 {

        font-size: 58px;
    }

    .description {

        font-size: 18px;
    }

    .hero-image img {

        width: 100%;

        max-width: 100%;

        height: auto;
    }

    /* GALLERY MOBILE */

    .gallery-page {

        padding: 25px;
    }

    .gallery-title {

        font-size: 32px;

        margin-bottom: 40px;
    }

    .gallery-grid {

        grid-template-columns: 1fr;
    }

}

@keyframes fadePage {

    from {

        opacity: 0;
    }

    to {

        opacity: 1;
    }
}

/* ABOUT PAGE */

.about-page {

    position: relative;

    width: 100%;

    min-height: 100vh;

    overflow: hidden;
}

/* IMAGE */

.about-image {

    position: relative;

    width: 100%;

    height: 100vh;
}

.about-image img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center 20%;

    opacity: 0.32;
}

/* OVERLAY */

.about-overlay {

    position: absolute;

    left: 70px;

    bottom: 70px;

    z-index: 10;

    max-width: 850px;
}
/* DESKTOP */

.about-overlay h1 {

    font-family: 'Bodoni Moda', serif;

    font-size: 120px;

    line-height: 0.88;

    color: #111;

    max-width: 900px;

    letter-spacing: -2px;

    margin-bottom: 40px;
}

/* ABOUT MOBILE */

@media (max-width: 900px) {

    .about-description {

        margin-top: 30px;

        max-width: 100%;
    }

    .about-description p {

        font-size: 17px;

        line-height: 1.8;
    }

    .about-overlay {

        left: 25px;

        bottom: 35px;

        max-width: 90%;
    }

.about-overlay h1 {

    font-size: 72px;

    line-height: 0.9;

    margin-bottom: 25px;
}

    .about-image {

        height: 100vh;
    }

    .about-image img {

        opacity: 0.26;
    }
}
    
/* SKILLS PAGE */

.skills-page {

    min-height: 100vh;

    padding: 80px 60px;
}

.skills-page h1 {

    font-family: 'Bodoni Moda', serif;

    font-size: 100px;

    line-height: 0.9;

    margin-top: 20px;

    margin-bottom: 70px;

    max-width: 700px;
}

/* GRID */

.skills-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 35px;

    margin-top: 30px;
}

/* CARD */

.skill-card {

    padding: 40px;

    border: 1px solid rgba(0,0,0,0.08);

    background: rgba(255,255,255,0.5);

    backdrop-filter: blur(8px);

    transition:
        transform 0.45s ease,
        border-color 0.45s ease,
        background 0.45s ease;
}

.skill-card:hover {

    transform: translateY(-6px);

    border-color: rgba(139,0,0,0.22);

    background: rgba(255,255,255,0.75);
}

.skill-card h2 {

    font-family: 'Bodoni Moda', serif;

    font-size: 36px;

    line-height: 1;

    margin-bottom: 18px;
}

.skill-card p {

    font-size: 16px;

    line-height: 1.8;

    color: #444;
}

/* SKILLS MOBILE */

@media (max-width: 900px) {

    .skills-page {

        padding: 40px 25px 60px 25px;
    }

    .skills-page h1 {

        font-size: 64px;

        line-height: 0.92;

        margin-bottom: 40px;

        max-width: 320px;
    }

    .skills-grid {

        display: grid;

        grid-template-columns: 1fr;

        gap: 28px;

        margin-top: 20px;
    }

    .skill-card {

        padding: 28px;

        border-radius: 2px;
    }

    .skill-card h2 {

        font-size: 28px;

        line-height: 1;

        margin-bottom: 18px;
    }

    .skill-card p {

        font-size: 16px;

        line-height: 1.7;
    }

}


/* CONTACT PAGE */

.contact-page {

    min-height: 100vh;

    padding: 80px 60px;

    display: flex;

    flex-direction: column;

    justify-content: flex-start;
}

.contact-page h1 {

    font-family: 'Bodoni Moda', serif;

    font-size: 82px;

    line-height: 0.92;

    margin-top: 20px;

    margin-bottom: 25px;

    max-width: 700px;
}

.contact-description {

    max-width: 520px;

    font-size: 18px;

    line-height: 1.8;

    color: #444;

    margin-bottom: 60px;
}

/* CONTACT GRID */

.contact-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 30px;

    max-width: 900px;
}

/* CARD */

.contact-card {

    text-decoration: none;

    color: #111;

    border: 1px solid rgba(0,0,0,0.08);

    background: rgba(255,255,255,0.45);

    backdrop-filter: blur(8px);

    padding: 40px;

    transition:
        transform 0.45s ease,
        border-color 0.45s ease,
        background 0.45s ease;
}

.contact-card:hover {

    transform: translateY(-6px);

    border-color: rgba(139,0,0,0.22);

    background: rgba(255,255,255,0.75);
}

.contact-card span {

    display: block;

    color: #8b0000;

    letter-spacing: 3px;

    font-size: 12px;

    margin-bottom: 18px;
}

.contact-card h2 {

    font-size: 16px;

    line-height: 1.2;

    white-space: nowrap;
}

/* CONTACT MOBILE */

@media (max-width: 900px) {

    .contact-page {

        padding: 20px 25px 80px 25px;
    }

    .contact-page h1 {

        font-size: 58px;

        line-height: 0.95;

        margin-bottom: 20px;
    }

    .contact-description {

        font-size: 16px;

        line-height: 1.7;

        margin-bottom: 40px;
    }

    .contact-grid {

        grid-template-columns: 1fr;

        gap: 22px;
    }

    .contact-card {

        padding: 28px;
    }

    .contact-card h2 {

        font-size: 28px;
    }

}
/* SOFTWARE SECTION */

.software-section {

    margin-top: 140px;

    max-width: 900px;
}

.software-section h2 {

    font-family: 'Bodoni Moda', serif;

    font-size: 104px;

    line-height: 1;

    margin-top: 20px;

    margin-bottom: 90px;

    max-width: 1000px;
}

/* SOFTWARE ITEMS */

.software-skills {

    display: flex;

    flex-direction: column;

    gap: 40px;
}

.software-item {

    width: 100%;
}

.software-top {

    display: flex;

    justify-content: space-between;

    margin-bottom: 14px;

    font-size: 17px;

    letter-spacing: 1px;
}

/* LINE */

.skill-line {

    width: 100%;

    height: 10px;

    border-radius: 100px;

    background: rgba(0,0,0,0.08);

    overflow: hidden;
}

.skill-fill {

    height: 100%;

    width: 0;

    border-radius: 100px;

    background: #111;

    transition: width 7s cubic-bezier(0.16, 1, 0.3, 1);
}

/* WIDTHS */

.illustrator {

    max-width: 50%;
}

.blender {

    max-width: 50%;
}

.photoshop {

    max-width: 40%;
}

.indesign {

    max-width: 40%;
}



/* ANIMATION */

.illustrator.active {

    width: 50%;
}

.blender.active {

    width: 50%;
}

.photoshop.active {

    width: 40%;
}

.indesign.active {

    width: 40%;
}

/* MOBILE */

@media (max-width: 900px) {

    .software-section {

        margin-top: 100px;
    }

.software-section h2 {

    font-size: 72px;

    margin-bottom: 60px;
}

.skill-line {

    height: 8px;
}

    .software-skills {

        gap: 32px;
    }

    .software-top {

        font-size: 15px;
    }

}