/* Shared accessibility baseline. Load after each page's design stylesheet. */
:root {
  --ink-soft: #373e33;
  --muted: #373e33;
  --rust: #71200f;
  --lime-deep: #314600;
  --line-strong: #62695c;
}

html { scroll-behavior: auto; }
body { min-width: 0; overflow-x: visible; font-size: 1rem; line-height: 1.6; }
body, .deck-body { background-image: none; }
body::before, .flow-node::after, .stage-card::after { display: none; }
*, *::before, *::after { animation: none !important; transition: none !important; }
main, section, article, aside, nav, header, footer, form, fieldset { min-width: 0; }
p, li, dd, dt, label, legend { overflow-wrap: anywhere; }
p { max-width: 70ch; line-height: 1.6 !important; text-align: start; }
h1, h2, h3, h4 { overflow-wrap: anywhere; line-height: 1.15 !important; letter-spacing: -0.025em !important; }
a { overflow-wrap: anywhere; }
button, input, select, textarea, summary { font: inherit; }
button, select, input:not([type="checkbox"]):not([type="radio"]), summary,
.wordmark, nav a, .button, .nav-button, .icon-button {
  min-width: 44px;
  min-height: 44px;
}
button, select, summary, nav a { touch-action: manipulation; }
nav a, .wordmark { display: inline-flex; align-items: center; }
nav a { padding-block: 0.5rem; }
.skip-link, footer > a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
button, .button, .icon-button, .nav-button { white-space: normal; max-width: 100%; overflow-wrap: anywhere; }
input, select, textarea { max-width: 100%; }
:is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid #101510;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #ffffff;
}
:target, [tabindex], h1, h2 { scroll-margin-block: 1rem; }
.button:hover { background: var(--ink); color: var(--paper); }
button:hover, .button:hover { transform: none !important; }
.button--lime:hover { color: var(--lime); }
.landing-nav, .app-nav, .deck-chrome, .deck-actions, .deck-meta, nav,
.deck-nav, .slide-head { flex-wrap: wrap; gap: 0.75rem; }
.landing-nav nav, .app-nav nav { flex-wrap: wrap; }
.landing-nav nav a:first-child, .slide-foot p:last-child,
.nav-button span:not(.nav-arrow) { display: inline; }
.landing-nav nav a { display: inline-flex; }
.landing-nav nav a:last-child { border: 0; padding-inline: 0; }
.landing-nav nav a:last-child:hover { background: transparent; color: var(--rust); }
.landing-shell, .app-shell, .deck, .deck-chrome, .deck-nav, .progress-track,
[data-display-settings] { width: min(calc(100% - 2rem), 88rem); margin-inline: auto; }
.app-shell [data-display-settings], .landing-shell [data-display-settings] { width: 100%; }
.deck-body { display: block; }
.slide { height: auto; min-height: calc(100svh - 15rem); overflow: visible; }
.slide > * + * { margin-block-start: 1.5rem; }
.slide h1, .slide h2 { max-width: 22ch; }
.landing-hero { min-height: auto; padding-block: 3rem 4rem; }
.landing-hero h1 { font-size: clamp(2.5rem, 6vw, 5.5rem); }
.slide h1 { font-size: clamp(2.5rem, 5.5vw, 5rem); }
.slide h2 { font-size: clamp(2.25rem, 3.8vw, 3.5rem); }
.terminal-card, .title-card { transform: none; }
.terminal-body .muted { color: #c3cbbc; }
.panel--auth .kicker, .principle-card:nth-child(2) .card-number { color: #c3cbbc; }
.app-hero > *, .boundary-banner > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.code-strip { white-space: normal; overflow-wrap: anywhere; overflow-x: visible; }
.matrix .yes { color: #314600; }
.key-guide { max-height: calc(100svh - 2rem); overflow: auto; padding: 0.5rem; }
.key-guide-inner { padding: 1rem; }
.key-list { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.key-list dt, .key-list dd { overflow-wrap: anywhere; }
.eyebrow, .micro-label, .kicker, .hero-note, .flow-number, .source-note,
.landing-footer, .deck-meta, .slide-topic, .slide-mark, .slide-foot,
.card-number, .slide-counter, .hypothesis-note { font-size: 0.875rem; }
.boundary-card--not a:hover, .team-card a:hover { color: var(--lime); }

footer { flex-wrap: wrap; }
footer [data-display-settings] { flex: 1 0 100%; width: 100%; margin: 0; }
.pitch-footer { width: min(calc(100% - 2rem), 88rem); margin: 0 auto; padding-block: 1rem; }
.display-settings { max-width: 48rem; margin: 0; padding: 0; border: 0; font-size: 0.875rem; letter-spacing: normal; text-transform: none; }
.display-settings summary { width: fit-content; max-width: 100%; cursor: pointer; padding: 0.5rem 0; font-weight: 400; }
.display-settings summary:hover { text-decoration: underline; }
.display-settings[open] { padding: 0 1rem 1rem; border: 1px solid var(--line-strong); }
.display-settings .settings-fields { display: flex; flex-wrap: wrap; gap: 1rem; margin-block: 1rem; }
.display-settings label { display: flex; flex-direction: column; gap: 0.4rem; flex: 1 1 12rem; min-width: 0; max-width: 100%; }
.display-settings select { width: 100%; min-width: 44px; padding: 0.5rem; border: 1px solid var(--ink); background: var(--white); color: var(--ink); }
.display-settings p { margin-block: 1rem 0.5rem; }
.display-settings button { padding: 0.5rem 1rem; border: 1px solid var(--ink); background: var(--paper); color: var(--ink); }
.plain-summary { padding: 1rem; border-inline-start: 4px solid var(--ink); background: var(--white); color: var(--ink); }
.accessibility-main { max-width: 72ch; padding-block: 2rem; margin-inline: auto; }
.accessibility-main section { margin-block: 3rem; }
.accessibility-main h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
.accessibility-main h2 { font-size: 1.7rem; }
.accessibility-main dt { margin-block-start: 1.5rem; font-weight: 700; }
.accessibility-main dd { margin-inline-start: 0; }
.accessibility-main li { margin-block: 0.75rem; }
.site-map { display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem; padding: 0; list-style: none; }
.site-map a { display: inline-flex; align-items: center; min-height: 44px; }
.slide-index { width: min(calc(100% - 2rem), 88rem); margin: 1.5rem auto; }
.slide-index ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 0.75rem 1.5rem; padding-inline-start: 1.5rem; }
.slide-index a { min-height: 44px; }
.deck-nav .slide-index { width: auto; margin: 0; }
.slide-index summary { display: list-item; cursor: pointer; padding-block: 0.5rem; font-size: 0.875rem; }
.deck-nav .slide-index[open] { flex-basis: 100%; order: 4; }

/* Preferences are explicit, reversible, non-sensitive and local to this browser. */
html[data-text-size="125"] { font-size: 125%; }
html[data-text-size="150"] { font-size: 150%; }
html[data-text-size="200"] { font-size: 200%; }
html[data-reading="spacious"] p { line-height: 1.6 !important; margin-block-end: 2.4em !important; }
html[data-reading="spacious"] :is(p, li, dd) { max-width: 65ch; }
html[data-reading="spacious"] :is(.three-up, .four-up, .principle-grid, .hypothesis-grid,
  .metric-rail, .title-layout, .team-layout, .landing-hero, .flow-track, .stage-rail,
  .audience-rail, .timeline, .boundary-grid) { grid-template-columns: minmax(0, 1fr); }
html[data-theme="light"] { --reading-fg: #101510; --reading-bg: #ffffff; color-scheme: light; }
html[data-theme="dark"] { --reading-fg: #ffffff; --reading-bg: #101510; color-scheme: dark; }
html[data-theme="cream"] { --reading-fg: #17223b; --reading-bg: #fff2cc; color-scheme: light; }
html[data-theme] body, html[data-theme] body *:not(option) {
  background-color: var(--reading-bg) !important;
  background-image: none !important;
  color: var(--reading-fg) !important;
  border-color: var(--reading-fg) !important;
}
html[data-theme] option { color: var(--reading-fg); background: var(--reading-bg); }
html[data-theme] a { text-decoration: underline; }
html[data-theme] body::before { display: none; }
html[data-theme] :is(.button, button):hover { text-decoration: underline; }

@media (max-width: 60rem) {
  .landing-hero, .app-hero, .title-layout, .team-layout, .section-heading { display: block; }
  .app-hero h1 { max-width: 100%; }
  .flow-track, .stage-rail, .audience-rail, .timeline, .boundary-grid, .three-up,
  .four-up, .principle-grid, .hypothesis-grid, .metric-rail { grid-template-columns: minmax(0, 1fr); }
  .slide h1, .slide h2, .landing-hero h1, .app-hero h1 { max-width: 100%; font-size: clamp(2rem, 8vw, 3.5rem); }
  .deck-chrome, .landing-nav, .app-nav { padding-block: 0.75rem; }
  .title-card, .terminal-card, .team-card { margin-inline: 0; box-shadow: none; }
  .slide-mark { display: inline-block; }
  .deck-nav { padding-block: 1rem; }
  .terminal-body { padding: 1rem; }
}
@media (forced-colors: active) {
  :is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid Highlight; box-shadow: none;
  }
  html[data-theme] body, html[data-theme] body * { background: Canvas !important; color: CanvasText !important; border-color: CanvasText !important; }
  html[data-theme] a { color: LinkText !important; }
}
@media print {
  [data-display-settings], .site-map { display: none; }
  .slide { height: auto; }
}
