/* ============================================================
           LOGITRACK
           Editorial logistics. Bone ground, mid-grey blocks carrying
           white text, near-black for weight. Blue is an accent and
           nothing more. Square corners, mono micro-labels, [01] indices.
           ============================================================ */

        :root {
            --bone: #FFFFFF;
            --bone-2: #FFFFFF;
            --white: #FFFFFF;

            /* Surfaces are white on white, so depth comes from shadow
               rather than fill. Tinted slightly cool, never pure black. */
            --sh-sm: 0 1px 2px rgba(16, 24, 40, .06);
            --sh: 0 2px 6px -1px rgba(16, 24, 40, .07), 0 8px 24px -8px rgba(16, 24, 40, .10);
            --sh-lg: 0 4px 10px -2px rgba(16, 24, 40, .06), 0 28px 56px -20px rgba(16, 24, 40, .20);

            /* ELIOS-style feature blocks: deep charcoal carrying white
               text, two tones apart so sections read as distinct slabs. */
            --grey: #1F1F1D;
            --grey-2: #2B2B28;

            --ink: #121211;
            --ink-2: #1F1F1E;

            --blue: #2F7DF6;
            --blue-d: #1C63D4;

            --text: #141414;
            --text-2: #5B5C56;
            --text-3: #8A8B86;

            --line: rgba(16, 24, 40, .11);
            --line-2: rgba(16, 24, 40, .2);
            --line-w: rgba(255, 255, 255, .26);
            --line-w2: rgba(255, 255, 255, .42);

            --red: #D93A3A;
            --amber: #C97A12;
            --green: #2C8A57;

            --r: 14px;
            --r-sm: 10px;
            --r-pill: 100px;
            --ease: cubic-bezier(.22, 1, .36, 1);
            --max: 1280px;
        }

        *,
        *::before,
        *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            scroll-behavior: smooth;
            -webkit-text-size-adjust: 100%;
        }

        body {
            background: var(--bone);
            color: var(--text);
            font-family: 'Outfit', sans-serif;
            font-size: 16px;
            font-weight: 400;
            line-height: 1.6;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        ::selection {
            background: var(--blue);
            color: #fff;
        }

        img {
            max-width: 100%;
            display: block;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        /* ---------- Type ---------- */

        /* Display type follows the brand artwork: heavy, tight, high
           impact — not the light editorial weight of the reference. */
        h1,
        h2,
        h3,
        h4 {
            font-family: 'Outfit', sans-serif;
            font-weight: 700;
            line-height: 1.04;
            letter-spacing: -.038em;
        }

        h1 {
            font-size: clamp(2.5rem, 5.6vw, 4.6rem);
            line-height: .98;
            letter-spacing: -.045em;
        }

        h2 {
            font-size: clamp(1.9rem, 3.7vw, 3.05rem);
            letter-spacing: -.04em;
        }

        /* Signature blue rule under headlines, straight from the artwork.
           Named hbar so it cannot collide with .arow .bar in the app UI. */
        .hbar {
            width: 78px;
            height: 5px;
            background: var(--blue);
            margin: 22px 0 0;
            border-radius: 2px;
        }

        h3 {
            font-size: 1.06rem;
            font-weight: 500;
            letter-spacing: -.012em;
        }

        strong,
        b {
            font-weight: 600;
        }

        .accent {
            color: var(--blue);
        }

        /* Mono micro-label — the recurring structural device */
        .lbl {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .655rem;
            font-weight: 400;
            text-transform: uppercase;
            letter-spacing: .2em;
            color: var(--text-3);
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }

        .lbl::before {
            content: '✳';
            font-size: .62rem;
            opacity: .75;
        }

        .lbl.plain::before {
            content: none;
        }

        /* [01] index */
        .idx {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .7rem;
            letter-spacing: .05em;
            color: var(--text-3);
        }

        .lede {
            font-size: clamp(.99rem, 1.15vw, 1.1rem);
            color: var(--text-2);
            line-height: 1.68;
            font-weight: 400;
        }

        .mono {
            font-family: 'IBM Plex Mono', monospace;
            font-variant-numeric: tabular-nums;
        }

        .micro {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .68rem;
            line-height: 1.65;
            letter-spacing: .02em;
            color: var(--text-2);
            text-transform: uppercase;
        }

        /* ---------- Layout ---------- */

        .wrap {
            max-width: var(--max);
            margin: 0 auto;
            padding: 0 28px;
        }

        .sect {
            padding: clamp(64px, 8.5vw, 116px) 0;
            position: relative;
        }

        /* Two-column section head: title left, description right */
        .shead {
            display: grid;
            grid-template-columns: 1.15fr 1fr;
            gap: clamp(28px, 5vw, 80px);
            align-items: end;
            margin-bottom: clamp(34px, 4.5vw, 58px);
        }

        .shead .lbl {
            margin-bottom: 18px;
        }

        .shead-1 {
            max-width: 720px;
            margin-bottom: clamp(34px, 4.5vw, 58px);
        }

        .shead-1 .lbl {
            margin-bottom: 18px;
        }

        .shead-1 p {
            margin-top: 18px;
        }

        /* ---------- Tone blocks ---------- */

        .on-grey {
            background: var(--grey);
            color: #fff;
        }

        .on-grey h1,
        .on-grey h2,
        .on-grey h3 {
            color: #fff;
        }

        .on-grey .lede,
        .on-grey p {
            color: rgba(255, 255, 255, .84);
        }

        .on-grey .lbl,
        .on-grey .idx,
        .on-grey .micro {
            color: rgba(255, 255, 255, .72);
        }

        .on-ink {
            background: var(--ink);
            color: #fff;
        }

        .on-ink h1,
        .on-ink h2,
        .on-ink h3 {
            color: #fff;
        }

        .on-ink .lede,
        .on-ink p {
            color: rgba(255, 255, 255, .72);
        }

        .on-ink .lbl,
        .on-ink .idx,
        .on-ink .micro {
            color: rgba(255, 255, 255, .55);
        }

        /* Row copy sits directly on the tint, so it must go light —
           the default --text-2 only clears ~2.2:1 against the grey. */
        .on-grey .row-i p {
            color: rgba(255, 255, 255, .82);
        }

        .on-ink .row-i p {
            color: rgba(255, 255, 255, .72);
        }

        /* …but white surfaces nested inside a tinted section keep dark
           text, or the heading rule above paints them white-on-white. */
        .card,
        .card h3,
        .scen,
        .scen h3,
        .sms,
        .phone,
        .phone h3,
        .partner,
        .partner h3,
        .panel,
        .app,
        .form-card {
            color: var(--text);
        }

        /* ---------- Buttons ---------- */

        .btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .68rem;
            font-weight: 500;
            text-transform: uppercase;
            letter-spacing: .14em;
            padding: 13px 22px;
            border-radius: var(--r-pill);
            border: 1px solid transparent;
            cursor: pointer;
            transition: background .15s, color .15s, border-color .15s, transform .15s var(--ease);
            white-space: nowrap;
            line-height: 1;
        }

        .btn svg {
            width: 13px;
            height: 13px;
            flex-shrink: 0;
        }

        .btn-blue {
            background: var(--blue);
            color: #fff;
        }

        .btn-blue:hover {
            background: var(--blue-d);
            transform: translateY(-1px);
        }

        .btn-ink {
            background: var(--ink);
            color: #fff;
        }

        .btn-ink:hover {
            background: var(--blue);
            transform: translateY(-1px);
        }

        .btn-line {
            border-color: var(--line-2);
            color: var(--text);
        }

        .btn-line:hover {
            border-color: var(--ink);
            background: var(--ink);
            color: #fff;
        }

        .on-grey .btn-line,
        .on-ink .btn-line {
            border-color: var(--line-w2);
            color: #fff;
        }

        .on-grey .btn-line:hover,
        .on-ink .btn-line:hover {
            background: #fff;
            color: var(--ink);
            border-color: #fff;
        }

        .btn-white {
            background: #fff;
            color: var(--ink);
        }

        .btn-white:hover {
            background: var(--blue);
            color: #fff;
        }

        .btn-block {
            width: 100%;
        }

        .btn-lg {
            padding: 16px 26px;
            font-size: .7rem;
        }

        /* ---------- Header ---------- */

        /* Floating pill nav: brand rides on the page, links sit in a
           dark capsule, action button is a separate capsule. */
        header {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 100;
            padding: 16px 0;
            transition: padding .35s var(--ease);
        }

        header.scrolled {
            padding: 9px 0;
        }

        .nav {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 20px;
        }

        .nav-links {
            background: var(--blue);
            border-radius: var(--r-pill);
            padding: 7px 10px;
            box-shadow: var(--sh);
        }

        .nav-links a {
            padding: 8px 15px;
            border-radius: var(--r-pill);
            color: rgba(255, 255, 255, .88);
            transition: background .16s, color .16s;
        }

        .nav-links a:hover {
            background: rgba(255, 255, 255, .2);
            color: #fff;
        }

        .brand {
            display: flex;
            align-items: center;
            gap: 9px;
            flex-shrink: 0;
        }

        .brand svg {
            height: 20px;
            width: auto;
            color: var(--blue);
            flex-shrink: 0;
        }

        .brand span {
            font-weight: 600;
            font-size: 1.08rem;
            letter-spacing: -.032em;
            color: var(--ink);
            transition: color .25s var(--ease);
        }

        /* The nav floats with no backdrop, so the wordmark inverts over
           dark slabs. The emblem stays blue in both cases. */
        header.on-dark .brand span {
            color: #fff;
        }

        header.on-dark .burger {
            color: #fff;
            border-color: rgba(255, 255, 255, .35);
        }

        .nav-links {
            display: flex;
            align-items: center;
            gap: 2px;
        }

        .nav-links a,
        .nav-actions .login {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .655rem;
            text-transform: uppercase;
            letter-spacing: .15em;
            color: var(--text-2);
            transition: color .15s;
        }

        .nav-links a:hover,
        .nav-actions .login:hover {
            color: var(--blue);
        }

        .nav-actions {
            display: flex;
            align-items: center;
            gap: 18px;
            flex-shrink: 0;
        }

        /* ---------- Hero ---------- */

        .hero {
            padding: 122px 0 clamp(46px, 6vw, 78px);
        }

        .hero-grid {
            display: grid;
            grid-template-columns: 1.06fr .94fr;
            gap: clamp(32px, 4.5vw, 64px);
            align-items: center;
        }

        .hero h1 {
            margin-top: 22px;
        }

        .hero .lede {
            margin-top: 24px;
            max-width: 490px;
        }

        .hero-cta {
            margin-top: 32px;
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }

        /* Stat rail — square blocks, ELIOS style */
        .stats {
            margin-top: 46px;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1px;
            background: var(--line);
            border: 1px solid var(--line);
        }

        .stats div {
            background: var(--bone);
            padding: 18px 16px;
        }

        .stats .v {
            font-size: 1.5rem;
            font-weight: 500;
            letter-spacing: -.03em;
            line-height: 1;
            color: var(--ink);
        }

        .stats .v em {
            font-style: normal;
            color: var(--blue);
        }

        .stats .k {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            text-transform: uppercase;
            letter-spacing: .13em;
            color: var(--text-3);
            margin-top: 9px;
            line-height: 1.5;
        }

        /* ---------- Incident feed panel ---------- */

        .panel {
            background: var(--white);
            border: 1px solid var(--line);
            border-radius: var(--r);
        }

        .panel-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 13px 16px;
            border-bottom: 1px solid var(--line);
        }

        .live {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .15em;
            text-transform: uppercase;
            color: var(--green);
        }

        .dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: currentColor;
            animation: ping 2.4s infinite;
            flex-shrink: 0;
        }

        @keyframes ping {
            0% {
                box-shadow: 0 0 0 0 rgba(44, 138, 87, .45);
            }

            70% {
                box-shadow: 0 0 0 7px rgba(44, 138, 87, 0);
            }

            100% {
                box-shadow: 0 0 0 0 rgba(44, 138, 87, 0);
            }
        }

        .evt {
            display: grid;
            grid-template-columns: 3px 1fr auto;
            gap: 14px;
            align-items: center;
            padding: 14px 16px 14px 0;
            border-bottom: 1px solid var(--line);
            opacity: 0;
            transform: translateX(-8px);
            animation: evtIn .5s var(--ease) forwards;
        }

        @keyframes evtIn {
            to {
                opacity: 1;
                transform: none;
            }
        }

        .evt:nth-child(1) {
            animation-delay: .25s;
        }

        .evt:nth-child(2) {
            animation-delay: .38s;
        }

        .evt:nth-child(3) {
            animation-delay: .51s;
        }

        .evt:nth-child(4) {
            animation-delay: .64s;
        }

        .evt .stripe {
            width: 3px;
            align-self: stretch;
            min-height: 36px;
        }

        .evt .ttl {
            font-size: .9rem;
            font-weight: 500;
            color: var(--ink);
        }

        .evt .sub {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .655rem;
            color: var(--text-3);
            margin-top: 4px;
            text-transform: uppercase;
            letter-spacing: .05em;
        }

        /* App-replica status: same typographic language as the incident
           feed — marker square plus mono label, no pill chrome. */
        .tag {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .57rem;
            font-weight: 500;
            letter-spacing: .15em;
            text-transform: uppercase;
            white-space: nowrap;
            padding: 0;
            border: 0;
            background: none;
        }

        .tag::before {
            content: '';
            width: 5px;
            height: 5px;
            background: currentColor;
            flex-shrink: 0;
        }

        .t-red {
            color: var(--red);
        }

        .t-amber {
            color: #B26A0A;
        }

        .t-blue {
            color: var(--blue-d);
        }

        .t-green {
            color: var(--green);
        }

        .t-plain {
            color: var(--text-3);
        }
        }

        /* Incident-feed status: typographic, not a tinted pill. The row's
   left stripe already carries the colour, so the label needs no
   chrome of its own. Kept distinct from the app-replica chips,
   which stay pill-shaped because real product UI looks like that. */
.stat-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'IBM Plex Mono', monospace;
    font-size: .6rem;
    font-weight: 500;
    letter-spacing: .19em;
    text-transform: uppercase;
    white-space: nowrap;
}

.stat-tag::before {
    content: '';
    width: 5px;
    height: 5px;
    background: currentColor;
    flex-shrink: 0;
}

.st-red {
    color: var(--red);
}

.st-amber {
    color: #B26A0A;
}

.st-blue {
    color: var(--blue);
}

.st-green {
    color: var(--green);
}

.panel-foot {
            padding: 12px 16px;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--text-3);
            text-align: center;
        }

        /* ---------- Numbered list (ELIOS [01] rows) ---------- */

        .rows {
            border-top: 1px solid var(--line);
        }

        .on-grey .rows,
        .on-grey .row-i {
            border-color: var(--line-w);
        }

        .row-i {
            display: grid;
            grid-template-columns: 58px 1.05fr 1.35fr;
            gap: clamp(16px, 3vw, 44px);
            padding: 26px 0;
            border-bottom: 1px solid var(--line);
            align-items: start;
        }

        .row-i h3 {
            font-weight: 500;
        }

        .row-i p {
            font-size: .92rem;
            color: var(--text-2);
            line-height: 1.65;
        }

        .row-i .idx {
            padding-top: 3px;
        }

        /* ---------- Cards ---------- */

        .cards {
            display: grid;
            gap: 1px;
            background: var(--line);
            border: 1px solid var(--line);
        }

        .c-2 {
            grid-template-columns: repeat(2, 1fr);
        }

        .c-3 {
            grid-template-columns: repeat(3, 1fr);
        }

        .card {
            background: var(--bone);
            padding: 28px 26px;
            transition: background .16s;
        }

        .card:hover {
            background: var(--white);
        }

        .card h3 {
            margin-bottom: 10px;
        }

        .card p {
            font-size: .9rem;
            color: var(--text-2);
            line-height: 1.65;
        }

        .card .idx {
            display: block;
            margin-bottom: 16px;
        }

        .cards-w .card {
            background: var(--white);
        }

        .cards-w .card:hover {
            background: var(--bone-2);
        }

        /* ---------- App replica ---------- */

        .app {
            border: 1px solid var(--line);
            border-radius: var(--r);
            overflow: hidden;
            background: #fff;
            font-size: 13px;
            color: var(--ink);
        }

        .app-chrome {
            display: flex;
            align-items: center;
            gap: 9px;
            padding: 10px 14px;
            background: var(--bone-2);
            border-bottom: 1px solid var(--line);
        }

        .app-chrome i {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: rgba(20, 20, 20, .16);
            display: block;
        }

        .app-url {
            margin-left: 6px;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .64rem;
            color: var(--text-3);
            background: #fff;
            border: 1px solid var(--line);
            border-radius: var(--r);
            padding: 3px 11px;
        }

        /* The product UI is the strongest asset on the page — give it
           room and let it run wider than the text column. */
        .app-wide {
            max-width: 1500px;
            margin: 0 auto;
            padding: 0 20px;
        }

        .app-body {
            display: grid;
            grid-template-columns: 232px 1fr;
            min-height: 560px;
            font-size: 15px;
        }

        .app-side {
            border-right: 1px solid var(--line);
            padding: 14px 0;
            background: #fff;
        }

        .app-side .who {
            display: flex;
            align-items: center;
            gap: 9px;
            padding: 0 16px 13px;
            border-bottom: 1px solid var(--line);
            margin-bottom: 10px;
            font-weight: 600;
            font-size: .92rem;
        }

        .app-side .who i {
            width: 18px;
            height: 18px;
            background: var(--blue);
            border-radius: var(--r);
            display: block;
            flex-shrink: 0;
        }

        .ngrp {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .58rem;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--text-3);
            padding: 9px 16px 4px;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .ngrp span {
            opacity: .5;
        }

        .nit {
            padding: 6px 16px;
            font-size: .78rem;
            color: var(--text-2);
            display: flex;
            align-items: center;
            gap: 9px;
        }

        .nit.on {
            background: rgba(47, 125, 246, .08);
            color: var(--blue-d);
            font-weight: 500;
            box-shadow: inset 2px 0 0 var(--blue);
        }

        .nit i {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: currentColor;
            opacity: .4;
            flex-shrink: 0;
        }

        .app-main {
            padding: 18px 20px;
            background: var(--bone);
            overflow: hidden;
        }

        .app-h {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 14px;
            margin-bottom: 15px;
        }

        .app-h h4 {
            font-size: 1.12rem;
            font-weight: 600;
            letter-spacing: -.026em;
        }

        .app-h p {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .62rem;
            text-transform: uppercase;
            letter-spacing: .1em;
            color: var(--text-3);
            margin-top: 4px;
        }

        .kpis {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 1px;
            background: var(--line);
            border: 1px solid var(--line);
            margin-bottom: 14px;
        }

        .kpi {
            background: #fff;
            padding: 12px 13px;
        }

        .kpi .k {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .58rem;
            text-transform: uppercase;
            letter-spacing: .1em;
            color: var(--text-3);
            margin-bottom: 6px;
        }

        .kpi .v {
            font-size: 1.4rem;
            font-weight: 500;
            letter-spacing: -.03em;
            line-height: 1;
        }

        .kpi .s {
            font-size: .66rem;
            margin-top: 5px;
            color: var(--text-3);
        }

        .kpi .s.red {
            color: var(--red);
        }

        .kpi .s.amber {
            color: var(--amber);
        }

        .app-split {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 1px;
            background: var(--line);
            border: 1px solid var(--line);
        }

        .app-card {
            background: #fff;
        }

        .app-card-h {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .58rem;
            letter-spacing: .13em;
            text-transform: uppercase;
            color: var(--text-3);
            padding: 10px 13px;
            border-bottom: 1px solid var(--line);
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .arow {
            padding: 10px 13px;
            border-bottom: 1px solid rgba(20, 20, 20, .07);
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .arow:last-child {
            border-bottom: 0;
        }

        .arow .bar {
            width: 3px;
            align-self: stretch;
            min-height: 26px;
            flex-shrink: 0;
        }

        .arow .id {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .68rem;
            font-weight: 500;
        }

        .arow .meta {
            font-size: .655rem;
            color: var(--text-3);
            margin-top: 2px;
        }

        .arow .grow {
            flex: 1;
            min-width: 0;
        }

        /* Synthetic-data notice */
        .synth {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 12px;
            flex-wrap: wrap;
            margin-top: 14px;
            padding: 12px 18px;
            border: 1px dashed var(--line-2);
            border-radius: var(--r);
        }

        .synth p {
            font-size: .82rem;
            color: var(--text-2);
        }

        .on-grey .synth {
            border-color: var(--line-w2);
        }

        .on-grey .synth p {
            color: rgba(255, 255, 255, .85);
        }

        /* ---------- Scenario ---------- */

        .scen {
            background: var(--white);
            padding: 26px 24px;
            display: flex;
            flex-direction: column;
        }

        .scen-h {
            display: flex;
            align-items: center;
            gap: 13px;
            margin-bottom: 16px;
            padding-bottom: 15px;
            border-bottom: 1px solid var(--line);
        }

        /* Solid sharp block, echoing the action block in the brand
           artwork — deliberately not the tinted pill used for app chips. */
        .slabel {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .57rem;
            font-weight: 500;
            letter-spacing: .17em;
            text-transform: uppercase;
            color: #fff;
            padding: 6px 10px;
            border-radius: 2px;
            white-space: nowrap;
            flex-shrink: 0;
        }

        .sl-red {
            background: var(--red);
        }

        .sl-blue {
            background: var(--blue);
        }

        .sl-amber {
            background: #B26A0A;
        }

        .sl-ink {
            background: var(--ink);
        }

        .scen-h h3 {
            flex: 1;
        }

        .scen-l {
            display: grid;
            grid-template-columns: 26px 1fr;
            gap: 12px;
            font-size: .885rem;
            color: var(--text-2);
            line-height: 1.6;
            padding: 7px 0;
        }

        .scen-l .idx {
            font-size: .64rem;
            padding-top: 3px;
        }

        .scen-l b {
            color: var(--ink);
        }

        .scen-f {
            margin-top: auto;
            padding-top: 15px;
            border-top: 1px solid var(--line);
            font-size: .84rem;
            color: var(--text-2);
        }

        .scen-f b {
            color: var(--ink);
        }

        /* ---------- Trust ---------- */

        .tcard {
            background: rgba(255, 255, 255, .05);
            border: 1px solid var(--line-w);
            padding: 28px 26px;
        }

        .tcard h3 {
            margin: 0 0 10px;
        }

        .tcard p {
            font-size: .9rem;
            line-height: 1.65;
        }

        .tcard .idx {
            display: block;
            margin-bottom: 16px;
        }

        /* ---------- Partner ---------- */

        .partner {
            border: 1px solid var(--line);
            padding: clamp(30px, 4.5vw, 54px);
            text-align: center;
            background: var(--white);
        }

        .partner figure {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 16px;
            margin-top: 26px;
        }

        .partner img {
            height: clamp(104px, 13vw, 160px);
            width: auto;
        }

        .partner figcaption {
            font-size: .96rem;
            font-weight: 500;
        }

        /* ---------- Pricing ---------- */

        .tiers {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 1px;
            background: var(--line);
            border: 1px solid var(--line);
        }

        .tier {
            background: var(--white);
            padding: 30px 26px;
            display: flex;
            flex-direction: column;
            position: relative;
        }

        .tier.feat {
            background: var(--ink);
            color: #fff;
        }

        .tier.feat h3,
        .tier.feat .amt .n {
            color: #fff;
        }

        .tier-badge {
            position: absolute;
            top: 0;
            right: 0;
            background: var(--blue);
            color: #fff;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .56rem;
            letter-spacing: .14em;
            text-transform: uppercase;
            padding: 5px 10px;
        }

        .tier .name {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .655rem;
            letter-spacing: .19em;
            text-transform: uppercase;
            color: var(--text-3);
            margin-bottom: 16px;
        }

        .tier.feat .name {
            color: rgba(255, 255, 255, .6);
        }

        .tier .amt {
            display: flex;
            align-items: baseline;
            gap: 6px;
        }

        .tier .amt .n {
            font-size: 2.5rem;
            font-weight: 500;
            letter-spacing: -.04em;
            line-height: 1;
        }

        .tier .amt .pre,
        .tier .amt .per {
            font-size: .82rem;
            color: var(--text-3);
        }

        .tier.feat .amt .per {
            color: rgba(255, 255, 255, .6);
        }

        .tier .lim {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .655rem;
            color: var(--text-3);
            margin-top: 14px;
            line-height: 1.7;
            text-transform: uppercase;
            letter-spacing: .06em;
        }

        .tier.feat .lim {
            color: rgba(255, 255, 255, .5);
        }

        .tier ul {
            list-style: none;
            margin: 24px 0;
            display: flex;
            flex-direction: column;
            gap: 10px;
            flex: 1;
        }

        .tier li {
            display: grid;
            grid-template-columns: 13px 1fr;
            gap: 11px;
            font-size: .875rem;
            color: var(--text-2);
            align-items: start;
        }

        .tier.feat li {
            color: rgba(255, 255, 255, .8);
        }

        .tier li svg {
            width: 13px;
            height: 13px;
            color: var(--blue);
            margin-top: 5px;
        }

        .tier li.hdr {
            display: block;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .12em;
            text-transform: uppercase;
            color: var(--text-3);
        }

        .tier.feat li.hdr {
            color: rgba(255, 255, 255, .5);
        }

        .note {
            border: 1px solid var(--line);
            padding: 22px 26px;
            font-size: .9rem;
            color: var(--text-2);
            line-height: 1.7;
            background: var(--white);
            margin-top: 18px;
        }

        .note b {
            color: var(--ink);
            font-weight: 600;
        }

        .on-ink .note {
            background: rgba(255, 255, 255, .05);
            border-color: var(--line-w);
            color: rgba(255, 255, 255, .78);
        }

        .on-ink .note b {
            color: #fff;
        }

        .note a {
            color: var(--blue);
            text-decoration: underline;
            text-underline-offset: 3px;
            text-decoration-thickness: 1px;
        }

        .note a:hover {
            color: var(--blue-d);
        }

        /* Blue on near-black fails contrast — go white on the dark slabs. */
        .on-ink .note a,
        .on-grey .note a {
            color: #fff;
            text-decoration-color: rgba(255, 255, 255, .45);
        }

        .on-ink .note a:hover,
        .on-grey .note a:hover {
            text-decoration-color: #fff;
        }

        /* ---------- Form ---------- */

        .form-card {
            border: 1px solid var(--line);
            background: var(--white);
            padding: clamp(24px, 3.6vw, 42px);
        }

        .fgroup {
            margin-bottom: 18px;
        }

        .flabel {
            display: block;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .16em;
            text-transform: uppercase;
            color: var(--text-2);
            margin-bottom: 9px;
        }

        .flabel .req {
            color: var(--blue);
        }

        .fin {
            width: 100%;
            background: var(--bone);
            border: 1px solid var(--line);
            border-radius: var(--r);
            padding: 13px 15px;
            color: var(--ink);
            font-family: 'Outfit', sans-serif;
            font-size: .93rem;
            transition: border-color .14s, background .14s, box-shadow .14s;
        }

        .fin::placeholder {
            color: var(--text-3);
        }

        .fin:focus {
            outline: none;
            border-color: var(--blue);
            background: #fff;
            box-shadow: 0 0 0 3px rgba(47, 125, 246, .13);
        }

        .fin.err {
            border-color: var(--red);
        }

        .frow {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
        }

        .fsect {
            margin-bottom: 30px;
        }

        .fsect-h {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 16px;
            padding-bottom: 12px;
            border-bottom: 1px solid var(--line);
        }

        .fsect-h .t {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .18em;
            text-transform: uppercase;
            color: var(--text-2);
        }

        .opts {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
        }

        .opt {
            cursor: pointer;
        }

        .opt input {
            position: absolute;
            opacity: 0;
            pointer-events: none;
        }

        .opt .box {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 13px 15px;
            border: 1px solid var(--line);
            border-radius: var(--r);
            background: var(--bone);
            font-size: .875rem;
            color: var(--text-2);
            transition: all .14s;
        }

        .opt:hover .box {
            border-color: var(--line-2);
            color: var(--ink);
        }

        .opt input:checked+.box {
            border-color: var(--blue);
            background: rgba(47, 125, 246, .07);
            color: var(--blue-d);
            font-weight: 500;
        }

        .opt input:focus-visible+.box {
            box-shadow: 0 0 0 3px rgba(47, 125, 246, .22);
        }

        .warn {
            display: flex;
            gap: 11px;
            align-items: flex-start;
            background: rgba(201, 122, 18, .08);
            border: 1px solid rgba(201, 122, 18, .3);
            border-radius: var(--r);
            padding: 13px 15px;
            color: var(--amber);
            font-size: .855rem;
            margin-top: 14px;
        }

        .fnote {
            text-align: center;
            font-family: 'IBM Plex Mono', monospace;
            font-size: .62rem;
            text-transform: uppercase;
            letter-spacing: .1em;
            color: var(--text-3);
            margin-top: 14px;
        }

        .ferr {
            text-align: center;
            font-size: .86rem;
            color: var(--red);
            margin-top: 15px;
        }

        .ferr a {
            text-decoration: underline;
        }

        .ok {
            text-align: center;
            padding: 32px 0;
        }

        .ok-ic {
            width: 54px;
            height: 54px;
            margin: 0 auto 20px;
            border: 1px solid rgba(44, 138, 87, .35);
            background: rgba(44, 138, 87, .08);
            display: grid;
            place-items: center;
            border-radius: var(--r);
        }

        .ok-ic svg {
            width: 24px;
            height: 24px;
            color: var(--green);
        }

        .ok h3 {
            font-size: 1.3rem;
            margin-bottom: 12px;
        }

        .ok p {
            color: var(--text-2);
            font-size: .92rem;
        }

        .ok p+p {
            margin-top: 7px;
            font-size: .86rem;
            color: var(--text-3);
        }

        .assure {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 8px;
            margin-top: 22px;
        }

        .assure span {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .13em;
            text-transform: uppercase;
            color: var(--text-3);
            border: 1px solid var(--line);
            padding: 7px 13px;
            border-radius: var(--r);
        }

        /* ---------- Tracking phone ---------- */

        .phone {
            width: 272px;
            border: 1px solid var(--line);
            background: #fff;
            padding: 9px;
            margin: 0 auto;
            border-radius: var(--r);
        }

        .ph-top {
            padding: 13px 15px;
            border-bottom: 1px solid var(--line);
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .ph-top b {
            font-size: .9rem;
            font-weight: 600;
            letter-spacing: -.028em;
        }

        .ph-top i {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .5rem;
            letter-spacing: .13em;
            text-transform: uppercase;
            color: var(--text-3);
            font-style: normal;
            display: block;
            text-align: right;
        }

        .ph-top u {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .63rem;
            text-decoration: none;
            display: block;
            text-align: right;
        }

        .ph-map {
            height: 106px;
            background: var(--bone-2);
            position: relative;
            border-bottom: 1px solid var(--line);
            overflow: hidden;
        }

        .ph-map::before,
        .ph-map::after {
            content: '';
            position: absolute;
            background: #fff;
        }

        .ph-map::before {
            height: 7px;
            left: -10%;
            right: -10%;
            top: 46%;
            transform: rotate(-11deg);
        }

        .ph-map::after {
            width: 6px;
            top: -10%;
            bottom: -10%;
            left: 62%;
            transform: rotate(8deg);
        }

        .pin {
            position: absolute;
            width: 14px;
            height: 14px;
            border-radius: 50%;
            background: var(--blue);
            border: 2.5px solid #fff;
            top: 40%;
            left: 44%;
            z-index: 2;
            animation: bob 2.6s ease-in-out infinite;
        }

        @keyframes bob {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-5px);
            }
        }

        .ph-body {
            padding: 14px 15px;
        }

        .ph-eta {
            font-size: 1.26rem;
            font-weight: 500;
            letter-spacing: -.03em;
        }

        .ph-sub {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .62rem;
            text-transform: uppercase;
            letter-spacing: .08em;
            color: var(--text-3);
            margin: 4px 0 13px;
        }

        .ph-step {
            display: grid;
            grid-template-columns: 12px 1fr;
            gap: 11px;
            font-size: .72rem;
            padding: 5px 0;
            align-items: center;
            color: var(--text-3);
        }

        .ph-step .d {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: var(--line-2);
            margin-left: 2px;
        }

        .ph-step.done .d {
            background: var(--green);
        }

        .ph-step.now .d {
            background: var(--blue);
            box-shadow: 0 0 0 3px rgba(47, 125, 246, .2);
        }

        .ph-step.done,
        .ph-step.now {
            color: var(--ink);
            font-weight: 500;
        }

        .sms {
            border: 1px solid var(--line);
            background: var(--white);
            padding: 17px 19px;
        }

        .sms .from {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .6rem;
            letter-spacing: .14em;
            text-transform: uppercase;
            color: var(--text-3);
            margin-bottom: 10px;
        }

        .sms .msg {
            font-size: .89rem;
            color: var(--text-2);
            line-height: 1.6;
        }

        .sms .msg a {
            color: var(--blue);
        }

        /* ---------- Footer ---------- */

        footer {
            background: var(--ink);
            color: #fff;
            padding: 66px 0 0;
        }

        .foot-grid {
            display: grid;
            grid-template-columns: 1.7fr 1fr 1fr 1.2fr;
            gap: 40px;
            padding-bottom: 46px;
            border-bottom: 1px solid var(--line-w);
        }

        .foot-grid .brand span {
            color: #fff;
        }

        .foot-grid h4 {
            font-family: 'IBM Plex Mono', monospace;
            font-size: .61rem;
            letter-spacing: .18em;
            text-transform: uppercase;
            color: rgba(255, 255, 255, .5);
            margin-bottom: 18px;
            font-weight: 400;
        }

        .foot-grid ul {
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 11px;
        }

        .foot-grid a,
        .foot-grid li {
            font-size: .89rem;
            color: rgba(255, 255, 255, .68);
            transition: color .14s;
        }

        .foot-grid a:hover {
            color: var(--blue);
        }

        .foot-brand p {
            font-size: .89rem;
            color: rgba(255, 255, 255, .6);
            max-width: 280px;
            margin-top: 16px;
            line-height: 1.65;
        }

        .socials {
            display: flex;
            gap: 10px;
            margin-top: 20px;
        }

        .socials a {
            width: 32px;
            height: 32px;
            border: 1px solid var(--line-w);
            display: grid;
            place-items: center;
            color: rgba(255, 255, 255, .7);
            transition: all .16s;
            border-radius: var(--r);
        }

        .socials a:hover {
            color: #fff;
            background: var(--blue);
            border-color: var(--blue);
        }

        .socials svg {
            width: 15px;
            height: 15px;
        }

        .foot-btm {
            padding: 24px 0 30px;
            text-align: center;
        }

        .foot-btm p {
            font-size: .8rem;
            color: rgba(255, 255, 255, .5);
        }

        .foot-btm .fine {
            font-size: .72rem;
            color: rgba(255, 255, 255, .34);
            max-width: 820px;
            margin: 10px auto 0;
            line-height: 1.65;
        }

        /* Oversized wordmark, ELIOS-style sign-off */
        /* line-height must clear the descender on "g" — body has
           overflow-x:hidden, which computes overflow-y to auto and
           clips anything spilling out of this box. */
        .wordmark {
            border-top: 1px solid var(--line-w);
            padding: 30px 0 20px;
            text-align: center;
            font-size: clamp(3.2rem, 15vw, 12.5rem);
            font-weight: 600;
            letter-spacing: -.05em;
            line-height: 1.06;
            color: rgba(255, 255, 255, .1);
            user-select: none;
        }

        /* ============================================================
           ELIOS-STYLE SURFACES
           Rounded slabs lifted off white by shadow, not hairline grids.
           Declared last so they win over the base component rules.
           ============================================================ */

        .nav-links a {
            color: rgba(255, 255, 255, .88);
        }

        .nav-links a:hover {
            color: #fff;
        }

        .nav-actions .login {
            color: var(--text-2);
        }

        /* Gapped cards, each its own object */
        .cards {
            gap: 16px;
            background: transparent;
            border: 0;
        }

        .card,
        .scen,
        .tcard {
            border-radius: var(--r);
            border: 1px solid var(--line);
            background: #fff;
            box-shadow: var(--sh);
        }

        .card:hover,
        .scen:hover {
            background: #fff;
            box-shadow: var(--sh-lg);
            transform: translateY(-3px);
        }

        .card {
            transition: box-shadow .2s var(--ease), transform .2s var(--ease);
        }

        /* Cards on a dark slab invert */
        .on-grey .card,
        .on-ink .card,
        .tcard {
            background: rgba(255, 255, 255, .055);
            border-color: rgba(255, 255, 255, .14);
            box-shadow: none;
        }

        .on-grey .card h3,
        .on-ink .card h3,
        .tcard h3 {
            color: #fff;
        }

        .on-grey .card p,
        .on-ink .card p,
        .tcard p {
            color: rgba(255, 255, 255, .68);
        }

        .on-grey .card:hover,
        .on-ink .card:hover {
            background: rgba(255, 255, 255, .1);
            box-shadow: none;
        }

        .panel,
        .app,
        .form-card,
        .partner,
        .phone,
        .sms,
        .note,
        .stats {
            border-radius: var(--r);
            box-shadow: var(--sh);
            overflow: hidden;
        }

        .app {
            box-shadow: var(--sh-lg);
        }

        .phone {
            border-radius: 26px;
        }

        .on-grey .note,
        .on-ink .note {
            box-shadow: none;
        }

        /* Pricing: gapped rounded tiers */
        .tiers {
            gap: 16px;
            background: transparent;
            border: 0;
        }

        .tier {
            border-radius: var(--r);
            border: 1px solid var(--line);
            box-shadow: var(--sh);
            overflow: hidden;
        }

        .tier.feat {
            box-shadow: var(--sh-lg);
            border-color: var(--ink);
        }

        .tier-badge {
            border-bottom-left-radius: var(--r-sm);
        }

        /* Product canvas keeps a UI-grey so it reads as an application */
        .app-main {
            background: #F6F7F9;
        }

        .app-chrome {
            background: #F0F1F3;
        }

        .ph-map {
            background: #EDEFF2;
        }

        .fin,
        .opt .box {
            background: #fff;
            border-radius: var(--r-sm);
        }

        .fin:focus {
            background: #fff;
        }

        .synth {
            border-radius: var(--r-sm);
        }

        .assure span {
            border-radius: var(--r-pill);
        }

        .burger,
        .socials a,
        .ok-ic {
            border-radius: var(--r-sm);
        }

        .mmenu {
            background: #fff;
            border-radius: 0 0 var(--r) var(--r);
            box-shadow: var(--sh);
        }

        /* ---------- Reveal ---------- */

        .rv {
            opacity: 0;
            transform: translateY(18px);
            transition: opacity .65s var(--ease), transform .65s var(--ease);
        }

        .rv.in {
            opacity: 1;
            transform: none;
        }

        .rv-1 {
            transition-delay: .07s;
        }

        .rv-2 {
            transition-delay: .14s;
        }

        @media (prefers-reduced-motion: reduce) {

            *,
            *::before,
            *::after {
                animation-duration: .01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: .01ms !important;
                scroll-behavior: auto !important;
            }

            .rv,
            .evt {
                opacity: 1;
                transform: none;
            }
        }

        /* ---------- Mobile menu ---------- */

        .burger {
            display: none;
            background: none;
            border: 1px solid var(--line-2);
            border-radius: var(--r);
            padding: 8px;
            color: var(--ink);
            cursor: pointer;
        }

        .burger svg {
            width: 18px;
            height: 18px;
            display: block;
        }

        .mmenu {
            display: none;
            background: var(--bone);
            border-top: 1px solid var(--line);
            padding: 16px 28px 24px;
        }

        .mmenu.open {
            display: block;
        }

        .mmenu a {
            display: block;
            padding: 13px 0;
            border-bottom: 1px solid var(--line);
            font-family: 'IBM Plex Mono', monospace;
            font-size: .7rem;
            text-transform: uppercase;
            letter-spacing: .14em;
            color: var(--text-2);
        }

        .mmenu .btn {
            margin-top: 18px;
            border-bottom: 0;
            color: #fff;
        }

        /* ---------- Responsive ---------- */

        @media (max-width: 1060px) {

            .hero-grid,
            .shead {
                grid-template-columns: 1fr;
            }

            .shead {
                align-items: start;
                gap: 20px;
            }

            .hero-grid {
                gap: 42px;
            }

            .app-body {
                grid-template-columns: 172px 1fr;
            }

            .foot-grid {
                grid-template-columns: 1fr 1fr;
                gap: 32px;
            }

            .row-i {
                grid-template-columns: 44px 1fr;
            }

            .row-i p {
                grid-column: 2;
            }
        }

        @media (max-width: 860px) {

            .c-3,
            .tiers {
                grid-template-columns: 1fr 1fr;
            }

            .kpis {
                grid-template-columns: 1fr 1fr;
            }

            .tier.feat {
                grid-column: 1 / -1;
            }
        }

        @media (max-width: 760px) {

            .nav-links,
            .nav-actions .login {
                display: none;
            }

            .burger {
                display: block;
            }

            .hero {
                padding-top: 104px;
            }

            .app-body {
                grid-template-columns: 1fr;
            }

            .app-side {
                display: none;
            }

            .app-split {
                grid-template-columns: 1fr;
            }
        }

        @media (max-width: 620px) {

            .c-2,
            .c-3,
            .tiers,
            .frow,
            .opts,
            .stats {
                grid-template-columns: 1fr;
            }

            .kpis {
                grid-template-columns: 1fr 1fr;
            }

            .foot-grid {
                grid-template-columns: 1fr;
            }

            .nav-actions .btn-blue {
                display: none;
            }

            .row-i {
                grid-template-columns: 1fr;
                gap: 10px;
            }
        }

/* ============================================================
   PROSE — legal / long-form content pages
   ============================================================ */

.prose {
    max-width: 780px;
}

.prose h2 {
    font-size: clamp(1.25rem, 2vw, 1.6rem);
    margin: 46px 0 14px;
    letter-spacing: -.032em;
}

.prose h2:first-child {
    margin-top: 0;
}

.prose h3 {
    font-size: 1.02rem;
    font-weight: 600;
    margin: 28px 0 10px;
}

.prose p {
    color: var(--text-2);
    line-height: 1.75;
    margin-bottom: 14px;
}

.prose ul {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}

.prose ul li {
    color: var(--text-2);
    line-height: 1.75;
    padding-left: 22px;
    position: relative;
    margin-bottom: 7px;
}

.prose ul li::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 12px;
    width: 6px;
    height: 6px;
    background: var(--blue);
    border-radius: 2px;
}

.prose strong {
    color: var(--text);
    font-weight: 600;
}

.prose a {
    color: var(--blue);
    text-decoration: underline;
}

/* Page hero for secondary pages */
.page-hero {
    padding: 132px 0 clamp(34px, 5vw, 60px);
}

.page-hero h1 {
    font-size: clamp(2.2rem, 4.6vw, 3.6rem);
}

.page-hero .meta {
    font-family: 'IBM Plex Mono', monospace;
    font-size: .66rem;
    text-transform: uppercase;
    letter-spacing: .16em;
    color: var(--text-3);
    margin-top: 20px;
}

/* Principles list */
.prin {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

@media (max-width: 760px) {
    .prin {
        grid-template-columns: 1fr;
    }
}
