/**
 * Skynet AI front page
 *
 * Evidence-led, six-section homepage. This file is intentionally isolated from
 * the legacy homepage systems so the production cascade has one late owner.
 */

.home {
    --skynet-page: #f5f7fb;
    --skynet-surface: #ffffff;
    --skynet-ink: #10213a;
    --skynet-muted: #52647a;
    --skynet-navy: #07111f;
    --skynet-navy-soft: #0b1728;
    --skynet-border: #d8e0ea;
    --skynet-blue: #1769e0;
    --skynet-blue-dark: #0d4fae;
    --skynet-blue-pale: #eaf2ff;
    --skynet-verified: #0b6b47;
    --skynet-verified-pale: #e8f6f0;
    --skynet-review: #9a5b00;
    --skynet-review-pale: #fff3d9;
    --skynet-blocked: #b82e43;
    --skynet-blocked-pale: #fdecef;
    --skynet-shadow: 0 20px 48px rgba(16, 33, 58, 0.1);
    /* THE grid measure. The header inner row and every section shell consume
       this token and nothing else, so the logo and the headline beneath it can
       never sit on different left edges. Previously each side carried its own
       copy of `min(1760px, 100% - clamp(40px,6vw,128px))`; the header's copy was
       silently capped by the global `.site-header__inner{max-width:1600px}` while
       the shell's was not, so past ~1728px the two drifted 80px apart with no
       error anywhere. Matching the site-wide 1600px container also keeps the
       front page on the same edge as every other template.
       Locked by skynet_responsive_audit's NAV_CONTENT_GRID_MISALIGNED check. */
    --skynet-measure: min(90%, var(--container-max-width, 1600px));
    background: var(--skynet-page);
    color: var(--skynet-ink);
    margin: 0;
    min-width: 320px;
    overflow-x: hidden;
}

.home .site-main {
    display: block;
    overflow: clip;
}

/* ── SITE HEADER ─────────────────────────────────────────────────────────────
   Deliberately EMPTY of header styling. The header is a shared component and is
   now rendered by the real theme module (`assets/css/modules/header-navigation.css`,
   enqueued for the front page in functions.php). The 24 rules that used to live
   here were a local re-implementation standing in for the theme's 290, which is
   why the front page lost the glass surface, the nav pill, the search field and
   the subscribe CTA that every other template shows.

   Only two front-page-specific header concerns remain, and both are about the
   PAGE, not the header's appearance: keeping the logo on the shared grid measure,
   and clearing the theme's position:fixed header so the hero is not underlapped. */

.home .site-header__inner {
    /* Bind the shared header to this page's grid so the logo, the headline and the
       footer all sit on ONE left edge — see --skynet-measure. */
    width: var(--skynet-measure);
    max-width: var(--skynet-measure);
    padding-inline: 0;
}

/* Restore the 44px touch floor on the header controls.
   `!important` is deliberate and is the ONLY way here: under 767px the theme sets
   `min-width/min-height/width/height: 40px !important` on these buttons, which
   overrides its OWN accessibility module (`a, button, input { min-height: 44px }`).
   The theme is internally inconsistent on this point and the accessible value is
   the one that should win. Measured by skynet_responsive_audit's
   TAP_TARGET_TOO_SMALL at 390px and 360px. */
.home .site-header__actions :is(.theme-toggle, .newsletter-cta, .header-search-toggle, .nav-toggle) {
    min-height: 44px !important;
    min-width: 44px !important;
}

/* ── HEADER SURFACE ──────────────────────────────────────────────────────────
   The header is WHITE, exactly as the theme designs it and as every other
   template renders it. The only thing this page has to supply is an opaque
   surface for it to sit on: the theme's default is `rgba(255,255,255,0.2)`
   glass, which works over the light pages it was designed for, but over this
   page's navy hero that 20% white resolves to a dark panel and the theme's dark
   ink (#1a1a1a) then reads dark-on-dark. Raising the surface to near-opaque
   white keeps the header white and the theme's own ink, pill, search field and
   CTA all legible with no colour overrides at all. */
.home .site-header {
    /* Set the theme's OWN token, do not override the background. The theme paints
       the header as `rgba(var(--color-white-rgb), var(--aiwp-header-bg-alpha))`
       with `!important`, so any background override here loses no matter how
       specific it is — the supported knob is the alpha token.
       The default 0.2 is tuned for the light pages the header normally sits over.
       Over this page's navy hero, 20% white composites to a dark panel while the
       theme's dark ink stays #1a1a1a — measured 1.64:1 against the rendered
       pixels, which is the "barely visible, dark on dark" defect. Raising the
       alpha makes the header an actual surface: WHITE in the light theme and
       solid dark in the dark theme, because the same token feeds
       `--color-white-rgb` and `--color-black-rgb` respectively. One token, both
       themes, zero colour overrides. */
    --aiwp-header-bg-alpha: 0.96;
}

/* Fixed-header clearance. Deliberately scoped `.home .skynet-hero` (0,0,2,0) so it
   outranks the section-rhythm rules further down that set `padding-block` per
   breakpoint (0,0,1,0). This is NOT a duplicate of that rhythm — it is a
   page-level constraint (the header is position:fixed and would otherwise cover
   the kicker), and it must survive every breakpoint's rhythm retune. Bottom
   padding is left entirely to those rules. */
.home .skynet-hero {
    padding-top: calc(var(--header-height, 80px) + clamp(28px, 3vw, 56px));
}

.home .site-footer,
.home .site-footer p,
.home .site-footer a,
.home .site-footer span,
.home .site-footer small,
.home .site-footer__copyright {
    font-size: 13px;
}

.home .site-footer {
    background: var(--skynet-surface);
    border-top: 1px solid var(--skynet-border);
    color: var(--skynet-muted);
    padding: 22px 0;
}

.home .site-footer .container {
    margin-inline: auto;
    /* Third consumer of the ONE measure. Header, shells and footer must land on
       the same left edge or the page reads as three stacked templates. */
    width: var(--skynet-measure);
}

.home .site-footer__meta,
.home .site-footer .container {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 26px;
    justify-content: space-between;
}

.home .site-footer__brandline {
    color: var(--skynet-ink);
    font-weight: 850;
    letter-spacing: 0.08em;
}

.home .site-footer__nav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.home .site-footer a {
    align-items: center;
    color: var(--skynet-ink);
    display: inline-flex;
    font-weight: 700;
    min-height: 44px;
    padding: 8px;
}

.skynet-front,
.skynet-front *,
.skynet-front *::before,
.skynet-front *::after {
    box-sizing: border-box;
}

.skynet-front {
    background: var(--skynet-page);
    color: var(--skynet-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.6;
}

.skynet-front a {
    color: inherit;
    text-decoration: none;
}

/* Element reset, deliberately kept at ZERO specificity via :where().
   Written flat (`.skynet-front p`) this reset scores 0,0,1,1 and silently BEATS
   every single-class component rule (`.skynet-hero__note`, 0,0,1,0) further down
   the file — the authored margin computes to 0 and the declaration is dead with
   no error anywhere. That defect shipped live: hero lead 28px, hero note 26px,
   run-card steps 4px, and both subscribe paragraphs 12px all rendered flush.
   The SCOPE goes inside :where() too. `.skynet-front :where(p, ...)` still scores
   0,0,1,0 from `.skynet-front` alone, which merely TIES a component class and
   leaves source order to break it — one bundler reorder and every margin dies
   again. Both CDP advisors flagged that tie independently (2026-07-31 review).
   `:where(.skynet-front) :where(...)` is genuinely 0,0,0,0, so any component rule
   wins on specificity regardless of bundling or source order.
   Locked by skynet_responsive_audit's DEAD_SPACING_DECLARATION check. */
:where(.skynet-front) :where(p, h1, h2, h3, ol, ul, dl, dd) {
    margin: 0;
}

:where(.skynet-front) :where(p) {
    max-width: 68ch;
}

.skynet-front ol,
.skynet-front ul {
    padding: 0;
}

.skynet-front li {
    list-style: none;
}

.skynet-front button,
.skynet-front input {
    font: inherit;
}

.skynet-front button,
.skynet-front a,
.skynet-front input {
    touch-action: manipulation;
}

.skynet-front :focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 3px;
}

.skynet-shell {
    /* Same token as the header row — see --skynet-measure. Never inline a
       measure here; two copies of a grid always drift. */
    width: var(--skynet-measure);
    margin-inline: auto;
}

.skynet-hero,
.skynet-evidence,
.skynet-workflow,
.skynet-cases,
.skynet-economics,
.skynet-dispatches {
    position: relative;
    isolation: isolate;
}

.skynet-kicker {
    color: var(--skynet-blue-dark);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.skynet-state {
    align-items: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 800;
    justify-content: center;
    letter-spacing: 0.02em;
    line-height: 1;
    min-height: 30px;
    padding: 7px 11px;
}

.skynet-state--verified {
    background: var(--skynet-verified-pale);
    color: var(--skynet-verified);
}

.skynet-state--review {
    background: var(--skynet-review-pale);
    color: var(--skynet-review);
}

.skynet-state--blocked {
    background: var(--skynet-blocked-pale);
    color: var(--skynet-blocked);
}

.skynet-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.skynet-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 10px;
    display: inline-flex;
    font-size: 15px;
    font-weight: 800;
    justify-content: center;
    line-height: 1.25;
    min-height: 48px;
    padding: 13px 19px;
    transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.skynet-button:hover {
    transform: translateY(-2px);
}

.skynet-button--primary {
    background: var(--skynet-blue);
    color: #ffffff;
}

.skynet-button--primary:hover {
    background: var(--skynet-blue-dark);
    color: #ffffff;
}

.skynet-button--quiet {
    background: transparent;
    border-color: #708095;
    color: #ffffff;
}

.skynet-button--quiet:hover {
    background: #ffffff;
    border-color: #ffffff;
    color: var(--skynet-navy);
}

.skynet-button--light {
    background: #ffffff;
    border-color: #ffffff;
    color: var(--skynet-navy);
}

.skynet-economics .skynet-button--light {
    color: var(--skynet-navy);
}

.skynet-button--light:hover {
    background: var(--skynet-blue-pale);
    border-color: var(--skynet-blue-pale);
}

.skynet-text-link {
    align-items: center;
    color: var(--skynet-blue-dark);
    display: inline-flex;
    font-size: 15px;
    font-weight: 800;
    gap: 8px;
    min-height: 44px;
    text-decoration: underline;
    text-decoration-color: rgba(13, 79, 174, 0.35);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.skynet-text-link:hover {
    color: var(--skynet-blue);
    text-decoration-color: currentColor;
}

.skynet-text-link--on-dark {
    color: #bcd6ff;
}

.skynet-section-heading {
    max-width: 760px;
}

.skynet-section-heading .skynet-kicker {
    margin-bottom: 14px;
}

.skynet-section-heading h2 {
    color: var(--skynet-ink);
    font-size: clamp(36px, 3vw, 48px);
    font-weight: 780;
    letter-spacing: -0.045em;
    line-height: 1.06;
    max-width: 18ch;
}

.skynet-section-heading > p:not(.skynet-kicker),
.skynet-section-heading--split > p {
    color: var(--skynet-muted);
    font-size: 18px;
    line-height: 1.65;
    margin-top: 22px;
    max-width: 66ch;
}

.skynet-section-heading--split {
    align-items: end;
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr);
    max-width: none;
}

.skynet-section-heading--split > p {
    margin-top: 0;
}

.skynet-section-heading--compact h2 {
    font-size: clamp(32px, 2.4vw, 42px);
}

/* Hero */

.skynet-hero {
    background: var(--skynet-navy);
    color: #ffffff;
    min-height: min(760px, calc(100vh - 72px));
    overflow: hidden;
    padding: clamp(64px, 6vw, 92px) 0;
}

.skynet-hero::before {
    background: var(--skynet-blue);
    content: "";
    height: 4px;
    left: 0;
    position: absolute;
    top: 0;
    width: 34%;
}

.skynet-hero__grid {
    align-items: center;
    display: grid;
    gap: clamp(48px, 6vw, 112px);
    grid-template-columns: minmax(0, 0.92fr) minmax(520px, 1.08fr);
}

.skynet-hero__copy {
    max-width: 760px;
}

.skynet-hero .skynet-kicker {
    color: #8fc0ff;
    margin-bottom: 22px;
}

.skynet-hero h1 {
    color: #ffffff;
    font-size: clamp(56px, 4.15vw, 76px);
    font-weight: 790;
    letter-spacing: -0.055em;
    line-height: 0.99;
    max-width: 15ch;
}

.skynet-hero__lead {
    color: #c4cedc;
    font-size: clamp(18px, 1.35vw, 22px);
    line-height: 1.58;
    margin-top: 28px;
    max-width: 64ch;
}

.skynet-hero .skynet-actions {
    margin-top: 34px;
}

.skynet-hero__note {
    /* Text flow, not flex. As a flex container the bare sentence becomes one
       anonymous full-width item, so the state chip is pushed onto a line of its
       own and reads as a stray label. In normal flow the chip leads the first
       line and the sentence wraps under it, which is what it actually means. */
    color: #aebac9;
    display: block;
    font-size: 14px;
    line-height: 1.7;
    margin-top: 26px;
}

.skynet-hero__note > .skynet-state {
    /* Sized to sit INSIDE this paragraph's 23.8px line box. A chip taller than
       its line box overflows the line, so it looks unmargined and shoves the
       sentence away — the exact defect skynet_responsive_audit flags as
       INLINE_CHIP_BREAKS_LINE_BOX. */
    display: inline-flex;
    font-size: 12.5px;
    margin-right: 10px;
    /* .skynet-state sets min-height:30px, which wins over height — override it
       here or the chip keeps overflowing this paragraph's line box. */
    min-height: 0;
    height: 22px;
    padding: 0 9px;
    vertical-align: middle;
}

.skynet-run-card {
    background: var(--skynet-surface);
    border: 1px solid #27374e;
    border-radius: 22px;
    box-shadow: 0 28px 72px rgba(0, 0, 0, 0.32);
    color: var(--skynet-ink);
    display: block;
    padding: clamp(24px, 2.3vw, 40px);
    position: relative;
}

.skynet-run-card:hover {
    border-color: #74a8ef;
}

.skynet-run-card__header {
    align-items: start;
    border-bottom: 1px solid var(--skynet-border);
    display: flex;
    gap: 22px;
    justify-content: space-between;
    padding-bottom: 20px;
}

.skynet-run-card__eyebrow {
    color: var(--skynet-muted);
    display: block;
    font-size: 13px;
    font-weight: 750;
    letter-spacing: 0.08em;
    line-height: 1.3;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.skynet-run-card__header strong {
    color: var(--skynet-ink);
    display: block;
    font-size: clamp(21px, 1.5vw, 28px);
    letter-spacing: -0.03em;
    line-height: 1.2;
}

.skynet-run-card__steps {
    counter-reset: run;
    margin-top: 4px;
}

.skynet-run-card__steps li {
    align-items: center;
    border-bottom: 1px solid #e7ecf2;
    display: grid;
    gap: 18px;
    grid-template-columns: minmax(90px, 0.35fr) minmax(0, 1fr);
    min-height: 66px;
    padding: 12px 0 12px 34px;
    position: relative;
}

.skynet-run-card__steps li::before {
    background: var(--skynet-verified);
    border: 4px solid var(--skynet-verified-pale);
    border-radius: 50%;
    content: "";
    height: 16px;
    left: 2px;
    position: absolute;
    top: 25px;
    width: 16px;
}

.skynet-run-card__steps li:not(:last-child)::after {
    background: #b9c6d6;
    content: "";
    height: 38px;
    left: 9px;
    position: absolute;
    top: 41px;
    width: 2px;
}

.skynet-run-card__steps span {
    color: var(--skynet-muted);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.skynet-run-card__steps strong {
    color: var(--skynet-ink);
    font-size: 15px;
    line-height: 1.35;
}

.skynet-run-card__link {
    color: var(--skynet-blue-dark);
    display: inline-flex;
    font-size: 14px;
    font-weight: 800;
    gap: 8px;
    margin-top: 20px;
    min-height: 44px;
    align-items: center;
}

/* Evidence */

.skynet-evidence {
    background: var(--skynet-surface);
    border-bottom: 1px solid var(--skynet-border);
    padding: clamp(58px, 5vw, 76px) 0;
}

.skynet-evidence__layout {
    align-items: center;
    display: grid;
    gap: clamp(42px, 6vw, 96px);
    grid-template-columns: minmax(320px, 0.72fr) minmax(0, 1.28fr);
}

.skynet-evidence__grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.skynet-evidence__grid li {
    background: var(--skynet-page);
    border: 1px solid var(--skynet-border);
    border-radius: 14px;
    min-height: 150px;
    padding: 20px;
}

.skynet-evidence__mark {
    align-items: center;
    background: var(--skynet-verified-pale);
    border-radius: 8px;
    color: var(--skynet-verified);
    display: inline-flex;
    font-size: 14px;
    font-weight: 850;
    height: 34px;
    justify-content: center;
    margin-bottom: 18px;
    width: 34px;
}

.skynet-evidence__grid strong {
    color: var(--skynet-ink);
    display: block;
    font-size: 16px;
    line-height: 1.25;
}

.skynet-evidence__grid li div span {
    color: var(--skynet-muted);
    display: block;
    font-size: 14px;
    line-height: 1.45;
    margin-top: 8px;
}

/* Workflow */

.skynet-workflow {
    padding: clamp(68px, 5.5vw, 88px) 0;
}

.skynet-workflow__board {
    background: var(--skynet-navy-soft);
    border: 1px solid #263951;
    border-radius: 22px;
    box-shadow: var(--skynet-shadow);
    color: #ffffff;
    margin-top: 48px;
    overflow: hidden;
}

.skynet-workflow__rail {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.skynet-stage {
    border-right: 1px solid #2d4058;
    min-height: 214px;
    padding: 24px 20px;
    position: relative;
}

.skynet-stage:last-child {
    border-right: 0;
}

.skynet-stage::after {
    background: #4b6079;
    content: "";
    height: 2px;
    position: absolute;
    right: -14px;
    top: 48px;
    width: 28px;
    z-index: 2;
}

.skynet-stage:last-child::after {
    display: none;
}

.skynet-stage--verified {
    background: #0d2b27;
}

.skynet-stage__label {
    color: #8fc0ff;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 40px;
    text-transform: uppercase;
}

.skynet-stage strong {
    color: #ffffff;
    display: block;
    font-size: 17px;
    line-height: 1.3;
}

.skynet-stage > span:last-child {
    color: #aebdce;
    display: block;
    font-size: 14px;
    line-height: 1.4;
    margin-top: 10px;
}

.skynet-workflow__proof {
    border-top: 1px solid #2d4058;
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.skynet-workflow__proof > div {
    background: #101d2e;
    min-height: 178px;
    padding: 24px;
}

.skynet-workflow__proof strong {
    display: block;
    font-size: 16px;
    margin-top: 16px;
}

.skynet-workflow__proof p {
    color: #acbbcd;
    font-size: 14px;
    line-height: 1.5;
    margin-top: 8px;
}

.skynet-workflow > .skynet-shell > .skynet-text-link {
    margin-top: 20px;
}

/* Cases */

.skynet-cases {
    background: var(--skynet-surface);
    border-block: 1px solid var(--skynet-border);
    padding: clamp(68px, 5.5vw, 88px) 0;
}

.skynet-cases__grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 48px;
}

.skynet-case {
    background: var(--skynet-page);
    border: 1px solid var(--skynet-border);
    border-radius: 18px;
    display: flex;
    flex-direction: column;
    min-height: 520px;
    padding: clamp(24px, 2.2vw, 36px);
}

.skynet-case__top {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
}

.skynet-case__code {
    align-items: center;
    background: var(--skynet-navy);
    border-radius: 9px;
    color: #ffffff;
    display: inline-flex;
    font-size: 14px;
    font-weight: 850;
    height: 44px;
    justify-content: center;
    letter-spacing: 0.04em;
    width: 44px;
}

.skynet-case h3 {
    color: var(--skynet-ink);
    font-size: clamp(24px, 1.8vw, 31px);
    letter-spacing: -0.035em;
    line-height: 1.12;
    margin-top: 28px;
    max-width: 19ch;
}

.skynet-case > p {
    color: var(--skynet-muted);
    font-size: 16px;
    line-height: 1.58;
    margin-top: 18px;
}

.skynet-case dl {
    border-top: 1px solid var(--skynet-border);
    margin-top: 24px;
    padding-top: 8px;
}

.skynet-case dl div {
    display: grid;
    gap: 12px;
    grid-template-columns: 76px minmax(0, 1fr);
    padding-top: 12px;
}

.skynet-case dt {
    color: var(--skynet-muted);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.skynet-case dd {
    color: var(--skynet-ink);
    font-size: 14px;
    line-height: 1.42;
}

.skynet-case > a {
    align-items: center;
    color: var(--skynet-blue-dark);
    display: inline-flex;
    font-size: 15px;
    font-weight: 800;
    gap: 8px;
    margin-top: auto;
    min-height: 44px;
    padding-top: 24px;
}

/* Economics */

.skynet-economics {
    background: var(--skynet-navy);
    color: #ffffff;
    padding: clamp(68px, 5.5vw, 88px) 0;
}

.skynet-economics__layout {
    align-items: center;
    display: grid;
    gap: clamp(48px, 7vw, 120px);
    grid-template-columns: minmax(0, 0.8fr) minmax(560px, 1.2fr);
}

.skynet-economics .skynet-kicker {
    color: #8fc0ff;
}

.skynet-economics .skynet-section-heading h2 {
    color: #ffffff;
    max-width: 16ch;
}

.skynet-economics .skynet-section-heading > p:not(.skynet-kicker) {
    color: #b8c4d2;
}

.skynet-economics .skynet-actions {
    margin-top: 30px;
}

.skynet-economics__compare {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.skynet-economics__compare article {
    background: #111f31;
    border: 1px solid #2d4058;
    border-radius: 16px;
    min-height: 400px;
    padding: 28px;
}

.skynet-economics__compare .skynet-economics__highlight {
    background: #102b28;
    border-color: #2b735e;
}

.skynet-economics__label {
    color: #91a4ba;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.skynet-economics__compare h3 {
    color: #ffffff;
    font-size: 25px;
    letter-spacing: -0.035em;
    line-height: 1.15;
    margin-top: 18px;
}

.skynet-economics__compare ul {
    border-top: 1px solid #31445a;
    margin-top: 24px;
    padding-top: 10px;
}

.skynet-economics__compare li {
    color: #c5cfdb;
    font-size: 15px;
    line-height: 1.45;
    padding: 11px 0 11px 24px;
    position: relative;
}

.skynet-economics__compare li::before {
    background: #6f839a;
    border-radius: 50%;
    content: "";
    height: 7px;
    left: 2px;
    position: absolute;
    top: 19px;
    width: 7px;
}

.skynet-economics__highlight li::before {
    background: #4cc49a;
}

/* Dispatches */

.skynet-dispatches {
    padding: clamp(68px, 5.5vw, 88px) 0;
}

.skynet-dispatches__grid {
    align-items: start;
    display: grid;
    gap: clamp(32px, 5vw, 72px);
    grid-template-columns: minmax(0, 1.18fr) minmax(390px, 0.82fr);
    margin-top: 48px;
}

.skynet-featured-dispatch {
    background: var(--skynet-surface);
    border: 1px solid var(--skynet-border);
    border-radius: 18px;
    padding: clamp(26px, 3vw, 44px);
}

.skynet-featured-dispatch__meta {
    align-items: center;
    color: var(--skynet-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    font-weight: 720;
    gap: 10px 18px;
}

.skynet-featured-dispatch__meta span:first-child {
    color: var(--skynet-blue-dark);
    font-weight: 820;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.skynet-featured-dispatch h3 {
    color: var(--skynet-ink);
    font-size: clamp(28px, 2.25vw, 40px);
    letter-spacing: -0.045em;
    line-height: 1.08;
    margin-top: 20px;
    max-width: 24ch;
}

.skynet-featured-dispatch h3 a:hover {
    color: var(--skynet-blue-dark);
}

.skynet-featured-dispatch > p {
    color: var(--skynet-muted);
    font-size: 17px;
    line-height: 1.62;
    margin-top: 18px;
    max-width: 68ch;
}

.skynet-featured-dispatch__takeaways {
    background: var(--skynet-page);
    border-left: 3px solid var(--skynet-blue);
    margin-top: 24px;
    padding: 18px 20px;
}

.skynet-featured-dispatch__takeaways > span {
    color: var(--skynet-ink);
    display: block;
    font-size: 13px;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.skynet-featured-dispatch__takeaways li {
    color: var(--skynet-muted);
    font-size: 14px;
    line-height: 1.45;
    padding: 7px 0 0 22px;
    position: relative;
}

.skynet-featured-dispatch__takeaways li::before {
    color: var(--skynet-verified);
    content: "✓";
    font-weight: 900;
    left: 0;
    position: absolute;
}

.skynet-featured-dispatch > .skynet-text-link {
    margin-top: 18px;
}

.skynet-dispatch-list {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 12px;
}

.skynet-dispatch-list a {
    background: var(--skynet-surface);
    border: 1px solid var(--skynet-border);
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    min-height: 190px;
    padding: 22px;
}

.skynet-dispatch-list a:hover {
    border-color: #8db3e9;
}

.skynet-dispatch-list span {
    color: var(--skynet-blue-dark);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.skynet-dispatch-list strong {
    color: var(--skynet-ink);
    font-size: 18px;
    line-height: 1.3;
    margin-top: 14px;
}

.skynet-dispatch-list time {
    color: var(--skynet-muted);
    font-size: 13px;
    margin-top: auto;
    padding-top: 18px;
}

.skynet-subscribe {
    background: var(--skynet-navy-soft);
    border: 1px solid #263951;
    border-radius: 18px;
    color: #ffffff;
    padding: clamp(26px, 3vw, 42px);
    position: sticky;
    top: 96px;
}

.skynet-subscribe .skynet-kicker {
    color: #8fc0ff;
}

.skynet-subscribe h3 {
    color: #ffffff;
    font-size: clamp(27px, 2vw, 34px);
    letter-spacing: -0.04em;
    line-height: 1.1;
    margin-top: 14px;
}

.skynet-subscribe > p:not(.skynet-kicker):not(.skynet-subscribe__privacy) {
    color: #b9c6d5;
    font-size: 16px;
    line-height: 1.55;
    margin-top: 16px;
}

.skynet-subscribe__form {
    margin-top: 24px;
}

.skynet-subscribe__form > label {
    color: #d8e2ee;
    display: block;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 8px;
}

.skynet-subscribe__row {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
}

.skynet-subscribe__row input {
    background: var(--skynet-surface);
    border: 2px solid #ffffff;
    border-radius: 9px;
    color: var(--skynet-ink);
    font-size: 16px;
    min-height: 50px;
    min-width: 0;
    padding: 11px 14px;
    width: 100%;
}

.skynet-subscribe__row input[aria-invalid="true"] {
    border-color: var(--skynet-blocked);
}

.skynet-subscribe__row button {
    background: var(--skynet-blue);
    border: 0;
    border-radius: 9px;
    color: #ffffff;
    cursor: pointer;
    font-size: 14px;
    font-weight: 820;
    min-height: 50px;
    padding: 11px 17px;
}

.skynet-subscribe__row button:hover {
    background: #2a7bea;
}

.skynet-subscribe__row button:disabled {
    cursor: wait;
    opacity: 0.7;
}

.skynet-honeypot {
    display: none;
}

.skynet-subscribe__response {
    display: none;
    font-size: 14px;
    line-height: 1.45;
    margin-top: 12px;
}

.skynet-subscribe__response.is-success,
.skynet-subscribe__response.is-error {
    display: block;
}

.skynet-subscribe__response.is-success {
    color: #72d9b4;
}

.skynet-subscribe__response.is-error {
    color: #ff9baa;
}

.skynet-subscribe__privacy {
    color: #93a5ba;
    font-size: 13px;
    line-height: 1.45;
    margin-top: 12px;
}

.skynet-final-cta {
    border-top: 1px solid #31445a;
    margin-top: 28px;
    padding-top: 24px;
}

.skynet-final-cta strong {
    color: #ffffff;
    display: block;
    font-size: 19px;
}

.skynet-final-cta p {
    color: #aebdce;
    font-size: 14px;
    line-height: 1.5;
    margin: 8px 0 18px;
}

/* Theme parity */

html[data-theme="dark"] .home,
body.dark-mode.home {
    --skynet-page: #08111d;
    --skynet-surface: #0f1b2a;
    --skynet-ink: #e7edf5;
    --skynet-muted: #a9b7c8;
    --skynet-navy: #050b13;
    --skynet-navy-soft: #0a1524;
    --skynet-border: #2b3c51;
    --skynet-blue-pale: #10294d;
    --skynet-verified-pale: #0d3328;
    --skynet-review-pale: #3d2a09;
    --skynet-blocked-pale: #41131c;
    /* The PALE (surface) halves of each accent were flipped for dark mode but the
       INK halves were not, so kickers, card links and the state chips kept their
       light-mode ink and rendered dark-on-dark — measured 2.11:1 to 2.48:1 against
       WCAG's 4.5:1 floor. An accent needs BOTH halves retuned or it only half
       supports the theme. */
    --skynet-blue-dark: #86b6ff;
    --skynet-verified: #5fd3a3;
    --skynet-review: #f0b74e;
    --skynet-blocked: #ff8fa3;
}

html[data-theme="dark"] .skynet-featured-dispatch,
html[data-theme="dark"] .skynet-dispatch-list a,
body.dark-mode.home .skynet-featured-dispatch,
body.dark-mode.home .skynet-dispatch-list a {
    background: var(--skynet-surface);
}

/* Responsive */

@media (min-width: 2560px) {
    /* No private 2080px measure here. The header row is capped at the site-wide
       1600px container, so widening only the shell is what split the grid in the
       first place. --skynet-measure governs both. */

    .skynet-hero h1 {
        font-size: clamp(72px, 2.4vw, 90px);
    }

    .skynet-section-heading h2 {
        font-size: clamp(44px, 1.6vw, 58px);
    }

    .skynet-front {
        font-size: 20px;
    }

    .skynet-hero__grid {
        grid-template-columns: minmax(0, 0.9fr) minmax(720px, 1.1fr);
    }

    .skynet-run-card__steps li {
        min-height: 74px;
    }

    .skynet-stage {
        min-height: 236px;
        padding: 30px 26px;
    }
}

@media (max-width: 1280px) {
    .skynet-hero__grid {
        gap: 48px;
        grid-template-columns: minmax(0, 0.92fr) minmax(480px, 1.08fr);
    }

    .skynet-hero h1 {
        font-size: clamp(50px, 4.7vw, 64px);
    }

    .skynet-evidence__layout {
        align-items: start;
        grid-template-columns: 0.7fr 1.3fr;
    }

    .skynet-evidence__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .skynet-stage {
        min-height: 230px;
        padding-inline: 16px;
    }

    .skynet-cases__grid {
        gap: 14px;
    }

    .skynet-case {
        min-height: 550px;
    }

    .skynet-economics__layout {
        grid-template-columns: 0.75fr 1.25fr;
    }
}

@media (max-width: 980px) {
    /* Retune the ONE measure, not the header alone — the shells below the header
       must move with it or the grid splits again at this breakpoint. */
    .home {
        --skynet-measure: calc(100% - 36px);
    }

    .skynet-front {
        font-size: 17px;
    }

    .skynet-hero {
        min-height: auto;
    }

    .skynet-hero__grid,
    .skynet-evidence__layout,
    .skynet-economics__layout,
    .skynet-dispatches__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-hero__copy {
        max-width: 740px;
    }

    .skynet-run-card {
        max-width: none;
    }

    .skynet-section-heading--split {
        align-items: start;
        gap: 18px;
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-section-heading--split > p {
        max-width: 66ch;
    }

    .skynet-evidence__layout {
        gap: 34px;
    }

    .skynet-evidence__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .skynet-evidence__grid li {
        min-height: 170px;
        padding: 17px;
    }

    .skynet-workflow__rail {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .skynet-stage {
        border-bottom: 1px solid #2d4058;
        min-height: 190px;
    }

    .skynet-stage:nth-child(3) {
        border-right: 0;
    }

    .skynet-stage::after {
        display: none;
    }

    .skynet-cases__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-case {
        display: grid;
        gap: 0 34px;
        grid-template-columns: minmax(0, 0.9fr) minmax(260px, 1.1fr);
        min-height: 0;
    }

    .skynet-case__top,
    .skynet-case h3,
    .skynet-case > p {
        grid-column: 1;
    }

    .skynet-case dl,
    .skynet-case > a {
        grid-column: 2;
    }

    .skynet-case dl {
        grid-row: 1 / span 3;
        margin-top: 0;
    }

    .skynet-case > a {
        align-self: end;
        grid-row: 4;
    }

    .skynet-economics__compare {
        max-width: 760px;
    }

    .skynet-subscribe {
        position: static;
    }
}

@media (max-width: 720px) {
    .home {
        --skynet-measure: calc(100% - 32px);
    }

    .home .site-footer {
        padding-block: 18px;
    }

    /* footer width intentionally omitted — --skynet-measure already retunes here */

    .home .site-footer__meta,
    .home .site-footer .container {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .skynet-hero,
    .skynet-evidence,
    .skynet-workflow,
    .skynet-cases,
    .skynet-economics,
    .skynet-dispatches {
        padding-block: 54px;
    }

    .skynet-hero {
        padding-top: 62px;
    }

    .skynet-hero::before {
        width: 56%;
    }

    .skynet-hero__grid {
        gap: 38px;
    }

    .skynet-hero h1 {
        font-size: clamp(38px, 10.8vw, 42px);
        letter-spacing: -0.05em;
        line-height: 1.02;
    }

    .skynet-hero__lead {
        font-size: 17px;
        margin-top: 22px;
    }

    .skynet-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .skynet-button {
        width: 100%;
    }

    .skynet-hero__note {
        align-items: center;
    }

    .skynet-run-card {
        border-radius: 16px;
        padding: 20px;
    }

    .skynet-run-card__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }

    .skynet-run-card__steps li {
        gap: 4px;
        grid-template-columns: minmax(0, 1fr);
        min-height: 76px;
        padding-left: 30px;
    }

    .skynet-run-card__steps li::before {
        top: 29px;
    }

    .skynet-run-card__steps li:not(:last-child)::after {
        height: 46px;
        top: 45px;
    }

    .skynet-run-card__steps strong {
        font-size: 14px;
    }

    .skynet-section-heading h2,
    .skynet-section-heading--compact h2 {
        font-size: clamp(28px, 8vw, 32px);
        line-height: 1.1;
        max-width: 20ch;
    }

    .skynet-section-heading > p:not(.skynet-kicker),
    .skynet-section-heading--split > p {
        font-size: 17px;
        margin-top: 16px;
    }

    .skynet-evidence__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .skynet-evidence__grid li {
        min-height: 156px;
    }

    .skynet-workflow__board,
    .skynet-cases__grid,
    .skynet-dispatches__grid {
        margin-top: 34px;
    }

    .skynet-workflow__rail {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-stage {
        border-bottom: 1px solid #2d4058;
        border-right: 0;
        min-height: 0;
        padding: 18px 20px;
    }

    .skynet-stage__label {
        margin-bottom: 8px;
    }

    .skynet-workflow__proof {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-workflow__proof > div {
        border-bottom: 1px solid #2d4058;
        min-height: 0;
        padding: 20px;
    }

    .skynet-case {
        display: flex;
        min-height: 0;
    }

    .skynet-case h3,
    .skynet-case dl,
    .skynet-case > a {
        grid-column: auto;
        grid-row: auto;
    }

    .skynet-case h3 {
        font-size: 26px;
    }

    .skynet-economics__compare {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-economics__compare article {
        min-height: 0;
    }

    .skynet-dispatch-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-dispatch-list a {
        min-height: 150px;
    }

    .skynet-subscribe__row {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-subscribe__row button {
        min-height: 50px;
    }
}

@media (max-width: 420px) {

    .skynet-hero,
    .skynet-evidence,
    .skynet-workflow,
    .skynet-cases,
    .skynet-economics,
    .skynet-dispatches {
        padding-block: 42px;
    }

    .skynet-evidence__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .skynet-evidence__grid li {
        align-items: center;
        display: grid;
        gap: 16px;
        grid-template-columns: 40px minmax(0, 1fr);
        min-height: 0;
        padding: 16px;
    }

    .skynet-evidence__mark {
        margin-bottom: 0;
    }

    .skynet-case,
    .skynet-featured-dispatch,
    .skynet-subscribe {
        padding: 20px;
    }

    .skynet-case dl {
        display: none;
    }

    .skynet-stage {
        padding-block: 14px;
    }

    .skynet-stage > span:last-child {
        display: none;
    }

    .skynet-run-card__steps li {
        min-height: 68px;
    }

    .skynet-run-card__steps li::before {
        top: 25px;
    }

    .skynet-run-card__steps li:not(:last-child)::after {
        height: 38px;
        top: 41px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .skynet-front *,
    .skynet-front *::before,
    .skynet-front *::after {
        scroll-behavior: auto;
        transition-duration: 0.01ms;
    }
}
