/* Site-wide look for every page except the homepage (v12, Paul, Nov 1 2026; WEB-227 SIXTH). Style only.
   Loaded after restored-site.css and home.css on body.gl-site pages. The colour layer below is generated by
   scripts/make_site_css.py from restored-site.css: the homepage palette (white paper, near-black ink, deep blue). */
body.gl-site{--ink:#0b1118;--muted:#404953;--line:#d9e0e5;--accent:#105e9d;--blue:#115e9c;--green:#3d7053;--paper:#fcfcfd}
body.gl-site{background:#f9f8f8}
:where(body.gl-site) a:not(.gl-link):hover{color:#0b1118}
:where(body.gl-site) .lede,:where(body.gl-site) .lead{color:#192028}
:where(body.gl-site) .home-content{background:#f9f8f8}
:where(body.gl-site) .home-content p{color:#333c45}
:where(body.gl-site) .front-door .lede{color:#181e26}
:where(body.gl-site) .button{background:#0a141f;color:#f5f5f6;border:1px solid #3c4650}
:where(body.gl-site) .button:hover{color:#f9f8f8}
:where(body.gl-site) .text-link{border-bottom:1px solid #d6dde3}
:where(body.gl-site) .reasoning-exhibit:before{background:radial-gradient(ellipse at 52% 55%,rgba(232,240,248,0.49),transparent 65%)}
:where(body.gl-site) .exhibit-caption{color:#525d68}
:where(body.gl-site) .flow-direction{border-bottom:1px solid #80a1bc}
:where(body.gl-site) .publication-feature .lede{color:#171e25}
:where(body.gl-site) .book-figure:after{background:linear-gradient(90deg,transparent,#e2e7ec,transparent);box-shadow:0 10px 25px rgba(11,17,24,0.0784)}
:where(body.gl-site) .principle-field span{color:#161d24}
:where(body.gl-site) .work-grid article{border-top:1px solid #d6dde3}
:where(body.gl-site) .work-grid article:first-child{border-top-color:#d6dde3}
:where(body.gl-site) .research-feature .lede{color:#192028}
:where(body.gl-site) blockquote{color:#3f596f}
:where(body.gl-site) .reading-index>a:not(.gl-link):hover{background:#f9fafb}
:where(body.gl-site) input,:where(body.gl-site) select,:where(body.gl-site) :is(button,:where(body.gl-site) :where(a.gl-link)){border:1px solid #d6dde3;color:#0b1118;background:#ffffff}
:where(body.gl-site) .source-edition{border:1px solid #d6dde3}
:where(body.gl-site) .scroll-invite{color:#3f596f}
:where(body.gl-site) .intro-caption{color:#3d4650}
body.gl-site{--black:#f9f8f8;--bg-0:#f4f6f8;--bg-1:#eef1f4;--bg-2:#e7ebef;--line:#d6dde3;--ui-line:#d6dde3;--ink:#0c1219;--text-2:#2c353d;--text-3:#444e58;--muted:#2c353d;--accent:#125e9b;--blue:#125e9b;--paper:#eef1f4}
:where(body.gl-site) .button{color:#f2f2f3;box-shadow:0 0 28px rgba(11,17,24,0.225)}
:where(body.gl-site) .button:hover{color:#f2f2f3;background:#115288}
:where(body.gl-site) .text-link,:where(body.gl-site) .work-grid article>a:not(.gl-link),:where(body.gl-site) .reading-links a:not(.gl-link),:where(body.gl-site) .concept-card,:where(body.gl-site) .reading-index>a:not(.gl-link),:where(body.gl-site) .library-item h2 a:not(.gl-link),:where(body.gl-site) .library-item-link{box-shadow:0 18px 50px rgba(9,20,32,0.096)}
:where(body.gl-site) .reasoning-exhibit{background:radial-gradient(ellipse at 50% 42%,rgba(22,82,131,0.22),transparent 62%),
    linear-gradient(180deg,#e7ebef,#f4f6f8);box-shadow:0 32px 80px rgba(9,20,32,0.135),inset 0 1px 0 rgba(11,17,24,0.03)}
:where(body.gl-site) .source-link,:where(body.gl-site) p.source-note>a:not(.gl-link),:where(body.gl-site) dd>a.source-link{box-shadow:0 8px 24px rgba(9,20,32,0.084)}
:where(body.gl-site) .scroll-invite{box-shadow:0 10px 28px rgba(9,20,32,0.105)}
:where(body.gl-site) .work-grid article,:where(body.gl-site) .book-figure,:where(body.gl-site) .principle-field span,:where(body.gl-site) .reading-index :is(button,:where(body.gl-site) :where(a.gl-link)),:where(body.gl-site) .research-body blockquote,:where(body.gl-site) .publication-feature figure{box-shadow:0 24px 60px rgba(9,20,32,0.105),inset 0 1px 0 rgba(11,17,24,0.03)}
:where(body.gl-site).document-page{background:radial-gradient(ellipse at 100% 0%, rgba(22,82,131,0.16), transparent 38%),
    var(--bg-0)}
:where(body.gl-site).document-page .business-section,:where(body.gl-site).document-page .provenance,:where(body.gl-site).document-page .concept-card,:where(body.gl-site).document-page details{box-shadow:0 22px 56px rgba(9,20,32,0.102), inset 0 1px 0 rgba(11,17,24,0.025)}
:where(body.gl-site) .prototype-status:before{background:#386149}
:where(body.gl-site) .route-bridge .gl-go>:is(button,:where(body.gl-site) :where(a.gl-link)){box-shadow:0 18px 50px rgba(9,20,32,0.096)}
:where(body.gl-site) .library-item h2 .gl-go>:is(button,:where(body.gl-site) :where(a.gl-link)){box-shadow:0 18px 50px rgba(9,20,32,0.096)}
/* ---- hand-written: type, layout and fixes (kept by make_site_css.py) ---- */
/* Type: the homepage pair, GL Serif for headings and GL Sans (Inter) for text; Cinzel and Plex retire on these pages. */
body.gl-site{font-family:var(--sans);color:#0b1118;background:#f9f8f8}
body.gl-site main{background:#f9f8f8;color:#0b1118}
body.gl-site main h1,body.gl-site main h2,body.gl-site main h3,body.gl-site .home-content h2{font-family:var(--serif);font-variation-settings:'opsz' 48;font-weight:560;letter-spacing:-.015em;line-height:1.12;color:#0b1016}
body.gl-site main h1{font-size:clamp(38px,5vw,64px);font-weight:520;letter-spacing:-.02em;line-height:1.04}
body.gl-site main h3{font-weight:600}
body.gl-site main p,body.gl-site main li,body.gl-site main dd{color:#3c454e}
body.gl-site main strong{color:#0b1118}
body.gl-site main .eyebrow,body.gl-site main .label{font-family:var(--sans);font-weight:600;letter-spacing:.2em;color:#1b222a}
/* Buttons used as links inside page content: homepage deep blue, 44px targets kept by restored-site.css. */
body.gl-site main .gl-go>:is(button,:where(a.gl-link)):not(.button){color:#0a5a9c}
body.gl-site main .gl-go>:is(button,:where(a.gl-link)):hover{color:#003059}
body.gl-site main :is(button,:where(a.gl-link)):focus-visible,body.gl-site main input:focus-visible,body.gl-site main select:focus-visible,body.gl-site main summary:focus-visible{outline:2px solid #0a6fb4;outline-offset:3px}
/* Surfaces: content cards are white on the paper, with a hairline and a soft shadow, like the homepage cards. */
body.gl-site{--bg-1:#f3f5f7;--bg-2:#ffffff}
body.gl-site.document-page{background:#f9f8f8}
body.gl-site.document-page .provenance{background:#f2f6fa;border-color:#d3dfe9}
/* Primary content buttons take the homepage navy button. */
body.gl-site main .button{background:#003059;border-color:#003059;color:#fff}
body.gl-site main .button:hover{background:#004374;color:#fff}
/* Header without Search or CTA: brand left, the five page links to the right. The caps brand name is set a size down. */
@media (min-width:900px){
  body.gl-site header#gl-home-bar{grid-template-columns:auto 1fr}
  body.gl-site #gl-home-bar nav{justify-self:end;width:auto;max-width:none;margin:0;gap:clamp(8px,calc(var(--p)*22),22px)}
}
@media (min-width:1280px){body.gl-site .gl-brand-name{font-size:calc(var(--p)*29);letter-spacing:.02em}}
/* restored-site.css still styles header.site-bar for its old wrapped phone header; undo that here so the shared
   home-bar layout from home.css holds at every width (items stay on one scrolling row below 900px). */
body.gl-site #gl-home-bar nav .gl-go{flex:none;width:auto;min-width:0;height:auto}
body.gl-site #gl-home-bar nav .gl-go>:is(button,:where(a.gl-link)){flex:none;width:auto;white-space:nowrap;box-shadow:none;border-bottom:0}
body.gl-site header#gl-home-bar{backdrop-filter:none}

/* ---- v12 round 2 (QA F4, Q1, Q2; WEB-227 SIXTH): the homepage band rhythm and card treatment on every page ---- */
/* Intro band: each page's title block (div.gl-intro from render_site.py, or the existing about/page-two hero section)
   sits on the homepage hero's near-black field with its deep-blue glow, full bleed; the body below stays on the light
   paper band and the dark footer closes the page, as on the homepage. */
body.gl-site main.document-main:has(> .gl-intro,> article > .gl-intro,> .about-hero){padding-top:0}
body.gl-site :is(.gl-intro,.about-hero,.home-content>section.front-door){position:relative;isolation:isolate;color:#d5dce2}
/* The band bleeds past both viewport edges (body clips overflow-x), whatever column the title block sits in; the
   deep-blue glow is pinned to the viewport's upper right, where the homepage hero carries it. */
/* So the band can run edge to edge, <main> spans the full width and clips the bleed (overflow-x:clip, no scroll
   container, sticky still works). Its padding reproduces the old centred column exactly: 1104px (1144px on document
   pages from 1100px) with 48px gutters, 16px at 800px and below, 12px at 340px and below. */
body.gl-site main.document-main{max-width:none;overflow-x:clip;padding-left:max(48px,calc((100% - 1104px) / 2));padding-right:max(48px,calc((100% - 1104px) / 2))}
@media(min-width:1100px){body.gl-site.document-page main.document-main{padding-left:max(48px,calc((100% - 1144px) / 2));padding-right:max(48px,calc((100% - 1144px) / 2))}}
@media(max-width:800px){body.gl-site main.document-main{padding-left:16px;padding-right:16px}}
@media(max-width:340px){body.gl-site main.document-main{padding-left:12px;padding-right:12px}}
body.gl-site main.home-content{overflow-x:clip}
body.gl-site :is(.gl-intro,.about-hero,.home-content>section.front-door)::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:-100vw;right:-100vw;
  background:radial-gradient(60vw 70vh at 84vw 22vh,rgba(10,90,156,.34),rgba(10,90,156,0) 72%) fixed,linear-gradient(#00050a,#00050a);border-bottom:1px solid #0d2233}
body.gl-site .gl-intro{padding:clamp(48px,6vw,88px) 0 clamp(40px,5vw,72px);margin:0 0 clamp(32px,4vw,56px)}
body.gl-site .about-hero{padding:clamp(40px,5vw,72px) 0;margin-bottom:clamp(32px,4vw,56px)}
body.gl-site .gl-intro>:first-child{margin-top:0}
body.gl-site .gl-intro>:last-child{margin-bottom:0}
body.gl-site :is(.gl-intro,.about-hero,.front-door) :is(h1,h2,h3){color:#fff}
body.gl-site :is(.gl-intro,.about-hero,.front-door) :is(p,li,dd,span,div,blockquote){color:#d5dce2}
body.gl-site :is(.gl-intro,.about-hero,.front-door) :is(.eyebrow,.label,.section-meta,.section-meta *){color:#c3ced8}
body.gl-site :is(.gl-intro,.about-hero,.front-door) strong{color:#fff}
body.gl-site :is(.gl-intro,.about-hero,.front-door) .gl-go>:is(button,:where(a.gl-link)):not(.button){color:#6cc8f0;background:transparent;border-color:transparent;box-shadow:none}
body.gl-site :is(.gl-intro,.about-hero,.front-door) .gl-go>:is(button,:where(a.gl-link)):not(.button):hover{color:#fff}
body.gl-site :is(.gl-intro,.about-hero,.front-door) .button{background:linear-gradient(90deg,#00477a,#1a76bb);border-color:#1a76bb;color:#fff}
body.gl-site :is(.gl-intro,.about-hero,.front-door) :is(:is(button,:where(a.gl-link)),input,summary):focus-visible{outline-color:#6cc8f0}
body.gl-site .front-door h2 .downstream{color:#6cc8f0}
/* The sidebar starts below the band, not inside it. */
@media(min-width:1100px){
  body.gl-site.document-page .document-main>article:has(> .gl-intro):has(> aside.provenance)>aside.provenance{grid-row:2 / span 24}
}
/* Cards: the homepage card (near-white, hairline, 5px corners, barely-there shadow) for sections, sidebars, lists. */
body.gl-site :is(.business-section,.provenance,.concept-card,details.faq-item,.document-page details,.library-item,.source-entry,.work-grid article,.reading-index>.gl-go>:is(button,:where(a.gl-link)),.principle-field span){
  background:#fdfdfd;border:1px solid #e3e6e9;border-radius:5px;box-shadow:0 1px 2px rgba(15,25,35,.04)}
body.gl-site .provenance{background:#f6f8fa;border-color:#dfe5ea}
body.gl-site :is(.library-item,.source-entry){padding:24px 28px}
body.gl-site .source-entry+.source-entry,body.gl-site .library-item+.library-item{margin-top:16px}
/* Q1: /mechanism.html opens with two buttons side by side; give them the homepage's button gap. */
body.gl-site .gl-intro>nav:not(.reading-links){display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center}
/* Q2: Sources sidebar. Stack term over value so values get the whole width; URLs wrap only after a slash (<wbr>) and
   never mid-word; overflow-wrap:anywhere stays as the last resort so nothing can overflow. No white glow on the link. */
body.gl-site .provenance dl{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}
body.gl-site .provenance dt{font-weight:600;color:#1b222a}
body.gl-site .provenance dd{margin:0 0 12px;min-width:0;word-break:normal;overflow-wrap:anywhere;hyphens:none}
body.gl-site .provenance .gl-go>:is(button,:where(a.gl-link)){word-break:normal;overflow-wrap:anywhere;hyphens:none;white-space:normal;text-align:left;height:auto;min-height:44px;
  background:transparent;border:0;box-shadow:none;text-shadow:none;padding:0;margin:0;color:#0a5a9c}
body.gl-site .provenance .gl-go>:is(button,:where(a.gl-link)):hover{color:#003059;text-decoration:underline}
body.gl-site .provenance .gl-go>:is(button,:where(a.gl-link))::before,body.gl-site .provenance .gl-go>:is(button,:where(a.gl-link))::after{content:none}
body.gl-site details.faq-item{padding:12px 24px}
body.gl-site details.faq-item+details.faq-item{margin-top:12px}
/* The dark footer closes every page full width, as on the homepage (restored-site.css capped it at 1280px, and in
   the flex body that shrank it to its content). */
body.gl-site .site-footer{max-width:none;width:100%;margin:0;box-sizing:border-box;align-self:stretch}
/* Inside a card the title button is plain deep-blue type (no pill or shadow inside the card). */
body.gl-site .library-item h2 .gl-go>:is(button,:where(a.gl-link)){background:transparent;border:0;box-shadow:none;padding:0;text-align:left;min-height:44px}

/* ---- v13 (Paul's approval, Nov 1 2026, 12:30 PM ET; QA research 2026-11-01): one spine, one measure, one type scale ---- */
/* Spine: the page title, the first line of card text and the footer start on the homepage's left edge (--spine, x=73 at
   1440, 22 at 600 and below). The column keeps its 1144px width, now starting on the spine instead of centred. */
body.gl-site main.document-main,body.gl-site.document-page main.document-main{padding-left:var(--spine);padding-right:max(var(--spine),calc(100% - var(--spine) - 1144px))}
/* Cards keep their padding but move out by it (and the 1px border), so their text sits on the spine. Below 600px they run
   edge to edge with the spine as their padding. */
body.gl-site{--card-pad:clamp(20px,2.3vw,32px)}
body.gl-site main :is(.business-section,.concept-card,details.faq-item,.library-item,.source-entry,.library-search):not(:is(.business-section,.concept-card,.library-item,.source-entry,details) *){
  padding-left:var(--card-pad);padding-right:var(--card-pad);margin-left:calc(-1px - var(--card-pad))}
@media(max-width:600px){
  body.gl-site main :is(.business-section,.concept-card,details.faq-item,.library-item,.source-entry,.library-search):not(:is(.business-section,.concept-card,.library-item,.source-entry,details) *){
    --card-pad:var(--spine);margin-left:calc(0px - var(--spine));margin-right:calc(0px - var(--spine));border-left:0;border-right:0;border-radius:0}
}
/* The Sources box is a card too while it sits in the column (below 1100px); from 1100px it is the sidebar. */
@media(max-width:1099px){body.gl-site main .provenance{padding-left:var(--card-pad);padding-right:var(--card-pad);margin-left:calc(-1px - var(--card-pad))}}
@media(max-width:600px){body.gl-site main .provenance{margin-left:calc(0px - var(--spine));margin-right:calc(0px - var(--spine));border-left:0;border-right:0;border-radius:0}}
/* Sources URLs break only after a slash (<wbr>), never at a hyphen inside a path segment. */
body.gl-site .provenance .gl-go>a.gl-url{white-space:nowrap}
/* Measure: prose lines stop near 68 characters of 16px text (Baymard 50-75; WCAG 1.4.8 at most 80); 34rem, so a lead or
   quote in the same column ends on the same line as the body. /page-two/ (Paul's previous homepage, kept as it was) is
   not a document page and keeps its own layout. */
body.gl-site main.document-main :is(p,li,dd,blockquote,figcaption,.lede,.lead){max-width:var(--measure)}
body.gl-site main.document-main h1{max-width:14em}
body.gl-site main.document-main :is(h2,h3){max-width:22em}
/* Type scale (tokens in home.css): h1 64, h2 40, h3 24, lead 20, body 16, small 14, caption 12 at 1440. */
body.gl-site main.document-main h1{font-size:var(--fs-h1)}
/* Governor 2:16 PM ET ruling (Nov 1 2026): the /sources/ card titles (.source-entry h2) keep their 187fdb4 size, outside the scale. */
body.gl-site main.document-main h2:not(.source-entry h2){font-size:var(--fs-h2)}
body.gl-site main.document-main :is(.provenance,.concept-card) h2,body.gl-site main.document-main :is(h3,blockquote,summary){font-size:var(--fs-h3)}
/* !important only where the old value is itself !important (.library-item h2) or an inline style (the Sources h2). */
body.gl-site main.document-main :is(.library-item,.provenance) h2{font-size:var(--fs-h3)!important}
body.gl-site main.document-main :is(p,li,dd,blockquote p){font-size:var(--fs-body)}
body.gl-site main.document-main :is(.lede,.lead,.gl-intro>p){font-size:var(--fs-lead)}
body.gl-site main.document-main :is(.eyebrow,.label,.section-meta,.chain-label){font-size:var(--fs-caption)}
body.gl-site main.document-main :is(dt,time,.provenance dd,small){font-size:var(--fs-small)}

/* ---- v13 depth, 3. inner title bands (Paul's approval, Nov 1 2026, 12:30 PM ET; tokens and order in home.css) ----
   The band keeps its viewport-pinned deep-blue glow and gains a second, lower-left light, the grain tile and a seam
   where it meets the white page. From 1100px a faint Seed of Life sits at the band's right end, ending one spine in from
   the viewport edge, clear of the title, lead and buttons (they stop at 14em / 34rem). */
body.gl-site :is(.gl-intro,.about-hero,.home-content>section.front-door)::before{border-bottom:0;background:
  linear-gradient(90deg,rgba(47,156,230,0) 34%,rgba(47,156,230,.38) 44%,rgba(108,200,240,.55) 50%,rgba(47,156,230,.38) 56%,rgba(47,156,230,0) 66%) bottom/100% 1px no-repeat,
  var(--grain) 0 0/128px 128px repeat,
  radial-gradient(60vw 70vh at 84vw 22vh,rgba(10,90,156,.34),rgba(10,90,156,0) 72%) fixed,
  radial-gradient(40vw 60vh at 12vw 110%,rgba(0,67,116,.26),rgba(0,67,116,0) 70%) fixed,
  linear-gradient(#00050a,#00050a)}
@media (min-width:1100px){
  body.gl-site :is(.gl-intro,.about-hero)::after{content:"";position:absolute;z-index:-1;top:50%;left:calc(100vw - 2 * var(--spine) - min(300px,22vw));width:min(300px,22vw);aspect-ratio:244/248;translate:0 -50%;
    background:url('provisional/seed-of-life.png') center/contain no-repeat;opacity:.08;pointer-events:none}
}
@media (prefers-reduced-motion:no-preference){body.gl-site :is(.gl-intro,.about-hero)::after{animation:gl-seed-turn 240s linear infinite}}
/* v13 machine layer (Paul's v13 approval, Nov 1 2026, 12:30 PM ET): <dfn> marks a defined term for machines only;
   it must not change how the words render. */
body.gl-site dfn{font-style:inherit}
/* Principle pages (Paul, Nov 1 2026, 12:31 PM ET; published as set B: Paul 4:48 PM ET Nov 1, set B, publish as written
   (via Governor, verified)). Passages sit on the shared spine and measure; the names-only nav to the other six pages
   wraps as a spaced row. */
body.gl-site .principle-main .principle-passage+.principle-passage{margin-top:clamp(32px,4vw,56px);padding-top:clamp(32px,4vw,56px);border-top:1px solid rgba(23,32,51,.14)}
body.gl-site .principle-main .principle-passage h2{font-size:var(--fs-h3);margin:1.6em 0 .6em}
body.gl-site .principle-main .principle-nav{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:clamp(40px,5vw,64px);padding-top:clamp(24px,3vw,32px);border-top:1px solid rgba(23,32,51,.14)}
body.gl-site .principle-main .principle-nav a[aria-current="page"]{color:inherit;text-decoration:none}
