/* SingRank ONE THEME (2026-10-16).
   Owner: one theme on every page, articles included; consistent fonts, widths,
   spacing, CTAs and footer; one accent; no photos; clean, calm, premium, fast.
   The homepage (as live on 16 Oct) is the reference — its measured values are
   the tokens below. This file loads LAST and is the single authority for the
   shared look. Older layers (ink-*, ux-refinement) are being retired into it;
   until then it wins with the same `html.sr-night` + !important weight.
   Rollback: remove the <link> to this file (app/layout.js, functions/*). */

html.sr-night {
  --sr-paper: #f7f5f0;   /* page */
  --sr-soft: #efece6;    /* the one band colour */
  --sr-surface: #ffffff; /* raised objects */
  --sr-ink: #25231f;     /* headings, buttons */
  --sr-body: #3a3732;    /* reading text */
  --sr-muted: #5e5a54;   /* leads, labels */
  --sr-rule: #ddd8cf;
  --sr-accent: #d93248;  /* the one accent (terracotta) */
  --sr-accent-text: #b9273b; /* accent on paper, AA for text */
  --sr-serif: var(--font-serif), Georgia, "Times New Roman", serif;
  --sr-sans: var(--font-jakarta), system-ui, -apple-system, "Segoe UI", sans-serif;
  --sr-h1: clamp(52px, 7vw, 104px);
  --sr-h2: clamp(40px, 5vw, 68px);
  --sr-h3: clamp(22px, 1.9vw, 26px);
  --sr-lead: clamp(17px, 1.4vw, 20px);
  --sr-w: 1280px;        /* the one page width */
  --sr-text: 720px;      /* the one reading width */
  --sr-gutter: clamp(20px, 4vw, 48px);
  /* THE box: the menu bar and every content block share these exact edges */
  --sr-box: min(var(--sr-w), calc(100% - 2 * var(--sr-gutter)));
  --sr-section: clamp(72px, 10vw, 144px);
  --sr-radius: 12px;
  background: var(--sr-paper);
}
html.sr-night body { color: var(--sr-ink); font-family: var(--sr-sans); }

/* one accent everywhere: every legacy red variable now points at it, on every
   element (components redefine these on their own roots) */
html.sr-night, html.sr-night * {
  --accent: #d93248 !important; --accent-dark: #a91f35 !important; --ink-red: #d93248 !important;
  --im-line: #d93248 !important; --sv-highlight: #a91f35 !important; --svh-highlight: #a91f35 !important;
  --uxm-accent: #a91f35 !important; --ux-focus: #a91f35 !important; --srp-red-soft: #a91f35 !important;
  --sh-red-text: #a91f35 !important; --edi-accent: #a91f35 !important; --clean-accent: #a91f35 !important;
  --ed-red-inv: #ff5265 !important; --ic-accent: #ff5265 !important;
}

/* ---- 1. Type: one system ------------------------------------------------ */
html.sr-night main h1:not(.svh-h1) {
  font-family: var(--sr-serif) !important; font-weight: 400 !important; font-style: normal !important;
  font-size: var(--sr-h1) !important; line-height: 1.06 !important; letter-spacing: -.035em !important;
  color: var(--sr-ink) !important; max-width: 20ch; text-wrap: balance; text-transform: none !important;
}
html.sr-night main h2:not(:is(.prose, .pcta, .news-cta, aside, footer, .bcard, .news-latest-card, .card, .proof-card, .srp-plan, .svp-plan, .sgd-col, .toc-rail, .article-service-rail, .ss3) h2):not(.rs-brand) {
  font-family: var(--sr-serif) !important; font-weight: 400 !important; font-style: normal !important;
  font-size: var(--sr-h2) !important; line-height: 1.12 !important; letter-spacing: -.03em !important;
  color: var(--sr-ink); max-width: 24ch; text-wrap: balance; text-transform: none !important;
}
html.sr-night main :is(h3, h4):not(.prose *) {
  font-family: var(--sr-sans) !important; font-weight: 500 !important; font-style: normal !important;
  letter-spacing: -.015em !important; line-height: 1.3 !important; text-transform: none !important;
}
html.sr-night main :is(.sv-h3, .ed-h3, .srp-plan h3) { font-size: var(--sr-h3) !important; }
/* every label/kicker/eyebrow: one style, sentence case, never mono */
html.sr-night :is(main, .sf) :is(.article-promo-banner > p, .apb-card b, .sv-kicker, .eyebrow, .srp-kicker, .srp-plan-label, .news-kicker, .news-cta-kicker, .pcta-eyebrow, .asr-eyebrow, .toc-label, .sgd-eyebrow, .rs-industry, .rs-h3, .sf-label, .sh-glabel, [class$="-eyebrow"], [class$="-kicker"], [class$="-label"]) {
  font-family: var(--sr-sans) !important; font-size: 13px !important; line-height: 1.5 !important;
  font-weight: 600 !important; font-style: normal !important; letter-spacing: 0 !important;
  text-transform: none !important; color: var(--sr-muted) !important;
}
html.sr-night main :is(.sv-kicker, .eyebrow, [class$="-eyebrow"], [class$="-kicker"])::before { display: none !important; }
html.sr-night main :is(.sv-lead, .svh-lead, .srp-lead, .sst-lead, .sgd-lead, .news-deck, .post-hero p, .ed-lead, .lead) {
  font-family: var(--sr-sans) !important; font-size: var(--sr-lead) !important; line-height: 1.6 !important;
  color: var(--sr-muted) !important; max-width: 58ch;
}
html.sr-night main :is(.sv-body, .ed-body, .srp-info p, .bcard-excerpt) { font-size: 16px; line-height: 1.65; color: #57534e; }
html.sr-night main :is(.mono, .sv-mono, code):not(pre code) { font-family: var(--sr-sans); }
html.sr-night main pre, html.sr-night main pre code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }

/* ---- 2. One width, one gutter, one section rhythm ----------------------- */
html.sr-night main :is(.sv-wrap, .srp-wrap, .container, .news-wrap, .cs-wrap, .ss3-wrap-box) {
  width: var(--sr-box) !important; max-width: none !important;
  padding-inline: 0 !important; margin-inline: auto !important; box-sizing: border-box !important;
}
/* the menu bar uses the same box, so content edges = menu edges at every size */
html.sr-night .sh-row { width: var(--sr-box) !important; max-width: none !important; box-sizing: border-box !important; }
html.sr-night main :is(.sv-wrap, .container) :is(.sv-wrap, .container) { max-width: none !important; padding-inline: 0 !important; }
html.sr-night main .ed-wrap { width: var(--sr-box) !important; max-width: none !important; padding-inline: 0 !important; margin-inline: auto !important; box-sizing: border-box !important; }
/* service pages (ed-): hero = headline column + ink object, same box as the menu */
html.sr-night main .ed-hero-grid { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr) !important; gap: clamp(32px, 5vw, 72px) !important; align-items: center !important; }
html.sr-night main .ed-hero-grid h1 { max-width: 15ch !important; }
html.sr-night main .ed-hero-grid .ed-lead { max-width: 46ch !important; }
html.sr-night main .isc-hero { aspect-ratio: 1 / 1; width: 100%; max-width: 480px; justify-self: center; background: transparent !important; border: 0 !important; box-shadow: none !important; }
html.sr-night main .ed-svc-art:not(.isc-hero) img { display: none !important; }
html.sr-night main :is(.ed-svc-intro-copy, .ed-svc-intro-copy2) { max-width: 60ch; }
html.sr-night main .ed-kicker-dot { display: none !important; }
@media (max-width: 860px) {
  html.sr-night main .ed-hero-grid { grid-template-columns: 1fr !important; }
  html.sr-night main .isc-hero { max-width: 300px; }
}
html.sr-night .sv:not(.sv-home) > section { padding-block: var(--sr-section) !important; border: 0 !important; }
html.sr-night .sv:not(.sv-home) > section.sv-page-hero { padding-block: clamp(56px, 7vw, 104px) clamp(48px, 6vw, 88px) !important; }
html.sr-night .srp-section { padding-block: var(--sr-section) !important; border: 0 !important; }
/* one band colour, alternating — no more clay/sage/mist */
html.sr-night .sv:not(.sv-home) > section.sv-paper,
html.sr-night .sv:not(.sv-home) > section.sv-paper:nth-of-type(n) { background: var(--sr-soft) !important; }
html.sr-night :is(.srp-section:nth-of-type(1), .srp-section:nth-of-type(3), .news-lead) { --band: var(--sr-paper); background: transparent !important; box-shadow: none !important; clip-path: none !important; }
html.sr-night .a-band { box-shadow: none !important; clip-path: none !important; background: transparent !important; }

/* ---- 3. Buttons: one primary pill, one ghost pill, one text link -------- */
html.sr-night :is(.sv-button, .svh-primary, .btn-primary, .srp-btn:not(.is-outline), .ed-btn-red, .sh-cta, .sf-cta, .news-cta-link, .pcta-row a:first-child) {
  display: inline-flex !important; align-items: center !important; justify-content: center; gap: 10px;
  min-height: 48px !important; padding: 14px 24px !important; box-sizing: border-box !important;
  font-family: var(--sr-sans) !important; font-size: 14px !important; font-weight: 600 !important;
  line-height: 1.3 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important;
  color: #fff !important; background: var(--sr-accent) !important; border: 1px solid var(--sr-accent) !important;
  border-radius: 999px !important; box-shadow: none !important;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease !important;
}
html.sr-night :is(.svh-secondary, .btn-ghost, .srp-btn.is-outline, .ed-btn-line, .pcta-row a + a, .ps-verify) {
  display: inline-flex !important; align-items: center !important; justify-content: center; gap: 10px;
  min-height: 48px !important; padding: 14px 24px !important; box-sizing: border-box !important;
  font-family: var(--sr-sans) !important; font-size: 14px !important; font-weight: 600 !important;
  line-height: 1.3 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: none !important;
  color: var(--sr-ink) !important; background: transparent !important; border: 1px solid var(--sr-ink) !important;
  border-radius: 999px !important; box-shadow: none !important;
}
@media (hover: hover) {
  html.sr-night :is(.sv-button, .svh-primary, .btn-primary, .srp-btn:not(.is-outline), .ed-btn-red, .sh-cta, .sf-cta, .news-cta-link, .pcta-row a:first-child):hover { background: var(--sr-accent-text) !important; border-color: var(--sr-accent-text) !important; }
  html.sr-night :is(.svh-secondary, .btn-ghost, .srp-btn.is-outline, .ed-btn-line, .pcta-row a + a, .ps-verify):hover { background: var(--sr-ink) !important; color: #fbfaf7 !important; }
}
html.sr-night main :is(.sv-link, .ed-link) {
  font-family: var(--sr-sans) !important; font-size: 14px !important; font-weight: 600 !important;
  color: var(--sr-ink) !important; text-decoration: underline !important; text-decoration-thickness: 1px !important;
  text-underline-offset: 5px !important; text-decoration-color: var(--sr-rule) !important;
}
html.sr-night main :is(.sv-link, .ed-link):hover { text-decoration-color: var(--sr-ink) !important; }
html.sr-night .sh-cta { min-height: 40px !important; padding: 10px 18px !important; font-size: 13px !important; }

/* ---- 4. Cards: one object ----------------------------------------------- */
html.sr-night :is(.sv-advantage, .svm-step, .svm-measure, .ts-cap, .ts-decision, .sv-value, .sv-tech, .byo-card, .byo-path, .srp-service, .srp-info, .rs-client, .proof-card, .sv-evidence-card, .bcard, .news-latest-card, .cs-card, .sv-service) {
  background: var(--sr-surface) !important; border: 1px solid var(--sr-rule) !important;
  border-radius: var(--sr-radius) !important; box-shadow: none !important; background-image: none !important;
}
html.sr-night :is(.sv-advantages, .svm-steps, .svm-measures, .ts-cap-grid, .ts-decision-grid, .sv-values) > * { background: var(--sr-surface) !important; }
html.sr-night :is(.sv-advantage, .svm-step, .svm-measure, .ts-cap, .ts-decision, .sv-value, .sv-tech) { padding: clamp(24px, 2.6vw, 36px) !important; }
html.sr-night :is(.svp-plan, .srp-plan) { background: var(--sr-surface) !important; border: 1px solid var(--sr-rule) !important; border-radius: var(--sr-radius) !important; box-shadow: none !important; }
/* featured plan = same light object, marked by a darker edge (no inverted card:
   inverted cards kept leaving dark text on dark) */
html.sr-night :is(.srp-plans > .srp-plan:nth-child(2), .svp-grid > .svp-plan:nth-child(2)) { background: var(--sr-surface) !important; border: 1.5px solid var(--sr-ink) !important; color: var(--sr-ink) !important; }
html.sr-night :is(.srp-plans > .srp-plan:nth-child(2), .svp-grid > .svp-plan:nth-child(2)) :is(h2, h3, p, li, span:not(.srp-badge), strong, small, .srp-plan-label, .srp-price) { color: inherit !important; }
html.sr-night :is(.srp-plans > .srp-plan:nth-child(2), .svp-grid > .svp-plan:nth-child(2)) :is(s, del, .srp-plan-note, small, .srp-plan-label) { color: var(--sr-muted) !important; }
html.sr-night main .srp-plans .srp-plan a.srp-btn, html.sr-night main .svp-grid .svp-plan a:is(.sv-button, .svp-btn) {
  background: var(--sr-accent) !important; color: #fff !important; border: 1px solid var(--sr-accent) !important;
  border-radius: 999px !important; min-height: 48px !important; display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
}
html.sr-night main .srp-plans .srp-plan a.srp-btn * { color: inherit !important; }

/* ---- 5. Closing poster: one ink block on every page -------------------- */
html.sr-night :is(.sv:not(.sv-home) > section.sv-close > .sv-wrap, .srp-close) {
  background: var(--sr-ink) !important; color: #f3efe7 !important; border: 0 !important;
  border-radius: var(--sr-radius) !important; box-shadow: none !important; background-image: none !important;
}
html.sr-night :is(.sv-close, .srp-close) :is(h2, .sv-h2) { color: #f7f6f3 !important; }
html.sr-night :is(.sv-close, .srp-close) :is(p, .sv-lead, .sv-kicker) { color: rgba(247, 246, 243, .82) !important; }
html.sr-night :is(.sv-close .sv-button, .srp-close .srp-btn) { background: var(--sr-accent) !important; color: #fff !important; border-color: var(--sr-accent) !important; }
html.sr-night :is(.sv-close .sv-link, .pcta-row a + a) { color: #f7f6f3 !important; border-color: rgba(247, 246, 243, .5) !important; text-decoration-color: rgba(247, 246, 243, .5) !important; }
html.sr-night .pcta { padding: clamp(32px, 5vw, 56px) !important; }
html.sr-night .pcta h2.pcta-h { font-family: var(--sr-serif) !important; font-weight: 400 !important; font-size: clamp(28px, 3vw, 40px) !important; line-height: 1.12 !important; letter-spacing: -.03em !important; }

/* ---- 6. Accent: one colour, used sparingly ------------------------------ */
html.sr-night :is(.svh-h1 strong, .svh-h1 strong *, .svh-h1 .red, .svh-red, .hl-red, .ed-red) { color: var(--sr-accent) !important; }
html.sr-night :is(.svh-h1 em, .svh-h1 em *) { color: var(--sr-ink) !important; }
/* sections with their own inner box sit on the same edge as .sv-wrap */
html.sr-night .sv-home .dashboard-value-inner { width: var(--sr-box) !important; max-width: none !important; padding-inline: 0 !important; margin-inline: auto !important; box-sizing: border-box !important; }
html.sr-night main ::selection { background: #f3c9cf; }
html.sr-night .rs-caveat { border-left-color: var(--sr-accent) !important; }

/* ---- 7. Articles (static + KV template) --------------------------------- */
html.sr-night .post-page :is(.prose, .prose-book) { font-family: var(--sr-sans) !important; font-size: 18px !important; line-height: 1.8 !important; color: var(--sr-body) !important; }
html.sr-night .post-page .prose :is(p, li, td) { color: var(--sr-body) !important; }
html.sr-night .post-page .prose h2 {
  font-family: var(--sr-serif) !important; font-weight: 400 !important; font-style: normal !important;
  font-size: clamp(28px, 2.8vw, 38px) !important; line-height: 1.15 !important; letter-spacing: -.025em !important;
  color: var(--sr-ink) !important; margin: 2.2em 0 .6em !important; text-transform: none !important; border: 0 !important; padding: 0 !important;
}
html.sr-night .post-page .prose h3 { font-family: var(--sr-sans) !important; font-weight: 600 !important; font-size: 20px !important; line-height: 1.35 !important; letter-spacing: -.01em !important; color: var(--sr-ink) !important; margin: 1.8em 0 .5em !important; }
html.sr-night .post-page .prose a { color: var(--sr-ink) !important; text-decoration: underline !important; text-decoration-color: var(--sr-accent) !important; text-underline-offset: 4px !important; text-decoration-thickness: 1px !important; }
html.sr-night .post-page .prose blockquote { background: var(--sr-soft) !important; border: 0 !important; border-left: 3px solid var(--sr-accent) !important; border-radius: 0 var(--sr-radius) var(--sr-radius) 0 !important; padding: 20px 24px !important; color: var(--sr-body) !important; font-style: normal !important; }
html.sr-night .post-page .prose :is(ul, ol) li::marker { color: var(--sr-accent); }
html.sr-night .post-page .prose table { border: 1px solid var(--sr-rule) !important; border-radius: var(--sr-radius) !important; }
html.sr-night .post-page .prose th { background: var(--sr-soft) !important; color: var(--sr-ink) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; }
html.sr-night .post-page .prose :is(th, td) { border-color: var(--sr-rule) !important; }
html.sr-night .post-page .prose hr { border: 0 !important; border-top: 1px solid var(--sr-rule) !important; margin: 3em 0 !important; }
html.sr-night .post-page .prose > p:first-of-type::first-letter { float: none !important; font: inherit !important; margin: 0 !important; color: inherit !important; }
html.sr-night article.post-page { border: 0 !important; box-shadow: none !important; }
/* the old reds inside the article chrome -> the one accent */
html.sr-night :is(.apb-card, .article-service-rail, .toc-rail) :is(b, i, a) { border-left-color: var(--sr-accent) !important; }
html.sr-night :is(.apb-card, .article-service-rail) :is(b, i) { color: var(--sr-accent-text) !important; }
html.sr-night .article-promo-banner { border-radius: var(--sr-radius) !important; overflow: hidden; }
html.sr-night .apb-card b { margin-top: 6px !important; }
html.sr-night .toc-rail .on > a { border-left-color: var(--sr-accent) !important; }
html.sr-night .post-page .post-tag { font-family: var(--sr-sans) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: var(--sr-muted) !important; background: var(--sr-soft) !important; border: 0 !important; border-radius: 999px !important; padding: 6px 12px !important; }
html.sr-night .post-page :is(.post-meta, .byline, .post-date) { font-family: var(--sr-sans) !important; font-size: 14px !important; color: var(--sr-muted) !important; text-transform: none !important; letter-spacing: 0 !important; }

/* ---- 8. No photos (owner, 16 Oct). Logos, globe, Marina Bay etching and
   proof screenshots stay; photo figures are hidden wherever markup remains. */
html.sr-night :is(.post-cover, .svm-visual, .visual-split-media, .page-hero-visual, .sv-editorial, .ed-hero-media, .sph:not(.sv-etching)) { display: none !important; }
html.sr-night :is(.visual-split, .visual-split-tight) { grid-template-columns: 1fr !important; }

/* ---- 8b. The SEO/GEO package story (components/SearchStory.js, .ss3) was a
   dark page; it now sits on the same paper. The 3D handset stays a dark
   device — a real phone on a light page. ---------------------------------- */
html.sr-night :is(.ss3, .ss3.ss3-refined) {
  --ss3-bg: var(--sr-paper); --ss3-ink: var(--sr-ink); --ss3-muted: #57534e; --ss3-dim: var(--sr-muted);
  --ss3-line: var(--sr-rule); --ss3-red: var(--sr-accent); --ss3-red-text: var(--sr-accent-text);
  background: var(--sr-paper) !important; color: var(--sr-ink) !important;
}
html.sr-night:has(.ss3), html.sr-night body:has(.ss3), html.sr-night body:has(.ss3-refined) { background: var(--sr-paper) !important; }
html.sr-night body:has(.ss3) :is(.sh, .sh-panel) {
  --sh-veil: rgba(247,246,243,.96); --sh-veil-2: rgba(247,246,243,.82); --sh-veil-0: rgba(247,246,243,0);
  --sh-fill: rgba(251,250,247,.8); --sh-bg: var(--sr-paper); --sh-surface: var(--sr-surface); --sh-fg: var(--sr-ink);
  --sh-muted: var(--sr-muted); --sh-dim: var(--sr-muted); --sh-line: var(--sr-rule); --sh-line-strong: #cfc9bf;
  --sh-hover: rgba(36,33,29,.06); --sh-red-text: var(--sr-accent-text); --sh-shadow: 0 16px 48px rgba(36,33,29,.08);
}
html.sr-night .ss3 .ss3-scene, html.sr-night .ss3-refined .ss3-scene { background: linear-gradient(180deg, rgba(11,12,13,.1), rgba(11,12,13,.35)), url(/img/art/seo-path-1672.webp) 58% 50% / cover no-repeat !important; }
@media (max-width: 860px) { html.sr-night .ss3 .ss3-scene, html.sr-night .ss3-refined .ss3-scene { background-image: linear-gradient(180deg, rgba(11,12,13,.1), rgba(11,12,13,.35)), url(/img/art/seo-path-960.webp) !important; } }
html.sr-night .ss3 .ss3-scene::after { background: linear-gradient(rgba(238,236,230,0), var(--sr-paper)) !important; }
html.sr-night .ss3 .ss3-beat { border-bottom-color: var(--sr-rule) !important; }
html.sr-night main .ss3 :is(.ss3-h1, .ss3-h2), html.sr-night .ss3 :is(.ss3-h1, .ss3-h2) {
  font-family: var(--sr-serif) !important; font-weight: 400 !important; letter-spacing: -.03em !important;
  line-height: 1.08 !important; color: var(--sr-ink) !important;
}
html.sr-night .ss3-refined * { font-family: inherit !important; }
html.sr-night .ss3 .ss3-h1 { font-size: var(--sr-h1) !important; }
html.sr-night .ss3 .ss3-h2 { font-size: var(--sr-h2) !important; }
html.sr-night .ss3 :is(.ss3-h1, .ss3-h2) em { font-style: italic !important; font-weight: 400 !important; color: var(--sr-ink) !important; }
html.sr-night .ss3 .ss3-h2.ss3-sub { color: var(--sr-muted) !important; }
html.sr-night .ss3 :is(.ss3-k, .ss3-h3.ss3-tag, .ss3-mark, .ss3-surf-label, .ss3-steps em) {
  font-family: var(--sr-sans) !important; font-size: 13px !important; font-weight: 600 !important;
  letter-spacing: 0 !important; text-transform: none !important; color: var(--sr-muted) !important;
}
html.sr-night .ss3 .ss3-p { font-family: var(--sr-sans) !important; font-size: 17px !important; line-height: 1.7 !important; color: #57534e !important; }
html.sr-night .ss3 .ss3-p.ss3-big { color: var(--sr-ink) !important; font-size: clamp(19px, 1.6vw, 23px) !important; }
html.sr-night .ss3 :is(.ss3-h3, strong, .ss3-stats b, .ss3-kpis b, .ss3-flow b) { color: var(--sr-ink) !important; }
html.sr-night .ss3 .ss3-stats b { font-family: var(--sr-serif) !important; font-weight: 400 !important; }
html.sr-night .ss3 a:not(.ss3-cta) { color: var(--sr-ink) !important; }
html.sr-night .ss3 .ss3-cta {
  min-height: 48px !important; padding: 14px 24px !important; border-radius: 999px !important;
  background: var(--sr-accent) !important; color: #fff !important; font-size: 14px !important; font-weight: 600 !important;
}
html.sr-night .ss3 .ss3-cta:hover { background: var(--sr-accent-text) !important; color: #fff !important; }
/* fallback panels (before the 3D phone draws): light cards */
html.sr-night .ss3 :is(.ss3-card, .ss3-phone-screen) { background: var(--sr-surface) !important; box-shadow: 0 24px 48px -24px rgba(36,33,29,.25), inset 0 0 0 1px var(--sr-rule) !important; }
html.sr-night .ss3 .ss3-map { background: repeating-linear-gradient(58deg, transparent 0 26px, rgba(36,33,29,.06) 26px 27px), repeating-linear-gradient(-32deg, transparent 0 34px, rgba(36,33,29,.06) 34px 35px), linear-gradient(#f1efe9, #e9e6df) !important; }
html.sr-night .ss3 :is(.ss3-bar) { background: rgba(36,33,29,.28) !important; }
html.sr-night .ss3 :is(.ss3-bar-dim, .ss3-field, .ss3-mdot, .ss3-pin) { background: rgba(36,33,29,.1) !important; }
html.sr-night .ss3 :is(.ss3-res-name, .ss3-mrow b, .ss3-aiq) { color: var(--sr-ink) !important; }

/* ---- 8c. Homepage: ink only (owner, 16 Oct: "too many colours, keep it
   simple, ink colour fits"). The one accent is left on "Found." and the
   Singapore dot. The living background (ink-scenes.js) shows through. ----- */
html.sr-night body, html.sr-night main, html.sr-night .sv { background: transparent !important; }
/* the four problem markers: one ink dot each, no palette */
html.sr-night .sv-home [class*="-dot"]:not(.edi-dot):not(svg *),
html.sr-night .sv-home .sv-value::before { background: var(--sr-ink) !important; opacity: .7; }
html.sr-night .sv-home .sv-value { background: transparent !important; border: 0 !important; border-top: 1px solid var(--sr-rule) !important; border-radius: 0 !important; padding-inline: 0 !important; }
html.sr-night .sv > section:not(.sv-paper):not(.sv-close) { background: transparent !important; }
html.sr-night .sv > section.sv-paper, html.sr-night .sv.sv-home > section#proof { background: rgba(227, 222, 213, .6) !important; }
html.sr-night .sv.sv-home > section:is(#programmes, #fit, .sv-close, .dashboard-value, .sv-trust, #method, #ask, .cro-more) { background: transparent !important; box-shadow: none !important; clip-path: none !important; }
html.sr-night .sv-home :is(.edi-red, .edi-plate .edi-red) { stroke: var(--sr-ink) !important; }
html.sr-night .sv-home .edi-dot { fill: var(--sr-ink) !important; }
html.sr-night .sv-home :is(.svs-num, .svs-num *, #build-your-own-ai strong, #build-your-own-ai span, [id*="system"] i, .byo strong, .byo span) { color: var(--sr-ink) !important; border-color: var(--sr-rule) !important; }
html.sr-night .sv-home .svs-num { color: var(--sr-muted) !important; }
html.sr-night .sv-home .sv-trust img:not(.im-photo):not(.sph img) { filter: grayscale(1) contrast(1.05); opacity: .85; transition: opacity .2s ease, filter .2s ease; }
html.sr-night .sv-home .sv-trust img:not(.im-photo):not(.sph img):hover { filter: none; opacity: 1; }
/* the close of the homepage = the same ink poster as every other page */
html.sr-night .sv.sv-home > section.sv-close > .sv-wrap {
  background: var(--sr-ink) !important; color: #f3efe7 !important; border-radius: var(--sr-radius) !important;
  padding: clamp(56px, 8vw, 104px) clamp(24px, 5vw, 80px) !important; width: var(--sr-box) !important; max-width: none !important;
}
html.sr-night .sv-home .sv-close :is(.sv-kicker, .sv-lead, p) { color: rgba(247, 246, 243, .78) !important; }
html.sr-night .sv.sv-home > section.sv-close :is(h2, .sv-h2, .sv-h2 *, h2 *) { color: #f7f6f3 !important; }
html.sr-night :is(.sv-close, .srp-close) :is(h2, .sv-h2) * { color: inherit !important; }
/* cards and panels sit above the moving dots */
html.sr-night .sv :is(.sv-wrap, .svh) { position: relative; z-index: 1; }

/* ---- 8d. Every page, swept 16 Oct (one font pair, no capitals, ink) ---- */
/* never shouted: no uppercase anywhere in the page, menu or footer */
html.sr-night :is(main, .sf, .sh) *:not(pre):not(code) { text-transform: none !important; }
/* monospace labels become the site label style */
html.sr-night main :is(.svh-platforms li, .svh-platforms li span, .sgd-n, .sst-num, .sst-q small, .ts-cap-output, .ts-mark-logo, .ts-proof-code, .ts-decision-question, .srp-badge, .proof-badge, .lr-row span, .lr-how-item dt, .post-tag, .bcard-tag, .news-story-meta, .news-card-arrow, .svs-num) {
  font-family: var(--sr-sans) !important; letter-spacing: 0 !important; font-style: normal !important;
}
html.sr-night main :is(.sgd-n, .sst-num, .sst-q small, .ts-cap-output, .ts-decision-question, .proof-badge, .lr-row span, .lr-how-item dt, .bcard-tag, .news-story-meta, .svs-num) {
  font-size: 13px !important; font-weight: 600 !important; color: var(--sr-muted) !important;
}
html.sr-night main :is(.ts-mark-logo, .ts-proof-code) { color: var(--sr-ink) !important; }
/* the extra reds and terracottas -> ink (the accent stays on "Found." only) */
html.sr-night main :is(.srp-service-price, .sr-promo p span, .post-tag, .proof-badge, .news-read, .rs-verdict, .ts-cap-output, .ts-decision-question, .sst-num) { color: var(--sr-ink) !important; border-color: var(--sr-rule) !important; }
html.sr-night main .rs-verdict { background: var(--sr-soft) !important; }
html.sr-night main :is(.post-tag, .bcard-tag, .proof-badge, .srp-badge) {
  font-size: 12px !important; font-weight: 600 !important; background: var(--sr-soft) !important; color: var(--sr-muted) !important;
  border: 0 !important; border-radius: 999px !important; padding: 5px 11px !important; line-height: 1.3 !important;
}
html.sr-night main .srp-badge { background: var(--sr-ink) !important; color: #fbfaf7 !important; }
/* blog index: text cards, ink meta, no picture column */
html.sr-night main :is(.news-story-meta span, .news-story-meta > span:first-child, .news-read, .news-card-arrow, .bcard-arrow, .news-kicker) { color: var(--sr-muted) !important; }
html.sr-night main :is(.news-read, .news-card-arrow) { color: var(--sr-ink) !important; font-weight: 600 !important; }
html.sr-night main .news-lead { display: block !important; grid-template-columns: none !important; background: transparent !important; border: 0 !important; box-shadow: none !important; padding-inline: 0 !important; }
html.sr-night main .news-lead-copy { max-width: none !important; }
html.sr-night main .news-lead-copy { max-width: 760px; padding: clamp(28px, 4vw, 48px) !important; background: var(--sr-surface) !important; border: 1px solid var(--sr-rule) !important; border-radius: var(--sr-radius) !important; }
html.sr-night main :is(.news-latest-card, .bcard) { display: flex !important; flex-direction: column; min-height: 100%; }
html.sr-night main :is(.news-latest-copy, .bcard-body) { padding: 24px !important; }
html.sr-night main :is(.news-latest-image, .bcard-media) { display: none !important; }
html.sr-night main .news-latest-copy strong, html.sr-night main .bcard h3 { font-family: var(--sr-serif) !important; font-weight: 400 !important; font-size: clamp(22px, 1.9vw, 27px) !important; line-height: 1.15 !important; letter-spacing: -.02em !important; color: var(--sr-ink) !important; }
/* technology: the ten stages, ink */
html.sr-night main .sst-row button:is([aria-pressed="true"], :hover) { background: var(--sr-soft) !important; }
html.sr-night main .sst .sst-kicker { font-family: var(--sr-sans) !important; font-size: 13px !important; letter-spacing: 0 !important; color: var(--sr-muted) !important; }
/* text pages (policies, editorial, pixel, geo, author, case study, aira, KV
   pages): one reading column that starts on the menu's left edge */
html.sr-night main :is(.container, .cs-wrap) > :is(.prose, .cs-body, .cs-article):not(.prose-book),
html.sr-night main .container:not(.post-page) .prose:not(.prose-book) { max-width: 760px !important; margin-inline: 0 !important; padding-inline: 0 !important; }
html.sr-night main .prose:not(.prose-book) :is(h2) { margin: 2.1em 0 .55em !important; padding: 0 !important; font-size: clamp(28px, 2.6vw, 38px) !important; border: 0 !important; }
html.sr-night main .prose:not(.prose-book) :is(h2:first-child, h1 + p + h2) { margin-top: 1.2em !important; }
html.sr-night main .prose:not(.prose-book) section { margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
html.sr-night main .prose:not(.prose-book) :is(p, li) { font-size: 17px !important; line-height: 1.75 !important; color: var(--sr-body) !important; }
html.sr-night main .prose a:not([class]), html.sr-night main a:not([class]):is(.prose *, .container *) { color: var(--sr-ink) !important; text-decoration: underline !important; text-decoration-color: #b9b2a6 !important; text-underline-offset: 4px !important; }
html.sr-night main .prose a:not([class]):hover { text-decoration-color: var(--sr-ink) !important; }
html.sr-night main .container:not(.post-page) > :is(h1, .eyebrow, .lead, header) { margin-inline: 0 !important; }
/* case-study detail: the same column, stats aligned to it */
html.sr-night main .container.cs, html.sr-night main .cs .container { width: var(--sr-box) !important; }
/* guides block and any other full-width module sit in the same box */
html.sr-night main :is(.sgd-wrap, .sgd > .sv-wrap) { width: var(--sr-box) !important; max-width: none !important; margin-inline: auto !important; padding-inline: 0 !important; box-sizing: border-box !important; }
/* SEO package story: the copy column starts on the menu edge */
html.sr-night .ss3 { container-type: inline-size; }
html.sr-night .ss3 .ss3-copy { padding-left: calc((100cqw - min(var(--sr-w), 100cqw - 2 * var(--sr-gutter))) / 2) !important; }
@media (max-width: 860px) { html.sr-night .ss3 .ss3-copy { padding-inline: var(--sr-gutter) !important; } }

/* ---- 8e. Art heroes (master prompt): one photographed-installation artwork
   per page, full bleed, headline in the image's calm side. Scroll = the
   camera slowly approaches (CSS scroll timeline; static where unsupported).
   Use: <section class="sr-art" data-tone="light|dark" style="--art:url(...)">
   ----------------------------------------------------------------------- */
html.sr-night .sr-art {
  position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center;
  min-height: min(92svh, 900px); padding-block: clamp(96px, 12vw, 160px) !important; background: #0b0c0d !important;
}
html.sr-night .sr-art::before, html.sr-night :is(.sv-page-hero, .srp-hero, .news-mast, .post-hero).sr-art::before {
  content: "" !important; position: absolute; inset: 0; z-index: -2;
  background: var(--art) var(--art-pos, 70% 50%) / cover no-repeat;
  transform-origin: var(--art-origin, 72% 50%);
}
html.sr-night .sr-art::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; }
html.sr-night .sr-art[data-tone="light"]::after { background: linear-gradient(90deg, rgba(245,242,235,.94) 0%, rgba(245,242,235,.78) 30%, rgba(245,242,235,.12) 58%, rgba(245,242,235,0) 70%); }
html.sr-night .sr-art[data-tone="dark"]::after { background: linear-gradient(90deg, rgba(11,12,13,.9) 0%, rgba(11,12,13,.72) 30%, rgba(11,12,13,.1) 60%, rgba(11,12,13,0) 72%); }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    html.sr-night .sr-art::before { animation: sr-art-approach linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
  }
}
/* hero inside a narrow container: the art breaks out to the screen edges,
   the copy stays inside the menu box */
html.sr-night .sr-art.sr-bleed { width: 100vw !important; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; padding-inline: max(var(--sr-gutter), calc((100vw - var(--sr-w)) / 2)) !important; box-sizing: border-box !important; border: 0 !important; border-radius: 0 !important; }
html.sr-night .sr-art.sr-bleed { flex-direction: column !important; justify-content: center !important; align-items: flex-start !important; gap: 0 !important; grid-template-columns: none !important; }
html.sr-night .sr-art.sr-bleed > * { max-width: min(560px, 46%); width: auto !important; margin-inline: 0 !important; }
html.sr-night .sr-art.sr-bleed > :is(h1, p) { margin-bottom: 20px !important; }
@media (max-width: 760px) { html.sr-night .sr-art.sr-bleed > * { max-width: none; } }
@keyframes sr-art-approach { from { transform: scale(1) translate3d(0, -1%, 0); } to { transform: scale(1.09) translate3d(-1.5%, 1.5%, 0); } }
html.sr-night .sr-art > :is(.sv-wrap, .ed-wrap, .container, .sr-art-in) { position: relative; z-index: 1; }
html.sr-night .sr-art :is(.sr-art-copy, .ed-hero-grid > div:first-child) { max-width: min(560px, 46%); }
html.sr-night .sr-art[data-tone="dark"] :is(h1, h2, .sv-h2, .ed-h1, strong) { color: #f5f2ed !important; }
html.sr-night .sr-art[data-tone="dark"] :is(p, .sv-lead, .ed-lead, .ed-kicker, .sv-kicker, .eyebrow) { color: rgba(245, 242, 237, .78) !important; }
html.sr-night .sr-art[data-tone="dark"] :is(.sv-link, .btn-ghost, .ed-btn-line, .svh-secondary) { color: #f5f2ed !important; border-color: rgba(245, 242, 237, .55) !important; text-decoration-color: rgba(245, 242, 237, .5) !important; }
html.sr-night .sr-art h1, html.sr-night .sr-art .sr-art-h, html.sr-night .sv.sv-home > section.sr-art h2.sr-art-h, html.sr-night main .sr-art h2.sr-art-h { font-size: clamp(44px, 6.4vw, 104px) !important; line-height: 1.02 !important; max-width: 12ch !important; }
html.sr-night .sr-art .sr-art-h { font-family: var(--sr-serif) !important; font-weight: 400 !important; letter-spacing: -.035em !important; margin: 0 0 24px !important; }
html.sr-night .sr-art .sr-art-h em { font-style: normal; color: var(--sr-accent) !important; }
html.sr-night .sr-art .sr-art-lead { font-size: clamp(17px, 1.4vw, 20px) !important; line-height: 1.6 !important; max-width: 44ch; margin: 0 0 32px !important; }
html.sr-night .sr-art .sr-art-actions { display: flex; flex-wrap: wrap; gap: 12px; }
html.sr-night .sr-art :is(.isc-hero, .ed-svc-art, .ed-consult-map) { display: none !important; }
html.sr-night .sr-art .ed-hero-grid { grid-template-columns: 1fr !important; }
@media (max-width: 760px) {
  html.sr-night .sr-art { align-items: flex-end; min-height: 88svh; padding-block: 45svh 48px !important; }
  html.sr-night .sr-art::before { background-image: var(--art-m, var(--art)); background-position: var(--art-pos-m, 75% 30%); }
  html.sr-night .sr-art[data-tone="light"]::after { background: linear-gradient(180deg, rgba(245,242,235,0) 22%, rgba(245,242,235,.86) 52%, rgba(245,242,235,.97) 72%); }
  html.sr-night .sr-art[data-tone="dark"]::after { background: linear-gradient(180deg, rgba(11,12,13,0) 22%, rgba(11,12,13,.82) 52%, rgba(11,12,13,.95) 72%); }
  html.sr-night .sr-art :is(.sr-art-copy, .ed-hero-grid > div:first-child) { max-width: none; }
}

/* ---- 9. Footer: one band, same type ------------------------------------- */
html.sr-night .sf { background: var(--sr-soft) !important; border-top: 1px solid var(--sr-rule) !important; color: var(--sr-ink) !important; font-family: var(--sr-sans) !important; }
html.sr-night .sf :is(a, .sf-a) { color: var(--sr-ink) !important; font-size: 14px !important; text-decoration: none !important; }
html.sr-night .sf :is(a, .sf-a):hover { text-decoration: underline !important; text-underline-offset: 4px !important; }
html.sr-night .sf :is(p, small, .sf-copy) { color: var(--sr-muted) !important; font-size: 14px !important; }

/* ---- 10. Motion: calm only ---------------------------------------------- */
/* scroll rise (owner 16 Oct: "effects when scrolling"): transform only, the
   content is visible from the first paint, so it can never stay hidden */
/* 16 Oct v2: driven by the scroll timeline itself (no class, so it can never
   get stuck halfway, which had left stat cells 32px low on /results). Cells
   inside lined rows (stats, tables, lists) never move. Unsupported browsers:
   static. */
html.sr-night.fx-on main .fx-rise { transform: none !important; opacity: 1 !important; transition: none !important; }
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    html.sr-night.fx-on main .fx-rise:not(:is(.rs-stats, .rs-how, dl, table, ul, ol, .rs-moved) *) { animation: sr-rise both cubic-bezier(.22, 1, .36, 1) !important; animation-timeline: view() !important; animation-range: entry 0% entry 45% !important; }
  }
}
@keyframes sr-rise { from { transform: translate3d(0, 28px, 0); } to { transform: none; } }
html.sr-night :is(.fx-tilt, .fx-tilt *) { transform: none !important; }
html.sr-night .fx-tilt::before { display: none !important; }
@media (prefers-reduced-motion: reduce) { html.sr-night * { animation: none !important; transition: none !important; } }

/* ---- 11. Phones ---------------------------------------------------------- */
@media (max-width: 640px) {
  html.sr-night :is(.sv-advantages, .svm-steps, .sv-values, .srp-plans, .sv-services) { grid-template-columns: 1fr !important; }
  html.sr-night :is(.sv-actions, .pcta-row, .svh-actions) { flex-wrap: wrap; gap: 12px !important; }
  html.sr-night :is(.sv-actions, .pcta-row) > a { width: 100%; }
}

/* full-bleed art heroes start right under the menu */
html.sr-night main :is(.srp-wrap, .container):has(> .sr-art.sr-bleed:first-child) { padding-top: 0 !important; margin-top: 0 !important; }

/* blog masthead inside the art hero: one column, readable headline */
html.sr-night main .news-mast.sr-art > .news-title-row { display: block !important; max-width: min(620px, 52%) !important; grid-template-columns: none !important; }
html.sr-night main .news-mast.sr-art > .news-title-row > * { max-width: none !important; width: auto !important; }
html.sr-night main .news-mast.sr-art h1 { max-width: 13ch !important; }
html.sr-night main .news-mast.sr-art .news-deck { margin-top: 20px !important; }
html.sr-night main .news-mast.sr-art > .news-mast-top { max-width: min(620px, 52%) !important; }
@media (max-width: 760px) { html.sr-night main .news-mast.sr-art > :is(.news-title-row, .news-mast-top) { max-width: none !important; } }

/* full-bleed blocks use 100vw, which includes the scrollbar: never allow sideways scroll */
html.sr-night, html.sr-night body { overflow-x: clip; }

/* the living background shows on every page: section grounds are see-through */
html.sr-night main :is(.srp-section, .ed-sec, .news-section, .rs-list, .cs-section) { background: transparent !important; box-shadow: none !important; }
html.sr-night main section:not(.sr-art):not(.sv-paper):not(.sv-close):not(.ss3 section):not([class*="cta"]) { background-color: transparent; }

/* QA sweep 16 Oct: minimum readable label size, close-poster contrast */
html.sr-night main :is(small, .sst-q small, .ts-proof-code, .svh-platforms li, .svh-platforms span, .ts-cap-output, .ts-mark-logo) { font-size: 12.5px !important; }
html.sr-night .sv.sv-home > section.sv-close :is(.sv-lead, .sv-kicker, p, .sv-small) { color: rgba(247, 246, 243, .86) !important; }

/* QA sweep 16 Oct: content CTA blocks, the SEO answer block and the advisor
   card are LIGHT warm-stone panels with ink text (an older layer kept their
   text dark while the theme made them dark: invisible). :not(#sr) raises
   specificity above the old layers. */
html.sr-night:not(#sr) body main :is(.pcta, .news-cta, .news-cta-ink, .news-cta-red, .sga, .sga-card, .ed-advisor, .ed-advisor-card) {
  background: var(--sr-soft) !important; background-image: none !important; color: var(--sr-ink) !important;
  border: 1px solid var(--sr-rule) !important; border-radius: var(--sr-radius) !important; box-shadow: none !important;
}
html.sr-night:not(#sr) body main :is(.pcta, .news-cta, .sga, .sga-card, .ed-advisor, .ed-advisor-card) :is(h2, h3, h2 *, h3 *, strong, .pcta-h, .sga-answer, .sga-answer *) { color: var(--sr-ink) !important; }
html.sr-night:not(#sr) body main :is(.pcta, .news-cta, .sga, .sga-card, .ed-advisor, .ed-advisor-card) :is(p, li, span:not(.fx-w):not(.fx-w *), small, .pcta-b, .pcta-note, .ed-advisor-role, .ed-advisor-match) { color: var(--sr-body) !important; }
html.sr-night:not(#sr) body main :is(.pcta, .news-cta, .sga, .sga-card) :is(.pcta-eyebrow, .news-cta-kicker, .news-cta-no, .sga-eyebrow, [class$="-eyebrow"], [class$="-kicker"]) { color: var(--sr-muted) !important; }
html.sr-night:not(#sr) body main :is(.pcta-row a:first-child, .news-cta-link) { background: var(--sr-accent) !important; color: #fff !important; border-color: var(--sr-accent) !important; }
html.sr-night:not(#sr) body main .pcta-row a + a { background: transparent !important; color: var(--sr-ink) !important; border-color: var(--sr-ink) !important; }
html.sr-night:not(#sr) body main .ed-advisor-avatar { background: var(--sr-ink) !important; color: #faf8f4 !important; }
html.sr-night main :is(.ed-kicker, .ed-advisor-match, .ed-advisor-role) { font-size: 13px !important; }
/* case-study stat numbers never spill out of their column */
html.sr-night main .ps-n { font-size: clamp(26px, 2.6vw, 40px) !important; overflow-wrap: anywhere; }
/* the guides block used to be a dark band (sgd-dark): now light like the rest */
html.sr-night:not(#sr) body main .sgd.sgd-dark { background: transparent !important; color: var(--sr-ink) !important; }
html.sr-night:not(#sr) body main .sgd.sgd-dark :is(h2, h3, h4, strong, a, a *) { color: var(--sr-ink) !important; }
html.sr-night:not(#sr) body main .sgd.sgd-dark :is(p, li, span, .sgd-lead) { color: var(--sr-body) !important; }
html.sr-night:not(#sr) body main .sgd.sgd-dark :is(.sgd-eyebrow, .sgd-n, small) { color: var(--sr-muted) !important; }
html.sr-night:not(#sr) body main .sgd.sgd-dark :is(.sgd-col, [class*="col"]) { border-color: var(--sr-rule) !important; }
html.sr-night:not(#sr) body main .ed-advisor-avatar * { color: #faf8f4 !important; }
html.sr-night:not(#sr) .sv.sv-home > section.sv-close :is(.sv-lead, .sv-kicker, p, .sv-small) { color: rgba(247, 246, 243, .86) !important; }
html.sr-night:not(#sr) main :is(.sfi-stage figcaption span, .byo-use article span) { font-size: 12.5px !important; letter-spacing: 0 !important; }
html.sr-night:not(#sr) main .ts-hero-stack span { font-size: 12.5px !important; letter-spacing: 0 !important; }
html.sr-night:not(#sr) body main .ed-advisor .ed-advisor-avatar, html.sr-night:not(#sr) body main .ed-advisor-card .ed-advisor-avatar { background: var(--sr-ink) !important; color: #faf8f4 !important; }
html.sr-night:not(#sr) body main .sga-foot a { color: var(--sr-ink) !important; text-decoration: underline !important; text-decoration-color: #b9b2a6 !important; text-underline-offset: 4px; }
html.sr-night:not(#sr) body main .news-mast-top p { font-size: 12.5px !important; letter-spacing: .02em !important; }
html.sr-night:not(#sr) body main span.ed-advisor-avatar.ed-advisor-avatar.ed-advisor-avatar { background: var(--sr-ink) !important; color: #faf8f4 !important; }
html.sr-night:not(#sr) body main :is(.news-cta, .news-cta-ink, .news-cta-red) span.news-cta-no.news-cta-no { color: #4a4744 !important; }
html.sr-night:not(#sr) body main .news-mast span, html.sr-night:not(#sr) body main .news-topics span { color: #4a4744 !important; }
html.sr-night:not(#sr) main :is(.post-tag, .bcard-tag, .proof-badge) { color: #3f3c38 !important; background: #ece5da !important; }
html.sr-night:not(#sr) main .sv-client-name { font-size: 12.5px !important; }
html.sr-night:not(#sr) body main :is(.news-cta-link, .pcta-row a:first-child, .sv-button, .srp-btn, .ed-btn-red) span.news-cta-link, html.sr-night:not(#sr) body main :is(.news-cta-link, .pcta-row a:first-child, .sv-button, .ed-btn-red) span { color: inherit !important; }
html.sr-night:not(#sr):not(#sr2) body main :is(.news-cta-link, .pcta-row a, .sv-button, .ed-btn-red, .srp-btn) span { color: inherit !important; }
/* homepage research interludes (inside "Explore our research"): were white-on-dark */
html.sr-night:not(#sr):not(#sr2) body main :is(.sfi-title, .sfi-title *, .sfi h2, .sfi h2 *) { color: var(--sr-ink) !important; }
html.sr-night:not(#sr):not(#sr2) body main :is(.sfi-body, .sfi p) { color: var(--sr-body) !important; }
html.sr-night:not(#sr):not(#sr2) body main :is(.sfi-kicker, .sfi-stage figcaption, .sfi-stage figcaption span) { color: var(--sr-muted) !important; }
html.sr-night:not(#sr) main :is(.sfi, .sfi-stage, [class*="sfi-"]) { background-color: transparent !important; }

/* ==== Design System 2.0 (owner, 16 Oct): Warm Editorial Intelligence ====
   Canvas #F7F5F0, surface #EFECE6, sand #E3DED5, ink #25231F, secondary
   #5E5A54, muted #807B73, border #DDD8CF, red #D93248 / hover #B9273B.
   Instrument Serif display, Inter body/UI, IBM Plex Mono system labels. */
html.sr-night { --sr-sand: #e3ded5; --sr-faint: #807b73; --sr-mono: var(--font-mono), ui-monospace, "SFMono-Regular", Menlo, monospace; }
html.sr-night body { font-family: var(--sr-sans); font-size: 17px; line-height: 1.65; }
/* section labels: mono, uppercase, 12px (11px on phones) */
html.sr-night:not(#sr) :is(main, .sf) :is(.sv-kicker, .eyebrow, .srp-kicker, .srp-plan-label, .news-kicker, .news-cta-kicker, .pcta-eyebrow, .asr-eyebrow, .toc-label, .sgd-eyebrow, .rs-industry, .rs-h3, .sf-label, [class$="-eyebrow"], [class$="-kicker"], .ss3-k, .ed-kicker, .rs-how-item dt) {
  font-family: var(--sr-mono) !important; font-size: 12px !important; font-weight: 500 !important;
  letter-spacing: .08em !important; text-transform: uppercase !important; color: var(--sr-muted) !important;
}
@media (max-width: 760px) { html.sr-night:not(#sr) :is(main, .sf) :is(.sv-kicker, .eyebrow, [class$="-eyebrow"], [class$="-kicker"], .rs-industry, .rs-h3) { font-size: 11px !important; } }
/* on dark surfaces the label stays readable */
html.sr-night:not(#sr) :is(.sr-art[data-tone="dark"], .sv-close, .sf) :is(.sv-kicker, .ed-kicker, [class$="-kicker"], .sf-label) { color: rgba(247, 245, 240, .66) !important; }
/* type scale */
html.sr-night main h1:not(.svh-h1) { line-height: 1.02 !important; }
html.sr-night main h2:not(:is(.prose, .pcta, .news-cta, aside, footer, .bcard, .news-latest-card, .card, .proof-card, .srp-plan, .svp-plan, .sgd-col, .toc-rail, .article-service-rail, .ss3) h2):not(.rs-brand) { line-height: 1.04 !important; }
html.sr-night main :is(.sv-lead, .svh-lead, .srp-lead, .ed-lead, .lead, .sr-art-lead) { font-size: clamp(18px, 1.5vw, 20px) !important; color: var(--sr-muted) !important; }
/* buttons: 48px pill, 15px / 500, darker red on hover */
html.sr-night :is(.sv-button, .svh-primary, .btn-primary, .srp-btn, .ed-btn-red, .sh-cta, .sf-cta, .news-cta-link, .pcta-row a, .svh-secondary, .btn-ghost, .ed-btn-line, .ps-verify) { font-size: 15px !important; font-weight: 500 !important; }
html.sr-night .sh-cta { font-size: 14px !important; }
@media (hover: hover) {
  html.sr-night :is(.sv-button, .svh-primary, .btn-primary, .srp-btn:not(.is-outline), .ed-btn-red, .sh-cta, .news-cta-link, .pcta-row a:first-child):hover { background: #b9273b !important; border-color: #b9273b !important; }
}
/* cards: 1px border, 12px radius, surface; no heavy shadows */
html.sr-night:not(#sr) main :is(.sv-advantage, .sv-value, .sv-service, .srp-service, .srp-info, .rs-client, .proof-card, .sv-evidence-card, .bcard, .news-latest-card, .cs-card, .svp-plan, .srp-plan) { background: #fff !important; border-color: var(--sr-rule) !important; }
/* navigation: 76px desktop, 64px phone */
html.sr-night .sh-row { height: 76px !important; }
@media (max-width: 960px) { html.sr-night .sh-row { height: 64px !important; } }
/* footer: charcoal, warm type */
html.sr-night:not(#sr) .sf { background: #25231f !important; border-top: 0 !important; color: #efece6 !important; }
html.sr-night:not(#sr) .sf :is(a, .sf-a, p, small, span, li, .sf-copy) { color: rgba(247, 245, 240, .78) !important; }
html.sr-night:not(#sr) .sf :is(a, .sf-a):hover { color: #fff !important; }
html.sr-night:not(#sr) .sf :is(h2, h3, h4, strong, .sh-brand, .sf-brand) { color: #f7f5f0 !important; }
html.sr-night:not(#sr) .sf :is(.sf-cta) { background: #d93248 !important; color: #fff !important; border-color: #d93248 !important; }
html.sr-night:not(#sr) .sf img[src*="logo"] { filter: invert(1) brightness(1.2); }
/* focus ring: ink, 3px */
html.sr-night :is(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid #25231f !important; outline-offset: 3px !important; }
/* forms: 52px white inputs */
html.sr-night main :is(.lead-form, .sv-form) :is(input, select) { min-height: 52px !important; background: #fff !important; }
/* /results: shorter hero, readable intro on the calm side of the artwork */
html.sr-night:not(#sr) main .rs .sv-page-hero.sr-art { min-height: min(78svh, 760px) !important; }
html.sr-night:not(#sr) main .rs .sv-page-hero.sr-art :is(h1, .sv-lead) { max-width: min(560px, 44%) !important; }
html.sr-night:not(#sr) main .sr-art[data-tone="light"] .sv-lead { color: var(--sr-body) !important; }
@media (max-width: 760px) { html.sr-night:not(#sr) main .rs .sv-page-hero.sr-art :is(h1, .sv-lead) { max-width: none !important; } }
/* stat rows: equal-height cells, the dividers never cross text */
html.sr-night:not(#sr) main .rs .rs-stats { align-items: stretch !important; }
html.sr-night:not(#sr) main .rs .rs-stat { transform: none !important; animation: none !important; }
/* closing posters keep their inner padding (the box rule had zeroed it) */
html.sr-night:not(#sr) .sv > section.sv-close > .sv-wrap { padding: clamp(48px, 7vw, 96px) clamp(24px, 5vw, 80px) !important; }
/* light art heroes: a firmer veil behind the copy column, the artwork stays clear on the right */
html.sr-night:not(#sr) .sr-art[data-tone="light"]::after { background: linear-gradient(90deg, rgba(247,245,240,.97) 0%, rgba(247,245,240,.9) 36%, rgba(247,245,240,.35) 52%, rgba(247,245,240,0) 66%) !important; }
html.sr-night:not(#sr) .sr-art[data-tone="dark"]::after { background: linear-gradient(90deg, rgba(37,35,31,.92) 0%, rgba(37,35,31,.78) 34%, rgba(37,35,31,.2) 54%, rgba(37,35,31,0) 68%) !important; }
@media (max-width: 760px) {
  html.sr-night:not(#sr) .sr-art[data-tone="light"]::after { background: linear-gradient(180deg, rgba(247,245,240,0) 20%, rgba(247,245,240,.88) 50%, rgba(247,245,240,.98) 70%) !important; }
  html.sr-night:not(#sr) .sr-art[data-tone="dark"]::after { background: linear-gradient(180deg, rgba(37,35,31,0) 20%, rgba(37,35,31,.85) 50%, rgba(37,35,31,.96) 70%) !important; }
}
/* 16 Oct "black bug": an art band's base colour is paper, never black, and the
   still image always stays underneath the 3D layer */
html.sr-night:not(#sr) .sr-art { background-color: var(--sr-paper) !important; }
html.sr-night:not(#sr) .sr-art::before { opacity: 1 !important; }
html.sr-night:not(#sr) .sr-art > canvas.sr-art3d { max-width: none !important; width: 100% !important; margin: 0 !important; }
