/* ==========================================================================
   LinkTwin Landing 6 kit: the shared look of the app landing pages
   (/youtube-app-links, /amazon-app-deep-links, /music-podcast-app-links).

   Forked from the25-home6.css (the /home-6 page) with every class renamed
   h6-* -> l6-* and the values kept identical, so these pages match home-6
   pixel for pixel without depending on it. Never link the25-home6.css from
   a landing page: another session owns it.

   Scope: everything lives under .l6-page (the <main> of each page) plus
   .l6-social (the wrapper around the shared social_wall partial).
   Behaviour: js/the25-landing6.js. Markup: partials/landing6/*.php.
   Per-page sections go in css/the25-landing6-{youtube|amazon|music}.css.
   Reference for page authors: see the kit notes in the docblocks of each
   partial in storage/themes/the25/partials/landing6/.
   ========================================================================== */

/* Display face: Nunito Sans Black (900). Declared for 700-900 so every
   display rule written as weight 700 gets this cut. Same files as home-6. */
@font-face {
    font-family: "Nunito Sans L6";
    font-style: normal;
    font-weight: 700 900;
    font-display: swap;
    src: url("../fonts/Nunito_Sans/nunito-sans-latin-900.woff2") format("woff2");
}

@font-face {
    font-family: "DM Sans L6";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("../fonts/DM_Sans/dm-sans-v11-latin-regular.woff2") format("woff2");
}

@font-face {
    font-family: "DM Sans L6";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("../fonts/DM_Sans/dm-sans-v11-latin-700.woff2") format("woff2");
}

/* ==========================================================================
   Tokens
   ========================================================================== */

.l6-page,
.l6-social {
    --l6-ink: #0d1b2e;        /* headings, ink borders, pressed pills, hard shadow */
    --l6-body: #465366;       /* body copy */
    --l6-muted: #5b6678;      /* labels, footnotes */
    --l6-line: #dce3ec;       /* hairlines, card borders */
    --l6-paper: #ffffff;
    --l6-haze: #f1f5fa;       /* alternate section bg, chip bg */
    --l6-blue: #0967f2;       /* buttons, big stat, final panel */
    --l6-blue-deep: #0648b5;  /* links, button hover */
    --l6-stop: #e5484d;       /* "bad" red */
    --l6-stop-soft: #fdecec;
    --l6-go: #13a56b;         /* "good" green */
    --l6-go-soft: #e4f6ee;
    --l6-navy: #0b1734;       /* dark panels: chart, router, analytics tile */
    --l6-sky: #5ea8ff;        /* hot path, focus ring on dark */
    --l6-mint: #5ee0a0;       /* success on dark, hero input focus */
    --l6-coral: #ff6b70;      /* "bad" bars on dark */
    --l6-bar-blue: #4b9bff;   /* "good" bars on dark */
    --l6-link-on-dark: #8fc0ff;
    --l6-amber: #ffc66b;      /* notes on dark ("One extra tap") */
    --l6-amber-deep: #8a5200; /* the same note on white */
    --l6-display: "Nunito Sans L6", "Nunito Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --l6-text: "DM Sans L6", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --l6-ui: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Arial, sans-serif;
}

/* ==========================================================================
   Page shell
   ========================================================================== */

.l6-page {
    overflow-x: clip;
    background: var(--l6-paper);
    color: var(--l6-body);
    font-family: var(--l6-text);
    font-size: 17px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

.l6-page *,
.l6-page *::before,
.l6-page *::after {
    box-sizing: border-box;
}

.l6-page h1,
.l6-page h2,
.l6-page h3 {
    color: var(--l6-ink);
}

.l6-page p {
    margin: 0;
}

.l6-page a {
    color: var(--l6-blue-deep);
}

.l6-page a:focus-visible,
.l6-page button:focus-visible,
.l6-page summary:focus-visible,
.l6-page input:focus-visible {
    outline: 3px solid rgba(9, 103, 242, 0.45);
    outline-offset: 3px;
}

.l6-wrap {
    width: min(100% - 48px, 1320px);
    margin-inline: auto;
}

/* ==========================================================================
   Sections, heads, splits
   ========================================================================== */

.l6-section {
    padding: clamp(72px, 9vw, 120px) 0;
}

.l6-section--haze {
    background: var(--l6-haze);
}

/* Full-bleed navy band (home-6 uses it once, for the reels). Use sparingly. */
.l6-section--navy {
    background:
        radial-gradient(45% 60% at 85% 30%, rgba(9, 103, 242, 0.35), transparent 70%),
        radial-gradient(35% 50% at 0% 100%, rgba(225, 48, 108, 0.2), transparent 70%),
        #0b1734;
    color: rgba(255, 255, 255, 0.74);
}

.l6-section--navy .l6-h2 {
    color: #fff;
}

.l6-h2 {
    margin: 0 0 18px;
    font-family: var(--l6-display);
    font-size: clamp(2rem, 3.3vw, 3rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.06;
    text-wrap: balance;
}

/* Muted bold line above an H2 (the X wall's overline style) */
.l6-eyebrow {
    display: block;
    margin: 0 0 6px !important;
    color: var(--l6-muted);
    font-family: var(--l6-text);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.l6-section--navy .l6-eyebrow,
.l6-hero .l6-eyebrow {
    color: rgba(255, 255, 255, 0.62);
}

.l6-head {
    max-width: 44rem;
    margin-bottom: clamp(36px, 4vw, 52px);
}

.l6-head p {
    font-size: 1.08rem;
}

.l6-head p + p {
    margin-top: 12px;
}

/* Copy 5 : visual 7. Variants: --center (vertical centring), --even (1:1),
   --flip (visual first on desktop, 7 : 5). */
.l6-split {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(40px, 5vw, 80px);
    align-items: start;
}

.l6-split--center {
    align-items: center;
}

.l6-split--even {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.l6-split--flip {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
}

.l6-split-intro {
    position: sticky;
    top: 110px;
}

.l6-split-intro p {
    max-width: 30em;
}

.l6-split > div > p + p {
    margin-top: 14px;
}

/* ==========================================================================
   Hero (navy, 5fr / 7fr: copy + video)
   ========================================================================== */

.l6-hero {
    position: relative;
    padding: clamp(36px, 4.5vw, 64px) 0 clamp(56px, 6vw, 88px);
    overflow: hidden;
    background:
        radial-gradient(55% 65% at 82% 34%, rgba(9, 103, 242, 0.5), transparent 62%),
        radial-gradient(38% 46% at 6% 96%, rgba(225, 48, 108, 0.24), transparent 70%),
        radial-gradient(30% 40% at 48% 0%, rgba(94, 224, 160, 0.1), transparent 70%),
        linear-gradient(180deg, #0b1838 0%, #07102a 100%);
    color: rgba(255, 255, 255, 0.78);
}

.l6-hero .l6-display {
    color: #fff;
}

.l6-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(40px, 4.5vw, 72px);
    align-items: center;
}

.l6-display {
    margin: 0;
    font-family: var(--l6-display);
    font-size: clamp(2.5rem, 4.3vw, 4.4rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
    text-wrap: balance;
}

.l6-lead {
    max-width: 34em;
    margin-top: 24px !important;
    font-size: clamp(1.05rem, 1.3vw, 1.18rem);
    line-height: 1.6;
}

.l6-form-note {
    margin-top: 12px !important;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.86rem;
}

.l6-proof {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 30px;
}

.l6-proof-faces {
    display: flex;
}

.l6-proof-faces img {
    width: 34px;
    height: 34px;
    margin-left: -10px;
    border: 2px solid #0b1838;
    border-radius: 50%;
    object-fit: cover;
}

.l6-proof-faces img:first-child {
    margin-left: 0;
}

.l6-proof p {
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.35;
}

.l6-proof small {
    display: flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.8rem;
    font-weight: 400;
}

.l6-proof small img {
    width: 16px;
    height: 16px;
    border-radius: 3px;
    background: #fff;
}

/* ==========================================================================
   Link form (shared partials/hero_url_generator), restyled. The one
   neo-brutal signature: ink border + hard offset shadow.
   ========================================================================== */

.l6-page .l6-form {
    margin-top: 30px;
}

.l6-page .l6-form .lp3-url-form-wrapper {
    width: 100%;
    max-width: none;
    margin: 0;
    gap: 0;
    align-items: stretch;
}

.l6-page .l6-form .lp3-url-input-group {
    min-height: 62px;
    overflow: hidden;
    border: 1.5px solid var(--l6-ink);
    border-radius: 14px;
    background: var(--l6-paper);
    box-shadow: 4px 4px 0 var(--l6-ink);
    transition: box-shadow 160ms ease, transform 160ms ease;
}

.l6-page .l6-form .lp3-url-input-group:focus-within {
    transform: translate(-1px, -1px);
    box-shadow: 5px 5px 0 var(--l6-blue);
}

.l6-page .l6-form .lp3-url-icon {
    padding-left: 18px;
    color: var(--l6-blue) !important;
}

.l6-page .l6-form input.lp3-url-input {
    min-height: 60px;
    padding: 14px 48px 14px 12px;
    color: var(--l6-ink);
    font-family: var(--l6-text);
    font-size: 0.98rem;
    text-overflow: ellipsis; /* long translated placeholders end in "…" instead of a hard cut */
}

.l6-page .l6-form input.lp3-url-input::placeholder {
    color: #7d8799;
}

.l6-page .l6-form .lp3-btn-paste {
    right: 6px;
    color: #7d8799;
}

.l6-page .l6-form .lp3-btn-paste:hover {
    background: var(--l6-haze);
    color: var(--l6-blue);
}

.l6-page .l6-form .lp3-url-submit {
    min-height: 50px;
    margin: 5px;
    padding: 0 20px;
    border-radius: 10px;
    background: var(--l6-blue);
    color: #fff;
    font-family: var(--l6-text);
    font-size: 0.95rem;
    font-weight: 700;
    transition: background-color 160ms ease;
}

.l6-page .l6-form .lp3-url-submit:hover {
    transform: none;
    background: var(--l6-blue-deep);
    box-shadow: none;
}

.l6-page .l6-form .lp3-url-submit-icon {
    width: auto;
    height: auto;
    background: transparent;
}

/* Validation message (the25-hero-form.js inserts p.lp3-url-error) */
.l6-page .l6-form .lp3-url-error {
    margin-top: 10px !important;
    font-size: 0.86rem;
    font-weight: 700;
}

.l6-page .l6-hero .l6-form .lp3-url-error {
    color: #ffb4b6;
}

/* Hero field on the dark background */
.l6-page .l6-hero .l6-form .lp3-url-input-group {
    border-color: #fff;
    box-shadow: 4px 4px 0 var(--l6-blue);
}

.l6-page .l6-hero .l6-form .lp3-url-input-group:focus-within {
    box-shadow: 5px 5px 0 #5ee0a0;
}

/* On the blue final panel */
.l6-page .l6-form--final {
    margin-top: 0;
}

.l6-page .l6-form--final .lp3-url-input-group {
    border-color: var(--l6-ink);
}

.l6-page .l6-form--final .lp3-url-input-group:focus-within {
    box-shadow: 5px 5px 0 #fff;
}

.l6-page .l6-form--final .lp3-url-submit {
    background: var(--l6-ink);
}

.l6-page .l6-form--final .lp3-url-submit:hover {
    background: #1d3354;
}

.l6-page .l6-form--final .lp3-url-error {
    color: #fff;
}

.l6-form-note--final {
    color: #fff; /* AA on the blue panel (0.82 white was 3.8:1) */
}

/* On a white or haze section */
.l6-form-note--light {
    color: var(--l6-muted);
}

/* ==========================================================================
   Explainer video (partials/landing6/video.php). The poster shows until
   play (.is-playing hides it); from data-cta-at the end card is up and
   .l6-video-end puts the real CTA on the spot the film leaves empty:
   CTA_TOP 790 / CTA_HEIGHT 110 of the 1080 x 1350 frame (End.tsx). A film
   with other geometry sets --cta-top / --cta-h on the figure.
   ========================================================================== */

.l6-video {
    position: relative;
    justify-self: center;
    width: min(100%, 520px);
    margin: 0;
}

.l6-video-frame {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 28px;
    background: #0a1536;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45), 0 0 0 8px rgba(255, 255, 255, 0.04);
    container-type: inline-size;
}

.l6-video-media,
.l6-video-poster {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.l6-video-poster {
    z-index: 1;
    cursor: pointer;
}

.l6-video [hidden] {
    display: none !important;
}

.l6-video-play {
    position: absolute;
    z-index: 2;
    bottom: 6.5%;
    left: 50%;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 8px 24px 8px 8px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45);
    color: var(--l6-ink);
    font-family: var(--l6-text);
    text-align: left;
    white-space: nowrap;
    cursor: pointer;
    transform: translateX(-50%);
    transition: transform 160ms ease;
}

.l6-video-play:hover {
    transform: translateX(-50%) scale(1.04);
}

.l6-video-play-icon {
    position: relative;
    display: grid;
    flex: none;
    place-items: center;
    width: 48px;
    height: 48px;
    padding-left: 3px;
    border-radius: 50%;
    background: var(--l6-blue);
    color: #fff;
    font-size: 17px;
    animation: l6-video-pulse 2.2s ease-out infinite;
}

.l6-video-play-text b {
    display: block;
    font-size: 1rem;
    line-height: 1.2;
}

.l6-video-play-text small {
    display: block;
    color: var(--l6-muted);
    font-size: 0.8rem;
    line-height: 1.3;
}

@container (max-width: 420px) {
    .l6-video-play {
        bottom: 3%;
        gap: 10px;
        padding: 6px 18px 6px 6px;
    }

    .l6-video-play-icon {
        width: 40px;
        height: 40px;
        font-size: 14px;
    }

    .l6-video-play-text b {
        font-size: 0.92rem;
    }

    .l6-video-play-text small {
        font-size: 0.74rem;
    }
}

.l6-video.is-playing .l6-video-poster,
.l6-video.is-playing .l6-video-play {
    visibility: hidden;
    opacity: 0;
    transition: opacity 250ms ease, visibility 0s linear 250ms;
}

.l6-video-end {
    position: absolute;
    z-index: 3;
    top: var(--cta-top, 58.5%);
    right: 0;
    left: 0;
    height: var(--cta-h, 8.15%);
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    animation: l6-video-in 420ms cubic-bezier(0.2, 0.8, 0.2, 1.3);
}

.l6-page .l6-video-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    height: 100%;
    padding: 0 1.15em;
    border-radius: 999px;
    background: var(--l6-blue);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.25), 0 18px 50px rgba(9, 103, 242, 0.75);
    color: #fff;
    font-family: var(--l6-text);
    font-size: max(15px, 4.6cqw);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.l6-page .l6-video-cta:hover {
    background: var(--l6-blue-deep);
    color: #fff;
}

.l6-video-replay {
    display: grid;
    flex: none;
    place-items: center;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    background: rgba(7, 16, 40, 0.6);
    color: #fff;
    font-size: 15px;
    cursor: pointer;
}

.l6-video-replay:hover {
    background: rgba(7, 16, 40, 0.85);
}

/* 1x / 1.5x / 2x toggle: sits in the hero's bottom padding, out of the film's way.
   Absolute, so it never shifts the layout; shown once the film plays. */
.l6-video-speed {
    position: absolute;
    z-index: 2;
    top: calc(100% + 16px);
    left: 50%;
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    transform: translateX(-50%);
    visibility: hidden;
    opacity: 0;
    transition: opacity 250ms ease, visibility 0s linear 250ms;
}

.l6-video.is-playing .l6-video-speed {
    visibility: visible;
    opacity: 1;
    transition: opacity 250ms ease;
}

.l6-video-speed button {
    min-width: 46px;
    height: 30px;
    padding: 0 12px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font-family: var(--l6-text);
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
}

.l6-video-speed button:hover {
    background: rgba(255, 255, 255, 0.14);
}

.l6-video-speed button[aria-pressed="true"] {
    background: #fff;
    color: var(--l6-ink);
}

.l6-video button:focus-visible,
.l6-video a:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

@keyframes l6-video-pulse {
    0%        { box-shadow: 0 0 0 0 rgba(9, 103, 242, 0.55); }
    70%, 100% { box-shadow: 0 0 0 14px rgba(9, 103, 242, 0); }
}

@keyframes l6-video-in {
    from { opacity: 0; transform: scale(0.8); }
    to   { opacity: 1; transform: none; }
}

/* Static stand-in, same 4:5 frame, while a page's film is not rendered yet.
   Everything is sized in cqw so it scales with the frame. */
.l6-video-fallback {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5cqw;
    padding: 9cqw 8cqw;
    background:
        radial-gradient(70% 45% at 50% 22%, rgba(9, 103, 242, 0.5), transparent 70%),
        radial-gradient(50% 40% at 0% 100%, rgba(225, 48, 108, 0.18), transparent 70%),
        linear-gradient(180deg, #0b1838 0%, #07102a 100%);
    color: #fff;
    text-align: center;
}

.l6-vf-token {
    width: 24cqw;
    height: 24cqw;
    object-fit: contain;
    animation: l6-bob 3.2s ease-in-out infinite;
}

.l6-vf-title {
    max-width: 16em;
    color: #fff;
    font-family: var(--l6-display);
    font-size: 7.2cqw;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.08;
    text-wrap: balance;
}

.l6-vf-rows {
    display: grid;
    gap: 2.4cqw;
    width: 100%;
    max-width: 78cqw;
    text-align: left;
}

.l6-vf-row {
    display: flex;
    align-items: center;
    gap: 3cqw;
    padding: 2.6cqw 3.4cqw 2.6cqw 2.6cqw;
    border-radius: 3.6cqw;
    font-size: 3.6cqw;
    line-height: 1.25;
}

.l6-vf-row b {
    display: block;
    font-size: 1.05em;
}

.l6-vf-row small {
    display: block;
    font-size: 0.86em;
}

.l6-vf-row--bad {
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.72);
}

.l6-vf-row--bad b {
    color: #fff;
}

.l6-vf-row--good {
    background: #fff;
    box-shadow: 0 0 0 1.2cqw rgba(94, 224, 160, 0.25), 0 4cqw 9cqw rgba(0, 0, 0, 0.35);
    color: var(--l6-muted);
}

.l6-vf-row--good b {
    color: var(--l6-ink);
}

.l6-vf-ico {
    display: grid;
    flex: none;
    place-items: center;
    width: 7.4cqw;
    height: 7.4cqw;
    border-radius: 50%;
    font-size: 3cqw;
}

.l6-vf-row--bad .l6-vf-ico {
    background: var(--l6-stop);
    color: #fff;
}

.l6-vf-row--good .l6-vf-ico {
    margin-left: auto;
    background: var(--l6-go);
    color: #fff;
}

.l6-vf-row img {
    flex: none;
    width: 7.4cqw;
    height: 7.4cqw;
    padding: 0.8cqw;
    border-radius: 2cqw;
    background: #fff;
    box-shadow: 0 0 0 1px var(--l6-line);
}

/* ==========================================================================
   Apps strip ("Share it on" / "Opens in", never "Trusted by")
   ========================================================================== */

.l6-apps {
    border-top: 1px solid var(--l6-line);
    border-bottom: 1px solid var(--l6-line);
}

.l6-apps-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 28px;
    padding: 22px 0;
}

.l6-apps-row + .l6-apps-row {
    padding-top: 0;
}

.l6-apps-row p {
    min-width: 6.5em;
    color: var(--l6-muted);
    font-size: 0.9rem;
}

.l6-apps-row ul {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-apps-row li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--l6-ink);
    font-size: 0.92rem;
    font-weight: 700;
}

.l6-apps-row li img {
    width: 22px;
    height: 22px;
}

.l6-apps-row a {
    margin-left: auto;
    font-size: 0.92rem;
    font-weight: 700;
    text-underline-offset: 3px;
}

/* ==========================================================================
   Cost: big number + steps chart (partials/landing6/steps_chart.php)
   ========================================================================== */

.l6-cost-top {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(40px, 5vw, 80px);
    align-items: center;
}

.l6-bigstat {
    display: flex;
    align-items: flex-end;
    gap: 18px;
    margin-top: 32px;
}

.l6-bigstat b {
    color: var(--l6-blue);
    font-family: var(--l6-display);
    font-size: clamp(5rem, 9vw, 8rem);
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 0.78;
}

.l6-bigstat span {
    max-width: 11em;
    padding-bottom: 4px;
    color: var(--l6-ink);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
}

.l6-chart {
    margin: 0;
    padding: clamp(22px, 3vw, 34px);
    border-radius: 24px;
    background: #0b1734;
    box-shadow: 0 30px 70px rgba(11, 23, 52, 0.25);
    color: rgba(255, 255, 255, 0.72);
}

.l6-chart-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px 24px;
    margin-bottom: 8px;
}

.l6-chart-head h3 {
    margin: 0;
    color: #fff;
    font-family: var(--l6-text);
    font-size: 1.05rem;
    font-weight: 700;
}

.l6-legend {
    display: flex;
    gap: 16px;
    margin: 0;
    padding: 0;
    font-size: 0.82rem;
    list-style: none;
}

.l6-legend li {
    display: flex;
    align-items: center;
    gap: 7px;
}

.l6-legend li::before {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background: #ff6b70;
}

.l6-legend li:last-child::before {
    background: #4b9bff;
}

.l6-chart-row {
    display: grid;
    grid-template-columns: 10.5em minmax(0, 1fr);
    gap: 8px 20px;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.l6-chart-row:last-of-type {
    border-bottom: 0;
}

.l6-chart-label {
    display: flex;
    grid-row: span 2;
    align-items: center;
    gap: 10px;
    color: #fff;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
}

.l6-chart-label img {
    flex: none;
    width: 26px;
    height: 26px;
}

.l6-bar {
    display: flex;
    align-items: center;
    gap: 12px;
}

.l6-bar-steps {
    display: grid;
    flex: 1;
    grid-template-columns: repeat(var(--cols, 7), minmax(0, 1fr));
    gap: 4px;
}

.l6-bar-steps span {
    height: 22px;
    border-radius: 5px;
    background: #ff6b70;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: calc(var(--i) * 90ms);
}

.l6-bar--good .l6-bar-steps span {
    background: #4b9bff;
}

.l6-bar-n {
    width: 4.6em;
    color: #fff;
    font-size: 0.86rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    opacity: 0;
    transition: opacity 300ms ease 0.7s;
}

.l6-chart.is-in .l6-bar-steps span {
    transform: none;
}

.l6-chart.is-in .l6-bar-n {
    opacity: 1;
}

.l6-chart-note {
    margin-top: 14px !important;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.8rem;
}

/* ==========================================================================
   Ledger: before / after table (partials/landing6/ledger.php)
   ========================================================================== */

.l6-ledger {
    border-top: 2px solid var(--l6-ink);
}

.l6-ledger--wide {
    margin-top: clamp(48px, 6vw, 72px);
}

.l6-ledger-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 24px;
    padding: 20px 0;
    border-bottom: 1px solid var(--l6-line);
    font-size: 0.98rem;
    line-height: 1.45;
}

.l6-ledger-head {
    padding: 12px 0;
    color: var(--l6-muted);
    font-size: 0.84rem;
    font-weight: 700;
}

.l6-ledger [role="rowheader"] {
    color: var(--l6-ink);
    font-weight: 700;
}

.l6-bad,
.l6-good {
    position: relative;
    padding-left: 28px;
}

.l6-good {
    color: var(--l6-ink);
}

.l6-bad::before,
.l6-good::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 0;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 9px 9px;
}

.l6-bad::before {
    background-color: var(--l6-stop-soft);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 2l6 6M8 2L2 8' stroke='%23e5484d' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

.l6-good::before {
    background-color: var(--l6-go-soft);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1.8 5.2l2.1 2.1L8.2 2.8' fill='none' stroke='%2313a56b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ==========================================================================
   Numbered steps (partials/landing6/howto_steps.php). Default = home-6's
   three steps with big blue numerals; --cards puts each in a white card.
   ========================================================================== */

.l6-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    margin: clamp(48px, 6vw, 72px) 0 0;
    padding: 0;
    list-style: none;
}

.l6-steps--flush {
    margin-top: 0;
}

.l6-steps li {
    display: flex;
    gap: 16px;
}

.l6-step-n {
    flex: none;
    color: var(--l6-blue);
    font-family: var(--l6-display);
    font-size: 2.8rem;
    font-weight: 700;
    line-height: 0.9;
}

.l6-steps h3 {
    margin: 2px 0 6px;
    font-family: var(--l6-text);
    font-size: 1.06rem;
    font-weight: 700;
    line-height: 1.35;
}

.l6-steps p {
    font-size: 0.95rem;
}

.l6-steps--cards {
    gap: 16px;
}

.l6-steps--cards li {
    position: relative;
    flex-direction: column;
    gap: 14px;
    padding: 24px 24px 26px;
    border: 1px solid var(--l6-line);
    border-radius: 22px;
    background: var(--l6-paper);
}

.l6-section--haze .l6-steps--cards li {
    border-color: transparent;
}

.l6-step-token {
    position: absolute;
    top: 14px;
    right: 16px;
    width: 52px;
    height: 52px;
    object-fit: contain;
}

.l6-steps--cards li:not(:last-child)::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: 50%;
    right: -13px;
    width: 10px;
    height: 10px;
    border-top: 2px solid var(--l6-blue);
    border-right: 2px solid var(--l6-blue);
    transform: translateY(-50%) rotate(45deg);
}

/* ==========================================================================
   Router diagram (partials/landing6/router.php): sources -> one LinkTwin
   link -> destinations. Each route plays out as a tap (js initRouter).
   .l6-spark          faint traffic on every path
   .l6-trail--in/out  the route drawing itself behind the comet
   .is-tapped         ripple on the source node
   .is-pulse          the hub decides
   .is-landed         burst on the destination node
   .l6-router-win     where the tap ended up
   ========================================================================== */

.l6-router {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 0.8fr) minmax(0, 1fr);
    gap: 24px;
    align-items: center;
    padding: clamp(24px, 4vw, 48px);
    overflow: hidden;
    border-radius: 28px;
    background:
        radial-gradient(40% 60% at 50% 45%, rgba(9, 103, 242, 0.35), transparent 70%),
        #0b1734;
    color: rgba(255, 255, 255, 0.72);
}

.l6-router-svg {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.l6-router-svg path {
    fill: none;
    stroke: rgba(255, 255, 255, 0.1);
    stroke-width: 1.5;
    transition: stroke 250ms ease, stroke-width 250ms ease;
}

.l6-router-svg path.is-hot {
    stroke: #5ea8ff;
    stroke-width: 2.5;
    stroke-dasharray: 7 8;
    animation: l6-flow 0.9s linear infinite;
}

@keyframes l6-flow {
    to { stroke-dashoffset: -30; }
}

.l6-router-col {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-router-col--to {
    align-items: flex-end;
}

.l6-node {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    max-width: 100%;
    padding: 9px 14px 9px 10px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.2;
    transition: background-color 250ms ease, color 250ms ease, box-shadow 250ms ease, transform 250ms ease;
}

.l6-node img,
.l6-node > i {
    flex: none;
    width: 26px;
    height: 26px;
    border-radius: 7px;
}

/* White tile so black logos (Threads, X, TikTok) read on the dark panel */
.l6-node img {
    padding: 3px;
    background: #fff;
}

.l6-node > i {
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.12);
    font-size: 12px;
}

.l6-node small {
    display: block;
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.74rem;
    font-weight: 400;
}

.l6-node .l6-node-note {
    color: #ffc66b;
}

.l6-node.is-hot {
    border-color: #fff;
    background: #fff;
    box-shadow: 0 0 0 6px rgba(94, 168, 255, 0.18), 0 10px 30px rgba(0, 0, 0, 0.3);
    color: var(--l6-ink);
    transform: scale(1.03);
}

.l6-node.is-hot small {
    color: var(--l6-muted);
}

.l6-node.is-hot .l6-node-note {
    color: #b26a00;
}

.l6-node.is-tapped::after {
    content: "";
    position: absolute;
    inset: -2px;
    border: 2px solid #5ea8ff;
    border-radius: 16px;
    pointer-events: none;
    animation: l6-tap-ring 700ms ease-out forwards;
}

@keyframes l6-tap-ring {
    from { opacity: 0.95; transform: scale(1); }
    to   { opacity: 0; transform: scale(1.28); }
}

.l6-node.is-hot.is-landed {
    box-shadow: 0 0 0 6px rgba(94, 224, 160, 0.3), 0 10px 30px rgba(0, 0, 0, 0.3);
    animation: l6-land 800ms ease-out;
}

@keyframes l6-land {
    0%   { box-shadow: 0 0 0 0 rgba(94, 224, 160, 0.85), 0 10px 30px rgba(0, 0, 0, 0.3); }
    100% { box-shadow: 0 0 0 22px rgba(94, 224, 160, 0), 0 10px 30px rgba(0, 0, 0, 0.3); }
}

.l6-router-hub {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    gap: 12px;
    text-align: center;
}

.l6-hub-core {
    position: relative;
    display: grid;
    place-items: center;
    width: 112px;
    height: 112px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, #2f86ff, #0648b5);
    box-shadow: 0 0 0 10px rgba(9, 103, 242, 0.18), 0 0 60px rgba(9, 103, 242, 0.55);
}

/* The hub scans: a light sweeping round the LinkTwin core */
.l6-hub-core::before {
    content: "";
    position: absolute;
    inset: -22px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, rgba(94, 168, 255, 0) 0deg 230deg, rgba(94, 168, 255, 0.65) 350deg, rgba(94, 168, 255, 0) 360deg);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
    animation: l6-scan 2.4s linear infinite;
}

@keyframes l6-scan {
    to { transform: rotate(360deg); }
}

.l6-hub-core::after {
    content: "";
    position: absolute;
    inset: -10px;
    border: 2px solid rgba(94, 168, 255, 0.6);
    border-radius: 50%;
    opacity: 0;
}

.l6-router.is-pulse .l6-hub-core::after {
    animation: l6-ring 900ms ease-out;
}

@keyframes l6-ring {
    0%   { opacity: 0.9; transform: scale(0.9); }
    100% { opacity: 0; transform: scale(1.45); }
}

.l6-hub-core img {
    width: 52px;
    height: 52px;
    padding: 8px;
    border-radius: 14px;
    background: #fff;
}

.l6-hub-label b {
    display: block;
    color: #fff;
    font-size: 0.95rem;
}

.l6-hub-label small {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.8rem;
}

.l6-router-svg .l6-spark {
    fill: rgba(127, 180, 255, 0.55);
}

.l6-router-svg .l6-trail {
    fill: none;
    stroke-linecap: round;
    stroke-width: 3;
}

.l6-router-svg .l6-trail--in {
    stroke: #5ea8ff;
}

.l6-router-svg .l6-trail--out {
    stroke: #5ee0a0;
}

.l6-router-svg .l6-comet {
    fill: #fff;
    opacity: 0;
}

/* Where the tap ended up (placed beside the destination by the JS) */
.l6-router-win {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 14px 8px 8px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 0 0 5px rgba(94, 224, 160, 0.25), 0 18px 40px rgba(0, 0, 0, 0.4);
    color: var(--l6-ink);
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
}

.l6-router-win.is-shown {
    opacity: 1;
    animation: l6-win-in 520ms cubic-bezier(0.2, 0.8, 0.2, 1.35);
}

@keyframes l6-win-in {
    from { opacity: 0; transform: translateX(14px) scale(0.75); }
    to   { opacity: 1; transform: none; }
}

.l6-win-token {
    flex: none;
    width: 52px;
    height: 52px;
    margin: -10px 0 -10px -4px;
    object-fit: contain;
}

.l6-router-win b {
    display: block;
    font-size: 0.98rem;
    line-height: 1.2;
}

.l6-router-win small {
    display: block;
    color: var(--l6-muted);
    font-size: 0.78rem;
}

.l6-win-check {
    display: grid;
    flex: none;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--l6-go);
    color: #fff;
    font-size: 11px;
}

.l6-router-caption {
    position: relative;
    z-index: 1;
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px 14px;
    min-height: 3.2em;
    margin-top: 8px;
    padding: 14px 18px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    font-size: 0.95rem;
    text-align: center;
}

.l6-router-caption b {
    font-weight: 700;
}

.l6-router-caption .l6-cap-arrow {
    color: #5ea8ff;
}

.l6-router-caption .l6-cap-sub {
    color: rgba(255, 255, 255, 0.6);
}

.l6-router-picks {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.l6-router-picks button {
    padding: 8px 14px;
    border: 1px solid var(--l6-line);
    border-radius: 999px;
    background: var(--l6-paper);
    color: var(--l6-ink);
    font-family: var(--l6-text);
    font-size: 0.84rem;
    font-weight: 700;
    cursor: pointer;
}

.l6-router-picks button[aria-pressed="true"] {
    border-color: var(--l6-ink);
    background: var(--l6-ink);
    color: #fff;
}

.l6-router-foot {
    margin-top: 14px !important;
    color: var(--l6-muted);
    font-size: 0.86rem;
}

/* ==========================================================================
   Spotlight cards: art panel + bobbing brand token + words. .l6-cards is the
   3-column grid; --2 / --4 change the count. .l6-card--compact is the
   short version used by partials/landing6/crosslinks.php.
   ========================================================================== */

.l6-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.l6-cards--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.l6-cards--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.l6-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 12px 12px 26px;
    border: 1px solid var(--l6-line);
    border-radius: 26px;
    background: var(--l6-paper);
    box-shadow: 0 1px 0 rgba(13, 27, 46, 0.04), 0 18px 40px rgba(13, 27, 46, 0.07);
    transition: transform 200ms ease, box-shadow 200ms ease;
}

.l6-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 1px 0 rgba(13, 27, 46, 0.04), 0 26px 50px rgba(13, 27, 46, 0.12);
}

.l6-card > :not(.l6-card-art) {
    margin-right: 14px;
    margin-left: 14px;
}

.l6-card-art {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    height: 210px;
    margin-bottom: 22px;
    overflow: hidden;
    border-radius: 18px;
    background: var(--l6-haze);
}

/* Pastel art backgrounds, one per world */
.l6-art--yt { background: linear-gradient(150deg, #ffe4e6, #fff4f4); }
.l6-art--amz { background: linear-gradient(150deg, #fff1d6, #fff8ea); }
.l6-art--music { background: linear-gradient(150deg, #dcf7e8, #e6f0ff); }
.l6-art--browser {
    background:
        radial-gradient(60% 70% at 85% 10%, rgba(9, 103, 242, 0.14), transparent 70%),
        linear-gradient(160deg, #eef4ff 0%, #f4f1ff 100%);
}
.l6-art--haze { background: var(--l6-haze); }

/* Art that sits low leaves room for the token at the top right */
.l6-card-art--low {
    padding-top: 34px;
}

/* The brand token, bobbing. Stagger with style="--delay: -1s". */
.l6-token {
    position: absolute;
    top: 8px;
    right: 10px;
    width: 56px;
    height: 56px;
    object-fit: contain;
    animation: l6-bob 3.2s ease-in-out infinite;
    animation-delay: var(--delay, 0s);
}

.l6-token--lg {
    width: 84px;
    height: 84px;
}

@keyframes l6-bob {
    0%, 100% { transform: translateY(0) rotate(-4deg); }
    50%      { transform: translateY(-6px) rotate(4deg); }
}

/* YouTube scene: the video, with a "Subscribed" caption pill */
.l6-art-thumb {
    position: relative;
    width: 76%;
    margin: 18px 0 0;
    overflow: hidden;
    border-radius: 14px;
    box-shadow: 0 16px 30px rgba(13, 27, 46, 0.22);
}

.l6-art-thumb > img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.l6-art-thumb figcaption {
    position: absolute;
    right: 8px;
    bottom: 8px;
    left: 8px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 6px 6px 6px 7px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.95);
    color: var(--l6-ink);
    font-size: 0.78rem;
}

.l6-art-thumb figcaption img {
    width: 24px;
    height: 24px;
    border-radius: 50%;
}

.l6-art-thumb em {
    margin-left: auto;
    padding: 4px 9px;
    border-radius: 999px;
    background: #f1f1f1;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}

/* Product cut-out and album cover */
.l6-art-product {
    width: 34%;
    height: auto;
    max-height: 170px;
    object-fit: contain;
    filter: drop-shadow(0 14px 16px rgba(13, 27, 46, 0.25));
}

.l6-art-cover {
    width: 30%;
    height: auto;
    aspect-ratio: 1;
    border-radius: 10px;
    box-shadow: 0 14px 26px rgba(13, 27, 46, 0.3);
}

/* Mini chips on art: store list with flags, app picker with Play/Follow */
.l6-minilist {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-minilist li {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 6px 10px 6px 7px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(13, 27, 46, 0.08);
    color: var(--l6-ink);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}

.l6-minilist img {
    width: 20px;
    height: 20px;
    border-radius: 5px;
}

/* Flags are 4:3 */
.l6-minilist img.l6-flag {
    width: 18px;
    height: 13px;
    border-radius: 2px;
    object-fit: cover;
}

.l6-minilist span {
    margin-left: auto;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--l6-ink);
    color: #fff;
    font-size: 0.68rem;
}

/* The words */
.l6-card-tag {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--l6-muted);
    font-size: 0.84rem;
    font-weight: 700;
}

.l6-card-tag img {
    width: 22px;
    height: 22px;
    border-radius: 5px;
}

.l6-card-tag img + img {
    margin-left: -4px;
}

.l6-card h3 {
    margin-top: 10px;
    margin-bottom: 14px;
    font-family: var(--l6-display);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.12;
}

.l6-card > p {
    font-size: 0.95rem;
    line-height: 1.5;
}

/* Green-check list (cards, copy columns) */
.l6-check-list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-check-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--l6-body);
    font-size: 0.95rem;
    line-height: 1.45;
}

.l6-check-list li > i {
    display: grid;
    flex: none;
    place-items: center;
    width: 20px;
    height: 20px;
    margin-top: 2px;
    border-radius: 50%;
    background: var(--l6-go-soft);
    color: var(--l6-go);
    font-size: 0.62rem;
}

.l6-page .l6-card-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 20px;
    color: var(--l6-blue-deep);
    font-weight: 700;
    text-decoration: none;
}

.l6-page .l6-card-cta i {
    transition: transform 160ms ease;
}

.l6-page .l6-card-cta:hover i {
    transform: translateX(4px);
}

/* The whole card is the link (stretched over it) */
.l6-page .l6-card-cta--stretch::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: 26px;
}

.l6-card--compact {
    padding-bottom: 22px;
}

.l6-card--compact .l6-card-art {
    height: 150px;
    margin-bottom: 18px;
}

.l6-card--compact h3 {
    margin-bottom: 0;
    font-size: 1.25rem;
}

.l6-card--compact .l6-card-cta {
    padding-top: 16px;
    font-size: 0.95rem;
}

.l6-card--compact .l6-token {
    width: 48px;
    height: 48px;
}

.l6-card--compact .l6-art-thumb {
    width: 64%;
    margin-top: 10px;
}

.l6-card--compact .l6-art-product {
    max-height: 120px;
}

/* ==========================================================================
   Bento tiles (12-column grid) + mini visuals
   ========================================================================== */

.l6-bento {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 16px;
}

.l6-tile {
    position: relative;
    display: flex;
    grid-column: span 4;
    flex-direction: column;
    gap: 8px;
    min-height: 300px;
    padding: 26px;
    overflow: hidden;
    border: 1px solid var(--l6-line);
    border-radius: 22px;
    background: var(--l6-paper);
}

.l6-tile--4 { grid-column: span 4; }
.l6-tile--5 { grid-column: span 5; }
.l6-tile--6 { grid-column: span 6; }
.l6-tile--7 { grid-column: span 7; }
.l6-tile--8 { grid-column: span 8; }
.l6-tile--12 { grid-column: span 12; min-height: 0; }

.l6-tile h3 {
    margin: 0;
    font-family: var(--l6-display);
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.l6-tile p {
    max-width: 30em;
    font-size: 0.95rem;
    line-height: 1.5;
}

.l6-tile > a {
    align-self: flex-start;
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: rgba(6, 72, 181, 0.35);
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

.l6-tile > a:hover {
    text-decoration-color: currentColor;
}

/* Visuals pin to the bottom of the tile */
.l6-tile-visual {
    margin-top: auto;
    padding-top: 18px;
}

.l6-tile--dark {
    border-color: transparent;
    background: #0b1734;
    color: rgba(255, 255, 255, 0.72);
}

.l6-tile--dark h3 {
    color: #fff;
}

.l6-page .l6-tile--dark > a {
    color: #8fc0ff;
}

/* Analytics: bars (last one mint) + source progress rows */
.l6-mini-chart {
    display: flex;
    align-items: flex-end;
    gap: 5px;
    height: 120px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.l6-mini-chart span {
    flex: 1;
    height: var(--h);
    border-radius: 4px 4px 0 0;
    background: linear-gradient(180deg, #5ea8ff, #2a6fe0);
    opacity: 0.9;
}

.l6-mini-chart span:last-child {
    background: linear-gradient(180deg, #5ee0a0, #1fae6d);
}

.l6-sources {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 24px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.84rem;
}

.l6-sources li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    color: #fff;
}

.l6-sources img {
    width: 18px;
    height: 18px;
}

.l6-sources i {
    display: block;
    grid-column: 2 / -1;
    height: 4px;
    border-radius: 4px;
    background: linear-gradient(90deg, #5ea8ff var(--w), rgba(255, 255, 255, 0.1) var(--w));
}

/* "Example data" label: every sample visual carries one */
.l6-sample {
    display: block;
    margin-top: 8px !important;
    color: rgba(255, 255, 255, 0.45);
    font-size: 0.74rem;
}

.l6-sample--light {
    color: var(--l6-muted);
}

.l6-sample--chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--l6-haze);
    color: var(--l6-muted);
    font-weight: 700;
}

/* Domain field with a blinking caret */
.l6-domain {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    border: 1px solid var(--l6-line);
    border-radius: 12px;
    background: var(--l6-haze);
    color: var(--l6-muted);
    font-size: 0.95rem;
}

.l6-domain i {
    color: var(--l6-go);
    font-size: 0.8rem;
}

.l6-domain b {
    color: var(--l6-ink);
}

.l6-domain-caret {
    width: 2px;
    height: 1.1em;
    background: var(--l6-blue);
    animation: l6-blink 1s steps(1) infinite;
}

@keyframes l6-blink {
    50% { opacity: 0; }
}

.l6-domain-alts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.l6-domain-alts span {
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--l6-haze);
    color: var(--l6-body);
    font-size: 0.78rem;
}

/* Decorative QR (not scannable) with the favicon in the middle */
.l6-qr {
    position: relative;
    width: 132px;
    height: 132px;
    padding: 10px;
    border: 1px solid var(--l6-line);
    border-radius: 14px;
    background: #fff;
}

.l6-qr svg {
    display: block;
    width: 100%;
    height: 100%;
}

.l6-qr img {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 30px;
    padding: 3px;
    border-radius: 7px;
    background: #fff;
    transform: translate(-50%, -50%);
}

/* Link preview card */
.l6-preview {
    overflow: hidden;
    border: 1px solid var(--l6-line);
    border-radius: 14px;
}

.l6-preview-img {
    height: 92px;
    background:
        radial-gradient(circle at 75% 40%, #ffd27a 0 14%, transparent 15%),
        linear-gradient(160deg, #ff9960, #f0567a 55%, #6b3cf0);
}

.l6-preview-meta {
    padding: 10px 12px;
    background: var(--l6-haze);
}

.l6-preview-meta small {
    display: block;
    color: var(--l6-muted);
    font-size: 0.7rem;
    text-transform: uppercase;
}

.l6-preview-meta b {
    color: var(--l6-ink);
    font-size: 0.88rem;
}

/* Rows of logo + name + state ("Firing" pixels, music picker with Play) */
.l6-pixels {
    display: grid;
    gap: 8px;
}

.l6-pixels span {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: 12px;
    background: var(--l6-haze);
    color: var(--l6-ink);
    font-size: 0.88rem;
    font-weight: 700;
}

.l6-pixels img {
    width: 20px;
    height: 20px;
}

.l6-pixels em {
    margin-left: auto;
    color: var(--l6-go);
    font-size: 0.78rem;
    font-style: normal;
}

.l6-pixels em::before {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--l6-go);
    vertical-align: 1px;
}

.l6-pixels em.l6-play {
    color: var(--l6-blue-deep);
}

.l6-pixels em.l6-play::before {
    display: none;
}

/* A/B split bars */
.l6-ab {
    display: grid;
    gap: 10px;
}

.l6-ab-row {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) 3em;
    gap: 10px;
    align-items: center;
    font-size: 0.86rem;
}

.l6-ab-row b {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: var(--l6-ink);
    color: #fff;
    font-size: 0.74rem;
}

.l6-ab-row span {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--l6-blue) var(--w), var(--l6-haze) var(--w));
}

.l6-ab-row:nth-child(2) span {
    background: linear-gradient(90deg, #8fb6f5 var(--w), var(--l6-haze) var(--w));
}

.l6-ab-row em {
    color: var(--l6-ink);
    font-style: normal;
    font-weight: 700;
    text-align: right;
}

/* Link-in-bio mini page */
.l6-bio {
    display: grid;
    justify-items: center;
    gap: 6px;
    width: 170px;
    margin-inline: auto;
    padding: 16px 14px;
    border-radius: 22px;
    background: linear-gradient(180deg, #f6efff, #e9f1ff);
}

.l6-bio .l6-avatar {
    width: 44px;
    height: 44px;
}

.l6-bio b {
    color: var(--l6-ink);
    font-size: 0.82rem;
}

.l6-bio span:not(.l6-avatar) {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 10px;
    border-radius: 10px;
    background: #fff;
    color: var(--l6-ink);
    font-size: 0.74rem;
    font-weight: 700;
}

.l6-bio img {
    width: 16px;
    height: 16px;
}

/* Rule rows (geo / device / store rules) */
.l6-rules {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-rules li {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 9px 12px;
    border-radius: 12px;
    background: var(--l6-haze);
    color: var(--l6-body);
    font-size: 0.88rem;
}

.l6-rules li > i {
    color: var(--l6-ink);
    font-size: 16px;
    text-align: center;
}

.l6-rules li > img {
    width: 22px;
    height: 16px;
    border-radius: 3px;
    object-fit: cover;
}

.l6-rules li > img.l6-logo {
    height: 22px;
    border-radius: 5px;
    object-fit: contain;
}

.l6-rules b {
    color: var(--l6-blue-deep);
    font-size: 0.86rem;
}

/* Full-width blue tools strip */
.l6-tile--tools {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px 32px;
    padding: 26px 30px;
    border-color: transparent;
    background: var(--l6-blue);
    color: #fff;
}

.l6-tile--tools h3 {
    flex: none;
    color: #fff;
}

.l6-tools {
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-page .l6-tools a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
}

.l6-page .l6-tools a:hover {
    background: rgba(255, 255, 255, 0.26);
}

/* Avatars */
.l6-avatar {
    display: inline-grid;
    flex: none;
    place-items: center;
    width: 2.3em;
    height: 2.3em;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffb35c, #f0567a);
    color: #fff;
    font-size: 0.85em;
    font-weight: 700;
}

.l6-avatar--lg {
    width: 3.9em;
    height: 3.9em;
    font-size: 1.1em;
}

.l6-avatar--xs {
    width: 1.9em;
    height: 1.9em;
    font-size: 0.75em;
}

.l6-avatar--me {
    background: linear-gradient(135deg, #7c5cff, #2fb4ff);
}

/* ==========================================================================
   Phone shell. Everything inside is sized in em, so the mock scales as one
   piece from its font-size (13px desktop, 11px phones inside .l6-phone-art).
   Screens themselves (YouTube app, Amazon app, Spotify) are page CSS.
   ========================================================================== */

.l6-phone {
    position: relative;
    width: 20em;
    height: 41em;
    margin: 14px auto 0;
    padding: 0.5em;
    border-radius: 3.1em;
    background: #0f1828;
    box-shadow:
        inset 0 0 0 0.14em #2d3b55,
        0 1.6em 3.2em rgba(2, 20, 66, 0.38),
        0 0.3em 0.8em rgba(2, 20, 66, 0.25);
    font-size: clamp(6.4px, 2.12cqw, 12.2px);
    text-align: left;
}

.l6-screen {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 2.6em;
    background: #fff;
    color: #0f1419;
    font-family: var(--l6-ui);
    line-height: 1.3;
    isolation: isolate;
}

.l6-screen i {
    line-height: 1;
}

.l6-screen img {
    display: block;
}

.l6-island {
    position: absolute;
    z-index: 31;
    top: 0.7em;
    left: 50%;
    width: 6.2em;
    height: 1.85em;
    border-radius: 1em;
    background: #000;
    transform: translateX(-50%);
}

.l6-statusbar {
    position: absolute;
    z-index: 30;
    top: 0;
    right: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 3.2em;
    padding: 0 1.9em 0 2.2em;
    color: #fff;
    font-size: 0.95em;
    font-weight: 600;
    transition: color 200ms ease;
}

.l6-statusbar--dark {
    color: #0f1419;
}

.l6-statusbar-icons {
    display: flex;
    align-items: center;
    gap: 0.35em;
}

.l6-statusbar-icons svg {
    height: 0.8em;
    fill: currentColor;
}

.l6-statusbar-icons svg:first-child { width: 1.2em; }
.l6-statusbar-icons svg:last-child { width: 1.75em; }

.l6-layer {
    position: absolute;
    inset: 0;
}

/* Stage for a phone: soft blue backdrop, room for a floating card */
.l6-phone-art {
    position: relative;
    display: grid;
    min-height: 560px;
    place-items: center;
}

.l6-phone-art::before {
    content: "";
    position: absolute;
    inset: 8% 6%;
    border-radius: 40px;
    background: radial-gradient(circle at 50% 40%, rgba(9, 103, 242, 0.22), transparent 70%);
}

.l6-phone-art .l6-phone {
    margin: 0;
    font-size: 13px;
}

/* Floating white card beside a phone (home-6's share sheet) */
.l6-float-card {
    position: absolute;
    z-index: 2;
    right: max(0px, calc(50% - 300px));
    bottom: 12%;
    width: 230px;
    padding: 14px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 24px 60px rgba(13, 27, 46, 0.22);
    color: var(--l6-body);
    font-size: 0.86rem;
    line-height: 1.4;
}

.l6-float-card--left {
    right: auto;
    left: max(0px, calc(50% - 300px));
}

.l6-float-card--top {
    top: 12%;
    bottom: auto;
}

.l6-float-card small {
    display: block;
    margin-bottom: 8px;
    color: var(--l6-muted);
    font-size: 0.74rem;
    font-weight: 700;
}

.l6-float-card-done {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--l6-go-soft);
    color: #0c7a4e;
    font-size: 0.78rem;
    font-weight: 700;
}

/* ==========================================================================
   Browser frames: "trapped" in the social app vs the visitor's real browser
   ([data-l6-browsers] cycles the real browser).
   ========================================================================== */

.l6-browser-art {
    display: grid;
    gap: 22px;
    padding: clamp(22px, 3.4vw, 40px);
    border-radius: 28px;
    background:
        radial-gradient(60% 70% at 85% 10%, rgba(9, 103, 242, 0.14), transparent 70%),
        linear-gradient(160deg, #eef4ff 0%, #f4f1ff 100%);
}

.l6-bframes {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}

.l6-bframe {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.l6-bframe > .l6-bframe-bar,
.l6-bframe > .l6-bframe-page {
    background: #fff;
}

.l6-bframe-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 16px 16px 0 0;
    color: #3b4352;
    font-size: 0.78rem;
}

.l6-bframe-page {
    display: grid;
    gap: 7px;
    margin-top: -10px;
    padding: 12px 14px 16px;
    border-radius: 0 0 16px 16px;
    box-shadow: 0 18px 40px rgba(13, 27, 46, 0.12);
}

.l6-bframe-bar--ig {
    border-bottom: 1px solid #ececec;
}

.l6-bframe-bar--ig span {
    flex: 1;
    min-width: 0;
    text-align: center;
    line-height: 1.2;
}

.l6-bframe-bar--ig b {
    display: block;
    color: #111;
    font-size: 0.8rem;
}

.l6-bframe-bar--ig small {
    display: block;
    color: #888;
    font-size: 0.66rem;
}

.l6-bframe-bar--real {
    background: #f3f4f6 !important;
    transition: background-color 300ms ease;
}

[data-browser="chrome"] .l6-bframe-bar--real { background: #dfe3e8 !important; }
[data-browser="firefox"] .l6-bframe-bar--real { background: #ece9f5 !important; }
[data-browser="edge"] .l6-bframe-bar--real { background: #e6eef6 !important; }
[data-browser="brave"] .l6-bframe-bar--real { background: #f6ece6 !important; }
[data-browser="opera"] .l6-bframe-bar--real { background: #f6e9ea !important; }

.l6-bbar-logo img {
    display: block;
    width: 20px;
    height: 20px;
}

.l6-bbar-url {
    display: flex;
    flex: 1;
    align-items: center;
    gap: 6px;
    min-width: 0;
    padding: 6px 10px;
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-weight: 700;
}

.l6-bbar-url i {
    color: var(--l6-go);
    font-size: 0.68rem;
}

.l6-bp-hero {
    height: 92px;
    border-radius: 10px;
    background:
        radial-gradient(circle at 70% 55%, #c9a27a 0 22%, transparent 23%),
        linear-gradient(160deg, #f6eadb, #e8d6c1);
}

.l6-bp-title {
    color: var(--l6-ink);
    font-size: 0.86rem;
    line-height: 1.25;
}

.l6-bp-price {
    color: var(--l6-ink);
    font-size: 0.82rem;
}

.l6-bp-field {
    padding: 7px 9px;
    border: 1px solid #dfe3ea;
    border-radius: 7px;
    color: #9aa3b2;
    font-size: 0.74rem;
}

.l6-bp-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 8px;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 700;
}

.l6-bp-btn--off {
    background: #e9ecf1;
    color: #8b94a3;
}

.l6-bp-btn--pay {
    background: #000;
    color: #fff;
}

.l6-bp-hello,
.l6-bp-card {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 9px;
    border-radius: 7px;
    background: var(--l6-go-soft);
    color: #0c7a4e;
    font-size: 0.76rem;
    font-weight: 700;
}

.l6-bp-card {
    background: var(--l6-haze);
    color: var(--l6-ink);
}

.l6-bframe--trap {
    opacity: 0.86;
    transform: scale(0.94);
    transform-origin: center;
}

.l6-bframe-label {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: 4px !important;
    font-size: 0.84rem;
    font-weight: 700;
    text-align: center;
}

.l6-bframe-label i {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    color: #fff;
    font-size: 9px;
}

.l6-bframe-label--bad { color: var(--l6-body); }
.l6-bframe-label--bad i { background: var(--l6-stop); }
.l6-bframe-label--good { color: var(--l6-ink); }
.l6-bframe-label--good i { background: var(--l6-go); }

.l6-bframes-arrow {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--l6-blue);
    box-shadow: 0 8px 20px rgba(9, 103, 242, 0.35);
    color: #fff;
}

.l6-browser-picks {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.l6-browser-picks button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 13px 7px 8px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.75);
    color: var(--l6-ink);
    font-family: var(--l6-text);
    font-size: 0.86rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}

.l6-browser-picks button img {
    width: 22px;
    height: 22px;
}

.l6-browser-picks button[aria-pressed="true"] {
    border-color: var(--l6-blue);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(9, 103, 242, 0.14);
}

.l6-browser-picks button:focus-visible {
    outline: 3px solid #5ea8ff;
    outline-offset: 3px;
}

.l6-browser-foot {
    color: var(--l6-muted);
    font-size: 0.82rem;
    text-align: center;
}

/* Copy column: hairline-divided gains list + outline pill tags */
.l6-gains {
    display: grid;
    gap: 0;
    margin: 26px 0 0;
    padding: 0;
    list-style: none;
}

.l6-gains li {
    display: grid;
    gap: 2px;
    padding: 14px 0;
    border-top: 1px solid var(--l6-line);
    font-size: 0.97rem;
    line-height: 1.45;
}

.l6-gains li:last-child {
    border-bottom: 1px solid var(--l6-line);
}

.l6-gains b {
    color: var(--l6-ink);
}

.l6-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 22px 0 0;
    padding: 0;
    list-style: none;
}

.l6-tags li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--l6-line);
    border-radius: 999px;
    color: var(--l6-body);
    font-size: 0.84rem;
    font-weight: 700;
}

.l6-tags img {
    width: 18px;
    height: 18px;
}

/* ==========================================================================
   App store badges (black)
   ========================================================================== */

.l6-stores {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.l6-page .l6-store {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 172px;
    padding: 10px 18px 10px 14px;
    border-radius: 12px;
    background: #000;
    color: #fff;
    text-decoration: none;
    line-height: 1.1;
}

.l6-page .l6-store:hover {
    background: #1d2433;
}

.l6-store i {
    font-size: 26px;
}

.l6-store small {
    display: block;
    font-size: 0.68rem;
    opacity: 0.8;
}

.l6-store b {
    display: block;
    font-size: 1.05rem;
}

/* Live store review scores as one compact line (partials/store_scores.php):
   stars, score, store name. Five stars filled to --st-stars (0-5). */
.st-scores {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 0;
}

.st-score {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--l6-muted);
    font-size: 0.8rem;
    line-height: 1.2;
    white-space: nowrap;
}

.st-score b {
    color: var(--l6-ink);
}

.st-stars {
    --st-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-2 0 28 24'%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3C/svg%3E");
    display: inline-block;
    flex: none;
    width: 65px;
    height: 12px;
    background: linear-gradient(90deg, #f5a524 calc(var(--st-stars, 0) * 20%), var(--l6-line) 0);
    -webkit-mask: var(--st-star) 0 0 / 13px 12px repeat-x;
    mask: var(--st-star) 0 0 / 13px 12px repeat-x;
}

.st-scores--dark .st-score {
    color: rgba(255, 255, 255, 0.78);
}

.st-scores--dark .st-score b {
    color: #fff;
}

.st-scores--dark .st-stars {
    background: linear-gradient(90deg, #f5a524 calc(var(--st-stars, 0) * 20%), rgba(255, 255, 255, 0.22) 0);
}

/* ==========================================================================
   X wall: the shared partials/social_wall, wrapped in <div class="l6-social">
   and dressed as real X posts (no action row). js initTweets colours the
   @mentions, #hashtags and links X-blue. No post dates are shown.
   ========================================================================== */

.l6-social .sw-section {
    padding: clamp(72px, 9vw, 110px) 0 clamp(40px, 5vw, 64px);
    background: var(--l6-paper);
}

.l6-social--haze .sw-section {
    background: var(--l6-haze);
}

.l6-social .lp2-section-intro {
    max-width: 44rem;
    margin: 0 0 40px;
    text-align: left;
}

.l6-social .lp2-overline {
    padding: 0;
    border-radius: 0;
    background: none;
    color: var(--l6-muted);
    font-family: var(--l6-text);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.l6-social .lp2-section-title {
    margin: 6px 0 14px;
    color: var(--l6-ink);
    font-family: var(--l6-display);
    font-size: clamp(2rem, 3.3vw, 3rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.06;
}

.l6-social .lp2-section-sub {
    margin: 0;
    color: var(--l6-body);
    font-family: var(--l6-text);
    font-size: 1.05rem;
}

.l6-social .sw-section > .container {
    width: min(100% - 48px, 1320px);
    max-width: none;
    padding: 0;
}

.l6-social a.sw-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch; /* a mobile rule elsewhere centres card children */
    width: 360px;
    padding: 14px 16px 14px;
    border: 1px solid #cfd9de;
    border-radius: 16px;
    background: #fff;
    color: #0f1419;
    font-family: var(--l6-ui);
    transition: background-color 200ms ease, box-shadow 200ms ease;
}

.l6-social a.sw-card:hover {
    border-color: #cfd9de;
    background: #f7f9f9;
    box-shadow: 0 8px 24px rgba(15, 20, 25, 0.08);
    color: #0f1419;
}

/* The X mark, top right */
.l6-social a.sw-card::after {
    content: "";
    position: absolute;
    top: 16px;
    right: 16px;
    width: 18px;
    height: 18px;
    background: #0f1419;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.l6-social .sw-card-header {
    gap: 10px;
    margin-bottom: 6px;
    padding-right: 28px;
}

.l6-social .sw-avatar {
    width: 44px;
    height: 44px;
}

.l6-social .sw-name {
    color: #0f1419;
    font-size: 15px;
    font-weight: 700;
    line-height: 20px;
}

.l6-social .sw-handle {
    color: #536471;
    font-size: 15px;
    line-height: 20px;
}

.l6-social .sw-text {
    color: #0f1419;
    font-size: 15px;
    line-height: 20px;
    -webkit-line-clamp: 6;
}

.l6-social .l6-x-ent {
    color: #1d9bf0;
}

@media (max-width: 991px) {
    .l6-social a.sw-card {
        width: 320px;
    }
}

@media (max-width: 767px) {
    .l6-social a.sw-card {
        width: 300px;
    }
}

/* ==========================================================================
   FAQ (partials/landing6/faq.php): native <details>, CSS plus/minus icon
   ========================================================================== */

.l6-faq details {
    border-bottom: 1px solid var(--l6-line);
}

.l6-faq details:first-child {
    border-top: 1px solid var(--l6-line);
}

.l6-faq summary {
    position: relative;
    padding: 20px 44px 20px 0;
    color: var(--l6-ink);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.4;
    list-style: none;
    cursor: pointer;
}

.l6-faq summary::-webkit-details-marker {
    display: none;
}

.l6-faq-icon {
    position: absolute;
    top: 50%;
    right: 6px;
    width: 14px;
    height: 14px;
    transform: translateY(-50%);
}

.l6-faq-icon::before,
.l6-faq-icon::after {
    content: "";
    position: absolute;
    top: 6px;
    left: 0;
    width: 14px;
    height: 2px;
    border-radius: 2px;
    background: var(--l6-ink);
    transition: transform 200ms ease;
}

.l6-faq-icon::after {
    transform: rotate(90deg);
}

.l6-faq details[open] .l6-faq-icon::after {
    transform: rotate(0deg);
}

.l6-faq details p {
    max-width: 62ch;
    padding-bottom: 22px;
    font-size: 1rem;
}

.l6-faq details p a {
    font-weight: 700;
    text-underline-offset: 3px;
}

/* ==========================================================================
   Final CTA: the solid blue panel (partials/landing6/final_cta.php)
   ========================================================================== */

.l6-final {
    padding: 0 0 clamp(72px, 9vw, 110px);
}

.l6-final--spaced {
    padding-top: clamp(72px, 9vw, 110px);
}

.l6-final-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 64px);
    align-items: center;
    padding: clamp(32px, 5vw, 64px);
    border-radius: 28px;
    background: var(--l6-blue);
    color: #fff;
}

.l6-final-copy h2 {
    margin: 0 0 14px;
    color: #fff;
    font-family: var(--l6-display);
    font-size: clamp(2rem, 3.3vw, 3rem);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.06;
    text-wrap: balance;
}

.l6-final-copy p {
    color: #fff;
    font-size: 1.08rem;
}

/* ==========================================================================
   Utilities
   ========================================================================== */

/* "Paid plans" pill (ink); --blue and --outline variants */
.l6-pill {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--l6-ink);
    color: #fff;
    font-family: var(--l6-text);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.5;
    vertical-align: 3px;
    white-space: nowrap;
}

.l6-pill--blue {
    background: var(--l6-blue);
}

.l6-pill--outline {
    border: 1px solid var(--l6-line);
    background: transparent;
    color: var(--l6-body);
}

/* Link card: a URL chip that morphs from the long URL to the linktw.in
   short link ([data-l6-linkcard]; add .is-short in markup for a static
   short state). --dark sits on navy. */
.l6-linkcard {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    padding: 8px 12px 8px 8px;
    border: 1px solid var(--l6-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(13, 27, 46, 0.08);
    color: var(--l6-ink);
    font-family: var(--l6-text);
    font-size: 0.92rem;
    line-height: 1.3;
    text-align: left;
}

.l6-linkcard-icon {
    flex: none;
    width: 32px;
    height: 32px;
    padding: 5px;
    border-radius: 9px;
    background: var(--l6-haze);
}

.l6-linkcard-url {
    display: grid;
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.l6-linkcard-long,
.l6-linkcard-short {
    grid-area: 1 / 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: opacity 260ms ease, transform 420ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.l6-linkcard-long {
    color: var(--l6-muted);
}

.l6-linkcard-short {
    font-weight: 700;
    opacity: 0;
    transform: translateY(70%);
}

.l6-linkcard-short b {
    color: var(--l6-blue-deep);
}

.l6-linkcard-state {
    display: grid;
    flex: none;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--l6-go);
    color: #fff;
    font-size: 10px;
    transform: scale(0);
    transition: transform 360ms cubic-bezier(0.2, 0.8, 0.2, 1.4) 120ms;
}

.l6-linkcard.is-short .l6-linkcard-long {
    opacity: 0;
    transform: translateY(-70%);
}

.l6-linkcard.is-short .l6-linkcard-short {
    opacity: 1;
    transform: none;
}

.l6-linkcard.is-short .l6-linkcard-state {
    transform: none;
}

.l6-linkcard-note {
    margin-top: 8px !important;
    color: var(--l6-muted);
    font-size: 0.84rem;
}

.l6-linkcard--dark {
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
    box-shadow: none;
    color: #fff;
}

.l6-linkcard--dark .l6-linkcard-icon {
    background: #fff;
}

.l6-linkcard--dark .l6-linkcard-long {
    color: rgba(255, 255, 255, 0.6);
}

.l6-linkcard--dark .l6-linkcard-short b {
    color: #8fc0ff;
}

/* Logo grid for supported-app directories. Items are <li> with a logo and
   a name, optionally wrapped in <a>. */
.l6-logo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.l6-logo-grid--dense {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}

.l6-logo-grid > li > a,
.l6-logo-grid > li > div {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 100%;
    padding: 12px 14px;
    border: 1px solid var(--l6-line);
    border-radius: 14px;
    background: var(--l6-paper);
    color: var(--l6-ink);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.l6-section--haze .l6-logo-grid > li > a,
.l6-section--haze .l6-logo-grid > li > div {
    border-color: transparent;
}

.l6-logo-grid > li > a:hover {
    border-color: var(--l6-ink);
    box-shadow: 0 10px 24px rgba(13, 27, 46, 0.08);
    transform: translateY(-2px);
}

.l6-logo-grid img,
.l6-logo-grid > li i {
    display: grid;
    flex: none;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    object-fit: contain;
}

.l6-logo-grid small {
    display: block;
    color: var(--l6-muted);
    font-size: 0.76rem;
    font-weight: 400;
}

.l6-logo-grid-head {
    margin: 30px 0 12px !important;
    color: var(--l6-ink);
    font-family: var(--l6-text);
    font-size: 1.05rem;
    font-weight: 700;
}

/* Reveal on scroll ([data-l6-reveal] or .l6-reveal). The JS only hides
   them (html.l6-reveal-on) when motion is allowed and they start out of
   view; stagger with style="--d: 1". */
.l6-reveal-on .l6-reveal:not(.is-in) {
    opacity: 0;
    transform: translateY(18px);
}

.l6-reveal-on .l6-reveal {
    transition: opacity 600ms ease, transform 700ms cubic-bezier(0.2, 0.8, 0.2, 1);
    transition-delay: calc(var(--d, 0) * 90ms);
}

/* ==========================================================================
   Responsive. Verify at 1440, 1180, 1024, 768 and 390.
   ========================================================================== */

/* Desktop only: the flipped split shows the visual first */
@media (min-width: 1181px) {
    .l6-split--flip > :first-child {
        order: 2;
    }
}

@media (max-width: 1180px) {
    .l6-hero-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .l6-hero-copy {
        max-width: 720px;
    }

    .l6-apps-row a {
        margin-left: 0;
    }

    /* Visual splits stack here; the plain (FAQ) split waits for 900px */
    .l6-cost-top,
    .l6-split--center,
    .l6-split--even,
    .l6-split--flip {
        grid-template-columns: minmax(0, 1fr);
    }

    .l6-tile,
    .l6-tile--4,
    .l6-tile--5,
    .l6-tile--7,
    .l6-tile--8 {
        grid-column: span 6;
    }

    .l6-tile.l6-tile--12 {
        grid-column: 1 / -1;
    }

    .l6-tools {
        justify-content: flex-start;
    }

    .l6-cards--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1060px) {
    .l6-cards {
        grid-template-columns: minmax(0, 1fr);
        max-width: 620px;
        margin-inline: auto;
    }

    .l6-cards--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: none;
    }
}

@media (max-width: 900px) {
    .l6-split {
        grid-template-columns: minmax(0, 1fr);
    }

    .l6-split-intro {
        position: static;
    }

    .l6-steps {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }

    .l6-steps--cards li:not(:last-child)::after {
        top: auto;
        right: auto;
        bottom: -14px;
        left: 50%;
        transform: translateX(-50%) rotate(135deg);
    }

    .l6-final-panel {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Router stacks: sources row, hub, destinations row */
    .l6-router {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }

    .l6-router-col,
    .l6-router-col--to {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }

    .l6-node {
        padding: 7px 11px 7px 8px;
        font-size: 0.8rem;
    }

    .l6-node .l6-node-note {
        display: none;
    }

    .l6-hub-core {
        width: 86px;
        height: 86px;
    }

    .l6-hub-core img {
        width: 42px;
        height: 42px;
    }

    .l6-router-win {
        position: static;
        grid-column: 1 / -1;
        justify-self: center;
    }
}

@media (max-width: 640px) {
    .l6-page {
        font-size: 16px;
    }

    .l6-wrap,
    .l6-social .sw-section > .container {
        width: calc(100% - 32px);
    }

    .l6-hero {
        padding-top: 28px;
    }

    .l6-video-frame {
        border-radius: 22px;
    }

    .l6-display {
        font-size: clamp(2.15rem, 10vw, 2.8rem);
    }

    /* Ledger becomes stacked rows */
    .l6-ledger-row {
        grid-template-columns: 1fr 1fr;
        gap: 10px 16px;
        font-size: 0.92rem;
    }

    .l6-ledger [role="rowheader"] {
        grid-column: 1 / -1;
    }

    .l6-ledger-head [role="columnheader"]:first-child {
        display: none;
    }

    .l6-tile,
    .l6-tile--4,
    .l6-tile--5,
    .l6-tile--6,
    .l6-tile--7,
    .l6-tile--8 {
        grid-column: span 12;
        min-height: 0;
    }

    .l6-tile--tools {
        flex-direction: column;
        align-items: flex-start;
    }

    .l6-cards--2,
    .l6-cards--4 {
        grid-template-columns: minmax(0, 1fr);
    }

    .l6-chart-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .l6-chart-label {
        grid-row: auto;
    }

    .l6-bar-steps span {
        height: 18px;
    }

    .l6-bigstat b {
        font-size: 4.6rem;
    }

    .l6-phone-art {
        min-height: 0;
        padding-bottom: 120px;
    }

    .l6-phone-art .l6-phone {
        font-size: 11px;
    }

    .l6-float-card,
    .l6-float-card--left {
        right: 0;
        bottom: 0;
        left: auto;
    }

    .l6-float-card--top {
        top: auto;
    }

    .l6-apps-row ul {
        gap: 10px 18px;
    }

    .l6-page .l6-store {
        flex: 1 1 140px;
        min-width: 0;
        padding: 10px 12px;
    }

    .l6-bframes {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
    }

    .l6-bframe {
        width: min(100%, 300px);
    }

    .l6-bframes-arrow {
        transform: rotate(90deg);
    }

    .l6-bframe--trap {
        transform: none;
    }

    .l6-browser-picks button span {
        display: none;
    }

    .l6-browser-picks button {
        padding: 8px;
    }

    .l6-logo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* Shared form stacks: input above a full-width button */
    .l6-page .l6-form .lp3-url-input-group {
        display: grid;
        grid-template-columns: 1fr;
        gap: 6px;
        min-height: 0;
        padding: 6px;
        overflow: visible;
        border: 1.5px solid var(--l6-ink) !important;
        border-radius: 14px !important;
        background: var(--l6-paper) !important;
        box-shadow: 4px 4px 0 var(--l6-ink) !important;
    }

    .l6-page .l6-form .lp3-url-icon {
        display: none;
    }

    .l6-page .l6-form .lp3-url-input-wrapper {
        width: 100%;
    }

    .l6-page .l6-form input.lp3-url-input {
        min-height: 50px;
        padding: 12px 46px 12px 10px;
        border: 0 !important;
        border-radius: 8px !important;
        background: var(--l6-paper) !important;
        box-shadow: none !important;
    }

    .l6-page .l6-form .lp3-url-submit {
        width: 100%;
        min-height: 50px;
        margin: 0;
        padding: 12px 18px;
    }
}

/* ==========================================================================
   Reduced motion: no keyframes, no transitions; the JS shows every
   animated component in its finished state.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    .l6-hub-core::before,
    .l6-node.is-tapped::after,
    .l6-node.is-landed,
    .l6-router-win.is-shown,
    .l6-router-svg path.is-hot,
    .l6-video-play,
    .l6-video-play-icon,
    .l6-video-end,
    .l6-token,
    .l6-vf-token,
    .l6-domain-caret,
    .l6-card,
    .l6-page .l6-card-cta i,
    .l6-bar-steps span,
    .l6-bar-n,
    .l6-faq-icon::before,
    .l6-faq-icon::after,
    .l6-bframe-bar--real,
    .l6-browser-picks button,
    .l6-linkcard-long,
    .l6-linkcard-short,
    .l6-linkcard-state,
    .l6-logo-grid > li > a,
    .l6-reveal {
        animation: none !important;
        transition: none !important;
    }

    .l6-page .l6-form .lp3-url-input-group {
        transition: none;
    }

    .l6-card:hover,
    .l6-logo-grid > li > a:hover {
        transform: none;
    }
}
