/* Design tokens for the public CVD site. These mirror * red.anthropic.com so the disclosure pages read as a native section * of that site. No rounded corners, no box shadows, and no transitions * are used anywhere; engagement is delivered through the figures, not * the chrome. */ :root { --bg: #fff; --fg: rgba(0, 0, 0, 0.8); --fg-bright: #000; --fg-muted: rgba(0, 0, 0, 0.6); --fg-kicker: rgba(0, 0, 0, 0.65); --hairline: rgba(0, 0, 0, 0.1); --hairline-faint: rgba(0, 0, 0, 0.05); --stroke-strong: #000; --divider: #d8d8d8; --surface-note: #f9f8f8; --surface-paper: #ebdccc; --accent: #ff0000; --link: #004276; --sev-critical: #cc0000; --sev-high: #e66e3c; --sev-medium: #f0a878; --sev-low: #f5d3b8; /* Darker text-only variants of the severity ramp. The fill tokens * above are tuned for area-chart bands and badges and do not meet the * 4.5:1 WCAG AA text-contrast threshold on the light background; the * ``-text`` tokens are used for ``color`` only so the inline severity * labels in tables and identifier cards remain readable. */ --sev-critical-text: #cc0000; --sev-high-text: #a13816; --sev-medium-text: #9e4f25; --sev-low-text: #8a5530; --diff-add: #1a7f37; /* Headline-flowchart tokens. The firm-reviewed branch reuses the * high-severity orange so the diagram reads in the existing palette; * the direct-disclosure branch is the only blue on the page so the * two streams are distinguishable at a glance. */ --flow-line: rgba(0, 0, 0, 0.4); --flow-firm-line: #e66e3c; --flow-firm-fill: rgba(230, 110, 60, 0.07); --flow-direct-line: #4a7dbd; --flow-direct-fill: rgba(74, 125, 189, 0.09); } /* Dark-mode token overrides. The attribute selector lets the preview * iframe force a theme via ?theme= without depending on the system * preference; an explicit data-theme="light" opts out of the media * query so the system preference can be overridden in both * directions. The token block is duplicated because plain CSS has no * mixin facility. */ :root[data-theme="dark"] { --bg: #1a1a1a; --fg: rgba(255, 255, 255, 0.86); --fg-bright: #ededed; --fg-muted: rgba(255, 255, 255, 0.6); --fg-kicker: rgba(255, 255, 255, 0.5); --hairline: rgba(255, 255, 255, 0.14); --hairline-faint: rgba(255, 255, 255, 0.07); --stroke-strong: #ededed; --divider: #3a3a3a; --surface-note: #232323; --surface-paper: #2b241d; --link: #7fb6e0; --sev-critical-text: #ff5c5c; --sev-high-text: #e66e3c; --sev-medium-text: #f0a878; --sev-low-text: #f5d3b8; --diff-add: #3fb950; --flow-line: rgba(255, 255, 255, 0.45); --flow-firm-fill: rgba(230, 110, 60, 0.14); --flow-direct-line: #7fb6e0; --flow-direct-fill: rgba(127, 182, 224, 0.14); } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bg: #1a1a1a; --fg: rgba(255, 255, 255, 0.86); --fg-bright: #ededed; --fg-muted: rgba(255, 255, 255, 0.6); --fg-kicker: rgba(255, 255, 255, 0.5); --hairline: rgba(255, 255, 255, 0.14); --hairline-faint: rgba(255, 255, 255, 0.07); --stroke-strong: #ededed; --divider: #3a3a3a; --surface-note: #232323; --surface-paper: #2b241d; --link: #7fb6e0; --sev-critical-text: #ff5c5c; --sev-high-text: #e66e3c; --sev-medium-text: #f0a878; --sev-low-text: #f5d3b8; --diff-add: #3fb950; --flow-line: rgba(255, 255, 255, 0.45); --flow-firm-fill: rgba(230, 110, 60, 0.14); --flow-direct-line: #7fb6e0; --flow-direct-fill: rgba(127, 182, 224, 0.14); } } /* Distill-style named grid. Prose sits in the ``text`` track and * figures break out to the slightly wider ``page`` track so a chart * can use more horizontal room while its left edge stays aligned with * the text gutter. */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif; display: grid; grid-template-columns: [screen-start] 1fr [page-start text-start] minmax(0, 700px) [text-end] minmax(0, 160px) [page-end] 1fr [screen-end]; margin: 100px 0; color: var(--fg); background: var(--bg); line-height: 1.6; font-size: 16px; } body > * { grid-column: text; } /* The ``

`` and ``