/* 0x2F — docs.
   The ledger index on the left, the sheet of record on the right.
   Same two type systems as the front page: serif for prose, mono for
   system state and navigation. */

@font-face{font-family:"Plex Serif";src:url("assets/fonts/plex-serif-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Serif";src:url("assets/fonts/plex-serif-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("assets/fonts/plex-mono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("assets/fonts/plex-mono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}

:root{
  --sheet:#f6f8fa;
  --nav-bg:#e4e8ec;
  --graphite:#2f2f2f;
  --link:#2f5fa8;

  --lede:#37424c;
  --body:#2f2f2f;
  --label:#8b959e;
  --value:#5c6771;
  --rule:#cdd6dd;
  --rule-strong:#b9c3cb;
  --pre-bg:#eef2f6;
  --pre-border:#dbe2e8;

  --nav-name-on:#2f2f2f;
  --nav-name-live:#4b5661;
  --nav-name-soon:#9aa4ad;
  --nav-num-on:#2f5fa8;
  --nav-num-off:#a3adb6;
  --nav-rule-on:#2f2f2f;
  --nav-rule-off:#cdd6dd;
  --nav-tag:#a3adb6;

  --navW:246px;
  --navPad:38px 26px 40px 30px;
  --navHeadGap:30px;
  --sheetPad:58px 46px 110px 54px;

  --serif:"Plex Serif",Georgia,"Times New Roman",serif;
  --mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

@media (max-width:779px){
  :root{
    --navPad:20px 20px 16px;
    --navHeadGap:14px;
    --sheetPad:34px 20px 80px;
  }
}

*,*::before,*::after{box-sizing:border-box}

html{overflow-x:clip}
@supports not (overflow-x:clip){ html{overflow-x:hidden} }
html,body{margin:0;background:var(--sheet)}
body{
  font-family:var(--serif);
  color:var(--graphite);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
::selection{background:#cddcf5;color:var(--graphite)}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

a{color:var(--link)}

/* ── Frame ─────────────────────────────────────────────── */

.docs-frame{
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:row;
}
@media (max-width:779px){
  .docs-frame{flex-direction:column}
}

/* ── Ledger index ──────────────────────────────────────── */

.docs-nav{
  flex:none;
  width:var(--navW);
  box-sizing:border-box;
  background:var(--nav-bg);
  border-right:1px solid var(--graphite);
  padding:var(--navPad);
  position:sticky;
  top:0;
  align-self:flex-start;
  max-height:100vh;
  overflow-y:auto;
}
@media (max-width:779px){
  .docs-nav{
    width:100%;
    border-right:none;
    border-bottom:1px solid var(--graphite);
    position:static;
    max-height:none;
  }
}

.docs-nav-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:var(--navHeadGap);
}

.docs-mark{
  display:flex;
  flex-direction:column-reverse;
  gap:2px;
  width:26px;
  flex:none;
}
.docs-mark i{
  display:block;
  height:3px;
  width:8px;
  background:var(--graphite);
}
.docs-mark i:nth-child(1){margin-left:0}
.docs-mark i:nth-child(2){margin-left:4px}
.docs-mark i:nth-child(3){margin-left:8px}
.docs-mark i:nth-child(4){margin-left:12px}

.docs-word{
  font-family:var(--mono);
  font-size:14px;
  font-weight:500;
  color:var(--graphite);
  text-decoration:none;
  border-bottom:none;
}
.docs-tag{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.16em;
  color:var(--label);
}
.docs-nav-toggle{
  display:none;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  color:var(--graphite);
  cursor:pointer;
  border:0;
  background:none;
  padding:0 0 2px;
  border-bottom:1px solid var(--rule-strong);
  appearance:none;
}
@media (max-width:779px){
  .docs-nav-toggle{display:inline-block}
}

.docs-nav-list{
  display:flex;
  flex-direction:column;
  list-style:none;
  margin:0;
  padding:0;
}
@media (max-width:779px){
  .docs-nav-list{display:none}
  .docs-nav.is-open .docs-nav-list{display:flex}
}

.docs-nav-item{
  display:flex;
  gap:12px;
  align-items:baseline;
  padding:7px 0;
  border-top:1px solid var(--nav-rule-off);
  font-family:var(--mono);
  text-decoration:none;
  cursor:pointer;
}
.docs-nav-item.is-current{border-top-color:var(--nav-rule-on)}
.docs-nav-num{
  width:22px;
  flex:none;
  font-size:11px;
  color:var(--nav-num-off);
  font-variant-numeric:tabular-nums;
}
.docs-nav-item.is-current .docs-nav-num{color:var(--nav-num-on)}
.docs-nav-name{
  font-size:11.5px;
  letter-spacing:.13em;
  color:var(--nav-name-live);
}
.docs-nav-item.is-soon .docs-nav-name{color:var(--nav-name-soon)}
.docs-nav-item.is-current .docs-nav-name{color:var(--nav-name-on)}
.docs-nav-spacer{flex:1}
.docs-nav-soon-tag{
  font-size:9.5px;
  letter-spacing:.14em;
  color:var(--nav-tag);
}

/* ── Sheet ─────────────────────────────────────────────── */

.docs-sheet{
  flex:1;
  min-width:0;
  padding:var(--sheetPad);
  box-sizing:border-box;
}
.docs-content{max-width:70ch}

.docs-section{display:none}
.docs-section.is-active{display:block}

.docs-head{
  display:flex;
  flex-wrap:wrap;
  gap:6px 30px;
  align-items:baseline;
  padding-bottom:14px;
  border-bottom:1px solid var(--graphite);
  font-family:var(--mono);
}
.docs-head-num{font-size:20px;letter-spacing:-.01em;flex:none}
.docs-head-name{font-size:13px;letter-spacing:.18em;flex:none}
.docs-head-spacer{flex:1}
.docs-head-field{display:flex;gap:9px;align-items:baseline}
.docs-head-field .k{font-size:9.5px;letter-spacing:.16em;color:var(--label)}
.docs-head-field .v{font-size:12px;color:var(--value)}

.docs-lede{
  margin:30px 0 0;
  font-size:19px;
  line-height:1.55;
  color:var(--lede);
  text-wrap:pretty;
}
.docs-p{
  margin:26px 0 0;
  font-size:17px;
  line-height:1.68;
  text-wrap:pretty;
}
.docs-p + .docs-p{margin-top:16px}
.docs-fine{
  margin:12px 0 0;
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--label);
}
.docs-code{font-family:var(--mono);font-size:14px}

.docs-block{margin-top:44px}
.docs-block-tight{margin-top:38px}
.docs-sub{
  margin:0 0 14px;
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:.14em;
  color:var(--graphite);
}
.docs-block-p{margin:0 0 16px;font-size:17px;line-height:1.68;text-wrap:pretty}
.docs-block-p:last-child{margin-bottom:0}
.docs-block-p-tight{margin:0 0 14px;font-size:17px;line-height:1.68}

.docs-pre{
  margin:0;
  font-family:var(--mono);
  font-size:12.5px;
  line-height:1.85;
  background:var(--pre-bg);
  border:1px solid var(--pre-border);
  padding:16px 18px;
  overflow-x:auto;
  max-width:100%;
  white-space:pre;
}
.docs-pre + .docs-block-p,
.docs-pre + .docs-fine{margin-top:16px}
.docs-block-p + .docs-pre,
.docs-sub + .docs-pre{margin-top:0}

.docs-grid{
  display:flex;
  flex-wrap:wrap;
  gap:34px;
  margin-top:34px;
}
.docs-col{flex:1 1 280px;min-width:0}
.docs-col .docs-sub{font-size:12.5px}
.docs-col .docs-block-p{font-size:16.5px;line-height:1.62}
.docs-col .docs-pre{font-size:12px;line-height:1.8;padding:14px 16px;margin:0 0 12px}

.docs-deflist{
  display:flex;
  flex-wrap:wrap;
  gap:10px 24px;
  font-size:16px;
  line-height:1.6;
}
.docs-deflist dt{
  flex:0 0 120px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.14em;
  color:var(--label);
  margin:0;
}
.docs-deflist dd{flex:1 1 260px;min-width:0;margin:0}

.docs-footnav{
  margin-top:52px;
  padding-top:16px;
  border-top:1px solid var(--rule);
  display:flex;
  flex-wrap:wrap;
  gap:16px 30px;
  font-family:var(--mono);
  font-size:11.5px;
  letter-spacing:.12em;
}
.docs-footnav-spacer{flex:1}
.docs-footnav a{color:var(--link);text-decoration:none;cursor:pointer}
.docs-footnav a:hover{color:var(--graphite)}
.docs-footnav span{color:var(--nav-num-off)}

.docs-soon-body{margin:30px 0 0;font-size:17px;line-height:1.68;color:var(--value)}
