/* The Turbo brand on the landing, as the NuSource Terra book sets it (3 November 2026). Loaded after
   landing-local.css and scoped to the landing, so the page's layout and components stay as they are: this sheet
   only re-points the palette, the type roles and the corners. ?parity disables it with landing-local.

   Palette: white paper, a warm panel behind cards and figures, a cool near-black ink, hairlines, and one red
   accent for actions and links. Type: PP Neue Montreal Medium for the H1 and display lines, Archivo for H2 to H6
   and labels (400 for H2 and H3, 550 for small titles, 450 for labels), Creato Display for the body. Square
   corners; only true circles (dots, avatars, the play button, round icon buttons) stay round, and the hero keeps
   Spartan's rounded panel and its rounded card. No mono, no all caps, no pills. */

@font-face { font-family: "Creato Display"; font-weight: 400; src: url("../fonts/CreatoDisplay-Regular.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Creato Display"; font-weight: 500; src: url("../fonts/CreatoDisplay-Medium.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "Creato Display"; font-weight: 400; font-style: italic; src: url("../fonts/CreatoDisplay-RegularItalic.woff2") format("woff2"); font-display: swap; }

/* ── Palette: the site's semantic tokens, re-pointed for this page. landing-local.css routes every Spartan colour
   through these, so the page zones, the stage bands, the nav and its action all follow. ── */
body.page-landing {
  --ground: #FFFFFF; --ground-2: #F8F7F3; --ground-3: #F8F7F3;
  --ink: #2E2E31; --ink-2: #676667; --ink-3: #676667;
  --line: #E3E2DE; --line-faint: color-mix(in srgb, #E3E2DE 50%, transparent);
  --accent: #F26045; --accent-ink: #F26045; --on-accent: #FFFFFF;
  --inverse-ground: #2E2E31; --inverse-ground-2: #343437; --inverse-ground-3: #3A3A3D;
  --inverse-ink: #F8F7F3; --inverse-ink-2: color-mix(in srgb, #F8F7F3 72%, transparent);
  --stage: #2E2E31; --stage-2: #3A3A3D; --stage-ink: #F8F7F3;
  --art-invert: 0;
  --turbo-paper: #F8F7F3; --obsidian: #2E2E31; --night: #232325;
}
:root[data-theme="dark"] body.page-landing,
:root:not([data-theme="light"]) body.page-landing { /* dark is also the default when the system prefers it */
  --ground: #232325; --ground-2: #2A2A2D; --ground-3: #2A2A2D;
  --ink: #F2F1ED; --ink-2: #A3A29E; --ink-3: #A3A29E;
  --line: #3A3A3D; --line-faint: color-mix(in srgb, #3A3A3D 50%, transparent);
  --inverse-ground: #F8F7F3; --inverse-ground-2: #F2F1ED; --inverse-ground-3: #FFFFFF;
  --inverse-ink: #2E2E31; --inverse-ink-2: #676667;
  --stage: #1C1C1E; --stage-2: #2A2A2D; --stage-ink: #F2F1ED;
  --art-invert: 1;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme]) body.page-landing {
    --ground: #FFFFFF; --ground-2: #F8F7F3; --ground-3: #F8F7F3;
    --ink: #2E2E31; --ink-2: #676667; --ink-3: #676667;
    --line: #E3E2DE; --line-faint: color-mix(in srgb, #E3E2DE 50%, transparent);
    --inverse-ground: #2E2E31; --inverse-ground-2: #343437; --inverse-ground-3: #3A3A3D;
    --inverse-ink: #F8F7F3; --inverse-ink-2: color-mix(in srgb, #F8F7F3 72%, transparent);
    --stage: #2E2E31; --stage-2: #3A3A3D; --stage-ink: #F8F7F3;
    --art-invert: 0;
  }
}

/* ── Type. Framer sets a text style's face through --framer-font-family on its preset class, and the code
   components (the scroll-lit lines, the count) through an inline font-family. ── */
body.page-landing #main {
  --tb-display: "PP Neue Montreal", system-ui, sans-serif;
  --tb-head: "Archivo", system-ui, sans-serif;
  --tb-body: "Creato Display", system-ui, sans-serif;
}
/* Body: every remaining Inter Display text, preset or inline, is Creato Display (it has 400 and 500, so 300 reads
   as 400). */
body.page-landing #main .framer-text { --framer-font-family: var(--tb-body); }
body.page-landing #main :is(.framer-styles-preset-ull0yy, .framer-styles-preset-vad88t, .framer-styles-preset-g3iomj,
  .framer-styles-preset-1nxcxpz, .framer-styles-preset-17n3pxf, .framer-styles-preset-1r86tz6, .framer-styles-preset-16efy98) {
  --framer-font-family: var(--tb-body); --framer-font-weight: 400;
}
body.page-landing #main [style*="Inter Display"] { font-family: var(--tb-body) !important; }
/* Display: the H1 and its muted audience line, the Services and Design statements, and the two scroll-lit lines. */
body.page-landing #main :is(.framer-styles-preset-1e6stfs, .framer-styles-preset-1e3vt5c, .framer-styles-preset-1u6xmx3),
body.page-landing #main .framer-styles-preset-1e6stfs .framer-text {
  --framer-font-family: var(--tb-display); --framer-font-weight: 500; --framer-letter-spacing: -0.02em;
}
/* Spartan tracks Inter Display at about -0.036em; Neue Montreal sets tighter, so the display lines take the
   book's -0.02em. */
body.page-landing #main :is(.framer-epleic-container, .framer-1iccwkb-container) > p[style] {
  font-family: var(--tb-display) !important; font-weight: 500 !important; letter-spacing: -0.02em !important;
}
/* H2 and H3: Archivo 400. */
body.page-landing #main :is(.framer-styles-preset-6s66nj, .framer-styles-preset-1mi7kdp) {
  --framer-font-family: var(--tb-head); --framer-font-weight: 400;
}
/* Small titles (H4, the card heads, the engagement steps' names): Archivo 550. */
body.page-landing #main :is(.framer-styles-preset-3kxvma, .framer-styles-preset-1lvxtxq, .framer-styles-preset-6t1nbp),
body.page-landing #main .framer-styles-preset-1r86tz6 strong {
  --framer-font-family: var(--tb-head); --framer-font-weight: 550;
}
body.page-landing #main .framer-styles-preset-1r86tz6 strong { font-family: var(--tb-head); font-weight: 550; }
/* Figures (the 2,000+ count and the percentages): Archivo, as the kit sets figures. */
body.page-landing #main .framer-lbcy4s-container > p[style],
body.page-landing #main div[style*="font-size: 33px"] { font-family: var(--tb-head) !important; }
/* The mono labels the template sets inline (the Design tiles' names and lines): Archivo 450, sentence case. */
body.page-landing #main [style*="IBM Plex Mono"], body.page-landing #main [style*="Geist Mono"] {
  --framer-font-family: var(--tb-head) !important; --framer-text-transform: none !important;
  --framer-letter-spacing: 0em !important; --framer-font-weight: 450 !important;
}

/* ── Corners: square everywhere on the page, and no glass. The true circles keep their shape: the slideshow and
   icon buttons, the avatars, the status dots and the play button. So does the hero: its panel (framer-1w8qob2)
   and the "What is forward-deployed engineering?" card (framer-ErT1I) with everything inside it keep Spartan's
   radii. ── */
body.page-landing #main *:not(.framer-a4pkw8, .turbo-quote-avatar, .framer-6nxyav, .framer-xclrkt, .framer-ms8hsd,
  .framer-1j695j9, .framer-1i5stmk, .framer-1jy5hak, .framer-2yxbut, .framer-1x2mbc4, .framer-45cjkf, .framer-9y9ac2,
  .framer-1w8qob2, .framer-ErT1I, .framer-ErT1I *) {
  border-radius: 0 !important;
}
body.page-landing #main :is(.framer-a4pkw8, .turbo-quote-avatar, .framer-6nxyav, .framer-xclrkt, .framer-ms8hsd,
  .framer-1j695j9, .framer-1i5stmk, .framer-1jy5hak, .framer-2yxbut, .framer-1x2mbc4, .framer-45cjkf, .framer-9y9ac2) * {
  border-radius: inherit !important;
}
body.page-landing #main * { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }

/* ── Tracking. Spartan tracks most of its text tighter than these faces want; Archivo headings take -0.01em and
   the small titles none. ── */
body.page-landing #main :is(.framer-styles-preset-6s66nj, .framer-styles-preset-1mi7kdp) { --framer-letter-spacing: -0.01em !important; }
body.page-landing #main :is(.framer-styles-preset-3kxvma, .framer-styles-preset-1lvxtxq, .framer-styles-preset-6t1nbp) { --framer-letter-spacing: 0em !important; }
body.page-landing #main .framer-text:not([class*="framer-styles-preset"]) { --framer-letter-spacing: -0.005em; }
/* The H1's muted audience line is a span inside it and keeps the display tracking. */
body.page-landing #main .framer-styles-preset-1e6stfs .framer-text { --framer-letter-spacing: -0.02em !important; }

/* ── The one action. "Start the conversation" (the button's primary variant: hero, FAQ, footer) fills with the
   red; its label stays white in both themes and its icon box stays paper. The other buttons keep the ink. ── */
body.page-landing #main a.framer-v-1wpq3gf {
  --token-2ddcea38-bb42-4986-8e36-4a45eb0c9596: var(--accent);
  --token-7bbf4f4d-a8fb-4fe0-a164-a8cf2fd0048a: #FFFFFF;
}

/* ── Square-corner leftovers. ── */
/* The AI-native band's stacked card showed its rounded foot under the panel; square, it reads as a stray stripe,
   so it takes the band's colour. */
body.page-landing #main .framer-hmm637 { background-color: var(--sp-ink) !important; }
/* What we solve: the plain pain cards sit on the warm panel, as the kit's cells do; the featured ones stay ink. */
body.page-landing #main .turbo-pain:not(.turbo-pain-featured) { background: var(--ground-2); }

/* ── Services: one frame per card. Spartan framed each card twice (a faint border with 16px of padding, then a 1px
   ink frame whose gaps draw the cell lines); the kit has one hairline frame and cells that share it. ── */
body.page-landing #main .framer-cFRyW:has(> .framer-cpmhks) { padding: 0 !important; --border-top-width: 0px !important; --border-right-width: 0px !important; --border-bottom-width: 0px !important; --border-left-width: 0px !important; }
body.page-landing #main .framer-cpmhks { background-color: var(--line) !important; }

/* ── FAQ: the accordion's own ink slabs, which carry the contrast of Spartan's (4 November 2026: the ruled rows read
   too faint). The page zone inverts them in the dark theme: light slabs with ink text on the dark panel. ── */

/* ── Eyebrows: the section labels at the end of each label row (AI-native, Our view, The loop, Common questions,
   Follow us) carry the kit's red marker square before the word. ── */
body.page-landing #main :is(.framer-1p00btv, .framer-13pbqto, .framer-1jeu1m7, .framer-191vpqu, .framer-1lserqq) > .framer-styles-preset-1kttsz8 {
  display: inline-flex; align-items: center; gap: 8px;
}
body.page-landing #main :is(.framer-1p00btv, .framer-13pbqto, .framer-1jeu1m7, .framer-191vpqu, .framer-1lserqq) > .framer-styles-preset-1kttsz8::before {
  content: ""; width: 7px; height: 7px; flex: none; background: var(--accent);
}

/* ── The section titles' star (Services, What we solve) in the brand red. Framer strokes it with the card token. ── */
body.page-landing #main :is(.framer-1jgx5m, .framer-1twnf5s, .framer-svo312, .framer-1njcxv8) {
  --token-1273543a-0813-435f-bd61-d8398d80d684: var(--accent);
}
