/* =========================================================
   FLY ABOVE / ВЫШЕ ВОДЫ
   Isolated full-screen manifesto component
   ========================================================= */

.pt-flight-manifesto {
    --flight-header-height: 78px;
    --flight-white: #f7fbfc;
    --flight-cyan: #55e8ff;
    --flight-lime: #d8ff45;
    --flight-black: #020608;

    height: 190vh;
    position: relative;
    overflow: visible;
    background: var(--flight-black);
    color: var(--flight-white);
}

.pt-flight-sticky {
    height: calc(100vh - var(--flight-header-height));
    min-height: 620px;
    position: sticky;
    top: var(--flight-header-height);
    overflow: hidden;
    isolation: isolate;
    background: #020608;
}

.pt-flight-media,
.pt-flight-video,
.pt-flight-media-shade,
.pt-flight-water-light,
.pt-flight-grain {
    position: absolute;
    inset: 0;
}

.pt-flight-media {
    z-index: 1;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 72% 42%,
            rgba(30, 180, 215, 0.20),
            transparent 31%
        ),
        #020608;
}

.pt-flight-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 59% center;
    opacity: 0.84;
    filter:
        saturate(0.86)
        contrast(1.08)
        brightness(0.72);
    transform: scale(1.055);
    transform-origin: center center;
    will-change: transform, filter, opacity;
}

.pt-flight-media-shade {
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            rgba(1, 6, 9, 0.96) 0%,
            rgba(1, 6, 9, 0.80) 27%,
            rgba(1, 6, 9, 0.28) 58%,
            rgba(1, 6, 9, 0.10) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0, 5, 8, 0.10) 0%,
            transparent 52%,
            rgba(0, 5, 8, 0.68) 100%
        );
}

.pt-flight-water-light {
    z-index: 3;
    width: 78vw;
    height: 78vw;
    inset: auto -27vw -43vw auto;
    border-radius: 50%;
    pointer-events: none;
    opacity: 0.38;
    background:
        radial-gradient(
            circle,
            rgba(83, 232, 255, 0.36) 0%,
            rgba(83, 232, 255, 0.12) 28%,
            transparent 68%
        );
    filter: blur(30px);
    mix-blend-mode: screen;
    will-change: transform, opacity;
}

.pt-flight-grain {
    z-index: 4;
    pointer-events: none;
    opacity: 0.075;
    background-image:
        repeating-radial-gradient(
            circle at 0 0,
            rgba(255, 255, 255, 0.38) 0,
            rgba(255, 255, 255, 0.38) 0.5px,
            transparent 0.8px,
            transparent 3px
        );
    background-size: 4px 4px;
    mix-blend-mode: soft-light;
}

.pt-flight-content {
    min-height: 100%;
    position: relative;
    z-index: 8;
    display: flex;
    align-items: center;
    padding-top: clamp(50px, 8vh, 100px);
    padding-bottom: clamp(110px, 15vh, 170px);
}

.pt-flight-copy {
    width: min(62vw, 870px);
    position: relative;
}

.pt-flight-kicker {
    margin-bottom: clamp(25px, 4vh, 44px);
    color: var(--flight-lime);
    font-size: clamp(10px, 0.75vw, 13px);
    font-weight: 900;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.pt-flight-title {
    margin: 0;
    font-size: clamp(88px, 12.3vw, 210px);
    line-height: 0.72;
    letter-spacing: -0.085em;
    text-transform: uppercase;
}

.pt-flight-title-line {
    display: block;
    overflow: hidden;
    padding-right: 0.08em;
    padding-bottom: 0.08em;
}

.pt-flight-title-line > span {
    display: block;
    will-change: transform, opacity;
}

.pt-flight-title-outline > span {
    color: transparent;
    -webkit-text-stroke:
        clamp(1px, 0.095vw, 2px)
        rgba(247, 251, 252, 0.78);
    text-shadow:
        0 0 38px rgba(85, 232, 255, 0.06);
}

.pt-flight-role {
    margin: clamp(29px, 4.5vh, 50px) 0 0;
    color: rgba(247, 251, 252, 0.66);
    font-size: clamp(13px, 1vw, 17px);
    font-weight: 700;
    letter-spacing: 0.075em;
}

.pt-flight-trace {
    width: min(68vw, 990px);
    aspect-ratio: 1;
    position: absolute;
    z-index: 6;
    top: 50%;
    right: -9vw;
    pointer-events: none;
    opacity: 0.56;
    transform: translateY(-50%) rotate(-8deg);
}

.pt-flight-trace svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

.pt-flight-trace-circle {
    fill: none;
    stroke: rgba(85, 232, 255, 0.15);
    stroke-width: 1.25;
    stroke-dasharray: 5 12;
    transform-origin: center;
}

.pt-flight-trace-path {
    fill: none;
    stroke: url("#none");
    stroke: rgba(216, 255, 69, 0.56);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-dasharray: 1250;
    stroke-dashoffset: 1250;
    filter:
        drop-shadow(0 0 8px rgba(216, 255, 69, 0.28));
    will-change: stroke-dashoffset;
}

.pt-flight-counter {
    position: absolute;
    z-index: 9;
    top: 42px;
    right: clamp(25px, 4vw, 65px);
    display: flex;
    align-items: center;
    gap: 11px;
    color: rgba(247, 251, 252, 0.40);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.16em;
}

.pt-flight-counter i {
    width: 34px;
    height: 1px;
    display: block;
    background: rgba(247, 251, 252, 0.26);
}

.pt-flight-directions {
    position: absolute;
    z-index: 10;
    right: clamp(24px, 4vw, 68px);
    bottom: clamp(38px, 6vh, 70px);
    left: clamp(24px, 4vw, 68px);
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-top: 1px solid rgba(247, 251, 252, 0.19);
    border-bottom: 1px solid rgba(247, 251, 252, 0.12);
}

.pt-flight-directions a {
    min-height: 72px;
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 0 22px;
    color: rgba(247, 251, 252, 0.67);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    transition:
        color 0.25s ease,
        background 0.25s ease;
}

.pt-flight-directions a:not(:last-child) {
    border-right: 1px solid rgba(247, 251, 252, 0.12);
}

.pt-flight-directions a::after {
    content: "↗";
    margin-left: auto;
    color: rgba(247, 251, 252, 0.28);
    font-size: 14px;
    transition:
        color 0.25s ease,
        transform 0.25s ease;
}

.pt-flight-directions a:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.055);
}

.pt-flight-directions a:hover::after {
    color: var(--flight-lime);
    transform: translate(2px, -2px);
}

.pt-flight-directions a > span {
    color: var(--flight-cyan);
    font-size: 8px;
    letter-spacing: 0.12em;
}

.pt-flight-scroll-progress {
    width: min(340px, 31vw);
    height: 2px;
    position: absolute;
    z-index: 11;
    right: clamp(24px, 4vw, 68px);
    bottom: 16px;
    overflow: hidden;
    background: rgba(247, 251, 252, 0.14);
}

.pt-flight-scroll-progress span {
    width: 100%;
    height: 100%;
    display: block;
    background: var(--flight-lime);
    transform: scaleX(0);
    transform-origin: left center;
    will-change: transform;
}

/*
 * Следующий светлый раздел входит без искусственного
 * градиентного моста или отдельной пустой полосы.
 */
.pt-flight-manifesto + .pt-disciplines {
    position: relative;
    z-index: 12;
    margin-top: -1px;
}

/* Progressive enhancement: content remains visible without JS. */
.pt-flight-manifesto:not(.is-flight-ready)
.pt-flight-title-line > span,
.pt-flight-manifesto:not(.is-flight-ready)
.pt-flight-kicker,
.pt-flight-manifesto:not(.is-flight-ready)
.pt-flight-role,
.pt-flight-manifesto:not(.is-flight-ready)
.pt-flight-directions {
    opacity: 1;
    transform: none;
}

@media (max-width: 1100px) {
    .pt-flight-copy {
        width: min(70vw, 790px);
    }

    .pt-flight-title {
        font-size: clamp(84px, 13vw, 165px);
    }

    .pt-flight-trace {
        right: -21vw;
    }

    .pt-flight-directions a {
        padding: 0 15px;
        font-size: 9px;
    }
}

@media (max-width: 860px) {
    .pt-flight-manifesto {
        --flight-header-height: 68px;
        height: 170vh;
    }

    .pt-flight-sticky {
        min-height: 540px;
    }

    .pt-flight-video {
        object-position: 63% center;
        opacity: 0.76;
    }

    .pt-flight-media-shade {
        background:
            linear-gradient(
                180deg,
                rgba(1, 6, 9, 0.14) 0%,
                rgba(1, 6, 9, 0.24) 33%,
                rgba(1, 6, 9, 0.92) 79%,
                rgba(1, 6, 9, 0.98) 100%
            );
    }

    .pt-flight-content {
        align-items: flex-end;
        padding-top: 100px;
        padding-bottom: 176px;
    }

    .pt-flight-copy {
        width: 100%;
    }

    .pt-flight-title {
        font-size: clamp(68px, 19vw, 118px);
        line-height: 0.75;
    }

    .pt-flight-kicker {
        margin-bottom: 24px;
        font-size: 9px;
        letter-spacing: 0.19em;
    }

    .pt-flight-role {
        margin-top: 25px;
        font-size: 11px;
        line-height: 1.6;
    }

    .pt-flight-trace {
        width: 115vw;
        top: 29%;
        right: -48vw;
        opacity: 0.38;
    }

    .pt-flight-counter {
        top: 23px;
        right: 18px;
    }

    .pt-flight-directions {
        right: 14px;
        bottom: 35px;
        left: 14px;
        grid-template-columns: repeat(2, 1fr);
    }

    .pt-flight-directions a {
        min-height: 50px;
        padding: 0 11px;
        font-size: 8px;
    }

    .pt-flight-directions a:nth-child(2) {
        border-right: 0;
    }

    .pt-flight-directions a:nth-child(-n+2) {
        border-bottom: 1px solid rgba(247, 251, 252, 0.12);
    }

    .pt-flight-scroll-progress {
        right: 14px;
        bottom: 14px;
        width: 150px;
    }
}

@media (max-width: 520px) {
    .pt-flight-title {
        font-size: clamp(62px, 20vw, 94px);
    }

    .pt-flight-role {
        max-width: 310px;
    }

    .pt-flight-directions a::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pt-flight-manifesto {
        height: auto;
    }

    .pt-flight-sticky {
        height: auto;
        min-height: 88svh;
        position: relative;
        top: auto;
    }

    .pt-flight-video,
    .pt-flight-title-line > span,
    .pt-flight-kicker,
    .pt-flight-role,
    .pt-flight-directions,
    .pt-flight-water-light,
    .pt-flight-trace {
        opacity: 1 !important;
        transform: none !important;
        filter: none;
    }

    .pt-flight-trace-path {
        stroke-dashoffset: 0;
    }

    .pt-flight-scroll-progress {
        display: none;
    }
}
