/* URSY Under the Hood - the uniform estate page. Standard 2026-09-13, sheet v1.0.0.
 * Tokens and components taken from the approved standard document
 * (sha e443c5b9d41e396ca45265fabc27648668c4f33bcd2fa2c63b30bc04f618d70a); demo-only classes dropped.
 * Served same-origin at /under-the-hood/standard.css because six estate hosts enforce
 * style-src 'self' + font-src 'self', and three forbid inline style. Never inline this.
 * Typefaces are self-hosted at /under-the-hood/fonts/ for the same reason.
 */
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;
  src:url("?ursy-asset=font-instrument-serif-400") format("woff2");font-display:swap}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;
  src:url("?ursy-asset=font-instrument-serif-400-italic") format("woff2");font-display:swap}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 600;
  src:url("?ursy-asset=font-ibm-plex-sans-var") format("woff2");font-display:swap}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;
  src:url("?ursy-asset=font-ibm-plex-mono-400") format("woff2");font-display:swap}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;
  src:url("?ursy-asset=font-ibm-plex-mono-500") format("woff2");font-display:swap}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;
  src:url("?ursy-asset=font-ibm-plex-mono-600") format("woff2");font-display:swap}

:root{
  --paper:#F7F8F5; --card:#FFFFFF; --sunk:#EFF2EC;
  --ink:#12201C; --ink-2:#42544D; --ink-3:#6C7C75;
  --rule:#D9DED6; --rule-2:#E8ECE4;
  --accent:#156B58; --accent-soft:#E4EFEA;
  --amber:#8A5200; --amber-soft:#F6EDDC;
  --crimson:#A12B22; --crimson-soft:#F7E5E3;
  --shadow:0 1px 2px rgba(18,32,28,.05);
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0E1512; --card:#161F1B; --sunk:#121A17;
    --ink:#E7EEE9; --ink-2:#A9BAB3; --ink-3:#7D8F88;
    --rule:#26322D; --rule-2:#1E2823;
    --accent:#4FB89C; --accent-soft:#16302A;
    --amber:#E0A44F; --amber-soft:#2B2116;
    --crimson:#E8887E; --crimson-soft:#301A18;
    --shadow:0 1px 2px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --paper:#0E1512; --card:#161F1B; --sunk:#121A17;
  --ink:#E7EEE9; --ink-2:#A9BAB3; --ink-3:#7D8F88;
  --rule:#26322D; --rule-2:#1E2823;
  --accent:#4FB89C; --accent-soft:#16302A;
  --amber:#E0A44F; --amber-soft:#2B2116;
  --crimson:#E8887E; --crimson-soft:#301A18;
  --shadow:0 1px 2px rgba(0,0,0,.4);
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1080px; margin:0 auto; padding:0 24px}
h1,h2,h3,h4{text-wrap:balance; margin:0}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:2px}
.mono{font-family:var(--mono); font-variant-numeric:tabular-nums}

/* masthead */
.mast{border-bottom:1px solid var(--rule); background:var(--card)}
.mast .wrap{padding-top:40px; padding-bottom:32px}
.eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent); margin:0 0 14px;
}
.mast h1{font-family:var(--serif); font-size:clamp(38px,6vw,62px); line-height:1.04; font-weight:400; letter-spacing:-.01em}
.mast h1 em{font-style:italic; color:var(--accent)}
.standfirst{max-width:63ch; margin:18px 0 0; color:var(--ink-2); font-size:18px}
.meta-row{display:flex; flex-wrap:wrap; gap:8px 28px; margin-top:26px; font-family:var(--mono); font-size:12px; color:var(--ink-3)}

/* sections */
section{padding:56px 0; border-bottom:1px solid var(--rule-2)}
section:last-of-type{border-bottom:none}
.sec-head{display:flex; gap:14px; align-items:baseline; margin-bottom:8px}
.sec-num{font-family:var(--mono); font-size:12px; color:var(--accent); letter-spacing:.1em; padding-top:6px}
.sec-head h2{font-family:var(--serif); font-weight:400; font-size:clamp(26px,3.4vw,36px); line-height:1.15}
.lede{max-width:63ch; color:var(--ink-2); margin:0 0 30px}
.lede:last-child{margin-bottom:0}
h3.sub{font-family:var(--serif); font-weight:400; font-size:24px; margin:36px 0 4px}

/* tables */
.scroll{overflow-x:auto; -webkit-overflow-scrolling:touch}
table{border-collapse:collapse; width:100%; min-width:420px; font-size:14px}
th,td{text-align:left; padding:11px 14px; border-bottom:1px solid var(--rule-2); vertical-align:top}
thead th{
  font-family:var(--mono); font-size:11px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--ink-3); border-bottom:1px solid var(--rule); font-weight:500; white-space:nowrap;
}
td.num{font-family:var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap}
tr.flag td{background:var(--crimson-soft)}
tr.flag td.num{color:var(--crimson); font-weight:600}
.recon{font-family:var(--mono); font-size:12px; color:var(--ink-3); margin-top:8px}

/* the measurement tile */
.tiles{display:grid; grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); gap:14px}
.tile{
  background:var(--card); border:1px solid var(--rule); border-radius:3px;
  padding:16px 16px 14px; display:flex; flex-direction:column; gap:0;
}
.tile .val{font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:30px; font-weight:500; line-height:1.1; letter-spacing:-.02em}
.tile .val small{font-size:17px; color:var(--ink-3); font-weight:400}
.tile .lbl{font-size:14px; font-weight:600; margin-top:6px; line-height:1.35}
.tile .def{font-size:13px; color:var(--ink-2); margin-top:7px; line-height:1.45}
.tile .src{
  font-family:var(--mono); font-size:11px; color:var(--ink-3); margin-top:11px;
  padding-top:9px; border-top:1px solid var(--rule-2); line-height:1.5; word-break:break-word;
}
.tile .src b{font-weight:500; color:var(--ink-2)}
.tile.is-zero .val{color:var(--ink-3)}
.tile.is-flag{border-color:var(--amber)}
.tile.is-flag .val{color:var(--amber)}
.tile.is-absent{background:var(--sunk); border-style:dashed}
.tile.is-absent .val{font-size:15px; color:var(--ink-3); font-weight:400; font-family:var(--sans)}

/* state pills */
.pill{
  display:inline-block; font-family:var(--mono); font-size:10.5px; letter-spacing:.07em;
  text-transform:uppercase; padding:3px 7px; border-radius:2px; vertical-align:2px;
}
.pill.ok{background:var(--accent-soft); color:var(--accent)}
.pill.warn{background:var(--amber-soft); color:var(--amber)}
.pill.bad{background:var(--crimson-soft); color:var(--crimson)}

/* the closing rules / limitations */
.rules{display:grid; gap:1px; background:var(--rule-2); border:1px solid var(--rule); border-radius:3px; overflow:hidden}
.rule{background:var(--card); padding:16px 18px; display:grid; grid-template-columns:30px 1fr; gap:14px}
.rule .n{font-family:var(--mono); font-size:12px; color:var(--accent)}
.rule b{display:block; margin-bottom:3px}
.rule span{font-size:14px; color:var(--ink-2)}

/* sparkline */
.spark{display:block; width:100%; height:46px; margin-top:10px}
.spark-cap{font-family:var(--mono); font-size:11px; color:var(--ink-3); margin-top:2px}

footer{padding:40px 0 64px; color:var(--ink-3); font-size:13px; border-top:1px solid var(--rule-2)}
footer .wrap{display:flex; flex-wrap:wrap; gap:8px 24px; font-family:var(--mono); font-size:12px}
footer a{color:inherit}
@media (prefers-reduced-motion:reduce){*{animation:none!important; transition:none!important}}
