/* BlueMask · Bluethroat Labs. All visual assets ship with this edition. */

@font-face {
  font-family: 'Instrument Serif';
  src: url('/assets/instrument-serif-latin.60c06664b5a9.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Geist Mono';
  src: url('/assets/geist-mono-latin.5f3d6ad60f29.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

/* Match the live site's fallback metrics while its bundled fonts load. */
@font-face {
  font-family: 'Instrument Serif Fallback';
  src: local('Times New Roman');
  ascent-override: 117.94%;
  descent-override: 36.93%;
  line-gap-override: 0%;
  size-adjust: 83.94%;
}

@font-face {
  font-family: 'Geist Mono Fallback';
  src: local('Arial');
  ascent-override: 74.67%;
  descent-override: 21.92%;
  line-gap-override: 0%;
  size-adjust: 134.59%;
}

/* Palette, document defaults, and accessible primitives. */
:root {
  color-scheme: dark;
  --paper: #0a0a0a;
  --panel: #121212;
  --raised: #1f1f1f;
  --ink: #fafafa;
  --muted: #a9a9a9;
  --quiet: #8f8f8f;
  --rule: #2e2e2e;
  --soft-rule: #2e2e2e;
  --strong-rule: #757575;
  --focus: #fafafa;
  --positive: #b6d2c0;
  --caution: #e5c28d;
  --wash: #ffffff08;
  --stage: #0d0d0d;
  --scroll-art: url('/assets/privacy-scroll.5d06de5896fd.webp');
  --serif: 'Instrument Serif', 'Instrument Serif Fallback', serif;
  --mono: 'Geist Mono', 'Geist Mono Fallback', monospace;
  /* Computed sizes from bluethroatlabs.com: body 16, navigation 18, copy 20. */
  --text-note: .875rem;
  --text-body: 1rem;
  --text-control: 1rem;
  --text-copy: 1.125rem;
  --text-lead: 1rem;
  --text-section: 1.5rem;
  --text-display: 6rem;
}

* { box-sizing: border-box; }
html { min-width: 280px; scroll-behavior: smooth; scrollbar-color: var(--strong-rule) var(--panel); }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-track { background: var(--panel); }
::-webkit-scrollbar-thumb { border: 3px solid var(--panel); background: var(--quiet); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--mono);
  font-size: var(--text-body);
  line-height: 1.55;
  letter-spacing: -.02em;
  -webkit-font-smoothing: antialiased;
}
body.light, html.light body {
  color-scheme: light;
  --paper: #fafafa;
  --panel: #ffffff;
  --raised: #f2f2f2;
  --ink: #191919;
  --muted: #454545;
  --quiet: #666666;
  --rule: #c9c9c9;
  --soft-rule: #c9c9c9;
  --strong-rule: #858585;
  --focus: #191919;
  --positive: #2f5940;
  --caution: #795218;
  --wash: #00000005;
  --stage: #f2f2f2;
}
[hidden] { display: none !important; }
::selection { background: var(--ink); color: var(--paper); }
button, input, select, textarea { font: inherit; }
button, input, select, textarea { letter-spacing: inherit; }
button, .button, input, select, textarea { border-radius: 0; }
button, .button { -webkit-tap-highlight-color: transparent; }
button, a, input, select, summary { touch-action: manipulation; }
button, .button {
  min-height: 44px;
  padding: 10px 15px;
  border: 1px solid var(--rule);
  background: transparent;
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: var(--text-body);
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
button:hover:not(:disabled), .button:hover { background: var(--raised); }
button:active:not(:disabled), .button:active { transform: translateY(1px); }
button:disabled, .button[aria-disabled='true'] { color: var(--quiet); cursor: not-allowed; opacity: .58; }
button.primary, .button.primary, .primary {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
  font-weight: 600;
}
button.primary:hover:not(:disabled), .button.primary:hover { background: var(--paper); color: var(--ink); border-color: var(--ink); }
button.primary:disabled { background: var(--raised); border-color: var(--rule); color: var(--quiet); }
.secondary { background: var(--panel); }
button.text-button, .button.text-button { border-color: transparent; background: transparent; text-decoration: underline; text-underline-offset: 4px; }
button.text-button:hover:not(:disabled), .button.text-button:hover { border-color: var(--rule); background: var(--wash); }
a { color: inherit; text-underline-offset: 4px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
input, select, textarea {
  min-width: 0;
  max-width: 100%;
  accent-color: var(--ink);
  background: var(--paper);
  color: var(--ink);
}
input:not([type='range']):not([type='checkbox']):not([type='radio']):not([type='file']), select, textarea {
  min-height: 44px;
  border: 1px solid var(--rule);
  padding: 10px 12px;
}
input[type='range'] { width: 100%; min-height: 44px; margin: 0; cursor: pointer; }
input[type='checkbox'], input[type='radio'] { width: 18px; height: 18px; flex-shrink: 0; }
input[type='color'] { width: 58px; padding: 4px !important; cursor: pointer; }
input[type='file'] { width: 100%; font-size: var(--text-body); }
input::file-selector-button { min-height: 44px; margin-right: 12px; padding: 8px 14px; border: 1px solid var(--rule); background: var(--raised); color: var(--ink); font: inherit; cursor: pointer; }
img, svg { max-width: 100%; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; line-height: 1.25; }
small { font-size: var(--text-note); line-height: 1.6; }
code, pre { font-family: var(--mono); font-size: .9em; overflow-wrap: anywhere; }
hr { margin: 24px 0; border: 0; border-top: 1px solid var(--rule); }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 110; padding: 12px 16px; background: var(--ink); color: var(--paper); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

/* Wide, ruled frame shared by the editor and permanent pages. */
.shell {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
  margin: 0 auto;
  padding: 48px 0;
  border-inline: 1px solid var(--rule);
}
.container { width: 100%; margin-inline: auto; }
@media (min-width: 40rem) { .container { max-width: 40rem; } }
@media (min-width: 48rem) { .container { max-width: 48rem; } }
@media (min-width: 64rem) { .container { max-width: 64rem; } }
@media (min-width: 80rem) { .container { max-width: 80rem; } }
@media (min-width: 96rem) { .container { max-width: 96rem; } }
.topbar {
  min-height: 74px;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  border-block: 1px solid var(--rule);
  background: var(--paper);
}
.brand {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 18px 24px;
  border-right: 1px solid var(--rule);
  color: var(--ink);
  text-decoration: none;
}
.brand-wordmark { display: block; flex-shrink: 0; }
.brand-wordmark > svg, .brand-wordmark > img { display: block; width: 198px; height: 32px; }
html:not(.light) .brand-wordmark > img,
html:not(.light) .footer-wordmark > img,
html:not(.light) .productbar-mark > img { filter: invert(1); }
.top-actions { display: flex; align-items: stretch; min-width: 0; margin-left: auto; }
.top-actions > button, .top-actions > .button, .top-actions > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-left: 1px solid var(--rule);
  min-height: 72px;
  padding: 12px 20px;
  background: transparent;
  color: var(--muted);
  font-size: var(--text-body);
  line-height: 1.5556;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.top-actions > a:hover { background: var(--raised); }
.top-actions > a:active { transform: translateY(1px); }
.top-actions .primary { background: var(--ink); color: var(--paper); }
.top-actions > #theme { width: 72px; min-width: 72px; padding: 12px; color: var(--muted); }
#theme svg { display: block; width: 22px; height: 22px; }
#theme .theme-moon, body.light #theme .theme-sun, html.light #theme .theme-sun { display: none; }
body.light #theme .theme-moon, html.light #theme .theme-moon { display: block; }
.productbar {
  position: relative;
  margin-top: 16px;
  overflow: hidden;
  border-block: 1px solid var(--rule);
  background: var(--panel);
}
.productbar-inner {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 20px 54px;
  padding: 48px 28px 28px;
}
.productbar-lockup {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--ink);
  text-decoration: none;
}
.productbar-lockup:hover { color: var(--ink); text-decoration: none; }
.productbar-mark { display: block; width: 88px; height: 88px; flex: 0 0 88px; color: var(--ink); }
.productbar-mark > svg, .productbar-mark > img { display: block; width: 100%; height: 100%; }
.productbar-mark-small { display: none; }
.productbar-name { margin: 0; font-family: var(--serif); font-size: var(--text-display); font-weight: 400; line-height: .92; letter-spacing: .005em; }
.productbar-copy { flex: 1 1 30rem; min-width: 280px; max-width: 46rem; margin-bottom: 4px; }
.productbar-copy > p { margin: 0; color: var(--ink); font-size: var(--text-body); line-height: 1.55; }
main { display: flex; flex: 1; width: 100%; flex-direction: column; gap: 18px; padding-top: 18px; }
.eyebrow { margin: 0 0 13px; color: var(--muted); font-size: var(--text-note); font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.editor-panel { border-block: 1px solid var(--rule); background: var(--panel); }
.privacy-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding: 0 0 0 20px; border-bottom: 1px solid var(--rule); }
.privacy-bar h2 { padding: 13px 0; font-family: var(--serif); font-size: 1.5rem; font-weight: 400; line-height: 1; }
.privacy-bar > div { display: flex; align-items: stretch; min-height: 50px; }
.privacy-bar > div > span { display: flex; align-items: center; padding: 0 18px; border-left: 1px solid var(--rule); color: var(--quiet); font-size: var(--text-note); }
.privacy-bar > div > button { flex-shrink: 0; min-height: 50px; border: 0; border-left: 1px solid var(--rule); padding-inline: 18px; font-weight: 600; }

/* Editing surface. Canvas dimensions are supplied by the editor. */
.workspace { display: grid; grid-template-columns: minmax(0, 1fr) 380px; align-items: stretch; }
.editor { display: flex; flex-direction: column; align-self: start; min-width: 0; }
.editor-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px 14px;
  flex-wrap: wrap;
  min-height: 56px;
  padding: 8px 16px;
  border-bottom: 1px solid var(--rule);
}
.editor-toolbar > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.editor-toolbar > p, .editor-toolbar > span { margin: 0; font-size: var(--text-note); color: var(--muted); overflow-wrap: anywhere; }
.editor-toolbar button, .editor-toolbar .button { padding-right: 12px; padding-left: 12px; border-color: transparent; font-size: var(--text-body); }
.editor-toolbar .control-row { margin-top: 0; }
.editor-toolbar button.selected { background: var(--ink); color: var(--paper); }
.editor-toolbar .zoom-controls { flex-wrap: nowrap; }
.editor-toolbar .zoom-controls > button { min-width: 44px; flex: none; white-space: nowrap; }
#zoom-fit { min-width: 86px; }
.stage {
  --stage-height: 500px;
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex: none;
  min-width: 0;
  height: var(--stage-height);
  min-height: 0;
  max-height: var(--stage-height);
  padding: 20px;
  overflow: auto;
  background-color: var(--stage);
}
.stage:has(.dropzone:not([hidden])) { height: auto; min-height: var(--stage-height); max-height: none; }
.dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: 100%;
  max-width: 620px;
  margin: auto;
  min-height: 320px;
  padding: 34px 22px;
  border: 1px solid var(--strong-rule);
  background: var(--paper);
  text-align: center;
}
.dropzone > svg { width: 36px; height: 36px; color: var(--muted); }
.dropzone h2, .dropzone h3, .dropzone > strong { font-family: var(--serif); font-size: 3rem; font-weight: 400; line-height: 1; letter-spacing: -.02em; }
.dropzone p { max-width: 440px; margin: 0; color: var(--muted); font-size: var(--text-body); }
.dropzone small { color: var(--quiet); }
.drop-mark { color: var(--quiet); font-size: 38px; font-weight: 300; line-height: 1; }
.file-note { color: var(--quiet); font-size: var(--text-note) !important; line-height: 1.7; }
.dropzone .primary { min-width: 160px; }
.dropzone.dragover, .dropzone.dragging, .stage.dragover .dropzone { border-color: var(--ink); background: var(--raised); }
.stage.drag-over .dropzone { border-color: var(--ink); background: var(--raised); }
.canvas-wrap { position: relative; display: inline-block; flex: none; min-width: 0; max-width: none; margin: 0 auto; line-height: 0; isolation: isolate; }
#view { display: block; max-width: none; height: auto; }
#overlay { position: absolute; inset: 0; display: block; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
#overlay[data-action='move'] { cursor: move; }
#overlay[data-action='nw'], #overlay[data-action='se'] { cursor: nwse-resize; }
#overlay[data-action='ne'], #overlay[data-action='sw'] { cursor: nesw-resize; }
#overlay[data-action='idle'] { cursor: default; }
.canvas-wrap:focus-within { outline: 2px solid var(--focus); outline-offset: 5px; }
.editor-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px 16px; min-height: 48px; padding: 12px 20px; border-top: 1px solid var(--soft-rule); color: var(--muted); font-size: var(--text-note); }
.editor-bottom p { margin: 0; }
.editor-bottom > * { min-width: 0; overflow-wrap: anywhere; }
.image-actions { align-items: center; margin: 0; padding: 12px 20px; border-top: 1px solid var(--soft-rule); }
.control-row.image-actions > button { flex: none; padding-right: 12px; padding-left: 12px; }
.image-actions > label { display: flex; align-items: center; min-height: 44px; margin-left: auto; gap: 7px; color: var(--muted); font-size: var(--text-note); }
.method-tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border: 1px solid var(--rule); color: var(--muted); font-size: var(--text-note); font-weight: 600; line-height: 1.5; letter-spacing: .035em; }
.method-tag.secure { color: var(--positive); }
.method-tag.blur { color: var(--caution); }

/* Sidebar uses dividing rules rather than nested cards. */
.controls { min-width: 0; border-left: 1px solid var(--rule); }
.control-section { padding: 20px; border-bottom: 1px solid var(--rule); }
.control-section:last-child { border-bottom: 0; }
.control-section h2, .control-section h3, .control-section h4 { margin-bottom: 13px; font-size: var(--text-section); font-weight: 600; letter-spacing: .075em; text-transform: uppercase; }
.control-section > p { color: var(--muted); font-size: var(--text-body); }
.control-section > .eyebrow {
  color: var(--ink);
  font-family: var(--serif);
  font-size: var(--text-section);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1;
  text-transform: none;
}
.control-hint { margin-top: 13px; color: var(--muted); font-size: var(--text-note); line-height: 1.75; }
.section-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; }
.section-label .eyebrow { margin: 0; color: var(--ink); font-family: var(--serif); font-size: var(--text-section); font-weight: 400; letter-spacing: 0; line-height: 1; text-transform: none; }
.section-label > span { color: var(--quiet); font-size: var(--text-note); }
.mode-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-direction: row;
  gap: 5px;
  width: 100%;
  min-height: 76px;
  margin-top: 8px;
  padding: 12px 14px;
  text-align: left;
}
.mode-button strong, .mode-button label { display: block; font-size: var(--text-body); font-weight: 600; }
.mode-button label { cursor: inherit; }
.mode-button small { display: block; color: var(--muted); font-size: var(--text-note); font-weight: 400; }
.mode-button > span:last-child:not(:first-child) { flex-shrink: 0; }
.mode-button.selected, .mode-button[aria-pressed='true'] { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.mode-button.selected small, .mode-button[aria-pressed='true'] small, .mode-button.selected .method-tag, .mode-button[aria-pressed='true'] .method-tag { color: var(--paper); opacity: .72; }
.mode-button:hover:not(:disabled) { border-color: var(--strong-rule); background: var(--raised); color: var(--ink); }
.mode-button.selected:hover:not(:disabled), .mode-button[aria-pressed='true']:hover:not(:disabled) { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.mode-button.selected:hover:not(:disabled) small, .mode-button[aria-pressed='true']:hover:not(:disabled) small, .mode-button.selected:hover:not(:disabled) .method-tag, .mode-button[aria-pressed='true']:hover:not(:disabled) .method-tag { color: var(--paper); }
.control-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.control-row > button, .control-row > .button { flex: 1; min-width: 0; padding-right: 8px; padding-left: 8px; font-size: var(--text-body); }
.field { display: block; margin-top: 15px; }
.field:first-child { margin-top: 0; }
.field label, label.field { color: var(--muted); font-size: var(--text-note); }
.field > label { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.field input:not([type='checkbox']):not([type='radio']):not([type='color']), .field select { width: 100%; }
.field > small { display: block; margin-top: 6px; color: var(--muted); font-size: var(--text-note); }
.range-row { display: flex; align-items: center; gap: 12px; }
.range-row input { flex: 1; }
.range-row output, .range-row > span { flex-shrink: 0; min-width: 3ch; color: var(--ink); font-size: var(--text-note); text-align: right; font-variant-numeric: tabular-nums; }
.coordinate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.coordinate-grid .field { margin-top: 0; }
.coordinate-grid input { margin-top: 5px; font-size: var(--text-body); }
#make-secure { width: 100%; margin-top: 12px; }
.region-list, #regions { list-style: none; padding: 0; margin: 0; }
.region-list li, #regions li { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 54px; padding: 5px 0; border-bottom: 1px solid var(--soft-rule); font-size: var(--text-note); }
.region-list li:last-child, #regions li:last-child { border-bottom: 0; }
.region-list li > span, #regions li > span { min-width: 0; overflow-wrap: anywhere; }
.region-list li small, #regions li small { display: block; color: var(--muted); font-size: var(--text-note); }
.region-list li > button, #regions li > button { flex-shrink: 0; min-width: 44px; padding: 8px; }
.region-list li > .region-select, #regions li > .region-select { flex: 1; min-width: 0; justify-content: flex-start; border-color: transparent; text-align: left; font-size: var(--text-body); overflow-wrap: anywhere; }
.region-list li.selected > .region-select, #regions li.selected > .region-select { border-color: var(--ink); background: var(--wash); }
.empty-state { margin: 0; color: var(--quiet); font-size: var(--text-body); line-height: 1.75; }
.notice { padding: 13px 20px; border-top: 1px solid var(--soft-rule); border-bottom: 1px solid var(--soft-rule); background: var(--panel); color: var(--muted); font-size: var(--text-note); line-height: 1.7; overflow-wrap: anywhere; }
.notice:empty { display: none; }
.notice.error { color: var(--caution); }
.export-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px 24px; flex-wrap: wrap; padding: 20px 24px; border-top: 1px solid var(--rule); }
.export-bar > div { min-width: 0; }
.export-bar p { margin: 0; color: var(--muted); font-size: var(--text-body); }
.export-bar strong { color: var(--ink); font-weight: 500; }
.export-bar button, .export-bar .button { min-height: 48px; padding-right: 22px; padding-left: 22px; }
.controls .export-bar { flex-direction: column; align-items: stretch; gap: 10px; border-top: 0; padding: 20px; }
.controls .export-bar p { margin: 0; }
.controls .export-bar button { width: 100%; padding-right: 12px; padding-left: 12px; font-size: var(--text-copy); }

/* Evidence stays factual and readable, with deliberate table scrolling. */
.evidence-section { min-width: 0; padding: 36px 28px; border-top: 1px solid var(--rule); }
.evidence-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px 32px; margin-bottom: 20px; }
.evidence-section h2 { margin-bottom: 10px; font-family: var(--serif); font-size: 3.75rem; font-weight: 400;  line-height: 1.25; }
.evidence-section h3 { margin: 24px 0 12px; font-size: var(--text-body); font-weight: 600; }
.evidence-section p { max-width: 800px; color: var(--muted); font-size: var(--text-copy);  line-height: 1.625; }
.evidence-head > * { min-width: 0; margin: 0; }
.evidence-head .button, .evidence-head button { flex-shrink: 0; }
.table-scroll { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; margin: 18px 0 24px; border: 1px solid var(--rule); }
.evidence-table { width: 100%; border-collapse: collapse; font-size: var(--text-body); line-height: 1.65; text-align: left; }
.evidence-table caption { padding: 12px 16px; color: var(--muted); text-align: left; }
.evidence-table th, .evidence-table td { padding: 14px 16px; border-bottom: 1px solid var(--soft-rule); vertical-align: top; }
.evidence-table th { color: var(--ink); background: var(--panel); font-size: var(--text-note); font-weight: 600; }
.evidence-table td { color: var(--muted); }
.evidence-table td:first-child { color: var(--ink); }
.evidence-table tr:last-child td { border-bottom: 0; }
.evidence-table strong { color: var(--ink); font-weight: 500; }
.evidence-section .evidence-kicker { margin: 0; font-size: var(--text-note); }
.evidence-details { margin: 20px 0; border-block: 1px solid var(--soft-rule); }
.evidence-details summary { padding: 14px 0; min-height: 48px; font-size: var(--text-control); cursor: pointer; }
.evidence-details p { font-size: var(--text-copy); }
.evidence-details ul { padding-left: 20px; color: var(--muted); font-size: var(--text-copy);  line-height: 1.625; }
.evidence-details li { margin: 12px 0; }
.comparison-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 20px; }
figure.comparison { min-width: 0; margin: 0; border: 1px solid var(--rule); background: var(--panel); }
.comparison img, .comparison canvas { display: block; width: 100%; max-width: 100%; height: auto; object-fit: contain; background: #fafafa; }
.comparison figcaption { padding: 13px 14px; border-top: 1px solid var(--rule); color: var(--muted); font-size: var(--text-note); line-height: 1.7; }
.comparison figcaption strong { display: block; margin-bottom: 4px; color: var(--ink); font-size: var(--text-note); font-weight: 500; }
.comparison > .eyebrow { padding: 12px 14px; margin: 0; font-size: var(--text-note); letter-spacing: 0; text-transform: none; }
.evidence-note { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--soft-rule); }
.evidence-note > * { margin: 0; }
.evidence-note > p { font-size: var(--text-note); }
.page-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 24px; padding: 20px; border-block: 1px solid var(--rule); color: var(--muted); font-size: var(--text-note); }
.page-footer p { margin: 0; }
.page-footer > div { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
.page-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.footer-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 20px; }
.footer-links a { color: var(--muted); text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 4px; transition: color .15s ease, text-decoration-color .15s ease; }
.footer-links a:hover { color: var(--ink); text-decoration-color: var(--ink); }
.footer-brand { gap: 8px !important; }
.footer-wordmark { display: block; width: 124px; height: 20px; color: var(--ink); }
.footer-wordmark > svg, .footer-wordmark > img { display: block; width: 100%; height: 100%; }
.footer-brand > a { min-height: 28px; margin-left: 2px; }

/* Permanent reading pages keep the established parchment treatment without modal-only content. */
.paper-page {
  padding: clamp(22px, 4vw, 56px);
  border-block: 1px solid var(--rule);
  background: linear-gradient(#0006, #0006), url('/assets/footer-bg-dark.098f0bd790b9.webp') center / cover fixed, #111;
}
.paper-page-inner {
  --ink: #161616;
  --paper: #dedede;
  --muted: #3e3e3e;
  --quiet: #4b4b4b;
  --panel: #ffffff24;
  --raised: #ffffff40;
  --rule: #16161655;
  --soft-rule: #16161630;
  --strong-rule: #16161688;
  --wash: #ffffff18;
  --focus: #111;
  color-scheme: light;
  width: min(880px, 100%);
  margin: 0 auto;
  border-style: solid;
  border-color: transparent;
  border-width: 92px 64px 88px;
  border-image: var(--scroll-art) 230 125 215 125 fill / 92px 64px 88px / 0 stretch;
  padding: 0 20px;
  color: var(--ink);
  filter: drop-shadow(0 18px 20px #0008);
}
.paper-page-inner > * { max-width: 72ch; margin-inline: auto; }
.paper-page-inner > section { padding: 34px 0; border-top: 1px solid var(--soft-rule); }
.article-header { padding: 4px 0 38px; }
.article-header h1 {
  max-width: 18ch;
  font-family: var(--serif);
  font-size: clamp(2.75rem, 6vw, 4.75rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.02em;
  text-wrap: balance;
}
.article-header h1 + p { margin-top: 24px; }
.paper-page h2 {
  max-width: 28ch;
  margin-bottom: 16px;
  font-family: var(--serif);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -.015em;
  text-wrap: balance;
}
.paper-page p, .paper-page li, .paper-page dd {
  color: var(--muted);
  font-size: var(--text-copy);
  line-height: 1.7;
}
.paper-page p + p { margin-top: 16px; }
.paper-page strong { color: var(--ink); font-weight: 600; }
.paper-page a { color: var(--ink); overflow-wrap: anywhere; text-decoration-color: var(--rule); }
.paper-page a:hover { text-decoration-color: var(--ink); }
.paper-page .button.primary { color: var(--paper); text-decoration: none; }
.paper-page .button.primary:hover { border-color: var(--ink); background: var(--paper); color: var(--ink); }
.article-lead { max-width: 58ch; color: var(--ink) !important; font-size: clamp(1.125rem, 2vw, 1.35rem) !important; line-height: 1.6 !important; }
.article-note { padding: 16px 18px; border: 1px solid var(--strong-rule); background: var(--wash); font-size: var(--text-note) !important; }
.article-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 24px !important; }
.article-links a { display: inline-flex; align-items: center; min-height: 44px; }
.paper-page ul, .paper-page ol { padding-left: 1.4rem; }
.paper-page li + li { margin-top: 8px; }
.detail-list { columns: 2; column-gap: 40px; }
.detail-list li { break-inside: avoid; }
.workflow-list { counter-reset: workflow; padding: 0 !important; list-style: none; }
.workflow-list li { counter-increment: workflow; position: relative; min-height: 48px; padding: 10px 0 10px 54px; border-top: 1px solid var(--soft-rule); }
.workflow-list li:last-child { border-bottom: 1px solid var(--soft-rule); }
.workflow-list li::before { content: counter(workflow, decimal-leading-zero); position: absolute; top: 11px; left: 0; color: var(--quiet); font-size: var(--text-note); font-variant-numeric: tabular-nums; }
.build-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 28px 0; border: 1px solid var(--rule); }
.build-facts > div { min-width: 0; padding: 16px; }
.build-facts > div + div { border-left: 1px solid var(--rule); }
.build-facts dt { margin-bottom: 8px; color: var(--quiet); font-size: var(--text-note); }
.build-facts dd { margin: 0; color: var(--ink); font-size: var(--text-note); overflow-wrap: anywhere; }
.build-facts-wide { grid-template-columns: 1fr; }
.build-facts-wide > div { display: grid; grid-template-columns: minmax(150px, .65fr) minmax(0, 1.35fr); gap: 18px; }
.build-facts-wide > div + div { border-top: 1px solid var(--rule); border-left: 0; }
.build-facts-wide dt { margin: 0; }
.download-list { list-style: none; padding: 0 !important; }
.download-list li { margin: 0; border-top: 1px solid var(--soft-rule); }
.download-list li:last-child { border-bottom: 1px solid var(--soft-rule); }
.download-list a { display: flex; align-items: center; min-height: 52px; padding: 8px 0; }

/* Static policy and support pages share the same ruled shell. */
.legal-page { border-block: 1px solid var(--rule); background: var(--panel); }
.legal-page-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; padding: 16px 20px; border-bottom: 1px solid var(--rule); }
.legal-page-head h1 { font-family: var(--serif); font-size: clamp(2rem, 4vw, 2.375rem); font-weight: 400; line-height: 1; letter-spacing: .005em; }
.legal-page-head .button { min-height: 44px; font-size: var(--text-note); }
.legal-copy { max-width: 90ch; padding: 28px 20px 40px; color: var(--muted); font-size: var(--text-note); line-height: 2; }
.legal-copy > * + * { margin-top: 20px; }
.legal-copy h2 { color: var(--ink); font-family: var(--serif); font-size: 1.5rem; font-weight: 400; line-height: 1; }
.legal-copy .legal-meta { color: var(--quiet); }
.legal-copy ul { margin-bottom: 0; padding-left: 1.5rem; }
.legal-copy li + li { margin-top: 4px; }
.legal-copy strong { color: var(--ink); font-weight: 600; }
.legal-copy a { color: var(--ink); text-decoration-color: var(--rule); overflow-wrap: anywhere; }
.legal-copy a:hover { text-decoration-color: var(--ink); }

/* Native dialogs preserve browser focus management and keyboard behavior. */
dialog.dialog, dialog.scroll-dialog {
  width: min(840px, calc(100% - 48px));
  max-width: calc(100% - 48px);
  max-height: calc(100vh - 48px);
  max-height: calc(100dvh - 48px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--strong-rule);
  background: var(--paper);
  color: var(--ink);
  overflow: auto;
  overscroll-behavior: contain;
}
dialog.dialog::backdrop, dialog.scroll-dialog::backdrop { background: #000b; }
.dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 24px; border-bottom: 1px solid var(--rule); }
.dialog-head h2 { max-width: 26ch; font-family: var(--serif); font-size: 1.75rem; font-weight: 400; line-height: 1.05; letter-spacing: -.02em; }
.dialog-head p { margin: 0; color: var(--muted); font-size: var(--text-note); }
.dialog-head > button { flex-shrink: 0; min-width: 44px; padding: 8px; }
.dialog-body { padding: 24px; }
.dialog-body > h2 { margin-bottom: 14px; font-family: var(--serif); font-size: 3rem; font-weight: 400; line-height: 1.25; }
.dialog-body > p { color: var(--muted); font-size: var(--text-copy);  line-height: 1.625; }
.dialog-body strong { color: var(--ink); }
.dialog-body h3 { margin: 20px 0 10px; font-size: var(--text-control); }
.dialog-body h3:first-child { margin-top: 0; }
.dialog-actions { display: flex; justify-content: flex-end; align-items: stretch; flex-wrap: wrap; gap: 10px; padding: 20px 24px; border-top: 1px solid var(--rule); }
.dialog-actions > button, .dialog-actions > .button { flex: 1; }
.mode-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border: 1px solid var(--rule); margin: 20px 0; }
.mode-comparison > section { min-width: 0; padding: 18px; }
.mode-comparison > section + section { border-left: 1px solid var(--rule); }
.mode-comparison h3 { margin: 0 0 12px; font-size: var(--text-control); }
.panel-meta { display: block; margin-top: 6px; color: var(--muted); font-size: var(--text-note); font-weight: 400; line-height: 1.4; }
.mode-comparison p, .mode-comparison li { color: var(--muted); font-size: var(--text-body);  line-height: 1.625; }
.mode-comparison ul { margin: 0; padding-left: 17px; }
.mode-comparison li + li { margin-top: 8px; }
.mode-comparison .recommended { box-shadow: inset 0 3px 0 var(--ink); background: var(--wash); }
.recommended > small, .recommended > .eyebrow { color: var(--positive); }
.warning-copy { padding: 14px 16px; border: 1px solid var(--strong-rule); background: var(--wash); color: var(--muted); font-size: var(--text-body); }
.step-list { margin: 20px 0; padding-left: 24px; }
.step-list li { padding: 7px 0 7px 8px; color: var(--muted); font-size: var(--text-copy);  line-height: 1.625; }
.step-list li::marker { color: var(--ink); }
.step-list li strong { display: block; margin-bottom: 4px; }
.connection-hint { padding: 12px 14px; border: 1px solid var(--rule); background: var(--panel); color: var(--muted); font-size: var(--text-body); }
.connection-hint strong { color: var(--ink); }

/* A real paper scroll; HTML stays selectable, reflowable, and keyboard accessible. */
dialog.scroll-dialog {
  width: min(1160px, calc(100% - 32px));
  max-width: calc(100% - 32px);
  height: calc(100dvh - 32px);
  max-height: calc(100dvh - 32px);
  border-color: #333;
  background: linear-gradient(#0006, #0006), url('/assets/footer-bg-dark.098f0bd790b9.webp') center / cover fixed, #111;
  scrollbar-color: #777 #151515;
}
.scroll-toolbar {
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  justify-content: flex-end;
  min-height: 60px;
  padding: 12px 16px 0;
  pointer-events: none;
}
.scroll-toolbar > button { min-width: 48px; min-height: 48px; padding: 0; border-color: #555; background: #0a0a0a; color: #eee; font-size: 32px; font-weight: 300; line-height: 1; pointer-events: auto; }
.scroll-toolbar > button:hover { background: #222; border-color: #aaa; }
.scroll-toolbar > button:focus-visible { outline-color: white; }
.paper-scroll {
  --ink: #161616;
  --paper: #dedede;
  --muted: #3e3e3e;
  --quiet: #4b4b4b;
  --panel: #ffffff24;
  --raised: #ffffff40;
  --rule: #16161655;
  --soft-rule: #16161630;
  --strong-rule: #16161688;
  --wash: #ffffff18;
  --focus: #111;
  color-scheme: light;
  color: var(--ink);
  position: relative;
  width: min(880px, calc(100% - 100px));
  margin: 0 auto 40px;
  border-style: solid;
  border-color: transparent;
  border-width: 100px 64px 92px;
  border-image: var(--scroll-art) 230 125 215 125 fill / 100px 64px 92px / 0 stretch;
  padding: 0 16px;
  filter: drop-shadow(0 18px 20px #0008);
}
.scroll-header { padding: 0 8px 20px; text-align: center; }
.scroll-header h2 { margin-bottom: 20px; font-family: var(--serif); font-size: 3.75rem; font-weight: 400; line-height: 1.25; }
.scroll-header p { color: var(--ink); font-size: var(--text-copy); line-height: 1.625; }
.paper-scroll strong { font-weight: 600; }
.scroll-questions { margin: 0; padding: 0; list-style: none; counter-reset: privacy-question; }
.scroll-questions > li { counter-increment: privacy-question; position: relative; border-top: 1px solid #16161630; }
.scroll-questions > li:last-child { border-bottom: 1px solid #16161630; }
.privacy-scroll summary { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 14px 0; color: var(--ink); font-size: var(--text-control); font-weight: 600; line-height: 1.625; list-style: none; cursor: pointer; }
.privacy-scroll summary::-webkit-details-marker { display: none; }
.privacy-scroll summary::before { content: counter(privacy-question, decimal-leading-zero); flex-shrink: 0; color: #555; font-size: var(--text-note); font-weight: 400; }
.privacy-scroll summary::after { content: '+'; margin-left: auto; padding-left: 8px; font-size: 18px; font-weight: 400; line-height: 1; }
.privacy-scroll details[open] summary::after { content: '−'; }
.privacy-scroll details[open] { padding-bottom: 12px; }
.privacy-scroll details p { margin: 0 0 14px; color: var(--muted); font-size: var(--text-copy); line-height: 1.625; }
.paper-scroll a { overflow-wrap: anywhere; color: var(--ink); }
.scroll-steps { margin: 12px 0; padding-left: 20px; }
.scroll-steps li { padding: 4px 0; color: var(--muted); font-size: var(--text-copy); line-height: 1.625; }
.scroll-footer { padding: 20px 0 0; text-align: center; }
.scroll-footer > p { margin: 0; color: var(--muted); font-size: var(--text-body); line-height: 1.625; }
.scroll-footer .scroll-reference-note { margin-top: 6px; font-size: var(--text-note); }
.tests-scroll { width: min(1040px, calc(100% - 80px)); }
.tests-scroll .evidence-section { padding: 0; border: 0; }
.test-artifacts { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--soft-rule); color: var(--muted); font-size: var(--text-note); }
.test-artifacts > div { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 24px; }
.test-artifacts a { display: inline-flex; align-items: center; min-height: 44px; }
.test-artifacts p { margin: 8px 0 0; }

/* Status feedback cannot cover the editing controls indefinitely. */
#toast {
  position: fixed;
  left: 50%;
  bottom: max(20px, env(safe-area-inset-bottom));
  z-index: 100;
  width: max-content;
  max-width: min(600px, calc(100% - 32px));
  transform: translateX(-50%);
  padding: 13px 18px;
  border: 1px solid var(--strong-rule);
  background: var(--ink);
  color: var(--paper);
  font-size: var(--text-body);
  line-height: 1.6;
  text-align: center;
  overflow-wrap: anywhere;
  pointer-events: none;
}
#toast:empty { display: none; }

/* Narrow screens keep image selection and export within easy reach. */
@media (max-width: 1000px) {
  :root { --text-display: 5rem; }
  .brand { padding: 12px; }
  .top-actions > button, .top-actions > .button, .top-actions > a { padding-right: 12px; padding-left: 12px; }
  .workspace { grid-template-columns: minmax(0, 1fr) 336px; }
  .productbar-inner { gap: 18px 32px; padding: 24px; }
  .productbar-mark { width: 72px; height: 72px; flex-basis: 72px; }
  .stage { padding: 18px; }
  .control-section { padding: 18px; }
  .evidence-section { padding: 26px 24px; }
}

@media (max-width: 760px) {
  :root { --text-display: 3.75rem; --text-copy: 1rem; --text-lead: 1rem; --text-section: 1.25rem; }
  .topbar { min-height: 62px; }
  .brand { min-height: 62px; padding: 12px; }
  .top-actions > button, .top-actions > .button, .top-actions > a { min-height: 60px; padding: 10px 12px; }
  .top-actions > #theme { width: 56px; min-width: 56px; }
  .productbar { margin-top: 12px; }
  main { gap: 12px; }
  .productbar-inner { display: block; padding: 22px 20px; }
  .productbar-lockup { gap: 10px; padding: 0; }
  .productbar-mark { width: 56px; height: 56px; flex-basis: 56px; }
  .productbar-mark-full { display: none; }
  .productbar-mark-small { display: block; }
  .productbar-name { font-size: 3.75rem; }
  .productbar-copy { min-width: 0; margin: 14px 0 0 66px; }
  .privacy-bar { padding-left: 18px; }
  .privacy-bar > div > span { padding-inline: 12px; }
  .privacy-bar > div > button { padding-inline: 12px; }
  .workspace { grid-template-columns: minmax(0, 1fr); }
  .controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 0; border-top: 1px solid var(--rule); }
  .control-section { border-bottom: 1px solid var(--soft-rule); }
  .control-section:nth-child(even) { border-left: 1px solid var(--soft-rule); }
  .control-section:last-child { border-bottom: 1px solid var(--soft-rule); }
  .stage { --stage-height: 420px; padding: 20px; }
  .dropzone { min-height: 280px; }
  .evidence-head { flex-direction: column; gap: 10px; }
  .evidence-note { align-items: flex-start; flex-direction: column; gap: 12px; }
  .evidence-head > button, .evidence-head > .button { align-self: flex-start; }
  .evidence-section h2 { font-size: 3rem; }
  .comparison-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .comparison figcaption { padding: 14px 16px; }
  .export-bar { padding: 18px 20px; }
  .export-bar > button, .export-bar > .button { flex: 1; }
  .page-footer { padding: 18px 20px; }
  dialog.dialog { width: calc(100% - 24px); max-width: calc(100% - 24px); max-height: calc(100dvh - 24px); }
  dialog.scroll-dialog { width: calc(100% - 16px); max-width: calc(100% - 16px); height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); }
  .paper-scroll { width: calc(100% - 32px); border-width: 100px 40px 95px; border-image-width: 100px 40px 95px; padding: 0 12px; margin-bottom: 24px; }
  .scroll-header h2 { font-size: 3rem; }
  .paper-page { padding: 16px; }
  .paper-page-inner { border-width: 84px 40px 78px; border-image-width: 84px 40px 78px; padding: 0 12px; }
  .build-facts { grid-template-columns: 1fr; }
  .build-facts > div + div { border-top: 1px solid var(--rule); border-left: 0; }
}

@media (max-width: 580px) {
  .privacy-bar { align-items: stretch; gap: 0; padding: 0; }
  .privacy-bar h2 { width: 100%; padding: 13px 16px; border-bottom: 1px solid var(--rule); }
  .privacy-bar > div { width: 100%; justify-content: space-between; }
  .privacy-bar > div > span { border-left: 0; padding-left: 16px; }
  .privacy-bar > div > button { padding-inline: 10px; }
}

@media (max-width: 480px) {
  body { font-size: var(--text-body); }
  .topbar { flex-wrap: wrap; }
  .brand { width: 100%; min-height: 72px; border-right: 0; border-bottom: 1px solid var(--rule); padding: 18px 16px; }
  .top-actions { width: 100%; justify-content: flex-end; }
  .top-actions > button, .top-actions > .button, .top-actions > a { padding: 10px; font-size: var(--text-note); }
  .productbar-lockup { padding: 0; }
  .productbar-inner { padding: 22px 16px; }
  .productbar-mark { width: 52px; height: 52px; flex-basis: 52px; }
  .productbar-name { font-size: 3.125rem; }
  .productbar-copy { margin-left: 0; }
  .eyebrow { font-size: var(--text-note); }
  .editor-toolbar { padding: 8px 12px; gap: 8px; }
  .editor-toolbar > div { gap: 4px; }
  .editor-toolbar .zoom-controls { gap: 0; }
  .editor-toolbar button, .editor-toolbar .button { padding: 8px; }
  #zoom-fit { min-width: 76px; }
  .stage { --stage-height: 320px; padding: 14px; }
  .dropzone { min-height: 260px; padding: 24px 12px; }
  .dropzone h2, .dropzone h3, .dropzone > strong { font-size: 2.5rem; }
  .dropzone p { font-size: var(--text-note); }
  .editor-bottom { padding: 12px 16px; }
  .image-actions { padding: 12px 16px; }
  .control-row.image-actions > button { flex: 1; }
  .image-actions > label { margin-left: 0; width: 100%; }
  .controls { display: block; }
  .control-section { padding: 20px; }
  .control-section:nth-child(even) { border-left: 0; }
  .mode-button { min-height: 76px; }
  .control-row > button { min-height: 46px; }
  .export-bar { align-items: stretch; flex-direction: column; padding: 18px 20px; }
  .export-bar > button, .export-bar > .button { width: 100%; }
  .notice { padding: 13px 20px; }
  .evidence-section { padding: 28px 20px; }
  .evidence-section h2 { font-size: 3rem; }
  .evidence-table th, .evidence-table td { padding: 12px 10px; font-size: var(--text-note); }
  .page-footer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .page-footer > div { gap: 6px 20px; }
  .footer-links { gap: 4px 18px; }
  .legal-page-head { align-items: flex-start; flex-direction: column; padding: 18px 16px; }
  .legal-copy { padding: 24px 16px 32px; }
  dialog.dialog { width: calc(100% - 16px); max-width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .dialog-head { padding: 8px 18px; gap: 12px; }
  .dialog-head h2 { font-size: 1.5rem; }
  .dialog-body { padding: 20px 18px; }
  .dialog-body > h2 { font-size: 2.25rem; }
  .dialog-actions { flex-direction: column; padding: 18px; }
  .dialog-actions > button, .dialog-actions > .button { width: 100%; min-height: 48px; }
  .mode-comparison { grid-template-columns: minmax(0, 1fr); }
  .mode-comparison > section + section { border-top: 1px solid var(--rule); border-left: 0; }
  .step-list { padding-left: 20px; }
  .step-list li { padding-left: 4px; }
  .scroll-toolbar { min-height: 56px; padding: 8px 10px 0; }
  .scroll-toolbar > button { min-width: 44px; min-height: 44px; }
  .paper-scroll { width: calc(100% - 8px); border-width: 64px 22px 60px; border-image-width: 64px 22px 60px; padding: 0 12px; }
  .scroll-header { padding: 0 0 18px; }
  .scroll-header h2 { font-size: 2.5rem; margin-bottom: 20px; }
  .privacy-scroll summary { gap: 8px; font-size: var(--text-body); }
  .privacy-scroll summary::after { padding-left: 0; }
  .scroll-footer { padding-top: 20px; }
  .paper-page { padding: 8px; }
  .paper-page-inner { border-width: 64px 22px 60px; border-image-width: 64px 22px 60px; padding: 0 10px; }
  .article-header { padding-bottom: 30px; }
  .paper-page-inner > section { padding: 28px 0; }
  .paper-page p, .paper-page li, .paper-page dd { font-size: 1rem; }
  .detail-list { columns: 1; }
  .build-facts-wide > div { display: block; }
  .build-facts-wide dt { margin-bottom: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  button:active:not(:disabled), .button:active { transform: none; }
}

@media (forced-colors: active) {
  .mode-button.selected, .mode-button[aria-pressed='true'] { border: 3px solid Highlight; box-shadow: none; }
  .primary { border: 2px solid ButtonText; }
  .method-tag { border-color: CanvasText; }
  #toast { border: 2px solid CanvasText; }
  .paper-scroll { border-image: none; background: Canvas; color: CanvasText; filter: none; }
  .paper-scroll p, .paper-scroll summary, .paper-scroll a { color: CanvasText; }
  .paper-page, .paper-page-inner { border-image: none; background: Canvas; color: CanvasText; filter: none; }
  .paper-page p, .paper-page li, .paper-page dd, .paper-page a { color: CanvasText; }
}

@media print {
  .topbar, .page-footer, .skip-link { display: none; }
  .shell, .paper-page, .paper-page-inner { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; background: white; color: black; filter: none; }
  .paper-page-inner > section { break-inside: avoid; }
}
