/**
 * Akuajae Sites — Portfolio Presentation Styles
 * Scoped under #blisites-root
 *
 * @package Akuajae\Sites
 */

#blisites-root .blisites-portfolio__header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto calc(3.5rem * var(--blisites-scale, 1));
}

#blisites-root .blisites-portfolio__item {
    position: relative;
    border-radius: var(--blisites-radius, 10px);
    overflow: hidden;
    cursor: pointer;
    background-color: var(--blisites-bg-alt);
    transition: transform var(--blisites-transition-base), box-shadow var(--blisites-transition-base);
}

#blisites-root .blisites-portfolio__item:hover {
    transform: translateY(-4px);
    box-shadow: var(--blisites-shadow-xl);
}

#blisites-root .blisites-portfolio__item:focus-visible {
    outline: 3px solid var(--blisites-accent, #8c7eff);
    outline-offset: 3px;
}

#blisites-root .blisites-portfolio__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--blisites-transition-slow);
}

#blisites-root .blisites-portfolio__item:hover img {
    transform: scale(1.045);
}

#blisites-root .blisites-portfolio__item-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(10, 13, 18, 0.85) 100%);
    opacity: 0;
    transition: opacity var(--blisites-transition-base);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: calc(1.5rem * var(--blisites-scale, 1));
    color: #ffffff;
    pointer-events: none;
}

#blisites-root .blisites-portfolio__item:hover .blisites-portfolio__item-overlay,
#blisites-root .blisites-portfolio__item:focus-visible .blisites-portfolio__item-overlay {
    opacity: 1;
}

#blisites-root .blisites-portfolio__item-title {
    font-size: calc(1.1rem * var(--blisites-scale, 1));
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 4px 0;
    line-height: 1.25;
}

#blisites-root .blisites-portfolio__item-caption {
    font-size: calc(0.85rem * var(--blisites-scale, 1));
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
    line-height: 1.4;
}

/* ==========================================================================
   Portfolio 01 — Grid (Fine-Art Gallery Wall)
   ========================================================================== */
#blisites-root .blisites-portfolio--portfolio-01 .blisites-portfolio__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(2rem * var(--blisites-scale, 1));
}

#blisites-root .blisites-portfolio--portfolio-01 .blisites-portfolio__item {
    aspect-ratio: 4 / 5;
}

/* ==========================================================================
   Portfolio 02 — Editorial (Cinematic Staggered Contact Sheet)
   ========================================================================== */
#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__grid--contact-sheet {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: calc(2rem * var(--blisites-scale, 1));
}

#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item--darkroom {
    border-radius: var(--blisites-radius, 8px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    background-color: var(--blisites-bg-dark, #080a0f);
}

#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item--darkroom:hover {
    border-color: rgba(255, 255, 255, 0.25);
    box-shadow: var(--blisites-shadow-2xl);
}

#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__index-tag {
    position: absolute;
    top: 12px;
    left: 12px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: rgba(255, 255, 255, 0.85);
    background: rgba(8, 10, 15, 0.75);
    backdrop-filter: blur(8px);
    padding: 3px 8px;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    z-index: 2;
    pointer-events: none;
}

#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item:nth-child(3n+1) {
    grid-column: span 7;
    aspect-ratio: 16 / 10;
}

#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item:nth-child(3n+2) {
    grid-column: span 5;
    aspect-ratio: 4 / 5;
}

#blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item:nth-child(3n) {
    grid-column: span 12;
    aspect-ratio: 21 / 9;
}

/* ==========================================================================
   Portfolio 03 — Featured (Masterpiece Spotlight & Supporting Works)
   ========================================================================== */
#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__featured-layout {
    display: grid;
    grid-template-columns: 1.35fr 0.95fr;
    gap: calc(2rem * var(--blisites-scale, 1));
}

#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__hero-item {
    aspect-ratio: 4 / 3;
    border-radius: var(--blisites-radius-lg, 16px);
}

#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__hero-item:only-child {
    grid-column: 1 / -1;
    max-width: 960px;
    margin: 0 auto;
}

#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__side-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: calc(1.5rem * var(--blisites-scale, 1));
}

#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__side-item {
    aspect-ratio: 1 / 1;
}

#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__extra-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: calc(2rem * var(--blisites-scale, 1));
    margin-top: calc(2rem * var(--blisites-scale, 1));
}

#blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__extra-grid .blisites-portfolio__item {
    aspect-ratio: 4 / 5;
}

@media (max-width: 992px) {
    #blisites-root .blisites-portfolio--portfolio-01 .blisites-portfolio__grid,
    #blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__extra-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    #blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item:nth-child(n) {
        grid-column: span 6;
        aspect-ratio: 4 / 3;
    }
    #blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__featured-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    #blisites-root .blisites-portfolio--portfolio-01 .blisites-portfolio__grid,
    #blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__extra-grid {
        grid-template-columns: 1fr;
    }
    #blisites-root .blisites-portfolio--portfolio-02 .blisites-portfolio__item:nth-child(n) {
        grid-column: span 12;
        aspect-ratio: 4 / 3;
    }
    #blisites-root .blisites-portfolio--portfolio-03 .blisites-portfolio__side-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}

/* ==========================================================================
   Portfolio 04 — Kinetic Editorial Mosaic (A-B-A-C Rhythm Grid)
   ========================================================================== */
#blisites-root .blisites-portfolio--portfolio-04 .blisites-container {
    max-width: clamp(920px, 68vw, 1200px);
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(1rem, 3vw, 2rem);
    padding-right: clamp(1rem, 3vw, 2rem);
    box-sizing: border-box;
}

@media (max-width: 1024px) {
    #blisites-root .blisites-portfolio--portfolio-04 .blisites-container {
        max-width: 100%;
        padding-left: clamp(1rem, 4vw, 1.75rem);
        padding-right: clamp(1rem, 4vw, 1.75rem);
    }
}

@media (max-width: 640px) {
    #blisites-root .blisites-portfolio--portfolio-04 .blisites-container {
        max-width: 100%;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

/* Permanent 3-Column Mosaic Grid across all viewports */
#blisites-root .blisites-portfolio--portfolio-04 .blisites-mosaic-grid,
#blisites-root .blisites-mosaic-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(0.4rem, 1.5vw, 1.25rem);
    width: 100%;
    box-sizing: border-box;
}

/* Base Mosaic Item (Pattern A) */
#blisites-root .blisites-mosaic-item {
    position: relative;
    border-radius: var(--blisites-radius, 6px);
    overflow: hidden;
    cursor: pointer;
    background-color: var(--blisites-bg-alt);
    grid-column: span 1;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
    transition: transform var(--blisites-transition-base), box-shadow var(--blisites-transition-base);
}

#blisites-root .blisites-mosaic-item:hover {
    transform: translateY(-3px);
    box-shadow: var(--blisites-shadow-lg);
}

#blisites-root .blisites-mosaic-item:focus-visible {
    outline: 3px solid var(--blisites-accent, #8c7eff);
    outline-offset: 3px;
}

#blisites-root .blisites-mosaic-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform var(--blisites-transition-slow);
}

#blisites-root .blisites-mosaic-item:hover img {
    transform: scale(1.045);
}

#blisites-root .blisites-mosaic-item-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(10, 13, 18, 0.85) 100%);
    opacity: 0;
    transition: opacity var(--blisites-transition-base);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(0.5rem, 2vw, 1.25rem);
    color: #ffffff;
    pointer-events: none;
}

#blisites-root .blisites-mosaic-item:hover .blisites-mosaic-item-overlay,
#blisites-root .blisites-mosaic-item:focus-visible .blisites-mosaic-item-overlay {
    opacity: 1;
}

#blisites-root .blisites-mosaic-item-title {
    font-size: clamp(0.75rem, 1.8vw, 1.15rem);
    font-weight: 700;
    color: #ffffff;
    margin: 0 0 2px 0;
    line-height: 1.25;
}

#blisites-root .blisites-mosaic-item-caption {
    font-size: clamp(0.65rem, 1.4vw, 0.85rem);
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
    line-height: 1.35;
}

#blisites-root .blisites-mosaic-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #ffffff;
    background: rgba(10, 13, 18, 0.75);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 3px 8px;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    z-index: 2;
    pointer-events: none;
}

/* ==========================================================================
   PATTERN B (Siklus 12: Item ke-4, ke-5, ke-6)
   ========================================================================== */
#blisites-root .blisites-mosaic-item:nth-child(12n + 4) {
    grid-column: 1 / span 2;
    grid-row: span 2;
    aspect-ratio: auto;
}

#blisites-root .blisites-mosaic-item:nth-child(12n + 5) {
    grid-column: 3;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
}

#blisites-root .blisites-mosaic-item:nth-child(12n + 6) {
    grid-column: 3;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
}

/* ==========================================================================
   PATTERN C (Siklus 12: Item ke-10, ke-11, ke-12)
   ========================================================================== */
#blisites-root .blisites-mosaic-item:nth-child(12n + 10) {
    grid-column: 1;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
}

#blisites-root .blisites-mosaic-item:nth-child(12n + 11) {
    grid-column: 2 / span 2;
    grid-row: span 2;
    aspect-ratio: auto;
}

#blisites-root .blisites-mosaic-item:nth-child(12n + 12) {
    grid-column: 1;
    grid-row: span 1;
    aspect-ratio: 4 / 3;
}

/* Single Item Fallback (N = 1) */
#blisites-root .blisites-mosaic-item:only-child {
    grid-column: 1 / -1;
    max-width: 720px;
    margin: 0 auto;
    aspect-ratio: 16 / 10;
    width: 100%;
}

