:root {
  color-scheme: dark;
  background-color: #08090b;
  --bg: #08090b;
  --bg-edge: #050506;
  --wash-warm: rgba(255, 128, 48, 0.05);
  --wash-cool: rgba(96, 128, 180, 0.055);
  --vignette: rgba(0, 0, 0, 0.6);
  --grain-opacity: 0.35;
  --glass: rgba(255, 255, 255, 0.03);
  --glass-2: rgba(255, 255, 255, 0.045);
  --glass-top: rgba(255, 255, 255, 0.05);
  --glass-bottom: rgba(255, 255, 255, 0.025);
  --glass-hover: rgba(255, 255, 255, 0.06);
  --glass-edge: rgba(255, 255, 255, 0.09);
  --glass-hi: rgba(255, 255, 255, 0.05);
  --glass-field: rgba(0, 0, 0, 0.4);
  --glass-tint: rgba(8, 9, 11, 0.8);
  --glass-shadow: rgba(0, 0, 0, 0.6);
  --float-shadow: 0 24px 48px -16px var(--glass-shadow);
  --blur: 18px;
  --blur-narrow: 12px;
  --saturate: 1.2;
  --solid-1: #0f1114;
  --solid-2: #14161a;
  --solid-field: #090a0c;
  --line: rgba(255, 255, 255, 0.07);
  --line-strong: rgba(255, 255, 255, 0.11);
  --line-ui: #626c77;
  --line-ctl: #3b424a;
  --scroll-thumb: #2c3138;
  --scroll-thumb-hover: #3d444d;
  --text: #e4e8ec;
  --text-2: #9ca7b1;
  --on-accent: #170b02;
  --accent: #ff8a3d;
  --accent-hover: #ffa366;
  --accent-bright: #ff9a55;
  --accent-press: #ef7628;
  --accent-edge: rgba(255, 255, 255, 0.28);
  --accent-wash: rgba(255, 138, 61, 0.1);
  --accent-line: rgba(255, 138, 61, 0.45);
  --sel: rgba(148, 163, 184, 0.24);
  --ok: #63d69d;
  --warn: #ead068;
  --err: #ff8193;
  --warn-wash: rgba(234, 208, 104, 0.08);
  --err-wash: rgba(255, 129, 147, 0.09);
  --add-bg: rgba(99, 214, 157, 0.1);
  --del-bg: rgba(255, 129, 147, 0.1);
  --mono: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, Consolas, monospace, system-ui, "Segoe UI", sans-serif;
  --sans: "Public Sans", "Public Sans Fallback", system-ui, "Segoe UI", sans-serif;
  --mono-box: ui-monospace, Consolas, monospace;
  --print-ink: #000000;
  --print-paper: #ffffff;
  --print-muted: #444444;
  --print-rule: #bbbbbb;
  --print-accent: #b4530f;
  --t-xs: 0.78rem;
  --t-s: 0.86rem;
  --t-m: 1rem;
  --t-l: 1.25rem;
  --t-xl: 1.55rem;
  --t-xxl: clamp(1.95rem, 1.35rem + 2.3vw, 2.85rem);
  --gap-1: 0.25rem;
  --gap-2: 0.5rem;
  --gap-3: 1rem;
  --gap-4: 1.5rem;
  --gap-5: 2.5rem;
  --gap-6: 4rem;
  --gap-7: 6rem;
  --col: 46rem;
  --wide: 64rem;
  --gutter: 1rem;
  --ctl-h: 2.875rem;
  --radius: 2px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scrollbar-gutter: stable; }
body { margin: 0; overflow-wrap: break-word; font-synthesis: none; }
[hidden] { display: none !important; }
img, svg { max-width: 100%; }
em, i { font-synthesis: style; }
.vh {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}
.main { min-width: 0; }
.table-wrap, pre, .diff-view { max-width: 100%; }
.entry:has(> dt[hidden]) { display: none; }
textarea { display: block; }
input, select, textarea, button { font: inherit; letter-spacing: inherit; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .site-nav, .skip, .noscript, .tool, .actions, .filter, .side--tool, .book-nav, .book-drawer { display: none !important; }
  .table-wrap { overflow: visible; }
  pre, tr, figure { break-inside: avoid; }
}
@font-face {
  font-family: "Public Sans";
  src: url("/assets/fonts/public-sans-latin-wght.woff2?v=5ed4d31c") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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: "Public Sans Fallback";
  src: local("Arial");
  size-adjust: 103.17%;
  ascent-override: 92.08%;
  descent-override: 21.81%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Public Sans";
  src: url("/assets/fonts/public-sans-latin-ext-wght.woff2?v=3a00a32f") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  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: "JetBrains Mono";
  src: url("/assets/fonts/jetbrains-mono-latin-wght.woff2?v=18be4527") format("woff2");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
  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: "JetBrains Mono Fallback";
  src: local("Courier New");
  size-adjust: 99.98%;
  ascent-override: 102.02%;
  descent-override: 30%;
  line-gap-override: 0%;
}
html { background: var(--bg-edge); scrollbar-width: thin; scrollbar-color: var(--scroll-thumb) var(--bg-edge); scroll-padding-top: 6rem; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-edge); }
::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover); }
body {
  background: transparent;
  color: var(--text);
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.75;
  letter-spacing: 0.003em;
  caret-color: var(--accent);
  min-height: 100vh;
}
@media (min-width: 48rem) { body { font-size: 1.125rem; } :root { --gutter: 2rem; } }
::selection { background: var(--sel); color: var(--text); }
body::before, body::after { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: -1; }
body::before {
  background:
    radial-gradient(70rem 45rem at 12% -12%, var(--wash-warm), transparent 70%),
    radial-gradient(60rem 50rem at 105% 112%, var(--wash-cool), transparent 70%),
    radial-gradient(ellipse 120% 90% at 50% 40%, transparent 55%, var(--vignette) 100%),
    var(--bg);
}
body::after { background: url("/assets/grain.png?v=ec098a38") repeat; background-size: 96px 96px; opacity: var(--grain-opacity); }
a { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; text-decoration-color: currentColor; }
a:hover { color: var(--accent-hover); }
a:active { color: var(--accent-press); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
main:focus-visible { outline: none; }
h1, h2, h3, h4, .label, legend, .field > label, thead th, .eyebrow, .site-nav, .status, .examples, caption, .hint, .page-pdf { font-family: var(--mono); }
h1 { font-size: var(--t-xxl); font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 var(--gap-4); text-wrap: pretty; }
h1::before { content: "# "; color: var(--accent); font-weight: 400; }
h2 { font-size: var(--t-xl); font-weight: 650; line-height: 1.25; margin: var(--gap-6) 0 var(--gap-3); letter-spacing: -0.01em; text-wrap: balance; }
h3 { font-size: var(--t-l); font-weight: 600; margin: var(--gap-5) 0 var(--gap-2); }
h4 { font-size: var(--t-m); font-weight: 600; margin: var(--gap-4) 0 var(--gap-2); }
p { margin: 0 0 var(--gap-4); }
ul, ol { margin: 0 0 var(--gap-4); padding-left: 1.6em; }
li { margin: 0 0 var(--gap-2); }
ul > li::marker { content: "- "; font-family: var(--mono); color: var(--text-2); }
ol > li::marker { font-family: var(--mono); color: var(--text-2); }
strong { font-weight: 650; }
em { font-style: italic; }
sup { font-size: 0.7em; line-height: 0; }
.lead { font-size: var(--t-l); line-height: 1.6; color: var(--text); margin-bottom: var(--gap-5); }
.muted { color: var(--text-2); }
.small { font-size: var(--t-s); }
hr { border: 0; border-top: 1px dashed var(--line-ui); margin: var(--gap-5) 0; }
kbd { font-family: var(--mono); font-size: 0.85em; padding: 0 0.4em; border: 1px solid var(--line-ui); background: var(--glass); }
blockquote { margin: 0 0 var(--gap-4); padding: var(--gap-2) var(--gap-3); border: 1px solid var(--line-strong); color: var(--text-2); }
details { border: 1px solid var(--line-strong); padding: var(--gap-2) var(--gap-3); }
summary { cursor: pointer; font-family: var(--mono); }
code, kbd, samp, pre { font-family: var(--mono); font-variant-ligatures: none; }
code { font-size: 0.86em; color: var(--text); background: var(--glass); border: 1px solid var(--line); padding: 0.05em 0.35em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
pre { font-size: 0.875rem; line-height: 1.65; background: var(--glass-field); border: 1px solid var(--line-strong); padding: var(--gap-3) var(--gap-4); margin: 0 0 var(--gap-4); overflow-x: auto; }
pre code { background: none; border: 0; padding: 0; font-size: 1em; }
pre.box, pre.box code { font-family: var(--mono-box); line-height: 1.3; }
.skip { position: absolute; top: -5rem; left: var(--gutter); z-index: 30; background: var(--accent); color: var(--on-accent); font-family: var(--mono); padding: var(--gap-2) var(--gap-3); text-decoration: none; }
.skip:focus { top: var(--gap-2); }
.skip:hover, .skip:active { color: var(--on-accent); background: var(--accent-hover); }
.head-bar, .tool, .index, .noscript {
  background: linear-gradient(180deg, var(--glass-top), var(--glass-bottom));
  -webkit-backdrop-filter: blur(var(--blur)) saturate(var(--saturate));
  backdrop-filter: blur(var(--blur)) saturate(var(--saturate));
  border: 1px solid var(--glass-edge);
  box-shadow: inset 0 1px 0 var(--glass-hi), 0 30px 60px -32px var(--glass-shadow);
}
@media (max-width: 48rem) {
  .head-bar, .tool, .index, .noscript { -webkit-backdrop-filter: blur(var(--blur-narrow)) saturate(var(--saturate)); backdrop-filter: blur(var(--blur-narrow)) saturate(var(--saturate)); }
}
.site-head { position: sticky; top: 0; z-index: 20; padding: var(--gap-2) var(--gutter) 0; }
.head-bar { background: linear-gradient(var(--glass-2), var(--glass-2)), var(--glass-tint); box-shadow: inset 0 1px 0 var(--glass-hi), var(--float-shadow); }
.head-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--gap-3); max-width: var(--wide); margin: 0 auto; padding: 0 var(--gap-2) 0 var(--gap-3); border-radius: var(--radius); }
.site-name { display: inline-flex; align-items: center; gap: var(--gap-2); min-height: 44px; margin-right: auto; color: var(--text); text-decoration: none; font-family: var(--mono); font-weight: 700; font-size: 1.05rem; }
.site-name:hover { color: var(--accent); }
.site-name:hover .mk-cursor { fill: var(--accent); }
.site-name svg { width: 22px; height: 16px; }
.mk-prompt { fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: square; }
.mk-cursor { fill: var(--text); }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; }
.site-nav li { margin: 0; }
.site-nav li::marker { content: none; }
.site-nav a { display: flex; align-items: center; min-height: 44px; padding: 0 var(--gap-2); font-size: var(--t-s); color: var(--text-2); text-decoration: none; text-transform: lowercase; position: relative; }
.site-nav a::before { content: "~/"; color: var(--line-ui); }
.site-nav a:hover { color: var(--text); }
.site-nav a[aria-current="page"] { color: var(--accent); }
.site-nav a[aria-current="page"]::after { content: ""; position: absolute; left: var(--gap-2); right: var(--gap-2); bottom: 6px; height: 2px; background: var(--accent); }
.nav-toggle { display: none; }
@media (max-width: 40rem) {
  .head-bar { padding: 0 var(--gap-2) 0 var(--gap-3); }
  .site-nav { width: 100%; border-top: 1px solid var(--line); }
  .site-nav ul { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: var(--gap-2); }
  .site-nav a { justify-content: center; padding: 0; font-size: 0.68rem; letter-spacing: -0.01em; }
  .site-nav a::before { content: none; }
  .site-nav a[aria-current="page"]::after { left: 20%; right: 20%; }
  .has-menu .nav-toggle:not([hidden]) {
    display: inline-flex; align-items: center; gap: var(--gap-2);
    min-height: 44px; padding: 0 var(--gap-2) 0 var(--gap-3);
    font-size: var(--t-s); font-weight: 400; letter-spacing: 0.02em; color: var(--text-2);
    background: transparent; border: 1px solid transparent; box-shadow: none;
  }
  .has-menu .nav-toggle::before { content: "~/"; color: var(--line-ui); margin-right: -0.4rem; }
  .has-menu .nav-toggle::after {
    content: ""; width: 0.4rem; height: 0.4rem; margin-left: 0.15rem;
    border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
    transform: translateY(-0.15rem) rotate(45deg); transition: transform 150ms var(--ease);
  }
  .has-menu .nav-toggle:hover { color: var(--text); background: transparent; border-color: transparent; }
  .has-menu .nav-toggle[aria-expanded="true"] { color: var(--accent); }
  .has-menu .nav-toggle[aria-expanded="true"]::after { transform: translateY(0.1rem) rotate(-135deg); }
  .head-bar { background: var(--solid-1); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .site-head::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: var(--gap-2); background: var(--bg); }
  .has-menu .head-bar { position: relative; }
  .has-menu .head-bar.menu-open { border-bottom-left-radius: 0; border-bottom-right-radius: 0; box-shadow: inset 0 1px 0 var(--glass-hi); }
  .has-menu .site-nav { display: none; }
  .has-menu .site-nav.is-open {
    display: block; position: absolute; top: calc(100% - 1px); left: -1px; right: -1px; width: auto; z-index: 1;
    padding: 0; background: var(--solid-1); border: 1px solid var(--glass-edge); border-radius: 0 0 var(--radius) var(--radius);
    box-shadow: var(--float-shadow);
    animation: menu-in 160ms var(--ease);
  }
  .has-menu .site-nav ul { display: block; }
  .has-menu .site-nav li + li { border-top: 1px solid var(--glass-edge); }
  .has-menu .site-nav a { justify-content: flex-start; min-height: 44px; padding: 0 var(--gap-3); font-size: var(--t-s); letter-spacing: 0; color: var(--text); }
  .has-menu .site-nav a::before { content: "~/"; color: var(--text-2); }
  .has-menu .site-nav a:hover { background: var(--glass-hover); }
  .has-menu .site-nav a:active { background: var(--glass-2); }
  .has-menu .site-nav a:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
  .has-menu .site-nav a[aria-current="page"] { color: var(--accent); }
  .has-menu .site-nav a[aria-current="page"]::after { content: ">"; position: absolute; left: var(--gap-1); right: auto; bottom: auto; top: auto; height: auto; background: none; font-weight: 700; }
}
@keyframes menu-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (max-width: 23.4rem) {
  .site-head { position: static; }
  .site-nav ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
  .site-nav a { font-size: 0.78rem; }
  .has-menu .site-head { position: sticky; }
}
.page {
  display: grid;
  grid-template-columns: [full-start] var(--gutter) [wide-start] minmax(0, 1fr) [col-start] minmax(0, var(--col)) [col-end] minmax(0, 1fr) [wide-end] var(--gutter) [full-end];
  max-width: calc(var(--wide) + 2 * var(--gutter));
  margin-inline: auto;
  padding: var(--gap-5) 0 var(--gap-7);
}
body:not(.pt-home) .page {
  grid-template-columns: [full-start] var(--gutter) [wide-start col-start] minmax(0, var(--col)) [col-end] minmax(0, 1fr) [wide-end] var(--gutter) [full-end];
}
@media (min-width: 48rem) { .page { padding-top: var(--gap-6); } }
.main { grid-column: wide; display: grid; grid-template-columns: subgrid; align-content: start; min-width: 0; }
:where(.main, .ref, .sec, .tool-notes, .index-group) > * { grid-column: col; min-width: 0; }
:where(.ref, .sec, .tool-notes, .index-group) { grid-column: wide; display: grid; grid-template-columns: subgrid; align-content: start; }
:where(.sec, .tool-notes) > :is(.table-wrap, pre, .diagram, .sources), .main > .tool, .main > .table-wrap, .index-group > .index, .index-group > h2, .main > .index, .main > .filter { grid-column: wide; }
.page-pdf { grid-column: col; margin: var(--gap-6) 0 0; font-size: var(--t-s); color: var(--text-2); }
.page-pdf a { color: var(--accent); }
.page-pdf p { margin: 0; }
.eyebrow { font-size: var(--t-s); color: var(--text-2); margin: 0 0 var(--gap-3); }
.eyebrow::before { content: "$ cd "; color: var(--accent); }
.eyebrow a { color: var(--text-2); text-decoration-color: var(--line-ui); text-transform: lowercase; }
.eyebrow a:hover { color: var(--accent-hover); }
.pt-home .main > h1 { text-align: center; font-size: clamp(2.2rem, 1.4rem + 3.4vw, 3.7rem); margin-top: var(--gap-3); }
.pt-home .main > .lead { text-align: center; max-width: 40rem; justify-self: center; color: var(--text-2); }
.pt-home .filter { max-width: 30rem; justify-self: center; width: 100%; }
.index-group { counter-reset: n; }
.index-group > h2 { display: flex; align-items: baseline; gap: var(--gap-3); font-size: var(--t-s); text-transform: uppercase; letter-spacing: 0.14em; color: var(--text); font-weight: 600; margin: var(--gap-6) 0 var(--gap-3); }
.index-group > h2::after { content: ""; flex: 1; border-bottom: 1px dashed var(--line-strong); transform: translateY(-0.3em); }
.index { margin: 0; padding: var(--gap-2) var(--gap-3); counter-reset: n; border-radius: var(--radius); }
.pt-index .index { margin-top: var(--gap-3); }
.index .entry { counter-increment: n; display: grid; grid-template-columns: 3ch minmax(0, 1fr); column-gap: var(--gap-3); padding: var(--gap-3) var(--gap-2); position: relative; }
.index .entry:has(> dt[hidden]) { display: none; }
.index .entry:not(:has(> dt[hidden])) ~ .entry { border-top: 1px dashed var(--line-strong); }
.index .entry::before { content: counter(n, decimal-leading-zero); grid-row: 1 / span 2; font-family: var(--mono); font-size: var(--t-s); color: var(--text-2); padding-top: 0.2em; }
@media (min-width: 56rem) { .index .entry { grid-template-columns: 3ch minmax(0, 16rem) minmax(0, 1fr); align-items: baseline; } .index .entry::before { grid-row: auto; } }
.index dt { font-family: var(--mono); font-size: 1rem; font-weight: 600; line-height: 1.4; }
.index dt a { color: var(--text); text-decoration: none; }
.index dt a::after { content: ""; position: absolute; inset: 0; }
.index .entry:hover dt a, .index dt a:hover, .index .entry:has(a:focus-visible) dt a, .index .entry:hover::before { color: var(--accent); }
.index .entry:has(a:focus-visible) { outline: 2px solid var(--accent); outline-offset: -2px; }
.index dt a:focus-visible { outline: none; }
.index dd { margin: 0; color: var(--text-2); font-size: 0.97rem; line-height: 1.6; }
.filter { margin: var(--gap-4) 0 var(--gap-2); }
.filter-empty { font-family: var(--mono); color: var(--warn); text-align: center; }
.ref { counter-reset: sec; }
.sec { counter-increment: sec; }
.ref h2, .tool-notes h2, .pt-page .main > h2, .pt-notfound .main > h2 { margin-top: var(--gap-6); }
.ref h2::before { content: "[" counter(sec, decimal-leading-zero) "] "; color: var(--accent); font-weight: 400; }
.ref .sec:first-of-type h2 { margin-top: 0; }
.tool-notes h2::before, .pt-page .main > h2::before { content: "## "; color: var(--text-2); font-weight: 400; }
.table-wrap { overflow-x: auto; margin: 0 0 var(--gap-4); border: 1px solid var(--line-strong); background: var(--glass); }
table { width: 100%; border-collapse: collapse; font-size: 0.95rem; line-height: 1.55; font-variant-numeric: tabular-nums; }
caption { caption-side: top; text-align: left; font-size: var(--t-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-2); padding: var(--gap-2) var(--gap-3); border-bottom: 1px solid var(--line); }
th, td { text-align: left; vertical-align: top; padding: var(--gap-2) var(--gap-3); border-bottom: 1px dashed var(--line); }
thead th { font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-2); background: none; border-bottom: 1px solid var(--line-strong); white-space: nowrap; }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
tbody th { font-weight: 600; }
td code, th code { white-space: nowrap; }
@media (max-width: 40rem) { td code, th code { white-space: normal; overflow-wrap: anywhere; } }
.files td.num, .files td:nth-last-child(2) { white-space: nowrap; }
td.num, th.num { text-align: right; }
.num, .http-code, td.mono, th.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.http-code { color: var(--accent); font-weight: 600; white-space: nowrap; }
td.mono, th.mono { font-size: 0.84rem; white-space: nowrap; }
td.glyph { font-size: 1.45rem; line-height: 1.1; min-width: 2em; }
tr.is-flagged th, tr.is-flagged td { background: var(--warn-wash); }
tr.is-flagged th { box-shadow: inset 2px 0 0 var(--warn); }
.hash { font-family: var(--mono); font-size: 0.78rem; color: var(--text-2); overflow-wrap: anywhere; }
.files td { vertical-align: top; }
@media (max-width: 40rem) {
  .files, .files tbody { display: block; }
  .files thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .files caption { display: block; }
  .files tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--gap-3); row-gap: var(--gap-1); padding: var(--gap-3); border-bottom: 1px dashed var(--line); }
  .files tbody tr:last-child { border-bottom: 0; }
  .files th, .files td { display: block; padding: 0; border: 0; }
  .files th[scope="row"], .files td:nth-child(2) { grid-column: 1 / -1; }
  .files td:nth-child(2) { color: var(--text-2); margin-bottom: var(--gap-1); }
  .files td:nth-child(3) { font-family: var(--mono); font-size: var(--t-s); color: var(--text-2); align-self: start; padding-top: 0.15em; }
  .files td.num { text-align: right; }
}
.diagram { margin: 0 0 var(--gap-4); padding: var(--gap-3); border: 1px solid var(--line-strong); background: var(--glass); overflow-x: auto; }
.diagram svg { display: block; width: 100%; min-width: 34rem; max-width: 48rem; height: auto; }
.diagram figcaption { font-family: var(--mono); font-size: var(--t-s); color: var(--text-2); margin: var(--gap-2) 0 0; max-width: 48rem; }
.scale-band { stroke: var(--line-ui); stroke-width: 1; fill: var(--solid-2); }
.scale-band.c4, .scale-band.c5 { fill: var(--accent-wash); }
.scale-tick { stroke: var(--accent); stroke-width: 1.5; }
.scale-text { font-family: var(--mono); font-size: 11px; fill: var(--text); }
.scale-sub { font-family: var(--mono); font-size: 10px; fill: var(--text-2); }
.bit-net { fill: var(--accent-wash); stroke: var(--accent); }
.bit-host { fill: var(--solid-2); stroke: var(--line-ui); }
.bit-text { font-family: var(--mono); font-size: 10px; text-anchor: middle; dominant-baseline: central; }
.bit-text.on-net { fill: var(--accent); }
.bit-text.on-host { fill: var(--text); }
.bit-tick { stroke: var(--warn); stroke-width: 1.5; }
.bit-label { font-family: var(--mono); font-size: 10px; fill: var(--text-2); }
.sources { list-style: none; padding: 0; margin: 0 0 var(--gap-5); border: 1px solid var(--line-strong); background: var(--glass); counter-reset: ref; font-size: 0.95rem; }
.sources li { counter-increment: ref; display: grid; grid-template-columns: 4ch minmax(0, 1fr); gap: var(--gap-2); padding: var(--gap-2) var(--gap-3); margin: 0; border-bottom: 1px dashed var(--line); overflow-wrap: anywhere; }
.sources li:last-child { border-bottom: 0; }
.sources li::marker { content: none; }
.sources li::before { content: "[" counter(ref) "]"; font-family: var(--mono); color: var(--text-2); font-size: var(--t-s); }
.noscript { font-family: var(--mono); font-size: var(--t-s); padding: var(--gap-3); color: var(--text); border-color: var(--warn); }
.noscript::before { content: "[warn] "; color: var(--warn); }
.tool { margin: var(--gap-3) 0 var(--gap-4); padding: var(--gap-4) var(--gap-3); border-radius: var(--radius); }
@media (min-width: 48rem) { .tool { padding: var(--gap-5); } }
.tool h2 { font-size: var(--t-l); color: var(--text); margin: var(--gap-6) 0 var(--gap-3); }
.field { margin: 0 0 var(--gap-4); }
.field > label, .label, legend { display: block; font-size: var(--t-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-2); margin: 0 0 var(--gap-2); padding: 0; }
.field > label::before { content: "› "; color: var(--text-2); }
.hint { display: block; font-size: var(--t-s); color: var(--text-2); margin-top: var(--gap-2); }
fieldset { border: 1px dashed var(--line-strong); padding: var(--gap-2) var(--gap-3); margin: 0 0 var(--gap-4); min-width: 0; }
legend { padding: 0 var(--gap-2); margin-left: calc(var(--gap-2) * -1); }
input[type="text"], input[type="search"], input[type="password"], input[type="number"], select, textarea {
  width: 100%;
  min-height: var(--ctl-h);
  font-family: var(--mono);
  font-size: max(16px, 0.95rem);
  line-height: 1.55;
  color: var(--text);
  background: var(--glass-field);
  border: 1px solid var(--line-ui);
  border-radius: var(--radius);
  box-shadow: inset 0 1px 2px var(--glass-shadow);
  padding: var(--gap-2) var(--gap-3);
}
textarea { min-height: 9rem; resize: vertical; }
textarea.short { min-height: 5rem; }
input::placeholder, textarea::placeholder { color: var(--text-2); opacity: 1; }
input:hover, select:hover, textarea:hover { border-color: var(--text-2); }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: -1px; border-color: var(--accent); }
textarea[readonly], input[readonly] { background: var(--glass-field); border-style: dashed; box-shadow: none; }
input:disabled, select:disabled, textarea:disabled { color: var(--text-2); border-style: dotted; cursor: not-allowed; }
input:user-invalid, [aria-invalid="true"],
.tool:has(> .status.is-error) > .field:first-of-type :is(input[type="text"], textarea),
.field:has(+ .status.is-error) :is(input[type="text"], textarea),
.inline:has(+ .status.is-error) > .field:first-child :is(input[type="text"], textarea) { border-color: var(--err); box-shadow: none; }
.field:has(+ .status.is-error) :is(input, textarea):focus-visible,
.inline:has(+ .status.is-error) > .field:first-child :is(input, textarea):focus-visible,
.tool:has(> .status.is-error) > .field:first-of-type :is(input, textarea):focus-visible { outline-color: var(--err); }
input[type="number"] { width: 9rem; }
select { width: auto; max-width: 100%; appearance: none; padding-right: 2.4rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%);
  background-position: calc(100% - 1.15rem) 52%, calc(100% - 0.75rem) 52%; background-size: 0.42rem 0.42rem; background-repeat: no-repeat; }
select:hover { background-image: linear-gradient(45deg, transparent 50%, var(--text) 50%), linear-gradient(135deg, var(--text) 50%, transparent 50%); }
select option { background: var(--solid-2); color: var(--text); }
input[type="file"] { font-family: var(--mono); font-size: var(--t-s); color: var(--text-2); max-width: 100%; }
input[type="file"]::file-selector-button { font: inherit; min-height: 44px; padding: 0 var(--gap-3); margin-right: var(--gap-3); color: var(--text); background: var(--glass); border: 1px solid var(--line-ui); border-radius: var(--radius); cursor: pointer; }
input[type="file"]::file-selector-button:hover { background: var(--glass-hover); border-color: var(--text-2); }
input[type="color"] { appearance: none; width: 3.2rem; height: var(--ctl-h); padding: 3px; border: 1px solid var(--line-ui); border-radius: var(--radius); background: var(--glass-field); cursor: pointer; }
input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
input[type="color"]::-webkit-color-swatch { border: 0; }
.check { display: inline-flex; align-items: center; gap: 0.65rem; min-height: 44px; margin: 0 var(--gap-4) 0 0; font-family: var(--mono); font-size: var(--t-s); line-height: 1.3; color: var(--text); cursor: pointer; }
.check input { appearance: none; margin: 0; width: 1.125rem; height: 1.125rem; flex: none; border: 1px solid var(--line-ui); border-radius: 3px; background: var(--glass-field); display: grid; place-content: center; cursor: pointer; }
.check input::before { content: ""; transform: scale(0); transition: transform 120ms var(--ease); }
.check input[type="checkbox"]::before { width: 0.7rem; height: 0.55rem; background: var(--on-accent); clip-path: polygon(14% 52%, 0 66%, 38% 100%, 100% 20%, 86% 6%, 38% 72%); }
.check input[type="checkbox"]:checked { background: var(--accent); border-color: var(--accent); }
.check input[type="radio"] { border-radius: 50%; }
.check input[type="radio"]::before { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--accent); }
.check input[type="radio"]:checked { border-color: var(--accent); }
.check input:checked::before { transform: scale(1); }
.check:hover input { border-color: var(--text-2); }
.check:hover input[type="checkbox"]:checked { background: var(--accent-bright); border-color: var(--accent-bright); }
.check:hover input[type="radio"]:checked { border-color: var(--accent-bright); }
.check:hover input[type="radio"]::before { background: var(--accent-bright); }
.check input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.check:has(input:disabled) { color: var(--text-2); cursor: not-allowed; }
.inline { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--gap-3) var(--gap-4); margin: 0 0 var(--gap-4); }
.inline .field { margin: 0; flex: 1 1 12rem; }
.inline > .check { align-self: flex-end; }
.inline .field:has(select), .inline .field:has(input[type="number"]), .inline .field:has(input[type="color"]) { flex: 0 1 auto; }
.actions { display: flex; flex-wrap: wrap; gap: var(--gap-2); margin: 0 0 var(--gap-3); }
@media (max-width: 40rem) {
  .actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .actions button { padding: var(--gap-1) var(--gap-2); font-size: var(--t-s); line-height: 1.3; text-align: center; }
}
button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--ctl-h);
  padding: 0 var(--gap-4);
  font-family: var(--mono);
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--text);
  background: var(--glass);
  border: 1px solid var(--line-ui);
  border-radius: var(--radius);
  box-shadow: inset 0 1px 0 var(--glass-hi);
  cursor: pointer;
  transition: transform 120ms var(--ease);
}
button:hover { background: var(--glass-hover); border-color: var(--text-2); }
button:active { transform: translateY(1px); }
button.primary { color: var(--on-accent); background: var(--accent); border-color: var(--accent); box-shadow: inset 0 1px 0 var(--accent-edge); }
button.primary::before { content: ""; width: 0; height: 0; border-left: 0.45rem solid currentColor; border-top: 0.3rem solid transparent; border-bottom: 0.3rem solid transparent; margin-right: 0.6rem; }
button.primary:hover { background: var(--accent-bright); color: var(--on-accent); border-color: var(--accent-bright); }
button.primary:active { background: var(--accent-press); border-color: var(--accent-press); }
button:disabled { color: var(--text-2); background: transparent; border-style: dotted; cursor: not-allowed; transform: none; }
button[data-copied] { background: var(--accent-wash); color: var(--accent); border-color: var(--accent); }
button[data-copied]::after { content: ""; width: 0.7rem; height: 0.55rem; margin-left: 0.5rem; background: currentColor; clip-path: polygon(14% 52%, 0 66%, 38% 100%, 100% 20%, 86% 6%, 38% 72%); }
.examples { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gap-2); font-size: var(--t-s); color: var(--text-2); margin: var(--gap-5) 0 0; line-height: 1.4; }
.examples button { min-height: 44px; padding: 0 var(--gap-3); margin: 0; font-weight: 400; font-size: var(--t-s); color: var(--text); background: transparent; border: 1px solid var(--line-ctl); box-shadow: none; }
.examples button:hover { background: transparent; color: var(--accent); border-color: var(--accent); }
.status { min-height: 1.6em; margin: var(--gap-2) 0 var(--gap-3); font-size: var(--t-s); color: var(--text-2); }
.status:empty { margin-block: 0; }
.status:not(:empty)::before { content: "[ok] "; color: var(--ok); }
.status.is-error, .status.is-warn { color: var(--text); padding: var(--gap-2) var(--gap-3); border: 1px solid; }
.status.is-error { background: var(--err-wash); border-color: var(--err); }
.status.is-warn { background: var(--warn-wash); border-color: var(--warn); }
.status.is-error::before { content: "[err] "; color: var(--err); }
.status.is-warn::before { content: "[warn] "; color: var(--warn); }
.kv { display: grid; grid-template-columns: fit-content(18rem) minmax(0, 1fr); gap: 0 var(--gap-4); margin: 0 0 var(--gap-4); padding: var(--gap-2) var(--gap-3); background: var(--glass); border: 1px solid var(--line-strong); font-family: var(--mono); font-size: 0.92rem; }
.kv:empty { display: none; }
.kv dt { color: var(--text-2); font-size: var(--t-s); padding: var(--gap-1) 0; }
.kv dd { margin: 0; padding: var(--gap-1) 0; overflow-wrap: anywhere; color: var(--text); font-variant-numeric: tabular-nums; }
.kv dd.mono { white-space: pre-wrap; }
@media (max-width: 34rem) { .kv { grid-template-columns: fit-content(7.5rem) minmax(0, 1fr); gap: 0 var(--gap-3); } }
@media (max-width: 22rem) { .kv { grid-template-columns: minmax(0, 1fr); } .kv dd { padding-bottom: var(--gap-2); } }
.out { font-family: var(--mono); font-size: 0.92rem; line-height: 1.65; color: var(--text); background: var(--glass); border: 1px solid var(--line-strong); padding: var(--gap-3); margin: 0 0 var(--gap-4); white-space: pre-wrap; overflow-wrap: anywhere; min-height: 3rem; }
ol.out { padding-left: 3.4em; }
.out:empty, .kv:empty, .diagram:has(svg:empty), .tool ul:empty { display: none; }
ol.out li { margin: 0; }
.out mark { background: var(--accent-wash); color: var(--accent); outline: 1px solid var(--accent); }
.out mark.alt { outline-style: dashed; }
#sv-meaning { font-family: var(--mono); font-size: var(--t-s); }
.swatches { display: flex; flex-wrap: wrap; gap: var(--gap-3); margin: 0 0 var(--gap-4); }
.swatch { width: 100%; max-width: 22rem; padding: var(--gap-3); border: 1px solid var(--line-ui); background: var(--sw-bg, var(--bg)); color: var(--sw-fg, var(--text)); }
.swatch .big { display: block; font-size: var(--t-xl); font-weight: 600; }
.swatch .small { font-size: var(--t-s); }
.diff-view { font-family: var(--mono); font-size: 0.875rem; border: 1px solid var(--line-strong); background: var(--glass-field); overflow-x: auto; margin: 0 0 var(--gap-4); }
.diff-view table { font-size: 1em; }
.diff-view td { border: 0; padding: 0 var(--gap-2); white-space: pre-wrap; overflow-wrap: anywhere; }
.diff-view td.ln { color: var(--text-2); text-align: right; width: 3.5em; white-space: nowrap; user-select: none; border-right: 1px solid var(--line); }
.diff-view td.sign { width: 1.5em; text-align: center; user-select: none; }
.diff-view tr.add td { background: var(--add-bg); }
.diff-view tr.add td.sign { color: var(--ok); }
.diff-view tr.del td { background: var(--del-bg); }
.diff-view tr.del td.sign { color: var(--err); }
.diff-view tr.del td.code { text-decoration: line-through; text-decoration-color: var(--err); }
.diff-view tr.gap td { color: var(--text-2); background: var(--glass); }
.diff-view tbody tr:hover td { background: inherit; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .head-bar, .tool, .index, .noscript { background: var(--solid-1); }
}
@media (prefers-reduced-transparency: reduce) {
  .head-bar, .tool, .index, .noscript { background: var(--solid-1); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .table-wrap, .sources, .diagram, button, .examples button, code, thead th, .kv, .out { background-color: var(--solid-2); }
  input[type="text"], input[type="search"], input[type="password"], input[type="number"], select, textarea, pre, .diff-view, .check input { background-color: var(--solid-field); }
}
@media print {
  @page { size: A4; margin: 18mm 16mm 20mm; }
  :root { color-scheme: light; }
  :root, html, body { background: var(--print-paper); color: var(--print-ink); font-size: 10pt; line-height: 1.5; }
  body::before, body::after, .site-head, .skip, .tool, .page-pdf, .noscript, .filter, .examples { display: none !important; }
  .page { display: block; padding: 0; }
  .main { display: block; }
  :where(.ref, .sec, .tool-notes, .index-group) { display: block; }
  h1, h2, h3, h4 { color: var(--print-ink); break-after: avoid; page-break-after: avoid; }
  h1 { font-size: 20pt; margin: 0 0 8pt; }
  h2, .ref h2, .ref .sec:first-of-type h2, .tool-notes h2 { font-size: 13pt; margin: 16pt 0 6pt; border-top: 0.75pt solid var(--print-rule); padding-top: 6pt; }
  h1::before, .ref h2::before, .eyebrow::before { color: var(--print-accent); }
  .lead { font-size: 11.5pt; color: var(--print-ink); margin-bottom: 10pt; }
  .eyebrow, .eyebrow a { color: var(--print-muted); }
  a { color: var(--print-ink); text-decoration-color: var(--print-accent); }
  code { background: none; border: 0; color: var(--print-ink); padding: 0; }
  pre, .table-wrap, .sources, .diagram, .index { background: none; border: 0.75pt solid var(--print-rule); box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  pre { white-space: pre-wrap; overflow-wrap: anywhere; overflow: visible; font-size: 8.5pt; break-inside: avoid; }
  .table-wrap { overflow: visible; }
  table { font-size: 9pt; }
  thead th, tbody tr:hover td, tbody tr:hover th { background: none; color: var(--print-ink); }
  th, td { border-bottom: 0.5pt solid var(--print-rule); }
  tr, img, figure { break-inside: avoid; }
  td code, th code { white-space: normal; overflow-wrap: anywhere; }
  .http-code, ul > li::marker, .sources li::before { color: var(--print-accent); }
  thead th, caption, .muted, .hash, .diagram figcaption { color: var(--print-muted); }
  .scale-band { fill: var(--print-paper); stroke: var(--print-ink); }
  .scale-band.c4, .scale-band.c5 { fill: var(--print-rule); }
  .scale-text { fill: var(--print-ink); }
  .scale-sub { fill: var(--print-muted); }
  .scale-tick { stroke: var(--print-accent); }
}
