/* Syntony public-site monochrome theme.
   Loaded last. Theme page surfaces and typography, never recolor logo/image
   assets or blanket-invert SVGs, maps, charts, canvases, or BLACKLINE art. */
@font-face {
  font-family: 'IBM Plex Mono';
  src: url('/assets/fonts/ibm-plex-mono-400.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --mono-black: #030405;
  --mono-panel: #0b0c0e;
  --mono-raised: #111315;
  --mono-white: #f7f8fa;
  --mono-muted: #b7babf;
  --mono-quiet: #969ba3;
  --mono-border: #34383e;
  --mono-blue: #8aafff;
  --mono-red: #ff8585;
  --mono-font: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
}

/* Old styles use several independently scoped token sets. Keep them aligned. */
:root, body, body.studio-page, body.studio-interior, body.strategy-page, body.rs {
  --bg: var(--mono-black);
  --bg-alt: var(--mono-panel);
  --text: var(--mono-white);
  --text-secondary: var(--mono-muted);
  --text-tertiary: var(--mono-quiet);
  --border: var(--mono-border);
  --border-light: #24272c;
  --accent: var(--mono-blue);
  --accent-light: #b5ccff;
  --accent-wash: #8aafff0b;
  --accent-border: #8aafff55;
  --sr-ink: var(--mono-white);
  --sr-paper: var(--mono-black);
  --sr-muted: var(--mono-muted);
  --sr-line: var(--mono-border);
  --sr-blue: var(--mono-blue);
  --sr-night: var(--mono-black);
  --sr-on-night: var(--mono-white);
  --sr-night-muted: var(--mono-muted);
  --sr-night-accent: var(--mono-blue);
  --sr-serif: var(--mono-font);
  --sr-mono: var(--mono-font);
  --font-display: var(--mono-font);
  --font-mono: var(--mono-font);
  --strategy-ink: var(--mono-white);
  --strategy-paper: var(--mono-black);
  --strategy-muted: var(--mono-muted);
  --strategy-line: var(--mono-border);
  --strategy-blue: var(--mono-blue);
  --training-dark: var(--mono-black);
  --training-soft: var(--mono-panel);
  --glm-navy: var(--mono-black);
  --ink-0: var(--mono-black);
  --ink-1: var(--mono-panel);
  --ink-2: var(--mono-raised);
  --ink-3: #191c20;
  --line: var(--mono-border);
  --line-2: #4c5159;
  --muted: var(--mono-muted);
  --dim: var(--mono-quiet);
  --color-background-primary: var(--mono-black);
  --color-background-secondary: var(--mono-panel);
  --color-border-secondary: var(--mono-border);
  --color-text-primary: var(--mono-white);
  --color-text-secondary: var(--mono-muted);
  --color-text-tertiary: var(--mono-quiet);
}

html, body {
  background-color: var(--mono-black) !important;
  color: var(--mono-white) !important;
}
body { -webkit-font-smoothing: antialiased; }
::selection { background: #c8d8ff; color: #030405; }
body :where(h1, h2, h3, h4, h5, h6) {
  color: var(--mono-white) !important;
  font-family: var(--mono-font) !important;
  font-weight: 400;
  letter-spacing: -.055em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.studio-page main h1 { font-size: clamp(34px, 5.2vw, 78px) !important; line-height: 1.1 !important; }
.studio-page main h2 { font-size: clamp(27px, 3.8vw, 52px); line-height: 1.14; }
body :where(h1, h2, h3) em {
  font-family: var(--mono-font) !important;
  font-style: normal !important;
  color: var(--mono-blue) !important;
}
body :where(p, dd, figcaption, .lead, .hero-sub, .muted, .small) {
  color: var(--mono-muted) !important;
}
body :where(.eyebrow, .label, .section-num, .sr-eyebrow, .sr-section-meta,
  .contact-eyebrow, .rh-overline, .readiness-label, .product-status,
  .news-category, .team-eyebrow, .tag, .breadcrumb, label, legend) {
  font-family: var(--mono-font) !important;
}
body :where(.eyebrow, .label, .section-num, .sr-eyebrow, .contact-eyebrow, .rh-overline) {
  color: var(--mono-quiet) !important;
}
body :where(.breadcrumb a, .breadcrumb li, .contact-option-top, .contact-sensitive,
  .contact-signal-caption, .contact-expectations li > span, .hero-status span,
  .product-line p, .work-entry p, .audience-grid p, .method-steps p) {
  color: var(--mono-muted) !important;
}
body :where(main strong, .contact-option strong, .contact-options legend) { color: var(--mono-white); }
body :where(a, button, summary, input, textarea, select):focus-visible {
  outline: 2px solid var(--mono-blue) !important;
  outline-offset: 4px;
}

/* A single black canvas replaces ivory, navy, and tinted editorial sections. */
body.studio-page :where(main > section, main > article, main > div > section,
  .section, .page-hero, .breadcrumb, .dark, .strategy-hero, .sr-hero,
  .sr-announcement, .sr-contact, .cta-band, .contact-hero, .contact-main,
  .journey-hero, .journey-cta, .journey-criteria, .journey-process,
  .education-hero, .education-courses, .education-approach, .education-formats,
  .education-topics, .education-custom, .education-course-custom,
  .training-hero, .training-outcomes, .training-process-case, .training-practice,
  .training-speakers, .training-proof-band, .training-section-nav,
  .track-record, .rh-feature, .closing-cta, .assurance-pack-section,
  .evidence-travels-section, .insight-post-cta, .public-sector-hero,
  .news-page, .sr-news-home, .case-decision-section, .team-section,
  .hu-dark, .hu-alt, .hu-contact, .insights-hero, .insight-post-hero, .report-hero) {
  background-color: var(--mono-black) !important;
  color: var(--mono-white) !important;
  border-color: var(--mono-border) !important;
}
body :where(.strategy-hero, .contact-hero, .journey-hero, .cta-band,
  .education-hero, .education-custom, .training-hero, .training-proof-band,
  .cld-shell, .contact-hero::before) { background-image: none !important; }
body :where(.evidence-feature, .card, .offer-card, .audience-card, .sector-offer-card,
  .audience-detail-card, .service-format-callout, .work-card, .software-card,
  .secure-feature, .readiness-card, .contact-option-content, .training-form-card,
  .education-course-booking, .training-event-bar, .training-prerequisite,
  .training-finding, .case-context, .case-explorer, .case-replay-body,
  .case-downloads pre, .news-callout, .notice, .offer-boundary,
  .glm-notice, .glm-citation, .glm-interval-box, .gov-flow,
  .journey-callout, .journey-option, .journey-card, .form-message:not(:empty),
  .diagnostic-modal-card, .diagnostic-form, .sprint-card, .product-card,
  .service-card, .featured-research, .insight-featured, .insight-card,
  .insights-research-card, .trust-boundaries, .evidence-register div,
  .lag-dashboard, .sr-promo-offer, .sr-dossier-top, .svc-index .svc-index-cta,
  .insight-featured-visual, .rh-route-art, .rh-notebook, .team-portrait--initials) {
  background-color: var(--mono-panel) !important;
  border-color: var(--mono-border) !important;
  color: var(--mono-white) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}
body :where(.evidence-feature, .software-card, .secure-feature, .readiness-card,
  .contact-option-content, .training-form-card, .education-course-booking,
  .case-context, .case-explorer, .case-replay-body, .news-callout, .gov-flow) {
  background-image: none !important;
}
body :where(.product-line, .product-lines, .hero-status, .work-entry,
  .practice-grid article, .audience-grid article, .company-facts > div,
  .method-steps > article, .trace-mini div, .contact-option-bottom,
  .contact-updates, .contact-investors, .contact-expectations li,
  .section-head, .portfolio-section, .product-bridge, .product-closing,
  .secure-pillars, .readiness-section, .system-usecases, .footer-bottom,
  .rh-section-line, .rh-footnote, .rh-principles article, .rule, hr,
  table, th, td) { border-color: var(--mono-border) !important; }

/* The Syntony logo stays untouched; navigation is neutral around the asset. */
body .nav, body .nav.scrolled, body .nav-links.open {
  background: var(--mono-black) !important;
  border-color: var(--mono-border) !important;
  box-shadow: none !important;
}
body .nav-panel {
  background: var(--mono-panel) !important;
  border-color: var(--mono-border) !important;
  border-radius: 2px !important;
}
body .nav :where(.nav-links > a, .nav-group > summary, .nav-panel a) {
  color: var(--mono-white) !important;
  font-family: var(--mono-font);
}
body .nav :where(a:hover, summary:hover, a[aria-current], .active) {
  text-decoration-color: var(--mono-blue) !important;
}
body .nav-toggle span { background: var(--mono-white) !important; }
body .footer, body > footer {
  background-color: var(--mono-black) !important;
  border-color: var(--mono-border) !important;
  color: var(--mono-muted) !important;
}
body .footer :where(h6, a) { color: var(--mono-white) !important; }
body .footer :where(p, .footer-llc, .footer-bottom) { color: var(--mono-muted) !important; }
/* The footer uses the original dark-wordmark asset. A small white backing
   preserves that asset's original colors and contrast without filtering it. */
body .sr-footer-logo { background: #f7f6f2; padding: 10px 12px; border-radius: 2px; }
body .sr-newsletter-field { background: var(--mono-panel) !important; border-color: #626872 !important; }
body .sr-newsletter-field button {
  background: var(--mono-white) !important;
  color: var(--mono-black) !important;
  font-family: var(--mono-font) !important;
}
body .sr-newsletter-field button:hover:not(:disabled) { background: #dce5f8 !important; }
body .sr-newsletter-status.error { color: var(--mono-red) !important; }
body .sr-newsletter-status.success { color: #a5e1bb !important; }

/* Primary actions are white; secondary actions are outlined. Existing sizes,
   disabled states, hit targets, and interaction handlers remain in place. */
body :is(.sr-button, .btn-primary, .btn-dark, .btn-light, .button, .glm-btn,
  .primary, .education-course-booking .btn-primary) {
  background: var(--mono-white) !important;
  border-color: var(--mono-white) !important;
  color: var(--mono-black) !important;
  border-radius: 2px !important;
  font-family: var(--mono-font) !important;
  box-shadow: none !important;
}
body :is(.sr-button, .btn-primary, .btn-dark, .btn-light, .button, .glm-btn, .primary) > * {
  color: inherit !important;
}
body :is(.sr-button, .btn-primary, .btn-dark, .btn-light, .button, .glm-btn, .primary):hover:not(:disabled) {
  background: #dce5f8 !important;
  border-color: #dce5f8 !important;
  color: var(--mono-black) !important;
}
body :is(.button-secondary, .btn-ghost, .btn-outline, .btn-sector-ghost, .nav .nav-cta) {
  background: transparent !important;
  border-color: #777e87 !important;
  color: var(--mono-white) !important;
  border-radius: 2px !important;
  font-family: var(--mono-font) !important;
}
body :is(.button-secondary, .btn-ghost, .btn-outline, .btn-sector-ghost, .nav .nav-cta):hover {
  background: var(--mono-raised) !important;
  border-color: var(--mono-white) !important;
}
body :where(.link-arrow, .sr-text-link, .svc-link, .contact-direct a,
  .contact-updates a, .contact-investors a, .research-breadcrumb a) {
  color: var(--mono-white) !important;
  border-color: #777e87 !important;
}
body :where(.link-arrow:hover, .sr-text-link:hover, .svc-link:hover,
  .contact-direct a:hover, .footer a:hover) { color: var(--mono-blue) !important; }

/* Inputs remain native and readable, including validation and selected states. */
body :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),
  textarea, select) {
  background-color: var(--mono-panel) !important;
  color: var(--mono-white) !important;
  border-color: #626872 !important;
  border-radius: 2px !important;
  caret-color: var(--mono-white);
}
body :where(input, textarea)::placeholder { color: #a4a9b1 !important; opacity: 1; }
body :where(input[type=checkbox], input[type=radio], input[type=range]) { accent-color: var(--mono-blue); }
body option { background: #0b0c0e; color: #f7f8fa; }
body .contact-option input:checked + .contact-option-content {
  background: var(--mono-raised) !important;
  border-color: var(--mono-blue) !important;
  box-shadow: inset 0 0 0 1px var(--mono-blue) !important;
}
body .contact-option input:checked + .contact-option-content .contact-choice-mark {
  background: var(--mono-blue) !important;
  border-color: var(--mono-blue) !important;
}
body .contact-choice-mark::after { background: var(--mono-black) !important; }
body :where(.form-message.error, .form-message.error p) {
  color: var(--mono-red) !important;
  background-color: #1b0b0d !important;
  border-color: #834145 !important;
}
body :where(.form-message.success, .form-message.success p) {
  color: #a5e1bb !important;
  background-color: #07130c !important;
  border-color: #395c45 !important;
}

/* Crisp technical accents. SVG chart/diagram strokes, node fills, legends,
   photographic media, partner marks, and original logo paths are preserved. */
body :where(.strategy-hero h1 em, .journey-hero h1 em, .products-strategy h1 > span,
  .trace-mini b, .rh-feature h2 em, .rh-feature-subtitle) { color: var(--mono-blue) !important; }
/* Deliberate red punctuation in two headlines; other accents stay blue. */
body .strategy-hero .hero-copy h1 > em,
body.training-course-page #training-title > .mono-punch { color: #ff5b66 !important; }

/* These partner marks were already rendered as monochrome silhouettes. The
   collective strip needs the existing hero treatment on its new dark field.
   These selectors never include a Syntony brand asset. */
body .training-collective-logos img,
body .team-proof-summary .team-proof-logo { filter: brightness(0) invert(1); }
body .training-dhs-wordmark { color: var(--mono-white); }
body .team-proof-summary {
  background: var(--mono-panel) !important;
  color: var(--mono-white) !important;
  border-color: var(--mono-border) !important;
}
body .team-proof-summary .team-proof-rank strong { color: var(--mono-white) !important; }

/* Registration prices must remain legible after removing the blue panel. */
body.training-page :is(.training-price-standard, .training-price-early) {
  background: var(--mono-panel) !important;
  color: var(--mono-white) !important;
  border: 1px solid var(--mono-border);
}
body.training-page .training-price-early { border-top: 2px solid #ff5b66; }
body.training-page :is(.training-price, .training-price-label),
body .education-course-price strong { color: var(--mono-white) !important; }
body.training-page .training-price span,
body .education-course-price span { color: var(--mono-muted) !important; }
body.training-page .training-apply-code {
  background: var(--mono-white) !important;
  color: var(--mono-black) !important;
  border-color: var(--mono-white) !important;
  font-family: var(--mono-font);
}
body.training-page .training-apply-code:hover { background: #dce5f8 !important; border-color: #dce5f8 !important; }
body :where(.product-status, .tag, .card-tags span) {
  color: var(--mono-muted) !important;
  border-color: var(--mono-border) !important;
  background-color: transparent !important;
}
body .product-status i { background: var(--mono-blue); }
body :where(.portfolio-visual, .cld-shell, .rs-studio, .rs-panel) {
  background-color: var(--mono-panel) !important;
  border-color: var(--mono-border) !important;
}
body .portfolio-visual { background-image: none !important; }
body :where(.pv-head, .pv-number, .pv-layer div > span, .pv-foot) { color: var(--mono-muted) !important; }
body .pv-layer strong { color: var(--mono-white) !important; font-family: var(--mono-font); }
body :where(.pv-layer, .pv-foot) { border-color: var(--mono-border) !important; }
body :where(.svc-index li, .svc-index a, .method-grid li, .badge, .lag-sector-tab,
  .diagnostic-modal-close, .article-aside-actions a) {
  background-color: var(--mono-panel) !important;
  color: var(--mono-white) !important;
  border-color: var(--mono-border) !important;
}
body :where(.svc-index a:hover, .svc-index a:focus-visible, .sector-offer-card:hover) {
  background-color: var(--mono-raised) !important;
}
body :where(.sr-system-controls button[aria-pressed=true], .lag-sector-tab.is-active) {
  background-color: var(--mono-white) !important;
  color: var(--mono-black) !important;
}
body input[type=file]::file-selector-button {
  background: var(--mono-white) !important;
  color: var(--mono-black) !important;
  border: 1px solid var(--mono-white) !important;
  border-radius: 2px !important;
}
body :where(.glm-table, .glm-table th, .glm-table td, .case-table-scroll thead) {
  background-color: var(--mono-black) !important;
  color: var(--mono-white) !important;
}
body :where(.glm-detail td, .glm-table tbody tr:hover td, .glm-table tbody tr[aria-expanded=true] td) {
  background-color: var(--mono-panel) !important;
}
/* This article diagram was authored with dark SVG text on a white field. */
.insight-figure:has(svg) { background: var(--mono-panel) !important; }
.insight-figure > div > div > svg { background: #fff; }

/* BLACKLINE retains its artwork and meaningful operator/status colors. Neutral
   chrome replaces the teal panels; selected, warning, and success cues survive. */
body:has(.topbar .brand[data-action=home]) {
  --ink: var(--mono-black);
  --panel: #0b0c0ef5;
  --yellow: var(--mono-white);
  --cyan: var(--mono-blue);
  --red: var(--mono-red);
}
body :where(.topbar, .loop-strip, .panel, .models, .model-info,
  .mission-context, .syntony-section, .syntony-compact, .real-world-debrief,
  .offering, .phase-nav, .terminal, .decision-grid > div, .result-stats > div,
  .lesson, .character-brief, .stream-card, .win-condition, .training-note,
  .attack-workbench, .redteam-workbench, .workbench-empty, .workbench-source,
  .workbench-source pre, .workbench-footnote, .workbench-snapshot-note,
  .workbench-context, .workbench-audit, .operator-console, .pipeline-order, dialog) {
  background-color: var(--mono-panel) !important;
  border-color: var(--mono-border) !important;
  color: var(--mono-white) !important;
}
body :where(.redteam-workbench, .workbench-empty, .workbench-source,
  .workbench-footnote, .workbench-snapshot-note, .workbench-context,
  .workbench-audit, .attack-workbench, .stream-card, .syntony-section) {
  background-image: none !important;
}
body :where(.topbar nav button, .text-button, .game-toolbar button,
  .model-card button, .sidebar-bottom button, .resume-button) {
  background-color: var(--mono-panel) !important;
  color: var(--mono-white) !important;
  border-color: #626872 !important;
}
body :where(.choice, .decision-option, .level-row, .lens) {
  background-color: var(--mono-black) !important;
  color: var(--mono-white) !important;
  border-color: var(--mono-border) !important;
}
body :where(.choice.selected, .decision-option.selected, .level-row.current, .phase-step.active) {
  background-color: #8aafff12 !important;
  border-color: var(--mono-blue) !important;
}

@media (max-width: 1100px) {
  body .nav-panel { background: transparent !important; }
}
@media (max-width: 700px) {
  .studio-page main h1 { font-size: clamp(32px, 8.5vw, 52px) !important; }
  .studio-page main h2 { font-size: clamp(26px, 6.7vw, 38px); }
}
@media (prefers-contrast: more) {
  :root { --mono-muted: #d2d5da; --mono-quiet: #c0c5ce; --mono-border: #686f79; }
}
@media print {
  html, body { background: #fff !important; color: #111 !important; }
  body :where(h1, h2, h3, h4, h5, h6, p, dd, figcaption, main strong) { color: #111 !important; }
  body.studio-page :where(main > section, main > article, .section, .page-hero, .dark, .strategy-hero) { background: #fff !important; color: #111 !important; }
}
