/* FOCUS open canvas, shared by public page families.
 * Opt in with body.focus-site; load after the page's existing styles.
 * These adapters name decorative containers explicitly. Form controls, code,
 * tables, preview geometry, disclosure state and application scripts keep their jobs.
 */
@font-face {
  font-family: 'Space Grotesk';
  src: url('/fonts/spacegrotesk-var-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
}
body.focus-site {
  --focus-ink: #0B0B0C;
  --focus-bone: #FAFAF7;
  --focus-text: #D4D4CE;
  --focus-muted: #A7A7A2;
  --focus-line: #30302E;
  --focus-panel: #101012;
  --focus-raised: #171719;
  --focus-red: #E03616;
  --focus-hover: #C42D10;
  --focus-font: 'Space Grotesk', system-ui, sans-serif;
  --disp: var(--focus-font);
  --mono: var(--focus-font);
  --al-font: var(--focus-font);
  --al-ink: var(--focus-ink);
  --al-bone: var(--focus-bone);
  --al-text: var(--focus-bone);
  --al-text-soft: var(--focus-text);
  --al-text-muted: var(--focus-muted);
  --al-border: var(--focus-line);
  --al-border-strong: var(--focus-muted);
  --al-surface: var(--focus-panel);
  --al-surface-raised: var(--focus-raised);
  --al-action: var(--focus-red);
  --al-action-hover: var(--focus-hover);
  --al-green: var(--focus-bone);
  --al-fail: var(--focus-bone);
  --al-warn: var(--focus-bone);
  --red-lit: var(--focus-bone);
  --red-text: var(--focus-bone);
  --warn-lit: var(--focus-bone);
  --grey: var(--focus-muted);
  --hair: var(--focus-line);
  margin: 0;
  background: var(--focus-ink);
  color: var(--focus-bone);
  font-family: var(--focus-font);
  color-scheme: dark;
  -webkit-font-smoothing: antialiased;
}
body.focus-site :where(button, input, textarea, select) { font-family: var(--focus-font); }
body.focus-site :focus-visible { outline: 2px solid var(--focus-bone); outline-offset: 4px; }
body.focus-site ::selection { background: var(--focus-hover); color: var(--focus-bone); }
body.focus-site :where(a) { text-underline-offset: .25em; }
body.focus-site :where(button, summary, a) { touch-action: manipulation; }
body.focus-site :where(input, textarea, select) { accent-color: var(--focus-red); }
body.focus-site [hidden] { display: none !important; }

/* Public navigation shares the original cream lantern; its flame is never recolored. */
body.focus-site nav[data-lamp-nav],
body.focus-site .journey-header,
body.focus-site footer { background: var(--focus-ink); color: var(--focus-muted); border-color: var(--focus-line); }
body.focus-site nav[data-lamp-nav] { min-height: 88px; }
body.focus-site nav[data-lamp-nav] :is(.brand, .lamp-wordmark) {
  display: inline-flex; align-items: center; gap: 0;
  font-family: var(--focus-font); font-size: 25px; font-weight: 600;
  letter-spacing: -.06em; color: var(--focus-bone);
}
body.focus-site nav[data-lamp-nav] :is(.brand, .lamp-wordmark)::before {
  content: ''; display: inline-block; width: 29px; height: 36px;
  flex: 0 0 29px; margin-right: 10px;
  background: url('/brand-mark-128-journey-v1.webp') center / contain no-repeat;
}
body.focus-site nav[data-lamp-nav] .brand .bulb { display: none; }
body.focus-site nav[data-lamp-nav] :is(.navl, .lamp-nav-links) a { color: var(--focus-text); }
body.focus-site nav[data-lamp-nav] a:hover { color: var(--focus-bone); }
body.focus-site.lamp-v2002 nav[data-lamp-nav] :is(.navl, .lamp-nav-links) > :is(.nav-action, .nav-cta, [href="/app"]),
body.focus-site.lamp-v2002 nav[data-lamp-nav] :is(.navl, .lamp-nav-links) > :is(.nav-action, .nav-cta, [href="/app"]):hover,
body.focus-site .journey-header :is(.j-nav-links, .j-mobile) .j-nav-action,
body.focus-site .journey-header :is(.j-nav-links, .j-mobile) .j-nav-action:hover {
  border: 0; background: transparent; color: var(--focus-bone);
  border-radius: 0; box-shadow: none; padding-inline: 0;
  text-decoration: underline; text-decoration-color: var(--focus-red);
  text-decoration-thickness: 1px; text-underline-offset: .4em;
}
body.focus-site .journey-header :is(.j-nav-links, .j-mobile) .j-nav-action {
  font-size: 14px; font-weight: 500;
}

/* Product map, task directories and journey pages: open groups and ruled lists. */
body.focus-site.journey :is(.j-panel, .j-card, .j-cta, .j-demo, .j-demo-stage, .j-map-rail, .j-next > a) {
  background: transparent; border: 0; border-radius: 0; box-shadow: none;
  padding-inline: 0;
}
body.focus-site.journey :is(.j-panel, .j-card, .j-demo-stage, .j-map-rail, .j-next > a) {
  border-top: 1px solid var(--focus-line); padding-block: 26px;
}
body.focus-site.journey .j-grid { gap: 30px 48px; }
body.focus-site.journey .j-cta { border-top: 1px solid var(--focus-line); padding-block: 58px; }
body.focus-site.journey :is(.j-facts, .j-flow-strip, .j-tool-grid) {
  background: transparent; border: 0; gap: 0 32px;
}
body.focus-site.journey :is(.j-facts > div, .j-flow-strip > div, .j-tool-cell) {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
  padding: 26px 0;
}
body.focus-site.journey .j-map-track > li {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line); padding-inline: 0;
}
body.focus-site.journey .j-map-rail { align-self: start; }
body.focus-site.journey .j-next > a:hover { background: transparent; border-top-color: var(--focus-muted); }
body.focus-site.journey .j-next > a:hover h3 { text-decoration: underline; text-decoration-color: var(--focus-red); }
body.focus-site.journey .j-table :is(th, td) {
  background: transparent; border: 0; border-bottom: 1px solid var(--focus-line);
}
body.focus-site.journey .j-demo .j-score { color: var(--focus-bone); text-shadow: none; }
body.focus-site.journey .j-tool-cell { min-width: 0; }
body.focus-site.journey .j-tool-cell h3 { max-width: 25ch; }

/* Legacy articles and reference pages keep their reading widths and source rails. */
body.focus-site.lamp-legacy :is(main, article, header) { background: transparent; color: var(--focus-bone); }
body.focus-site.lamp-legacy :is(.sub, .sub2, .lead2, .lede, .prose p, .prose ul, .col p, .col ul, .step p, .faq p) { color: var(--focus-text); }
body.focus-site.lamp-legacy :is(.byline, .breadcrumb, .microtrust, .kick) { color: var(--focus-muted); }
body.focus-site.lamp-legacy main a:not(.cta):not(.btn):not(.button) { color: var(--focus-bone); }
body.focus-site.lamp-legacy main a:hover { text-decoration-color: var(--focus-red); }
body.focus-site.lamp-reading .cta,
body.focus-site.public-v2002 .final,
body.focus-site.lamp-tool .final {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
}
body.focus-site.lamp-reading .reading-hero { border-bottom: 0; padding-bottom: 24px; }
body.focus-site.lamp-reading .reading-body h2 { margin-top: 64px; }
body.focus-site.lamp-reading .reading-body th { background: transparent; }
body.focus-site.lamp-reading .reading-body code { font-family: var(--focus-font); }
body.focus-site.lamp-reading .reading-body pre {
  border: 0; border-left: 1px solid var(--focus-line); background: transparent;
  padding: 18px 24px; color: var(--focus-bone);
}
body.focus-site.lamp-reading .reading-body pre code { background: transparent; }
/* The field has its own boundary; the form is an open row, not a second box. */
body.focus-site.lamp-reading .cta .scan {
  border: 0; background: transparent; padding: 0; gap: 10px;
}
body.focus-site.lamp-reading .cta .scan input {
  border: 1px solid var(--focus-muted) !important;
  background: var(--focus-panel) !important;
}
body.focus-site.lamp-reading .cta .scan input:focus-visible { outline-offset: 4px; }
body.focus-site.lamp-reading .reading-body code:not(pre code) {
  background: var(--focus-panel); border: 0; padding: 2px 5px;
}
body.focus-site.public-v2002 .public-comparison,
body.focus-site.lamp-comparison .comparison-table-section thead th { background: transparent; }
body.focus-site.lamp-research-v2002 .research-ledger { border-top-width: 1px; border-top-color: var(--focus-line); }

/* Audience exhibits remain meaningful diagrams without a surrounding panel. */
body.focus-site.audience-page.marketing-v2002 .audience-exhibit {
  padding: 30px 0; background: transparent; border: 0;
  border-top: 1px solid var(--focus-line); border-radius: 0; box-shadow: none;
}
body.focus-site.audience-page.marketing-v2002 .audience-exhibit::before { display: none; }
body.focus-site.audience-page .audience-exhibit :is(figcaption, .catalog-label, .html-label, .handoff-label, .brief-label, .menu-label, .policy-label) { color: var(--focus-muted); }
body.focus-site.audience-page .handoff-list li::before { color: var(--focus-muted); }
body.focus-site.lamp-comparison :is(.comparison-decisions > article + article, .workflow-comparison > div + div) {
  border-left: 0;
}
body.focus-site :is(.mk-about-mark, .mk-study-stat) { border-left: 0; }

/* Tool workspaces: keep real fields, buttons, selected modes and result rows. */
body.focus-site.lamp-tool.lamp-v2002 :is(.gate, .matrix, .board, .gout, .embed, .spec, .bots) {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
  border-radius: 0; box-shadow: none;
}
body.focus-site.lamp-tool.lamp-v2002 :is(.gt-bar, .mx-bar, .bd-bar, .go-bar, .embed-bar, .spec-bar, .gt-head, .botgrp, .gt-verdict, .gt-foot, .gt-note, .mx-foot, .bd-foot, .spec-note, .go-note) {
  background: transparent; padding-inline: 0; border-color: var(--focus-line);
}
body.focus-site.lamp-tool.lamp-v2002 :is(.gt-row, .mx-row, .botrow) { padding-inline: 0; border-color: var(--focus-line); }
body.focus-site.lamp-tool.lamp-v2002 :is(.gt-row .ok, .mx-row .ok, .gt-row .bad, .mx-row .bad) { color: var(--focus-bone); }
body.focus-site.lamp-tool.lamp-v2002 .gt-verdict .stamp { border: 0; padding-left: 0; }
body.focus-site.lamp-tool.lamp-v2002 .gt-verdict .stamp.okst { color: #4CC98A; }
body.focus-site.lamp-tool.lamp-v2002 pre {
  background: transparent; border: 0; padding: 22px 0; color: var(--focus-text);
  overflow-x: auto;
}
body.focus-site.lamp-tool.lamp-v2002 :is(.btn, .pbtn, .scanrow button, a.bigbtn) {
  background: var(--focus-red); border-color: var(--focus-red); color: var(--focus-bone);
  font-size: 19px; font-weight: 700; letter-spacing: -.02em;
  border-radius: 2px; box-shadow: none;
}
body.focus-site.lamp-tool.lamp-v2002 :is(.btn, .pbtn, .scanrow button, a.bigbtn):hover {
  background: var(--focus-hover); border-color: var(--focus-hover); color: var(--focus-bone);
}
body.focus-site.lamp-tool.lamp-v2002 :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), textarea, select) {
  background: var(--focus-panel); border-color: var(--focus-muted); border-radius: 2px;
  color: var(--focus-bone);
}
/* Search-preview output keeps its measured Arial geometry, a functional tool
 * requirement. Only the interface uses Space Grotesk; preview links stay neutral. */
body.focus-site.lamp-tool.lamp-v2002 .prev { box-shadow: none; border-radius: 0; }
body.focus-site.lamp-tool.lamp-v2002 :is(.prev .g-title, .g-dt .g-title, .g-mob .g-title) { color: var(--focus-ink); }
/* Existing public form actions use the large-text threshold on signal red. */
body.focus-site.public-v2002 .scan button,
body.focus-site.audience-page.marketing-v2002 .scan button,
body.focus-site.marketing-v2002 .lamp-button.primary,
body.focus-site.public-report.public-v2002 .cta a.btn {
  font-size: 19px; font-weight: 700; color: var(--focus-bone);
  background: var(--focus-red);
}
body.focus-site.public-v2002 .scan button:hover,
body.focus-site.audience-page.marketing-v2002 .scan button:hover,
body.focus-site.marketing-v2002 .lamp-button.primary:hover,
body.focus-site.public-report.public-v2002 .cta a.btn:hover {
  color: var(--focus-bone); background: var(--focus-hover);
}

/* Existing report, comparison receipt and guided repair are still executable. */
body.focus-site.public-diff.public-v2002 :is(.gate, .cta, .state, .pcard, .scard, .scoreline, .checks .col, .shotnote, .upsell, .verdict) {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
  border-radius: 0; box-shadow: none;
}
body.focus-site.public-report :is(.hero, .card, .panel, .seal-note, .cta) {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
  border-radius: 0; box-shadow: none;
}
body.focus-site.repair-guide :is(.guide-card, .guide-progress) {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
  border-radius: 0; box-shadow: none; padding-inline: 0;
}
body.focus-site.repair-guide .guide-sidebar nav [aria-current] {
  background: transparent; border-color: transparent;
  border-left-color: var(--focus-red); border-radius: 0;
}
body.focus-site.repair-guide .guide-code {
  background: transparent; border: 0; border-left: 1px solid var(--focus-line); border-radius: 0;
}
body.focus-site.repair-guide .guide-progress { gap: 20px; }
body.focus-site.repair-guide .platform-option { border-radius: 2px; }

/* The classic fallback keeps every account/report control. Only its frame changes. */
body.focus-site.audit-workspace {
  --ink: var(--focus-ink); --ink2: var(--focus-ink);
  --tx: var(--focus-bone); --tx2: var(--focus-text); --lbl: var(--focus-muted);
  --ok-lit: var(--focus-bone); --ok: var(--focus-bone);
  --line: var(--focus-line); --line-hi: var(--focus-muted);
}
body.focus-site.audit-workspace :is(.side, .main) { background: var(--focus-ink); }
body.focus-site.audit-workspace :is(.panel, .score-receipt, .v2000-unlock, .category-scores, .sealwrap, .connect, .locgrid, .locsig) {
  background: transparent; border: 0; border-top: 1px solid var(--focus-line);
  border-radius: 0; box-shadow: none;
}
body.focus-site.audit-workspace .category-score {
  background: transparent; border: 0; padding-block: 24px;
}
body.focus-site.audit-workspace .category-score[aria-pressed=true] {
  background: transparent; box-shadow: inset 0 -2px var(--focus-red);
}
body.focus-site.audit-workspace .category-score:hover { background: transparent; color: var(--focus-bone); }
body.focus-site.audit-workspace .nav a { background: transparent; border-color: transparent; box-shadow: none; }
body.focus-site.audit-workspace .nav a[aria-current=page] {
  background: transparent; border-left: 2px solid var(--focus-red); border-radius: 0;
}
body.focus-site.audit-workspace :is(.score-num, .bignum, .category-number) { color: var(--focus-bone) !important; text-shadow: none; }
body.focus-site.audit-workspace .btn-red {
  background: var(--focus-red); font-size: 19px; font-weight: 700; color: var(--focus-bone);
}
body.focus-site.audit-workspace .btn-red:hover { background: var(--focus-hover); }
body.focus-site.audit-workspace .report-evidence svg { color: var(--focus-bone); font-family: var(--focus-font); }
body.focus-site.focus-redirect { padding: 40px; }
body.focus-site.focus-redirect a { color: var(--focus-bone); text-decoration-color: var(--focus-red); }

@media (max-width: 760px) {
  body.focus-site.journey .j-grid { gap: 16px 28px; }
  body.focus-site.journey :is(.j-panel, .j-card, .j-demo, .j-demo-stage, .j-map-rail, .j-next > a, .j-cta) { padding-inline: 0; }
  body.focus-site.journey .j-cta { padding-block: 40px; }
  body.focus-site.lamp-reading .reading-body h2 { margin-top: 44px; }
  body.focus-site nav[data-lamp-nav] { min-height: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  body.focus-site, body.focus-site * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  body.focus-site.repair-guide { background: white; color: black; }
  body.focus-site.repair-guide .guide-card { color: black; border-color: black; }
}

/* Shared layout + motion system (REA round 2): one 1200px grid, consistent rhythm, one easing. */
:root{--container:1200px;--gutter:clamp(20px,4vw,48px);--space-section:clamp(64px,8vw,96px);--space-block:clamp(32px,4vw,64px);--t-fast:.2s;--t-ui:.25s;--t-reveal:.5s;--ease:cubic-bezier(.2,.7,.2,1)}
.fm-header,.fm-main,.fm-footer{max-width:var(--container)!important}
.focus-marketing .fm-section{padding-top:var(--space-section);padding-bottom:var(--space-section)}
.focus-marketing .fm-section-head{margin-bottom:var(--space-block)}
.lamp-reading .reading-wrap{max-width:calc(var(--container) + 2*var(--gutter))!important;padding-inline:var(--gutter)}
.js .home-cinema .hc-r{transition:opacity var(--t-reveal) var(--ease),transform var(--t-reveal) var(--ease)!important}
.focus-marketing a,.focus-marketing button{transition-duration:var(--t-ui)!important;transition-timing-function:var(--ease)!important}
