/* Desktop finish: gallery, about, contact, members, Viper landing.
   Phone layout stays in styles.css and site-pages.css. */

@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main.flex-section {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding: 4.75rem max(2rem, calc((100% - 1180px) / 2)) 5rem;
        box-sizing: border-box;
        border: 0;
        border-radius: 0;
        background: #04161f;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-page-head,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-pills-row,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-grid,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .pagination {
        width: 100%;
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-page-head {
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-page-title {
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        color: #f7fbfc;
        font-size: clamp(3.5rem, 4.8vw, 5.6rem);
        letter-spacing: -0.05em;
        line-height: 0.92;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-page-head .eyebrow {
        color: #9ff7f0;
        letter-spacing: 0.18em;
        font-weight: 800;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-page-lead,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-social-strip {
        margin-left: 0;
        margin-right: 0;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-pills-row {
        justify-content: flex-start;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.35rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-item {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        overflow: hidden;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-item-frame {
        aspect-ratio: 4 / 3;
        overflow: hidden;
        border-radius: 0;
        background: #04161f;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-image {
        width: 100%;
        height: 100%;
        aspect-ratio: 4 / 3;
        object-fit: cover;
        display: block;
        border-radius: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-item:hover {
        transform: translateY(-8px);
        box-shadow:
            0 0 0 1px rgba(43, 212, 200, 0.75),
            0 28px 56px rgba(0, 0, 0, 0.45),
            0 0 32px rgba(43, 212, 200, 0.48);
    }

    /* About — one centred 1180 column, story beside the portrait */
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > section,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > .stats-strip {
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding: 4.75rem max(2rem, calc((100% - 1180px) / 2)) 5rem;
        box-sizing: border-box;
        border: 0;
        border-radius: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > section:nth-of-type(odd),
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > .stats-strip {
        background: #04161f;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > section:nth-of-type(even) {
        background: #082c3a;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-hero .prose-muted,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .section-head p {
        max-width: 42rem;
        margin-left: 0;
        margin-right: 0;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .section-head,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-tagline-inner.page-wide {
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
        text-align: left;
        box-sizing: border-box;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-hero h1,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block h2,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-tagline-lines {
        max-width: none;
        color: #f7fbfc;
        font-size: clamp(3.5rem, 4.8vw, 5.6rem);
        letter-spacing: -0.05em;
        line-height: 0.92;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .eyebrow,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-tagline-brand {
        color: #9ff7f0;
        letter-spacing: 0.18em;
        font-weight: 800;
        text-transform: uppercase;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > .about.page-wide {
        display: grid;
        grid-template-columns: minmax(280px, 440px) minmax(0, 1fr);
        align-items: center;
        justify-content: stretch;
        gap: 3.25rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-img-col,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-text {
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-img {
        width: 100%;
        max-width: 440px;
        height: auto;
        aspect-ratio: 4 / 5;
        object-fit: cover;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > .about-sections.page-wide {
        display: grid;
        gap: 1.5rem;
        justify-items: stretch;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block {
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        padding: 1.6rem 1.7rem 1.75rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block:hover {
        transform: translateY(-8px);
        box-shadow:
            0 0 0 1px rgba(43, 212, 200, 0.75),
            0 28px 56px rgba(0, 0, 0, 0.45),
            0 0 32px rgba(43, 212, 200, 0.48);
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > .stats-strip {
        display: flex;
        justify-content: space-between;
        gap: 2rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .stat-item {
        flex: 1 1 0;
        text-align: left;
    }
}

@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-item,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-item:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block:hover,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-tile-action:hover,
    body:not(.adminv2-page):not(.admin-auth-page) .members-steps-grid li:hover,
    body.viper-landing-page .viper-landing-card:hover,
    body.viper-landing-page .viper-landing-video-btn {
        transition: none;
        transform: none;
        animation: none;
    }
}

/* Contact, members, Viper — same centred 1180 column on desktop */
@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main.flex-section {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding: 4.75rem max(2rem, calc((100% - 1180px) / 2)) 5rem;
        box-sizing: border-box;
        border-radius: 0;
        background: #04161f;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .section-head,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .contact-tiles-grid,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .two-col-contact {
        width: 100%;
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        text-align: left;
        box-sizing: border-box;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main h1 {
        max-width: none;
        color: #f7fbfc;
        font-size: clamp(3.5rem, 4.8vw, 5.6rem);
        letter-spacing: -0.05em;
        line-height: 0.92;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .prose-muted {
        max-width: 42rem;
        margin-left: 0;
        margin-right: 0;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .two-col-contact {
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
        align-items: start;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid .contact-tile-action,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-info-card {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-page > section {
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding: 4.75rem max(2rem, calc((100% - 1180px) / 2)) 5rem;
        box-sizing: border-box;
        border-radius: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-page > section:nth-of-type(odd) {
        background: #04161f;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-page > section:nth-of-type(even) {
        background: #082c3a;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-hero-copy h1,
    body:not(.adminv2-page):not(.admin-auth-page) .members-page .service-cards-heading {
        max-width: none;
        color: #f7fbfc;
        font-size: clamp(3.5rem, 4.8vw, 5.6rem);
        letter-spacing: -0.05em;
        line-height: 0.92;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-page .eyebrow {
        color: #9ff7f0;
        letter-spacing: 0.18em;
        font-weight: 800;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-steps-grid li,
    body:not(.adminv2-page):not(.admin-auth-page) .members-hero-copy,
    body:not(.adminv2-page):not(.admin-auth-page) .members-shop-inner,
    body:not(.adminv2-page):not(.admin-auth-page) .members-join-voucher {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body.viper-landing-page main > section,
    body.viper-landing-page .viper-landing-member-wrap {
        width: 100%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        padding: 4.75rem max(2rem, calc((100% - 1180px) / 2)) 5rem;
        box-sizing: border-box;
    }

    body.viper-landing-page main > section:nth-of-type(odd) {
        background: #04161f;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body.viper-landing-page main > section:nth-of-type(even) {
        background: #082c3a;
        box-shadow: inset 0 8px 0 #2bd4c8;
    }

    body.viper-landing-page .viper-landing-hero-inner,
    body.viper-landing-page .viper-landing-grid,
    body.viper-landing-page .section-head,
    body.viper-landing-page .viper-landing-video-frame,
    body.viper-landing-page .viper-landing-cta-inner,
    body.viper-landing-page .viper-landing-member {
        width: 100%;
        max-width: 1180px;
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }

    body.viper-landing-page .viper-landing-hero-copy h1,
    body.viper-landing-page .viper-landing-models h2,
    body.viper-landing-page .viper-landing-cta h2,
    body.viper-landing-page .viper-landing-video h2 {
        max-width: none;
        color: #f7fbfc;
        font-size: clamp(3.5rem, 4.8vw, 5.6rem);
        letter-spacing: -0.05em;
        line-height: 0.92;
        text-align: left;
    }

    body.viper-landing-page .section-head {
        text-align: left;
    }

    body.viper-landing-page .eyebrow {
        color: #9ff7f0;
        letter-spacing: 0.18em;
        font-weight: 800;
    }

    body.viper-landing-page .viper-landing-card,
    body.viper-landing-page .viper-landing-video-frame {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body.viper-landing-page .viper-landing-hero-media {
        background: #fff;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body.viper-landing-page .viper-landing-card-media {
        background: #fff;
        border-radius: 18px 18px 0 0;
    }
}

@keyframes rest-rise {
    from { opacity: 0; transform: translateY(36px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes rest-frame {
    from { opacity: 0; transform: scale(0.82); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes rest-rule {
    from { opacity: 0; transform: scaleX(0); }
    to { opacity: 1; transform: scaleX(1); }
}

@keyframes rest-pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.06); opacity: 0.9; }
}

@media (prefers-reduced-motion: no-preference) {
    html.rest-motion .gallery-main .gallery-item:not(.is-inview),
    html.rest-motion .about-intro-body:not(.is-inview),
    html.rest-motion .about-section-block:not(.is-inview),
    html.rest-motion .contact-tile-action:not(.is-inview),
    html.rest-motion .two-col-contact > *:not(.is-inview),
    html.rest-motion .contact-form > label:not(.is-inview),
    html.rest-motion .contact-form > input:not(.visually-hidden):not(.is-inview),
    html.rest-motion .contact-form > textarea:not(.is-inview),
    html.rest-motion .contact-form > .cta-btn:not(.is-inview),
    html.rest-motion .members-hero-copy:not(.is-inview),
    html.rest-motion .members-split-copy:not(.is-inview),
    html.rest-motion .members-receive-inner:not(.is-inview),
    html.rest-motion .members-shop-inner:not(.is-inview),
    html.rest-motion .members-masterclass-copy:not(.is-inview),
    html.rest-motion .members-coming-inner:not(.is-inview),
    html.rest-motion .members-steps-grid > li:not(.is-inview),
    html.rest-motion .members-final:not(.is-inview),
    html.rest-motion .viper-landing-hero-copy:not(.is-inview),
    html.rest-motion .viper-landing-card:not(.is-inview),
    html.rest-motion .viper-landing-cta-inner:not(.is-inview),
    html.rest-motion .viper-landing-member:not(.is-inview) {
        opacity: 0;
        transform: translateY(36px);
    }

    html.rest-motion .about-img-col:not(.is-inview),
    html.rest-motion .viper-landing-hero-media:not(.is-inview),
    html.rest-motion .viper-landing-video-frame:not(.is-inview),
    html.rest-motion .members-poster-link:not(.is-inview),
    html.rest-motion .members-split-media:not(.is-inview),
    html.rest-motion .members-receive-media:not(.is-inview),
    html.rest-motion .members-masterclass-media:not(.is-inview),
    html.rest-motion .members-coming-media:not(.is-inview) {
        opacity: 0;
    }

    html.rest-motion .gallery-main .gallery-item.is-inview,
    html.rest-motion .about-intro-body.is-inview,
    html.rest-motion .about-section-block.is-inview,
    html.rest-motion .contact-tile-action.is-inview,
    html.rest-motion .two-col-contact > *.is-inview,
    html.rest-motion .contact-form > label.is-inview,
    html.rest-motion .contact-form > input:not(.visually-hidden).is-inview,
    html.rest-motion .contact-form > textarea.is-inview,
    html.rest-motion .contact-form > .cta-btn.is-inview,
    html.rest-motion .members-hero-copy.is-inview,
    html.rest-motion .members-split-copy.is-inview,
    html.rest-motion .members-receive-inner.is-inview,
    html.rest-motion .members-shop-inner.is-inview,
    html.rest-motion .members-masterclass-copy.is-inview,
    html.rest-motion .members-coming-inner.is-inview,
    html.rest-motion .members-steps-grid > li.is-inview,
    html.rest-motion .members-final.is-inview,
    html.rest-motion .viper-landing-hero-copy.is-inview,
    html.rest-motion .viper-landing-card.is-inview,
    html.rest-motion .viper-landing-cta-inner.is-inview,
    html.rest-motion .viper-landing-member.is-inview {
        animation: rest-rise 680ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    html.rest-motion .gallery-page-head .eyebrow,
    html.rest-motion main:has(> .about-hero) .eyebrow,
    html.rest-motion .members-page .eyebrow,
    html.rest-motion .viper-landing-page .eyebrow {
        display: block;
        text-align: left;
    }

    html.rest-motion .gallery-page-head .eyebrow::before,
    html.rest-motion main:has(> .about-hero) .eyebrow::before,
    html.rest-motion .members-page .eyebrow::before,
    html.rest-motion .viper-landing-page .eyebrow::before {
        content: none;
    }

    html.rest-motion .gallery-page-head .eyebrow::after,
    html.rest-motion main:has(> .about-hero) .eyebrow::after,
    html.rest-motion .members-page .eyebrow::after,
    html.rest-motion .viper-landing-page .eyebrow::after {
        content: "";
        display: block;
        width: 72px;
        height: 3px;
        margin-top: 0.7rem;
        background: #2bd4c8;
        transform-origin: left center;
        transform: scaleX(0);
        opacity: 0;
    }

    html.rest-motion .eyebrow.is-inview::after {
        animation: rest-rule 640ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    html.rest-motion .eyebrow.is-settled::after {
        animation: none;
        opacity: 1;
        transform: scaleX(1);
    }

    html.rest-motion .gallery-main .gallery-item {
        border-color: transparent;
    }

    html.rest-motion .gallery-main .gallery-item-frame::before {
        content: "";
        position: absolute;
        inset: 0;
        height: auto;
        background: transparent;
        border: 3px solid #e8fffb;
        border-radius: 18px;
        transform: scale(0.82);
        opacity: 0;
        z-index: 4;
        pointer-events: none;
    }

    html.rest-motion .gallery-main .gallery-item.is-inview .gallery-item-frame::before,
    html.rest-motion .about-img-col.is-inview::after,
    html.rest-motion .viper-landing-video-frame.is-inview::after,
    html.rest-motion .viper-landing-hero-media.is-inview::after {
        animation: rest-frame 680ms cubic-bezier(0.16, 1, 0.3, 1) both;
        animation-delay: inherit;
    }

    html.rest-motion .about-img-col,
    html.rest-motion .viper-landing-video-frame,
    html.rest-motion .viper-landing-hero-media {
        position: relative;
    }

    html.rest-motion .about-img-col::after,
    html.rest-motion .viper-landing-video-frame::after,
    html.rest-motion .viper-landing-hero-media::after {
        content: "";
        position: absolute;
        inset: 0;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        transform: scale(0.82);
        opacity: 0;
        pointer-events: none;
        z-index: 3;
    }

    html.rest-motion .gallery-main .gallery-item.is-settled,
    html.rest-motion .about-intro-body.is-settled,
    html.rest-motion .about-section-block.is-settled,
    html.rest-motion .contact-tile-action.is-settled,
    html.rest-motion .two-col-contact > *.is-settled,
    html.rest-motion .contact-form > label.is-settled,
    html.rest-motion .contact-form > input.is-settled,
    html.rest-motion .contact-form > textarea.is-settled,
    html.rest-motion .contact-form > .cta-btn.is-settled,
    html.rest-motion .members-hero-copy.is-settled,
    html.rest-motion .members-split-copy.is-settled,
    html.rest-motion .members-receive-inner.is-settled,
    html.rest-motion .members-shop-inner.is-settled,
    html.rest-motion .members-masterclass-copy.is-settled,
    html.rest-motion .members-coming-inner.is-settled,
    html.rest-motion .members-steps-grid > li.is-settled,
    html.rest-motion .members-final.is-settled,
    html.rest-motion .viper-landing-hero-copy.is-settled,
    html.rest-motion .viper-landing-card.is-settled,
    html.rest-motion .viper-landing-cta-inner.is-settled,
    html.rest-motion .viper-landing-member.is-settled,
    html.rest-motion .about-img-col.is-settled,
    html.rest-motion .viper-landing-hero-media.is-settled,
    html.rest-motion .viper-landing-video-frame.is-settled,
    html.rest-motion .members-poster-link.is-settled,
    html.rest-motion .members-split-media.is-settled,
    html.rest-motion .members-receive-media.is-settled,
    html.rest-motion .members-masterclass-media.is-settled,
    html.rest-motion .members-coming-media.is-settled {
        animation: none;
        opacity: 1;
        transform: none;
    }

    html.rest-motion .gallery-main .gallery-item.is-settled {
        border-color: #e8fffb;
    }

    html.rest-motion .gallery-main .gallery-item.is-settled .gallery-item-frame::before,
    html.rest-motion .about-img-col.is-settled::after,
    html.rest-motion .viper-landing-video-frame.is-settled::after,
    html.rest-motion .viper-landing-hero-media.is-settled::after {
        animation: none;
        opacity: 1;
        transform: scale(1);
    }

    html.rest-motion .gallery-main .gallery-item:nth-child(2),
    html.rest-motion .about-section-block:nth-child(2),
    html.rest-motion .contact-tile-action:nth-child(2),
    html.rest-motion .members-steps-grid > li:nth-child(2),
    html.rest-motion .viper-landing-card:nth-child(2) { animation-delay: 60ms; }

    html.rest-motion .gallery-main .gallery-item:nth-child(3),
    html.rest-motion .about-section-block:nth-child(3),
    html.rest-motion .contact-tile-action:nth-child(3),
    html.rest-motion .members-steps-grid > li:nth-child(3),
    html.rest-motion .viper-landing-card:nth-child(3) { animation-delay: 120ms; }

    html.rest-motion .gallery-main .gallery-item:nth-child(4),
    html.rest-motion .about-section-block:nth-child(4),
    html.rest-motion .contact-tile-action:nth-child(4),
    html.rest-motion .members-steps-grid > li:nth-child(4),
    html.rest-motion .viper-landing-card:nth-child(4) { animation-delay: 180ms; }

    html.rest-motion .gallery-main .gallery-item:nth-child(5),
    html.rest-motion .contact-tile-action:nth-child(5),
    html.rest-motion .contact-form > *:nth-child(5) { animation-delay: 240ms; }

    html.rest-motion .gallery-main .gallery-item:nth-child(6),
    html.rest-motion .contact-form > *:nth-child(6) { animation-delay: 300ms; }
    html.rest-motion .gallery-main .gallery-item:nth-child(7) { animation-delay: 360ms; }
    html.rest-motion .gallery-main .gallery-item:nth-child(8) { animation-delay: 420ms; }
    html.rest-motion .gallery-main .gallery-item:nth-child(9) { animation-delay: 480ms; }
    html.rest-motion .gallery-main .gallery-item:nth-child(10) { animation-delay: 540ms; }
    html.rest-motion .gallery-main .gallery-item:nth-child(11) { animation-delay: 600ms; }
    html.rest-motion .gallery-main .gallery-item:nth-child(12) { animation-delay: 660ms; }

    html.rest-motion .contact-form > label:nth-of-type(2),
    html.rest-motion .contact-form > input:nth-of-type(2) { animation-delay: 60ms; }
    html.rest-motion .contact-form > label:nth-of-type(3),
    html.rest-motion .contact-form > textarea { animation-delay: 120ms; }
    html.rest-motion .contact-form > .cta-btn { animation-delay: 180ms; }

    html.rest-motion .viper-landing-video-btn {
        animation: rest-pulse 2.8s cubic-bezier(0.16, 1, 0.3, 1) infinite;
        transform-origin: center;
    }
}

@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
    html.rest-motion .gallery-main .gallery-item.is-settled,
    html.rest-motion .gallery-main .gallery-image,
    html.rest-motion .gallery-main .gallery-card-caption,
    html.rest-motion .about-img,
    html.rest-motion .about-section-block.is-settled,
    html.rest-motion .contact-tile-action.is-settled,
    html.rest-motion .members-steps-grid > li.is-settled,
    html.rest-motion .viper-landing-card.is-settled,
    html.rest-motion .contact-main .cta-btn,
    html.rest-motion .members-page .cta-btn,
    html.rest-motion .members-page .cta-btn-secondary {
        transition: transform 640ms cubic-bezier(0.16, 1, 0.3, 1), opacity 640ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    html.rest-motion .gallery-main .gallery-item:not(.is-settled):hover {
        transform: none;
    }

    html.rest-motion .gallery-main .gallery-item.is-settled:hover {
        transform: translateY(-8px);
        box-shadow:
            0 0 0 1px rgba(43, 212, 200, 0.75),
            0 28px 56px rgba(0, 0, 0, 0.45),
            0 0 32px rgba(43, 212, 200, 0.48);
    }

    html.rest-motion .gallery-main .gallery-item-frame {
        overflow: hidden;
    }

    html.rest-motion .gallery-main .gallery-item.is-settled:hover .gallery-image {
        transform: scale(1.06);
    }

    html.rest-motion .gallery-main .gallery-item.is-settled:hover .gallery-card-caption {
        transform: translateY(-6px);
    }

    html.rest-motion .about-img-col {
        overflow: hidden;
        border-radius: 22px;
    }

    html.rest-motion .about-img-col.is-settled:hover .about-img {
        transform: scale(1.03);
    }

    html.rest-motion .about-section-block.is-settled:hover,
    html.rest-motion .contact-tile-action.is-settled:hover,
    html.rest-motion .members-steps-grid > li.is-settled:hover,
    html.rest-motion .viper-landing-card.is-settled:hover {
        transform: translateY(-8px);
        box-shadow:
            0 0 0 1px rgba(43, 212, 200, 0.75),
            0 28px 56px rgba(0, 0, 0, 0.45),
            0 0 32px rgba(43, 212, 200, 0.48);
    }

    html.rest-motion .contact-main .cta-btn:hover,
    html.rest-motion .members-page .cta-btn:hover,
    html.rest-motion .members-page .cta-btn-secondary:hover {
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.8), 0 14px 34px rgba(43, 212, 200, 0.42);
    }

    html.rest-motion .contact-main .cta-btn:active,
    html.rest-motion .members-page .cta-btn:active,
    html.rest-motion .members-page .cta-btn-secondary:active {
        transform: scale(0.98);
    }
}

body:not(.adminv2-page):not(.admin-auth-page) .contact-form input:focus,
body:not(.adminv2-page):not(.admin-auth-page) .contact-form textarea:focus {
    outline: 3px solid #2bd4c8;
    outline-offset: 2px;
    border-color: #2bd4c8;
    box-shadow: 0 0 0 4px rgba(43, 212, 200, 0.35);
}

/* The hidden eyebrow rule was more specific than the settled state, so the teal mark never appeared. */
@media (prefers-reduced-motion: no-preference) {
    html.rest-motion .gallery-page-head .eyebrow.is-inview::after,
    html.rest-motion main:has(> .about-hero) .eyebrow.is-inview::after,
    html.rest-motion .members-page .eyebrow.is-inview::after,
    html.rest-motion .viper-landing-page .eyebrow.is-inview::after {
        animation: rest-rule 640ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    html.rest-motion .gallery-page-head .eyebrow.is-settled::after,
    html.rest-motion main:has(> .about-hero) .eyebrow.is-settled::after,
    html.rest-motion .members-page .eyebrow.is-settled::after,
    html.rest-motion .viper-landing-page .eyebrow.is-settled::after {
        animation: none;
        opacity: 1;
        transform: scaleX(1);
    }
}

@media (min-width: 1024px) {
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main.flex-section {
        gap: 1.5rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-page-head,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-pills-row,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .pagination,
    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-grid {
        margin-top: 0;
        margin-bottom: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .gallery-main .gallery-grid {
        gap: 1.35rem;
    }

    /* One frame. The scaled ::before sat on top of the card border. */
    html.rest-motion .gallery-main .gallery-item-frame::before,
    html.rest-motion .about-img-col::after,
    html.rest-motion .viper-landing-video-frame::after,
    html.rest-motion .viper-landing-hero-media::after {
        content: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block h2 {
        font-size: clamp(2.15rem, 4.6vw, 3.7rem);
        line-height: 1.05;
        letter-spacing: -0.04em;
        max-width: 18ch;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-tagline-lines {
        line-height: 1.16;
        padding-bottom: 0.08em;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .about-section-block .charter-included-list {
        margin: 0.35rem 0 0;
        max-width: none;
        width: 100%;
        background: transparent;
        border: 0;
        box-shadow: none;
        border-radius: 0;
        padding: 0.15rem 0 0.15rem 1.25rem;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) > .stats-strip {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 1.35rem;
        align-items: stretch;
    }

    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .stat-item {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
        padding: 1.35rem 1.4rem 1.45rem;
        text-align: left;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 1.35rem;
        align-items: stretch;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid .contact-tile-action {
        grid-column: span 2;
        min-width: 0;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid .contact-tile-action:nth-child(4),
    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid .contact-tile-action:nth-child(5) {
        grid-column: span 3;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid .tile-email,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-tiles-grid .tile-value {
        overflow-wrap: anywhere;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .two-col-contact {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .two-col-contact > div:last-child {
        display: contents;
    }

    html.rest-motion .contact-main .two-col-contact > div:last-child,
    html.rest-motion .contact-main .two-col-contact > div:last-child.is-inview,
    html.rest-motion .contact-main .two-col-contact > div:last-child.is-settled {
        opacity: 1;
        transform: none;
        animation: none;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .contact-info-card {
        grid-column: 1;
        grid-row: 1 / span 4;
        height: auto;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .two-col-contact > div:last-child > h2,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .contact-sidebar-lead,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .contact-side-stack {
        grid-column: 2;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .contact-ramp-maps {
        grid-column: 1 / -1;
        width: 100%;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .location-ramp-grid--contact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.35rem;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .location-ramp-card {
        background: #0b3142;
        border: 3px solid #e8fffb;
        border-radius: 22px;
        box-shadow: 0 0 0 1px rgba(43, 212, 200, 0.35), 0 22px 50px rgba(0, 0, 0, 0.35);
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-hero-copy h1,
    body:not(.adminv2-page):not(.admin-auth-page) .members-page .service-cards-heading,
    body.viper-landing-page .viper-landing-hero-copy h1,
    body.viper-landing-page .viper-landing-models h2,
    body.viper-landing-page .viper-landing-cta h2,
    body.viper-landing-page .viper-landing-video h2 {
        line-height: 1.12;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-page > .members-hero {
        align-items: stretch;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-hero-media {
        align-self: stretch;
        position: relative;
        overflow: hidden;
        min-height: 100%;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-hero-media img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        max-height: none;
        min-height: 0;
        aspect-ratio: auto;
        object-fit: cover;
        display: block;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-page > .members-final,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-join-price,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-join-features,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-join-voucher,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-quote,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .hero-cta-row {
        text-align: left;
        margin-left: 0;
        margin-right: 0;
        justify-content: flex-start;
    }

    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-join-price,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-join-features,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-join-voucher,
    body:not(.adminv2-page):not(.admin-auth-page) .members-final .members-quote {
        width: 100%;
        max-width: none;
    }

    body.viper-landing-page .viper-landing-cta-inner,
    body.viper-landing-page .viper-landing-cta h2,
    body.viper-landing-page .viper-landing-cta .hero-cta-row {
        text-align: left;
        justify-content: flex-start;
    }
}

@media (min-width: 1024px) and (prefers-reduced-motion: no-preference) {
    html.rest-motion .contact-main .location-ramp-card:not(.is-inview),
    html.rest-motion main:has(> .about-hero) .stat-item:not(.is-inview) {
        opacity: 0;
        transform: translateY(36px);
    }

    html.rest-motion .contact-main .location-ramp-card.is-inview,
    html.rest-motion main:has(> .about-hero) .stat-item.is-inview {
        animation: rest-rise 680ms cubic-bezier(0.16, 1, 0.3, 1) both;
    }

    html.rest-motion .contact-main .location-ramp-card.is-settled,
    html.rest-motion main:has(> .about-hero) .stat-item.is-settled {
        animation: none;
        opacity: 1;
        transform: none;
    }

    html.rest-motion .contact-main .location-ramp-card.is-settled,
    html.rest-motion main:has(> .about-hero) .stat-item.is-settled {
        transition: transform 640ms cubic-bezier(0.16, 1, 0.3, 1), opacity 640ms cubic-bezier(0.16, 1, 0.3, 1);
    }

    html.rest-motion .contact-main .location-ramp-card.is-settled:hover,
    html.rest-motion main:has(> .about-hero) .stat-item.is-settled:hover {
        transform: translateY(-8px);
        box-shadow:
            0 0 0 1px rgba(43, 212, 200, 0.75),
            0 28px 56px rgba(0, 0, 0, 0.45),
            0 0 32px rgba(43, 212, 200, 0.48);
    }
}

@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .location-ramp-card,
    body:not(.adminv2-page):not(.admin-auth-page) .contact-main .location-ramp-card:hover,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .stat-item,
    body:not(.adminv2-page):not(.admin-auth-page) main:has(> .about-hero) .stat-item:hover {
        transition: none;
        transform: none;
        animation: none;
    }
}
