:root {
    --pt-cinematic-accent: 70, 230, 255;
    --pt-active-accent: 70, 230, 255;
    --pt-pointer-x: 0px;
    --pt-pointer-y: 0px;
    --pt-organic-ease: cubic-bezier(.22, 1, .36, 1);
}

.pt-page-progress {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 90;
    height: 3px;
    pointer-events: none;
    background: rgba(255, 255, 255, .035);
}

.pt-page-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        rgb(var(--pt-active-accent)),
        #f7fbfd 54%,
        #d8ff45
    );
    box-shadow:
        0 0 12px rgba(var(--pt-active-accent), .74),
        0 0 28px rgba(var(--pt-active-accent), .3);
    transform: scaleX(0);
    transform-origin: left center;
}

.pt-cinematic-scene {
    position: relative;
    isolation: isolate;
    scroll-margin-top: 78px;
}

.pt-cinematic-scene > .pt-container {
    position: relative;
    z-index: 2;
}

.pt-organic-field {
    position: absolute;
    inset: -12% -8%;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    opacity: .14;
    transition: opacity 1.15s var(--pt-organic-ease);
}

.pt-organic-field::before,
.pt-organic-field::after,
.pt-organic-field-core {
    position: absolute;
    border-radius: 50%;
    content: "";
    mix-blend-mode: screen;
    will-change: transform, opacity;
}

.pt-organic-field::before {
    top: 4%;
    left: 8%;
    width: min(58vw, 880px);
    aspect-ratio: 1.8 / 1;
    background: radial-gradient(
        ellipse,
        rgba(var(--pt-scene-accent), .18),
        rgba(var(--pt-scene-accent), .045) 48%,
        transparent 72%
    );
    filter: blur(34px);
    transform: translate3d(
        var(--pt-pointer-x),
        var(--pt-pointer-y),
        0
    ) rotate(-8deg);
}

.pt-organic-field::after {
    right: 4%;
    bottom: 6%;
    width: min(46vw, 720px);
    aspect-ratio: 1.45 / 1;
    background: radial-gradient(
        ellipse,
        rgba(var(--pt-scene-accent), .14),
        rgba(var(--pt-scene-accent), .035) 46%,
        transparent 72%
    );
    filter: blur(42px);
    transform: translate3d(
        calc(0px - var(--pt-pointer-x)),
        calc(0px - var(--pt-pointer-y)),
        0
    ) rotate(9deg);
}

.pt-organic-field-core {
    top: 24%;
    left: 43%;
    width: min(24vw, 360px);
    aspect-ratio: 1;
    opacity: .3;
    background: radial-gradient(
        circle,
        rgba(255, 255, 255, .13),
        rgba(var(--pt-scene-accent), .08) 34%,
        transparent 68%
    );
    filter: blur(18px);
    animation: pt-organic-breathe 7.5s ease-in-out infinite alternate;
}

.pt-cinematic-scene.is-scene-current > .pt-organic-field {
    opacity: .74;
}

.pt-cinematic-scene.is-scene-current > .pt-organic-field::before,
.pt-cinematic-scene.is-scene-current > .pt-organic-field::after {
    animation: pt-organic-drift 9s ease-in-out infinite alternate;
}

@keyframes pt-organic-breathe {
    0% {
        opacity: .24;
        transform: scale(.82) rotate(-5deg);
    }

    100% {
        opacity: .58;
        transform: scale(1.18) rotate(5deg);
    }
}

@keyframes pt-organic-drift {
    0% {
        filter: blur(30px);
    }

    100% {
        filter: blur(48px);
    }
}

/* Continuous scene navigation */

.pt-scene-rail {
    position: fixed;
    top: 50%;
    right: 17px;
    z-index: 46;
    display: flex;
    min-height: min(56vh, 520px);
    flex-direction: column;
    justify-content: space-between;
    transform: translateY(-50%);
}

.pt-scene-rail-track,
.pt-scene-rail-progress {
    position: absolute;
    top: 5px;
    bottom: 5px;
    left: 4px;
    width: 1px;
    pointer-events: none;
}

.pt-scene-rail-track {
    background: rgba(255, 255, 255, .15);
}

.pt-scene-rail-progress {
    top: 0;
    bottom: 0;
    left: 0;
    background: linear-gradient(
        180deg,
        #46e6ff,
        rgb(var(--pt-active-accent)),
        #d8ff45
    );
    box-shadow: 0 0 12px rgba(var(--pt-active-accent), .78);
    transform: scaleY(0);
    transform-origin: top center;
}

.pt-scene-rail-item {
    position: relative;
    display: flex;
    width: 10px;
    height: 10px;
    align-items: center;
    color: #f5fbfd;
}

.pt-scene-rail-marker {
    position: relative;
    z-index: 2;
    display: block;
    width: 9px;
    height: 9px;
    flex: 0 0 auto;
    border: 1px solid rgba(255, 255, 255, .46);
    border-radius: 50%;
    background: #07141c;
    transition:
        border-color .3s ease,
        background .3s ease,
        box-shadow .3s ease,
        transform .45s var(--pt-organic-ease);
}

.pt-scene-rail-label {
    position: absolute;
    right: 22px;
    padding: 7px 10px;
    opacity: 0;
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(2, 14, 22, .84);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .25);
    backdrop-filter: blur(14px);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .14em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
    transform: translateX(7px);
    transition:
        opacity .25s ease,
        transform .35s var(--pt-organic-ease);
}

.pt-scene-rail-item:hover .pt-scene-rail-label,
.pt-scene-rail-item:focus-visible .pt-scene-rail-label,
.pt-scene-rail-item.is-active .pt-scene-rail-label {
    opacity: 1;
    transform: translateX(0);
}

.pt-scene-rail-item.is-active .pt-scene-rail-marker {
    border-color: rgb(var(--pt-active-accent));
    background: rgb(var(--pt-active-accent));
    box-shadow:
        0 0 0 5px rgba(var(--pt-active-accent), .12),
        0 0 17px rgba(var(--pt-active-accent), .84);
    transform: scale(1.18);
}

/* Scene-to-scene current */

.pt-scene-transition {
    position: absolute;
    top: -1px;
    right: 0;
    left: 0;
    z-index: 4;
    height: clamp(68px, 9vh, 104px);
    height: clamp(68px, 9svh, 104px);
    overflow: hidden;
    pointer-events: none;
    transform-origin: top center;
}

.pt-scene-transition-wash,
.pt-scene-transition-halo,
.pt-scene-transition-current,
.pt-scene-transition-line,
.pt-scene-transition-drop,
.pt-scene-transition-signature {
    position: absolute;
    pointer-events: none;
}

.pt-scene-transition-wash {
    inset: 0;
    opacity: 0;
    background: linear-gradient(
        180deg,
        rgba(var(--pt-scene-accent), .17),
        rgba(var(--pt-scene-accent), .04) 46%,
        transparent
    );
    transform-origin: top center;
}

.pt-scene-transition-halo {
    top: -148%;
    left: 50%;
    width: min(74vw, 1080px);
    aspect-ratio: 3.7 / 1;
    opacity: 0;
    background: radial-gradient(
        ellipse,
        rgba(var(--pt-scene-accent), .34),
        rgba(var(--pt-scene-accent), .08) 42%,
        transparent 72%
    );
    filter: blur(23px);
    transform: translateX(-50%);
}

.pt-scene-transition-current {
    top: -24px;
    left: 50%;
    width: min(92vw, 1520px);
    height: 86px;
    opacity: 0;
    border-radius: 0 0 50% 50%;
    background: linear-gradient(
        100deg,
        transparent 7%,
        rgba(var(--pt-scene-accent), .04) 24%,
        rgba(var(--pt-scene-accent), .25) 48%,
        rgba(255, 255, 255, .11) 55%,
        rgba(var(--pt-scene-accent), .05) 77%,
        transparent 94%
    );
    filter: blur(8px);
    transform: translateX(-50%);
    transform-origin: center;
}

.pt-scene-transition-line {
    top: 0;
    right: max(24px, calc((100vw - 1380px) / 2));
    left: max(24px, calc((100vw - 1380px) / 2));
    height: 1px;
    opacity: 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(var(--pt-scene-accent), .94) 24%,
        rgba(255, 255, 255, .82) 50%,
        rgba(var(--pt-scene-accent), .94) 76%,
        transparent
    );
    box-shadow: 0 0 20px rgba(var(--pt-scene-accent), .68);
    transform: scaleX(0);
    transform-origin: center;
}

.pt-scene-transition-drop {
    top: -3px;
    left: 50%;
    width: 8px;
    height: 8px;
    opacity: 0;
    border: 1px solid rgba(255, 255, 255, .82);
    border-radius: 50%;
    background: rgb(var(--pt-scene-accent));
    box-shadow:
        0 0 0 7px rgba(var(--pt-scene-accent), .1),
        0 0 24px rgba(var(--pt-scene-accent), .95);
}

.pt-scene-transition-signature {
    display: none;
}

/* Information and media react as parts of the same system. */

.pt-cinematic-parallax {
    will-change: transform;
}

.pt-cinematic-enabled .pt-kicker,
.pt-cinematic-enabled .pt-paths-eyebrow,
.pt-cinematic-enabled .pt-hero-kicker {
    position: relative;
    display: table;
}

.pt-cinematic-enabled .pt-kicker::after,
.pt-cinematic-enabled .pt-paths-eyebrow::after,
.pt-cinematic-enabled .pt-hero-kicker::after {
    position: absolute;
    top: 50%;
    left: calc(100% + 16px);
    width: 34px;
    height: 1px;
    content: "";
    opacity: .42;
    background: rgb(var(--pt-scene-accent));
    box-shadow: 0 0 12px rgba(var(--pt-scene-accent), .68);
    transform: scaleX(.35);
    transform-origin: left center;
    transition:
        opacity .45s ease,
        transform .8s var(--pt-organic-ease);
}

.pt-cinematic-enabled .is-scene-current .pt-kicker::after,
.pt-cinematic-enabled .is-scene-current .pt-paths-eyebrow::after,
.pt-cinematic-enabled .is-scene-current .pt-hero-kicker::after {
    opacity: .94;
    transform: scaleX(1);
}

@media (min-width: 992px) {
    .pt-cinematic-enabled .pt-paths-stage.has-active .pt-path {
        flex-grow: .84;
    }

    .pt-cinematic-enabled .pt-path-details {
        max-height: 180px;
        margin-top: 18px;
        opacity: .7;
        transform: translateY(0);
    }

    .pt-cinematic-enabled .pt-path.is-active .pt-path-details,
    .pt-cinematic-enabled .pt-path:hover .pt-path-details,
    .pt-cinematic-enabled .pt-path:focus-visible .pt-path-details {
        opacity: 1;
    }
}

.pt-cinematic-enabled .pt-path::after,
.pt-cinematic-enabled .pt-public-proof-card::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    content: "";
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(var(--pt-scene-accent), .88),
        transparent
    );
    box-shadow: 0 0 18px rgba(var(--pt-scene-accent), .54);
    transform: scaleX(.2);
    transition:
        opacity .35s ease,
        transform .65s var(--pt-organic-ease);
}

.pt-cinematic-enabled .pt-path:hover::after,
.pt-cinematic-enabled .pt-path:focus-visible::after,
.pt-cinematic-enabled .pt-path.is-active::after,
.pt-cinematic-enabled .pt-public-proof-card:hover::after,
.pt-cinematic-enabled .pt-public-proof-card:focus-visible::after {
    opacity: 1;
    transform: scaleX(1);
}

.pt-cinematic-enabled .pt-public-proof-card {
    position: relative;
    overflow: hidden;
}

.pt-cinematic-enabled .pt-real-map-stage {
    transition:
        border-color .65s ease,
        box-shadow .8s var(--pt-organic-ease),
        transform .8s var(--pt-organic-ease);
}

.pt-cinematic-enabled .pt-world-map-section.is-scene-current
    .pt-real-map-stage {
    border-color: rgba(var(--pt-scene-accent), .38);
    box-shadow:
        inset 0 0 110px rgba(var(--pt-scene-accent), .075),
        0 40px 100px rgba(0, 0, 0, .31),
        0 0 42px rgba(var(--pt-scene-accent), .07);
}

.pt-story-index {
    position: absolute;
    top: 50%;
    right: 42px;
    z-index: 13;
    display: none;
    width: min(30vw, 390px);
    margin: 0;
    padding: 0;
    border-top: 1px solid rgba(255, 255, 255, .2);
    list-style: none;
    transform: translateY(-42%);
}

.pt-story-gallery.is-story-enhanced .pt-story-index {
    display: grid;
}

.pt-story-index-item {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    padding: 15px 0;
    opacity: .46;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
    color: rgba(246, 251, 252, .8);
    transition:
        opacity .38s ease,
        color .38s ease,
        padding .55s var(--pt-organic-ease),
        border-color .38s ease,
        background .38s ease;
}

.pt-story-index-number {
    color: rgb(var(--pt-scene-accent));
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;
}

.pt-story-index-content {
    display: grid;
    gap: 7px;
}

.pt-story-index-content strong {
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.05;
}

.pt-story-index-content small {
    color: rgba(237, 247, 249, .62);
    font-size: 12px;
    line-height: 1.45;
}

.pt-story-index-item.is-active {
    padding-right: 12px;
    padding-left: 12px;
    opacity: 1;
    border-color: rgba(var(--pt-scene-accent), .66);
    color: #fff;
    background: linear-gradient(
        90deg,
        rgba(var(--pt-scene-accent), .13),
        transparent
    );
}

.pt-cinematic-enabled .pt-story-scene-media img,
.pt-cinematic-enabled .pt-scene-video,
.pt-cinematic-enabled .pt-training-media img {
    filter:
        saturate(.86)
        contrast(1.03)
        brightness(.9);
    transition: filter 1.1s var(--pt-organic-ease);
}

.pt-cinematic-enabled .pt-hero-video,
.pt-cinematic-enabled .pt-scene-video {
    pointer-events: none;
}

.pt-cinematic-enabled .pt-hero-shade {
    pointer-events: auto;
}

.pt-cinematic-enabled .is-scene-current .pt-story-scene-media img,
.pt-cinematic-enabled .pt-show-scene.is-scene-current .pt-scene-video,
.pt-cinematic-enabled .pt-training-scene.is-scene-current
    .pt-training-media img {
    filter:
        saturate(1.03)
        contrast(1.04)
        brightness(.98);
}

/* User motion control */

.pt-motion-control {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 72;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: 9px;
    padding: 0 13px;
    color: rgba(240, 250, 252, .78);
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 999px;
    background: rgba(2, 14, 22, .78);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .26);
    backdrop-filter: blur(16px);
    cursor: pointer;
    font: inherit;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    transition:
        color .25s ease,
        border-color .25s ease,
        background .25s ease;
}

.pt-motion-control:hover,
.pt-motion-control:focus-visible {
    color: #fff;
    border-color: rgba(var(--pt-active-accent), .58);
    background: rgba(3, 24, 34, .92);
}

.pt-motion-control-dot {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgb(var(--pt-active-accent));
    box-shadow: 0 0 13px rgba(var(--pt-active-accent), .9);
    animation: pt-motion-pulse 1.8s ease-in-out infinite alternate;
}

@keyframes pt-motion-pulse {
    to {
        opacity: .38;
        transform: scale(.7);
    }
}

.pt-motion-paused .pt-organic-field-core,
.pt-motion-paused .pt-organic-field::before,
.pt-motion-paused .pt-organic-field::after,
.pt-motion-paused .pt-motion-control-dot {
    animation-play-state: paused;
}

.pt-motion-paused .pt-motion-control-dot {
    opacity: .38;
    box-shadow: none;
}

.pt-motion-reduced .pt-motion-control {
    opacity: .68;
    cursor: default;
}

@media (min-width: 769px) {
    .pt-cinematic-enabled .pt-statement {
        min-height: 118vh;
        min-height: 118svh;
    }

    .pt-cinematic-enabled .pt-statement-media {
        position: absolute;
        inset: 0;
        height: 100%;
    }

    .pt-cinematic-enabled .pt-statement-content {
        position: sticky;
        inset: auto;
        top: 78px;
        min-height: calc(100vh - 78px);
        min-height: calc(100svh - 78px);
    }
}

@media (max-width: 1399px) {
    .pt-scene-rail {
        display: none;
    }

    .pt-scroll-hint {
        display: none;
    }

    .pt-motion-control {
        right: 13px;
        bottom: 13px;
        width: 38px;
        min-height: 38px;
        justify-content: center;
        padding: 0;
    }

    .pt-motion-control-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (min-width: 769px) and (min-height: 1100px) and (max-width: 1399px) {
    .pt-cinematic-enabled .pt-hero {
        height: min(calc(100vh - 78px), 1120px);
        height: min(calc(100svh - 78px), 1120px);
        min-height: 860px;
    }

    .pt-cinematic-enabled .pt-hero-video {
        object-position: 54% 42%;
    }
}

@media (max-width: 1100px) {
    .pt-scene-rail-label {
        display: none;
    }

    .pt-story-index-content small {
        display: none;
    }
}

@media (max-width: 991px) {
    .pt-story-gallery.is-story-enhanced .pt-story-index {
        display: none;
    }
}

@media (max-width: 768px) {
    .pt-cinematic-scene {
        scroll-margin-top: 68px;
    }

    .pt-organic-field {
        inset: -5% -25%;
        opacity: .1;
    }

    .pt-cinematic-scene.is-scene-current > .pt-organic-field {
        opacity: .46;
    }

    .pt-organic-field::before {
        width: 110vw;
    }

    .pt-organic-field::after {
        width: 96vw;
    }

    .pt-organic-field-core {
        width: 58vw;
    }

    .pt-scene-rail {
        right: 8px;
        min-height: min(42vh, 340px);
    }

    .pt-scene-rail-marker {
        width: 7px;
        height: 7px;
    }

    .pt-scene-rail-track,
    .pt-scene-rail-progress {
        left: 3px;
    }

    .pt-scene-transition {
        height: 64px;
    }

    .pt-scene-transition-halo {
        top: -100%;
        width: 118vw;
        filter: blur(18px);
    }

    .pt-scene-transition-current {
        width: 120vw;
    }

    .pt-scene-transition-line {
        right: 15px;
        left: 15px;
    }

    .pt-scene-transition-signature {
        top: 14px;
        left: 15px;
        font-size: 8px;
    }

    .pt-motion-control {
        right: 11px;
        bottom: 11px;
        width: 38px;
        min-height: 38px;
        justify-content: center;
        padding: 0;
    }

    .pt-motion-control-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pt-page-progress,
    .pt-scene-transition,
    .pt-organic-field {
        display: none;
    }

    .pt-cinematic-parallax {
        transform: none;
    }

    .pt-scene-rail-progress,
    .pt-scene-rail-marker,
    .pt-scene-rail-label,
    .pt-real-map-stage,
    .pt-story-scene-media img,
    .pt-scene-video,
    .pt-training-media img {
        transition: none;
    }
}
