/* =========================================================
   RESET
========================================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    background: #0a0a0a;
    color: #f5f3ed;
    font-family: "DM Sans", sans-serif;
    overflow-x: hidden;
}

.hero {
    --hero-background-image: url("../assets/images/duol-hero.png");
}

.story-image {
    --story-image-background-image: url("../assets/images/duol-studio.png");
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    font-family: inherit;
}


/* =========================================================
   VARIABLES
========================================================= */

:root {

    --black: #0a0a0a;
    --deep-black: #050505;
    --charcoal: #151515;
    --graphite: #222222;

    --white: #f5f3ed;
    --muted: #a4a29c;

    --gold: #c9a85d;
    --gold-light: #e2cb8b;

    --border: rgba(255, 255, 255, 0.10);

    --container: 1400px;

    --ease: cubic-bezier(0.16, 1, 0.3, 1);
}


/* =========================================================
   PAGE LOADER
========================================================= */

.page-loader {
    position: fixed;
    inset: 0;
    z-index: 9999;

    background: #050505;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;

    transition:
        opacity 1s var(--ease),
        visibility 1s var(--ease);
}

.page-loader.loaded {
    opacity: 0;
    visibility: hidden;
}

.loader-logo img {
    width: 110px;
    height: 110px;
    object-fit: contain;

    opacity: 0;

    animation: loaderLogo 1.4s var(--ease) forwards;
}

.loader-line {
    width: 100px;
    height: 1px;

    background: rgba(255, 255, 255, 0.12);

    margin-top: 30px;

    overflow: hidden;
}

.loader-line span {
    display: block;

    width: 100%;
    height: 100%;

    background: var(--gold);

    transform: translateX(-100%);

    animation: loaderLine 1.6s var(--ease) forwards;
}

@keyframes loaderLogo {

    from {
        opacity: 0;
        transform: scale(.92);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes loaderLine {

    to {
        transform: translateX(0);
    }
}


/* =========================================================
   HEADER
========================================================= */

.site-header {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    height: 100px;

    padding: 0 5vw;

    display: flex;
    align-items: center;
    justify-content: space-between;

    z-index: 1000;

    transition:
        background .5s ease,
        height .5s ease,
        backdrop-filter .5s ease;
}

.site-header.scrolled {

    height: 80px;

    background: rgba(10, 10, 10, .82);

    backdrop-filter: blur(18px);

    border-bottom: 1px solid var(--border);
}


/* =========================================================
   BRAND
========================================================= */

.brand {
    display: flex;
    align-items: center;
}

.brand img {
    width: 58px;
    height: 58px;

    object-fit: contain;
}


/* =========================================================
   NAVIGATION
========================================================= */

.main-nav {

    position: absolute;
    left: 50%;
    transform: translateX(-50%);

    display: flex;
    gap: 40px;
}

.nav-link {

    position: relative;

    color: rgba(255, 255, 255, .65);

    font-size: 12px;
    font-weight: 500;

    letter-spacing: .14em;
    text-transform: uppercase;

    transition: color .3s ease;
}

.nav-link::after {

    content: "";

    position: absolute;

    left: 0;
    bottom: -7px;

    width: 100%;
    height: 1px;

    background: var(--gold);

    transform: scaleX(0);
    transform-origin: right;

    transition: transform .4s var(--ease);
}

.nav-link:hover,
.nav-link.active {
    color: white;
}

.nav-link:hover::after,
.nav-link.active::after {
    transform: scaleX(1);
    transform-origin: left;
}


/* =========================================================
   HEADER CTA
========================================================= */

.header-cta {

    display: flex;
    align-items: center;
    gap: 12px;

    border: 1px solid rgba(255, 255, 255, .25);

    padding: 12px 18px;

    font-size: 11px;

    letter-spacing: .12em;
    text-transform: uppercase;

    transition:
        background .3s ease,
        color .3s ease,
        border-color .3s ease;
}

.header-cta span {
    color: var(--gold);
    font-size: 15px;
}

.header-cta:hover {
    background: var(--white);
    color: var(--black);
    border-color: var(--white);
}


/* =========================================================
   MENU TOGGLE
========================================================= */

.menu-toggle {
    display: none;

    width: 42px;
    height: 42px;

    border: 0;
    background: transparent;

    cursor: pointer;

    flex-direction: column;
    justify-content: center;
    gap: 7px;
}

.menu-toggle span {

    display: block;

    width: 25px;
    height: 1px;

    background: white;

    transition: transform .4s var(--ease);
}


/* =========================================================
   MOBILE MENU
========================================================= */

.mobile-menu {

    position: fixed;

    inset: 0;

    z-index: 900;

    background: #080808;

    padding: 140px 8vw 50px;

    transform: translateY(-100%);

    transition: transform .8s var(--ease);

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.mobile-menu.open {
    transform: translateY(0);
}

.mobile-menu nav {

    display: flex;
    flex-direction: column;
    gap: 25px;
}

.mobile-menu nav a {

    font-family: "Manrope", sans-serif;

    font-size: clamp(35px, 10vw, 70px);

    font-weight: 600;

    letter-spacing: -.04em;

}

.mobile-menu-footer {

    display: flex;
    justify-content: space-between;

    color: var(--muted);

    font-size: 10px;
    letter-spacing: .15em;
}


/* =========================================================
   HERO
========================================================= */

.hero {

    position: relative;

    min-height: 100vh;

    background: var(--deep-black);

    overflow: visible;

    display: flex;
    align-items: flex-start;
    padding: 80px 0 40px;
}


/* Background */

.hero-background {

    position: absolute;

    inset: 0;

    background-image:
        var(--hero-background-image, none),
        radial-gradient(
            circle at 70% 45%,
            rgba(201, 168, 93, .08),
            transparent 32%
        ),
        radial-gradient(
            circle at 20% 80%,
            rgba(255,255,255,.025),
            transparent 35%
        );

    background-size: cover, cover, cover;
    background-position: center, center, center;
    background-repeat: no-repeat, no-repeat, no-repeat;

    z-index: 0;
}


/* Grain */

.hero-grain {

    position: absolute;

    inset: -50%;

    opacity: .055;

    pointer-events: none;

    z-index: 2;

    background-image:
        url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='.6'/%3E%3C/svg%3E");

    animation: grainMove .2s steps(2) infinite;
}

@keyframes grainMove {

    0% {
        transform: translate(0,0);
    }

    25% {
        transform: translate(2%,-1%);
    }

    50% {
        transform: translate(-1%,2%);
    }

    75% {
        transform: translate(1%,1%);
    }

    100% {
        transform: translate(-2%,-2%);
    }
}


/* Gold light */

.hero-light {

    position: absolute;

    width: 500px;
    height: 500px;

    right: -180px;
    top: 25%;

    border-radius: 50%;

    background: rgba(201,168,93,.055);

    filter: blur(100px);

    pointer-events: none;

    z-index: 1;
}


/* =========================================================
   HERO CONTENT
========================================================= */

.hero-content {

    position: relative;

    z-index: 5;

    width: min(var(--container), 90%);

    margin: 0 auto;

    padding: 0 0 40px;
}


/* Hero brand */

.hero-brand {

    display: flex;
    align-items: center;

    gap: 18px;

    margin-bottom: 55px;

    opacity: 0;

    animation:
        heroFade 1s 1.8s var(--ease) forwards;
}

.hero-logo-wrapper {

    width: 68px;
    height: 68px;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    background: white;

    padding: 5px;

    box-shadow:
        0 0 50px rgba(255,255,255,.04);
}

.hero-logo {

    width: 100%;
    height: 100%;

    object-fit: contain;
}

.hero-brand-line {

    width: 50px;
    height: 1px;

    background: var(--gold);
}

.hero-brand > span {

    color: var(--muted);

    font-size: 10px;

    letter-spacing: .25em;
}


/* =========================================================
   HERO TITLE
========================================================= */

.hero-title-wrapper {
    max-width: 1200px;
}

.hero-eyebrow {

    margin-bottom: 24px;

    color: var(--gold);

    font-size: 10px;

    letter-spacing: .25em;

    opacity: 0;

    animation:
        heroFade 1s 2s var(--ease) forwards;
}

.hero-title {

    font-family: "Manrope", sans-serif;

    font-size: clamp(48px, 7vw, 112px);

    line-height: .98;

    letter-spacing: -.055em;

    font-weight: 500;

    max-width: 1200px;
}

.hero-title span {

    display: block;

    overflow: hidden;

    opacity: 0;

    transform: translateY(45px);

    animation:
        titleReveal 1.2s var(--ease) forwards;
}

.hero-title span:nth-child(1) {
    animation-delay: 2.1s;
}

.hero-title span:nth-child(2) {
    animation-delay: 2.25s;
}

.hero-title span:nth-child(3) {
    animation-delay: 2.4s;
}

.hero-title span:nth-child(4) {
    animation-delay: 2.55s;
}

.hero-title em {

    color: var(--gold-light);

    font-style: normal;
}

@keyframes titleReveal {

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes heroFade {

    to {
        opacity: 1;
    }
}


/* =========================================================
   HERO BOTTOM
========================================================= */

.hero-bottom {

    margin-top: 65px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    max-width: 1050px;

    opacity: 0;

    animation:
        heroFade 1s 2.8s var(--ease) forwards;
}

.hero-description {

    max-width: 380px;

    color: var(--muted);

    font-size: 14px;

    line-height: 1.8;
}


/* Explore */

.explore-link {

    display: flex;
    align-items: center;

    gap: 15px;

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: .15em;
}

.explore-circle {

    width: 48px;
    height: 48px;

    border: 1px solid rgba(255,255,255,.3);

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    color: var(--gold);

    transition:
        background .4s ease,
        color .4s ease,
        transform .4s var(--ease);
}

.explore-link:hover .explore-circle {

    background: var(--gold);

    color: var(--black);

    transform: translateY(5px);
}


/* =========================================================
   SCROLL INDICATOR
========================================================= */

.hero-scroll-indicator {

    position: absolute;

    right: 5vw;
    bottom: 45px;

    z-index: 5;

    display: flex;
    align-items: center;

    gap: 15px;

    transform: rotate(90deg);
    transform-origin: right center;

    color: rgba(255,255,255,.35);

    font-size: 9px;

    letter-spacing: .25em;
}

.scroll-line {

    width: 65px;
    height: 1px;

    background: rgba(255,255,255,.15);

    overflow: hidden;
}

.scroll-line span {

    display: block;

    width: 30px;
    height: 100%;

    background: var(--gold);

    animation:
        scrollPulse 2s ease-in-out infinite;
}

@keyframes scrollPulse {

    0% {
        transform: translateX(-35px);
    }

    50% {
        transform: translateX(65px);
    }

    100% {
        transform: translateX(-35px);
    }
}


/* =========================================================
   GENERAL SECTIONS
========================================================= */

section:not(.hero) {
    position: relative;
}

.section-container {

    width: min(var(--container), 90%);

    margin: auto;
}


/* Section label */

.section-label {

    display: flex;
    align-items: center;

    gap: 15px;

    color: var(--muted);

    font-size: 9px;

    letter-spacing: .2em;

    text-transform: uppercase;
}

.section-label span:first-child {
    color: var(--gold);
}


/* =========================================================
   INTRO
========================================================= */

.intro-section {

    padding: 180px 0;

    background: #0d0d0d;
}

.intro-content {

    margin-top: 90px;

    display: grid;

    grid-template-columns: 1.4fr .6fr;

    gap: 100px;
}

.intro-content h2 {

    font-family: "Manrope", sans-serif;

    font-size: clamp(40px, 5vw, 78px);

    line-height: 1.05;

    letter-spacing: -.05em;

    font-weight: 500;
}

.intro-content h2 span {

    display: block;

    color: var(--muted);
}

.intro-text {

    padding-top: 10px;
}

.intro-text p {

    color: var(--muted);

    line-height: 1.9;

    font-size: 14px;

    margin-bottom: 35px;
}

.text-link {

    display: inline-flex;

    align-items: center;

    gap: 15px;

    font-size: 11px;

    letter-spacing: .15em;

    text-transform: uppercase;

    border-bottom: 1px solid var(--gold);

    padding-bottom: 8px;
}


/* =========================================================
   SHOWS
========================================================= */

.shows-section {

    padding: 180px 0;

    background: #111;
}

.section-heading {

    display: flex;

    justify-content: space-between;

    align-items: flex-end;

    margin-top: 90px;

    margin-bottom: 80px;
}

.section-heading h2 {

    font-family: "Manrope", sans-serif;

    font-size: clamp(55px, 7vw, 105px);

    line-height: .9;

    letter-spacing: -.06em;

    font-weight: 500;
}

.section-heading h2 span {

    display: block;

    color: var(--gold);
}

.section-heading p {

    width: 280px;

    color: var(--muted);

    font-size: 13px;

    line-height: 1.8;
}


/* Shows grid */

.shows-grid {

    display: grid;

    grid-template-columns: 1.3fr 1fr;

    gap: 20px;
}

.show-card {

    position: relative;

    min-height: 500px;

    overflow: hidden;

    background: #1a1a1a;
}

.show-card-large {

    grid-row: span 2;

    min-height: 1020px;
}

.show-image {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            145deg,
            #242424,
            #111
        );

    transition: transform 1s var(--ease);
}

.show-card:hover .show-image {

    transform: scale(1.04);
}

.show-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.95),
            rgba(0,0,0,.05) 70%
        );
}

.show-content {

    position: absolute;

    left: 45px;
    right: 45px;
    bottom: 45px;
}

.show-number {

    color: var(--gold);

    font-size: 11px;

    letter-spacing: .15em;
}

.show-content h3 {

    margin-top: 20px;

    font-family: "Manrope", sans-serif;

    font-size: clamp(35px, 4vw, 65px);

    line-height: .95;

    letter-spacing: -.05em;
}

.show-content h3 span {

    display: block;

    color: var(--gold-light);
}

.show-content p {

    margin-top: 20px;

    max-width: 400px;

    color: #aaa;

    font-size: 13px;

    line-height: 1.7;
}

.show-link {

    display: inline-flex;

    gap: 15px;

    margin-top: 30px;

    font-size: 10px;

    letter-spacing: .15em;

    text-transform: uppercase;
}


/* =========================================================
   ABOUT
========================================================= */

.about-section {

    padding: 200px 0;

    background: var(--black);
}

.about-content {

    margin-top: 100px;
}

.about-content h2 {

    max-width: 1100px;

    font-family: "Manrope", sans-serif;

    font-size: clamp(50px, 7vw, 110px);

    line-height: .95;

    letter-spacing: -.06em;

    font-weight: 500;
}

.about-content h2 span {

    display: block;

    color: var(--muted);
}

.large-link {

    display: inline-flex;

    gap: 20px;

    margin-top: 80px;

    padding-bottom: 12px;

    border-bottom: 1px solid var(--gold);

    font-size: 12px;

    letter-spacing: .2em;

    text-transform: uppercase;
}


/* =========================================================
   CONTACT
========================================================= */

.contact-section {

    min-height: 80vh;

    display: flex;

    align-items: center;
    justify-content: center;

    background:
        radial-gradient(
            circle at center,
            rgba(201,168,93,.08),
            transparent 40%
        ),
        #080808;

    text-align: center;
}

.contact-inner {

    width: 90%;
}

.contact-label {

    color: var(--gold);

    font-size: 9px;

    letter-spacing: .25em;
}

.contact-section h2 {

    margin-top: 30px;

    font-family: "Manrope", sans-serif;

    font-size: clamp(70px, 12vw, 190px);

    line-height: .8;

    letter-spacing: -.08em;

    font-weight: 500;
}

.contact-section h2 span {

    display: block;

    color: var(--gold);
}

.contact-button {

    display: inline-flex;

    align-items: center;

    gap: 20px;

    margin-top: 70px;

    padding: 18px 28px;

    border: 1px solid rgba(255,255,255,.25);

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: .15em;

    transition:
        background .4s ease,
        color .4s ease;
}

.contact-button:hover {

    background: white;

    color: black;
}


/* =========================================================
   FOOTER
========================================================= */

.site-footer {

    background: #050505;

    padding: 100px 5vw 30px;
}

.footer-top {

    max-width: var(--container);

    margin: auto;

    display: grid;

    grid-template-columns: 2fr 1fr 1fr 1fr;

    gap: 60px;

    padding-bottom: 100px;

    border-bottom: 1px solid var(--border);
}

.footer-brand img {

    width: 80px;

    height: 80px;

    object-fit: contain;
}

.footer-brand p {

    max-width: 300px;

    margin-top: 25px;

    color: var(--muted);

    font-size: 12px;

    line-height: 1.8;
}

.footer-column {

    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 15px;
}

.footer-heading {

    margin-bottom: 10px;

    color: var(--gold);

    font-size: 9px;

    letter-spacing: .2em;
}

.footer-column a {

    color: #aaa;

    font-size: 12px;

    transition: color .3s ease;
}

.footer-column a:hover {

    color: white;
}

.footer-bottom {

    max-width: var(--container);

    margin: 25px auto 0;

    display: flex;

    justify-content: space-between;

    color: #555;

    font-size: 9px;

    letter-spacing: .08em;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .main-nav,
    .header-cta {
        display: none;
    }

    .menu-toggle {
        display: flex;
    }

    .hero-content {
        padding-top: 100px;
    }

    .hero-title {
        font-size: clamp(45px, 9vw, 75px);
    }

    .hero-bottom {
        align-items: flex-start;
        gap: 40px;
        flex-direction: column;
    }

    .hero-scroll-indicator {
        display: none;
    }

    .intro-content {

        grid-template-columns: 1fr;

        gap: 50px;
    }

    .section-heading {

        align-items: flex-start;

        flex-direction: column;

        gap: 30px;
    }

    .shows-grid {

        grid-template-columns: 1fr;
    }

    .show-card,
    .show-card-large {

        min-height: 600px;

        grid-row: auto;
    }

    .footer-top {

        grid-template-columns: 1fr 1fr;
    }
}


@media (max-width: 600px) {

    .site-header {

        height: 80px;

        padding: 0 6vw;
    }

    .brand img {

        width: 50px;
        height: 50px;
    }

    .hero-content {

        width: 88%;

        padding-top: 70px;

    }

    .hero-brand {

        margin-bottom: 40px;
    }

    .hero-logo-wrapper {

        width: 55px;
        height: 55px;
    }

    .hero-brand-line {
        width: 30px;
    }

    .hero-brand > span {

        font-size: 8px;

        letter-spacing: .15em;
    }

    .hero-title {

        font-size: clamp(42px, 12vw, 65px);

        line-height: .98;
    }

    .hero-eyebrow {

        font-size: 8px;

        line-height: 1.5;

        max-width: 250px;
    }

    .hero-description {

        font-size: 13px;
    }

    .intro-section,
    .shows-section,
    .about-section {

        padding: 120px 0;
    }

    .intro-content {

        margin-top: 60px;
    }

    .section-heading {

        margin-top: 60px;

        margin-bottom: 50px;
    }

    .show-card,
    .show-card-large {

        min-height: 520px;
    }

    .show-content {

        left: 25px;
        right: 25px;
        bottom: 30px;
    }

    .contact-section {

        min-height: 70vh;
    }

    .footer-top {

        grid-template-columns: 1fr;

        gap: 50px;
    }

    .footer-bottom {

        flex-direction: column;

        gap: 10px;
    }
}


/* =========================================================
   FEATURED CONVERSATION
========================================================= */

.featured-section {

    padding: 180px 0;

    background: #0a0a0a;

}

.featured-wrapper {

    margin-top: 90px;

    display: grid;

    grid-template-columns: 1.35fr .65fr;

    min-height: 650px;

    background: #141414;

}


/* Featured image */

.featured-image {

    position: relative;

    min-height: 650px;

    overflow: hidden;

    background:

        radial-gradient(
            circle at 40% 40%,
            rgba(201,168,93,.15),
            transparent 35%
        ),

        linear-gradient(
            145deg,
            #2b2b2b,
            #101010
        );
 

}


/*
    This is where the actual DUOL episode image
    will eventually go.

    Example:

    background-image:
        url("../assets/images/episode-01.jpg");

*/

.featured-image::before {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            120deg,
            rgba(255,255,255,.03),
            transparent 40%
        );

}


.featured-image-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,.65),
            transparent 55%
        );

}


.featured-image-content {

    position: absolute;

    left: 45px;

    bottom: 45px;

    display: flex;

    align-items: center;

    gap: 25px;

}


.featured-image-content > span {

    font-size: 9px;

    letter-spacing: .2em;

    color: white;

}


.featured-play {

    width: 55px;

    height: 55px;

    border: 1px solid rgba(255,255,255,.5);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    font-size: 13px;

    padding-left: 3px;

    transition:

        background .3s ease,

        color .3s ease,

        transform .3s ease;

}


.featured-play:hover {

    background: var(--gold);

    color: black;

    transform: scale(1.08);

}


/* Featured info */

.featured-info {

    padding: 70px 60px;

    display: flex;

    flex-direction: column;

    justify-content: center;

}


.featured-category {

    color: var(--gold);

    font-size: 9px;

    letter-spacing: .2em;

}


.featured-info h2 {

    margin-top: 30px;

    font-family: "Manrope", sans-serif;

    font-size: clamp(40px, 4vw, 65px);

    line-height: .98;

    letter-spacing: -.055em;

    font-weight: 500;

}


.featured-info h2 span {

    display: block;

    color: var(--muted);

}


.featured-info > p {

    margin-top: 35px;

    color: var(--muted);

    font-size: 13px;

    line-height: 1.9;

    max-width: 400px;

}


.featured-meta {

    display: flex;

    justify-content: space-between;

    max-width: 400px;

    margin-top: 45px;

    padding-top: 20px;

    border-top: 1px solid var(--border);

    color: #666;

    font-size: 8px;

    letter-spacing: .15em;

}


.featured-button {

    align-self: flex-start;

    margin-top: 40px;

    padding: 17px 23px;

    border: 1px solid rgba(255,255,255,.2);

    font-size: 9px;

    letter-spacing: .15em;

    text-transform: uppercase;

    display: flex;

    gap: 20px;

    transition:

        background .3s ease,

        color .3s ease;

}


.featured-button:hover {

    background: white;

    color: black;

}


/* =========================================================
   LATEST EPISODES
========================================================= */

.episodes-section {

    padding: 180px 0;

    background: #111;

}


.episodes-heading {

    margin-top: 90px;

    margin-bottom: 80px;

    display: flex;

    justify-content: space-between;

    align-items: flex-end;

}


.episodes-heading h2 {

    font-family: "Manrope", sans-serif;

    font-size: clamp(50px, 6vw, 90px);

    line-height: .9;

    letter-spacing: -.06em;

    font-weight: 500;

}


.episodes-heading h2 span {

    display: block;

    color: var(--muted);

}


/* Episode */

.episodes-list {

    border-top: 1px solid var(--border);

}


.episode {

    display: grid;

    grid-template-columns: 60px 260px 1fr 100px;

    gap: 40px;

    align-items: center;

    min-height: 260px;

    border-bottom: 1px solid var(--border);

    transition: background .5s ease;

}


.episode:hover {

    background: #171717;

}


.episode-number {

    color: #555;

    font-family: "Manrope", sans-serif;

    font-size: 12px;

}


/* Episode image */

.episode-image {

    height: 170px;

    position: relative;

    overflow: hidden;

    background:

        linear-gradient(
            135deg,
            #292929,
            #111
        );

}


.episode-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        radial-gradient(
            circle at center,
            rgba(201,168,93,.1),
            transparent 50%
        );

    transition: transform .8s var(--ease);

}


.episode:hover .episode-image::after {

    transform: scale(1.4);

}


.episode-image-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            120deg,
            rgba(255,255,255,.03),
            transparent
        );

}


/* Episode info */

.episode-category {

    color: var(--gold);

    font-size: 8px;

    letter-spacing: .18em;

}


.episode-info h3 {

    margin-top: 15px;

    max-width: 650px;

    font-family: "Manrope", sans-serif;

    font-size: clamp(24px, 2.3vw, 36px);

    line-height: 1;

    letter-spacing: -.04em;

    font-weight: 500;

}


.episode-info p {

    margin-top: 15px;

    color: #777;

    font-size: 12px;

    line-height: 1.6;

}


/* Episode action */

.episode-action {

    display: flex;

    align-items: center;

    justify-content: flex-end;

    gap: 15px;

    color: #888;

    font-size: 8px;

    letter-spacing: .2em;

}


.episode-arrow {

    width: 40px;

    height: 40px;

    border: 1px solid rgba(255,255,255,.15);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--gold);

    transition:

        background .3s ease,

        color .3s ease;

}


.episode:hover .episode-arrow {

    background: var(--gold);

    color: black;

}


/* =========================================================
   FEATURED + EPISODES RESPONSIVE
========================================================= */

@media (max-width: 1000px) {

    .featured-wrapper {

        grid-template-columns: 1fr;

    }

    .featured-image {

        min-height: 550px;

    }

    .featured-info {

        padding: 60px 45px;

    }

    .episode {

        grid-template-columns: 40px 200px 1fr;

    }

    .episode-action {

        display: none;

    }

}


@media (max-width: 700px) {

    .featured-section,
    .episodes-section {

        padding: 120px 0;

    }

    .featured-wrapper {

        margin-top: 60px;

    }

    .featured-image {

        min-height: 450px;

    }

    .featured-info {

        padding: 50px 30px;

    }

    .featured-image-content {

        left: 25px;

        bottom: 25px;

    }

    .episodes-heading {

        margin-top: 60px;

        margin-bottom: 50px;

        flex-direction: column;

        align-items: flex-start;

        gap: 35px;

    }

    .episode {

        grid-template-columns: 35px 1fr;

        gap: 20px;

        padding: 30px 0;

    }

    .episode-image {

        grid-column: 2;

        height: 180px;

    }

    .episode-info {

        grid-column: 2;

    }

    .episode-number {

        align-self: start;

        padding-top: 5px;

    }

}


/* =========================================================
   DUOL STORY / ABOUT
========================================================= */

.story-section {

    position: relative;

    background:
        linear-gradient(
            180deg,
            #080808 0%,
            #0d0d0d 45%,
            #080808 100%
        );

    overflow: hidden;

    padding: 180px 0 220px;

}


/* =========================================================
   AMBIENT LIGHT
========================================================= */

.story-ambient {

    position: absolute;

    width: 700px;
    height: 700px;

    top: 15%;
    right: -300px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(201,168,93,.065),
            transparent 65%
        );

    filter: blur(40px);

    pointer-events: none;

    transform:
        translate3d(0,0,0);

    will-change: transform;

}


/* =========================================================
   CONTAINER
========================================================= */

.story-container {

    position: relative;

    width: min(var(--container), 90%);

    margin: auto;

}


/* =========================================================
   HEADER
========================================================= */

.story-header {

    display: grid;

    grid-template-columns: .35fr 1fr;

    gap: 80px;

    align-items: start;

}


.story-label {

    position: sticky;

    top: 130px;

}


.story-intro {

    max-width: 1050px;

}


.story-kicker {

    color: var(--gold);

    font-size: 9px;

    letter-spacing: .25em;

    margin-bottom: 30px;

    opacity: 0;

    transform: translateY(25px);

}


.story-title {

    font-family: "Manrope", sans-serif;

    font-size: clamp(65px, 9vw, 135px);

    line-height: .87;

    letter-spacing: -.075em;

    font-weight: 500;

}


.story-title span {

    display: block;

    color: var(--muted);

}


/* =========================================================
   STORY STATEMENT
========================================================= */

.story-statement {

    max-width: 1100px;

    margin:

        190px

        0

        180px

        auto;

}


.reveal-text {

    font-family: "Manrope", sans-serif;

    font-size: clamp(40px, 5vw, 76px);

    line-height: 1.05;

    letter-spacing: -.055em;

    font-weight: 500;

    color: rgba(255,255,255,.16);

}


.reveal-text .word {

    transition:

        color .5s ease,

        opacity .5s ease;

}


.highlight-word {

    color: var(--gold);

}


/* =========================================================
   CINEMATIC IMAGE
========================================================= */

.story-image-wrapper {

    position: relative;

    width: 100%;

    height: min(75vh, 800px);

    overflow: hidden;

}


.story-image {

    position: absolute;

    inset: -8%;

    background-image:
        var(--story-image-background-image, none),
        radial-gradient(
            circle at 50% 45%,
            rgba(201,168,93,.12),
            transparent 30%
        ),

        linear-gradient(
            135deg,
            #292929,
            #101010
        );

    background-size: cover, cover, cover;
    background-position: center, center, center;
    background-repeat: no-repeat, no-repeat, no-repeat;

    transform:

        translate3d(0,0,0)

        scale(1.08);

    will-change: transform;

}


/*
   Replace the background above with an actual DUOL image:

   background:
       url("../assets/images/about/duol-studio.jpg")
       center / cover no-repeat;
*/


.story-image-overlay {

    position: absolute;

    inset: 0;

    background:

        linear-gradient(
            to bottom,
            rgba(0,0,0,.05),
            rgba(0,0,0,.75)
        );

}


.story-image-caption {

    position: absolute;

    left: 45px;

    right: 45px;

    bottom: 40px;

    display: flex;

    justify-content: space-between;

    color: rgba(255,255,255,.55);

    font-size: 8px;

    letter-spacing: .2em;

}


/* =========================================================
   PHILOSOPHY
========================================================= */

.story-philosophy {

    display: grid;

    grid-template-columns: .35fr 1fr;

    gap: 80px;

    padding: 110px 0;

    border-bottom: 1px solid var(--border);

}


.story-philosophy:first-of-type {

    margin-top: 120px;

    border-top: 1px solid var(--border);

}


.philosophy-number {

    color: var(--gold);

    font-size: 10px;

    letter-spacing: .2em;

}


.philosophy-content {

    max-width: 900px;

}


.philosophy-content h3 {

    font-family: "Manrope", sans-serif;

    font-size: clamp(45px, 5vw, 75px);

    line-height: .95;

    letter-spacing: -.055em;

    font-weight: 500;

}


.philosophy-content h3 span {

    color: var(--muted);

}


.philosophy-content p {

    max-width: 500px;

    margin-top: 30px;

    color: #777;

    font-size: 13px;

    line-height: 1.9;

}


/* =========================================================
   FINAL STATEMENT
========================================================= */

.story-final {

    text-align: center;

    padding-top: 220px;

}


.story-final-line {

    width: 1px;

    height: 100px;

    background: linear-gradient(
        to bottom,
        transparent,
        var(--gold)
    );

    margin: 0 auto 50px;

}


.story-final > p {

    color: var(--gold);

    font-size: 9px;

    letter-spacing: .3em;

}


.story-final h2 {

    margin-top: 35px;

    font-family: "Manrope", sans-serif;

    font-size: clamp(55px, 8vw, 120px);

    line-height: .9;

    letter-spacing: -.07em;

    font-weight: 500;

}


.story-final h2 span {

    display: block;

    color: var(--muted);

}


/* =========================================================
   STORY ANIMATION STATES
========================================================= */

.story-kicker,
.story-title,
.story-statement,
.story-image-wrapper,
.story-philosophy,
.story-final {

    transition:

        opacity 1s var(--ease),

        transform 1s var(--ease);

}


.story-reveal {

    opacity: 1 !important;

    transform: translateY(0) !important;

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 900px) {

    .story-section {

        padding: 140px 0 160px;

    }


    .story-header {

        grid-template-columns: 1fr;

        gap: 50px;

    }


    .story-label {

        position: static;

    }


    .story-statement {

        margin:

            130px

            0

            120px;

    }


    .story-image-wrapper {

        height: 60vh;

    }


    .story-philosophy {

        grid-template-columns: 60px 1fr;

        gap: 30px;

    }

}


@media (max-width: 600px) {

    .story-section {

        padding: 110px 0 140px;

    }


    .story-title {

        font-size: clamp(52px, 15vw, 80px);

    }


    .story-statement {

        margin:

            100px

            0

            90px;

    }


    .reveal-text {

        font-size: clamp(32px, 9vw, 52px);

    }


    .story-image-wrapper {

        height: 55vh;

    }


    .story-image-caption {

        left: 25px;

        right: 25px;

        bottom: 25px;

    }


    .story-philosophy {

        padding: 70px 0;

        grid-template-columns: 35px 1fr;

        gap: 20px;

    }


    .story-philosophy:first-of-type {

        margin-top: 80px;

    }


    .philosophy-content p {

        font-size: 12px;

    }


    .story-final {

        padding-top: 140px;

    }

}

/* (desktop mobile-menu hide removed) */

/* Safety overrides: ensure loader doesn't block the page and mobile menu stays hidden on desktop */
@media (min-width: 901px) {

    .mobile-menu {
        display: none !important;
    }

}

