/* OpenAI Sora presentation: source-led, responsive landing page */
:root {
    color-scheme: dark;
    --white: #f6f7f7;
    --ink: #0a0b0c;
    --green: #00cf70;
    --soft-white: #d1d2d4;
    --ease-morph: cubic-bezier(.22, .68, 0, 1);
    --trans: 1250ms;
    --page-x: clamp(22px, 5.3vw, 104px);
    --bg: #080a0a;
    --accent: #00c66b;
    --card-bg: rgba(87, 88, 88, .66);
    --inactive-text: rgba(255, 255, 255, .19);
    --card-step: clamp(176px, 22.85vh, 258px);
    --card-height: clamp(148px, 17.75vh, 203px);
    --speed: 750ms;
    --ease: cubic-bezier(.22, 1, .35, 1);
}

#rail-track, .page-controls, #scroll-hint {
    display: none !important;
}

* {
    box-sizing: border-box;
}

html {
    height: 100%;
    background: #090a0d;
    scroll-behavior: auto;
}

body {
    margin: 0;
    height: 100%;
    overflow: hidden;
    background: #090a0d;
    color: var(--white);
    font-family: Arial, Helvetica, sans-serif;
    -webkit-font-smoothing: antialiased;
}

button {
    color: inherit;
    font: inherit;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: 5px;
}

img, video {
    display: block;
    max-width: 100%;
}

.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.presentation, .screen {
    position: fixed;
    width: 100%;
    height: 100%;
    height: 100dvh;
    inset: 0;
}

.presentation {
    isolation: isolate;
    overflow: hidden;
}

.screen {
    z-index: 0;
    visibility: hidden;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transform: translate3d(0, 8%, 0) scale(1.024);
    transition: opacity var(--trans) var(--ease-morph), transform var(--trans) var(--ease-morph), visibility 0s linear var(--trans);
    will-change: transform, opacity;
}

.screen.is-active {
    z-index: 2;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0, 0, 0) scale(1);
    transition: opacity var(--trans) var(--ease-morph), transform var(--trans) var(--ease-morph), visibility 0s;
}

.screen.is-before {
    transform: translate3d(0, -9%, 0) scale(.98);
}

.screen.is-after {
    transform: translate3d(0, 9%, 0) scale(1.025);
}

.screen.is-exiting {
    z-index: 1;
    visibility: visible;
    transition: opacity var(--trans) var(--ease-morph), transform var(--trans) var(--ease-morph), visibility 0s linear var(--trans);
}

.textured-bg {
    position: absolute;
    inset: -5%;
    background: radial-gradient(circle at 84% 26%, rgba(120, 120, 120, .14), transparent 55%), linear-gradient(100deg, rgba(0, 0, 0, .86), rgba(16, 16, 18, .80) 60%, rgba(25, 25, 28, .86)), url('assets/image1.webp') center /cover no-repeat;
}

.textured-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, .4), transparent 72%);
}

.brand {
    display: flex;
    align-items: center;
    gap: .15em;
    text-align: left;
}

.brand--name {
    position: relative;
    letter-spacing: 1px;
}

.brand h1 {
    margin: 0;
    font-size: 0.8em;
    font-family: "Google Sans Flex", sans-serif;
}

.brand img {
    width: 1.05em;
    height: 1.05em;
    object-fit: contain;
}

.brand span:last-child {
    font-weight: 300;
    letter-spacing: -.04em;
}

.eyebrow {
    font-size: clamp(11px, 1.1vw, 17px);
    font-weight: 800;
    letter-spacing: .21em;
}

/* Opening sequence, matched to the supplied film. */
.screen--light {
    background: #d9d9d9;
    color: #949494;
}

.splash-light-bg {
    position: absolute;
    inset: 0;
    background: #d9d9d9;
}

.splash-mark, .orbital-brand {
    position: absolute;
    left: 50%;
    top: 50%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    display: grid;
    place-items: center;
}

.splash-mark {
    width: 40.45vmin;
    border-radius: 50%;
    background: #c3c3c3;
}

.emblem-petals {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.emblem-center {
    position: relative;
    width: 56%;
    aspect-ratio: 1;
    border: max(2px, .65vmin) solid currentColor;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: #c3c3c3;
}

.emblem-center img {
    width: 65%;
    height: 65%;
    object-fit: contain;
}

.splash-mark .emblem-center {
    background: #d9d9d9;
}

.splash-mark .emblem-center img {
    filter: brightness(0);
    opacity: .27;
}

.intro-advance {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background: transparent;
    border: 0;
    cursor: pointer;
}

.intro-advance:focus-visible {
    outline: 2px solid #888;
    outline-offset: -8px;
}

.screen--logo {
    background: #0b0b0b;
}

.contact-layout {
    position: relative;
    z-index: 3;
}

.logo-disc {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 145vmin;
    aspect-ratio: 1;
    border-radius: 50%;
    overflow: hidden;
    transform: translate(-50%, -50%);
}

.logo-disc .textured-bg {
    inset: 0;
    background: linear-gradient(#191919dd, #191919dd), url('assets/image1.webp') center/cover;
    filter: grayscale(1);
}

.orbital-brand {
    width: 95vmin;
    color: #737373;
}

.orbital-brand .emblem-center {
    width: 61%;
    border-width: 1.15vmin;
    background: #000;
    color: #999;
}

.orbital-brand .emblem-center img {
    width: 64%;
    height: 64%;
}

.screen--logo.is-active .emblem-petals {
    animation: emblem-turn 1.25s var(--ease-morph) both;
}

@keyframes emblem-turn {
    from {
        transform: rotate(-18deg) scale(.9);
    }
    to {
        transform: rotate(0) scale(1);
    }
}

.screen--intro {
    background: #181818;
}

.screen--intro .textured-bg {
    inset: 0;
    background: linear-gradient(90deg, #111b 0%, #191919e3 48%, #242424db), url('assets/image1.webp') center/cover;
    filter: grayscale(1);
}

.intro-green-glow {
    position: absolute;
    left: -12%;
    top: -8%;
    width: 55%;
    height: 116%;
    background: radial-gradient(ellipse at 45% 50%, #174000a0, transparent 65%);
}

.intro-robot {
    position: absolute;
    left: 0;
    bottom: 0;
    height: 100%;
    width: 50%;
    object-fit: contain;
    object-position: left bottom;
    transform: translateX(-4%);
    transition: transform 1.25s var(--ease-morph);
}

.screen--intro.is-active .intro-robot {
    transform: translateX(0);
}

.intro-content {
    position: absolute;
    left: 45%;
    width: 39%;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.brand--intro {
    font-size: 2.7vw;
    color: #b3b3b3;
    gap: 1.4vw;
    margin-bottom: 4.2vh;
    line-height: 1;
}

.brand--intro img {
    width: 7.8vw;
    height: 7.8vw;
    opacity: .72;
}

.brand--intro span:last-child {
    letter-spacing: -.045em;
    font-weight: 400;
}

.intro-eyebrow {
    width: 88.5%;
    padding: 1.9vh .5em;
    background: #ffffff20;
    border: 1px solid #ffffff05;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 700;
    letter-spacing: 0;
    font-size: 2.0vw;
    line-height: 1;
}

.intro-title {
    font-size: 2.5vw;
    line-height: 1;
    letter-spacing: 0;
    margin: 3.8vh 0 0;
    font-weight: 700;
}

.intro-subtitle {
    font-size: 1.5vw;
    font-weight: 400;
    line-height: 1.2;
    margin: 1.9vh 0 0;
}

body.opening-sequence .rail-nav, body.opening-sequence .page-controls, body.opening-sequence .scroll-hint, body.opening-sequence .mobile-progress {
    opacity: 0;
    pointer-events: none;
}

body.opening-sequence .page-controls:focus-within, body.opening-sequence .rail-nav:focus-within {
    opacity: 1;
    pointer-events: auto;
}

.screen--intro.is-active .brand--intro {
    animation: intro-wordmark 1.1s var(--ease-morph) both;
}

.screen--intro.is-active .intro-eyebrow {
    animation: intro-copy .7s .45s both;
}

.screen--intro.is-active .intro-title {
    animation: intro-copy .7s .65s both;
}

.screen--intro.is-active .intro-subtitle {
    animation: intro-copy .7s .85s both;
}

@keyframes intro-wordmark {
    from {
        opacity: 0;
        transform: translateX(12%);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes intro-copy {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Slide 04 */
.textured-bg--about {
    background: linear-gradient(100deg, rgba(0, 0, 0, .78), rgba(0, 0, 0, .56) 54%, rgba(0, 0, 0, .75)), url('assets/image1.webp') center/cover no-repeat;
}

.screen--about::before {
    position: absolute;
    content: "";
    top: -20%;
    left: -10%;
    height: 145%;
    width: 65%;
    background: radial-gradient(ellipse, rgba(8, 58, 34, .18), transparent 65%);
}

.about-content {
    position: relative;
    z-index: 1;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    padding: 40px 20px 65px;
    max-width: 950px;
    margin: 0 auto;
}

.about-logo {
    width: clamp(42px, 4vw, 72px);
    margin-bottom: clamp(15px, 2.5vh, 26px);
    filter: brightness(100);
}

.about-content .eyebrow {
    color: #babec0;
    margin-bottom: 12px;
}

.about-content h2 {
    font-size: clamp(23px, 3.3vw, 53px);
    line-height: 1.02;
    letter-spacing: .025em;
    margin: 0 0 22px;
    font-weight: 650;
}

.about-content h2 strong {
    display: inline;
    color: var(--white);
}

.about-content p {
    font-size: clamp(16px, 1.55vw, 25px);
    line-height: 1.4;
    max-width: 710px;
    margin: 0 auto 28px;
    color: #e3e3e3;
}

/* Slide 05 */
.screen--showcase {
    background: #191a1c;
}

.screen--showcase .textured-bg {
    filter: grayscale(.8);
}

.showcase-ribbon {
    position: absolute;
    left: 0;
    right: 0;
    height: 27%;
    background: rgba(77, 77, 77, .79);
    display: grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    align-items: center;
    gap: clamp(12px, 3.2vw, 64px);
    padding: clamp(14px, 2.3vh, 26px) var(--page-x);
}

.showcase-ribbon--top {
    top: 0;
}

.showcase-ribbon--bottom {
    bottom: 0;
}

.showcase-thumb {
    padding: 0;
    background: #303030;
    border: 2px solid rgba(235, 235, 235, .32);
    overflow: hidden;
    border-radius: 7px;
    height: 100%;
    max-height: 175px;
    width: 100%;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .35);
    transition: transform .45s var(--ease-morph), border-color .45s, filter .45s;
}

.showcase-thumb img, .showcase-thumb video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.showcase-thumb:hover {
    transform: translateY(-7px) scale(1.025);
    border-color: #fff;
    filter: brightness(1.08);
}

.showcase-center {
    position: absolute;
    left: 0;
    right: 0;
    top: 27%;
    bottom: 27%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(14px, 2.8vw, 45px);
    padding: 0 var(--page-x);
    background: rgba(5, 5, 6, .28);
}

.showcase-text {
    font-size: clamp(32px, 6vw, 105px);
    font-weight: 800;
    letter-spacing: -.02em;
    color: #c4c3c6;
    white-space: nowrap;
    line-height: 1;
}

.showcase-logo {
    width: clamp(56px, 12vw, 180px);
    max-height: 68%;
    object-fit: contain;
}

.showcase-invite {
    position: absolute;
    top: calc(73% - 28px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    border: 1px solid #888;
    background: rgba(5, 5, 5, .82);
    border-radius: 28px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .18em;
    padding: 12px 22px;
    display: flex;
    align-items: center;
    gap: 15px;
    opacity: 0;
    transition: opacity .3s;
    background-color: 0.3s;
    white-space: nowrap;
}

.screen--showcase:hover .showcase-invite, .showcase-invite:focus-visible {
    opacity: 1;
}

/* On-scroll entrances recreate PPT morph/fade/wipe behavior. */
.screen .intro-content, .screen .about-content, .screen .showcase-center {
    opacity: 0;
    transition: opacity .75s ease, transform 1.05s var(--ease-morph);
}

.screen .intro-content {
    transform: translateY(calc(-50% + 26px));
}

.screen .about-content {
    transform: translateY(26px);
}

.screen .showcase-center {
    transform: scale(.90);
}

.screen.is-active .intro-content {
    transform: translateY(-50%);
    opacity: 1;
    transition-delay: .18s;
}

.screen.is-active .about-content {
    transform: translateY(0);
    opacity: 1;
    transition-delay: .22s;
}

.screen.is-active .showcase-center {
    transform: scale(1);
    opacity: 1;
    transition-delay: .1s;
}

.screen .showcase-ribbon {
    opacity: 0;
    transition: transform 1s var(--ease-morph), opacity .75s;
}

.screen .showcase-ribbon--top {
    transform: translateY(-35px);
}

.screen .showcase-ribbon--bottom {
    transform: translateY(35px);
}

.screen.is-active .showcase-ribbon {
    opacity: 1;
    transform: translateY(0);
    transition-delay: .18s;
}

/* Shared controls */
.rail-nav {
    position: fixed;
    right: clamp(12px, 2.2vw, 36px);
    top: 50%;
    transform: translateY(-50%);
    z-index: 30;
}

.rail-track {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.rail-dot {
    position: relative;
    width: 13px;
    height: 13px;
    border: 0;
    background: transparent;
    padding: 0;
    display: grid;
    place-items: center;
}

.rail-dot::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(220, 220, 220, .55);
    transition: width .35s, height .35s, background .35s, box-shadow .35s;
}

.rail-dot.is-current::before {
    width: 9px;
    height: 9px;
    background: var(--green);
    box-shadow: 0 0 0 4px rgba(0, 207, 112, .13);
}

.rail-dot[aria-label]:hover::before {
    width: 9px;
    height: 9px;
    background: #fff;
}

.rail-nav.on-light .rail-dot:not(.is-current)::before {
    background: #777;
}

.page-controls {
    position: fixed;
    z-index: 30;
    bottom: clamp(18px, 3.2vh, 37px);
    left: var(--page-x);
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 11px;
    letter-spacing: .09em;
    color: rgba(255, 255, 255, .78);
}

.page-controls.on-light {
    color: rgba(0, 0, 0, .52);
}

.nav-arrow {
    border: 1px solid currentColor;
    background: rgba(40, 40, 40, .05);
    width: 37px;
    height: 37px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 20px;
    transition: background .3s, opacity .3s;
}

.nav-arrow:hover:not(:disabled) {
    background: rgba(255, 255, 255, .15);
}

.nav-arrow:disabled {
    opacity: .2;
    cursor: default;
}

.number-separator {
    opacity: .45;
    padding: 0 5px;
}

.scroll-hint {
    position: fixed;
    right: clamp(55px, 6vw, 100px);
    bottom: clamp(20px, 3.2vh, 38px);
    z-index: 30;
    display: flex;
    align-items: center;
    gap: 13px;
    letter-spacing: .2em;
    font-size: 9px;
    font-weight: 700;
    color: rgba(255, 255, 255, .46);
    pointer-events: none;
    transition: opacity .3s;
}

.scroll-hint.on-light {
    color: #6e6e6e;
}

.scroll-hint.is-hidden {
    opacity: 0;
}

.scroll-line {
    display: block;
    width: 34px;
    height: 1px;
    background: currentColor;
}

.mobile-progress {
    display: none;
}

@keyframes spin {
    to {
        rotate: 360deg;
    }
}

@keyframes orbital {
    to {
        transform: rotate(188deg);
    }
}

@media (max-width: 980px) {
    :root {
        --page-x: clamp(18px, 4vw, 36px);
    }

    .intro-robot {
        left: -8%;
        height: 109%;
        width: 56%;
    }

    .intro-content {
        left: 44%;
        width: 54%;
    }

    .prompt-card {
        font-size: clamp(12px, 1.55vw, 16px);
    }

    .showcase-ribbon {
        gap: 15px;
    }

    .showcase-text {
        font-size: clamp(28px, 6.1vw, 66px);
    }
}

@media (max-width: 700px) and (orientation: portrait) {
    .screen--intro .textured-bg {
        opacity: .6;
    }

    .intro-robot {
        left: -15%;
        bottom: 20%;
        height: 72%;
        width: 100%;
        opacity: .48;
        object-position: left bottom;
        filter: drop-shadow(0 0 15px rgba(10, 82, 41, .2));
    }

    .intro-green-glow {
        width: 100%;
    }

    .intro-content {
        left: 5%;
        width: 90%;
        top: 57%;
        z-index: 1;
        padding: 16px 8px;
        border-radius: 22px;
    }

    .brand--intro {
        font-size: clamp(32px, 8vw, 52px);
        margin-bottom: 19px;
    }

    .intro-eyebrow {
        width: min(82%, 350px);
        font-size: 17px;
    }

    .intro-title {
        font-size: clamp(88px, 19vw, 142px);
    }

    .intro-subtitle {
        font-size: clamp(15px, 4vw, 23px);
        white-space: normal;
    }

    .about-content h2 {
        font-size: clamp(28px, 12vw, 28px);
    }

    .about-content p {
        font-size: clamp(16px, 4vw, 20px);
    }

    .showcase-ribbon {
        height: 25%;
        padding: 15px 12px;
        gap: 8px;
    }

    .showcase-ribbon .showcase-thumb {
        max-height: 130px;
    }

    .showcase-ribbon--top {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .showcase-ribbon--bottom {
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .showcase-ribbon .showcase-thumb:nth-child(n+3) {
        display: none;
    }

    .showcase-center {
        top: 25%;
        bottom: 25%;
        gap: 2vw;
        padding: 0 12px;
    }

    .showcase-text {
        font-size: clamp(25px, 8vw, 50px);
    }

    .showcase-logo {
        width: clamp(45px, 15vw, 90px);
    }

    .showcase-invite {
        top: calc(75% - 17px);
        opacity: 1;
        font-size: 9px;
    }

    .prompt-card {
        min-height: 0;
        padding: clamp(9px, 1.4vh, 13px) 13px clamp(9px, 1.4vh, 13px) 21px;
        font-size: clamp(11px, 3vw, 15px);
        line-height: 1.24;
        border-radius: 6px;
    }

    .prompt-card::before {
        width: 5px;
        border-radius: 6px;
    }

    .rail-nav {
        right: 7px;
    }

    .rail-track {
        gap: 6px;
    }

    .scroll-hint {
        display: none;
    }

    .page-controls {
        bottom: calc(18px + env(safe-area-inset-bottom));
        left: clamp(18px, 5vw, 30px);
    }

    .mobile-progress {
        display: block;
        position: fixed;
        z-index: 30;
        bottom: 0;
        left: 0;
        right: 0;
        height: 3px;
        background: rgba(255, 255, 255, .15);
    }

    .mobile-progress span {
        display: block;
        height: 100%;
        width: 11.111%;
        background: var(--green);
        transition: width .7s var(--ease-morph);
    }
}

@media (max-width: 700px) and (orientation: portrait) and (max-height: 700px) {

    .prompt-card {
        font-size: 11px;
        padding: 7px 12px 7px 18px;
    }

    .page-controls {
        bottom: 10px;
    }

    .nav-arrow {
        height: 31px;
        width: 31px;
    }
}

@media (max-width: 700px) and (orientation: landscape) {
    .intro-robot {
        height: 120%;
        width: 48%;
    }

    .prompt-card {
        min-height: 0;
        font-size: clamp(9px, 1.9vw, 12px);
        padding: 9px 10px 9px 18px;
    }

    .prompt-card::before {
        width: 5px;
    }

    .page-controls {
        bottom: 7px;
    }

    .scroll-hint {
        display: none;
    }

    .nav-arrow {
        width: 28px;
        height: 28px;
        font-size: 16px;
    }

    .showcase-ribbon {
        height: 26%;
        padding: 8px 25px;
    }

    .showcase-center {
        top: 26%;
        bottom: 26%;
    }
}

@media (max-width: 430px) {
    .showcase-ribbon {
        height: 24%;
    }

    .showcase-center {
        top: 24%;
        bottom: 24%;
    }

    .showcase-text {
        font-size: 26px;
    }

    .showcase-logo {
        width: 43px;
    }

    .showcase-invite {
        top: calc(76% - 17px);
    }

    .rail-nav {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

@media (max-width: 980px) and (min-width: 701px) {
    .intro-robot {
        left: 0;
        height: 100%;
        width: 38%;
    }

    .intro-content {
        left: 45%;
        width: 39%;
    }
}

@media (max-width: 700px) and (orientation: portrait) {
    .splash-mark {
        width: 46vmin;
    }

    .orbital-brand {
        width: 96vmin;
    }

    .logo-disc {
        width: 155vmin;
    }

    .intro-robot {
        left: -8%;
        bottom: 0;
        width: 80%;
        height: 100%;
        opacity: .55;
        object-position: left bottom;
    }

    .intro-content {
        left: 9%;
        width: 82%;
        top: 48%;
        padding: 0;
    }

    .brand--intro {
        font-size: 9vw;
        gap: 3vw;
        margin-bottom: 5vh;
    }

    .brand--intro img {
        width: 14vw;
        height: 14vw;
    }

    .intro-eyebrow {
        width: 88%;
        font-size: 5vw;
        padding: 1.5vh .5em;
    }

    .intro-title {
        font-size: 8vw;
        margin-top: 3vh;
    }

    .intro-subtitle {
        font-size: 5vw;
        /*white-space: nowrap;*/
        margin-top: 3vh;
    }
}

@media (max-width: 700px) and (orientation: landscape) {
    .intro-robot {
        left: 0;
        bottom: 0;
        height: 100%;
        width: 38%;
    }
}

/* A single persistent emblem provides the continuous PowerPoint-style morph.
   It is never replaced during the opening transitions. */
#start, #next, #introducing {
    transform: none;
    transition: opacity 1250ms cubic-bezier(.4, 0, .2, 1), visibility 0s linear 1250ms;
}

#start.is-active, #next.is-active, #introducing.is-active {
    transform: none;
    transition: opacity 1250ms cubic-bezier(.4, 0, .2, 1), visibility 0s;
}

#start .splash-mark, #next .orbital-brand {
    visibility: hidden;
}

.opening-emblem {
    position: fixed;
    z-index: 10;
    pointer-events: none;
    left: 50%;
    top: 50%;
    width: 40.45vmin;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    color: #949494;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #c3c3c3;
    transition: width 1250ms cubic-bezier(.4, 0, .2, 1), left 1250ms cubic-bezier(.4, 0, .2, 1), top 1250ms cubic-bezier(.4, 0, .2, 1), background 1250ms, color 1250ms, opacity 600ms;
}

.opening-emblem .emblem-petals {
    transition: transform 1250ms cubic-bezier(.4, 0, .2, 1), opacity 700ms;
}

.opening-emblem .emblem-center {
    width: 56%;
    background: #d9d9d9;
    border-color: #949494;
    transition: width 1250ms, background 1250ms, border-color 1250ms, border-width 1250ms;
}

.opening-emblem .emblem-center img {
    filter: brightness(0);
    opacity: .27;
    transition: filter 1250ms, opacity 1250ms, width 1250ms, height 1250ms;
}

body[data-opening-step="1"] .opening-emblem {
    width: 95vmin;
    background: transparent;
    color: #737373;
}

body[data-opening-step="1"] .opening-emblem .emblem-petals {
    transform: rotate(15deg);
}

body[data-opening-step="1"] .opening-emblem .emblem-center {
    width: 61%;
    background: #000;
    border-color: #999;
    border-width: 1.15vmin;
}

body[data-opening-step="1"] .opening-emblem .emblem-center img {
    filter: brightness(1);
    opacity: 1;
}

body[data-opening-step="2"] .opening-emblem {
    left: 54.2%;
    top: 29%;
    width: 7.8vw;
    background: transparent;
}

body[data-opening-step="2"] .opening-emblem .emblem-petals {
    transform: rotate(60deg);
    opacity: 0;
}

body[data-opening-step="2"] .opening-emblem .emblem-center {
    width: 100%;
    border-width: 0;
    border-color: transparent;
    background: transparent;
}

body[data-opening-step="2"] .opening-emblem .emblem-center img {
    width: 100%;
    height: 100%;
    filter: brightness(1);
    opacity: .72;
}

body[data-opening-step="3"] .opening-emblem {
    opacity: 0;
}

#introducing .brand--intro img {
    /*visibility: hidden;*/
}

#introducing .intro-content, #introducing.is-active .intro-content {
    opacity: 1;
    transform: translateY(-50%);
    transition: none;
}

#introducing .brand--intro {
    animation: none;
}

#introducing .brand--intro span {
    opacity: 0;
    transform: translateX(35%);
    transition: opacity .65s .55s, transform 1.25s cubic-bezier(.4, 0, .2, 1);
}

#introducing.is-active .brand--intro span {
    opacity: 1;
    transform: translateX(0);
}

#introducing .intro-robot {
    transform: translateX(-25%);
    opacity: 0;
    transition: transform 1250ms cubic-bezier(.4, 0, .2, 1), opacity 950ms;
}

#introducing.is-active .intro-robot {
    transform: translateX(0);
    opacity: 1;
}

#introducing.is-active .intro-eyebrow {
    animation: intro-copy .6s .9s both;
}

#introducing.is-active .intro-title {
    animation: intro-copy .6s 1.1s both;
}

#introducing.is-active .intro-subtitle {
    animation: intro-copy .6s 1.3s both;
}

@media (max-width: 700px) and (orientation: portrait) {
    .opening-emblem {
        width: 46vmin;
    }

    body[data-opening-step="2"] .opening-emblem {
        left: 29%;
        top: 28%;
        width: 14vw;
    }

    #introducing.is-active .intro-robot {
        opacity: .55;
    }
}

/* Anchor the final morph position to the film's title composition. */
@media (min-width: 701px), (orientation: landscape) {
    #introducing .intro-content, #introducing.is-active .intro-content {
        top: 0;
        height: 100%;
        transform: none;
    }

    #introducing .brand--intro {
        position: absolute;
        left: 13%;
        top: 22.3%;
        margin: 0;
    }

    #introducing .intro-eyebrow {
        position: absolute;
        top: 40.2%;
        height: 9%;
        display: grid;
        place-items: center;
    }

    #introducing .intro-title {
        position: absolute;
        top: 52.5%;
        margin: 0;
    }

    #introducing .intro-subtitle {
        position: absolute;
        top: 63.5%;
        margin: 0;
    }
}

/* Keep the paper texture as subdued as in the reference. */
.screen--intro .textured-bg {
    background: linear-gradient(90deg, #101010f2, #191919f0 48%, #202020ec), url('assets/image1.webp') center/cover;
}

[data-opening-step="2"] .opening-emblem img {
    visibility: hidden;
    transition: visibility 0s linear 1s;
}

/*car*/

.carousel--section button,
.carousel--section a {
    -webkit-tap-highlight-color: transparent;
}

.carousel--section button {
    font: inherit;
}

.carousel--section button:focus-visible, .carousel--section a:focus-visible, .carousel--section .carousel:focus-visible {
    outline: 3px solid #83ddbb;
    outline-offset: 5px;
}

.carousel--section .sr-only {
    position: absolute !important;
    height: 1px;
    width: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.carousel--section .app-shell {
    position: relative;
    isolation: isolate;
    min-height: 100svh;
    min-height: 100vh;
    overflow: hidden;
    background: radial-gradient(ellipse 58% 45% at 63% 47%, rgba(41, 55, 47, .13) 0%, transparent 77%),
    radial-gradient(ellipse 54% 75% at 94% 31%, rgba(45, 44, 45, .28) 0%, transparent 84%),
    linear-gradient(110deg, #020303 0%, #090b0b 40%, #161818 100%);
}

.carousel--section .background-noise {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image: url("assets/bg.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: .45;
    mix-blend-mode: screen;
}

.carousel--section .ambient-glow {
    position: absolute;
    top: 28%;
    left: 45%;
    width: 15vw;
    height: 27vh;
    z-index: 0;
    background: radial-gradient(ellipse at center, rgba(0, 109, 58, .26), rgba(0, 49, 30, .10) 36%, transparent 73%);
    filter: blur(31px);
    pointer-events: none;
}

.carousel--section .brand {
    position: absolute;
    left: 7.75%;
    top: 10.8%;
    width: clamp(240px, 22.5vw, 450px);
    z-index: 7;
}

.carousel--section .brand a, .carousel--section .brand img {
    display: block;
    width: 100%;
}

.carousel--section .brand img {
    height: auto;
}

.carousel--section .carousel {
    position: relative;
    isolation: isolate;
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    outline-offset: -6px;
}

/* The left column holds prompt cards in a vertical stack. */
.carousel--section .prompts {
    position: absolute;
    left: 4.6%;
    top: 33.5%;
    width: 41.35%;
    height: 75%;
    z-index: 5;
    pointer-events: none;
}

.carousel--section .prompt-track {
    position: relative;
    width: 100%;
    height: 100%;
}

.carousel--section .prompt-card {
    --offset: 0;
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    width: 100%;
    height: var(--card-height);
    border: 0;
    border-radius: 13px;
    padding: 20px clamp(24px, 2.6vw, 52px) 20px clamp(45px, 2.8vw, 61px);
    text-align: left;
    background: var(--card-bg);
    color: var(--inactive-text);
    cursor: pointer;
    pointer-events: auto;
    transform: translate3d(0, calc(var(--offset) * var(--card-step)), 0);
    transition: transform var(--speed) var(--ease), opacity 500ms ease,
    background 400ms ease, color 400ms ease, box-shadow 400ms ease;
    overflow: hidden;
    will-change: transform;
}

.carousel--section .prompt-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: clamp(15px, 1.12vw, 24px);
    border-radius: 12px;
    background: rgba(128, 128, 128, .62);
    transition: background 450ms ease;
}

.carousel--section .prompt-card .prompt-copy {
    display: block;
    width: 100%;
    font-size: clamp(18px, 1.66vw, 34px);
    font-weight: 400;
    line-height: 1.19;
    letter-spacing: -.008em;
    transition: opacity 400ms ease;
}

.carousel--section .prompt-card[data-position="active"] {
    color: #fff;
    z-index: 4;
    box-shadow: 0 6px 28px rgba(0, 0, 0, .09);
}

.carousel--section .prompt-card[data-position="active"]::before {
    background: var(--accent);
}

.carousel--section .prompt-card[data-position="next"] {
    z-index: 3;
}

.carousel--section .prompt-card[data-position="future"] {
    z-index: 2;
}

.carousel--section .prompt-card[data-position="previous"] {
    background: transparent;
    box-shadow: none;
    z-index: 1;
}

.carousel--section .prompt-card[data-position="previous"] .prompt-copy {
    opacity: 0;
}

.carousel--section .prompt-card[data-position="hidden"] {
    opacity: 0;
    pointer-events: none;
}

.carousel--section .prompt-card:not([data-position="active"]):hover {
    color: rgba(255, 255, 255, .50);
}

/* Right-hand column: main image and two scaled image previews. */
.carousel--section .gallery {
    position: absolute;
    inset: 0 0 0 57.5%;
    z-index: 3;
    pointer-events: none;
}

.carousel--section .image-track {
    width: 100%;
    height: 100%;
    position: relative;
}

.carousel--section .image-card {
    position: absolute;
    width: 100%;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    display: block;
    padding: clamp(12px, 1vw, 19px);
    border: 0;
    border-radius: clamp(22px, 1.7vw, 34px);
    background: rgba(113, 113, 113, .60);
    box-shadow: 0 9px 40px rgba(0, 0, 0, .18);
    cursor: pointer;
    pointer-events: auto;
    overflow: hidden;
    transition: top var(--speed) var(--ease), left var(--speed) var(--ease),
    width var(--speed) var(--ease), transform var(--speed) var(--ease),
    opacity 500ms ease, background 500ms ease;
    will-change: top, left, width, transform;
}

.carousel--section .image-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1.96;
    height: auto;
    object-fit: cover;
    border-radius: clamp(12px, .8vw, 18px);
    user-select: none;
    -webkit-user-drag: none;
}

.carousel--section .image-card[data-position="active"] {
    z-index: 5;
}

.carousel--section .image-card[data-position="previous"] {
    top: 5.25%;
    left: 70%;
    width: 52%;
    transform: none;
    z-index: 3;
    opacity: .85;
}

.carousel--section .image-card[data-position="next"] {
    top: 73.1%;
    left: 70%;
    width: 52%;
    transform: none;
    z-index: 3;
    opacity: .88;
}

.carousel--section .image-card[data-position="hidden"] {
    opacity: 0;
    pointer-events: none;
    z-index: 0;
    transform: translate(30%, -50%) scale(.7);
}

.carousel--section .image-card[data-position="previous"]:hover,
.carousel--section .image-card[data-position="next"]:hover {
    opacity: 1;
}

.carousel--section .mobile-navigation {
    display: none;
}

/* Laptops and narrower desktops */
@media (min-width: 901px) and (max-height: 690px) {
    .carousel--section {
        --card-height: 22vh;
        --card-step: 25vh;
    }

    .carousel--section .brand {
        top: 5%;
        width: min(25vw, 330px);
    }

    .carousel--section .prompts {
        top: 31%;
    }

    .carousel--section .image-card[data-position="previous"] {
        top: 2%;
    }

    .carousel--section .image-card[data-position="next"] {
        top: 74%;
    }
}

/* Tablet & mobile: retain the mood without forcing desktop-sized panels. */
@media (max-width: 900px) {
    .carousel--section {
        --card-height: 122px;
        --card-step: 138px;
    }

    .carousel--section .app-shell {
        min-height: 100svh;
    }

    .carousel--section .carousel {
        min-height: 100svh;
    }

    .carousel--section .brand {
        left: 6%;
        top: 28px;
        width: clamp(194px, 34vw, 310px);
    }

    .carousel--section .prompts {
        left: 5%;
        top: 160px;
        width: calc(90% - 76px);
        height: 135px;
    }

    .carousel--section .prompt-card {
        padding: 18px 18px 18px 38px;
        border-radius: 11px;
    }

    .carousel--section .prompt-card::before {
        width: 13px;
    }

    .carousel--section .prompt-card .prompt-copy {
        font-size: clamp(17px, 2.8vw, 23px);
        line-height: 1.25;
    }

    .carousel--section .prompt-card[data-position="next"],
    .carousel--section .prompt-card[data-position="future"],
    .carousel--section .prompt-card[data-position="previous"] {
        opacity: 0;
        pointer-events: none;
    }

    .carousel--section .gallery {
        inset: 315px 4.5% 105px 4.5%;
    }

    .carousel--section .image-card {
        top: 46%;
        border-radius: 20px;
        padding: 10px;
        background: rgba(117, 117, 117, .56);
    }

    .carousel--section .image-card img {
        border-radius: 13px;
    }

    .carousel--section .image-card[data-position="previous"], .carousel--section .image-card[data-position="next"] {
        top: auto;
        bottom: 0;
        left: auto;
        width: 23%;
        transform: none;
        opacity: .66;
    }

    .carousel--section .image-card[data-position="previous"] {
        left: 0;
    }

    .carousel--section .image-card[data-position="next"] {
        right: 0;
    }

    .carousel--section .image-card[data-position="active"] {
        top: 43%;
    }

    .carousel--section .mobile-navigation {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 17px;
        position: absolute;
        left: 50%;
        bottom: 22px;
        transform: translateX(-50%);
        z-index: 8;
    }

    .carousel--section .mini-control {
        background: rgba(110, 110, 110, .25);
        color: white;
        border: 1px solid rgba(255, 255, 255, .15);
        border-radius: 50%;
        display: grid;
        place-items: center;
        cursor: pointer;
        width: 40px;
        height: 40px;
    }

    .carousel--section .mini-control svg {
        width: 21px;
        height: 21px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .carousel--section .slide-count {
        font: 500 13px/1 Arial, sans-serif;
        letter-spacing: .18em;
        white-space: nowrap;
    }
}

@media (max-width: 540px) {
    .carousel--section .app-shell {
        min-height: 720px;
        min-height: max(720px, 100svh);
    }

    .carousel--section .carousel {
        min-height: 720px;
        min-height: max(720px, 100svh);
    }

    .carousel--section .brand {
        width: 220px;
        top: 19px;
    }

    .carousel--section .prompts {
        top: 151px;
        width: calc(90% - 53px);
    }

    .carousel--section .prompt-card {
        height: 130px;
        padding-left: 30px;
        padding-right: 14px;
    }

    .carousel--section .prompt-card .prompt-copy {
        font-size: clamp(15px, 4.1vw, 20px);
    }

    .carousel--section .gallery {
        inset: 328px 4% 105px 4%;
    }

    .carousel--section .image-card[data-position="active"] {
        top: 35%;
    }

    .carousel--section .image-card[data-position="previous"],
    .carousel--section .image-card[data-position="next"] {
        width: 34%;
        bottom: 16%;
    }

    .carousel--section .image-card[data-position="previous"] {
        left: 8%;
    }

    .carousel--section .image-card[data-position="next"] {
        right: 8%;
    }

    .carousel--section .image-card[data-position="previous"] img,
    .carousel--section .image-card[data-position="next"] img {
        border-radius: 7px;
    }

    .carousel--section .image-card[data-position="previous"],
    .carousel--section .image-card[data-position="next"] {
        padding: 6px;
        border-radius: 11px;
    }

    @media (max-width: 700px) {
        .screen--contact {
            justify-content: safe center;
            overflow-y: auto;
            padding: 20px 22px;
        }

        .contact-layout {
            grid-template-columns: 1fr;
            gap: 26px;
            margin: auto;
        }

        .contact-details h2 {
            font-size: clamp(43px, 12vw, 60px);
            margin: 14px 0;
        }

        .contact-intro {
            font-size: 15px;
            margin-bottom: 0;
        }

        .contact-identity {
            margin-top: 20px;
        }

        .contact-region {
            margin-top: 12px;
        }

        .contact-footerline {
            margin-top: 24px;
            font-size: 10px;
        }
    }
}

/* Contact footer */
.screen--contact {
    display: flex;
    flex-direction: column;
    isolation: isolate;
    justify-content: center;
    align-items: center;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    padding: clamp(18px, 3vh, 36px) var(--page-x);
    gap: clamp(18px, 3vh, 28px);
    background:
            radial-gradient(ellipse at 14% 52%, rgba(0, 207, 112, .13), transparent 39%),
            linear-gradient(135deg, #080a0a 0%, #101514 55%, #080a0a 100%);
}

.screen--contact::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .12;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E");
}

.screen--contact > .textured-bg {
    z-index: 0;
    pointer-events: none;
}

.contact-layout {
    width: min(1120px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    align-items: center;
    gap: 24px clamp(32px, 6vw, 84px);
    position: relative;
    z-index: 1;
}

.contact-title {
    grid-column: 1 / -1;
    margin: 0;
    text-align: center;
    color: var(--white);
    font-size: clamp(42px, 6vw, 72px);
    line-height: 1;
    letter-spacing: -.06em;
    font-weight: 650;
}

.contact-details { text-align: left; }
.contact-details h3 {
    margin: 0 0 20px;
    font-size: clamp(36px, 4.5vw, 58px);
    line-height: .98;
    letter-spacing: -.065em;
    font-weight: 650;
}
.contact-intro {
    max-width: 430px;
    margin: 0;
    color: rgba(246, 247, 247, .68);
    font-size: clamp(16px, 1.55vw, 19px);
    line-height: 1.65;
}
.contact-identity {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 16px;
    margin-top: clamp(30px, 5vh, 52px);
}
.contact-identity img {
    width: 48px;
    height: 48px;
    object-fit: contain;
    filter: drop-shadow(0 0 16px rgba(0, 207, 112, .25));
}
.contact-identity strong, .contact-identity span { display: block; }
.contact-identity strong { font-size: 17px; margin-bottom: 5px; }
.contact-identity span { color: rgba(246, 247, 247, .58); font-size: 14px; line-height: 1.5; }
.contact-region { color: rgba(246, 247, 247, .72); margin: 23px 0 0; font-size: 14px; }
.contact-region span { color: var(--green); font-size: 20px; vertical-align: -2px; margin-right: 5px; }

.contact-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
    max-width: 680px;
    gap: 8px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .11);
    border-radius: 17px;
    background: rgba(255, 255, 255, .045);
    box-shadow: 0 24px 80px rgba(0, 0, 0, .26);
    backdrop-filter: blur(16px);
}
.contact-form h3 { margin: 0 0 7px; font-size: 20px; letter-spacing: -.03em; }
.contact-trap {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.contact-form label { color: rgba(246, 247, 247, .76); font-size: 13px; }
.contact-form input, .contact-form textarea {
    width: 100%;
    margin-bottom: 5px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 10px;
    background: rgba(0, 0, 0, .24);
    color: var(--white);
    font: inherit;
    outline: none;
    transition: border-color 180ms ease, background 180ms ease;
}
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--green); background: rgba(0, 0, 0, .4); }
.contact-form textarea { resize: vertical; min-height: 74px; }
.contact-submit {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-top: 5px;
    padding: 14px 17px;
    border: 0;
    border-radius: 10px;
    background: var(--green);
    color: #06120b;
    font-weight: 700;
    transition: transform 180ms ease, background 180ms ease;
}
.contact-submit:hover { transform: translateY(-2px); background: #1ce786; }
.contact-submit:disabled { opacity: .65; cursor: wait; }
.contact-submit span { font-size: 19px; }
.contact-note { margin: 2px 0 0; color: rgba(246, 247, 247, .48); font-size: 20px; line-height: 1.45; }
.contact-note.is-highlighted { color: #8ee8b7; }
.contact-footerline {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    width: min(1120px, 100%);
    margin: 0 auto;
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: rgba(246, 247, 247, .42);
    font-size: 12px;
    position: relative;
    z-index: 1;
}

@media (min-width: 900px) {
    .contact-layout {
        width: min(1120px, 100%);
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    }

    .contact-details {
        width: 100%;
    }
}

@media (max-width: 899px) {
    .contact-layout {
        width: min(680px, 100%);
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .contact-title { grid-column: 1; }
}



