/* =========================================
   ELAH JOURNAL
========================================= */

.journal-page {
    background:
        radial-gradient(
            circle at 78% 4%,
            rgba(102, 62, 158, 0.09),
            transparent 30%
        ),
        #08070b;
    color: #f0ebf4;
}

.journal-shell {
    width: min(
        1280px,
        calc(100% - 72px)
    );
    margin: 0 auto;
}


/* =========================================
   HERO
========================================= */

.journal-hero {
    padding:
        145px
        0
        95px;
}

.journal-kicker {
    margin:
        0
        0
        26px;
    color: #8f73a9;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.23em;
}

.journal-hero h1 {
    max-width: 960px;
    margin: 0;
    color: #f3eef6;
    font-size:
        clamp(
            72px,
            9vw,
            132px
        );
    font-weight: 420;
    line-height: 0.88;
    letter-spacing: -0.07em;
}

.journal-hero h1 span {
    display: block;
    color: #ad78d4;
}

.journal-intro {
    max-width: 740px;
    margin:
        40px
        0
        0;
    color: #91879a;
    font-size: 18px;
    line-height: 1.8;
}


/* =========================================
   NAVIGATION
========================================= */

.journal-navigation {
    position: sticky;
    top: 0;
    z-index: 30;
    border-top:
        1px solid
        rgba(255, 255, 255, 0.055);
    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.065);
    background:
        rgba(8, 7, 11, 0.93);
    backdrop-filter: blur(18px);
}

.journal-nav-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    min-height: 72px;
}

.journal-categories {
    display: flex;
    align-items: center;
    gap: 25px;
    min-width: 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.journal-categories::-webkit-scrollbar {
    display: none;
}

.journal-category {
    flex: 0 0 auto;
    padding:
        25px
        0
        22px;
    border: 0;
    border-bottom:
        2px solid
        transparent;
    background: transparent;
    color: #706778;
    cursor: pointer;
    font-family: inherit;
    font-size: 11px;
    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}

.journal-category:hover {
    color: #b2a5ba;
}

.journal-category.active {
    border-bottom-color: #9f63ca;
    color: #ddd4e2;
}

.journal-search {
    position: relative;
    flex:
        0
        0
        175px;
}

.journal-search input {
    width: 100%;
    height: 38px;
    padding:
        0
        34px
        0
        13px;
    border:
        1px solid
        rgba(255, 255, 255, 0.065);
    border-radius: 100px;
    outline: 0;
    background:
        rgba(255, 255, 255, 0.018);
    color: #dcd4e0;
    font-family: inherit;
    font-size: 11px;
}

.journal-search input::placeholder {
    color: #5e5663;
}

.journal-search input:focus {
    border-color:
        rgba(166, 101, 204, 0.36);
}

.journal-search-mark {
    position: absolute;
    right: 12px;
    top: 50%;
    color: #665d6b;
    font-size: 16px;
    transform: translateY(-50%);
}


/* =========================================
   SECTIONS
========================================= */

.journal-section {
    padding:
        105px
        0;
    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.055);
}

.journal-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 42px;
}

.journal-section-heading > span:first-child {
    color: #8f73a9;
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0.22em;
}

.section-count,
.section-external {
    color: #645c69;
    font-size: 10px;
}

.section-external:hover {
    color: #ba87db;
}


/* =========================================
   FEATURED
========================================= */

.featured-story {
    display: grid;
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(400px, 0.95fr);
    min-height: 530px;
    overflow: hidden;
    border:
        1px solid
        rgba(255, 255, 255, 0.065);
    border-radius: 24px;
    background:
        rgba(255, 255, 255, 0.012);
}

.featured-copy {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding:
        54px
        52px;
}

.article-category {
    display: block;
    margin-bottom: 25px;
    color: #8f73a9;
    font-size: 9px;
    font-weight: 650;
    letter-spacing: 0.16em;
}

.featured-copy h2 {
    max-width: 610px;
    margin:
        0
        0
        26px;
    color: #f1ebf4;
    font-size:
        clamp(
            45px,
            5vw,
            72px
        );
    font-weight: 430;
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.featured-copy h2 span {
    display: block;
    color: #af79d3;
}

.featured-copy p {
    max-width: 550px;
    margin: 0;
    color: #8e8493;
    font-size: 16px;
    line-height: 1.75;
}

.featured-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 60px;
    color: #635b68;
    font-size: 10px;
}

.article-arrow {
    color: #9c6dbc;
    font-size: 19px;
}

.featured-visual {
    position: relative;
    min-height: 100%;
    overflow: hidden;
    border-left:
        1px solid
        rgba(255, 255, 255, 0.055);
    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(129, 75, 178, 0.24),
            transparent 29%
        ),
        linear-gradient(
            145deg,
            #100d16,
            #09080d
        );
}

.editorial-grid {
    position: absolute;
    inset: 0;
    opacity: 0.24;
    background-image:
        linear-gradient(
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255, 255, 255, 0.035) 1px,
            transparent 1px
        );
    background-size:
        48px
        48px;
}

.editorial-orb {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 210px;
    height: 210px;
    border:
        1px solid
        rgba(173, 106, 216, 0.30);
    border-radius: 50%;
    transform:
        translate(-50%, -50%);
    box-shadow:
        0 0 90px
        rgba(123, 70, 170, 0.19);
}

.editorial-orb::before,
.editorial-orb::after {
    content: "";
    position: absolute;
    inset: 24px;
    border:
        1px solid
        rgba(255, 255, 255, 0.07);
    border-radius: 50%;
}

.editorial-orb::after {
    inset: 63px;
    background:
        rgba(142, 84, 190, 0.13);
}

.featured-visual strong {
    position: absolute;
    left: 50%;
    top: 50%;
    color: rgba(235, 220, 244, 0.82);
    font-size: 60px;
    font-weight: 350;
    letter-spacing: -0.06em;
    transform:
        translate(-50%, -50%);
}

.editorial-label {
    position: absolute;
    left: 28px;
    bottom: 27px;
    color: #675c6f;
    font-size: 8px;
    letter-spacing: 0.22em;
}

.editorial-signal {
    position: absolute;
    left: 12%;
    right: 12%;
    height: 1px;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(173, 99, 210, 0.25),
            transparent
        );
}

.signal-one {
    top: 28%;
}

.signal-two {
    top: 50%;
}

.signal-three {
    top: 72%;
}

.featured-story:hover .editorial-orb {
    transform:
        translate(-50%, -50%)
        scale(1.04);
}


/* =========================================
   LATEST
========================================= */

.latest-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.journal-card {
    min-height: 370px;
    border:
        1px solid
        rgba(255, 255, 255, 0.06);
    border-radius: 18px;
    background:
        rgba(255, 255, 255, 0.009);
    transition:
        border-color 0.2s ease,
        transform 0.2s ease,
        background 0.2s ease;
}

.journal-card:hover {
    border-color:
        rgba(159, 94, 199, 0.23);
    background:
        rgba(125, 76, 160, 0.025);
    transform:
        translateY(-3px);
}

.journal-card > a {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding:
        31px
        29px;
}

.journal-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
}

.article-date {
    color: #57505b;
    font-size: 8px;
    letter-spacing: 0.08em;
    white-space: nowrap;
}

.journal-card h3 {
    margin:
        72px
        0
        18px;
    color: #ddd5e1;
    font-size: 29px;
    font-weight: 450;
    line-height: 1.07;
    letter-spacing: -0.04em;
}

.journal-card h3 span {
    display: block;
    color: #9f71bd;
}

.journal-card p {
    margin:
        0
        0
        34px;
    color: #786f7e;
    font-size: 13px;
    line-height: 1.7;
}

.read-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 20px;
    border-top:
        1px solid
        rgba(255, 255, 255, 0.055);
    color: #827688;
    font-size: 10px;
}

.read-link span {
    color: #9a67bc;
}

.journal-card-wide {
    grid-column:
        span 2;
    min-height: 280px;
}

.journal-card-wide h3 {
    margin-top: 65px;
    font-size: 38px;
}

.wide-card-layout {
    display: grid;
    grid-template-columns:
        1fr
        0.8fr;
    gap: 60px;
    align-items: end;
}


/* =========================================
   WATCH
========================================= */

.watch-section {
    background:
        linear-gradient(
            180deg,
            rgba(105, 60, 151, 0.025),
            transparent
        );
}

.video-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 15px;
}

.video-card {
    overflow: hidden;
    border:
        1px solid
        rgba(255, 255, 255, 0.06);
    border-radius: 18px;
    background:
        rgba(255, 255, 255, 0.012);
}

.video-launch {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

.video-thumbnail {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #100d15;
}

.video-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.72;
    transition:
        transform 0.35s ease,
        opacity 0.35s ease;
}

.video-card:hover img {
    opacity: 0.88;
    transform: scale(1.02);
}

.video-play {
    position: absolute;
    left: 22px;
    bottom: 20px;
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border:
        1px solid
        rgba(255, 255, 255, 0.20);
    border-radius: 50%;
    background:
        rgba(8, 7, 11, 0.78);
    color: #fff;
    font-size: 12px;
}

.video-copy {
    padding:
        25px
        23px
        27px;
}

.video-copy h3 {
    margin:
        0
        0
        17px;
    color: #ddd5e1;
    font-size: 21px;
    font-weight: 450;
    line-height: 1.25;
}


/* =========================================
   FROM ELAH
========================================= */

.from-elah-section {
    background:
        rgba(255, 255, 255, 0.006);
}

.elah-stories {
    border-top:
        1px solid
        rgba(255, 255, 255, 0.065);
}

.elah-story {
    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.065);
}

.elah-story a {
    display: grid;
    grid-template-columns:
        80px
        minmax(0, 1fr)
        auto;
    gap: 30px;
    align-items: center;
    padding:
        32px
        6px;
    transition:
        padding-left 0.2s ease;
}

.elah-story:hover a {
    padding-left: 12px;
}

.story-number {
    color: #584f5d;
    font-size: 10px;
    letter-spacing: 0.14em;
}

.elah-story .article-category {
    margin-bottom: 8px;
}

.elah-story h3 {
    margin: 0;
    color: #d9d1dd;
    font-size: 27px;
    font-weight: 430;
    letter-spacing: -0.035em;
}

.elah-story h3 span {
    color: #9468b1;
}


/* =========================================
   HYPNOPOP
========================================= */

.hypnopop-editorial {
    background:
        radial-gradient(
            circle at 88% 45%,
            rgba(118, 64, 158, 0.08),
            transparent 30%
        );
}

.hypnopop-editorial-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.hypnopop-story {
    border:
        1px solid
        rgba(255, 255, 255, 0.06);
    border-radius: 19px;
    background:
        linear-gradient(
            145deg,
            rgba(132, 74, 171, 0.045),
            rgba(255, 255, 255, 0.008)
        );
}

.hypnopop-story a {
    display: grid;
    grid-template-columns:
        66px
        minmax(0, 1fr)
        auto;
    gap: 23px;
    align-items: start;
    min-height: 285px;
    padding:
        32px;
}

.hypnopop-story-mark {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border:
        1px solid
        rgba(167, 100, 206, 0.22);
    border-radius: 50%;
    color: #a978c7;
    font-size: 9px;
    letter-spacing: 0.12em;
}

.hypnopop-story h3 {
    margin:
        37px
        0
        17px;
    color: #ded6e2;
    font-size: 31px;
    font-weight: 440;
    line-height: 1.04;
    letter-spacing: -0.045em;
}

.hypnopop-story h3 span {
    display: block;
    color: #9c6aba;
}

.hypnopop-story p {
    margin: 0;
    max-width: 440px;
    color: #786e7d;
    font-size: 13px;
    line-height: 1.7;
}


/* =========================================
   ARCHIVE
========================================= */

.archive-section {
    padding-bottom: 145px;
}

.journal-archive {
    border-top:
        1px solid
        rgba(255, 255, 255, 0.065);
}

.archive-row {
    display: grid;
    grid-template-columns:
        180px
        minmax(0, 1fr)
        120px
        25px;
    gap: 24px;
    align-items: center;
    min-height: 77px;
    border-bottom:
        1px solid
        rgba(255, 255, 255, 0.055);
    transition:
        padding-left 0.2s ease,
        background 0.2s ease;
}

.archive-row:hover {
    padding-left: 8px;
    background:
        rgba(255, 255, 255, 0.008);
}

.archive-category,
.archive-date {
    color: #5f5763;
    font-size: 9px;
}

.archive-row strong {
    color: #aaa0af;
    font-size: 14px;
    font-weight: 430;
}

.archive-arrow {
    color: #735282;
    font-size: 15px;
}

.journal-empty {
    padding:
        80px
        0;
    text-align: center;
}

.journal-empty span {
    color: #805f90;
    font-size: 9px;
    letter-spacing: 0.2em;
}

.journal-empty p {
    margin:
        13px
        0
        0;
    color: #665d6b;
    font-size: 14px;
}


/* =========================================
   VIDEO MODAL
========================================= */

.video-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: none;
    place-items: center;
    padding: 30px;
}

.video-modal.open {
    display: grid;
}

.video-modal-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background:
        rgba(3, 3, 5, 0.88);
    backdrop-filter: blur(10px);
    cursor: pointer;
}

.video-modal-window {
    position: relative;
    z-index: 2;
    width:
        min(
            1050px,
            100%
        );
}

.video-modal-close {
    position: absolute;
    right: 0;
    top: -48px;
    width: 38px;
    height: 38px;
    border:
        1px solid
        rgba(255, 255, 255, 0.11);
    border-radius: 50%;
    background: #0c0a0f;
    color: #cfc5d3;
    cursor: pointer;
    font-size: 22px;
}

.video-modal-content {
    overflow: hidden;
    border:
        1px solid
        rgba(255, 255, 255, 0.08);
    border-radius: 18px;
    background: #000;
    box-shadow:
        0 35px 120px
        rgba(0, 0, 0, 0.55);
}

.video-modal-content iframe,
.video-modal-content video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    background: #000;
}


/* =========================================
   FILTERING
========================================= */

.content-card.is-hidden {
    display: none !important;
}

.journal-section.is-hidden {
    display: none;
}


/* =========================================
   TABLET
========================================= */

@media (max-width: 1050px) {

    .featured-story {
        grid-template-columns: 1fr;
    }

    .featured-visual {
        min-height: 390px;
        border-left: 0;
        border-top:
            1px solid
            rgba(255, 255, 255, 0.055);
    }

    .latest-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .journal-card-wide {
        grid-column: span 2;
    }

    .video-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* =========================================
   MOBILE
========================================= */

@media (max-width: 760px) {

    .journal-shell {
        width:
            calc(100% - 30px);
    }

    .journal-hero {
        padding:
            95px
            0
            70px;
    }

    .journal-hero h1 {
        font-size: 64px;
    }

    .journal-intro {
        margin-top: 30px;
        font-size: 16px;
    }

    .journal-nav-inner {
        align-items: stretch;
        flex-direction: column;
        gap: 0;
        padding:
            10px
            0
            12px;
    }

    .journal-categories {
        width: 100%;
    }

    .journal-category {
        padding:
            16px
            0
            13px;
    }

    .journal-search {
        flex: none;
        width: 100%;
        margin-top: 8px;
    }

    .journal-search input {
        height: 42px;
    }

    .journal-section {
        padding:
            75px
            0;
    }

    .featured-copy {
        padding:
            34px
            27px;
    }

    .featured-copy h2 {
        font-size: 44px;
    }

    .featured-visual {
        min-height: 300px;
    }

    .latest-grid {
        grid-template-columns: 1fr;
    }

    .journal-card-wide {
        grid-column: auto;
    }

    .wide-card-layout {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .journal-card-wide h3 {
        font-size: 31px;
    }

    .video-grid,
    .hypnopop-editorial-grid {
        grid-template-columns: 1fr;
    }

    .elah-story a {
        grid-template-columns:
            42px
            minmax(0, 1fr)
            auto;
        gap: 13px;
    }

    .elah-story h3 {
        font-size: 22px;
    }

    .hypnopop-story a {
        grid-template-columns:
            50px
            minmax(0, 1fr);
    }

    .hypnopop-story .article-arrow {
        display: none;
    }

    .archive-row {
        grid-template-columns:
            minmax(0, 1fr)
            auto;
        gap: 9px;
        padding:
            18px
            0;
    }

    .archive-category {
        grid-column: 1;
        grid-row: 1;
    }

    .archive-row strong {
        grid-column: 1;
        grid-row: 2;
        font-size: 14px;
    }

    .archive-date {
        display: none;
    }

    .archive-arrow {
        grid-column: 2;
        grid-row:
            1
            /
            span 2;
    }

    .video-modal {
        padding: 16px;
    }

}