.projects-section {
    --projects-gap: 28px;
    --projects-edge-space: 14px;
    --projects-hover-space-x: 10px;
    --projects-hover-space-y: 14px;
}

.projects-section .projects-scroll {
    position: relative;
    container-type: inline-size;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scroll-padding-left: var(--projects-edge-space);
    scroll-padding-right: var(--projects-edge-space);
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.projects-section .projects-scroll::-webkit-scrollbar {
    display: none;
}

.projects-section .projects-track {
    display: flex;
    align-items: stretch;
    gap: var(--projects-gap);
    width: max-content;
    padding-top: var(--projects-hover-space-y);
    padding-right: var(--projects-edge-space);
    padding-bottom: calc(var(--projects-hover-space-y) + 6px);
    padding-left: var(--projects-edge-space);
    transform: none !important;
    will-change: auto;
}

.projects-section .projects-track--animating {
    transition: none !important;
}

.projects-section .project-card-slot {
    flex: 0 0 calc(100cqw - (var(--projects-edge-space) * 2));
    width: calc(100cqw - (var(--projects-edge-space) * 2));
    scroll-snap-align: start;
    scroll-snap-stop: always;
    box-sizing: border-box;
    padding-top: var(--projects-hover-space-y);
    padding-right: var(--projects-hover-space-x);
    padding-bottom: var(--projects-hover-space-y);
    padding-left: var(--projects-hover-space-x);
    margin: 0;
}

@container (min-width: 760px) {
    .projects-section .project-card-slot {
        flex-basis: calc((100cqw - (var(--projects-edge-space) * 2) - var(--projects-gap)) / 2);
        width: calc((100cqw - (var(--projects-edge-space) * 2) - var(--projects-gap)) / 2);
    }
}

@container (min-width: 1180px) {
    .projects-section .project-card-slot {
        flex-basis: calc((100cqw - (var(--projects-edge-space) * 2) - (var(--projects-gap) * 2)) / 3);
        width: calc((100cqw - (var(--projects-edge-space) * 2) - (var(--projects-gap) * 2)) / 3);
    }
}

.projects-section .project-card {
    position: relative;
    width: 100%;
    max-width: none;
    height: 100%;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    border-radius: 32px;
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.projects-section .interactive-card {
    --card-lift: 0px;
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.projects-section .project-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow:
        0 12px 22px rgba(15, 23, 42, 0.08),
        0 4px 10px rgba(15, 23, 42, 0.05);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
}

.projects-section .project-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
    border-color: rgba(246, 193, 46, 0.22);
}

.projects-section .interactive-card:hover {
    --card-lift: 0px;
    box-shadow: var(--shadow-sm);
    border-color: rgba(246, 193, 46, 0.18);
}

.projects-section .project-card:hover::before {
    opacity: 1;
}

@media (max-width: 767px) {
    .projects-section {
        --projects-gap: 18px;
        --projects-edge-space: 10px;
        --projects-hover-space-x: 8px;
        --projects-hover-space-y: 10px;
    }
}

.projects-section--compact {
    --projects-gap: 16px;
    --projects-edge-space: 12px;
    --projects-hover-space-x: 8px;
    --projects-hover-space-y: 12px;
    padding-top: 36px;
    padding-bottom: 36px;
}

.projects-section--compact .projects-header {
    margin-bottom: 30px;
}

.projects-section--compact .project-card {
    border-radius: 24px;
    padding: 20px;
}

.project-logo-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.projects-control-btn:disabled {
    opacity: 0.3;
    cursor: default;
    pointer-events: none;
}

.projects-control-btn .projects-control-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    object-fit: contain;
}

.projects-control-btn .material-symbols-outlined.projects-control-icon {
    font-size: 18px;
    line-height: 1;
}

.projects-control-btn .psoft-mask-icon.projects-control-icon {
    background-color: currentColor;
}

.project-kpi-chip .project-kpi-icon,
.project-link-btn .project-link-icon,
.project-point .project-point-icon {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    object-fit: contain;
}

.project-kpi-chip .material-symbols-outlined.project-kpi-icon,
.project-link-btn .material-symbols-outlined.project-link-icon,
.project-point .material-symbols-outlined.project-point-icon {
    font-size: 18px;
    line-height: 1;
}

.project-kpi-chip .psoft-mask-icon.project-kpi-icon,
.project-link-btn .psoft-mask-icon.project-link-icon,
.project-point .psoft-mask-icon.project-point-icon {
    background-color: currentColor;
}

.project-logo-placeholder--custom {
    background-color: transparent;
}

.project-logo-placeholder--custom .project-logo-image {
    max-width: 70%;
    max-height: 92px;
    width: auto;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
}