:root {
  --font-serif:'Source Serif 4',Georgia,serif;
  --font-mono:'IBM Plex Mono',Consolas,monospace;
  --bg:#f0ece4; --surface:#f5f1ea; --text:#1a1a18; --secondary:#625f58; --border:#d4d0c8; --accent:#c43b2a;
}
* { box-sizing:border-box; }
html { font-size:17px; background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; }
body { margin:0; font-family:var(--font-serif); line-height:1.68; background:var(--bg); }
a { color:inherit; text-underline-offset:.2em; text-decoration-thickness:1px; }
a:hover { color:var(--accent); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
[hidden] { display:none !important; }
.glossary-skip { position:absolute; left:1rem; top:-5rem; z-index:10; padding:.6rem 1rem; background:var(--text); color:var(--bg); }
.glossary-skip:focus { top:1rem; }
.glossary-main { max-width:1060px; margin:0 auto; padding:2rem 24px 5rem; }
.glossary-kicker { color:var(--accent); font:.64rem/1.5 var(--font-mono); text-transform:uppercase; letter-spacing:.1em; }
.glossary-hub-header { padding:.5rem 0 1.8rem; max-width:850px; }
.glossary-hub-header h1 { font-size:clamp(2.55rem,5.4vw,4rem); line-height:1.09; letter-spacing:-.028em; font-weight:600; margin:1rem 0 1.3rem; }
.glossary-hub-header h1 em { font-weight:400; color:var(--secondary); }
.glossary-hub-header p { max-width:660px; font-size:1.13rem; color:var(--secondary); margin:0 0 1rem; }
.glossary-inline-link { font-size:.95rem; color:var(--accent); }
.glossary-controls { border-top:1px solid var(--border); padding:1.5rem 0 1.4rem; }
.glossary-controls label { display:block; font:.68rem/1.5 var(--font-mono); text-transform:uppercase; letter-spacing:.07em; margin-bottom:.6rem; }
.glossary-search-row { display:flex; gap:1rem; align-items:center; }
.glossary-search-row input { width:100%; min-width:0; border:1px solid var(--border); background:var(--surface); border-radius:0; font:1.05rem/1.5 var(--font-serif); padding:.85rem 1rem; color:var(--text); }
.glossary-search-row input::placeholder { color:var(--secondary); opacity:1; }
.glossary-controls button { font:.7rem/1.45 var(--font-mono); border:1px solid var(--border); padding:.65rem .85rem; color:var(--secondary); background:transparent; cursor:pointer; min-height:42px; }
.glossary-controls button:hover { border-color:var(--text); color:var(--text); }
.glossary-controls button[aria-pressed="true"] { background:var(--text); color:var(--bg); border-color:var(--text); }
#glossary-clear { flex:0 0 auto; }
.glossary-filters { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.85rem; }
.glossary-list-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem; font:.64rem/1.6 var(--font-mono); color:var(--secondary); }
.glossary-list-heading p { margin:0 0 1rem; }
.glossary-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:3rem; }
.glossary-item { padding:1.65rem 0 1.85rem; border-top:1px solid var(--border); min-width:0; }
.glossary-item h2 { margin:.55rem 0 .65rem; font-size:1.65rem; line-height:1.23; letter-spacing:-.016em; }
.glossary-item h2 a { text-decoration:none; }
.glossary-item h2 a span { color:var(--accent); font-weight:400; font-size:1.05rem; white-space:nowrap; }
.glossary-item p { margin:0; color:var(--secondary); font-size:.97rem; }
.glossary-item .glossary-aliases { margin-top:.75rem; font:.64rem/1.6 var(--font-mono); }
.glossary-empty { padding:2rem; border:1px solid var(--border); background:var(--surface); }
.glossary-hub-note { border-top:1px solid var(--border); margin-top:2rem; padding-top:2rem; max-width:720px; }
.glossary-hub-note h2 { font-size:1.6rem; margin:0 0 .7rem; }
.glossary-hub-note p { margin:0; color:var(--secondary); }
.glossary-breadcrumb { font:.65rem/1.6 var(--font-mono); color:var(--secondary); margin-bottom:2.4rem; }
.glossary-breadcrumb span[aria-hidden] { margin:0 .6rem; }
.glossary-entry-header { max-width:860px; padding-bottom:2.7rem; border-bottom:1px solid var(--border); }
.glossary-entry-header h1 { font-size:clamp(2.5rem,5vw,3.8rem); line-height:1.09; letter-spacing:-.03em; margin:.8rem 0 1.2rem; }
.glossary-definition { font-size:1.3rem; line-height:1.5; margin:0; max-width:780px; }
.glossary-reviewed { font:.62rem/1.7 var(--font-mono); color:var(--secondary); margin:1.2rem 0 0; }
.glossary-reading-layout { display:grid; grid-template-columns:210px minmax(0,1fr); column-gap:3.5rem; padding-top:2.4rem; }
.glossary-toc { position:sticky; top:1.5rem; align-self:start; }
.glossary-toc nav p { margin:0 0 .75rem; font:.64rem/1.5 var(--font-mono); text-transform:uppercase; letter-spacing:.08em; color:var(--secondary); }
.glossary-toc nav a { display:block; font-size:.9rem; line-height:1.45; padding:.4rem 0; text-decoration:none; }
.glossary-tool-link { display:inline-block; color:var(--accent); font-size:.9rem; margin-top:1rem; padding-top:1rem; border-top:1px solid var(--border); }
.glossary-entry { max-width:710px; min-width:0; }
.glossary-entry section { margin-bottom:2.8rem; scroll-margin-top:1.5rem; }
.glossary-entry h2 { font-size:1.8rem; line-height:1.2; font-weight:600; letter-spacing:-.018em; margin:0 0 1rem; }
.glossary-entry p { margin:.8rem 0; }
.glossary-entry ul,.glossary-entry ol { margin:1rem 0; padding-left:1.3rem; }
.glossary-entry li { margin:.65rem 0; padding-left:.2rem; }
.glossary-entry .glossary-example { background:var(--surface); border:1px solid var(--border); border-left:3px solid var(--accent); padding:1.5rem; }
.glossary-example h2 { font-size:1.4rem; margin:.6rem 0 .8rem; }
.glossary-example p { font-size:.98rem; }
.glossary-table-wrap { overflow-x:auto; margin-top:1.25rem; }
.glossary-example table { border-collapse:collapse; width:100%; font-size:.87rem; text-align:left; }
.glossary-example caption { position:absolute; clip-path:inset(50%); height:1px; width:1px; overflow:hidden; white-space:nowrap; }
.glossary-example th,.glossary-example td { padding:.65rem .65rem .65rem 0; border-top:1px solid var(--border); vertical-align:top; }
.glossary-example thead th { font:.6rem/1.6 var(--font-mono); text-transform:uppercase; color:var(--secondary); }
.glossary-metric-list { font:.66rem/1.75 var(--font-mono); color:var(--secondary); padding-bottom:.7rem; border-bottom:1px solid var(--border); }
.glossary-sources { border-top:1px solid var(--border); padding-top:1.8rem; }
.glossary-sources p { font-size:.88rem; color:var(--secondary); }
.glossary-sources li,.glossary-related li { font-size:.92rem; overflow-wrap:anywhere; }
.glossary-related { padding-top:1.8rem; border-top:1px solid var(--border); }
@media(max-width:760px) {
  .glossary-reading-layout { grid-template-columns:1fr; gap:1.7rem; }
  .glossary-toc { position:static; border-bottom:1px solid var(--border); padding-bottom:1.5rem; }
  .glossary-toc nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1rem; }
  .glossary-toc nav p { grid-column:1/-1; }
  .glossary-tool-link { border:0; padding:0; margin-top:.8rem; }
  .glossary-list { column-gap:1.8rem; }
}
@media(max-width:540px) {
  html { font-size:16px; }
  .glossary-main { padding:2.2rem 20px 3rem; }
  .glossary-hub-header { padding-top:.5rem; }
  .glossary-list { grid-template-columns:1fr; }
  .glossary-search-row { flex-wrap:wrap; gap:.5rem; }
  .glossary-entry-header h1 { font-size:2.5rem; }
  .glossary-definition { font-size:1.16rem; }
  .glossary-breadcrumb { margin-bottom:1.8rem; }
}
@media print {
  .glossary-toc,.glossary-controls,.glossary-skip,.site-header,.site-footer { display:none; }
  .glossary-reading-layout { display:block; }
  .glossary-main,.glossary-entry { max-width:none; padding:0; }
  .glossary-entry section { break-inside:avoid; }
}
