


/* ── compact header shell (canonical sitewide header) ── */
:root{--site-content-max:64rem}
.fh--compact{padding:1rem 0 0;border-bottom:1px solid var(--color-rule,var(--border));margin-bottom:.35rem;overflow:visible;position:sticky;top:0;z-index:1000;background:var(--surface,var(--color-bg,#E4E3E0))}
@media(min-width:640px){.fh--compact{padding:1.25rem 0 0}}
.fh--compact .fh-inner{max-width:var(--site-content-max,64rem);margin:0 auto;width:100%;padding:0 1rem;overflow:visible;position:relative;z-index:1}
@media(min-width:640px){.fh--compact .fh-inner{padding:0 1.5rem}}
.fh--compact.fh--dark{background:linear-gradient(180deg,#0a0a0a 0%,#151515 100%);border-bottom:1px solid var(--border,#E4DCD2);margin-bottom:0}
.fh--compact.fh--dark .pf-brand,.fh--compact.fh--dark .pf-brand-word{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.fh--compact.fh--dark .pf-brand-mark{filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
.fh--compact.fh--dark .nav-compact-item{color:rgba(255,255,255,.62)}
.fh--compact.fh--dark .nav-compact-item:hover{color:#fff;background:rgba(255,255,255,.06)}
.fh--compact.fh--dark .nav-compact-item--curr,.fh--compact.fh--dark .nav-compact-item.nav-compact-item--curr{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:color-mix(in srgb,var(--accent) 32%,transparent)}
.fh--compact.fh--dark .nav-compact-more-btn{color:rgba(255,255,255,.62)}
.fh--compact.fh--dark .nav-compact-more[open] .nav-compact-more-btn{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 28%,transparent)}
.fh--compact+.fh:not(.fh--compact),.fh--compact+.gd-hero,.fh--compact+.fc-hero{padding-left:0;padding-right:0}
.hp-hero .pf-brand,.hp-hero .nav-compact{position:relative;z-index:1001}

/* ── brand wordmark ── */
.pf-brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none;margin-bottom:.85rem;transition:opacity .15s}
.pf-brand:hover{opacity:.7}
.pf-brand-mark{color:var(--accent);flex-shrink:0}
.pf-brand-word{font-family:var(--font-mono);font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:var(--ink)}
.pf-brand-search{color:var(--accent)}
.dh .pf-brand,.dl-hero .pf-brand,.gd-hero .pf-brand,.sr-hero .pf-brand{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.dh .pf-brand-word,.dl-hero .pf-brand-word,.gd-hero .pf-brand-word,.sr-hero .pf-brand-word{color:#fff}
.dh .pf-brand-mark,.dl-hero .pf-brand-mark,.gd-hero .pf-brand-mark,.sr-hero .pf-brand-mark{filter:drop-shadow(0 1px 4px rgba(0,0,0,.5))}
/* ── compact icon+label nav ── */
.nav-compact{display:flex;align-items:stretch;gap:.3rem;margin-bottom:.45rem;overflow:visible;position:relative;z-index:1001;width:100%}
.nav-compact-scroll{display:flex;align-items:stretch;gap:.3rem;flex:1;min-width:0;padding-bottom:.15rem}
.nav-compact-scroll--desktop{display:none}
.nav-compact-scroll--mobile{overflow:visible}
.nav-compact-item{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;min-width:0;min-height:2.75rem;padding:.5rem .26rem .42rem;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--mist);text-decoration:none;font-family:var(--font-mono);font-size:.625rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.1;flex:1 1 0;transition:background .15s,color .15s,border-color .15s}
.nav-compact-item svg{color:currentColor;opacity:.85;flex-shrink:0;width:18px;height:18px}
.nav-compact-item span{text-align:center;max-width:100%;line-height:1.12;overflow-wrap:anywhere}
.nav-compact-item:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.nav-compact-item--curr,.nav-compact-item.nav-compact-item--curr{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,#fff);border-color:color-mix(in srgb,var(--accent) 22%,transparent)}
.nav-compact-more{position:relative;flex:0 0 auto;flex-shrink:0}
.nav-compact-more-btn{list-style:none;cursor:pointer;color:var(--mist);user-select:none;min-width:3.35rem;flex:0 0 auto;padding:.5rem .42rem .42rem}
.nav-compact-more-btn::-webkit-details-marker{display:none}
.nav-compact-more[open] .nav-compact-more-btn{color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,#fff);border-color:color-mix(in srgb,var(--accent) 18%,transparent)}
.nav-compact-more[open] .nav-compact-more-btn svg{transform:rotate(180deg)}
.nav-compact-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:1002;display:grid;gap:.15rem;min-width:min(14rem,calc(100vw - 2rem));max-width:calc(100vw - 1rem);max-height:60vh;overflow-y:auto;padding:.5rem;border-radius:12px;border:1px solid var(--border,#E4DCD2);background:#fff;box-shadow:0 14px 34px rgba(20,20,20,.14)}
.nav-compact-menu a{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem;min-height:2.5rem;padding:.5rem .6rem;border-radius:8px;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mist);text-decoration:none;white-space:nowrap}
.nav-compact-menu a svg{opacity:.85;flex-shrink:0}
.nav-compact-menu a:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent)}
.nav-compact-menu-curr{color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 8%,transparent)}
@media(min-width:640px){
.nav-compact,.nav-compact-scroll{gap:.35rem}
.nav-compact-item{padding:.48rem .28rem .4rem;font-size:.625rem;letter-spacing:.06em}
.nav-compact-item svg{width:19px;height:19px}
.nav-compact-more-btn{min-width:3.45rem;padding:.48rem .4rem .4rem}
}
@media(min-width:900px){
.pf-chrome{display:flex;align-items:center;gap:1.25rem;min-width:0;margin-bottom:.5rem}
.pf-chrome .pf-brand{margin-bottom:0;flex-shrink:0}
.pf-chrome .nav-compact{margin-bottom:0;flex:1;min-width:0;justify-content:flex-end}
.nav-compact{gap:.35rem .3rem}
.nav-compact-scroll--mobile{display:none}
.nav-compact-scroll--desktop{display:flex;overflow:visible;flex:0 1 auto;justify-content:flex-end;gap:.35rem .3rem}
.nav-compact-scroll--desktop .nav-compact-item{flex:0 1 auto;min-width:4rem;padding:.48rem .5rem .42rem;font-size:.625rem;letter-spacing:.06em}
.nav-compact-scroll--desktop .nav-compact-item svg{width:20px;height:20px}
.nav-compact-scroll--desktop .nav-compact-item span{max-width:5.5rem}
.nav-compact-menu a.nav-compact-menu-mobile-only{display:none}
}
@media(min-width:1040px){
.nav-compact-scroll--desktop .nav-compact-item{min-width:4.55rem}
.nav-compact-scroll--desktop .nav-compact-item span{max-width:6rem}
}

/* ── site header chrome (legacy .fh shell rules) ── */
.fh-inner{max-width:var(--site-content-max,64rem);margin:0 auto;width:100%;padding:0 1rem;position:relative;z-index:1}
@media(min-width:640px){.fh-inner{padding:0 1.5rem}}
/* inert legacy .nav rules — renderTopNav now emits compact markup; kept for .nav-dark / .dh .nav admin shells */
.nav{display:flex;flex-wrap:wrap;gap:.45rem;max-width:100%;margin:0 -1rem 1.5rem;padding:0 1rem .35rem;font-size:.6875rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em}
.nav a{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:0 .75rem;border:1px solid transparent;border-radius:999px;white-space:nowrap;scroll-snap-align:start;text-decoration:none;touch-action:manipulation}
.dh .nav a{color:rgba(255,255,255,.72);transition:color .15s}
.dh .nav a:hover{color:#fff}
.dh .nav a.nav-curr{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.fh .nav a{color:var(--mist);transition:color .15s}
.nav a:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.nav a.nav-curr{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,#fff);border-color:color-mix(in srgb,var(--accent) 22%,transparent);text-decoration:none}
.nav-dark{margin-bottom:1.5rem}
.nav-dark a{color:var(--mist)}
.nav-dark a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
@media(min-width:640px){.nav{flex-wrap:wrap;gap:.75rem 1.25rem;margin:0 0 1.5rem;padding:0;overflow:visible;scroll-snap-type:none;letter-spacing:.12em}.nav a{min-height:auto;padding:0;border:0;border-radius:0}.fh .nav a:hover{background:transparent}.nav a.nav-curr{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px}}


/* ── site footer ── */
.site-foot{border-top:1px solid var(--site-foot-border,var(--border));padding:2rem 1rem 1.5rem;margin-top:2rem;color:var(--site-foot-copy,var(--mist))}
.site-foot-inner{max-width:var(--site-foot-max,56rem);margin:0 auto;display:flex;flex-direction:column-reverse;gap:1.5rem}
.site-foot-copy{font-size:.625rem;font-family:var(--font-mono);color:var(--site-foot-copy,var(--mist))}
.site-foot-nav{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:640px){.site-foot-nav{grid-template-columns:repeat(3,1fr);gap:2rem}}
.site-foot-col{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.site-foot-col-h{font-size:.625rem;font-weight:700;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--site-foot-heading,var(--ink));margin:0 0 .25rem}
.site-foot-col a{font-size:.8125rem;color:var(--site-foot-link,var(--mist));text-decoration:none;transition:color .15s}
.site-foot-col a:hover{color:var(--site-foot-link-hover,var(--accent));text-decoration:underline;text-underline-offset:3px}


/* ── Cite this data box (theme-adaptive via CSS vars) ── */
.pf-cite{margin:2.25rem 0;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--accent) 5%,transparent);padding:1.1rem 1.2rem 1.2rem}
.pf-cite-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem .85rem;margin-bottom:.7rem}
.pf-cite-kicker{font:700 .62rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--accent);display:inline-flex;align-items:center;gap:.45rem}
.pf-cite-kicker::before{content:"";width:.6rem;height:1px;background:var(--accent);display:inline-block}
.pf-cite-meta{display:flex;flex-wrap:wrap;gap:.4rem}
.pf-cite-chip{font:600 .6rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mist);border:1px solid var(--border);border-radius:9999px;padding:.3rem .55rem}
.pf-cite-note{font-size:.85rem;line-height:1.5;color:var(--ink);opacity:.92;margin:0 0 1rem;max-width:60ch}
.pf-cite-field{margin-top:.7rem}
.pf-cite-label{display:block;font:700 .58rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--mist);margin-bottom:.4rem}
.pf-cite-row{display:flex;align-items:stretch;gap:.5rem}
.pf-cite-text,.pf-cite-link{flex:1;min-width:0;margin:0;background:color-mix(in srgb,var(--ink) 6%,transparent);border:1px solid var(--border);border-radius:4px;padding:.6rem .7rem;font-size:.82rem;line-height:1.45;color:var(--ink);word-break:break-word}
.pf-cite-link{font-family:var(--font-mono);font-size:.74rem;color:var(--accent);align-self:center}
.pf-cite-copy{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;appearance:none;cursor:pointer;border:1px solid var(--accent);background:transparent;color:var(--accent);font:700 .7rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;padding:.75rem 1rem;border-radius:4px;transition:background .15s,color .15s}
.pf-cite-copy:hover{background:var(--accent);color:var(--surface,#fff)}
.pf-cite-copy.is-copied{background:var(--good,#22c55e);border-color:var(--good,#22c55e);color:#fff}
a.pf-cite-method{display:inline-flex;align-items:center;gap:.3rem;min-height:2.75rem;margin-top:.4rem;padding:.7rem 0;font:700 .7rem/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(242,125,38,.4);transition:opacity .15s}
a.pf-cite-method:hover,a.pf-cite-method:active{opacity:.75;text-decoration-color:currentColor}
@media(max-width:520px){.pf-cite-row{flex-direction:column}.pf-cite-copy{width:100%;padding:.75rem 0}}
