section.featured-projects {
    padding-block: clamp(40px, 6vw, 70px);
    padding-inline: max(clamp(16px, 5vw, 100px), calc((100% - 1920px) / 2));
    display: flex;
    flex-direction: column;
    align-self: flex-start;
    gap: 60px;
    font-family: 'karla', 'sans-serif';
    overflow: hidden;
    min-height: var(--section-min-height);
    width: 100%;

    .section-intro {
        align-self: flex-start;
        width: unset;
    }

    h2 {
        margin: 0;
        font-size: clamp(32px, 5vw, 62px);
        font-family: fira-code, 'sans-serif';
        font-weight: bold;
        color: var(--primary-color);
    }

    p {
        font-size: 18px;
        max-width: 460px;
        text-align: justify;
    }

    .section-intro__label {
        font-size: 24px;
        margin: 1rem 0 0.5rem;
        font-weight: bold;
        color: var(--primary-color);
    }

    .projects-wrapper {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: flex-start;
        position: relative;
    }

    .projects-list {
        flex: 1 1 min(100%, 60%);
        display: flex;
        flex-direction: column;
        border-top: 2px solid var(--primary-color);
    }

    .project-entry {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 22px 28px;
        border-bottom: 2px solid var(--primary-color);
        cursor: pointer;
        transition: background 0.2s ease;
    }

    .project-entry:hover {
        background: rgba(61, 207, 182, 0.08);
    }

    .project-entry:hover .project-name {
        color: var(--primary-color);
    }

    .project-name {
        font-family: 'fira-code', monospace;
        font-size: clamp(16px, 2vw, 22px);
        font-weight: bold;
        color: #fff;
        margin: 0;
        transition: color 0.2s ease;
        text-decoration: none;
    }

    .project-name::after {
        content: '↗';
        display: inline-block;
        opacity: 0;
        color: white;
        font-weight: 100;
        transform: translateX(-6px);
        transition: opacity 0.2s ease, transform 0.2s ease;
    }

    .project-entry:hover .project-name::after {
        opacity: 1;
        transform: translateX(6px);
    }

    .project-tech {
        font-family: 'karla', sans-serif;
        font-size: 14px;
    }

    .projects-preview-col {
        flex: 0 0 40%;
        align-self: stretch;
        position: relative;
        pointer-events: none;
    }

    .projects-preview-wrapper {
        position: absolute;
        left: 40px;
        width: calc(60% - 40px);
        opacity: 0;
        transition: opacity 0.25s ease;
        pointer-events: none;
    }

    .projects-preview-wrapper.is-visible {
        opacity: 1;
    }

    .projects-preview-wrapper::before {
        content: "";
        position: absolute;
        top: 10px;
        left: 10px;
        width: 100%;
        height: 100%;
        background: repeating-linear-gradient(
                120deg,
                var(--primary-color),
                var(--primary-color) 2px,
                transparent 2px,
                transparent 8px
        );
        border-radius: 16px;
        z-index: 0;
    }

    .projects-preview-img {
        position: relative;
        z-index: 1;
        display: block;
        width: 100%;
        border-radius: 16px;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
        pointer-events: none;
    }

    .divider {
        color: var(--primary-color);
    }

    @keyframes dialog-in {
        from {
            opacity: 0;
            transform: scale(0.96) translateY(12px);
        }
        to {
            opacity: 1;
            transform: scale(1) translateY(0);
        }
    }

    .project-preview-dialog {
        border: 1px solid var(--primary-color);
        border-radius: 20px;
        padding: 0;
        max-width: 1440px;
        height: 90vh;
        width: 90vw;
        background: linear-gradient(55.22deg, #1C1C1C 36.26%, #08463B 93.28%);
        color: var(--text-color);
        box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
        overflow: hidden;
    }

    .project-preview-dialog::backdrop {
        background: rgba(0, 0, 0, 0.65);
        backdrop-filter: blur(6px);
    }

    .project-preview-dialog[open] {
        display: flex;
        animation: dialog-in 0.2s ease;
    }

    .dialog-left {
        flex: 0 0 42%;
        padding: 40px 36px;
        display: flex;
        flex-direction: column;
        gap: 14px;
    }

    .dialog-number {
        font-family: 'karla', sans-serif;
        font-size: clamp(60px, 8vw, 110px);
        font-weight: bold;
        color: var(--primary-color);
        line-height: 1;
    }

    .dialog-title {
        font-family: 'fira-code', monospace;
        font-size: clamp(28px, 4vw, 52px);
        font-weight: bold;
        color: #fff;
        margin: 0;
        line-height: 1.1;
    }

    .dialog-question {
        font-family: 'fira-code', sans-serif;
        font-size: 21px;
        font-weight: bold;
        color: var(--primary-color);
        margin: 4px 0 0;
    }

    .dialog-description {
        font-family: 'karla', sans-serif;
        font-size: 1rem;
        line-height: 1.65;
        color: rgba(255, 255, 255, 0.7);
        margin: 0;
    }

    .dialog-tech-list {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin: 20px 0;
    }

    .dialog-tech-badge {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        font-family: 'karla', sans-serif;
        font-weight: unset;
        font-size: 15px;
        color: white;
    }

    .dialog-tech-badge img {
        width: 20px;
        height: 20px;
    }

    .dialog-links {
        display: flex;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 4px;
    }

    .dialog-link {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: white;
        text-decoration: none;
        font-family: 'karla', sans-serif;
        font-size: 16px;
        border: 1px solid white;
        padding: 8px 20px;
        border-radius: 30px;
        transition: background 0.2s, color 0.2s, border-color 0.2s;
    }

    .dialog-link:hover {
        color: var(--primary-color);
        border-color: var(--primary-color);
    }

    .dialog-link-arrow {
        flex-shrink: 0;
        transition: transform 0.25s ease;
    }

    .dialog-link:hover .dialog-link-arrow {
        transform: translateX(4px) scale(1.15);
    }

    .dialog-next-btn {
        position: absolute;
        bottom: 32px;
        right: 36px;
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: none;
        border: none;
        cursor: pointer;
        color: var(--primary-color);
        font-family: 'karla', sans-serif;
        font-size: 15px;
        padding: 0;
        transition: color 0.2s;
        z-index: 2;
    }

    .dialog-next-arrow {
        color: var(--primary-color);
        flex-shrink: 0;
        transition: transform 0.25s ease;
    }

    .dialog-next-btn:hover {
        color: #fff;
    }

    .dialog-next-btn:hover .dialog-next-arrow {
        transform: translateX(5px) scale(1.15);
    }

    .dialog-right {
        flex: 0 0 58%;
        position: relative;
        min-height: 380px;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 40px 36px 80px;
    }

    .dialog-close-button {
        position: absolute;
        top: 20px;
        right: 36px;
        z-index: 10;
        background: none;
        border: none;
        color: var(--text-color);
        font-size: 28px;
        font-weight: 100;
        line-height: 1;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        transition: color 0.2s, transform 0.2s;
    }

    .dialog-close-button:hover {
        color: var(--primary-color);
        transform: scale(1.75);
    }

    .dialog-preview-img {
        max-width: 100%;
        max-height: 100%;
        width: auto;
        height: auto;
        display: block;
        object-fit: contain;
        border-radius: 10px;
        box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
    }

    @media (max-width: 768px) {
        .projects-preview-col {
            display: none;
        }
    }

    @media (max-width: 640px) {
        .project-preview-dialog[open] {
            flex-direction: column;
            width: 95vw;
        }

        .dialog-left {
            flex: none;
            padding: 28px 24px;
        }

        .dialog-right {
            min-height: 220px;
            flex: none;
        }
    }
}