/* --------------------------------------------------
   PORTFOLIO SECTION
-------------------------------------------------- */

.portfolio-section {
    width: 100%;
    padding: 180px 60px 200px;
    position: relative;
    z-index: 25;
}

.portfolio-shell {
    max-width: 1320px;
    margin: 0 auto;
}

/* ---------- Heading ---------- */

.portfolio-header {
    max-width: 620px;
    margin-bottom: 70px;
}

.portfolio-kicker {
    font-family: "CinzelDecorative", serif;
    font-size: 14px;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    margin-bottom: 10px;
    color: #444;
}

.portfolio-title {
    font-family: "CinzelDecorative", serif;
    font-size: 72px;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0;
    position: relative;
}

.portfolio-title::after {
    content: "";
    display: block;
    width: 120px;
    height: 1px;
    margin-top: 18px;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.6),
        transparent 80%
    );
}

.portfolio-subtitle {
    margin-top: 26px;
    font-family: "CinzelDecorative", serif;
    font-size: 17px;
    line-height: 1.6;
    color: #333;
}

/* ---------- Layout ---------- */

.portfolio-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1.35fr);
    align-items: flex-start;
    column-gap: 70px;
}

/* ---------- LEFT LIST ---------- */

.portfolio-list-wrapper {
    position: relative;
}

.portfolio-list {
    list-style: none;
    margin: 0;
    padding: 18px 0 0;
    border-top: 1px solid rgba(0, 0, 0, 0.12);
}

.portfolio-item {
    display: grid;
    grid-template-columns: 60px minmax(0, 1.7fr) minmax(0, 1.1fr) 80px;
    column-gap: 26px;
    align-items: baseline;
    padding: 14px 0 12px;
    cursor: pointer;
    position: relative;
    transition:
        color 0.3s ease,
        opacity 0.3s ease,
        transform 0.25s ease;
    opacity: 0.6;
}

.portfolio-item::before {
    content: "";
    position: absolute;
    left: -12px;
    right: 40%;
    bottom: 0;
    height: 1px;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.18),
        transparent 100%
    );
    opacity: 0;
    transition: opacity 0.25s ease;
}

.portfolio-item:last-child::before {
    right: 55%;
}

.portfolio-item:hover {
    opacity: 0.95;
    transform: translateX(4px);
}

.portfolio-item.is-active {
    opacity: 1;
    transform: translateX(6px);
}

.portfolio-item.is-active::before {
    opacity: 1;
}

.portfolio-item .project-col {
    font-family: "CinzelDecorative", serif;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    white-space: nowrap;
}

.project-col-index {
    font-size: 12px;
    color: #777;
}

.project-col-name {
    font-size: 16px;
    letter-spacing: 0.18em;
}

.project-col-type {
    font-size: 13px;
    color: #555;
}

.project-col-year {
    font-size: 13px;
    text-align: right;
}

/* global dimming if needed */
.portfolio-list.has-focus .portfolio-item {
    opacity: 0.25;
}

.portfolio-list.has-focus .portfolio-item.is-active {
    opacity: 1;
}

/* ---------- RIGHT PREVIEW ---------- */

.portfolio-preview-wrapper {
    position: relative;
}

.portfolio-preview {
    position: relative;
    padding: 26px;
    border-radius: 34px;
    background: linear-gradient(
            to bottom right,
            rgba(255, 255, 255, 0.82),
            rgba(255, 255, 255, 0.65)
        );
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.12),
        0 0 0 1px rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    overflow: hidden;
}

/* Image area */

.portfolio-preview-image-wrap {
    position: relative;
    border-radius: 26px;
    overflow: hidden;
    margin-bottom: 26px;
    background: radial-gradient(
        circle at 0% 0%,
        rgba(255, 200, 220, 0.75),
        transparent 60%
    );
}

.portfolio-preview-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(
        circle at 80% 0%,
        rgba(180, 220, 255, 0.7),
        transparent 55%
    );
    mix-blend-mode: screen;
    opacity: 0.65;
    pointer-events: none;
}

.portfolio-preview-image {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: inherit;
    position: relative;
    z-index: 1;
    transform: scale(1);
    opacity: 1;
    transition:
        opacity 0.45s ease,
        transform 0.6s cubic-bezier(0.22, 0.8, 0.3, 1);
}

.portfolio-preview.is-transitioning .portfolio-preview-image {
    opacity: 0;
    transform: scale(1.03);
}

/* Meta */

.portfolio-preview-meta {
    position: relative;
    z-index: 2;
}

.preview-meta-main {
    margin-bottom: 18px;
}

.preview-title {
    font-family: "CinzelDecorative", serif;
    font-size: 26px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin: 0 0 6px;
}

.preview-tagline {
    margin: 0;
    font-family: "CinzelDecorative", serif;
    font-size: 15px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: #555;
}

/* Definition grid */

.preview-meta-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 24px;
    row-gap: 12px;
    margin: 0 0 18px;
}

.preview-meta-item dt {
    font-family: "CinzelDecorative", serif;
    font-size: 11px;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    color: #777;
    margin-bottom: 4px;
}

.preview-meta-item dd {
    margin: 0;
    font-family: "CinzelDecorative", serif;
    font-size: 14px;
    letter-spacing: 0.06em;
    color: #222;
}

/* Description */

.preview-description {
    margin: 0 0 22px;
    font-family: "CinzelDecorative", serif;
    font-size: 15px;
    line-height: 1.7;
    color: #333;
}

/* Link / CTA */

.preview-actions {
    display: flex;
    justify-content: flex-end;
}

.preview-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px 9px;
    border-radius: 999px;
    border: 1px solid #000;
    text-decoration: none;
    font-family: "CinzelDecorative", serif;
    font-size: 13px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #000;
    overflow: hidden;
}

.preview-link::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to right,
        rgba(0, 0, 0, 0.9),
        rgba(0, 0, 0, 0.5)
    );
    transform: translateX(-100%);
    transition: transform 0.4s cubic-bezier(0.22, 0.8, 0.3, 1);
    z-index: 0;
}

.preview-link span,
.preview-link-icon {
    position: relative;
    z-index: 1;
}

.preview-link-icon {
    font-size: 14px;
}

.preview-link:hover::before {
    transform: translateX(0);
}

.preview-link:hover {
    color: #fff;
}

/* ---------------------------------------------
   RESPONSIVE REWORK – PORTFOLIO
---------------------------------------------- */

/* ============ 1080px ============ */
@media (max-width: 1080px) {
    .portfolio-section {
        padding: 140px 32px 160px;
    }

    .portfolio-layout {
        grid-template-columns: 1fr;
        row-gap: 60px;
    }

    .portfolio-preview {
        margin-top: 0;
    }

    .portfolio-item {
        grid-template-columns: 40px 1fr 80px;
    }

    .project-col-type {
        display: none;
    }
}

/* ============ 768px (Standard Mobile) ============ */
@media (max-width: 768px) {

    /* Headings */
    .portfolio-title {
        font-size: 48px;
    }

    .portfolio-subtitle {
        font-size: 15px;
        line-height: 1.55;
    }

    /* List */
    .portfolio-item {
        padding: 10px 0;
        grid-template-columns: 36px 1fr 60px;
        column-gap: 18px;
    }

    .project-col-name {
        font-size: 14px;
        letter-spacing: 0.12em;
    }

    .project-col-year {
        font-size: 12px;
    }

    /* Preview Card */
    .portfolio-preview {
        padding: 20px;
        border-radius: 26px;
    }

    .portfolio-preview-image {
        height: 200px;
    }

    .preview-title {
        font-size: 20px;
        letter-spacing: 0.12em;
    }

    .preview-tagline {
        font-size: 13px;
    }

    .preview-meta-grid {
        grid-template-columns: 1fr;
    }

    .preview-description {
        font-size: 14px;
        line-height: 1.55;
    }

    .preview-link {
        font-size: 11px;
        padding: 8px 16px;
    }
}

/* ============ 600px (Kleine Smartphones) ============ */
@media (max-width: 600px) {
    .portfolio-title {
        font-size: 40px !important;
        letter-spacing: 0.08em;
    }

    .portfolio-kicker {
        font-size: 12px;
        letter-spacing: 0.18em;
    }

    .portfolio-subtitle {
        font-size: 14px;
    }

    /* List */
    .portfolio-item {
        grid-template-columns: 32px 1fr 50px;
        padding: 8px 0;
    }

    .project-col-index {
        font-size: 11px;
    }

    .project-col-name {
        font-size: 13px;
    }

    .project-col-year {
        font-size: 11px;
    }

    /* Preview */
    .portfolio-preview {
        padding: 18px;
        border-radius: 22px;
    }

    .portfolio-preview-image {
        height: 180px;
    }

    .preview-title {
        font-size: 18px;
    }

    .preview-description {
        font-size: 13px;
    }

    .preview-link {
        font-size: 11px;
        padding: 7px 14px;
    }
}

/* ============ 430px (iPhone SE etc.) ============ */
@media (max-width: 430px) {
    .portfolio-title {
        font-size: 32px !important;
        letter-spacing: 0.05em;
    }

    .portfolio-subtitle {
        font-size: 13px;
    }

    .portfolio-item {
        grid-template-columns: 28px 1fr 42px;
        column-gap: 14px;
    }

    .project-col-name {
        font-size: 12px;
        letter-spacing: 0.1em;
    }

    .project-col-year {
        font-size: 10px;
    }

    .portfolio-preview {
        padding: 16px;
        border-radius: 20px;
    }

    .portfolio-preview-image {
        height: 160px;
    }

    .preview-title {
        font-size: 16px;
    }

    .preview-description {
        font-size: 12px;
    }

    .preview-link {
        font-size: 10px;
        padding: 6px 12px;
    }
}
