/* Product-first Trainer landing. Loaded after app.css so the existing application UI stays untouched. */
.gg-landing-v2 {
    --gg-landing-accent: #ffe600;
    min-height: 100svh;
    overflow: clip;
}

/* The fixed desktop route selection canvas must not leave an inert document scroll.
   Small screens deliberately retain native document scrolling. */
@media (min-width: 961px) and (min-height: 720px) {
    html:has(.gg-entry-page),
    body:has(.gg-entry-page) { height: 100%; overflow: hidden; }

    .gg-public-player-shell:has(.gg-entry-page),
    .gg-public-player-shell:has(.gg-entry-page) .gg-public-content { min-height: 0; }
}

/* Auth and route-selection screens should stay visually quiet; installation remains
   available once the user reaches the actual workspace. */
body:has(.gg-landing-v2) .gg-pwa-fab,
body:has(.gg-hub) .gg-pwa-fab,
body:has(.ml-page) .gg-pwa-fab {
    display: none !important;
}

.gg-light .gg-landing-v2 {
    --gg-landing-accent-text: #786d00;
}

.gg-dark .gg-landing-v2 {
    --gg-landing-accent-text: var(--gg-landing-accent);
}

.gg-landing-v2 .gg-auth-nav {
    width: min(1280px, calc(100% - 40px));
    max-width: none;
    min-height: 72px;
    margin: 14px auto 0;
    padding: 8px 12px 8px 16px;
    border: 1px solid var(--v2-line-strong);
    border-radius: 16px;
    background: color-mix(in srgb, var(--v2-bg) 82%, transparent);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .12);
    backdrop-filter: blur(18px);
}

.gg-landing-v2 .gg-auth-brand-mark {
    width: 42px;
    height: 42px;
}

.gg-landing-v2 .gg-auth-brand-name {
    font-weight: 720;
}

.gg-landing-v2 .gg-auth-hero {
    position: relative;
    isolation: isolate;
    width: min(1240px, calc(100% - 40px));
    max-width: none;
    /* Desktopon csak a következő videó finom kezdete látszik a fold alján. */
    min-height: calc(100svh - 112px);
    margin: 0 auto;
    padding: clamp(48px, 7vh, 80px) 0 clamp(28px, 4vh, 48px);
    display: grid;
    /* The copy and the visual deliberately have separate tracks. The visual
       may be large, but it must never borrow space from the headline. */
    grid-template-columns: minmax(320px, .68fr) minmax(0, 1.75fr);
    align-items: center;
    gap: clamp(32px, 4vw, 72px);
    text-align: left;
}

/* A hero tiszta theme-felületen indul; a videó önálló, váltakozó narratív szakaszokban jelenik meg. */
.gg-landing-v2.gg-auth-landing { background: var(--v2-bg) !important; }
.gg-landing-v2 .gg-landing-content-sheet { position: relative; z-index: 1; background: var(--v2-bg); }
.gg-landing-v2 .gg-landing-content-sheet--workflow,
.gg-landing-v2 .gg-landing-content-sheet--closing { border-top: 1px solid var(--v2-line-strong); }
.gg-landing-v2 .gg-auth-copy, .gg-landing-v2 .gg-auth-product-stage { position: relative; z-index: 1; }


.gg-landing-v2 .gg-auth-copy {
    order: 1;
    align-items: flex-start;
    max-width: 680px;
}

.gg-landing-v2 .gg-auth-kicker {
    margin-bottom: 18px;
    color: var(--gg-landing-accent-text);
    font-family: var(--v2-mono);
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase !important;
}

.gg-landing-v2 .gg-auth-copy h1 {
    max-width: 11ch;
    margin: 0 0 24px;
    font-size: clamp(3rem, 5.7vw, 5.15rem);
    font-weight: 680 !important;
    line-height: .96;
    letter-spacing: -.058em !important;
}

.gg-landing-v2 .gg-auth-lead {
    max-width: 52ch;
    margin: 0 0 30px;
    color: var(--v2-t2);
    font-size: clamp(1rem, 1.35vw, 1.17rem);
    line-height: 1.6;
}

.gg-landing-v2 .gg-auth-cta-row {
    justify-content: flex-start;
}

.gg-landing-v2 .gg-auth-primary-cta,
.gg-landing-v2 .gg-auth-secondary-cta {
    min-height: 52px;
}

.gg-landing-v2 .gg-auth-cta-note {
    margin: 12px 0 0;
    color: var(--v2-t3);
    font-size: .78rem;
    line-height: 1.45;
}

.gg-landing-v2 .gg-auth-trust-promises {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    max-width: 650px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.gg-landing-v2 .gg-auth-trust-promises li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    min-height: 94px;
    padding: 14px 15px;
    border: 1px solid var(--v2-line-strong);
    border-radius: 12px;
    background: color-mix(in srgb, var(--v2-bg) 82%, var(--v2-surface));
}

.gg-landing-v2 .gg-auth-trust-promises strong {
    display: block;
    color: var(--v2-t1);
    font-size: .82rem;
    letter-spacing: -.015em;
}

.gg-landing-v2 .gg-auth-trust-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 1px solid color-mix(in srgb, var(--v2-t1) 34%, var(--v2-line));
    border-radius: 50%;
    color: var(--v2-t1);
    background: color-mix(in srgb, var(--v2-surface) 72%, transparent);
    box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--v2-bg) 72%, transparent);
}

.gg-landing-v2 .gg-auth-trust-icon .gg-legacy-icon-root {
    display: block;
}

.gg-landing-v2 .gg-auth-trust-copy {
    display: grid;
    gap: 5px;
}

.gg-landing-v2 .gg-auth-trust-copy span {
    color: var(--v2-t2);
    font-size: .73rem;
    line-height: 1.42;
}

.gg-landing-v2 .gg-auth-product-stage {
    order: 2;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
}

.gg-landing-v2 .gg-feature-carousel { width: min(100%, 660px); margin-left: auto; }

.gg-landing-v2 .gg-auth-product-label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    align-self: flex-start;
    color: var(--v2-t2);
    font: 700 .68rem/1 var(--v2-mono);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gg-landing-v2 .gg-auth-product-label::before {
    width: 7px;
    height: 7px;
    content: "";
    border-radius: 50%;
    background: var(--gg-landing-accent);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--gg-landing-accent) 12%, transparent);
}

.gg-landing-v2 .gg-auth-deck {
    display: none;
}

.gg-landing-v2 .gg-hero-os-preview { display: none; }
.gg-landing-v2 .gg-feature-carousel { overflow: hidden; border: 1px solid var(--v2-line-strong); border-radius: 20px; background: var(--v2-surface); box-shadow: var(--v2-shadow); }
.gg-landing-v2 .gg-feature-carousel-frame { margin: 0; overflow: hidden; border-bottom: 1px solid var(--v2-line); background: var(--v2-surface-2); }
.gg-landing-v2 .gg-feature-carousel-frame .gg-live-preview { animation: gg-landing-view-in .55s cubic-bezier(.16, 1, .3, 1); }
.gg-live-preview { display: grid; grid-template-columns: 13% 1fr; min-height: 350px; color: #d8dee8; background: #111820; font-family: var(--v2-sans); text-align: left; }
.gg-live-preview aside { display: grid; align-content: start; gap: 16px; padding: 15px 10px; border-right: 1px solid #27323c; color: #8e9aa8; font-size: .58rem; }
.gg-live-preview aside b { margin-bottom: 14px; color: #f4f7fb; font-size: .57rem; letter-spacing: .07em; }
.gg-live-preview main { padding: 17px; }
.gg-live-preview header { display: flex; justify-content: space-between; align-items: start; margin-bottom: 17px; }
.gg-live-preview header div { display: grid; gap: 4px; }.gg-live-preview small { color: #8e9aa8; font-size: .58rem; }.gg-live-preview header strong { color: #f5f7fa; font-size: 1rem; }.gg-live-preview button { border: 0; border-radius: 6px; padding: 6px 8px; color: #111820; background: #ffe600; font: 700 .58rem var(--v2-sans); }
.gg-live-preview-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 9px; }.gg-live-preview-grid article { display: grid; gap: 8px; min-height: 92px; padding: 12px; border: 1px solid #2b3945; border-radius: 9px; background: #17212b; }.gg-live-preview-grid article:last-child { grid-column: 1 / -1; min-height: 65px; }.gg-live-preview-grid article.is-focus { border-color: #887b15; }.gg-live-preview-grid b { color:#fff; font-size:.78rem; }.gg-live-preview-grid span { color:#aab5c0; font-size:.62rem; }
.gg-live-preview-list { display:grid; gap:7px; }.gg-live-preview-list div { display:grid; grid-template-columns: 28px 1fr auto; gap:8px; align-items:center; padding:10px; border:1px solid #2b3945; border-radius:8px; background:#17212b; }.gg-live-preview-list span { display:grid; place-items:center; grid-row:span 2; width:27px; height:27px; border-radius:50%; color:#111820; background:#ffe600; font-size:.55rem; font-weight:800; }.gg-live-preview-list b { color:#fff; font-size:.68rem; }.gg-live-preview-list i { grid-column:3; grid-row:span 2; color:#ffe600; font-size:.6rem; font-style:normal; }.gg-live-preview-list small { grid-column:2; }
.gg-live-preview-plan > div { display:grid; gap:6px; padding:13px; border-radius:9px; background:#24313d; }.gg-live-preview-plan b { color:#fff; font-size:.85rem; }.gg-live-preview-plan span { color:#aab5c0; font-size:.62rem; }.gg-live-preview-plan ol { display:grid; gap:6px; padding:0; list-style:none; }.gg-live-preview-plan li { display:flex; justify-content:space-between; padding:10px; border-bottom:1px solid #2b3945; color:#f5f7fa; font-size:.66rem; }.gg-live-preview-plan em { color:#aab5c0; font-size:.57rem; font-style:normal; }
.gg-live-preview-calendar { display:grid; gap:8px; }.gg-live-preview-calendar > b { color:#fff; }.gg-live-preview-calendar div { display:grid; grid-template-columns:48px 1fr; padding:13px; border-left:3px solid #ffe600; background:#17212b; }.gg-live-preview-calendar time { color:#8e9aa8; font-size:.6rem; }.gg-live-preview-calendar span { color:#fff; font-size:.68rem; }
.gg-landing-v2 .gg-feature-carousel-copy { display: grid; gap: 7px; padding: 19px 20px 16px; }
.gg-landing-v2 .gg-feature-carousel-copy > span { color: var(--gg-landing-accent-text); font: 750 .68rem/1 var(--v2-mono); letter-spacing: .1em; text-transform: uppercase; }
.gg-landing-v2 .gg-feature-carousel-copy strong { color: var(--v2-t1); font-size: 1.1rem; }
.gg-landing-v2 .gg-feature-carousel-copy p { margin: 0; color: var(--v2-t2); font-size: .88rem; line-height: 1.48; }
.gg-landing-v2 .gg-feature-carousel-tabs { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 20px 20px; }
.gg-landing-v2 .gg-feature-carousel-tabs button { min-height: 30px; padding: 0 9px; border: 1px solid var(--v2-line-strong); border-radius: 999px; color: var(--v2-t2); background: transparent; cursor: pointer; font: 650 .7rem/1 var(--v2-sans); }
.gg-landing-v2 .gg-feature-carousel-tabs button.is-active { border-color: var(--gg-landing-accent); color: var(--v2-t1); background: color-mix(in srgb, var(--gg-landing-accent) 22%, transparent); }
.gg-landing-v2 .gg-feature-carousel-tabs .gg-auth-showcase-tab { min-height: 30px; padding: 0 9px; border: 1px solid var(--v2-line-strong); border-radius: 999px; color: var(--v2-t2); background: transparent; font-size: .7rem; }
.gg-landing-v2 .gg-feature-carousel-tabs .gg-auth-showcase-tab.is-active { border-color: var(--gg-landing-accent); color: var(--v2-t1); background: color-mix(in srgb, var(--gg-landing-accent) 22%, transparent); }

.gg-landing-v2 .gg-hero-coach-photo {
    width: min(100%, 720px);
    margin: 0 0 0 auto;
    overflow: hidden;
    border: 1px solid var(--v2-line-strong);
    border-radius: 22px;
    background: var(--v2-surface);
    box-shadow: var(--v2-shadow);
}

.gg-landing-v2 .gg-hero-coach-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    object-position: center;
}

/* ── Scroll story: coach-at-work → the operating system behind the work ── */
.gg-landing-v2 .gg-coach-primary-copy { position: relative; }

.gg-landing-v2 .gg-coach-story-copy {
    display: grid;
    gap: 14px;
    max-width: 31rem;
    margin-top: 38px;
}

.gg-landing-v2 .gg-coach-story-copy .gg-auth-kicker { margin: 0; }

.gg-landing-v2 .gg-coach-story-copy h2 {
    margin: 0;
    color: var(--v2-t1);
    font-size: clamp(2.25rem, 4vw, 4.45rem);
    font-weight: 680;
    line-height: .96;
    letter-spacing: -.06em;
}

.gg-landing-v2 .gg-coach-story-copy p {
    max-width: 44ch;
    margin: 0;
    color: var(--v2-t2);
    font-size: clamp(1rem, 1.25vw, 1.12rem);
    line-height: 1.58;
}

.gg-landing-v2 .gg-coach-story-proof {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 8px;
    color: var(--gg-landing-accent-text);
    font: 750 .64rem/1.35 var(--v2-mono);
    letter-spacing: .12em;
}

.gg-landing-v2 .gg-coach-story-visual {
    position: relative;
    width: min(100%, 720px);
    margin-left: auto;
}

.gg-landing-v2 .gg-coach-photo-wash {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: block;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(135deg, color-mix(in srgb, var(--v2-bg) 78%, transparent), color-mix(in srgb, var(--v2-bg) 38%, transparent));
}

.gg-landing-v2 .gg-coach-os-proof {
    position: relative;
    z-index: 2;
    width: min(92%, 650px);
    margin: 20px auto 0;
    overflow: hidden;
    border: 1px solid var(--v2-line-strong);
    border-radius: 18px;
    background: var(--v2-surface);
    box-shadow: 0 34px 74px rgba(0, 0, 0, .24);
}

.gg-landing-v2 .gg-coach-os-proof > img {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: top left;
}

.gg-landing-v2 .gg-coach-os-browser {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 0 11px;
    border-bottom: 1px solid var(--v2-line);
    background: var(--v2-surface);
}

.gg-landing-v2 .gg-coach-os-browser > span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--v2-line-strong);
}

.gg-landing-v2 .gg-coach-os-browser > b {
    margin-left: 5px;
    overflow: hidden;
    color: var(--v2-t3);
    font: 650 .56rem/1 var(--v2-mono);
    letter-spacing: .02em;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gg-landing-v2 .gg-coach-os-proof figcaption {
    display: grid;
    gap: 5px;
    padding: 16px 18px 18px;
    background: var(--v2-surface);
}

.gg-landing-v2 .gg-coach-os-proof figcaption > span {
    color: var(--gg-landing-accent-text);
    font: 750 .62rem/1 var(--v2-mono);
    letter-spacing: .1em;
}

.gg-landing-v2 .gg-coach-os-proof figcaption > strong {
    color: var(--v2-t1);
    font-size: 1rem;
    letter-spacing: -.025em;
}

.gg-landing-v2 .gg-coach-os-proof figcaption > p {
    margin: 0;
    color: var(--v2-t2);
    font-size: .82rem;
    line-height: 1.45;
}

.gg-landing-v2 .gg-coach-story-progress {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 14px 0 0;
    color: var(--v2-t3);
    font: 750 .6rem/1 var(--v2-mono);
    letter-spacing: .08em;
}

.gg-landing-v2 .gg-coach-story-progress i {
    width: 28px;
    height: 1px;
    background: var(--v2-line-strong);
}

.gg-landing-v2 .gg-coach-story-progress .is-active { color: var(--gg-landing-accent-text); }

@media (min-width: 901px) {
    .gg-landing-v2.gg-scroll-story-ready .gg-auth-copy {
        display: grid;
        min-height: 500px;
        align-items: center;
    }

    .gg-landing-v2.gg-scroll-story-ready .gg-coach-story-copy {
        position: absolute;
        inset: 50% auto auto 0;
        width: 100%;
        margin: 0;
        visibility: hidden;
        transform: translateY(-50%);
    }

    .gg-landing-v2.gg-scroll-story-ready .gg-coach-story-stage { gap: 14px; }

    .gg-landing-v2.gg-scroll-story-ready .gg-coach-story-visual {
        height: min(600px, 62vh);
        min-height: 470px;
    }

    .gg-landing-v2.gg-scroll-story-ready .gg-hero-coach-photo {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
        border-radius: 24px;
    }

    .gg-landing-v2.gg-scroll-story-ready .gg-hero-coach-photo img {
        height: 100%;
        aspect-ratio: auto;
        object-position: 58% center;
    }

    .gg-landing-v2.gg-scroll-story-ready .gg-coach-os-proof {
        position: absolute;
        right: 5%;
        bottom: 9%;
        width: min(86%, 640px);
        margin: 0;
        visibility: hidden;
    }

    .gg-landing-v2.gg-scroll-story-ready .gg-coach-story-progress {
        position: absolute;
        z-index: 3;
        right: 22px;
        bottom: 20px;
        margin: 0;
        padding: 9px 11px;
        border: 1px solid color-mix(in srgb, #fff 24%, transparent);
        border-radius: 999px;
        color: rgba(255, 255, 255, .66);
        background: rgba(0, 0, 0, .24);
        backdrop-filter: blur(12px);
    }

    .gg-dark .gg-landing-v2.gg-scroll-story-ready .gg-coach-story-progress {
        border-color: color-mix(in srgb, #fff 16%, transparent);
    }
}

/* One continuous hero story: dashboard first, then the four feature moments.
   The copy scrolls; the single product banner is the fixed visual anchor. */
@media (min-width: 901px) {
    .gg-landing-v2 .gg-auth-hero {
        align-items: start;
        min-height: auto;
        padding-bottom: clamp(96px, 12vw, 160px);
    }

    /* The full copy column creates its own stacking context. It must sit over
       the oversized visual, not merely have its inner chapter above it. */
    .gg-landing-v2 .gg-auth-copy {
        z-index: 5;
    }

    .gg-landing-v2 .gg-hero-story-chapters {
        display: grid;
        margin-top: clamp(90px, 13vh, 152px);
    }

    .gg-landing-v2 .gg-hero-story-chapters .gg-image-story-chapter {
        display: grid;
        align-content: center;
        min-height: min(66vh, 700px);
        padding: 28px 0;
        color: var(--v2-t1);
        position: relative;
        z-index: 4;
        opacity: .4;
        transition: opacity .35s ease;
    }

    .gg-landing-v2 .gg-hero-story-chapters .gg-image-story-chapter.is-active {
        opacity: 1;
    }

    .gg-landing-v2 .gg-auth-product-stage {
        position: sticky;
        /* Match the banner's natural starting Y-position (nav height + hero
           top padding), so it is fixed from the first scroll pixel instead of
           drifting upward until it reaches a lower sticky threshold. */
        top: calc(clamp(48px, 7vh, 80px) + 88px);
        align-self: start;
    }

    .gg-landing-v2 .gg-coach-story-visual {
        position: relative;
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 10;
        overflow: hidden;
        border: 1px solid var(--v2-line-strong);
        border-radius: 18px;
        background: var(--v2-surface-2);
        box-shadow: 0 28px 70px color-mix(in srgb, var(--v2-bg) 24%, transparent);
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-scroll-visual] {
        display: none !important;
        width: 100%;
        height: 100%;
        margin: 0;
        overflow: hidden;
        border-radius: 0 26px 26px 0;
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-scroll-visual]:first-child {
        display: block !important;
        position: relative;
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-scroll-visual] img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
        background: var(--v2-bg);
        border-radius: 0 26px 26px 0;
    }

    .gg-landing-v2.gg-hero-image-story-ready .gg-coach-story-visual [data-gg-scroll-visual] {
        display: block !important;
        position: absolute;
        inset: 0;
        opacity: 0;
        visibility: hidden;
        transform: scale(.985);
        transition: opacity .42s ease, transform .42s ease, visibility 0s linear .42s;
    }

    .gg-landing-v2.gg-hero-image-story-ready .gg-coach-story-visual [data-gg-scroll-visual].is-active {
        z-index: 1;
        opacity: 1;
        visibility: visible;
        transform: scale(1);
        transition-delay: 0s;
    }
}

@media (max-width: 900px) {
    .gg-landing-v2 .gg-hero-story-chapters {
        display: grid;
        gap: 42px;
        margin-top: 64px;
    }

    .gg-landing-v2 .gg-hero-story-chapters .gg-image-story-chapter {
        display: grid;
        gap: 14px;
        color: var(--v2-t1);
    }

    .gg-landing-v2 .gg-coach-story-visual .gg-hero-story-feature {
        display: none;
    }
}

/* Hard visual fallback: the hero must remain a complete banner even before
   ScrollTrigger has promoted the first image to the active slide. */
@media (min-width: 901px) {
    .gg-landing-v2 .gg-coach-story-visual {
        display: block !important;
        height: clamp(460px, 58vh, 720px);
        min-height: 460px;
        background: url("../images/landing/homepage-dashboard.webp") center / cover no-repeat !important;
    }

    .gg-landing-v2 .gg-coach-story-visual .gg-hero-coach-photo {
        display: block !important;
        position: absolute;
        z-index: 0;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    .gg-landing-v2 .gg-coach-story-visual .gg-hero-coach-photo img {
        display: block !important;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .gg-landing-v2.gg-image-story-ready .gg-coach-story-visual .gg-hero-story-slide.is-active {
        display: block !important;
        z-index: 2;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }
}

.gg-live-preview--dashboard { display:block; min-height:350px; color:var(--gg-text); background:var(--gg-bg); }.gg-live-preview--dashboard>aside,.gg-live-preview--dashboard>main>header{display:none}.gg-live-preview--dashboard>main{padding:14px}.gg-preview-dashboard{display:grid;gap:8px}.gg-preview-dashboard .gg-focus-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:8px}.gg-preview-dashboard .gg-focus-card,.gg-preview-dashboard .gg-command-surface,.gg-preview-dashboard .gg-metric-card{padding:12px;border:1px solid var(--gg-border);border-radius:var(--gg-radius-lg);background:var(--gg-surface);color:var(--gg-text)}.gg-preview-dashboard .gg-focus-card{position:relative;min-height:150px;padding-top:46px;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--gg-accent) 18%,transparent),transparent 35%),var(--gg-surface)}.gg-preview-dashboard .gg-card-topline{position:absolute;inset:12px 12px auto;display:flex;justify-content:space-between}.gg-preview-dashboard .gg-focus-time{font-size:2rem;font-weight:800}.gg-preview-dashboard h3{margin:5px 0;font-size:.8rem}.gg-preview-dashboard p{margin:0 0 8px;color:var(--gg-text-muted);font-size:.62rem}.gg-preview-dashboard .gg-action{min-height:25px;padding:0 8px;border:0;border-radius:7px;font-size:.58rem}.gg-preview-dashboard .gg-action--primary{background:var(--gg-primary);color:var(--gg-on-primary)}.gg-preview-dashboard .gg-metric-grid{display:grid;gap:8px}.gg-preview-dashboard .gg-metric-card{display:grid;min-height:71px;text-align:left}.gg-preview-dashboard .gg-metric-card span,.gg-preview-dashboard small{color:var(--gg-text-muted);font-size:.55rem}.gg-preview-dashboard .gg-metric-card strong{font-size:1.25rem}.gg-preview-dashboard .gg-work-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gg-preview-dashboard .gg-section-heading{display:flex;justify-content:space-between;margin-bottom:7px}.gg-preview-dashboard .gg-section-heading h3{margin:3px 0}.gg-preview-dashboard .gg-eyebrow{font-size:.48rem}.gg-preview-dashboard .gg-count-chip{border:1px solid var(--gg-border);border-radius:999px;padding:3px 5px;font-size:.5rem}.gg-preview-dashboard .gg-review-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.gg-preview-dashboard .gg-review-list li{display:flex;gap:5px;align-items:center}.gg-preview-dashboard .gg-person-avatar{display:grid;width:20px;height:20px;place-items:center;border-radius:6px;background:var(--gg-primary-soft);font-size:.45rem}.gg-preview-dashboard .gg-attention-item{display:grid;grid-template-columns:4px 1fr;gap:6px;width:100%;padding:6px;border:1px solid var(--gg-border);border-radius:7px;background:var(--gg-bg);color:var(--gg-text);text-align:left}.gg-preview-dashboard .gg-attention-item i{background:var(--gg-palette-warning);border-radius:99px}.gg-preview-dashboard .gg-attention-item strong{font-size:.56rem}

/* A videó a hangulat, a lebegő felületek pedig a konkrét termékígéretet mutatják. */
.gg-landing-v2 .gg-hero-os-preview {
    position: relative;
    width: min(510px, 100%);
    min-height: 458px;
    margin: 0 auto;
    padding: 18px;
    overflow: visible;
    border: 1px solid color-mix(in srgb, #fff 78%, transparent);
    border-radius: 24px;
    color: #161717;
    background: rgba(248, 248, 243, .96);
    box-shadow: 0 34px 90px rgba(0, 0, 0, .3), 0 1px 0 rgba(255, 255, 255, .9) inset;
    transform: perspective(1200px) rotateY(-4deg) rotateX(2deg);
}

.gg-landing-v2 .gg-hero-os-preview::before {
    position: absolute;
    z-index: -1;
    inset: 28px -28px -28px 28px;
    border-radius: inherit;
    content: "";
    opacity: .7;
    background: linear-gradient(145deg, rgba(255, 230, 0, .7), rgba(255, 255, 255, .12));
    filter: blur(20px);
}

.gg-hero-os-topbar, .gg-hero-os-heading, .gg-hero-session, .gg-hero-os-footer { display: flex; align-items: center; }
.gg-hero-os-topbar { justify-content: space-between; padding: 1px 3px 20px; }
.gg-hero-os-topbar > div { display: grid; gap: 4px; }
.gg-hero-os-brand { color: #8b8000; font: 800 .58rem/1 var(--v2-mono); letter-spacing: .14em; }
.gg-hero-os-topbar strong { font-size: .91rem; letter-spacing: -.02em; }
.gg-hero-os-time { display: grid; width: 44px; height: 32px; place-items: center; border-radius: 9px; color: #686966; background: #ecece6; font: 750 .68rem/1 var(--v2-mono); }

.gg-hero-os-main { position: absolute; right: 18px; bottom: 18px; left: 18px; padding: 18px; border: 1px solid #dfdfd6; border-radius: 17px; background: #fff; box-shadow: 0 14px 34px rgba(20, 21, 20, .1); }
.gg-hero-os-heading { justify-content: space-between; margin-bottom: 12px; }
.gg-hero-os-heading > div { display: grid; gap: 3px; }
.gg-hero-os-heading span, .gg-hero-card-eyebrow { color: #767773; font: 800 .58rem/1 var(--v2-mono); letter-spacing: .1em; text-transform: uppercase; }
.gg-hero-os-heading strong { font-size: 1.12rem; letter-spacing: -.04em; }
.gg-hero-os-heading i { width: 8px; height: 8px; border-radius: 50%; background: #ffe600; box-shadow: 0 0 0 5px rgba(255, 230, 0, .18); }
.gg-hero-session { gap: 12px; min-height: 58px; padding: 9px 0; border-top: 1px solid #edede8; }
.gg-hero-session time { width: 38px; color: #5b5c58; font: 750 .67rem/1 var(--v2-mono); }
.gg-hero-session div { display: grid; flex: 1; gap: 3px; }
.gg-hero-session strong { font-size: .79rem; }
.gg-hero-session span { color: #797a76; font-size: .67rem; }
.gg-hero-session b { padding: 7px 9px; border-radius: 7px; color: #151612; background: #ffe600; font-size: .64rem; }
.gg-hero-session em { padding: 5px 7px; border: 1px solid #d9dad4; border-radius: 7px; color: #5f615b; font: 750 .65rem/1 var(--v2-mono); }
.gg-hero-os-footer { justify-content: space-between; margin-top: 5px; padding-top: 12px; border-top: 1px solid #edede8; color: #70716d; font-size: .69rem; }
.gg-hero-os-footer b { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; color: #fff; background: #242522; font-size: .68rem; }

.gg-hero-float-card { position: absolute; z-index: 3; border: 1px solid rgba(255, 255, 255, .84); border-radius: 15px; background: rgba(255, 255, 252, .96); box-shadow: 0 18px 42px rgba(10, 11, 10, .2); backdrop-filter: blur(14px); }
.gg-hero-float-card--review { top: 68px; left: -64px; width: min(255px, 57%); padding: 16px; animation: gg-hero-float-review 7s ease-in-out infinite; }
.gg-hero-float-card--review strong { display: block; margin-top: 8px; font-size: .88rem; letter-spacing: -.025em; }
.gg-hero-float-card--review p { margin: 6px 0 12px; color: #686965; font-size: .67rem; line-height: 1.4; }
.gg-hero-card-link { color: #1b1c18; font-size: .68rem; font-weight: 800; }
.gg-hero-card-link b { margin-left: 4px; color: #8b8000; font-size: .9rem; }
.gg-hero-float-card--banner { right: -42px; bottom: 102px; display: flex; align-items: center; gap: 10px; width: min(266px, 62%); padding: 13px; animation: gg-hero-float-banner 8s ease-in-out infinite; }
.gg-hero-banner-dot { flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; background: #ffbd2e; box-shadow: 0 0 0 5px rgba(255, 189, 46, .18); }
.gg-hero-float-card--banner div { display: grid; flex: 1; gap: 4px; }
.gg-hero-float-card--banner strong { font-size: .69rem; line-height: 1.25; }
.gg-hero-float-card--banner p { margin: 0; color: #747570; font-size: .59rem; line-height: 1.35; }
.gg-hero-float-card--banner > b { color: #8b8000; font-size: 1.1rem; }

@keyframes gg-hero-float-review { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, -10px, 0); } }
@keyframes gg-hero-float-banner { 0%, 100% { transform: translate3d(0, 0, 0); } 50% { transform: translate3d(0, 9px, 0); } }

.gg-landing-v2 .gg-auth-deck-card {
    padding: clamp(20px, 2.2vw, 28px);
    transform: rotate(-1deg);
}

.gg-landing-v2 .gg-auth-deck-ok,
.gg-landing-v2 .gg-auth-deck-ok::after {
    animation: none !important;
}

.gg-landing-v2 .gg-hero-intro .gg-auth-kicker,
.gg-landing-v2 .gg-hero-intro h1 .gg-hero-line > span,
.gg-landing-v2 .gg-hero-intro .gg-auth-lead,
.gg-landing-v2 .gg-hero-intro .gg-auth-cta-row,
.gg-landing-v2 .gg-hero-intro .gg-auth-cta-note,
.gg-landing-v2 .gg-auth-hero .gg-auth-product-stage {
    opacity: 1;
    transform: none;
    animation: none !important;
}

.gg-landing-v2 .gg-auth-proof-strip {
    position: relative;
    z-index: 2;
    width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--v2-line-strong);
    border-radius: 18px;
    overflow: hidden;
    background: var(--v2-surface);
    box-shadow: var(--v2-shadow);
}

.gg-landing-v2 .gg-auth-proof-item {
    min-height: 112px;
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
}

.gg-landing-v2 .gg-auth-proof-item + .gg-auth-proof-item {
    border-left: 1px solid var(--v2-line);
}

.gg-landing-v2 .gg-auth-proof-item strong {
    color: var(--v2-t1);
    font-size: clamp(1.35rem, 2.2vw, 2rem);
    font-weight: 680;
    letter-spacing: -.045em;
}

.gg-landing-v2 .gg-auth-proof-item span {
    color: var(--v2-t2);
    font-size: .84rem;
    line-height: 1.45;
}

.gg-landing-v2 .gg-auth-flow-section,
.gg-landing-v2 .gg-auth-showcase-section,
.gg-landing-v2 .gg-auth-connection {
    width: min(1200px, calc(100% - 40px));
    max-width: none;
    margin: 0 auto;
    padding: clamp(72px, 9vw, 112px) 0;
}

.gg-landing-v2 .gg-auth-section-head {
    max-width: 660px;
    margin-bottom: 36px;
}

.gg-landing-v2 .gg-auth-section-head h2,
.gg-landing-v2 .gg-auth-connection-copy h2 {
    margin: 12px 0 12px;
    color: var(--v2-t1);
    font-size: clamp(2rem, 4vw, 3.6rem);
    font-weight: 660 !important;
    line-height: 1;
    letter-spacing: -.052em !important;
}

.gg-landing-v2 .gg-auth-loop {
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.gg-landing-v2 .gg-auth-loop-step {
    min-height: 250px;
    padding: 24px;
    border-radius: 16px;
    box-shadow: none;
}

.gg-landing-v2 .gg-auth-loop-art {
    width: 48px;
    height: 48px;
    margin-bottom: auto;
    color: var(--v2-t1);
    background: var(--v2-surface-2);
}

.gg-landing-v2 .gg-auth-loop-art svg {
    width: 25px;
    height: 25px;
}

.gg-landing-v2 .gg-auth-loop-step strong {
    margin-top: 44px;
}

.gg-landing-v2 .gg-auth-showcase-section {
    display: grid;
    grid-template-columns: minmax(250px, .52fr) minmax(0, 1fr);
    gap: clamp(40px, 6vw, 88px);
    align-items: start;
    border-top: 1px solid var(--v2-line);
}

.gg-landing-v2 .gg-auth-showcase {
    min-width: 0;
}

.gg-landing-v2 .gg-auth-showcase-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    margin-bottom: 12px;
    border: 1px solid var(--v2-line);
    border-radius: 12px;
    background: var(--v2-surface);
}

.gg-landing-v2 .gg-auth-showcase-tab {
    min-height: 42px;
    padding: 0 16px;
    border: 0;
    border-radius: 9px;
    color: var(--v2-t2);
    background: transparent;
    cursor: pointer;
    font: 650 .83rem/1 var(--v2-sans);
    transition: color .15s ease, background .15s ease;
}

.gg-landing-v2 .gg-auth-showcase-tab:hover {
    color: var(--v2-t1);
}

.gg-landing-v2 .gg-auth-showcase-tab.is-active {
    color: #111;
    background: var(--gg-landing-accent);
}

.gg-landing-v2 .gg-auth-showcase-frame {
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--v2-line-strong);
    border-radius: 18px;
    background: var(--v2-surface);
    box-shadow: var(--v2-shadow);
    animation: gg-landing-view-in .46s cubic-bezier(.16, 1, .3, 1);
}

@keyframes gg-landing-view-in {
    from { opacity: .25; transform: translateY(10px) scale(.992); }
    to { opacity: 1; transform: none; }
}

.gg-landing-v2 .gg-auth-showcase-frame img {
    width: 100%;
    aspect-ratio: 16 / 9;
    display: block;
    object-fit: cover;
    object-position: top left;
    border-bottom: 1px solid var(--v2-line);
}

.gg-landing-v2 .gg-auth-showcase-frame figcaption {
    padding: 18px 20px;
    display: grid;
    gap: 5px;
}

.gg-landing-v2 .gg-auth-showcase-frame strong {
    color: var(--v2-t1);
    font-size: 1rem;
}

.gg-landing-v2 .gg-auth-showcase-frame span {
    color: var(--v2-t2);
    font-size: .85rem;
    line-height: 1.5;
}

.gg-landing-v2 .gg-auth-connection {
    display: grid;
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
    gap: clamp(44px, 7vw, 100px);
    align-items: center;
    border-top: 1px solid var(--v2-line);
}

.gg-landing-v2 .gg-auth-connection-copy p {
    max-width: 54ch;
    margin: 0;
    color: var(--v2-t2);
    font-size: 1rem;
    line-height: 1.65;
}

.gg-landing-v2 .gg-auth-connection-map {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 12px;
}

.gg-landing-v2 .gg-auth-connection-map article,
.gg-landing-v2 .gg-auth-connection-map aside {
    min-height: 190px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    border: 1px solid var(--v2-line-strong);
    border-radius: 16px;
    background: var(--v2-surface);
}

.gg-landing-v2 .gg-auth-connection-map article > span {
    margin-bottom: auto;
    color: var(--v2-t3);
    font: 700 .7rem/1 var(--v2-mono);
}

.gg-landing-v2 .gg-auth-connection-map strong {
    color: var(--v2-t1);
    font-size: 1.02rem;
}

.gg-landing-v2 .gg-auth-connection-map p {
    margin: 7px 0 0;
    color: var(--v2-t2);
    font-size: .82rem;
    line-height: 1.5;
}

.gg-landing-v2 .gg-auth-connection-link {
    display: flex;
    align-items: center;
    color: var(--gg-landing-accent-text);
}

.gg-landing-v2 .gg-auth-connection-link i {
    width: 16px;
    height: 1px;
    background: var(--v2-line-strong);
}

.gg-landing-v2 .gg-auth-connection-link b {
    padding: 0 7px;
    font-size: 1.2rem;
}

.gg-landing-v2 .gg-auth-connection-map aside {
    grid-column: 1 / -1;
    min-height: auto;
    justify-content: flex-start;
    border-color: color-mix(in srgb, var(--gg-landing-accent) 36%, var(--v2-line-strong));
    background: color-mix(in srgb, var(--gg-landing-accent) 7%, var(--v2-surface));
}

.gg-landing-v2 .gg-auth-proof-section {
    width: min(1100px, calc(100% - 40px));
    max-width: none;
    margin: 0 auto clamp(72px, 9vw, 112px);
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 48px;
    padding: clamp(32px, 5vw, 52px);
}

.gg-landing-v2 .gg-auth-proof-cta {
    min-width: 250px;
}

.gg-landing-v2 .gg-auth-proof-cta .gg-auth-cta-row {
    flex-direction: column;
    align-items: stretch;
}

.gg-landing-v2 .gg-auth-proof-cta button {
    width: 100%;
}

.gg-landing-v2 .gg-auth-overlay .gg-auth-panel {
    width: min(440px, 94vw);
}

.gg-landing-v2 .gg-auth-google-button {
    background: var(--v2-surface);
    border-color: var(--v2-line-strong);
}

@media (max-width: 900px) {
    .gg-landing-v2 .gg-auth-nav {
        width: calc(100% - 28px);
    }

    .gg-landing-v2 .gg-auth-nav-link {
        display: inline-flex !important;
    }

    .gg-landing-v2 .gg-auth-hero {
        width: min(680px, calc(100% - 32px));
        min-height: auto;
        padding: 64px 0 72px;
        grid-template-columns: 1fr;
        gap: 46px;
    }

    .gg-landing-v2 .gg-auth-copy,
    .gg-landing-v2 .gg-auth-product-stage {
        width: 100%;
        align-items: flex-start;
    }

    .gg-landing-v2 .gg-auth-copy h1 {
        max-width: 10ch;
    }

    .gg-landing-v2 .gg-auth-trust-promises {
        grid-template-columns: 1fr;
        max-width: 100%;
    }

    .gg-landing-v2 .gg-hero-os-preview { width: min(510px, calc(100% - 70px)); margin-inline: 34px; }

    .gg-landing-v2 .gg-auth-flow-section,
    .gg-landing-v2 .gg-auth-showcase-section,
    .gg-landing-v2 .gg-auth-connection {
        width: min(680px, calc(100% - 32px));
    }

    .gg-landing-v2 .gg-auth-showcase-section,
    .gg-landing-v2 .gg-auth-connection {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .gg-landing-v2 .gg-auth-loop {
        grid-template-columns: 1fr;
    }

    .gg-landing-v2 .gg-auth-loop-step {
        min-height: 210px;
    }

    .gg-landing-v2 .gg-auth-proof-section {
        grid-template-columns: 1fr;
        align-items: stretch;
    }
}

/* Final desktop story layout: the dashboard belongs to the hero. The feature
   images live next to their chapters, where CSS sticky keeps one large visual
   in place while the copy advances. Do not let the experimental hero slides
   participate in layout. */
@media (min-width: 901px) {
    .gg-landing-v2 .gg-hero-story-slide { display: none !important; }

    .gg-landing-v2 .gg-image-story {
        padding-top: clamp(92px, 12vw, 156px);
    }

    .gg-landing-v2 .gg-image-story-head { display: block; }

    .gg-landing-v2 .gg-image-story-grid {
        display: grid;
        grid-template-columns: minmax(280px, .72fr) minmax(520px, 1.28fr);
        gap: clamp(48px, 9vw, 138px);
    }

    .gg-landing-v2 .gg-image-story-visuals {
        display: block !important;
        position: sticky;
        top: max(32px, 14vh);
        width: 100%;
        aspect-ratio: 16 / 10;
        overflow: hidden;
        border-radius: 18px;
        background: var(--v2-surface-2);
    }

    .gg-landing-v2 .gg-image-story-visuals .gg-image-story-visual:first-child {
        display: block;
    }

    .gg-landing-v2.gg-image-story-ready .gg-image-story-visuals .gg-image-story-visual {
        display: block;
        position: absolute;
        inset: 0;
        opacity: 0;
        visibility: hidden;
        transform: scale(.985);
        transition: opacity .42s ease, transform .42s ease, visibility 0s linear .42s;
    }

    .gg-landing-v2.gg-image-story-ready .gg-image-story-visuals .gg-image-story-visual.is-active {
        z-index: 1;
        opacity: 1;
        visibility: visible;
        transform: none;
        transition-delay: 0s;
    }

    .gg-landing-v2 .gg-image-story-chapter {
        min-height: min(66vh, 710px);
    }
}

/* The right-side banner is the story surface: it stays present while the
   chapters on the left advance it from dashboard to each coach workflow. */
@media (min-width: 901px) {
    .gg-landing-v2 .gg-auth-hero {
        grid-template-columns: minmax(0, .7fr) minmax(620px, 1.3fr);
        gap: clamp(42px, 6vw, 96px);
    }

    .gg-landing-v2 .gg-auth-copy { max-width: 540px; }
    .gg-landing-v2 .gg-auth-product-stage { width: 100%; }
    .gg-landing-v2 .gg-coach-story-visual {
        width: 100%;
        aspect-ratio: 16 / 10;
        overflow: hidden;
        border-radius: 18px;
        background: var(--v2-surface-2);
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-hero-story-visual] {
        display: none;
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
        overflow: hidden;
        border: 0;
        border-radius: 0;
        background: var(--v2-surface-2);
        box-shadow: none;
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-hero-story-visual]:first-child { display: block; }

    .gg-landing-v2.gg-image-story-ready .gg-coach-story-visual [data-gg-hero-story-visual] {
        display: block;
        opacity: 0;
        visibility: hidden;
        transform: scale(1.015);
        transition: opacity .55s cubic-bezier(.16, 1, .3, 1), transform .7s cubic-bezier(.16, 1, .3, 1), visibility 0s linear .55s;
    }

    /* JS enhancement must never leave the banner blank while it initializes. */
    .gg-landing-v2.gg-image-story-ready .gg-coach-story-visual [data-gg-hero-story-visual]:first-child {
        opacity: 1;
        visibility: visible;
        transform: scale(1);
    }

    .gg-landing-v2.gg-image-story-ready .gg-coach-story-visual [data-gg-hero-story-visual].is-active {
        z-index: 1;
        opacity: 1;
        visibility: visible;
        transform: scale(1);
        transition-delay: 0s;
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-hero-story-visual] img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .gg-landing-v2 .gg-hero-story-slide--placeholder {
        display: grid !important;
        place-items: center;
        color: var(--gg-landing-accent-text);
        background: linear-gradient(145deg, color-mix(in srgb, var(--v2-surface-2) 94%, var(--gg-landing-accent)), var(--v2-surface));
        font: 750 1.15rem/1 var(--v2-mono);
        letter-spacing: .08em;
    }

    .gg-landing-v2 .gg-hero-story-slide--placeholder > span {
        display: grid;
        place-items: center;
        width: 112px;
        height: 112px;
        border: 1px solid var(--v2-line-strong);
        border-radius: 50%;
        background: color-mix(in srgb, var(--v2-bg) 72%, transparent);
    }

    .gg-landing-v2 .gg-hero-story-slide--placeholder > i {
        position: absolute;
        width: 32px;
        height: 2px;
        margin-top: 48px;
        background: var(--gg-landing-accent);
    }

    .gg-landing-v2 .gg-image-story { padding-top: 26px; }
    .gg-landing-v2 .gg-image-story-head { display: none; }
    .gg-landing-v2 .gg-image-story-grid { grid-template-columns: minmax(0, .7fr) minmax(620px, 1.3fr); gap: clamp(42px, 6vw, 96px); }
    .gg-landing-v2 .gg-image-story-visuals { display: none; }
    .gg-landing-v2 .gg-image-story-chapter { min-height: min(72vh, 760px); }
}

@media (max-width: 620px) {
    .gg-landing-v2 .gg-auth-nav {
        min-height: 62px;
        margin-top: 8px;
        padding-left: 10px;
    }

    .gg-landing-v2 .gg-auth-brand-mark {
        width: 34px;
        height: 34px;
    }

    .gg-landing-v2 .gg-auth-brand-sub,
    .gg-landing-v2 .gg-auth-nav-actions > :not(.gg-auth-nav-link):not(.gg-language-switcher) {
        display: none;
    }

    .gg-landing-v2 .gg-auth-nav-link {
        min-height: 42px;
        padding: 0 13px;
    }

    .gg-landing-v2 .gg-auth-hero {
        padding-top: 48px;
    }

    .gg-landing-v2 .gg-auth-copy h1 {
        font-size: clamp(2.75rem, 13vw, 4rem);
    }

    .gg-landing-v2 .gg-auth-cta-row,
    .gg-landing-v2 .gg-auth-primary-cta,
    .gg-landing-v2 .gg-auth-secondary-cta {
        width: 100%;
    }

    .gg-landing-v2 .gg-hero-os-preview {
        width: calc(100% - 20px);
        min-height: 420px;
        margin: 0 10px;
        padding: 14px;
        border-radius: 19px;
        transform: none;
    }

    .gg-hero-os-main { right: 14px; bottom: 14px; left: 14px; padding: 14px; }
    .gg-hero-float-card--review { top: 56px; left: -18px; width: 68%; }
    .gg-hero-float-card--banner { right: -18px; bottom: 108px; width: 69%; }
    .gg-hero-float-card--review p { display: none; }

    .gg-landing-v2 .gg-auth-proof-strip {
        width: calc(100% - 32px);
        grid-template-columns: 1fr;
    }

    .gg-landing-v2 .gg-auth-proof-item {
        min-height: 88px;
        padding: 18px 20px;
    }

    .gg-landing-v2 .gg-auth-proof-item + .gg-auth-proof-item {
        border-top: 1px solid var(--v2-line);
        border-left: 0;
    }

    .gg-landing-v2 .gg-auth-showcase-tabs {
        width: 100%;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .gg-landing-v2 .gg-auth-showcase-tab {
        padding: 0 8px;
    }

    .gg-landing-v2 .gg-auth-connection-map {
        grid-template-columns: 1fr;
    }

    .gg-landing-v2 .gg-auth-connection-link {
        justify-content: center;
        transform: rotate(90deg);
    }

    .gg-landing-v2 .gg-auth-connection-map aside {
        grid-column: auto;
    }

    .gg-landing-v2 .gg-auth-proof-section {
        width: calc(100% - 32px);
        padding: 26px 22px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gg-landing-v2 .gg-auth-showcase-frame {
        animation: none;
    }
}

/* Image-led product story. The hero stays calm; feature moments switch only in
   this separate section, so scrolling never takes control away from the reader. */
.gg-landing-v2 .gg-coach-story-copy,
.gg-landing-v2 .gg-coach-photo-wash,
.gg-landing-v2 .gg-coach-os-proof,
.gg-landing-v2 .gg-coach-story-progress {
    display: none !important;
}

.gg-landing-v2 .gg-coach-story-visual,
.gg-landing-v2 .gg-hero-coach-still {
    display: block;
    position: relative;
    min-height: 0;
    aspect-ratio: auto;
}

.gg-landing-v2 .gg-hero-coach-photo {
    border: 0;
    border-radius: 14px;
    box-shadow: none;
}

.gg-landing-v2 .gg-hero-coach-photo img {
    aspect-ratio: 16 / 10;
}

.gg-landing-v2 .gg-landing-content-sheet--image-story {
    border-top: 1px solid var(--v2-line-strong);
}

.gg-landing-v2 .gg-image-story {
    width: min(1200px, calc(100% - 40px));
    margin: 0 auto;
    padding: clamp(92px, 12vw, 156px) 0;
}

.gg-landing-v2 .gg-image-story-head {
    max-width: 680px;
    margin-bottom: clamp(56px, 8vw, 100px);
}

.gg-landing-v2 .gg-image-story-head .gg-auth-kicker { margin: 0 0 16px; }

.gg-landing-v2 .gg-image-story-head h2 {
    max-width: 12ch;
    margin: 0 0 18px;
    color: var(--v2-t1);
    font-size: clamp(2.45rem, 5vw, 4.7rem);
    font-weight: 680;
    line-height: .96;
    letter-spacing: -.058em;
}

.gg-landing-v2 .gg-image-story-head p {
    max-width: 56ch;
    margin: 0;
    color: var(--v2-t2);
    font-size: clamp(1rem, 1.35vw, 1.13rem);
    line-height: 1.62;
}

.gg-landing-v2 .gg-image-story-grid {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(480px, 1.28fr);
    align-items: start;
    gap: clamp(48px, 9vw, 138px);
}

.gg-landing-v2 .gg-image-story-copy { display: grid; }

.gg-landing-v2 .gg-image-story-chapter {
    display: grid;
    align-content: center;
    min-height: min(58vh, 610px);
    padding: 28px 0;
    color: var(--v2-t1);
    opacity: .42;
    transition: opacity .35s ease;
}

.gg-landing-v2 .gg-image-story-chapter.is-active { opacity: 1; }

.gg-landing-v2 .gg-image-story-chapter > span {
    margin-bottom: 15px;
    color: var(--gg-landing-accent-text);
    font: 750 .72rem/1 var(--v2-mono);
    letter-spacing: .13em;
}

.gg-landing-v2 .gg-image-story-chapter h3 {
    max-width: 11ch;
    margin: 0 0 16px;
    font-size: clamp(2rem, 3.25vw, 3.55rem);
    font-weight: 680;
    line-height: .98;
    letter-spacing: -.052em;
}

.gg-landing-v2 .gg-image-story-chapter p {
    max-width: 36ch;
    margin: 0;
    color: var(--v2-t2);
    font-size: 1rem;
    line-height: 1.6;
}

.gg-landing-v2 .gg-image-story-visuals {
    position: sticky;
    top: max(32px, 14vh);
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: 16px;
    background: var(--v2-surface-2);
}

.gg-landing-v2 .gg-image-story-visual {
    display: none;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: hidden;
    background: var(--v2-surface-2);
}

.gg-landing-v2 .gg-image-story-visual:first-child { display: block; }
.gg-landing-v2.gg-image-story-ready .gg-image-story-visual {
    display: block;
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transform: scale(.985);
    transition: opacity .42s ease, transform .42s ease, visibility 0s linear .42s;
}

.gg-landing-v2.gg-image-story-ready .gg-image-story-visual.is-active {
    z-index: 1;
    opacity: 1;
    visibility: visible;
    transform: scale(1);
    transition-delay: 0s;
}

.gg-landing-v2 .gg-image-story-visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.gg-landing-v2 .gg-image-story-placeholder {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, color-mix(in srgb, var(--v2-surface-2) 94%, var(--gg-landing-accent)), var(--v2-surface));
}

.gg-landing-v2 .gg-image-story-placeholder > div {
    display: grid;
    place-items: center;
    gap: 15px;
    width: 110px;
    height: 110px;
    border: 1px solid var(--v2-line-strong);
    border-radius: 50%;
    color: var(--gg-landing-accent-text);
    background: color-mix(in srgb, var(--v2-bg) 72%, transparent);
    font: 750 1.15rem/1 var(--v2-mono);
    letter-spacing: .08em;
}

.gg-landing-v2 .gg-image-story-placeholder i {
    display: block;
    width: 32px;
    height: 2px;
    background: var(--gg-landing-accent);
}

@media (max-width: 900px) {
    .gg-landing-v2 .gg-image-story { width: min(100% - 32px, 640px); padding: 76px 0; }
    .gg-landing-v2 .gg-image-story-head { margin-bottom: 46px; }
    .gg-landing-v2 .gg-image-story-grid { grid-template-columns: 1fr; gap: 30px; }
    .gg-landing-v2 .gg-image-story-chapter { min-height: auto; padding: 0 0 48px; opacity: 1; }
    .gg-landing-v2 .gg-image-story-chapter h3 { max-width: 15ch; }
    .gg-landing-v2 .gg-image-story-visuals { position: static; display: grid; gap: 16px; aspect-ratio: auto; overflow: visible; background: transparent; }
    .gg-landing-v2 .gg-image-story-visual,
    .gg-landing-v2.gg-image-story-ready .gg-image-story-visual { display: block; position: relative; aspect-ratio: 16 / 10; opacity: 1; visibility: visible; transform: none; border-radius: 14px; }
}

/* Landing-page story finalization.
   Keep the hero quiet and let the large right-hand feature canvas be the single
   scroll-driven visual. This is intentionally placed last: earlier iterations
   contained experimental hero-slide rules that must not affect this surface. */
@media (min-width: 901px) {
    .gg-landing-v2 .gg-hero-story-slide {
        display: none !important;
    }

    .gg-landing-v2 .gg-image-story {
        padding: clamp(78px, 9vw, 116px) 0 clamp(108px, 12vw, 156px);
    }

    .gg-landing-v2 .gg-image-story-head {
        display: block;
        margin-bottom: clamp(40px, 5vw, 68px);
    }

    .gg-landing-v2 .gg-image-story-grid {
        display: grid;
        grid-template-columns: minmax(300px, .72fr) minmax(560px, 1.28fr);
        align-items: start;
        gap: clamp(48px, 8vw, 120px);
    }

    .gg-landing-v2 .gg-image-story-chapter {
        min-height: min(66vh, 700px);
        padding: 28px 0;
    }

    .gg-landing-v2 .gg-image-story-visuals {
        display: block !important;
        position: sticky !important;
        top: clamp(28px, 12vh, 112px);
        width: 100%;
        aspect-ratio: 16 / 10;
        overflow: hidden;
        border: 1px solid var(--v2-line-strong);
        border-radius: 18px;
        background: var(--v2-surface-2);
        box-shadow: 0 28px 70px color-mix(in srgb, var(--v2-bg) 24%, transparent);
    }

    .gg-landing-v2 .gg-image-story-visuals .gg-image-story-visual {
        display: none !important;
    }

    .gg-landing-v2 .gg-image-story-visuals .gg-image-story-visual:first-child {
        display: block !important;
        position: relative;
        inset: auto;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .gg-landing-v2.gg-image-story-ready .gg-image-story-visuals .gg-image-story-visual {
        display: block !important;
        position: absolute;
        inset: 0;
        opacity: 0;
        visibility: hidden;
        transform: scale(.985);
        transition: opacity .42s ease, transform .42s ease, visibility 0s linear .42s;
    }

    .gg-landing-v2.gg-image-story-ready .gg-image-story-visuals .gg-image-story-visual.is-active {
        z-index: 1;
        opacity: 1;
        visibility: visible;
        transform: scale(1);
        transition-delay: 0s;
    }
}

/* Final continuous hero sequence. Kept last to supersede all retired story CSS. */
@media (min-width: 901px) {
    .gg-landing-v2 .gg-landing-content-sheet--hero {
        overflow: visible;
    }

    .gg-landing-v2 .gg-landing-content-sheet--image-story {
        display: none !important;
    }

    .gg-landing-v2 .gg-auth-hero {
        align-items: start;
        min-height: auto;
        padding-bottom: clamp(96px, 12vw, 160px);
    }

    .gg-landing-v2 .gg-hero-story-chapters {
        display: grid;
        margin-top: clamp(90px, 13vh, 152px);
    }

    .gg-landing-v2 .gg-hero-story-chapters .gg-image-story-chapter {
        display: grid;
        align-content: center;
        min-height: min(66vh, 700px);
        padding: 28px 0;
        color: var(--v2-t1);
        opacity: .4;
        transition: opacity .35s ease;
    }

    .gg-landing-v2 .gg-hero-story-chapters .gg-image-story-chapter.is-active {
        opacity: 1;
    }

    .gg-landing-v2 .gg-auth-product-stage {
        position: sticky;
        /* Keep the banner at its natural initial Y-position from the first
           scroll pixel; it must not slide up before becoming sticky. */
        top: calc(clamp(48px, 7vh, 80px) + 88px);
        align-self: start;
        z-index: 1;
        width: 100%;
        margin-left: 0;
        pointer-events: none;
    }

    /* On wide screens expand only into the unused right-side space. */
    @media (min-width: 1500px) {
        .gg-landing-v2 .gg-auth-product-stage {
            width: calc(100% + min(14vw, 260px));
        }
    }

    .gg-landing-v2 .gg-coach-story-visual {
        position: relative;
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
        overflow: hidden;
        border: 0;
        border-radius: 26px;
        background: var(--v2-bg) !important;
        box-shadow: 0 34px 84px color-mix(in srgb, var(--v2-bg) 18%, transparent);
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-scroll-visual] {
        display: none !important;
        width: 100%;
        height: 100%;
        margin: 0;
        overflow: hidden;
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-scroll-visual]:first-child {
        display: block !important;
        position: relative;
    }

    .gg-landing-v2 .gg-coach-story-visual [data-gg-scroll-visual] img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .gg-landing-v2.gg-hero-image-story-ready .gg-coach-story-visual [data-gg-scroll-visual] {
        display: block !important;
        position: absolute;
        inset: 0;
        opacity: 0;
        visibility: hidden;
        transform: scale(.985);
        transition: opacity .42s ease, transform .42s ease, visibility 0s linear .42s;
    }

    .gg-landing-v2.gg-hero-image-story-ready .gg-coach-story-visual [data-gg-scroll-visual].is-active {
        z-index: 1;
        opacity: 1;
        visibility: visible;
        transform: scale(1);
        transition-delay: 0s;
    }
}
