@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/bdb1a736.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/801497cf.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/bbadee5d.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/929d2d6b.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/4461d453.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/90f80c37.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/cd229ee4.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/74757892.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/be79bb2a.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/c668c620.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/7dd2cebf.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/0bab1958.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/7dd2cebf.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/0bab1958.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/7dd2cebf.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("/assets/fonts/0bab1958.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Building Understanding Standard — site stylesheet.
   Design language carried over from the approved homepage: Instrument Sans,
   IBM Plex Mono, #111214 ink, #0A6E5C accent, #F5F5F7 panel. Responsive by
   construction: every fixed size is the cap of a clamp(). */

:root{
  --ink:#111214; --body:#44474C; --muted:#6E7178; --dim:#8A8D93;
  --panel:#F5F5F7; --panel2:#FBFBFD; --line:#E4E4E8; --line2:#26292D;
  --accent:#0A6E5C; --accent-d:#08574A; --mint:#7FD8B8;
  --sans:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
  --pad:clamp(20px,5vw,64px);
  --col:1060px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,pre,table{max-width:100%}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-d);text-decoration:underline;text-underline-offset:3px}
::selection{background:#0A6E5C1F}
code,pre,.mono{font-family:var(--mono)}

/* ---------------------------------------------------------------- header */
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;
  gap:clamp(16px,3vw,36px);height:60px;padding:0 var(--pad);
  background:rgba(17,18,20,.86);backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px)}
.nav a{color:#C7C9CD}
.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.brand:hover{text-decoration:none}
.chip{font:500 11px/1 var(--mono);letter-spacing:.16em;color:#111214;
  background:#fff;padding:6px 8px 5px;border-radius:4px}
.brand .full{font:500 14px/1 var(--sans);letter-spacing:-.005em;color:#fff}
.navlinks{margin-left:auto;display:flex;gap:clamp(14px,2.2vw,30px);
  overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;max-width:100%}
.navlinks::-webkit-scrollbar{display:none}
.navlinks>a{flex:0 0 auto;font:400 13px/1 var(--sans);white-space:nowrap}
.navlinks>a:hover,.navlinks>a[aria-current]{color:#fff;text-decoration:none}
.navlinks>a[aria-current]{border-bottom:2px solid var(--mint);padding-bottom:3px}
@media(max-width:640px){.brand .full{display:none}}

/* ------------------------------------------------------------------ page */
.wrap{max-width:var(--col);margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(56px,9vw,120px) 0}
.sec.tight{padding:clamp(40px,6vw,72px) 0}
.panel{background:var(--panel)}
.dark{background:var(--ink);color:#fff}
.dark p,.dark li{color:#B8BABE}
.eyebrow{font:400 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:24px}
.dark .eyebrow{color:var(--dim)}
h1.page{font:400 clamp(2.1rem,5.6vw,56px)/1.1 var(--sans);letter-spacing:-.04em;
  margin:0 0 24px;max-width:22ch}
.lede{font:400 clamp(1.05rem,2.1vw,21px)/1.6 var(--sans);color:var(--body);
  max-width:62ch;margin:0 0 8px}
.crumb{font:400 12px/1 var(--mono);color:var(--muted);margin-bottom:20px;
  letter-spacing:.06em}
.crumb a{color:var(--muted)}

/* --------------------------------------------------------- prose / spec */
.prose{max-width:68ch}
.prose p{color:var(--body);margin:0 0 18px;text-wrap:pretty}
.prose h2.c-h1{font:400 clamp(1.6rem,3.6vw,34px)/1.2 var(--sans);letter-spacing:-.03em;
  color:var(--ink);margin:56px 0 20px;scroll-margin-top:80px}
.prose h3.c-h2{font:500 clamp(1.15rem,2.2vw,22px)/1.3 var(--sans);color:var(--ink);
  margin:40px 0 14px;scroll-margin-top:80px}
.prose h4.c-h3{font:600 1rem/1.4 var(--sans);color:var(--ink);margin:28px 0 10px;
  scroll-margin-top:80px}
.prose .cn{font-family:var(--mono);font-size:.78em;color:var(--accent);
  margin-right:.6em;letter-spacing:.02em}
.prose .anchor{opacity:0;margin-left:.5em;color:var(--accent);font-size:.7em;
  text-decoration:none}
.prose :hover>.anchor{opacity:.6}
.prose ul,.prose ol{margin:0 0 20px;padding-left:22px}
.prose li{color:var(--body);margin-bottom:9px}
.prose ol.steps{counter-reset:st;list-style:none;padding-left:0}
.prose ol.steps>li{counter-increment:st;position:relative;padding-left:34px;margin-bottom:12px}
.prose ol.steps>li::before{content:counter(st);position:absolute;left:0;top:.15em;
  font:400 12px/1.6 var(--mono);color:var(--accent)}
.prose code{background:var(--panel);padding:2px 5px;border-radius:4px;font-size:.86em;
  color:var(--ink);word-break:break-word}
.prose pre{background:var(--ink);color:#D5D7DB;border-radius:14px;
  padding:clamp(18px,3vw,28px);overflow-x:auto;margin:0 0 22px}
.prose pre code{background:none;padding:0;color:inherit;font-size:clamp(11.5px,2.2vw,13.5px);
  line-height:1.75}
.prose b.kw{font-weight:600;color:var(--accent)}
.prose .note{font-size:15px;color:var(--muted);border-left:2px solid var(--line);
  padding-left:16px}
.prose .note-l{font:400 10px/1 var(--mono);letter-spacing:.16em;color:var(--accent);
  margin-right:8px}
.prose .callout{background:var(--panel);border-radius:16px;
  padding:clamp(22px,3.4vw,34px);margin:0 0 24px}
.prose .callout h5{font:500 17px/1.4 var(--sans);margin:0 0 10px;color:var(--ink)}
.prose .callout p{margin:0}
.prose .statement{background:var(--ink);color:#fff;border-radius:18px;
  padding:clamp(26px,4vw,44px);margin:0 0 26px;border:0}
.prose .statement p{color:#D5D7DB;font-size:clamp(1rem,2vw,19px);margin:0 0 10px}
.prose .statement p:last-child{margin:0}
.prose .defn{margin:0 0 16px}
.prose .defn dfn{display:block;font-style:normal;font-weight:600;color:var(--ink);
  margin-bottom:4px}
.prose .defn p{margin:0 0 0 0}
.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}
.prose .mat{font:400 12px/1.5 var(--mono);color:var(--muted);margin:-10px 0 20px}

/* tables */
.tbl{overflow-x:auto;margin:0 0 24px;-webkit-overflow-scrolling:touch}
.tbl table{border-collapse:collapse;width:100%;min-width:520px}
.tbl th{background:var(--ink);color:#fff;font:600 11px/1.4 var(--sans);
  letter-spacing:.06em;text-transform:uppercase;text-align:left;
  padding:12px 14px;vertical-align:bottom}
.tbl td{border-bottom:1px solid var(--line);padding:12px 14px;font-size:15px;
  color:var(--body);vertical-align:top}
.tbl tr:nth-child(even) td{background:var(--panel2)}

/* -------------------------------------------------------------- widgets */
.grid{display:grid;gap:clamp(14px,2vw,20px)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.g3,.g2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.g4{grid-template-columns:minmax(0,1fr)}}

.card{display:block;background:var(--panel);border-radius:16px;
  padding:clamp(22px,3vw,32px);color:inherit}
a.card:hover{background:#EFEFF2;text-decoration:none}
.card h3{font:500 clamp(1.05rem,2vw,20px)/1.35 var(--sans);margin:0 0 10px;color:var(--ink)}
.card p{margin:0;font-size:15px;color:var(--body);line-height:1.6}
.card .fn{font:400 14px/1.4 var(--mono);color:var(--ink);margin-bottom:8px;word-break:break-all}
.card .meta{margin-top:12px;font:400 11px/1.5 var(--mono);color:var(--muted)}

.chiprow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.tag{font:400 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  padding:6px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.tag.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.tag.must{color:#8A2E2E;border-color:#E3C9C9}
.tag.should{color:#8A6A2E;border-color:#E8DCC2}
.tag.info{color:var(--muted)}
.tag.agreed{color:var(--accent);border-color:#BFE0D6}

.btn{display:inline-block;font:500 clamp(15px,1.5vw,17px)/1 var(--sans);
  padding:15px clamp(22px,3vw,32px);border-radius:980px;background:var(--ink);color:#fff}
.btn:hover{background:#2A2D31;text-decoration:none;color:#fff}
.btn.light{background:#fff;color:var(--ink)}
.btn.light:hover{background:#E8E8EA}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.btn.ghost:hover{background:var(--panel);color:var(--ink)}

.rowlist{display:flex;flex-direction:column;gap:12px}
.row{display:grid;grid-template-columns:230px minmax(0,1fr) 180px;
  gap:clamp(14px,2.4vw,32px);align-items:baseline;background:var(--panel);
  border-radius:14px;padding:clamp(18px,2.4vw,26px) clamp(18px,2.6vw,30px);color:inherit}
a.row:hover{background:#EFEFF2;text-decoration:none}
.row .k{font:400 14px/1.4 var(--mono);color:var(--ink);word-break:break-word}
.row .v{font-size:15px;color:var(--body);line-height:1.6}
.row .m{font:400 11px/1.4 var(--mono);color:var(--muted)}
@media(max-width:860px){.row{grid-template-columns:minmax(0,1fr);row-gap:8px}}

/* search + data tables */
.search{width:100%;max-width:420px;font:400 15px/1 var(--sans);padding:13px 16px;
  border:1px solid var(--line);border-radius:10px;margin-bottom:20px;color:var(--ink)}
.search:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.count{font:400 12px/1 var(--mono);color:var(--muted);margin-bottom:16px}

/* two-column doc shell with rail */
.shell{display:grid;grid-template-columns:250px minmax(0,1fr);
  gap:clamp(24px,4vw,56px);align-items:start}
@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}}
.rail{position:sticky;top:80px;max-height:calc(100vh - 100px);overflow-y:auto;
  font-size:14px;padding-right:8px}
@media(max-width:900px){.rail{position:static;max-height:none;
  background:var(--panel);border-radius:14px;padding:20px}}
.rail h4{font:400 10px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin:0 0 14px}
.rail ul{list-style:none;margin:0 0 22px;padding:0}
.rail li{margin-bottom:2px}
.rail a{display:block;padding:5px 8px;border-radius:6px;color:var(--body);
  font-size:13.5px;line-height:1.4}
.rail a:hover{background:var(--panel);text-decoration:none}
.rail a[aria-current]{background:var(--ink);color:#fff}
.rail .cn{font-family:var(--mono);font-size:.85em;color:var(--accent);margin-right:7px}
.rail a[aria-current] .cn{color:var(--mint)}

.pager{display:flex;justify-content:space-between;gap:16px;margin-top:56px;
  border-top:1px solid var(--line);padding-top:24px;font-size:15px}
.pager span{color:var(--muted)}

/* footer */
footer{background:var(--ink);color:#8A8D93;padding:clamp(48px,7vw,88px) 0 40px;font-size:14px}
footer .fg{display:grid;grid-template-columns:2fr 1fr 1fr;gap:clamp(28px,5vw,60px);
  margin-bottom:44px}
@media(max-width:760px){footer .fg{grid-template-columns:minmax(0,1fr)}}
footer h4{font:400 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;
  color:#fff;margin:0 0 18px}
footer a{display:block;margin-bottom:10px;color:#B8BABE;font-size:14px}
footer a:hover{color:#fff;text-decoration:none}
footer a.mono{font:400 13px/1.4 var(--mono)}
footer .legal{border-top:1px solid var(--line2);padding-top:26px;
  font-size:13px;line-height:1.7;color:#6E7178;max-width:82ch}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:10px 14px;z-index:99;border-radius:8px}
