/* PORTAFOLIO  */
.portfolio {
    background: var(--obsidian);
    padding-bottom: 0
}

.port-header {
    margin-bottom: 48px
}

.port-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 5px
}

.port-item {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    background: var(--asphalt)
}

.port-item:nth-child(1) {
    grid-column: 1/6;
    grid-row: 1/3
}

.port-item:nth-child(2) {
    grid-column: 6/10;
    grid-row: 1
}

.port-item:nth-child(3) {
    grid-column: 10/13;
    grid-row: 1
}

.port-item:nth-child(4) {
    grid-column: 6/13;
    grid-row: 2
}

.port-item:nth-child(5) {
    grid-column: 1/4;
    grid-row: 3
}

.port-item:nth-child(6) {
    grid-column: 4/9;
    grid-row: 3
}

.port-item:nth-child(7) {
    grid-column: 9/13;
    grid-row: 3
}

.port-item:nth-child(1) {
    aspect-ratio: 2/3
}

.port-item:nth-child(2),
.port-item:nth-child(3),
.port-item:nth-child(5),
.port-item:nth-child(7) {
    aspect-ratio: 1/1
}

.port-item:nth-child(4),
.port-item:nth-child(6) {
    aspect-ratio: 16/9
}

.port-ph {
    position: absolute;
    inset: 0;
    transition: transform 700ms var(--ease), filter 700ms ease;
    filter: brightness(.8) contrast(1.1)
}

.ph1 {
    background: linear-gradient(155deg, #1e2023, #0c0e10)
}

.ph2 {
    background: linear-gradient(200deg, #1c1a18, #0e0c0a)
}

.ph3 {
    background: linear-gradient(140deg, #12151c, #0a0d14)
}

.ph4 {
    background: linear-gradient(175deg, #18191b, #0d0e10)
}

.ph5 {
    background: linear-gradient(165deg, #1a1818, #100e0e)
}

.ph6 {
    background: linear-gradient(150deg, #141a1a, #0b1010)
}

.ph7 {
    background: linear-gradient(190deg, #1a1a16, #0f0f0c)
}

.port-item img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 700ms var(--ease), filter 700ms ease;
    filter: brightness(.85) contrast(1.05)
}

.port-item:hover .port-ph,
.port-item:hover img {
    transform: scale(1.06);
    filter: brightness(1) contrast(1.12)
}

.port-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 10, 10, .78) 0%, transparent 55%);
    opacity: 0;
    transition: opacity 400ms var(--ease);
    display: flex;
    align-items: flex-end;
    padding: 20px;
    z-index: 1
}

.port-item:hover .port-overlay {
    opacity: 1
}

.port-cta {
    padding: 64px 0 96px;
    display: flex;
    justify-content: center
}

/* Lightbox */
.lb {
    position: fixed;
    inset: 0;
    background: rgba(5, 5, 5, .97);
    z-index: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 500ms ease
}

.lb.open {
    opacity: 1;
    pointer-events: all
}

.lb-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    max-width: 90vw;
    max-height: 90vh
}

.lb-img {
    max-width: 100%;
    max-height: 78vh;
    object-fit: contain;
    border-radius: var(--r-md)
}

.lb-ph {
    width: min(70vw, 800px);
    height: min(50vh, 500px);
    background: var(--asphalt);
    border-radius: var(--r-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--mist);
    font-family: var(--f-mono);
    font-size: 12px;
    letter-spacing: .1em
}

.lb-btn {
    position: fixed;
    background: rgba(28, 28, 28, .85);
    color: var(--white);
    border: 1px solid var(--fog);
    border-radius: var(--r-full);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: all 150ms ease
}

.lb-btn:hover {
    background: var(--accent-glow);
    border-color: var(--accent);
    color: var(--accent)
}

.lb-close {
    top: 24px;
    right: 24px;
    font-size: 22px
}

.lb-prev {
    left: 24px;
    top: 50%;
    transform: translateY(-50%)
}

.lb-next {
    right: 24px;
    top: 50%;
    transform: translateY(-50%)
}