/* Page styles for template "Service: PPC & Performance Marketing" (from PPC_page.html).
   Loaded only on pages using this template, after assets/css/global.css. */

        /* Service page template (from homepage v2) — royal-blue hero with orbit visual, big-figure band,
   "dissected" problem card, dark card grid, numbered process, navy "why" block, contact form, FAQ, wordmark footer.
   Flat by request: no gradients, no shadows. Every colour is a Trilliant Digital design-system token. */
        :root {
            color-scheme: light;
            --brand-blue: #1279ac;
            --brand-green: #3e9a7b;
            --royal-blue: #123c9e;
            --deep-navy: #0b1c38;
            --cream: #eceec9;
            --ink: #16233c;
            --white: #ffffff;
            --porcelain: #f7fafd;
            --hairline: #d9e2ec;
            --pale-blue: #b9c9e4;
            --muted: #8a9ab5;
            --slate: #5b6b82;
            --brand-blue-light-40: #71afcd;
            --brand-blue-dark-20: #0e618a;
            --brand-green-light-40: #8bc2b0;
            --brand-green-dark-20: #327b62;
            --royal-blue-light-40: #718ac5;
            --royal-blue-light-20: #4163b1;
            --royal-blue-dark-20: #0e307e;
            --royal-blue-dark-40: #0b245f;
            --cream-light-20: #f0f1d4;
            --cream-text: #3a3d18;
            --f-head: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
            --f-body: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
            --f-accent: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
            --r-md: 12px;
            --r-lg: 20px;
            --r-pill: 999px;
            --gutter: clamp(16px, 4vw, 40px);
            --ease: cubic-bezier(.2, .7, .2, 1);
        }

        *,
        *::before,
        *::after {
            box-sizing: border-box
        }

        html {
            scroll-behavior: smooth;
            scroll-padding-top: 84px
        }

        body {
            margin: 0;
            background: var(--white);
            color: var(--slate);
            font: 400 1.0625rem/1.65 var(--f-body);
            -webkit-font-smoothing: antialiased;
            overflow-x: hidden
        }

        h1,
        h2,
        h3,
        h4 {
            font-family: var(--f-head);
            color: var(--ink);
            margin: 0;
            text-wrap: balance;
            letter-spacing: -.015em
        }

        p {
            margin: 0
        }

        a {
            color: inherit;
            text-decoration: none
        }

        img {
            max-width: 100%;
            display: block
        }

        button,
        input,
        select,
        textarea {
            font: inherit;
            color: inherit
        }

        button {
            background: none;
            border: 0;
            cursor: pointer;
            padding: 0
        }

        :focus-visible {
            outline: 2px solid var(--brand-blue);
            outline-offset: 3px;
            border-radius: 6px
        }

        .dark :focus-visible {
            outline-color: var(--cream)
        }

        .ic {
            width: 1em;
            height: 1em;
            fill: none;
            stroke: currentColor;
            stroke-width: 1.75;
            stroke-linecap: round;
            stroke-linejoin: round;
            flex: none
        }

        .wrap {
            width: 100%;
            max-width: 1290px;
            margin-inline: auto;
            padding-inline: var(--gutter)
        }

        .sec {
            padding-block: clamp(72px, 9vw, 120px)
        }

        .dark {
            color: var(--pale-blue)
        }

        .dark h2,
        .dark h3 {
            color: var(--white)
        }

        .eyebrow {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            font: 800 .76rem/1 var(--f-accent);
            letter-spacing: .16em;
            text-transform: uppercase;
            color: var(--brand-green-dark-20)
        }

        .eyebrow::before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: currentColor
        }

        .dark .eyebrow {
            color: var(--brand-green-light-40)
        }

        .h2 {
            font-size: clamp(1.9rem, 3.4vw, 2.9rem);
            line-height: 1.12;
            font-weight: 700
        }

        .h2 .em {
            color: var(--brand-blue)
        }

        .dark .h2 .em {
            color: var(--cream)
        }

        .lead {
            font-size: clamp(1rem, 1.25vw, 1.1rem);
            max-width: 58ch
        }

        .center {
            text-align: center;
            justify-items: center;
            margin-inline: auto
        }

        .ph-text {
            border-bottom: 1.5px dashed currentColor
        }

        /* buttons */
        .btn {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            height: 52px;
            padding: 0 26px;
            border-radius: var(--r-pill);
            font: 700 .96rem/1 var(--f-head);
            white-space: nowrap;
            transition: transform .25s var(--ease), background-color .25s, border-color .25s, color .25s;
            border: 1.5px solid transparent
        }

        .btn .ic {
            transition: transform .25s var(--ease)
        }

        .btn:hover {
            transform: translateY(-2px)
        }

        .btn:hover .ic {
            transform: translateX(3px)
        }

        .btn-cream {
            background: var(--cream);
            color: var(--cream-text)
        }

        .btn-cream:hover {
            background: var(--cream-light-20)
        }

        .btn-blue {
            background: var(--brand-blue);
            color: var(--white)
        }

        .btn-blue:hover {
            background: var(--brand-blue-dark-20)
        }

        .btn-ghost {
            border-color: rgba(255, 255, 255, .35);
            color: var(--white)
        }

        .btn-ghost:hover {
            border-color: var(--cream);
            color: var(--cream)
        }

        .btn-sm {
            height: 42px;
            padding: 0 18px;
            font-size: .86rem
        }

        /* placeholders */
        .ph {
            display: grid;
            place-items: center;
            align-content: center;
            gap: 8px;
            text-align: center;
            padding: 18px;
            border-radius: var(--r-lg);
            background: var(--porcelain);
            border: 1.5px dashed var(--muted);
            color: var(--slate)
        }

        .ph .ic {
            font-size: 1.7rem;
            color: var(--brand-blue);
            stroke-width: 1.4
        }

        .ph-k {
            font: 800 .7rem/1.2 var(--f-accent);
            letter-spacing: .16em;
            text-transform: uppercase;
            color: var(--brand-blue-dark-20)
        }

        .ph-d {
            font-size: .84rem;
            line-height: 1.4;
            max-width: 32ch
        }

        .ph.on-dark {
            background: var(--royal-blue-dark-40);
            border-color: var(--royal-blue-light-40);
            color: var(--pale-blue)
        }

        .ph.on-dark .ph-k {
            color: var(--cream)
        }

        .ph.on-dark .ic {
            color: var(--pale-blue)
        }

        /* reveal (below-the-fold only) */
        .motion .rv.wait {
            opacity: 0;
            transform: translateY(22px);
            transition: opacity .7s var(--ease), transform .7s var(--ease);
            transition-delay: var(--d, 0s)
        }

        .motion .rv.wait.in {
            opacity: 1;
            transform: none
        }

        /* nav */
        .nav {
            position: fixed;
            inset: 0 0 auto 0;
            z-index: 50;
            padding-top: env(safe-area-inset-top, 0px);
            transition: background-color .3s, border-color .3s;
            border-bottom: 1px solid transparent
        }

        .nav-in {
            display: flex;
            align-items: center;
            gap: 24px;
            height: 76px
        }

        .nav.scrolled {
            background: var(--white);
            border-bottom-color: var(--hairline)
        }

        .logo {
            position: relative;
            display: block;
            width: 168px;
            height: 26px;
            flex: none
        }

        .logo img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: auto;
            transition: opacity .3s
        }

        .logo .l-color {
            opacity: 0
        }

        .nav.scrolled .l-white {
            opacity: 0
        }

        .nav.scrolled .l-color {
            opacity: 1
        }

        .nav-links {
            display: flex;
            gap: 2px;
            list-style: none;
            margin: 0 0 0 auto;
            padding: 0
        }

        .nav-links a {
            display: block;
            padding: 10px 14px;
            border-radius: var(--r-pill);
            font: 600 .9rem/1 var(--f-head);
            color: var(--white);
            transition: color .2s, background-color .2s
        }

        .nav-links a:hover {
            background: var(--royal-blue-dark-20)
        }

        .nav.scrolled .nav-links a {
            color: var(--ink)
        }

        .nav.scrolled .nav-links a:hover {
            background: var(--porcelain);
            color: var(--brand-blue)
        }

        .nav .btn {
            height: 44px;
            padding: 0 20px;
            font-size: .88rem
        }

        .nav .btn-blue {
            display: none
        }

        .nav.scrolled .btn-cream {
            display: none
        }

        .nav.scrolled .btn-blue {
            display: inline-flex
        }

        .menu-btn {
            display: none;
            width: 44px;
            height: 44px;
            place-items: center;
            color: var(--white);
            font-size: 1.4rem;
            margin-left: auto
        }

        .nav.scrolled .menu-btn {
            color: var(--ink)
        }

        .mobile-menu {
            display: none
        }

        /* 1 hero */
        .hero {
            background: var(--royal-blue);
            color: var(--pale-blue);
            padding-top: calc(140px + env(safe-area-inset-top, 0px));
            padding-bottom: clamp(64px, 8vw, 104px);
            position: relative;
            overflow: hidden
        }

        .hero-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
            gap: clamp(32px, 4vw, 64px);
            align-items: center
        }

        .hero-copy {
            display: grid;
            gap: 24px;
            justify-items: start
        }

        .pill-tag {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 8px 14px;
            border-radius: var(--r-pill);
            border: 1px solid var(--royal-blue-light-40);
            font: 800 .72rem/1 var(--f-accent);
            letter-spacing: .16em;
            text-transform: uppercase;
            color: var(--cream)
        }

        .pill-tag i {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: var(--brand-green-light-40)
        }

        .hero h1 {
            color: var(--white);
            font-size: clamp(2.4rem, 4.8vw, 4rem);
            line-height: 1.06;
            font-weight: 800;
            letter-spacing: -.025em
        }

        .hero h1 .em {
            color: var(--cream)
        }

        .hero-sub {
            font-size: clamp(1.03rem, 1.3vw, 1.16rem);
            max-width: 50ch
        }

        .hero-ctas {
            display: flex;
            flex-wrap: wrap;
            gap: 12px;
            margin-top: 6px
        }

        .orbit {
            position: relative;
            aspect-ratio: 1/0.9;
            max-width: 560px;
            width: 100%;
            justify-self: end
        }

        .orbit svg.rings {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%
        }

        .spin {
            transform-origin: 280px 252px;
            animation: spin 90s linear infinite
        }

        @keyframes spin {
            to {
                transform: rotate(360deg)
            }
        }

        .draw {
            stroke-dasharray: 1400;
            stroke-dashoffset: 1400;
            animation: draw 2.4s var(--ease) .3s forwards
        }

        @keyframes draw {
            to {
                stroke-dashoffset: 0
            }
        }

        .o-node {
            position: absolute;
            width: 52px;
            height: 52px;
            margin: -26px 0 0 -26px;
            border-radius: 16px;
            background: var(--white);
            color: var(--brand-blue);
            display: grid;
            place-items: center;
            font-size: 1.35rem;
            animation: bob 7s ease-in-out infinite;
            animation-delay: var(--bd, 0s)
        }

        @keyframes bob {
            50% {
                transform: translateY(-8px)
            }
        }

        .o-hub {
            position: absolute;
            left: 50%;
            top: 56%;
            width: 108px;
            height: 108px;
            margin: -54px 0 0 -54px;
            border-radius: 30px;
            background: var(--white);
            display: grid;
            place-items: center
        }

        .o-hub svg {
            width: 66px;
            height: auto
        }

        .o-card {
            position: absolute;
            background: var(--white);
            border-radius: 14px;
            padding: 12px 14px;
            display: grid;
            gap: 4px;
            min-width: 160px;
            color: var(--ink)
        }

        .o-card b {
            font: 700 .84rem/1.2 var(--f-head)
        }

        .o-card span {
            font-size: .74rem;
            color: var(--slate);
            display: flex;
            align-items: center;
            gap: 6px
        }

        .o-card .up {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font: 700 .72rem/1 var(--f-head);
            color: var(--brand-green-dark-20)
        }

        .live {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--brand-green);
            animation: blink 2s ease-in-out infinite
        }

        @keyframes blink {
            50% {
                opacity: .3
            }
        }

        .orbit .note {
            position: absolute;
            left: 0;
            right: 0;
            bottom: -30px;
            text-align: center;
            font: 700 .66rem/1.3 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--pale-blue)
        }

        /* 2 figures band */
        .figs {
            border-bottom: 1px solid var(--hairline);
            padding-block: clamp(40px, 5vw, 60px)
        }

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

        .fig {
            display: flex;
            align-items: baseline;
            gap: 12px;
            padding: 6px clamp(10px, 2vw, 28px)
        }

        .fig+.fig {
            border-left: 1px solid var(--hairline)
        }

        .fig:first-child {
            padding-left: 0
        }

        .fig b {
            font: 800 clamp(2rem, 3.4vw, 2.9rem)/1 var(--f-head);
            color: var(--ink);
            letter-spacing: -.02em;
            white-space: nowrap
        }

        .fig b .ph-text {
            color: var(--brand-blue)
        }

        .fig>span {
            font: 700 .7rem/1.3 var(--f-accent);
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--muted);
            max-width: 12ch
        }

        /* 3 dissected */
        .dis-card {
            border: 1px solid var(--hairline);
            border-radius: 28px;
            background: var(--white);
            padding: clamp(32px, 5vw, 64px) clamp(20px, 4vw, 56px);
            display: grid;
            gap: 12px;
            text-align: center;
            justify-items: center
        }

        .dis-card .lead {
            margin-inline: auto
        }

        .chaos {
            position: relative;
            width: 100%;
            max-width: 820px;
            height: 300px;
            margin: 18px auto 8px
        }

        .chaos>svg {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%
        }

        .chaos>svg path {
            fill: none;
            stroke: var(--hairline);
            stroke-width: 1.5;
            stroke-dasharray: 4 6
        }

        .chip-t {
            position: absolute;
            transform: translate(-50%, -50%);
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 8px 13px 8px 9px;
            border-radius: var(--r-pill);
            background: var(--white);
            border: 1px solid var(--hairline);
            font: 600 .8rem/1 var(--f-head);
            color: var(--ink);
            white-space: nowrap;
            transition: transform .6s var(--ease), border-color .4s, opacity .4s
        }

        .chip-t i {
            width: 26px;
            height: 26px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            background: var(--porcelain);
            color: var(--muted);
            font-size: .85rem
        }

        .chaos-core {
            position: absolute;
            left: 50%;
            top: 50%;
            width: 76px;
            height: 76px;
            margin: -38px 0 0 -38px;
            border-radius: 50%;
            background: var(--porcelain);
            border: 1.5px dashed var(--muted);
            display: grid;
            place-items: center;
            color: var(--muted);
            font-size: 1.6rem;
            transition: background-color .5s, color .5s, border-color .5s
        }

        .chaos.solved .chip-t {
            border-color: var(--brand-blue-light-40)
        }

        .chaos.solved .chip-t i {
            background: var(--brand-blue);
            color: var(--white)
        }

        .chaos.solved .chaos-core {
            background: var(--brand-green);
            border: 1.5px solid var(--brand-green);
            color: var(--white)
        }

        .chaos.solved>svg path {
            stroke: var(--brand-green-light-40)
        }

        .seg {
            display: inline-flex;
            padding: 4px;
            border-radius: var(--r-pill);
            background: var(--porcelain);
            border: 1px solid var(--hairline)
        }

        .seg button {
            padding: 10px 18px;
            border-radius: var(--r-pill);
            font: 700 .82rem/1 var(--f-head);
            color: var(--slate);
            transition: background-color .3s, color .3s
        }

        .seg button[aria-pressed="true"] {
            background: var(--ink);
            color: var(--white)
        }

        .dis-stats {
            width: 100%;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            margin-top: 28px;
            border-top: 1px solid var(--hairline);
            text-align: left
        }

        .dis-stats div {
            padding: 24px clamp(10px, 2vw, 28px) 0
        }

        .dis-stats div+div {
            border-left: 1px solid var(--hairline)
        }

        .dis-stats b {
            display: block;
            font: 800 1.5rem/1.15 var(--f-head);
            color: var(--ink);
            transition: opacity .25s
        }

        .dis-stats span {
            display: block;
            font-size: .92rem;
            margin-top: 6px;
            transition: opacity .25s
        }

        /* 4 dark grid */
        .grid-dark {
            background: var(--deep-navy)
        }

        .gd-head {
            display: flex;
            flex-wrap: wrap;
            align-items: end;
            justify-content: space-between;
            gap: 24px;
            margin-bottom: 40px
        }

        .gd-head>div:first-child {
            display: grid;
            gap: 16px;
            max-width: 640px
        }

        .tabs {
            display: inline-flex;
            padding: 4px;
            border-radius: var(--r-pill);
            border: 1px solid var(--royal-blue-dark-20);
            background: var(--royal-blue-dark-40)
        }

        .tabs button {
            padding: 10px 18px;
            border-radius: var(--r-pill);
            font: 700 .84rem/1 var(--f-head);
            color: var(--pale-blue);
            transition: background-color .3s, color .3s
        }

        .tabs button[aria-selected="true"] {
            background: var(--cream);
            color: var(--cream-text)
        }

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

        .tiles[data-cols="3"] {
            grid-template-columns: repeat(3, minmax(0, 1fr))
        }

        .tile {
            position: relative;
            min-height: 290px;
            border-radius: var(--r-lg);
            background: var(--royal-blue-dark-40);
            border: 1px solid var(--royal-blue-dark-20);
            padding: 22px;
            display: flex;
            flex-direction: column;
            gap: 10px;
            overflow: hidden;
            transition: transform .45s var(--ease), border-color .45s, background-color .45s;
            min-width: 0
        }

        .tile:hover {
            transform: translateY(-6px);
            border-color: var(--royal-blue-light-40);
            background: var(--royal-blue-dark-20)
        }

        .tile-top {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 10px
        }

        .sq {
            width: 44px;
            height: 44px;
            border-radius: 12px;
            display: grid;
            place-items: center;
            font-size: 1.25rem;
            color: var(--white)
        }

        .tile-top small {
            font: 700 .68rem/1.3 var(--f-accent);
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--royal-blue-light-40);
            text-align: right
        }

        .tile .k {
            margin-top: 18px;
            font: 700 .72rem/1 var(--f-accent);
            letter-spacing: .1em;
            text-transform: uppercase;
            color: var(--brand-green-light-40)
        }

        .tile h3 {
            font-size: 1.14rem;
            line-height: 1.25;
            font-weight: 700;
            position: relative;
            z-index: 1
        }

        .tile p {
            font-size: .88rem;
            line-height: 1.5;
            color: var(--pale-blue);
            max-width: 28ch;
            position: relative;
            z-index: 1
        }

        .tile .more {
            margin-top: auto;
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font: 700 .82rem/1 var(--f-head);
            color: var(--white);
            position: relative;
            z-index: 1
        }

        .tile .more .ic {
            transition: transform .25s var(--ease)
        }

        .tile:hover .more .ic {
            transform: translateX(4px)
        }

        .art {
            position: absolute;
            right: -18px;
            bottom: -18px;
            width: 118px;
            height: 118px;
            opacity: .7;
            transition: transform .7s var(--ease);
            pointer-events: none
        }

        .tile:hover .art {
            transform: translate(-6px, -6px) rotate(-4deg)
        }

        .tile.cta {
            background: var(--cream);
            border-color: var(--cream)
        }

        .tile.cta h3 {
            color: var(--cream-text)
        }

        .tile.cta p {
            color: var(--cream-text)
        }

        .tile.cta .more {
            color: var(--cream-text)
        }

        .tile.cta .k {
            color: var(--brand-green-dark-20)
        }

        .tile.cta:hover {
            background: var(--cream-light-20);
            border-color: var(--cream-light-20)
        }

        .tile .ph.on-dark {
            margin-top: 6px;
            padding: 10px;
            border-radius: 10px;
            min-height: 0
        }

        .panel[hidden] {
            display: none
        }

        /* 5 process */
        .proc-head {
            display: grid;
            gap: 16px;
            justify-items: center;
            text-align: center;
            margin-bottom: 56px
        }

        .proc-row {
            position: relative;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 20px
        }

        .proc-row svg.path {
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 220px;
            overflow: visible;
            pointer-events: none
        }

        .proc-row svg.path path {
            fill: none;
            stroke: var(--muted);
            stroke-width: 1.5;
            stroke-dasharray: 5 7
        }

        .pstep {
            position: relative;
            display: grid;
            justify-items: center;
            text-align: center;
            gap: 14px
        }

        .circle {
            position: relative;
            width: 200px;
            height: 200px;
            max-width: 100%;
            border-radius: 50%;
            border: 1.5px solid var(--hairline);
            background: var(--white);
            display: grid;
            place-items: center;
            align-content: center;
            gap: 8px;
            padding: 26px;
            transition: border-color .45s, background-color .45s, transform .45s var(--ease)
        }

        .circle .ic {
            font-size: 1.7rem;
            color: var(--brand-blue)
        }

        .circle h3 {
            font-size: 1.04rem
        }

        .circle p {
            font-size: .8rem;
            line-height: 1.45
        }

        .num {
            position: absolute;
            top: -16px;
            left: 50%;
            margin-left: -22px;
            width: 44px;
            height: 44px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            background: var(--brand-blue);
            color: var(--white);
            font: 800 .9rem/1 var(--f-head);
            border: 4px solid var(--white);
            transition: background-color .45s
        }

        .pstep.on .circle {
            border-color: var(--brand-blue);
            background: var(--porcelain);
            transform: translateY(-6px)
        }

        .pstep.on .num {
            background: var(--brand-green)
        }

        .pstep .chips {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 6px
        }

        .chip {
            display: inline-flex;
            align-items: center;
            padding: 6px 10px;
            border-radius: var(--r-pill);
            border: 1px solid var(--hairline);
            background: var(--white);
            font: 600 .72rem/1 var(--f-body);
            color: var(--slate)
        }

        /* 6 why */
        .why {
            background: var(--deep-navy)
        }

        .why-top {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: end;
            gap: 24px;
            margin-bottom: 44px
        }

        .why-top>div {
            display: grid;
            gap: 16px;
            max-width: 620px
        }

        .why-grid {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
            gap: clamp(28px, 4vw, 56px);
            align-items: stretch
        }

        .why-grid .ph {
            min-height: 380px;
            border-radius: 24px
        }

        .feats {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 36px 32px;
            align-content: center
        }

        .feat {
            display: grid;
            gap: 10px;
            align-content: start
        }

        .feat .sq {
            background: var(--royal-blue);
            border: 1px solid var(--royal-blue-light-20);
            width: 52px;
            height: 52px;
            font-size: 1.4rem;
            transition: background-color .35s, color .35s
        }

        .feat:hover .sq {
            background: var(--cream);
            color: var(--cream-text);
            border-color: var(--cream)
        }

        .feat h3 {
            font-size: 1.1rem
        }

        .feat p {
            font-size: .93rem;
            line-height: 1.55
        }

        /* 7 contact */
        .contact-grid {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            gap: clamp(32px, 5vw, 72px);
            align-items: center
        }

        .contact-copy {
            display: grid;
            gap: 22px;
            justify-items: start
        }

        .contact-copy .h2 {
            font-weight: 600
        }

        .contact-copy .h2 b {
            font-weight: 800;
            color: var(--brand-blue)
        }

        .cline {
            display: flex;
            align-items: center;
            gap: 16px
        }

        .cline .sq {
            background: var(--brand-blue);
            width: 50px;
            height: 50px;
            font-size: 1.3rem
        }

        .cline small {
            display: block;
            font: 700 .7rem/1 var(--f-accent);
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--muted);
            margin-bottom: 6px
        }

        .cline b {
            font: 600 1rem/1.3 var(--f-head);
            color: var(--ink)
        }

        .form {
            border: 1px solid var(--hairline);
            border-radius: 24px;
            background: var(--white);
            padding: clamp(22px, 3vw, 36px);
            display: grid;
            gap: 16px
        }

        .field {
            display: grid;
            gap: 7px
        }

        .field label {
            font: 700 .8rem/1 var(--f-head);
            color: var(--ink)
        }

        .field input,
        .field select,
        .field textarea {
            width: 100%;
            border: 1px solid var(--hairline);
            border-radius: 10px;
            background: var(--porcelain);
            padding: 13px 14px;
            font-size: .95rem;
            color: var(--ink);
            transition: border-color .2s, background-color .2s
        }

        .field textarea {
            min-height: 110px;
            resize: vertical
        }

        .field input:focus,
        .field select:focus,
        .field textarea:focus {
            outline: none;
            border-color: var(--brand-blue);
            background: var(--white)
        }

        .form-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px
        }

        .form .btn {
            justify-self: start;
            margin-top: 4px
        }

        .form-msg {
            font-size: .86rem;
            color: var(--brand-green-dark-20);
            min-height: 1.2em
        }

        /* 8 faq */
        .faq-grid {
            display: grid;
            grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
            gap: clamp(28px, 5vw, 72px);
            align-items: start
        }

        .faq-side {
            display: grid;
            gap: 18px;
            position: sticky;
            top: 110px;
            align-content: start
        }

        .faq-side .ask {
            margin-top: 24px;
            display: grid;
            gap: 12px;
            justify-items: start
        }

        .faq-side .ask b {
            font: 700 1.05rem/1.3 var(--f-head);
            color: var(--ink)
        }

        .faqs {
            display: grid;
            gap: 12px
        }

        .q {
            border: 1px solid var(--hairline);
            border-radius: 16px;
            background: var(--white);
            transition: background-color .35s, border-color .35s
        }

        .q button {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            padding: 20px 22px;
            text-align: left;
            font: 600 1rem/1.4 var(--f-head);
            color: var(--ink)
        }

        .q .tog {
            width: 30px;
            height: 30px;
            border-radius: 50%;
            flex: none;
            display: grid;
            place-items: center;
            background: var(--royal-blue);
            color: var(--white);
            font-size: 1rem;
            transition: transform .35s var(--ease), background-color .35s
        }

        .q .ans {
            display: grid;
            grid-template-rows: 0fr;
            transition: grid-template-rows .4s var(--ease)
        }

        .q .ans>div {
            overflow: hidden
        }

        .q .ans p {
            padding: 0 22px 22px;
            font-size: .95rem;
            line-height: 1.6
        }

        .q.open {
            background: var(--royal-blue);
            border-color: var(--royal-blue)
        }

        .q.open button {
            color: var(--white)
        }

        .q.open .tog {
            background: var(--cream);
            color: var(--cream-text);
            transform: rotate(180deg)
        }

        .q .tog .ic {
            stroke-width: 2.4
        }

        .q.open .ans {
            grid-template-rows: 1fr
        }

        .q.open .ans p {
            color: var(--pale-blue)
        }

        /* 9 wordmark + footer */
        .foot {
            background: var(--deep-navy);
            color: var(--pale-blue);
            overflow: hidden
        }

        .mark-band {
            border-bottom: 1px solid var(--royal-blue-dark-20);
            padding-top: 56px;
            overflow: hidden
        }

        .wordmark {
            font: 800 clamp(4rem, 15.5vw, 13.5rem)/.8 var(--f-head);
            letter-spacing: -.04em;
            color: transparent;
            -webkit-text-stroke: 1.5px var(--royal-blue-light-20);
            white-space: nowrap;
            text-align: center;
            transform: translateY(6%);
            user-select: none
        }

        .foot-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
            gap: 40px;
            padding-block: 64px 40px
        }

        .foot-brand {
            display: grid;
            gap: 18px;
            align-content: start
        }

        .foot-brand img {
            width: 180px
        }

        .foot-brand p {
            font-size: .92rem;
            max-width: 36ch
        }

        .socials {
            display: flex;
            gap: 8px
        }

        .socials a {
            width: 38px;
            height: 38px;
            border-radius: 10px;
            display: grid;
            place-items: center;
            border: 1px solid var(--royal-blue-dark-20);
            color: var(--pale-blue);
            transition: background-color .25s, color .25s, border-color .25s
        }

        .socials a:hover {
            background: var(--cream);
            color: var(--cream-text);
            border-color: var(--cream)
        }

        .foot h4 {
            font: 700 .8rem/1 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--white);
            margin-bottom: 18px
        }

        .foot ul {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            gap: 11px;
            font-size: .92rem
        }

        .foot li {
            display: flex;
            gap: 10px
        }

        .foot li .ic {
            margin-top: 4px;
            color: var(--brand-green-light-40)
        }

        .foot a:hover {
            color: var(--cream)
        }

        .foot-base {
            border-top: 1px solid var(--royal-blue-dark-20);
            padding-block: 22px;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            gap: 12px;
            font-size: .84rem
        }

        /* responsive */
        @media (max-width:1100px) {

            .nav-links,
            .nav .btn {
                display: none !important
            }

            .menu-btn {
                display: grid
            }

            .mobile-menu {
                position: fixed;
                inset: calc(76px + env(safe-area-inset-top, 0px)) 0 auto 0;
                z-index: 49;
                background: var(--white);
                border-bottom: 1px solid var(--hairline);
                padding: 8px var(--gutter) 22px;
                display: grid;
                opacity: 0;
                transform: translateY(-10px);
                pointer-events: none;
                transition: opacity .3s, transform .3s var(--ease)
            }

            .mobile-menu.open {
                opacity: 1;
                transform: none;
                pointer-events: auto
            }

            .mobile-menu a:not(.btn) {
                padding: 14px 2px;
                border-bottom: 1px solid var(--hairline);
                font: 600 1rem/1 var(--f-head);
                color: var(--ink)
            }

            .mobile-menu .btn {
                justify-content: center;
                margin-top: 14px
            }

            .tiles,
            .tiles[data-cols="3"] {
                grid-template-columns: repeat(2, minmax(0, 1fr))
            }

            .proc-row {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                row-gap: 48px
            }

            .proc-row svg.path {
                display: none
            }

            .foot-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr))
            }

            .foot-brand {
                grid-column: 1/-1
            }
        }

        @media (max-width:900px) {

            .hero-grid,
            .why-grid,
            .contact-grid,
            .faq-grid {
                grid-template-columns: 1fr
            }

            .orbit {
                justify-self: center;
                margin-bottom: 24px
            }

            .figs-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                row-gap: 28px
            }

            .fig:nth-child(3) {
                border-left: 0;
                padding-left: 0
            }

            .faq-side {
                position: static
            }

            .chaos {
                height: 340px
            }
        }

        @media (max-width:640px) {

            .figs-grid,
            .tiles,
            .tiles[data-cols="3"],
            .proc-row,
            .feats {
                grid-template-columns: 1fr
            }

            .fig {
                padding: 0 !important;
                border-left: 0 !important
            }

            .dis-stats {
                grid-template-columns: 1fr
            }

            .dis-stats div+div {
                border-left: 0;
                border-top: 1px solid var(--hairline);
                margin-top: 20px
            }

            .chaos {
                height: auto;
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                gap: 8px;
                padding-top: 96px
            }

            .chaos>svg {
                display: none
            }

            .chaos .chip-t {
                position: static;
                transform: none
            }

            .chaos-core {
                top: 10px;
                margin-top: 0
            }

            .form-row {
                grid-template-columns: 1fr
            }

            .foot-grid {
                grid-template-columns: 1fr 1fr
            }

            .hero-ctas .btn {
                flex: 1 1 auto;
                justify-content: center
            }

            .tile {
                min-height: 250px
            }
        }

        @media (prefers-reduced-motion:reduce) {

            *,
            *::before,
            *::after {
                animation-duration: .001ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: .001ms !important;
                scroll-behavior: auto !important
            }

            .draw {
                stroke-dashoffset: 0
            }
        }

        /* ===== Service page additions (built on the v2 system above; flat, tokens only) ===== */
        .sec-alt {
            background: var(--porcelain)
        }

        .sec-head {
            display: grid;
            gap: 16px;
            max-width: 720px;
            margin-bottom: 48px
        }

        .sec-head.center {
            text-align: center;
            justify-items: center
        }

        .nav-links a[aria-current="page"] {
            background: var(--royal-blue-dark-20)
        }

        .nav.scrolled .nav-links a[aria-current="page"] {
            background: var(--porcelain);
            color: var(--brand-blue)
        }

        /* hero (service variant) */
        .hero.svc {
            padding-bottom: clamp(72px, 8vw, 112px)
        }

        .crumbs {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 8px;
            list-style: none;
            margin: 0;
            padding: 0;
            font: 600 .8rem/1 var(--f-head);
            color: var(--royal-blue-light-40)
        }

        .crumbs li {
            display: flex;
            align-items: center;
            gap: 8px
        }

        .crumbs a:hover {
            color: var(--cream)
        }

        .crumbs .ic {
            font-size: .85rem
        }

        .crumbs [aria-current] {
            color: var(--pale-blue)
        }

        .hero-note {
            display: flex;
            flex-wrap: wrap;
            gap: 8px 18px;
            margin-top: 4px;
            font-size: .88rem;
            color: var(--pale-blue)
        }

        .hero-note span {
            display: inline-flex;
            align-items: center;
            gap: 8px
        }

        .hero-note .ic {
            color: var(--brand-green-light-40)
        }

        .tick {
            width: 18px;
            height: 18px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            background: var(--brand-green);
            color: var(--white);
            font-size: .66rem;
            flex: none
        }

        .tick.wip {
            background: var(--porcelain);
            color: var(--brand-blue);
            border: 1px solid var(--brand-blue-light-40)
        }

        /* problem */
        .split {
            display: grid;
            grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
            gap: clamp(32px, 6vw, 96px);
            align-items: start
        }

        .split-head {
            display: grid;
            gap: 20px;
            position: sticky;
            top: 110px;
            justify-items: start
        }

        .split-head .h2 .strike {
            color: var(--muted);
            text-decoration: line-through;
            text-decoration-thickness: 3px;
            text-decoration-color: var(--brand-blue-light-40)
        }

        .prose {
            display: grid;
            gap: 20px;
            min-width: 0
        }

        .prose p {
            font-size: 1.06rem;
            line-height: 1.7
        }

        .mix {
            border: 1px solid var(--hairline);
            border-radius: var(--r-lg);
            padding: 22px 24px;
            display: grid;
            gap: 14px
        }

        .mix small {
            font: 800 .7rem/1 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--muted)
        }

        .mix ul {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-wrap: wrap;
            gap: 8px
        }

        .mix li {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 8px 13px 8px 9px;
            border-radius: var(--r-pill);
            background: var(--porcelain);
            border: 1px solid var(--hairline);
            font: 600 .82rem/1 var(--f-head);
            color: var(--ink)
        }

        .mix li i {
            width: 22px;
            height: 22px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            background: var(--white);
            border: 1px solid var(--hairline);
            color: var(--muted);
            font-size: .72rem
        }

        .approach {
            background: var(--royal-blue);
            color: var(--pale-blue);
            border-radius: var(--r-lg);
            padding: 26px 28px;
            display: grid;
            gap: 14px
        }

        .approach p {
            color: var(--white);
            font: 600 1.08rem/1.6 var(--f-head)
        }

        .approach ul {
            list-style: none;
            margin: 0;
            padding: 0;
            display: flex;
            flex-wrap: wrap;
            gap: 8px
        }

        .approach li {
            padding: 7px 12px;
            border-radius: var(--r-pill);
            border: 1px solid var(--royal-blue-light-20);
            font: 600 .78rem/1 var(--f-body);
            color: var(--cream)
        }

        /* what we fix */
        .tiles.fix .tile {
            min-height: 270px
        }

        .tiles.fix .tile p {
            max-width: 36ch
        }

        .tile .sym {
            margin-top: auto;
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            position: relative;
            z-index: 1
        }

        .tile .sym span {
            padding: 5px 9px;
            border-radius: var(--r-pill);
            border: 1px solid var(--royal-blue-dark-20);
            font: 600 .7rem/1 var(--f-body);
            color: var(--royal-blue-light-40)
        }

        /* process: zigzag step timeline (flat; depth comes from a solid darker base edge, never a shadow) */
        .zz {
            position: relative;
            max-width: 1180px;
            margin-inline: auto;
            display: grid;
            padding-block: 30px
        }

        .zz-line {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            overflow: visible
        }

        .zz-line path {
            fill: none;
            stroke: var(--pale-blue);
            stroke-width: 3.5;
            stroke-linecap: round;
            stroke-dasharray: 0 10
        }

        .zz-line circle {
            fill: var(--muted)
        }

        .zz {
            gap: 16px
        }

        .zrow {
            position: relative;
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            grid-template-areas: "band label";
            align-items: center;
            --ov: 44px;
            --c: var(--royal-blue);
            --cd: var(--royal-blue-dark-20)
        }

        .zrow:nth-child(even of .zrow) {
            grid-template-areas: "label band"
        }

        .zband {
            grid-area: band;
            position: relative;
            width: 100%;
            max-width: 560px;
            justify-self: end;
            margin-right: calc(-1 * var(--ov));
            min-height: 104px;
            display: grid;
            align-content: center;
            gap: 4px;
            padding: 16px 104px 16px 30px;
            border-radius: var(--r-pill);
            background: var(--c);
            border-bottom: 6px solid var(--cd);
            color: var(--white);
            transition: transform .35s var(--ease), border-bottom-width .35s var(--ease)
        }

        .zrow:nth-child(even of .zrow) .zband {
            justify-self: start;
            margin-right: 0;
            margin-left: calc(-1 * var(--ov));
            padding: 16px 30px 16px 104px
        }

        .zband h3 {
            color: var(--white);
            font-size: 1.04rem;
            line-height: 1.25
        }

        .zband p {
            font-size: .86rem;
            line-height: 1.5;
            color: var(--white);
            opacity: .88
        }

        .zdisc {
            position: absolute;
            top: 50%;
            right: 14px;
            width: 72px;
            height: 72px;
            margin-top: -38px;
            border-radius: 50%;
            background: var(--white);
            border: 3px solid var(--c);
            border-bottom: 6px solid var(--cd);
            display: grid;
            place-items: center;
            color: var(--c);
            font-size: 1.6rem;
            transition: transform .35s var(--ease)
        }

        .zdisc::after {
            content: "";
            position: absolute;
            inset: 7px;
            border-radius: 50%;
            border: 1.5px dashed var(--hairline)
        }

        .zdisc .ic {
            stroke-width: 1.4
        }

        .zrow:nth-child(even of .zrow) .zdisc {
            right: auto;
            left: 14px
        }

        .znode {
            position: absolute;
            top: 50%;
            margin-top: -16px;
            left: calc(50% + var(--ov) + 14px);
            z-index: 1;
            width: 26px;
            height: 26px;
            border-radius: 50%;
            background: var(--white);
            border: 3px solid var(--c);
            display: grid;
            place-items: center;
            transition: background-color .3s
        }

        .zrow:nth-child(even of .zrow) .znode {
            left: calc(50% - var(--ov) - 40px)
        }

        .znode::after {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--c);
            transition: background-color .3s
        }

        .zlabel {
            grid-area: label;
            justify-self: start;
            padding-left: calc(var(--ov) + 72px);
            display: grid;
            gap: 2px;
            line-height: 1
        }

        .zrow:nth-child(even of .zrow) .zlabel {
            justify-self: end;
            text-align: right;
            padding-left: 0;
            padding-right: calc(var(--ov) + 72px)
        }

        .zlabel small {
            font: 800 .78rem/1 var(--f-accent);
            letter-spacing: .2em;
            text-transform: uppercase;
            color: var(--muted)
        }

        .zlabel b {
            font: 800 clamp(2.4rem, 4vw, 3.4rem)/.95 var(--f-head);
            letter-spacing: -.03em;
            color: var(--c);
            font-variant-numeric: tabular-nums
        }

        .zrow:hover .zband {
            transform: translateY(-4px);
            border-bottom-width: 10px
        }

        .zrow:hover .zdisc {
            transform: rotate(-8deg)
        }

        .zrow:hover .znode {
            background: var(--c)
        }

        .zrow:hover .znode::after {
            background: var(--white)
        }

        @media (max-width:900px) {
            .zrow {
                --ov: 24px
            }
        }

        @media (max-width:760px) {
            .zz {
                padding-block: 8px;
                gap: 22px
            }

            .zrow,
            .zrow:nth-child(even of .zrow) {
                grid-template-columns: 40px minmax(0, 1fr);
                grid-template-areas: "node label" "node band";
                row-gap: 8px;
                align-items: start
            }

            .znode,
            .zrow:nth-child(even of .zrow) .znode {
                grid-area: node;
                position: relative;
                left: auto;
                top: auto;
                justify-self: center;
                margin: 4px 0 0
            }

            .zlabel,
            .zrow:nth-child(even of .zrow) .zlabel {
                justify-self: start;
                text-align: left;
                padding: 0;
                display: flex;
                align-items: baseline;
                gap: 10px
            }

            .zlabel small {
                font-size: .72rem
            }

            .zlabel b {
                font-size: 2rem
            }

            .zband,
            .zrow:nth-child(even of .zrow) .zband {
                max-width: none;
                margin: 0;
                justify-self: stretch;
                border-radius: 26px;
                padding: 18px 18px 18px 86px;
                min-height: 0
            }

            .zdisc,
            .zrow:nth-child(even of .zrow) .zdisc {
                left: 14px;
                right: auto;
                top: 18px;
                margin-top: 0;
                width: 58px;
                height: 58px;
                font-size: 1.3rem
            }

            .zdisc::after {
                inset: 5px
            }
        }

        @media (max-width:420px) {

            .zband,
            .zrow:nth-child(even of .zrow) .zband {
                padding: 84px 18px 18px
            }
        }

        .loop {
            margin-top: 28px;
            display: flex;
            justify-content: center
        }

        .loop span {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 10px 16px;
            border-radius: var(--r-pill);
            border: 1px dashed var(--muted);
            font: 600 .84rem/1.3 var(--f-head);
            color: var(--slate)
        }

        .loop .ic {
            color: var(--brand-green)
        }

        /* included: white cards over a brand-colour corner block (flat, no shadows) */
        .inc-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 34px 28px;
            isolation: isolate;
            padding: 12px 0 0 12px
        }

        .inc {
            --c: var(--brand-blue);
            --cd: var(--brand-blue-dark-20);
            position: relative;
            border: 1.5px solid var(--hairline);
            border-radius: 24px;
            background: var(--white);
            padding: 26px 24px 28px;
            display: grid;
            grid-template-columns: auto minmax(0, 1fr);
            gap: 18px 14px;
            align-content: start;
            align-items: center;
            transition: border-color .35s
        }

        .inc::before {
            content: "";
            position: absolute;
            z-index: -1;
            left: -12px;
            top: -12px;
            width: 66%;
            height: 76%;
            border-radius: 26px;
            background: var(--c);
            transition: transform .35s var(--ease)
        }

        .inc:nth-child(7n+1) {
            --c: var(--brand-green);
            --cd: var(--brand-green-dark-20)
        }

        .inc:nth-child(7n+2) {
            --c: var(--brand-blue);
            --cd: var(--brand-blue-dark-20)
        }

        .inc:nth-child(7n+3) {
            --c: var(--royal-blue);
            --cd: var(--royal-blue-dark-20)
        }

        .inc:nth-child(7n+4) {
            --c: var(--deep-navy);
            --cd: #050d1b
        }

        .inc:nth-child(7n+5) {
            --c: var(--brand-blue-dark-20);
            --cd: #0a4867
        }

        .inc:nth-child(7n+6) {
            --c: var(--brand-green-dark-20);
            --cd: #255c49
        }

        .inc:nth-child(7n+7) {
            --c: var(--royal-blue-dark-20);
            --cd: var(--royal-blue-dark-40)
        }

        .inc .sq {
            width: 50px;
            height: 50px;
            border-radius: 13px;
            background: var(--c);
            border: 0;
            border-bottom: 4px solid var(--cd);
            color: var(--white);
            font-size: 1.3rem;
            margin: 0
        }

        .inc h3 {
            font: 800 .98rem/1.22 var(--f-head);
            text-transform: uppercase;
            letter-spacing: .02em;
            color: var(--ink)
        }

        .inc p {
            grid-column: 1/-1;
            font-size: .93rem;
            line-height: 1.6
        }

        .inc:hover {
            border-color: var(--c)
        }

        .inc:hover::before {
            transform: translate(-5px, -5px)
        }

        /* use cases: problem-to-solution arrow rows (flat brand colours; depth from a darker base edge) */
        .uc-top {
            display: flex;
            flex-wrap: wrap;
            align-items: end;
            justify-content: space-between;
            gap: 20px 40px;
            margin-bottom: 40px
        }

        .uc-top .sec-head {
            margin-bottom: 0
        }

        .uc-top aside {
            display: grid;
            gap: 14px;
            justify-items: start;
            max-width: 380px
        }

        .uc-top aside p {
            font-size: .98rem
        }

        .ucr-head {
            display: grid;
            grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
            padding: 0 4px 12px;
            font: 800 .7rem/1 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--muted)
        }

        .ucr-head span:last-child {
            padding-left: 44px
        }

        .ucr-list {
            display: grid;
            gap: 16px
        }

        .ucr {
            --c: var(--brand-blue);
            --cd: var(--brand-blue-dark-20);
            position: relative;
            display: grid;
            grid-template-columns: minmax(0, 46%) minmax(0, 1fr);
            align-items: stretch;
            border-radius: 22px;
            background: var(--white);
            border: 1.5px solid var(--hairline);
            border-bottom: 5px solid var(--hairline);
            overflow: hidden;
            transition: border-color .3s, transform .3s var(--ease)
        }

        .ucr:nth-child(1) {
            --c: #327b62;
            --cd: #255c49
        }

        .ucr:nth-child(2) {
            --c: var(--brand-blue);
            --cd: var(--brand-blue-dark-20)
        }

        .ucr:nth-child(3) {
            --c: var(--royal-blue);
            --cd: var(--royal-blue-dark-20)
        }

        .ucr:nth-child(4) {
            --c: var(--brand-blue-dark-20);
            --cd: #0a4867
        }

        .ucr:nth-child(5) {
            --c: var(--deep-navy);
            --cd: #050d1b
        }

        .ucr:nth-child(6) {
            --c: var(--royal-blue-dark-20);
            --cd: var(--royal-blue-dark-40)
        }

        .ucr-cause {
            position: relative;
            display: flex;
            align-items: center;
            gap: 16px;
            min-height: 112px;
            padding: 22px 118px 22px 26px;
            background: var(--c);
            color: var(--white);
            clip-path: polygon(0 0, calc(100% - 36px) 0, 100% 50%, calc(100% - 36px) 100%, 0 100%)
        }

        .ucr-cause .ci {
            width: 40px;
            height: 40px;
            flex: none;
            border-radius: 11px;
            display: grid;
            place-items: center;
            background: var(--cd);
            color: var(--white);
            font-size: 1.15rem
        }

        .ucr-cause small {
            display: block;
            font: 800 .64rem/1 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--white);
            opacity: .75;
            margin-bottom: 7px
        }

        .ucr-cause h3 {
            color: var(--white);
            font-size: 1.12rem;
            line-height: 1.3
        }

        .ucr-disc {
            position: absolute;
            top: 50%;
            right: 48px;
            width: 58px;
            height: 58px;
            margin-top: -29px;
            border-radius: 50%;
            background: var(--white);
            border: 3px solid var(--cd);
            display: grid;
            place-items: center;
            color: var(--c);
            font-size: 1.35rem;
            transition: transform .35s var(--ease)
        }

        .ucr-effect {
            display: grid;
            align-content: center;
            gap: 6px;
            padding: 20px 30px 20px 44px
        }

        .ucr-effect b {
            font: 700 1rem/1.3 var(--f-head);
            color: var(--c)
        }

        .ucr-effect p {
            font-size: .95rem;
            line-height: 1.6
        }

        .ucr:hover {
            border-color: var(--c);
            transform: translateY(-3px)
        }

        .ucr:hover .ucr-disc {
            transform: translateX(6px)
        }

        @media (max-width:760px) {
            .ucr-head {
                display: none
            }

            .ucr {
                grid-template-columns: 1fr
            }

            .ucr-cause {
                min-height: 0;
                padding: 22px 22px 52px;
                clip-path: polygon(0 0, 100% 0, 100% calc(100% - 26px), 50% 100%, 0 calc(100% - 26px))
            }

            .ucr-disc {
                top: auto;
                right: auto;
                left: 50%;
                bottom: 4px;
                margin: 0 0 0 -25px;
                width: 50px;
                height: 50px;
                font-size: 1.15rem
            }

            .ucr:hover .ucr-disc {
                transform: translateY(4px)
            }

            .ucr-effect {
                padding: 18px 22px 22px
            }
        }

        /* why */
        .why2 {
            display: grid;
            grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
            gap: clamp(32px, 6vw, 96px);
            align-items: start
        }

        .why2-copy {
            display: grid;
            gap: 20px;
            justify-items: start;
            position: sticky;
            top: 110px
        }

        .why2-copy .lead {
            max-width: 52ch
        }

        .diff {
            list-style: none;
            margin: 0;
            padding: 0;
            border-top: 1px solid var(--royal-blue-dark-20)
        }

        .diff li {
            display: grid;
            grid-template-columns: 52px minmax(0, 1fr);
            gap: 20px;
            padding: 24px 0;
            border-bottom: 1px solid var(--royal-blue-dark-20)
        }

        .diff .sq {
            background: var(--royal-blue);
            border: 1px solid var(--royal-blue-light-20);
            width: 52px;
            height: 52px;
            font-size: 1.35rem;
            transition: background-color .35s, color .35s, border-color .35s
        }

        .diff li:hover .sq {
            background: var(--cream);
            color: var(--cream-text);
            border-color: var(--cream)
        }

        .diff h3 {
            font-size: 1.1rem;
            margin-bottom: 6px
        }

        .diff p {
            font-size: .95rem;
            line-height: 1.55
        }

        /* proof */
        .proof-grid {
            display: grid;
            grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
            gap: 20px;
            align-items: stretch
        }

        .quote {
            margin: 0;
            background: var(--cream);
            color: var(--cream-text);
            border-radius: 24px;
            padding: clamp(28px, 4vw, 48px);
            display: grid;
            gap: 28px;
            align-content: space-between
        }

        .quote>.ic {
            font-size: 2.4rem;
            color: var(--brand-green-dark-20);
            stroke-width: 1.4
        }

        .quote blockquote {
            margin: 0;
            font: 600 clamp(1.15rem, 1.7vw, 1.42rem)/1.5 var(--f-head);
            color: var(--cream-text);
            letter-spacing: -.01em
        }

        .quote figcaption {
            display: flex;
            align-items: center;
            gap: 14px
        }

        .quote .lg {
            width: 52px;
            height: 52px;
            border-radius: 14px;
            border: 1.5px dashed var(--cream-text);
            display: grid;
            place-items: center;
            text-align: center;
            font: 800 .52rem/1.15 var(--f-accent);
            letter-spacing: .08em;
            text-transform: uppercase;
            color: var(--cream-text);
            padding: 4px
        }

        .quote figcaption b {
            display: block;
            font: 700 1rem/1.2 var(--f-head);
            color: var(--cream-text)
        }

        .quote figcaption small {
            font-size: .84rem;
            color: var(--cream-text)
        }

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

        .res {
            border: 1.5px dashed var(--muted);
            border-radius: var(--r-lg);
            background: var(--porcelain);
            padding: 20px;
            display: grid;
            gap: 8px;
            align-content: start
        }

        .res .ic {
            font-size: 1.3rem;
            color: var(--brand-blue)
        }

        .res b {
            font: 800 1.5rem/1.1 var(--f-head);
            color: var(--brand-blue)
        }

        .res span {
            font: 600 .9rem/1.35 var(--f-head);
            color: var(--ink)
        }

        .res.note {
            border-style: solid;
            border-color: var(--hairline);
            background: var(--white);
            align-content: center
        }

        .res.note span {
            font: 400 .84rem/1.5 var(--f-body);
            color: var(--slate)
        }

        /* comparison */
        .cmp-wrap {
            overflow-x: auto;
            border: 1px solid var(--hairline);
            border-radius: 24px;
            background: var(--white)
        }

        .cmp {
            width: 100%;
            min-width: 680px;
            border-collapse: collapse;
            text-align: left
        }

        .cmp th,
        .cmp td {
            padding: 20px 24px;
            vertical-align: top;
            border-bottom: 1px solid var(--hairline)
        }

        .cmp tr:last-child td {
            border-bottom: 0
        }

        .cmp thead th {
            font: 700 1.02rem/1.2 var(--f-head);
            color: var(--ink);
            background: var(--porcelain)
        }

        .cmp thead th.us {
            background: var(--royal-blue);
            color: var(--white)
        }

        .cmp thead th:first-child {
            font: 800 .7rem/1.2 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--muted);
            width: 18%
        }

        .cmp tbody th {
            font: 800 .7rem/1.4 var(--f-accent);
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--muted);
            padding-top: 23px
        }

        .cmp td {
            font-size: .97rem;
            line-height: 1.5
        }

        .cmp td span {
            display: flex;
            gap: 12px
        }

        .cmp td .ic {
            margin-top: 4px;
            flex: none
        }

        .cmp td.them {
            color: var(--slate);
            width: 41%
        }

        .cmp td.them .ic {
            color: var(--muted)
        }

        .cmp td.us {
            background: var(--royal-blue);
            color: var(--white);
            border-bottom-color: var(--royal-blue-dark-20);
            font-weight: 500
        }

        .cmp td.us .ic {
            color: var(--cream)
        }

        .cmp td.us .ok {
            flex: none;
            display: inline-grid;
            place-items: center;
            width: 24px;
            height: 24px;
            margin-top: 0;
            border-radius: 50%;
            background: var(--brand-green);
            color: var(--white)
        }

        .cmp td.us .ok .ic {
            margin: 0;
            color: var(--white);
            font-size: .85rem;
            stroke-width: 2.4
        }

        .cmp td.us span {
            align-items: flex-start
        }

        /* closing */
        .closing {
            background: var(--royal-blue)
        }

        .closing .contact-copy .h2 {
            font-weight: 700
        }

        .closing .lead {
            color: var(--pale-blue)
        }

        .closing .cline .sq {
            background: var(--royal-blue-dark-40);
            border: 1px solid var(--royal-blue-light-20)
        }

        .closing .cline small {
            color: var(--royal-blue-light-40)
        }

        .closing .cline b {
            color: var(--white)
        }

        .closing .hero-ctas {
            margin-top: 4px
        }

        .form h3 {
            font-size: 1.25rem
        }

        .form .form-sub {
            font-size: .9rem;
            margin-top: -6px
        }

        .closing .form :focus-visible {
            outline-color: var(--brand-blue)
        }

        .audit-list {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            gap: 10px
        }

        .audit-list li {
            display: flex;
            gap: 12px;
            align-items: flex-start;
            color: var(--white);
            font-size: .98rem
        }

        .audit-list .tick {
            margin-top: 3px
        }

        @media (max-width:1100px) {
            .inc-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr))
            }
        }

        @media (max-width:900px) {

            .split,
            .why2,
            .proof-grid {
                grid-template-columns: 1fr
            }

            .split-head,
            .why2-copy {
                position: static
            }
        }

        @media (max-width:640px) {

            .inc-grid,
            .results {
                grid-template-columns: 1fr
            }

            .tiles.fix .tile {
                min-height: 0
            }
        }

        .closing .form {
            color: var(--slate)
        }

        .closing .form h3 {
            color: var(--ink)
        }

        /* in-section CTA bars (replace CTA cards) */
        .cta-bar {
            margin-top: 28px;
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 18px 28px;
            padding: 24px 28px;
            border-radius: var(--r-lg);
            background: var(--royal-blue);
            color: var(--pale-blue)
        }

        .cta-bar>div {
            display: grid;
            gap: 6px;
            min-width: 0;
            max-width: 62ch
        }

        .cta-bar b {
            font: 700 1.15rem/1.3 var(--f-head);
            color: var(--white)
        }

        .cta-bar .cta-acts {
            display: flex;
            flex-wrap: wrap;
            gap: 10px
        }

        .dark .cta-bar {
            background: var(--cream);
            color: var(--cream-text)
        }

        .dark .cta-bar b {
            color: var(--cream-text)
        }

        .cta-bar .btn-line {
            border-color: var(--royal-blue-light-40);
            color: var(--white)
        }

        .cta-bar .btn-line:hover {
            border-color: var(--cream);
            color: var(--cream)
        }

        .tiles.fix {
            grid-template-columns: repeat(6, minmax(0, 1fr))
        }

        .tiles.fix .tile {
            grid-column: span 2
        }

        .tiles.fix .tile:nth-child(n+4) {
            grid-column: span 3
        }

        .inc-grid {
            grid-template-columns: repeat(8, minmax(0, 1fr))
        }

        .inc-grid .inc {
            grid-column: span 2
        }

        .inc-grid .inc:nth-child(5) {
            grid-column: 2/span 2
        }

        /* image spaces */
        .img-ph {
            min-height: 260px;
            width: 100%
        }

        .img-ph.tall {
            min-height: 340px
        }

        .img-ph.wide {
            min-height: 0;
            aspect-ratio: 21/7;
            max-width: 100%
        }

        .inc-head {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            gap: clamp(24px, 4vw, 56px);
            align-items: end;
            margin-bottom: 48px
        }

        .inc-head .sec-head {
            margin-bottom: 0
        }

        .inc-head .img-ph {
            min-height: 220px
        }

        @media (max-width:1100px) {
            .tiles.fix {
                grid-template-columns: repeat(2, minmax(0, 1fr))
            }

            .tiles.fix .tile,
            .tiles.fix .tile:nth-child(n+4) {
                grid-column: auto
            }

            .tiles.fix .tile:last-child {
                grid-column: 1/-1
            }

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

            .inc-grid .inc,
            .inc-grid .inc:nth-child(5) {
                grid-column: span 2
            }

            .inc-grid .inc:last-child {
                grid-column: 2/span 2
            }
        }

        @media (max-width:900px) {
            .inc-head {
                grid-template-columns: 1fr
            }

            .img-ph.wide {
                aspect-ratio: 16/9
            }
        }

        @media (max-width:640px) {

            .tiles.fix,
            .inc-grid {
                grid-template-columns: 1fr
            }

            .inc-grid .inc,
            .inc-grid .inc:nth-child(5),
            .inc-grid .inc:last-child {
                grid-column: auto
            }

            .cta-bar {
                padding: 22px
            }

            .cta-bar .btn {
                flex: 1 1 auto;
                justify-content: center
            }
        }

        /* ===== PPC hero: flat 3D campaign-funnel scene (no shadows, no gradients; depth = solid back plates + perspective) ===== */
        .h3d {
            position: relative;
            width: 100%;
            max-width: 620px;
            aspect-ratio: 1/.96;
            justify-self: end;
            perspective: 1700px
        }

        .h3d .note {
            position: absolute;
            left: 0;
            right: 0;
            bottom: -34px;
            text-align: center;
            font: 700 .66rem/1.3 var(--f-accent);
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--pale-blue)
        }

        .scene {
            position: absolute;
            inset: 0;
            transform-style: preserve-3d;
            transform: rotateX(var(--rx, 10deg)) rotateY(var(--ry, -16deg));
            transition: transform .9s var(--ease)
        }

        .scene-in {
            position: absolute;
            inset: 0;
            transform-style: preserve-3d;
            animation: sway 10s ease-in-out infinite
        }

        @keyframes sway {
            50% {
                transform: translate3d(0, -10px, 0) rotateY(3deg)
            }
        }

        .rings3d {
            position: absolute;
            inset: -4% -2% 6% -2%;
            width: 104%;
            height: 98%;
            transform: translateZ(-90px);
            overflow: visible
        }

        .rings3d .spin {
            transform-origin: 310px 290px
        }

        .slab {
            position: absolute;
            border-radius: 18px;
            background: var(--white);
            color: var(--ink);
            transform-style: preserve-3d
        }

        .slab::before {
            content: "";
            position: absolute;
            inset: 0;
            border-radius: inherit;
            background: var(--royal-blue-dark-40);
            border: 1px solid var(--royal-blue-light-20);
            transform: translateZ(-14px)
        }

        .slab>* {
            position: relative
        }

        .slab h4 {
            font: 700 .72rem/1.2 var(--f-head);
            color: var(--ink);
            margin: 0
        }

        .slab small {
            display: block;
            font-size: .58rem;
            color: var(--muted)
        }

        .s-dots {
            display: flex;
            gap: 6px;
            margin-bottom: 10px
        }

        .s-dots i {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--hairline)
        }

        .s-dots i:first-child {
            background: var(--brand-blue)
        }

        .s-dots i:nth-child(2) {
            background: var(--brand-green)
        }

        .s-dots i:nth-child(3) {
            background: var(--cream)
        }

        .sk {
            display: block;
            height: 6px;
            border-radius: 4px;
            background: var(--hairline);
            margin: 4px 0 6px
        }

        .up-pill {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 4px 7px;
            border-radius: var(--r-pill);
            background: var(--brand-green);
            color: var(--white);
            font: 700 .56rem/1 var(--f-head);
            white-space: nowrap
        }

        .top-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 6px;
            margin-bottom: 4px
        }

        /* campaign funnel console */
        .fun3 {
            left: 22%;
            top: 2%;
            width: 48%;
            padding: 12px 12px 12px;
            transform: translateZ(20px)
        }

        .f-tabs {
            display: flex;
            gap: 3px;
            padding: 3px;
            border-radius: var(--r-pill);
            background: var(--porcelain);
            border: 1px solid var(--hairline);
            margin-bottom: 10px
        }

        .f-tabs span {
            flex: 1;
            text-align: center;
            padding: 6px 2px;
            border-radius: var(--r-pill);
            font: 700 .58rem/1 var(--f-head);
            color: var(--muted);
            white-space: nowrap;
            transition: background-color .5s, color .5s
        }

        .f-tabs span.on {
            background: var(--royal-blue);
            color: var(--white)
        }

        .f-meta {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            gap: 6px;
            margin: 0 2px 8px
        }

        .fn {
            position: relative;
            display: grid;
            gap: 6px
        }

        .fn-row {
            display: grid;
            grid-template-columns: 30% minmax(0, 1fr);
            align-items: center;
            gap: 0
        }

        .fn-l {
            font: 700 .6rem/1.2 var(--f-head);
            color: var(--slate);
            white-space: nowrap
        }

        .fn-b {
            display: flex;
            justify-content: center
        }

        .fn-b span {
            display: block;
            height: 27px;
            width: var(--w);
            border-radius: 9px;
            transition: background-color .4s
        }

        .fn-row:nth-child(1) .fn-b span {
            --w: 100%;
            background: var(--porcelain);
            border: 1px solid var(--hairline)
        }

        .fn-row:nth-child(2) .fn-b span {
            --w: 80%;
            background: var(--pale-blue)
        }

        .fn-row:nth-child(3) .fn-b span {
            --w: 60%;
            background: var(--brand-blue)
        }

        .fn-row:nth-child(4) .fn-b span {
            --w: 40%;
            background: var(--brand-green)
        }

        .fn-lane {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 30%;
            right: 0;
            pointer-events: none;
            overflow: visible
        }

        .dot {
            position: absolute;
            left: 50%;
            top: 0;
            width: 11px;
            height: 11px;
            border-radius: 50%;
            background: var(--royal-blue);
            border: 2px solid var(--white);
            will-change: transform, opacity
        }

        .fn-foot {
            display: flex;
            justify-content: space-between;
            gap: 6px;
            margin-top: 10px;
            padding-top: 9px;
            border-top: 1px solid var(--hairline)
        }

        .fchip {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 5px 8px;
            border-radius: var(--r-pill);
            border: 1px solid var(--hairline);
            font: 700 .56rem/1 var(--f-head);
            color: var(--muted);
            white-space: nowrap;
            transition: background-color .35s, color .35s, border-color .35s
        }

        .fchip .ic {
            font-size: .7rem
        }

        .fchip.cut.flash {
            background: var(--porcelain);
            border-color: var(--muted);
            color: var(--slate)
        }

        .fchip.trk {
            color: var(--brand-green-dark-20)
        }

        .fchip.trk.flash {
            background: var(--brand-green);
            border-color: var(--brand-green);
            color: var(--white)
        }

        /* ad preview with clicking cursor */
        .ad3 {
            left: 0;
            top: 46.5%;
            width: 30%;
            padding: 12px;
            transform: translateZ(100px)
        }

        .ad-tag {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            font: 700 .56rem/1 var(--f-head);
            color: var(--slate);
            margin-bottom: 8px
        }

        .ad-tag i {
            width: 14px;
            height: 14px;
            border-radius: 4px;
            background: var(--royal-blue);
            flex: none
        }

        .ad-img {
            height: 0;
            border-radius: 10px;
            background: var(--pale-blue);
            overflow: hidden;
            transition: height .5s var(--ease), margin .5s var(--ease)
        }

        .ad3.has-img .ad-img {
            height: 34px;
            margin-bottom: 7px
        }

        .ad-img svg {
            width: 100%;
            height: 34px;
            display: block
        }

        .ad-url {
            font-size: .56rem;
            color: var(--slate)
        }

        .ad-title {
            font: 600 .74rem/1.25 var(--f-head);
            color: var(--royal-blue);
            margin: 3px 0 2px
        }

        .ad-swap {
            transition: opacity .3s
        }

        .ad3.swapping .ad-swap {
            opacity: 0
        }

        .ad-btn {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            margin-top: 6px;
            padding: 7px 11px;
            border-radius: var(--r-pill);
            background: var(--brand-blue);
            color: var(--white);
            font: 700 .6rem/1 var(--f-head);
            animation: press 3.3s linear infinite
        }

        @keyframes press {

            0%,
            46%,
            62%,
            100% {
                background: var(--brand-blue)
            }

            50%,
            58% {
                background: var(--brand-green)
            }
        }

        .ad-cta {
            position: relative;
            display: inline-block
        }

        .cursor {
            position: absolute;
            left: 44px;
            top: 14px;
            width: 22px;
            height: 22px;
            color: var(--ink);
            pointer-events: none;
            animation: cur 3.3s var(--ease) infinite
        }

        .cursor svg {
            width: 22px;
            height: 22px;
            display: block;
            fill: var(--white);
            stroke: var(--ink);
            stroke-width: 1.6;
            stroke-linejoin: round
        }

        .cursor::after {
            content: "";
            position: absolute;
            left: -7px;
            top: -7px;
            width: 16px;
            height: 16px;
            border-radius: 50%;
            border: 2px solid var(--brand-green);
            opacity: 0;
            animation: ripple 3.3s linear infinite
        }

        @keyframes cur {
            0% {
                transform: translate(64px, 40px);
                opacity: 0
            }

            12% {
                opacity: 1
            }

            44% {
                transform: translate(0, 0)
            }

            50% {
                transform: translate(0, 0) scale(.82)
            }

            56% {
                transform: translate(0, 0) scale(1)
            }

            82% {
                transform: translate(0, 0);
                opacity: 1
            }

            100% {
                transform: translate(10px, 6px);
                opacity: 0
            }
        }

        @keyframes ripple {

            0%,
            48% {
                opacity: 0;
                transform: scale(.4)
            }

            52% {
                opacity: 1;
                transform: scale(.6)
            }

            70% {
                opacity: 0;
                transform: scale(1.8)
            }

            100% {
                opacity: 0
            }
        }

        /* budget split */
        .sp3 {
            right: 0;
            top: 6%;
            width: 30%;
            padding: 13px;
            transform: translateZ(120px)
        }

        .split3 {
            display: flex;
            gap: 3px;
            height: 16px;
            margin: 10px 0 9px
        }

        .split3 span {
            flex: 0 0 auto;
            width: var(--w);
            border-radius: 4px;
            transition: width 1.1s var(--ease)
        }

        .split3 .g,
        .leg .g {
            background: var(--brand-blue)
        }

        .split3 .m,
        .leg .m {
            background: var(--brand-green)
        }

        .split3 .l,
        .leg .l {
            background: var(--royal-blue)
        }

        .leg {
            list-style: none;
            margin: 0;
            padding: 0;
            display: grid;
            gap: 5px
        }

        .leg li {
            display: flex;
            align-items: center;
            gap: 6px;
            font: 600 .6rem/1.2 var(--f-head);
            color: var(--slate);
            transition: color .4s
        }

        .leg li i {
            width: 8px;
            height: 8px;
            border-radius: 3px;
            flex: none
        }

        .leg li.on {
            color: var(--ink)
        }

        .leg li em {
            margin-left: auto;
            font-style: normal;
            font: 700 .52rem/1 var(--f-head);
            color: var(--brand-green-dark-20);
            opacity: 0;
            transition: opacity .4s
        }

        .leg li.on em {
            opacity: 1
        }

        .sp-hint {
            display: flex;
            align-items: center;
            gap: 6px;
            margin-top: 9px;
            padding-top: 8px;
            border-top: 1px solid var(--hairline);
            font: 600 .56rem/1.3 var(--f-head);
            color: var(--slate)
        }

        .sp-hint .ic {
            color: var(--brand-blue);
            font-size: .75rem
        }

        /* tracked leads feed */
        .ld3 {
            right: -1%;
            top: 45%;
            width: 31%;
            padding: 13px;
            transform: translateZ(70px)
        }

        .leads {
            list-style: none;
            margin: 9px 0 0;
            padding: 0;
            display: grid;
            gap: 6px;
            height: 126px;
            overflow: hidden;
            align-content: start
        }

        .leads li {
            display: grid;
            grid-template-columns: 24px minmax(0, 1fr) auto;
            align-items: center;
            gap: 7px;
            padding: 6px 7px;
            border-radius: 10px;
            border: 1px solid var(--hairline);
            background: var(--white)
        }

        .leads li.new {
            animation: lin .6s var(--ease)
        }

        @keyframes lin {
            from {
                opacity: 0;
                transform: translateY(-10px)
            }
        }

        .leads li:first-child {
            border-color: var(--brand-green-light-40);
            background: var(--porcelain)
        }

        .lt {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            background: var(--royal-blue);
            color: var(--white);
            font-size: .7rem
        }

        .leads b {
            display: block;
            font: 700 .6rem/1.2 var(--f-head);
            color: var(--ink);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .leads small {
            font-size: .54rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .leads em {
            width: 18px;
            height: 18px;
            border-radius: 50%;
            display: grid;
            place-items: center;
            background: var(--brand-green);
            color: var(--white);
            font-size: .6rem
        }

        /* channel strip */
        .feat3 {
            position: absolute;
            left: 3%;
            right: 3%;
            bottom: 2%;
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 8px;
            padding: 8px;
            border-radius: 22px;
            background: var(--royal-blue-dark-20);
            border: 1px solid var(--royal-blue-light-20);
            transform: translateZ(150px)
        }

        .feat3 div {
            display: flex;
            align-items: center;
            gap: 8px;
            min-width: 0;
            padding: 8px;
            border-radius: 14px;
            background: var(--white);
            transition: background-color .5s
        }

        .feat3 div.on {
            background: var(--cream)
        }

        .feat3 .fi {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            flex: none;
            display: grid;
            place-items: center;
            background: var(--porcelain);
            color: var(--brand-blue);
            font-size: .85rem
        }

        .feat3 b {
            display: block;
            font: 700 .64rem/1.2 var(--f-head);
            color: var(--ink);
            white-space: nowrap
        }

        .feat3 small {
            display: block;
            font-size: .56rem;
            color: var(--slate);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .feat3 div>span:last-child {
            min-width: 0
        }

        /* problem: unanswered questions */
        .qlist ul {
            display: grid;
            gap: 8px
        }

        .qlist li {
            border-radius: 12px;
            padding: 11px 14px 11px 10px;
            font-size: .92rem;
            line-height: 1.35
        }

        .qlist li i {
            color: var(--brand-blue)
        }

        .quote .ph-text {
            border-bottom-color: var(--cream-text)
        }

        @media (max-width:900px) {
            .h3d {
                justify-self: center;
                margin-bottom: 28px
            }
        }

        @media (max-width:640px) {
            .h3d {
                aspect-ratio: 1/1.08
            }

            .scene {
                --rx: 8deg;
                --ry: -9deg
            }

            .ad3,
            .feat3 {
                display: none
            }

            .fun3 {
                left: 0;
                width: 62%;
                padding: 10px
            }

            .fn-row {
                grid-template-columns: 34% minmax(0, 1fr)
            }

            .fn-lane {
                left: 34%
            }

            .fn-l {
                font-size: .52rem
            }

            .f-tabs span {
                font-size: .5rem
            }

            .fn-foot {
                flex-wrap: wrap
            }

            .sp3,
            .ld3 {
                width: 36%;
                padding: 10px
            }

            .ld3 {
                top: 50%
            }

            .sp-hint,
            .sp3 small {
                display: none
            }

            .leads li {
                grid-template-columns: 20px minmax(0, 1fr);
                padding: 5px
            }

            .leads em {
                display: none
            }

            .leads small {
                display: none
            }

            .lt {
                width: 20px;
                height: 20px
            }
        }

        @media (prefers-reduced-motion:reduce) {
            .scene-in {
                animation: none
            }

            .cursor,
            .ad-btn {
                animation: none
            }
        }


        /* ===== hero fits the first screen on desktop (breadcrumb moved to JSON-LD) ===== */
        @media (min-width:901px) {
            .hero.svc {
                min-height: min(100svh, 1000px);
                display: flex;
                align-items: center;
                padding-top: calc(76px + clamp(20px, 4vh, 48px) + env(safe-area-inset-top, 0px));
                padding-bottom: clamp(44px, 6vh, 72px)
            }

            .hero.svc>.wrap {
                width: 100%
            }

            .hero.svc .hero-copy {
                gap: clamp(14px, 2.4vh, 22px)
            }

            .hero.svc h1 {
                font-size: clamp(2.3rem, min(3.9vw, 6.6vh), 3.5rem);
                line-height: 1.07
            }

            .hero.svc .hero-sub {
                font-size: clamp(1rem, min(1.2vw, 2.1vh), 1.1rem);
                line-height: 1.6;
                max-width: 52ch
            }

            .hero.svc .hero-ctas {
                margin-top: clamp(0px, .6vh, 6px)
            }

            .hero.svc .btn {
                height: clamp(46px, 6vh, 52px)
            }

            .hero.svc .h3d {
                max-width: 580px
            }
        }

        /* short desktop screens: scale the hero scene as a whole so nothing inside it clips */
        @media (min-width:901px) and (max-height:800px) {
            .hero.svc .h3d {
                zoom: .94
            }
        }

        @media (min-width:901px) and (max-height:740px) {
            .hero.svc .h3d {
                zoom: .88
            }
        }

        @media (min-width:901px) and (max-height:690px) {
            .hero.svc .h3d {
                zoom: .8
            }
        }

        @media (min-width:901px) and (max-height:640px) {
            .hero.svc .h3d {
                zoom: .74
            }
        }

        /* ===== CTA system (Karthik's design, 2026-10-06): pill + arrow capsule, flat, no shadows ===== */
        :root {
            --cta-royal: #1a50c4;
            --cta-royal-deep: #123c9e
        }

        .btn {
            min-height: 56px;
            height: auto;
            padding: 0 16px 0 28px;
            gap: 14px;
            border: 1.5px solid transparent;
            font: 800 1rem/1 var(--f-accent);
            letter-spacing: 0;
            justify-content: center;
            transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease
        }

        .btn:hover {
            transform: translateY(-1px)
        }

        .btn:hover .ic {
            transform: none
        }

        .btn .arrow {
            display: inline-grid;
            place-items: center;
            width: 34px;
            height: 34px;
            border-radius: var(--r-pill);
            flex: none;
            transition: background-color 180ms ease, color 180ms ease
        }

        .btn .arrow .ic {
            font-size: 1.15rem;
            stroke-width: 2
        }

        .btn:focus-visible {
            outline: 3px solid rgba(26, 80, 196, .28);
            outline-offset: 4px;
            border-radius: var(--r-pill)
        }

        .btn-blue {
            background: var(--cta-royal);
            color: var(--white)
        }

        .btn-blue .arrow {
            background: rgba(255, 255, 255, .14);
            color: var(--white)
        }

        .btn-blue:hover {
            background: var(--cta-royal-deep)
        }

        .btn-outline {
            background: var(--white);
            border-color: rgba(26, 80, 196, .34);
            color: var(--cta-royal)
        }

        .btn-outline .arrow {
            background: rgba(26, 80, 196, .1);
            color: var(--cta-royal)
        }

        .btn-outline:hover {
            background: #f3f6ff;
            border-color: var(--cta-royal)
        }

        .btn-cream {
            background: var(--cream);
            color: var(--cream-text)
        }

        .btn-cream .arrow {
            background: rgba(58, 61, 24, .1);
            color: var(--cream-text)
        }

        .btn-cream:hover {
            background: #f5f6d6
        }

        .btn-ghost,
        .cta-bar .btn-line,
        .btn-line {
            background: transparent;
            border-color: rgba(236, 238, 201, .42);
            color: var(--cream)
        }

        .btn-ghost .arrow,
        .btn-line .arrow {
            background: rgba(236, 238, 201, .12);
            color: var(--cream)
        }

        .btn-ghost:hover,
        .cta-bar .btn-line:hover,
        .btn-line:hover {
            border-color: var(--cream);
            color: var(--cream)
        }

        .btn-cream:focus-visible,
        .btn-ghost:focus-visible,
        .btn-line:focus-visible {
            outline-color: rgba(236, 238, 201, .5)
        }

        .btn-sm,
        .nav .btn {
            min-height: 46px;
            height: 46px;
            padding: 0 8px 0 20px;
            gap: 10px;
            font-size: .92rem
        }

        .btn-sm .arrow,
        .nav .btn .arrow {
            width: 30px;
            height: 30px
        }

        @media (max-width:640px) {
            .btn:not(.btn-sm) {
                white-space: normal;
                text-align: center;
                line-height: 1.25;
                padding-block: 10px
            }

            .hero-ctas .btn,
            .cta-bar .btn {
                flex: 1 1 100%
            }
        }

        @media (min-width:901px) and (max-height:760px) {
            .hero.svc {
                padding-top: calc(76px + 14px + env(safe-area-inset-top, 0px));
                padding-bottom: 28px
            }
        }
    

                  .pfl {
                    /* ---- COLOURS (defaults read your page tokens; change here only) ---- */
                    --pfl-card: #fff;
                    --pfl-ink: var(--ink, #16233c);
                    --pfl-muted: var(--slate, #5b6b82);
                    --pfl-line: #edf1f5;
                    --pfl-sk1: var(--pale-blue, #b9c9e4);
                    --pfl-sk2: var(--hairline, #d9e2ec);
                    --pfl-click: #e4ecf7;
                    --pfl-miss: #f08a7e;
                    --pfl-ok: var(--brand-green, #3e9a7b);
                    --pfl-ok-ink: var(--brand-green-dark-20, #327b62);
                    --pfl-ok-soft: #e6f4ee;
                    --pfl-icon: var(--royal-blue, #123c9e);
                    --pfl-guide: rgba(185, 201, 228, .3);
                    --pfl-glow: rgba(113, 175, 205, .40);
                    --pfl-dots: rgba(185, 201, 228, .30);
                    --pfl-shadow: 0 0 0 1px rgba(255, 255, 255, .6) inset, 0 12px 24px -8px rgba(5, 16, 52, .35), 0 30px 56px -20px rgba(5, 16, 52, .5);
                    /* ---- SPEED ---- */
                    --pfl-loop: 8s;
                    /* ---- TILT (resting, keep within 0-6deg) ---- */
                    --rx: 2deg;
                    --ry: -4deg;

                    position: relative;
                    width: 100%;
                    max-width: 600px;
                    aspect-ratio: 600 / 520;
                    justify-self: end;
                    perspective: 1400px;
                    font-family: var(--f-body, Roboto, system-ui, sans-serif);
                    -webkit-font-smoothing: antialiased
                  }
                  .pfl *, .pfl *::before, .pfl *::after { box-sizing: border-box }
                  .pfl-sprite { position: absolute; width: 0; height: 0; overflow: hidden }
                  .pfl-ic { display: block; flex: none }

                  /* backdrop: a soft light and a dot grid that fades out */
                  .pfl-deco { position: absolute; inset: -6% -8% -4% -10%; pointer-events: none; background: radial-gradient(closest-side, var(--pfl-glow), rgba(65, 99, 177, .16) 60%, transparent) }
                  .pfl-deco::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(var(--pfl-dots) 1.1px, transparent 1.6px); background-size: 22px 22px; -webkit-mask-image: radial-gradient(closest-side, #000 25%, transparent); mask-image: radial-gradient(closest-side, #000 25%, transparent) }

                  .pfl-stage { position: absolute; inset: 0; transform: rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .9s cubic-bezier(.2, .7, .2, 1) }

                  /* faint routes from each ad, through the filter, to the lead slots */
                  .pfl-guides { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible }
                  .pfl-guides path { fill: none; stroke: var(--pfl-guide); stroke-width: 1.5; stroke-dasharray: 2 6; stroke-linecap: round; vector-effect: non-scaling-stroke }

                  /* ---- ad sources ---- */
                  .pfl-src { position: absolute; left: 0; top: var(--top); z-index: 2; width: 36%; height: 18.5%; display: grid; align-content: center; gap: 9px; padding: 10px 12px; border-radius: 14px; background: var(--pfl-card); box-shadow: var(--pfl-shadow); animation: pfl-bob 6s ease-in-out var(--bob, 0s) infinite }
                  .pfl-head { display: flex; align-items: center; gap: 7px; min-width: 0 }
                  .pfl-head > .pfl-ic { width: 18px; height: 18px }
                  .pfl-name { font: 700 11.5px/1 var(--f-head, Montserrat, sans-serif); color: var(--pfl-ink); white-space: nowrap }
                  .pfl-tag { margin-left: auto; display: flex; align-items: center; font: 700 9.5px/1 var(--f-accent, Nunito, sans-serif); letter-spacing: .02em; color: var(--pfl-muted); white-space: nowrap }
                  .pfl-tag .pfl-ic { width: 13px; height: 13px }
                  .pfl-pv { display: flex; align-items: center; gap: 8px; min-width: 0 }
                  .pfl-pv > span { flex: 1; display: grid; gap: 5px }
                  .pfl-pv i { display: block; height: 5px; border-radius: 3px; background: var(--pfl-sk2) }
                  .pfl-pv i:first-child { height: 7px; background: var(--pfl-sk1) }
                  .pfl-src .pfl-pv > .pfl-thumb { width: 26px; height: 26px; flex: none; border-radius: 7px; background: linear-gradient(135deg, #e2eaf4, #c9d7ea) }
                  .pfl-pv > .pfl-bubble { padding: 6px 8px; border-radius: 10px 10px 10px 3px; background: #f1f3f6 }

                  /* ---- the intent filter ---- */
                  .pfl-filter { position: absolute; left: 44%; top: 14%; z-index: 2; width: 8%; height: 72%; display: grid; grid-template-rows: repeat(3, 1fr); justify-items: center; align-items: center; overflow: hidden; border-radius: 999px; background: linear-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .07)); border: 1px solid rgba(255, 255, 255, .38); box-shadow: inset 0 0 22px rgba(185, 201, 228, .28), 0 0 44px rgba(113, 175, 205, .35) }
                  .pfl-filter::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 28%; background: linear-gradient(transparent, rgba(255, 255, 255, .3), transparent); translate: 0 -100%; animation: pfl-scan 2.8s linear infinite }
                  .pfl-fi { position: relative; z-index: 1; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--pfl-icon); box-shadow: 0 4px 10px rgba(5, 16, 52, .25) }
                  .pfl-fi svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round }
                  .pfl-flabel { position: absolute; left: 48%; top: 88.5%; z-index: 2; transform: translateX(-50%); padding: 6px 11px; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .3); font: 800 9.5px/1 var(--f-accent, Nunito, sans-serif); letter-spacing: .14em; text-transform: uppercase; color: #fff; white-space: nowrap }

                  /* ---- clicks: x and y animate on nested layers so each dot travels a curve ---- */
                  .pfl-flow { position: absolute; inset: 0; z-index: 1; pointer-events: none }
                  .pfl-dot, .pfl-dot > span { position: absolute; inset: 0 }
                  .pfl-dot i { position: absolute; left: 0; top: 0; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--pfl-click); opacity: 0; box-shadow: 0 0 8px rgba(228, 236, 247, .6) }
                  .pfl-dot, .pfl-dot > span, .pfl-dot i { animation-duration: var(--pfl-loop); animation-iteration-count: infinite; animation-delay: var(--t); animation-fill-mode: backwards }
                  .pfl-ok { animation-name: pfl-gx; animation-timing-function: linear }
                  .pfl-ok > span { animation-name: pfl-gy; animation-timing-function: ease-in-out }
                  .pfl-ok i { animation-name: pfl-gd; animation-timing-function: ease }
                  .pfl-no { animation-name: pfl-nx; animation-timing-function: linear }
                  .pfl-no > span { animation-name: pfl-ny; animation-timing-function: ease-in-out }
                  .pfl-no i { animation-name: pfl-nd; animation-timing-function: ease }

                  /* ---- new leads ---- */
                  .pfl-leads { position: absolute; left: 61%; top: 15%; z-index: 3; width: 39%; height: 66%; padding: 14px; border-radius: 16px; background: var(--pfl-card); box-shadow: var(--pfl-shadow); animation: pfl-bob 6s ease-in-out -2s infinite }
                  .pfl-lhead { display: flex; align-items: center; gap: 8px }
                  .pfl-lhead b { font: 700 13px/1.1 var(--f-head, Montserrat, sans-serif); color: var(--pfl-ink) }
                  .pfl-live { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; padding: 4px 8px; border-radius: 999px; background: var(--pfl-ok-soft); color: var(--pfl-ok-ink); font: 800 9.5px/1 var(--f-accent, Nunito, sans-serif) }
                  .pfl-live::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pfl-ok); animation: pfl-live 1.6s ease-out infinite }
                  .pfl-sub { display: block; margin-top: 5px; font: 400 10px/1.3 var(--f-body, Roboto, sans-serif); color: var(--pfl-muted) }
                  .pfl-slot, .pfl-row { position: absolute; left: 12px; right: 12px; top: var(--top); height: 15%; border-radius: 10px }
                  .pfl-slot { border: 1px dashed #e1e8f0 }
                  .pfl-row { display: flex; align-items: center; gap: 9px; padding: 0 9px; background: #fff; border: 1px solid var(--pfl-line); box-shadow: 0 2px 6px rgba(22, 35, 60, .05); animation-duration: var(--pfl-loop); animation-iteration-count: infinite; animation-timing-function: ease }
                  .pfl-r1 { animation-name: pfl-r1 }
                  .pfl-r2 { animation-name: pfl-r2 }
                  .pfl-r3 { animation-name: pfl-r3 }
                  .pfl-r4 { animation-name: pfl-r4 }
                  .pfl-av { width: 26px; height: 26px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--c); color: #fff; font: 800 9.5px/1 var(--f-head, Montserrat, sans-serif) }
                  .pfl-who { flex: 1; min-width: 0; display: grid; gap: 5px }
                  .pfl-who i { display: block; height: 6px; border-radius: 3px; background: #cdd7e4 }
                  .pfl-who i + i { height: 5px; background: #e6ecf3 }
                  .pfl-end { display: flex; align-items: center; gap: 6px; flex: none }
                  .pfl-end .pfl-ic { width: 14px; height: 14px }
                  .pfl-q { padding: 3px 6px; border-radius: 999px; background: var(--pfl-ok-soft); color: var(--pfl-ok-ink); font: 800 9px/1 var(--f-accent, Nunito, sans-serif) }

                  /* ---- result chips ---- */
                  .pfl-chip { position: absolute; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px; border-radius: 14px; background: var(--pfl-card); box-shadow: var(--pfl-shadow); animation: pfl-bob 5s ease-in-out infinite, pfl-pulse var(--pfl-loop) ease-in-out infinite }
                  .pfl-cpl { top: 3%; right: 3%; animation-delay: -1s, 0s }
                  .pfl-conv { bottom: 1%; right: 9%; animation-delay: -3s, 0s }
                  .pfl-cicon { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 50%; background: #eef3fa; color: var(--pfl-icon); font: 800 14px/1 var(--f-head, Montserrat, sans-serif) }
                  .pfl-chip > .pfl-ic { width: 26px; height: 26px }
                  .pfl-chip small { display: block; font: 700 10.5px/1.2 var(--f-accent, Nunito, sans-serif); letter-spacing: .02em; color: var(--pfl-muted) }
                  .pfl-num { display: flex; align-items: center; gap: 6px; font: 800 20px/1 var(--f-head, Montserrat, sans-serif); color: var(--pfl-ink) }
                  .pfl-win { height: 1.25em; overflow: hidden; animation: pfl-numfade var(--pfl-loop) linear infinite }
                  .pfl-odo { display: block; translate: 0 -5em; animation: pfl-odo var(--pfl-loop) cubic-bezier(.55, 0, .2, 1) infinite }
                  .pfl-odo b { display: block; height: 1.25em; line-height: 1.25em; font-weight: 800 }
                  .pfl-arrow { width: 15px; height: 15px; color: var(--pfl-ok-ink) }

                  /* ---- TIMELINE (percent of --pfl-loop) ----
                     qualified clicks leave their ad at 5 / 22.5 / 40 / 57.5 and land as leads at 21 / 38.5 / 56 / 73.5;
                     each landing drops cost per lead and lifts conversion rate | 90-95 leads clear and the loop resets */
                  @keyframes pfl-gx { 0% { translate: 36% 0 } 8% { translate: 48% 0 } 16%, 100% { translate: 63% 0 } }
                  @keyframes pfl-gy { 0% { translate: 0 var(--sy) } 8% { translate: 0 var(--fy) } 16%, 100% { translate: 0 var(--ly) } }
                  @keyframes pfl-gd { 0% { opacity: 0; scale: .6 } 1.5% { opacity: 1; scale: 1; background: var(--pfl-click) } 7.4% { scale: 1; background: var(--pfl-click); box-shadow: 0 0 8px rgba(228, 236, 247, .6) } 9% { scale: 1.5; background: var(--pfl-ok); box-shadow: 0 0 14px var(--pfl-ok) } 11%, 14.5% { opacity: 1; scale: 1; background: var(--pfl-ok); box-shadow: 0 0 10px var(--pfl-ok) } 16%, 100% { opacity: 0; background: var(--pfl-ok) } }
                  @keyframes pfl-nx { 0% { translate: 36% 0 } 8%, 100% { translate: 43.6% 0 } }
                  @keyframes pfl-ny { 0% { translate: 0 var(--sy) } 8%, 100% { translate: 0 var(--fy) } }
                  @keyframes pfl-nd { 0% { opacity: 0; scale: .6 } 1.5% { opacity: 1; scale: 1; background: var(--pfl-click) } 7.4% { opacity: 1; scale: 1; background: var(--pfl-click) } 8.4% { opacity: 1; scale: 1.4; background: var(--pfl-miss) } 11%, 100% { opacity: 0; scale: .2; background: var(--pfl-miss) } }
                  @keyframes pfl-r1 { 0%, 20.5% { opacity: 0; translate: -10px 0 } 23% { opacity: 1; translate: 0 0; background: var(--pfl-ok-soft) } 32%, 90% { opacity: 1; translate: 0 0; background: #fff } 94%, 100% { opacity: 0; translate: 0 0; background: #fff } }
                  @keyframes pfl-r2 { 0%, 38% { opacity: 0; translate: -10px 0 } 40.5% { opacity: 1; translate: 0 0; background: var(--pfl-ok-soft) } 49.5%, 90% { opacity: 1; translate: 0 0; background: #fff } 94%, 100% { opacity: 0; translate: 0 0; background: #fff } }
                  @keyframes pfl-r3 { 0%, 55.5% { opacity: 0; translate: -10px 0 } 58% { opacity: 1; translate: 0 0; background: var(--pfl-ok-soft) } 67%, 90% { opacity: 1; translate: 0 0; background: #fff } 94%, 100% { opacity: 0; translate: 0 0; background: #fff } }
                  @keyframes pfl-r4 { 0%, 73% { opacity: 0; translate: -10px 0 } 75.5% { opacity: 1; translate: 0 0; background: var(--pfl-ok-soft) } 84.5%, 90% { opacity: 1; translate: 0 0; background: #fff } 94%, 100% { opacity: 0; translate: 0 0; background: #fff } }
                  @keyframes pfl-odo { 0%, 20.5% { translate: 0 0 } 23%, 38% { translate: 0 -1.25em } 40.5%, 55.5% { translate: 0 -2.5em } 58%, 73% { translate: 0 -3.75em } 75.5%, 94% { translate: 0 -5em } 95%, 100% { translate: 0 0 } }
                  @keyframes pfl-numfade { 0%, 92% { opacity: 1 } 93.5%, 95.5% { opacity: 0 } 97%, 100% { opacity: 1 } }
                  @keyframes pfl-pulse { 0%, 20.5%, 25.5%, 38%, 43%, 55.5%, 60.5%, 73%, 78%, 100% { scale: 1 } 23%, 40.5%, 58%, 75.5% { scale: 1.05 } }
                  @keyframes pfl-scan { to { translate: 0 360% } }
                  @keyframes pfl-live { 0% { box-shadow: 0 0 0 0 rgba(62, 154, 123, .5) } 70%, 100% { box-shadow: 0 0 0 6px rgba(62, 154, 123, 0) } }
                  @keyframes pfl-bob { 0%, 100% { translate: 0 0 } 50% { translate: 0 -5px } }

                  /* paused while off screen or tab hidden (class set by the script) */
                  .pfl.is-paused *, .pfl.is-paused *::before, .pfl.is-paused *::after { animation-play-state: paused !important }

                  /* tablet: centred under the copy */
                  @media (max-width: 900px) { .pfl { justify-self: center; margin-bottom: 12px } }

                  /* phone: same story, labels only */
                  @media (max-width: 600px) {
                    .pfl-stage { transform: none }
                    .pfl-tag, .pfl-pv, .pfl-sub, .pfl-q, .pfl-who i + i { display: none }
                    .pfl-src { padding: 8px 9px; border-radius: 11px }
                    .pfl-head { gap: 6px }
                    .pfl-head > .pfl-ic { width: 15px; height: 15px }
                    .pfl-name { font-size: 9.5px }
                    .pfl-fi { width: 22px; height: 22px }
                    .pfl-fi svg { width: 11px; height: 11px }
                    .pfl-flabel { padding: 5px 8px; font-size: 7.5px; letter-spacing: .1em }
                    .pfl-leads { padding: 9px; border-radius: 12px }
                    .pfl-lhead b { font-size: 10.5px }
                    .pfl-live { padding: 3px 6px; font-size: 8px }
                    .pfl-slot, .pfl-row { left: 7px; right: 7px; border-radius: 7px }
                    .pfl-row { gap: 6px; padding: 0 6px }
                    .pfl-av { width: 18px; height: 18px; font-size: 7px }
                    .pfl-end .pfl-ic { width: 11px; height: 11px }
                    .pfl-chip { gap: 7px; padding: 7px 11px 7px 8px; border-radius: 11px }
                    .pfl-cicon { width: 22px; height: 22px; font-size: 11px }
                    .pfl-chip > .pfl-ic { width: 20px; height: 20px }
                    .pfl-chip small { font-size: 8.5px }
                    .pfl-num { font-size: 15px }
                    .pfl-arrow { width: 12px; height: 12px }
                  }

                  /* reduced motion: no animation, the finished state (4 leads, CPL ₹920, 6.4%) */
                  @media (prefers-reduced-motion: reduce) {
                    .pfl *, .pfl *::before, .pfl *::after { animation: none !important; transition: none !important }
                    .pfl-flow { display: none }
                  }
                
