/* SSDC — plain editorial site, no frameworks or remote style dependencies. */
:root { color-scheme: light; }
* { box-sizing: border-box; }
html { scroll-behavior: auto; }
body { color: #111; background: #fff; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.65; }
a, a:visited { color: #111; text-decoration: underline; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
a:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.site-header, .site-footer { padding: 18px max(22px, calc((100% - 980px) / 2)); }
.site-header { border-bottom: 1px solid #333; }
.brand { font: bold 1.05rem/1.3 Arial, Helvetica, sans-serif; letter-spacing: 0.045em; text-decoration: none; display: inline-block; margin-bottom: 12px; }
.site-nav, .site-footer nav { display: flex; gap: 10px 22px; flex-wrap: wrap; font: 0.82rem/1.5 Arial, Helvetica, sans-serif; }
.site-nav a[aria-current="page"] { font-weight: 700; text-decoration-thickness: 2px; }
main { width: min(860px, calc(100% - 44px)); margin: 0 auto; padding: 46px 0 100px; }
article { max-width: 760px; }
article > h1:first-child { margin-top: 0; font-size: clamp(2.3rem, 6vw, 4.4rem); line-height: 1.1; letter-spacing: -0.028em; }
h1, h2, h3, h4 { line-height: 1.19; }
h1 { font-size: clamp(2.2rem, 5vw, 3.5rem); margin: 1.5em 0 .4em; }
h2 { font-size: clamp(1.6rem, 3.5vw, 2.3rem); margin: 2.35em 0 .52em; }
h3 { font-size: 1.34rem; margin: 1.7em 0 .4em; }
h4 { font-size: 1.09rem; margin: 1.4em 0 .35em; }
p { margin: .75em 0 1.15em; }
strong { font-weight: 700; }
blockquote { margin: 1.55em 0 1.75em; border-left: 3px solid #111; padding: .07em 0 .07em 18px; }
blockquote p { margin: .45em 0; }
ul, ol { padding-left: 1.5em; }
li { margin-bottom: .4em; }
hr { border: 0; border-top: 1px solid #333; margin: 3.5em 0; }
small, .eyebrow, .updated { font: .83rem/1.55 Arial, Helvetica, sans-serif; }
.eyebrow { text-transform: uppercase; font-weight: bold; letter-spacing: .09em; margin-bottom: 18px; }
.dek { font-size: 1.2rem; line-height: 1.52; }
.link-line { font-family: Arial, Helvetica, sans-serif; font-size: .93rem; margin-top: 1.8em; }
.link-line a { margin-right: 20px; display: inline-block; margin-bottom: 10px; }
.toc { padding: 18px 20px; border: 1px solid #999; margin: 2.4em 0 3em; }
.toc strong { font: bold .85rem Arial, Helvetica, sans-serif; }
.toc ol { columns: 2; column-gap: 30px; padding-left: 1.3em; font: .83rem/1.6 Arial, Helvetica, sans-serif; margin-bottom: 0; }
.toc li { break-inside: avoid; }
.reading-note { font-size: .92rem; border-top: 1px solid #888; border-bottom: 1px solid #888; padding: 14px 0; margin: 20px 0; }
.site-footer { border-top: 1px solid #333; }
.site-footer p { margin: .8em 0 1em; font-size: .86rem; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; font-size: .9rem; }
th, td { text-align: left; border-bottom: 1px solid #999; padding: 10px 12px 10px 0; vertical-align: top; }
th { border-bottom: 2px solid #111; }
.skip-link { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { position:static; width:auto; height:auto; display:block; padding:10px; }
@media (max-width: 650px) { body { font-size: 17px; } main { padding: 30px 0 72px; } .toc ol { columns: 1; } .site-nav { gap: 8px 15px; } }
@media print { .site-nav, .toc, .skip-link { display: none; } body { font-size: 12pt; } a { color: black; } main { padding: 0; } }

.book-section { padding: 2em 0 6em; border-bottom: 2px solid #111; }
.book-section:last-child { border-bottom: 0; }
.single-nav { display: flex; flex-wrap: wrap; gap: 12px 22px; font: .85rem Arial, sans-serif; }

/* Homepage terms and evidence: compact, unobtrusive, no external assets. */
.ssdc-popover { display:inline; position:relative; white-space:normal; }
.ssdc-pop-trigger { display:inline; padding:0; border:0; border-bottom:1px dotted currentColor; margin:0; background:none; color:inherit; font:inherit; cursor:help; vertical-align:baseline; text-align:inherit; }
.ssdc-pop-trigger:hover { border-bottom-style:solid; }
.ssdc-pop-trigger:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.ssdc-pop-panel { display:none; position:fixed; z-index:200; left:14px; top:14px; width:380px; max-width:calc(100vw - 28px); max-height:min(68vh,570px); overflow-y:auto; overscroll-behavior:contain; color:#111; background:#fff; border:1px solid #111; box-shadow:3px 4px 0 #ddd; padding:20px 21px 19px; font:.88rem/1.5 Arial,Helvetica,sans-serif; text-align:left; font-weight:400; letter-spacing:normal; text-transform:none; }
.ssdc-popover.is-open > .ssdc-pop-panel, .ssdc-popover:focus-within > .ssdc-pop-panel { display:block; }
@media (hover:hover) and (pointer:fine) { .ssdc-popover:not(.ssdc-suppress-hover):hover > .ssdc-pop-panel { display:block; } }
.ssdc-pop-eyebrow { display:block; font-size:.67rem; text-transform:uppercase; letter-spacing:.10em; color:#555; font-weight:bold; margin:0 0 7px; }
.ssdc-pop-title { display:block; font:700 1.05rem/1.25 Georgia,'Times New Roman',serif; margin:0 0 10px; }
.ssdc-pop-definition { display:block; margin:0 0 12px; line-height:1.5; }
.ssdc-pop-sources { display:block; margin:10px 0 0; }
.ssdc-pop-source { display:block; border-top:1px solid #eee; padding:10px 0 0; margin:0 0 6px; }
.ssdc-pop-source a { color:#111; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
.ssdc-source-description { display:block; color:#333; margin-top:3px; line-height:1.42; }
.ssdc-pop-note { display:block; border-top:1px solid #ccc; padding-top:9px; color:#555; font-size:.78rem; margin:8px 0 0; }
#page-index > p:first-of-type { font-size:1.05em; }
#page-index ul { margin:0.5em 0 1.3em; }
#page-index li { margin-bottom:.55em; }
@media (max-width:650px) { .ssdc-pop-panel { width:min(340px,calc(100vw - 28px)); padding:16px 17px; max-height:65vh; font-size:.83rem; } }
@media print { .ssdc-pop-panel { display:none!important; } .ssdc-pop-trigger { border-bottom:0; } }

/* Shared editorial page styles. */




/* About page: compact editorial lists. */
#page-ssdc .ssdc-about-capabilities { columns: 2; column-gap: 2.7em; }
#page-ssdc .ssdc-about-capabilities li { break-inside: avoid; }
#page-ssdc .ssdc-about-recursion li { margin-bottom: .4em; }
@media (max-width:650px) { #page-ssdc .ssdc-about-capabilities { columns: 1; } }

/* Roadmap page: readable phases. */
#page-roadmap .ssdc-roadmap-phases li { margin-bottom: .8em; }

/* Embedded SSDC diagrams — full-width editorial figures with touch-safe horizontal pan for detailed originals. */
.ssdc-figure {
  --figure-width: 1080px;
  --diagram-mobile-width: 700px;
  width: min(var(--figure-width), calc(100vw - 36px));
  max-width: none;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin: 2.3em 0 2.6em;
  padding: 0;
}
.ssdc-figure--stack { --figure-width: 650px; --diagram-mobile-width: 510px; }
.ssdc-figure--matrix { --figure-width: 1080px; --diagram-mobile-width: 900px; }
.ssdc-figure--wide { --figure-width: 1120px; --diagram-mobile-width: 870px; }
.ssdc-figure--network { --figure-width: 1030px; --diagram-mobile-width: 760px; }
.ssdc-figure--roadmap { --figure-width: 1160px; --diagram-mobile-width: 1000px; }
.ssdc-figure-media {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid #dedede;
  border-radius: 3px;
  background: #fff;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
}
.ssdc-figure-media > a {
  display: block;
  width: 100%;
  color: inherit;
  text-decoration: none;
}
.ssdc-figure-media img {
  display: block;
  height: auto;
  width: 100%;
  max-width: none;
  object-fit: contain;
}
.ssdc-figure figcaption {
  margin: 0;
  padding: 10px 1px 0;
  font: 0.83rem/1.55 Arial, Helvetica, sans-serif;
  color: #4b4b4b;
}
.ssdc-figure-pan-hint { display: none; }
.ssdc-figure figcaption .ssdc-figure-view {
  display: inline-block;
  margin-left: .7em;
  white-space: nowrap;
  font-size: 0.96em;
  text-underline-offset: 2px;
}
@media (max-width: 720px) {
  .ssdc-figure { width: calc(100vw - 28px); margin: 2em 0 2.3em; }
  .ssdc-figure-media > a { width: max(100%, var(--diagram-mobile-width)); }
  .ssdc-figure figcaption { padding-top: 9px; font-size: .79rem; }
  .ssdc-figure-pan-hint { display: inline; }
}
@media print {
  .ssdc-figure { left: auto; transform: none; width: 100%; break-inside: avoid; }
  .ssdc-figure-media { overflow: visible; border-color: #aaa; }
  .ssdc-figure-media > a { width: 100%; }
  .ssdc-figure img { width: 100%; }
  .ssdc-figure-view { display: none !important; }
}
