/* SIR presentation system, based on The Officers Said No.
   Opt-in: cyberspace deck only. Gold matches the law-enforcement presentation. */
@font-face {
  font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url('/assets/fonts/dm-sans-latin-d4ee5360ef.woff2') format('woff2');
}
@font-face {
  font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url('/assets/fonts/jetbrains-mono-latin-cc27b30471.woff2') format('woff2');
}
html.sir-presentation {
  --ink: #0b1012; --ink-soft: #111719; --ink-raised: #161d20;
  --white: #fbfaf5; --paper: #f1efe7; --muted: #aab2ae; --muted-meta: #7b8581;
  --gold: #e5b94f; --gold-dark: #cb902d; --gold-light: #f5db98;
  --line: rgba(242,242,234,.14); --line-strong: rgba(242,242,234,.27);
  --sans: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, monospace;
  --bg: var(--ink); --bg-elev: var(--ink-soft); --bg-elev-2: var(--ink-raised);
  --fg: var(--paper); --fg-muted: var(--muted); --fg-dim: var(--muted);
  --border: var(--line); --border-strong: var(--line-strong);
  --a1: var(--gold-dark); --a2: var(--gold); --a3: var(--gold); --a4: var(--gold-light);
  --accent: var(--gold); --mute: var(--muted-meta);
  --grad: linear-gradient(105deg, var(--gold-dark), var(--gold) 55%, var(--gold-light));
  font-size: clamp(16px, calc(10px + .1vw + .78vh), 24px);
  color-scheme: dark;
}
.sir-presentation body { background: var(--bg); }
.sir-presentation .slide { inset: 5.5rem 0 3rem; padding: 1.3rem 7vw 3rem; animation: none; }
.sir-presentation .sir-slide-inner { width: 100%; max-width: 1100px; margin-inline: auto; flex-shrink: 0; min-width: 0; }
.sir-presentation .sir-slide-inner > :last-child { margin-bottom: 0; }
.sir-presentation .eyebrow { color: var(--accent); font-size: .7rem; letter-spacing: .14em; margin-bottom: 1.2rem; }
.sir-presentation .sir-slide-inner > :is(h1,h2) { font: 650 clamp(2rem,4.2vw,3.5rem)/1.1 var(--sans); letter-spacing: -.035em; margin: 0 0 1.2rem; max-width: 30ch; }
.sir-presentation #s1 h1 { font-size: clamp(2.8rem,5.4vw,4.5rem); max-width: 22ch; }
.sir-presentation .hero { font-size: clamp(2.5rem,5vw,4rem); line-height: 1.1; font-weight: 650; }
.sir-presentation p, .sir-presentation li { line-height: 1.6; }
.sir-presentation .lede { font-size: clamp(1.12rem,1.6vw,1.4rem); line-height: 1.5; max-width: 65ch; }
.sir-presentation :is(.card,.kpi,.dependency-card,.it-detail) { background: var(--bg-elev); border-color: var(--border); border-radius: 12px; }
.sir-presentation :is(.card,.kpi) { padding: 1.2rem 1.4rem; }
.sir-presentation .kpi .v { color: var(--accent); }
.sir-presentation .kpi .l { color: var(--fg-muted); font-size: .86rem; }
.sir-presentation .callout { border-left-color: var(--accent); padding: .9rem 1.1rem; }
.sir-presentation .quote { border-color: var(--accent); }
.sir-presentation .sir-slide-inner > :is(.fine,.note,.cite,.sector-sources) { border-top: 1px solid var(--border); padding-top: .8rem; margin-top: 1.2rem; }
.sir-presentation .fine { font-size: .72rem; line-height: 1.65; }
.sir-presentation .note { font-size: .85rem; }
.sir-presentation .tag { border-color: var(--border-strong); font-size: .64rem; }
.sir-presentation .nav { top: 1.3rem; right: 1.7rem; left: 1.7rem; gap: .4rem; }
.sir-presentation .nav :is(a,button) { display: inline-flex; justify-content: center; align-items: center; min-height: 2.1rem; height: auto; padding: .35rem .65rem; border-radius: 10px; background: var(--bg); font: 400 .8rem/1.25 var(--sans); color: var(--fg-muted) !important; transform: none; }
.sir-presentation .nav :is(a,button):is(:hover,:focus-visible,[aria-current=page],[aria-pressed=true]) { border-color: var(--accent); color: var(--accent) !important; background: var(--bg-elev); }
.sir-presentation .nav button:disabled { opacity: .4; cursor: default; }
.sir-presentation .brand { font-size: .62rem; letter-spacing: .13em; max-width: 75vw; }
.sir-presentation .num { font-size: .7rem; letter-spacing: .1em; }
.sir-presentation :is(.brand,.num) { bottom: 1.3rem; }
.sir-presentation .btn-primary { color: var(--ink); background: var(--accent); }
.sir-presentation .chip:hover { transform: none; }
.sir-presentation :is(a,button,summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
/* The same plain-language text now stays with its slide instead of covering it. */
.sir-presentation #plain { position: static; width: 100%; max-width: 74ch; background: var(--bg-elev); border: 1px solid var(--border); box-shadow: none; backdrop-filter: none; margin-top: 1.4rem; padding: 1rem 1.2rem; }
.sir-presentation #plain .ph button { min-width: 44px; min-height: 44px; }
.sir-presentation #plain .ph { margin-bottom: .25rem; }
.sir-presentation #dock { background: var(--bg-elev); }
.sir-presentation #reader { background: var(--bg); }
/* Keep the diagrams' structure, selection states, and source details. */
.sir-presentation .sector-grid li { background: var(--bg-elev); }
.sir-presentation .sector-grid button[aria-pressed=true],
.sir-presentation .it-sector-button[aria-pressed=true] { background: color-mix(in srgb,var(--accent) 15%,var(--bg)); color: var(--fg); border-color: var(--accent); box-shadow: none; }
.sir-presentation .it-sector-button { background: var(--bg-elev); border-color: var(--border-strong); color: var(--fg-muted); }
.sir-presentation .it-sector-button:is(:hover,:focus-visible) { background: var(--bg-elev-2); border-color: var(--accent); box-shadow: none; }
.sir-presentation .it-sector-button svg { color: var(--accent); }
.sir-presentation .it-core { background: var(--bg-elev); border-color: var(--accent); box-shadow: 0 0 0 8px color-mix(in srgb,var(--accent) 4%,transparent); }
.sir-presentation .it-core > svg { stroke: var(--accent); }
.sir-presentation .it-detail-sector, .sir-presentation .it-example-source :is(a,summary) { color: var(--accent); }
.sir-presentation .it-radial::before { background: none; }
.sir-presentation .it-radial-slide .sir-slide-inner > .lede { font-size: 1rem; margin-bottom: .4rem; }
.sir-presentation .it-radial-slide .sir-slide-inner > .it-network-caption { font-size: .75rem; line-height: 1.5; }
/* Older diagram rules contain literal blue colours rather than theme tokens. */
.sir-presentation .sector-grid li.highlight,
.sir-presentation .dependency-controls button[aria-pressed=true],
.sir-presentation .sector-explorer .sector-grid button:is([aria-pressed=true],.preset-focus),
.sir-presentation .dependency-node.dependency-focus,
.sir-presentation .it-hub { background: color-mix(in srgb,var(--gold) 10%,var(--bg)); border-color: var(--gold); box-shadow: none; }
.sir-presentation .sector-explorer .sector-grid button:hover { border-color: var(--gold); }
.sir-presentation .sector-explorer .sector-grid button.connected,
.sir-presentation .dependency-node,
.sir-presentation .it-sector-bank li { border-color: var(--border-strong); }
.sir-presentation .dep-node rect { stroke: var(--muted-meta); }
.sir-presentation .dep-target rect { fill: var(--bg-elev); stroke: var(--gold); }
.sir-presentation .it-orbit-ring { stroke: color-mix(in srgb,var(--gold) 15%,transparent); }
.sir-presentation .it-link { stroke: var(--gold-dark); }
.sir-presentation .it-link:is(.is-active,.is-preview),
.sir-presentation .it-radial.has-selection .it-link:is(.is-active,.is-preview) { stroke: var(--gold-light); filter: drop-shadow(0 0 4px #e5b94f66); }
.sir-presentation .it-sector-button[aria-pressed=true] svg { color: var(--gold-light); }
.sir-presentation .it-sector-button:focus-visible { outline-color: var(--gold-light); }
.sir-presentation .it-core small { color: var(--fg-muted); }
.sir-presentation .it-core-kicker { color: var(--gold); }
.sir-presentation .it-sector-list::before { border-color: var(--gold); }
@media (min-width:701px) and (max-width:1000px) {
  .sir-presentation .slide { inset-block-start: 6.5rem; padding-top: 1.3rem; }
  .sir-presentation .c3,.sir-presentation .c4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width:700px) {
  html.sir-presentation { font-size: 16px; }
  .sir-presentation .slide { inset: auto; padding: 2.6rem 1.2rem 2.2rem; }
  .sir-presentation .sir-mobile-study-nav { background: var(--bg); gap: .4rem; padding: .65rem .8rem; justify-content: flex-start; }
  .sir-presentation .sir-mobile-study-nav a { min-height: 44px; border: 1px solid var(--border); border-radius: 10px; padding: .45rem .65rem; color: var(--fg-muted); font: 400 .8rem/1.25 var(--sans); }
  .sir-presentation .sir-mobile-study-nav--research ~ .slide { scroll-margin-top: 12rem; }
  .sir-presentation .sir-slide-inner > :is(h1,h2) { font-size: 2rem; }
  .sir-presentation #s1 h1 { font-size: 3rem; }
  .sir-presentation .eyebrow { font-size: .64rem; }
  .sir-presentation .lede { font-size: 1.12rem; }
  .sir-presentation .c3,.sir-presentation .c4 { grid-template-columns: 1fr; }
  .sir-presentation .mplain { background: var(--bg-elev); padding: .75rem 1rem; }
  .sir-presentation .mplain summary { min-height: 44px; display: flex; align-items: center; }
  .sir-presentation :is(.dependency-card,.it-detail) { scroll-margin-top: 12rem; }
}
@media (prefers-reduced-motion:reduce) {
  .sir-presentation *, .sir-presentation *::before, .sir-presentation *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  html.sir-presentation { color-scheme: light; font-size: 11pt; }
  .sir-presentation body { background: white; }
  .sir-presentation .slide { padding: .3in; }
  .sir-presentation .sir-slide-inner { max-width: none; }
  .sir-presentation .sir-slide-inner > :is(h1,h2), .sir-presentation #s1 h1 { font-size: 26pt; }
  .sir-presentation .card,.sir-presentation .kpi,.sir-presentation .callout { break-inside: avoid; }
}
