.journey-page {
    color: var(--ink);
    background: #ffffff;
}

/* Hero */
.journey-hero {
    position: relative;
    min-height: 700px;
    display: flex;
    align-items: flex-end;
    color: #ffffff;
    background:
        radial-gradient(
            circle at 78% 32%,
            rgba(0, 91, 172, 0.32),
            transparent 35%
        ),
        linear-gradient(
            110deg,
            #021022 0%,
            #063664 100%
        );
    overflow: hidden;
}

.journey-hero.has-image {
    background-image:
        linear-gradient(
            90deg,
            rgba(2, 16, 34, 0.96) 0%,
            rgba(2, 16, 34, 0.76) 52%,
            rgba(2, 16, 34, 0.3) 100%
        ),
        var(--journey-hero-image);
    background-position: center;
    background-size: cover;
}

.journey-hero__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(
            180deg,
            transparent 45%,
            rgba(2, 16, 34, 0.42)
        );
}

.journey-hero__inner {
    position: relative;
    z-index: 1;
    padding-top: 170px;
    padding-bottom: 95px;
}

.journey-hero h1 {
    max-width: 1120px;
    margin: 0;
    font-size: clamp(58px, 7vw, 108px);
    line-height: 0.92;
    letter-spacing: -0.06em;
}

.journey-hero__intro {
    max-width: 690px;
    margin: 34px 0 0;
    color: rgba(255, 255, 255, 0.75);
    font-size: 17px;
    line-height: 1.85;
}

/* Introduction */
.journey-intro {
    padding: 125px 0;
    background: #ffffff;
}

.journey-intro__grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.05fr)
        minmax(320px, 0.7fr);
    gap: 120px;
}

.journey-intro h2 {
    max-width: 800px;
    margin: 0;
    font-size: clamp(48px, 5vw, 78px);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.journey-intro__content {
    padding-top: 38px;
}

.journey-intro__content p {
    margin: 0;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.85;
}

.journey-intro__content p + p {
    margin-top: 24px;
}

.journey-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 90px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.journey-stats > div {
    display: flex;
    min-height: 190px;
    padding: 40px;
    justify-content: center;
    flex-direction: column;
    border-right: 1px solid var(--line);
}

.journey-stats > div:first-child {
    padding-left: 0;
}

.journey-stats > div:last-child {
    border-right: 0;
}

.journey-stats strong {
    color: var(--blue);
    font-size: clamp(48px, 5vw, 76px);
    line-height: 1;
    letter-spacing: -0.055em;
}

.journey-stats span {
    margin-top: 13px;
    color: var(--muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

/* Cinematic Story */
.journey-story {
    position: relative;
    height: 980vh;
    color: #ffffff;
    background: var(--navy);
}

.journey-story__sticky {
    position: sticky;
    top: var(--header-height, 84px);
    height: calc(100vh - var(--header-height, 84px));
    min-height: 620px;
    background:
        radial-gradient(
            circle at 75% 40%,
            rgba(0, 91, 172, 0.18),
            transparent 34%
        ),
        #021022;
    overflow: hidden;
}

body.admin-bar .journey-story__sticky {
    top: calc(var(--header-height, 84px) + 32px);
    height: calc(
        100vh -
        var(--header-height, 84px) -
        32px
    );
}

.journey-story__topbar {
    position: relative;
    z-index: 20;
    display: flex;
    min-height: 82px;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.journey-story__topbar > div:first-child {
    display: flex;
    align-items: center;
    gap: 24px;
}

.journey-story__label {
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.journey-story__instruction {
    color: rgba(255, 255, 255, 0.42);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.journey-story__counter {
    display: flex;
    align-items: baseline;
    gap: 7px;
    color: rgba(255, 255, 255, 0.42);
    font-size: 13px;
    font-weight: 600;
}

.journey-story__counter span:first-child {
    color: #ffffff;
    font-size: 24px;
}

.journey-story__counter i {
    font-style: normal;
}

/* Scene stage */
.journey-story__stage {
    position: relative;
    height: calc(100% - 200px);
}

.journey-scene {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns:
        minmax(360px, 0.78fr)
        minmax(520px, 1.22fr);
    gap: clamp(55px, 6vw, 110px);
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transform: translateX(90px);
    transition:
        opacity 0.65s ease,
        transform 0.85s cubic-bezier(0.2, 0.75, 0.2, 1);
}

.journey-scene.is-active {
    z-index: 5;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
}

.journey-scene.is-before {
    transform: translateX(-90px);
}

.journey-scene__copy {
    position: relative;
    z-index: 3;
    padding-bottom: 15px;
}

.journey-scene__year {
    display: block;
    margin-bottom: 23px;
    color: #65baff;
    font-size: clamp(78px, 8vw, 142px);
    font-weight: 700;
    line-height: 0.78;
    letter-spacing: -0.075em;
}

.journey-scene__tag {
    display: block;
    margin-bottom: 15px;
    color: rgba(255, 255, 255, 0.5);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.journey-scene h2 {
    max-width: 600px;
    margin: 0;
    font-size: clamp(40px, 4vw, 66px);
    line-height: 0.98;
    letter-spacing: -0.05em;
}

.journey-scene p {
    max-width: 610px;
    margin: 27px 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 15px;
    line-height: 1.8;
}

/* Image / placeholder */
.journey-scene__visual {
    position: relative;
    height: min(57vh, 610px);
    min-height: 390px;
    background-color: #082847;
    background-image:
        linear-gradient(
            105deg,
            rgba(2, 16, 34, 0.25),
            rgba(2, 16, 34, 0.02)
        ),
        var(--scene-image),
        radial-gradient(
            circle at 70% 30%,
            #1466a7,
            #052443 60%,
            #02152a
        );
    background-position: center;
    background-size: cover;
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.35);
    clip-path: inset(0 100% 0 0);
    overflow: hidden;
    transition:
        clip-path 0.9s cubic-bezier(0.2, 0.75, 0.2, 1),
        transform 1.1s cubic-bezier(0.2, 0.75, 0.2, 1);
    transform: scale(0.96);
}

.journey-scene.is-active .journey-scene__visual {
    clip-path: inset(0);
    transform: scale(1);
}

.journey-scene__visual::before {
    position: absolute;
    inset: 0;
    content: "";
    background:
        linear-gradient(
            90deg,
            rgba(2, 16, 34, 0.2),
            transparent 40%
        ),
        linear-gradient(
            0deg,
            rgba(2, 16, 34, 0.46),
            transparent 50%
        );
}

.journey-scene__visual::after {
    position: absolute;
    right: 22px;
    bottom: 20px;
    content: "LigLED";
    color: rgba(255, 255, 255, 0.58);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.journey-scene__visual > span {
    position: absolute;
    left: -8px;
    bottom: -24px;
    color: rgba(255, 255, 255, 0.08);
    font-size: clamp(130px, 17vw, 270px);
    font-weight: 700;
    line-height: 0.8;
    letter-spacing: -0.08em;
}

/* Year rail */
.journey-story__rail-wrap {
    position: absolute;
    z-index: 20;
    right: 0;
    bottom: 24px;
    left: 0;
    height: 72px;
    overflow: hidden;
}

.journey-story__rail {
    display: flex;
    width: max-content;
    height: 100%;
    padding: 0 calc(50vw - 42px);
    align-items: center;
    transform: translateX(
        var(--journey-rail-offset, 0)
    );
    transition:
        transform 0.65s
        cubic-bezier(0.2, 0.75, 0.2, 1);
}

.journey-story__year {
    position: relative;
    display: flex;
    width: 112px;
    padding: 30px 0 0;
    justify-content: center;
    color: rgba(255, 255, 255, 0.32);
    background: transparent;
    border: 0;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.journey-story__year::before {
    position: absolute;
    top: 13px;
    right: 0;
    left: 0;
    height: 1px;
    content: "";
    background: rgba(255, 255, 255, 0.15);
}

.journey-story__year span {
    position: absolute;
    z-index: 2;
    top: 9px;
    left: 50%;
    width: 9px;
    height: 9px;
    background: #526173;
    border: 2px solid #021022;
    border-radius: 50%;
    transform: translateX(-50%);
    transition:
        background-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;
}

.journey-story__year.is-past {
    color: rgba(255, 255, 255, 0.58);
}

.journey-story__year.is-past span {
    background: #167dca;
}

.journey-story__year.is-active {
    color: #ffffff;
}

.journey-story__year.is-active span {
    background: #70c4ff;
    box-shadow:
        0 0 0 6px rgba(76, 176, 247, 0.15);
    transform: translateX(-50%) scale(1.25);
}

/* Main progress */
.journey-story__progress {
    position: absolute;
    z-index: 30;
    right: 0;
    bottom: 0;
    left: 0;
    height: 3px;
    background: rgba(255, 255, 255, 0.1);
}

.journey-story__progress span {
    display: block;
    width: var(--journey-progress, 0%);
    height: 100%;
    background:
        linear-gradient(
            90deg,
            #005bac,
            #6ac3ff
        );
    transition: width 0.12s linear;
}

/* Future */
.journey-future {
    color: #ffffff;
    background:
        linear-gradient(
            105deg,
            #005bac 0%,
            #003e77 100%
        );
}

.journey-future__inner {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(320px, 0.65fr);
    min-height: 480px;
    padding-top: 95px;
    padding-bottom: 95px;
    gap: 120px;
    align-items: center;
}

.journey-future h2 {
    max-width: 800px;
    margin: 0;
    font-size: clamp(50px, 5vw, 80px);
    line-height: 0.98;
    letter-spacing: -0.055em;
}

.journey-future__inner > div:last-child > p {
    margin: 0;
    color: rgba(255, 255, 255, 0.76);
    font-size: 15px;
    line-height: 1.85;
}

.journey-future .button {
    margin-top: 30px;
    color: var(--blue);
    background: #ffffff;
}

.journey-future .button:hover {
    color: #ffffff;
    background: var(--navy);
}

/* Initial entrance */
.journey-motion-ready .journey-hero .eyebrow,
.journey-motion-ready .journey-hero h1,
.journey-motion-ready .journey-hero__intro {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity 0.85s ease,
        transform 0.85s
        cubic-bezier(0.2, 0.7, 0.2, 1);
}

.journey-motion-ready
.journey-hero.is-visible
.eyebrow,
.journey-motion-ready
.journey-hero.is-visible
h1,
.journey-motion-ready
.journey-hero.is-visible
.journey-hero__intro {
    opacity: 1;
    transform: translateY(0);
}

.journey-motion-ready .journey-hero h1 {
    transition-delay: 0.12s;
}

.journey-motion-ready .journey-hero__intro {
    transition-delay: 0.24s;
}

/* Tablet */
@media (max-width: 1100px) {
    .journey-intro__grid {
        gap: 70px;
    }

    .journey-scene {
        grid-template-columns:
            minmax(300px, 0.8fr)
            minmax(430px, 1.2fr);
        gap: 45px;
    }

    .journey-scene__visual {
        height: min(52vh, 540px);
    }

    .journey-future__inner {
        gap: 70px;
    }
}

/* Mobile / small tablet */
@media (max-width: 900px) {
    .journey-intro__grid,
    .journey-future__inner {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .journey-intro__content {
        padding-top: 0;
    }

    .journey-stats {
        grid-template-columns: 1fr;
    }

    .journey-stats > div {
        min-height: 145px;
        padding: 30px 0;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .journey-stats > div:last-child {
        border-bottom: 0;
    }

    .journey-story {
        height: auto !important;
    }

    .journey-story__sticky {
        position: relative;
        top: auto;
        height: auto;
        min-height: 0;
        padding: 65px 0 80px;
        overflow: visible;
    }

    body.admin-bar .journey-story__sticky {
        top: auto;
        height: auto;
    }

    .journey-story__topbar {
        min-height: 65px;
        margin-bottom: 50px;
    }

    .journey-story__instruction,
    .journey-story__counter,
    .journey-story__rail-wrap,
    .journey-story__progress {
        display: none;
    }

    .journey-story__stage {
        height: auto;
    }

    .journey-scene,
    .journey-scene.is-active,
    .journey-scene.is-before {
        position: relative;
        inset: auto;
        display: grid;
        grid-template-columns: 1fr;
        gap: 38px;
        padding: 0 0 90px;
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }

    .journey-scene:last-child {
        padding-bottom: 0;
    }

    .journey-scene__year {
        font-size: 86px;
    }

    .journey-scene h2 {
        font-size: 44px;
    }

    .journey-scene__visual,
    .journey-scene.is-active
    .journey-scene__visual {
        order: -1;
        width: 100%;
        height: 480px;
        min-height: 0;
        clip-path: none;
        transform: none;
    }

    .journey-future__inner {
        min-height: 440px;
    }
}

@media (max-width: 680px) {
    .journey-hero {
        min-height: 600px;
    }

    .journey-hero__inner {
        padding-top: 135px;
        padding-bottom: 70px;
    }

    .journey-hero h1 {
        font-size: 51px;
    }

    .journey-intro {
        padding: 80px 0;
    }

    .journey-intro h2,
    .journey-future h2 {
        font-size: 43px;
    }

    .journey-intro__grid {
        gap: 30px;
    }

    .journey-stats {
        margin-top: 60px;
    }

    .journey-story__topbar > div:first-child {
        display: block;
    }

    .journey-scene {
        padding-bottom: 75px;
    }

    .journey-scene__visual,
    .journey-scene.is-active
    .journey-scene__visual {
        height: 320px;
    }

    .journey-scene__year {
        font-size: 75px;
    }

    .journey-scene h2 {
        font-size: 38px;
    }

    .journey-future__inner {
        padding-top: 75px;
        padding-bottom: 75px;
    }

    .journey-future .button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .journey-page *,
    .journey-page *::before,
    .journey-page *::after {
        animation: none !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}