/* ============================================================
   lens — a set of local file viewers for elems.ai
   Paper, not pixels. Hairlines, not boxes. Mono ink on cream.
   One stylesheet for every viewer; type comes from the site.
   ============================================================ */

/* Embedded rather than linked: a page opened straight from disk cannot
   fetch a webfont (file:// counts as a CORS violation), and Lens should
   look the same however it is opened. */
@font-face {
  font-family: "Fragment Mono";
  font-style: normal; font-weight: 400; font-display: swap;
  src: url(data:font/woff2;base64,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) format("woff2");
}
@font-face {
  font-family: "Fragment Mono";
  font-style: italic; font-weight: 400; font-display: swap;
  src: url(data:font/woff2;base64,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) format("woff2");
}

/* :root tokens → ../tokens.css (generated from define.php; loaded before this file) */

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scrollbar-gutter: stable; scroll-behavior: smooth; }
body {
  background: var(--paper); color: var(--ink);
  font-family: var(--mono); font-size: var(--fs-prose); line-height: 1.7;
  letter-spacing: -0.02em; -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
a:hover { color: var(--link); }
::selection { background: rgba(192, 138, 62, 0.25); }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; border-radius: 2px; }

.skip {
  position: absolute; left: 16px; top: -60px; z-index: 100;
  background: var(--ink); color: var(--paper);
  font-family: var(--mono); font-size: var(--fs-ui); padding: 12px 18px;
  transition: top var(--dur-fast) var(--ease-out);
}
.skip:focus-visible { top: 12px; color: var(--paper); outline-color: var(--ink); }

.wrap { max-width: 1160px; margin: 0 auto; padding: 0 28px; }
.wrap-wide { max-width: 1400px; margin: 0 auto; padding: 0 28px; }

#progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0;
  background: var(--ink); z-index: 60; transition: width 80ms linear;
}

/* ---------- nav ---------- */
nav.site {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between;
  min-height: 58px; padding: 6px 0;
  background: rgba(250, 247, 240, 0.86);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-fast) var(--ease-out);
  font-size: var(--fs-ui);
}
nav.site.scrolled { border-bottom-color: var(--hairline); }
nav.site .lead { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
nav.site .brand { font-size: var(--fs-body); letter-spacing: -0.03em; padding: 10px 0; white-space: nowrap; }
nav.site .brand sup { font-size: var(--fs-nano); color: var(--ink-40); margin-left: 2px; }
nav.site .crumb {
  color: var(--ink-40); font-size: var(--fs-ui); white-space: nowrap;
  padding-left: 10px; border-left: 1px solid var(--hairline);
}
nav.site .crumb a { color: var(--ink-40); }
nav.site .crumb a:hover { color: var(--ink); }
nav.site .crumb .sl { color: var(--ink-30); padding: 0 5px; }
nav.site .crumb .sep { color: var(--ink-30); padding: 0 5px; }
nav.site .crumb .sep:first-child { display: none; }   /* the border-left already separates brand and crumb */
nav.site .crumb b { font-weight: 400; color: var(--ink); }
nav.site ul { display: flex; gap: 8px; list-style: none; }
nav.site ul a { display: inline-block; color: var(--ink-60); padding: 10px 9px; min-height: 40px; }
nav.site ul a:hover, nav.site ul a[aria-current="page"] { color: var(--ink); }
@media (max-width: 880px) {
  nav.site { flex-wrap: wrap; }
  nav.site ul { flex-wrap: nowrap; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  nav.site ul::-webkit-scrollbar { display: none; }
  nav.site ul a { padding: 12px 8px; min-height: 44px; white-space: nowrap; }
}

kbd {
  font-family: var(--mono); font-size: var(--fs-micro); color: var(--ink-40);
  border: 1px solid var(--hairline); border-bottom-width: 2px;
  border-radius: 3px; padding: 1px 5px; white-space: nowrap;
}

/* ---------- drop state ---------- */
#stage-drop { padding: 72px 0 90px; }
#stage-drop .kicker {
  font-size: var(--fs-label); text-transform: uppercase; letter-spacing: 0.14em;
  color: var(--ink-40); margin-bottom: 24px;
}
#stage-drop h1 {
  font-family: var(--mono); font-weight: 400;
  font-size: clamp(28px, 4.2vw, 46px); line-height: 1.18;
  letter-spacing: -0.04em; max-width: 24ch; text-wrap: balance;
}
#stage-drop .sub {
  margin-top: 24px; max-width: 58ch; color: var(--ink-60);
  font-size: var(--fs-body); font-family: var(--serif); line-height: 1.75;
}
#stage-drop .sub code, .notes code, .lib code {
  font-family: var(--mono); font-size: 0.86em;
  background: rgba(17, 17, 17, 0.055); padding: 1px 4px; border-radius: 2px;
}

.dropzone {
  margin-top: 40px;
  border: 1px dashed var(--hairline);
  background: rgba(255, 255, 255, 0.4);
  padding: 60px 30px; text-align: center; cursor: pointer;
  transition: border-color var(--dur-fast) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out);
}
.dropzone:hover { border-color: var(--ink-30); }
.dropzone.hot { border-color: var(--ink); border-style: solid; background: var(--paper-soft); }
.dropzone .mark {
  font-size: var(--fs-stat); letter-spacing: -0.05em; color: var(--ink-30);
  display: block; margin-bottom: 18px;
}
.dropzone.hot .mark { color: var(--ink); }
.dropzone .big { font-size: var(--fs-prose); letter-spacing: -0.03em; }
.dropzone .small {
  margin-top: 12px; font-size: var(--fs-meta); color: var(--ink-40);
  display: flex; gap: 8px; align-items: center; justify-content: center; flex-wrap: wrap;
}
.dropzone .small u { text-decoration: none; border-bottom: 1px solid var(--hairline); }
.dropzone input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.notes { display: flex; flex-wrap: wrap; gap: 0 44px; margin-top: 46px; }
.notes div { max-width: 27ch; padding: 18px 0 0; border-top: 1px solid var(--hairline); flex: 1 1 200px; }
.notes div span {
  display: block; font-size: var(--fs-micro); text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--ink-40); margin-bottom: 8px;
}
.notes div p { font-family: var(--serif); font-size: var(--fs-md); line-height: 1.7; color: var(--ink-60); }

.err {
  margin-top: 22px; font-size: var(--fs-code); color: var(--g11);
  border-left: 3px solid var(--g11); padding: 6px 0 6px 14px;
}
.err b { font-weight: 400; color: var(--ink); }

/* ---------- viewer tiles (the periodic nod) ---------- */
.tiles-head {
  display: flex; align-items: baseline; justify-content: space-between;
  padding: 18px 0 14px; border-top: 1px solid var(--hairline); margin-top: 54px;
}
.tiles-head .h { font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-60); }
.tiles-head .count { font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink); }
.tiles { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0 10px; }
.tile {
  position: relative; display: block; flex: none;
  width: 94px; min-height: 108px;
  border: 1px solid var(--hairline);
  border-top: 3px solid var(--gc, var(--ink));
  background: rgba(255, 255, 255, 0.55);
  padding: 8px;
  transition: transform var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out),
              background-color var(--dur-fast) var(--ease-out);
}
.tile:hover { transform: translateY(-2px); background: #fff; border-color: var(--ink-30); }
.tile:hover { color: inherit; }
.tile .num { position: absolute; top: 5px; left: 7px; font-size: var(--fs-micro); color: var(--ink-40); }
.tile .ext { position: absolute; top: 5px; right: 7px; font-size: var(--fs-micro); color: color-mix(in srgb, var(--gc) 65%, #111); }
.tile .sym { display: block; text-align: center; font-size: var(--fs-h2); letter-spacing: -0.05em; margin-top: 19px; line-height: 1.3; }
.tile .nm { display: block; text-align: center; font-size: var(--fs-micro); color: var(--ink-60); margin-top: 3px; letter-spacing: -0.01em; line-height: 1.35; }
.tile .ct { position: absolute; bottom: 5px; left: 0; right: 0; text-align: center; font-size: var(--fs-micro); color: var(--ink-30); }
.tile.on .ct { color: color-mix(in srgb, var(--gc) 70%, #111); }

.tile-legend {
  display: flex; flex-wrap: wrap; gap: 4px 24px;
  padding: 14px 0 0; font-size: var(--fs-label); color: var(--ink-40);
}
.tile-legend span { display: inline-flex; align-items: center; gap: 7px; }
.tile-legend i { width: 9px; height: 9px; display: inline-block; font-style: normal; }

/* ---------- toolbar ---------- */
#stage-read { display: none; }
#stage-read.on { display: block; }
body.reading #stage-drop { display: none; }

.toolbar {
  position: sticky; top: 58px; z-index: 25;
  display: flex; align-items: center; gap: 13px; flex-wrap: wrap;
  padding: 13px 0 12px;
  border-top: 1px solid var(--hairline); border-bottom: 1px solid var(--hairline);
  background: var(--paper); font-size: var(--fs-meta);
}
.toolbar .fname { letter-spacing: -0.02em; font-size: var(--fs-ui); max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toolbar .fname .badge { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-30); margin-left: 10px; }
.toolbar .meta {
  display: flex; gap: 13px; color: var(--ink-40); font-size: var(--fs-label);
  text-transform: uppercase; letter-spacing: 0.1em; flex-wrap: wrap;
}
.toolbar .meta b { font-weight: 400; color: var(--ink-60); }
.toolbar .spacer { flex: 1; }
.toolbar .acts { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.toolbar button {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink);
  background: none; border: none; border-bottom: 1px solid var(--hairline);
  padding: 6px 2px; cursor: pointer; white-space: nowrap;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.toolbar button:hover { border-color: var(--ink); }
.toolbar button.ghost { color: var(--ink-60); }
.toolbar button.ghost:hover { color: var(--ink); }
.toolbar button.on { border-bottom-color: var(--ink); }
.toolbar .seg { display: inline-flex; gap: 0; border-bottom: 1px solid var(--hairline); }
.toolbar .seg button { border-bottom: 2px solid transparent; padding: 6px 8px; color: var(--ink-40); }
.toolbar .seg button.on { color: var(--ink); border-bottom-color: var(--ink); }
.toolbar input.find {
  background: transparent; border: none; border-bottom: 1px solid var(--hairline);
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink);
  padding: 5px 2px; width: 13ch; outline-offset: 5px;
  transition: border-color var(--dur-fast) var(--ease-out), width var(--dur-fast) var(--ease-out);
}
.toolbar input.find:focus { border-color: var(--ink); outline: none; width: 20ch; }
.toolbar input.find::placeholder { color: var(--ink-40); }
.toolbar .hits { font-size: var(--fs-micro); color: var(--ink-40); text-transform: uppercase; letter-spacing: 0.1em; }
@media (max-width: 700px) { .toolbar { top: 0; } .toolbar .meta { display: none; } }

/* ---------- reader layout ---------- */
.reader { display: grid; grid-template-columns: 216px 1fr; gap: 54px; align-items: start; }
.reader.solo { grid-template-columns: 1fr; gap: 0; }
@media (max-width: 940px) { .reader { grid-template-columns: 1fr; gap: 0; } }

#toc { position: sticky; top: 128px; padding: 40px 0 60px; max-height: calc(100vh - 148px); overflow-y: auto; }
#toc .h {
  font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-40); padding-bottom: 12px; margin-bottom: 6px;
  border-bottom: 1px solid var(--hairline-soft);
}
#toc ol { list-style: none; }
#toc li a {
  display: block; font-size: var(--fs-label); line-height: 1.5;
  color: var(--ink-40); padding: 5px 0 5px 10px;
  border-left: 1px solid var(--hairline-soft);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
#toc li a:hover { color: var(--ink); }
#toc li a.active { color: var(--ink); border-left-color: var(--ink); }
#toc li.lv3 a { padding-left: 22px; font-size: var(--fs-label); color: var(--ink-30); }
#toc li.lv3 a:hover, #toc li.lv3 a.active { color: var(--ink-60); }
#toc li .n { color: var(--ink-30); font-size: var(--fs-micro); margin-left: 6px; }
#toc.empty { display: none; }
@media (max-width: 940px) {
  #toc { position: static; max-height: none; padding: 24px 0 0; }
  #toc ol { columns: 2; column-gap: 26px; }
}

.doc { padding: 40px 0 110px; min-width: 0; }
.doc-head .fm {
  font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-40); margin-bottom: 16px;
  display: flex; flex-wrap: wrap; gap: 4px 18px;
}
.print-head { display: none; }

/* ============================================================
   prose (markdown)
   ============================================================ */
.prose { max-width: 68ch; }
.prose > *:first-child { margin-top: 0 !important; }
.prose h1 {
  font-family: var(--mono); font-weight: 400;
  font-size: clamp(25px, 3.4vw, 37px); line-height: 1.2;
  letter-spacing: -0.04em; margin: 54px 0 24px; text-wrap: balance;
}
.prose h2 {
  font-family: var(--mono); font-weight: 400;
  font-size: var(--fs-symbol); line-height: 1.3; letter-spacing: -0.03em;
  margin: 56px 0 20px; padding-top: 20px;
  border-top: 1px solid var(--hairline); text-wrap: balance;
}
.prose h3 { font-family: var(--mono); font-weight: 400; font-size: var(--fs-body); letter-spacing: -0.02em; margin: 40px 0 14px; }
.prose h4 {
  font-family: var(--mono); font-weight: 400; font-size: var(--fs-meta);
  text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-60); margin: 34px 0 12px;
}
.prose h5, .prose h6 {
  font-family: var(--mono); font-weight: 400; font-size: var(--fs-label);
  text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-40); margin: 30px 0 10px;
}
.prose :is(h1, h2, h3, h4, h5, h6) .anchor {
  opacity: 0; margin-left: 10px; font-size: 0.62em;
  color: var(--ink-30); transition: opacity var(--dur-fast) var(--ease-out);
}
.prose :is(h1, h2, h3, h4, h5, h6):hover .anchor { opacity: 1; }
.prose .anchor:focus-visible { opacity: 1; }
.prose .anchor:hover { color: var(--ink); }

.prose p { font-family: var(--serif); font-size: var(--fs-lede); line-height: 1.85; margin-bottom: 24px; }
.prose p.lead { font-size: var(--fs-card); color: var(--ink); }
.prose a[href] {
  color: var(--link); border-bottom: 1px solid rgba(63, 88, 117, 0.32);
  transition: border-color var(--dur-fast) var(--ease-out);
}
.prose a[href]:hover { border-bottom-color: var(--link); }
.prose strong { font-weight: 700; }
.prose em { font-style: italic; }
.prose del { color: var(--ink-40); }
.prose mark { background: rgba(192, 138, 62, 0.28); color: var(--ink); padding: 0 2px; }

.prose ul, .prose ol { font-family: var(--serif); font-size: var(--fs-lede); line-height: 1.8; margin: 0 0 24px; padding-left: 26px; }
.prose li { margin-bottom: 8px; }
.prose li > ul, .prose li > ol { margin: 8px 0 4px; }
.prose ul { list-style: none; }
.prose ul > li { position: relative; }
.prose ul > li::before {
  content: "—"; position: absolute; left: -22px; top: 0;
  color: var(--ink-30); font-family: var(--mono); font-size: var(--fs-ui);
}
.prose ol { list-style: none; counter-reset: li 0; }
.prose ol > li { position: relative; counter-increment: li; }
.prose ol > li::before {
  content: counter(li) "."; position: absolute; left: -26px; top: 2px;
  color: var(--ink-40); font-family: var(--mono); font-size: var(--fs-meta);
  width: 22px; text-align: right;
}
.prose li.task { list-style: none; }
.prose li.task::before { content: ""; }
.prose li.task > .box {
  display: inline-block; width: 11px; height: 11px; flex: none;
  border: 1px solid var(--ink-30); margin: 0 10px 0 -22px; position: relative; top: 1px;
}
.prose li.task.done > .box { background: var(--ink); border-color: var(--ink); }
.prose li.task.done > .box::after {
  content: "✓"; position: absolute; inset: -4px 0 0 1px;
  color: var(--paper); font-size: var(--fs-micro); line-height: 1; font-family: var(--mono);
}
.prose li.task.done { color: var(--ink-40); }

.prose blockquote {
  font-family: var(--serif); font-style: italic; font-size: var(--fs-lede); line-height: 1.75;
  border-left: 3px solid var(--hairline); padding: 4px 0 4px 22px; margin: 30px 0;
}
.prose blockquote p { font-size: inherit; margin-bottom: 14px; }
.prose blockquote > *:last-child { margin-bottom: 0; }
.prose blockquote blockquote { margin: 14px 0; font-size: var(--fs-prose); }
.prose hr { border: none; height: 1px; background: var(--hairline); margin: 46px 0; }

.prose code {
  font-family: var(--mono); font-size: 0.84em;
  background: rgba(17, 17, 17, 0.055);
  padding: 2px 5px; letter-spacing: -0.01em; border-radius: 2px; word-break: break-word;
}
.prose pre {
  border: 1px solid var(--hairline-soft); border-left: 2px solid var(--hairline);
  background: rgba(255, 255, 255, 0.55);
  padding: 18px 20px; margin: 0 0 26px; overflow-x: auto; position: relative;
}
.prose pre code {
  background: none; padding: 0; border-radius: 0;
  font-size: var(--fs-code); line-height: 1.75; letter-spacing: -0.01em; white-space: pre; display: block;
}
.prose pre .lang {
  position: absolute; top: 0; right: 0;
  font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-30); padding: 6px 10px; user-select: none;
}
.prose table {
  width: 100%; border-collapse: collapse;
  font-family: var(--mono); font-size: var(--fs-code); margin: 0 0 30px; letter-spacing: -0.01em;
}
.prose .table-scroll { overflow-x: auto; margin-bottom: 30px; }
.prose .table-scroll table { margin-bottom: 0; }
.prose th {
  text-align: left; font-weight: 400; font-size: var(--fs-micro);
  text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-40);
  padding: 9px 16px 9px 0; border-bottom: 1px solid var(--hairline); white-space: nowrap;
}
.prose td { padding: 10px 16px 10px 0; border-bottom: 1px solid var(--hairline-soft); vertical-align: top; line-height: 1.6; }
.prose th:last-child, .prose td:last-child { padding-right: 0; }
.prose td[align="right"], .prose th[align="right"] { text-align: right; }
.prose td[align="center"], .prose th[align="center"] { text-align: center; }
.prose img { max-width: 100%; height: auto; display: block; margin: 30px 0; }
.prose kbd { font-size: var(--fs-label); }
.prose sup.fnref { font-size: var(--fs-micro); letter-spacing: 0; }
.prose sup.fnref a { border-bottom: none; color: var(--g2); }
.footnotes { margin-top: 60px; padding-top: 20px; border-top: 1px solid var(--hairline); }
.footnotes .h { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-40); margin-bottom: 16px; }
.footnotes ol { padding-left: 22px; font-size: var(--fs-md); }
.footnotes li { margin-bottom: 10px; }
.footnotes p { font-size: var(--fs-md); line-height: 1.7; margin-bottom: 4px; }
.footnotes .bk { font-family: var(--mono); font-size: var(--fs-micro); color: var(--ink-30); margin-left: 6px; }
.prose details { border-top: 1px solid var(--hairline-soft); border-bottom: 1px solid var(--hairline-soft); padding: 14px 0; margin: 0 0 24px; }
.prose summary { cursor: pointer; font-size: var(--fs-ui); letter-spacing: -0.02em; list-style: none; color: var(--ink); }
.prose summary::-webkit-details-marker { display: none; }
.prose summary::before { content: "+ "; color: var(--ink-40); }
.prose details[open] summary::before { content: "− "; }
.prose details[open] summary { margin-bottom: 14px; }

/* ---------- syntax tokens, mineral register ---------- */
.tk-com { color: var(--ink-30); font-style: italic; }
.tk-str { color: var(--g6); }
.tk-num { color: var(--g2); }
.tk-key { color: var(--g1); }
.tk-lit { color: var(--g10); }
.tk-fun { color: var(--g5); }
.tk-tag { color: var(--g1); }
.tk-att { color: var(--g7); }
.tk-pun { color: var(--ink-40); }

/* ============================================================
   tree (json · yaml · xml · toml)
   ============================================================ */
.tree {
  font-family: var(--mono); font-size: var(--fs-ui); line-height: 1.75;
  letter-spacing: -0.01em; padding-bottom: 20px;
}
.tree ul { list-style: none; margin: 0; padding-left: 19px; border-left: 1px solid var(--hairline-soft); }
.tree > ul { padding-left: 0; border-left: none; }
.tree li { position: relative; }
.tree .row { display: flex; align-items: baseline; gap: 0; padding: 1px 0; }
.tree .row:hover { background: rgba(255, 255, 255, 0.7); }
.tree .tw {
  flex: none; width: 15px; margin-left: -15px; text-align: left;
  background: none; border: none; cursor: pointer; padding: 0;
  font-family: var(--mono); font-size: var(--fs-micro); color: var(--ink-30);
  line-height: inherit;
}
.tree ul .tw { margin-left: -19px; width: 19px; }
.tree .tw:hover { color: var(--ink); }
.tree .k { color: var(--g1); }
.tree .k.idx { color: var(--ink-30); }
.tree .sep { color: var(--ink-30); padding-right: 7px; }
.tree .v { word-break: break-word; }
.tree .v.s { color: var(--g6); }
.tree .v.n { color: var(--g2); }
.tree .v.b { color: var(--g10); }
.tree .v.z { color: var(--ink-30); font-style: italic; }
.tree .v.u { color: var(--g11); }
.tree .v.s a { border-bottom: 1px solid rgba(90, 122, 79, 0.4); }
.tree .brace { color: var(--ink-40); }
.tree .cnt { color: var(--ink-30); font-size: var(--fs-label); padding-left: 9px; }
.tree li.shut > ul { display: none; }
.tree li.shut > .row .cnt.open { display: none; }
.tree li:not(.shut) > .row .cnt.shut { display: none; }
.tree .hit { background: rgba(192, 138, 62, 0.28); }
.tree li.dim { display: none; }
.tree .path {
  margin-left: 10px; font-size: var(--fs-micro); color: var(--ink-30);
  opacity: 0; background: none; border: none; cursor: pointer;
  font-family: var(--mono); padding: 0 2px;
  transition: opacity var(--dur-fast) var(--ease-out);
}
.tree .row:hover .path { opacity: 1; }
.tree .path:hover { color: var(--ink); }

/* ============================================================
   data table (csv · jsonl)
   ============================================================ */
.grid-wrap {
  overflow: auto; max-height: calc(100vh - 190px);
  border-bottom: 1px solid var(--hairline);
}
table.grid {
  border-collapse: separate; border-spacing: 0;
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: -0.01em;
  width: 100%;
}
table.grid thead th {
  position: sticky; top: 0; z-index: 2;
  background: var(--paper); text-align: left; font-weight: 400;
  padding: 9px 14px 8px 0; border-bottom: 1px solid var(--hairline);
  white-space: nowrap; vertical-align: bottom;
}
table.grid thead th .cn {
  display: block; font-size: var(--fs-micro); text-transform: uppercase;
  letter-spacing: 0.1em; color: var(--ink-60);
}
table.grid thead th .ct { display: block; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-30); }
table.grid thead th.sortable { cursor: pointer; }
table.grid thead th.sortable:hover .cn { color: var(--ink); }
table.grid thead th .ar { color: var(--ink-30); padding-left: 5px; }
table.grid thead th.asc .ar::after { content: "↑"; color: var(--ink); }
table.grid thead th.desc .ar::after { content: "↓"; color: var(--ink); }
table.grid tbody td { padding: 7px 14px 7px 0; border-bottom: 1px solid var(--hairline-soft); vertical-align: top; }
table.grid tbody tr:hover td { background: rgba(255, 255, 255, 0.7); }
table.grid td.rn, table.grid th.rn {
  position: sticky; left: 0; z-index: 1;
  background: var(--paper); color: var(--ink-30); font-size: var(--fs-micro);
  text-align: right; padding-right: 14px; width: 1%; white-space: nowrap;
  border-right: 1px solid var(--hairline-soft);
}
table.grid thead th.rn { z-index: 3; }
table.grid tbody tr:hover td.rn { background: var(--paper-soft); }
table.grid td.num { text-align: right; font-variant-numeric: tabular-nums; }
table.grid td.empty { color: var(--ink-30); }
table.grid td .hit { background: rgba(192, 138, 62, 0.28); }
table.grid tr.dim { display: none; }
table.grid td.bad { color: var(--g11); }
.grid-note {
  font-size: var(--fs-label); color: var(--ink-40); padding: 12px 0 0;
  text-transform: uppercase; letter-spacing: 0.1em;
}
.grid-note button {
  font-family: var(--mono); font-size: var(--fs-label); background: none; border: none;
  border-bottom: 1px solid var(--hairline); color: var(--ink); cursor: pointer;
  padding: 4px 2px; margin-left: 10px; text-transform: none; letter-spacing: -0.01em;
}
.grid-note button:hover { border-color: var(--ink); }

.lvl-error { color: var(--g11); }
.lvl-warn { color: var(--g2); }
.lvl-info { color: var(--g1); }
.lvl-debug { color: var(--ink-30); }

/* ============================================================
   line-numbered source (code · txt · diff)
   ============================================================ */
.src {
  font-family: var(--mono); font-size: var(--fs-code); line-height: 1.7;
  letter-spacing: -0.01em; padding-bottom: 30px;
  overflow-x: auto; max-width: 100%;
}
.src table { border-collapse: collapse; width: 100%; }
.src.wrap { overflow-x: visible; }
.src td.ln {
  width: 1%; white-space: nowrap; text-align: right; user-select: none;
  color: var(--ink-30); font-size: var(--fs-label); padding: 0 14px 0 0;
  vertical-align: top; border-right: 1px solid var(--hairline-soft);
  position: sticky; left: 0; background: var(--paper); z-index: 1;
}
.src tr:hover td.ln { background: var(--paper-soft); }
.src td.tx { padding: 0 0 0 16px; white-space: pre; vertical-align: top; }
.src.wrap td.tx { white-space: pre-wrap; word-break: break-word; }
.src tr:hover td.tx { background: rgba(255, 255, 255, 0.7); }
.src tr.dim { display: none; }
.src .hit { background: rgba(192, 138, 62, 0.3); }
.src .hit.cur { background: var(--ink); color: var(--paper); }
.src tr.long td.ln { color: var(--g2); }

.src.diff td.ln { padding: 0 8px 0 0; }
.src.diff td.ln, .src.diff td.ln2 { position: sticky; background: var(--paper); }
.src.diff td.ln { left: 0; z-index: 2; }
.src.diff td.ln2 { left: 44px; z-index: 1; }
.src.diff.wrap td.ln, .src.diff.wrap td.ln2 { position: static; }
.src.diff td.ln2 { width: 1%; white-space: nowrap; text-align: right; user-select: none; color: var(--ink-30); font-size: var(--fs-label); padding: 0 14px 0 0; vertical-align: top; border-right: 1px solid var(--hairline-soft); }
.src.diff td.mk { width: 1%; padding: 0 0 0 12px; user-select: none; color: var(--ink-30); }
.src.diff tr.add td.tx, .src.diff tr.add td.mk { background: rgba(90, 122, 79, 0.12); }
.src.diff tr.del td.tx, .src.diff tr.del td.mk { background: rgba(125, 69, 80, 0.11); }
.src.diff tr.add td.mk { color: var(--g6); }
.src.diff tr.del td.mk { color: var(--g11); }
.src.diff tr.hunk td { background: var(--paper-soft); color: var(--ink-40); font-size: var(--fs-label); padding-top: 4px; padding-bottom: 4px; }
.src.diff tr.file td {
  padding: 26px 0 8px; font-size: var(--fs-ui); letter-spacing: -0.02em;
  border-bottom: 1px solid var(--hairline); background: none;
}
.src.diff tr.file td .stat { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em; margin-left: 14px; }
.src.diff tr.file td .stat .p { color: var(--g6); }
.src.diff tr.file td .stat .m { color: var(--g11); }

/* ---------- html viewer ---------- */
.frame-wrap { border: 1px solid var(--hairline); background: #fff; margin-bottom: 20px; }
.frame-wrap iframe { display: block; width: 100%; height: calc(100vh - 230px); border: none; background: #fff; }
.frame-note {
  font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--ink-30); padding: 8px 0 0;
}
.svg-stage {
  border: 1px solid var(--hairline); background: #fff;
  padding: 28px; margin-bottom: 22px; text-align: center;
  background-image: linear-gradient(45deg, var(--paper-soft) 25%, transparent 25%, transparent 75%, var(--paper-soft) 75%),
                    linear-gradient(45deg, var(--paper-soft) 25%, transparent 25%, transparent 75%, var(--paper-soft) 75%);
  background-size: 16px 16px; background-position: 0 0, 8px 8px;
}
.svg-stage svg { max-width: 100%; height: auto; }

/* ---------- config viewer ---------- */
.kv { font-family: var(--mono); font-size: var(--fs-code); padding-bottom: 30px; }
.kv h3 {
  font-weight: 400; font-size: var(--fs-label); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--ink-60); margin: 34px 0 10px; padding-top: 14px; border-top: 1px solid var(--hairline);
}
.kv h3:first-child { margin-top: 0; padding-top: 0; border-top: none; }
.kv table { width: 100%; border-collapse: collapse; }
.kv td { padding: 8px 16px 8px 0; border-bottom: 1px solid var(--hairline-soft); vertical-align: top; }
.kv td.k { color: var(--g1); white-space: nowrap; width: 1%; }
.kv td.v { word-break: break-word; }
.kv td.v .s { color: var(--g6); }
.kv td.v .n { color: var(--g2); }
.kv td.v .b { color: var(--g10); }
.kv td.v.masked { color: var(--ink-30); letter-spacing: 0.12em; }
.kv td.v .why { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em; color: var(--g2); margin-left: 12px; }
.kv tr.comment td { color: var(--ink-30); font-style: italic; border-bottom-color: transparent; padding-bottom: 2px; }

/* ============================================================
   the shared library (IndexedDB)
   ============================================================ */
.lib { margin-top: 54px; }
.lib-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 14px; padding: 18px 0 12px; border-top: 1px solid var(--hairline);
}
.lib-head .h { font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-60); }
.lib-head .count { font-size: var(--fs-meta); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink); }
.lib-head .clear {
  margin-left: auto; font-family: var(--mono); font-size: var(--fs-label);
  color: var(--ink-40); background: none; border: none; cursor: pointer;
  padding: 6px 2px; border-bottom: 1px solid transparent;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.lib-head .clear:hover, .lib-head .clear.armed { color: var(--g11); border-bottom-color: var(--g11); }
.lib ol { list-style: none; }
.lib li {
  display: flex; align-items: center; gap: 14px;
  border-bottom: 1px solid var(--hairline-soft);
  transition: background-color var(--dur-fast) var(--ease-out);
}
.lib li:hover { background: rgba(255, 255, 255, 0.5); }
.lib li.gone { opacity: 0.35; }
.lib li .open {
  flex: 1; display: flex; align-items: baseline; gap: 13px; flex-wrap: wrap;
  padding: 12px 4px 12px 0; min-width: 0; cursor: pointer;
  background: none; border: none; font-family: var(--mono); text-align: left; color: inherit;
}
.lib li .open .kd {
  flex: none; font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em;
  color: color-mix(in srgb, var(--gc, var(--ink-40)) 70%, #111);
  border-left: 2px solid var(--gc, var(--hairline)); padding-left: 8px; min-width: 6.5em;
}
.lib li .open .n {
  font-size: var(--fs-ui); letter-spacing: -0.02em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 44ch;
}
.lib li .open:hover .n { color: var(--link); }
.lib li .open .sz { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-30); white-space: nowrap; }
.lib li .open .d { font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-40); margin-left: auto; white-space: nowrap; }
.lib li .del {
  flex: none; background: none; border: none; cursor: pointer;
  font-family: var(--mono); font-size: var(--fs-ui); color: var(--ink-30);
  padding: 12px 2px 12px 10px; line-height: 1;
  transition: color var(--dur-fast) var(--ease-out);
}
.lib li .del:hover { color: var(--g11); }
.lib li .del.armed { color: var(--g11); font-size: var(--fs-micro); letter-spacing: 0.08em; text-transform: uppercase; }
.lib .empty-note { font-family: var(--serif); font-size: var(--fs-md); color: var(--ink-40); padding: 16px 0 4px; line-height: 1.7; }
.lib.none .lib-head .clear { display: none; }
@media (max-width: 700px) {
  .lib li .open { flex-direction: column; gap: 4px; align-items: flex-start; }
  .lib li .open .d { margin-left: 0; }
  .lib li .open .kd { border-left: none; padding-left: 0; }
}

/* ---------- footer ---------- */
footer.site {
  border-top: 1px solid var(--hairline); padding: 20px 0 44px;
  display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: baseline;
  font-size: var(--fs-meta); color: var(--ink-40);
}
footer.site a { display: inline-block; color: var(--ink-60); padding: 6px 2px; }
footer.site a:hover { color: var(--ink); }
footer.site .spacer { flex: 1; }

/* ============================================================
   print — every viewer's PDF
   ============================================================ */
@page { size: A4; margin: 19mm 16mm 20mm; }
@media print {
  html, body { background: #fff !important; color: #000; font-size: 11pt; }
  #progress, nav.site, .toolbar, #toc, footer.site, #stage-drop, .skip,
  .prose .anchor, .prose pre .lang, .tree .tw, .tree .path,
  .grid-note button, .frame-note, .tiles, .tiles-head, .tile-legend { display: none !important; }
  .wrap, .wrap-wide { max-width: none; padding: 0; }
  .reader { display: block; }
  .doc { padding: 0; }
  .prose { max-width: none; }

  .print-head {
    display: block !important;
    border-bottom: 1px solid #999; padding-bottom: 8pt; margin-bottom: 20pt;
    font-family: var(--mono); font-size: 8pt;
    letter-spacing: 0.1em; text-transform: uppercase; color: #444;
  }
  .print-head .r { float: right; text-transform: none; letter-spacing: 0; }

  .prose p, .prose li { font-size: 10.5pt; line-height: 1.6; orphans: 3; widows: 3; }
  .prose h1 { font-size: 20pt; margin: 0 0 12pt; }
  .prose h2 { font-size: 13pt; margin: 20pt 0 8pt; padding-top: 8pt; border-top-color: #bbb; }
  .prose h3 { font-size: 11pt; margin: 14pt 0 6pt; }
  .prose h4, .prose h5, .prose h6 { font-size: 9pt; margin: 12pt 0 5pt; color: #333; }
  .prose :is(h1,h2,h3,h4,h5,h6) { break-after: avoid; page-break-after: avoid; break-inside: avoid; }
  .prose pre, .prose blockquote, .prose table, .prose img, .prose tr { break-inside: avoid; page-break-inside: avoid; }
  .prose pre {
    background: #fafafa !important; border-color: #ddd; border-left-color: #999; padding: 8pt 10pt;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .prose pre code { font-size: 8.5pt; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
  .prose code { background: #f2f2f2 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .prose table { font-size: 8.5pt; }
  .prose th { font-size: 7.5pt; color: #333; border-bottom-color: #999; }
  .prose td { border-bottom-color: #ddd; }
  .prose .table-scroll { overflow: visible; }
  .prose blockquote { border-left-color: #bbb; }
  .prose hr { background: #ccc; margin: 20pt 0; }
  .prose a[href] { color: #000; border-bottom: none; text-decoration: underline; }
  .prose a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-family: var(--mono); font-size: 7.5pt; color: #666;
    word-break: break-all; text-decoration: none;
  }
  .prose a[href^="#"]::after, .prose a.bare::after { content: ""; }
  .prose ul > li::before { color: #666; }
  .prose ol > li::before { color: #444; }
  .footnotes { border-top-color: #999; }
  .footnotes p, .footnotes li { font-size: 9pt; }
  .prose details { border-color: #ddd; }
  .prose details summary::before { content: ""; }
  .prose mark { background: #f0e6cc !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* trees print fully expanded */
  .tree { font-size: 8.5pt; line-height: 1.5; }
  .tree li.shut > ul { display: block !important; }
  .tree li.dim { display: block !important; }
  .tree ul { padding-left: 14px; border-left-color: #ddd; }
  .tree li, .tree .row { break-inside: avoid; }
  .tree .cnt.shut { display: none !important; }

  /* grids repeat their header on every page */
  .grid-wrap { overflow: visible; max-height: none; border-bottom-color: #999; }
  table.grid { font-size: 8pt; }
  table.grid thead { display: table-header-group; }
  table.grid tr { break-inside: avoid; page-break-inside: avoid; }
  table.grid thead th { position: static; background: #fff !important; border-bottom-color: #999; }
  table.grid thead th .cn { font-size: 7.5pt; color: #000; }
  table.grid thead th .ct { color: #777; }
  table.grid td.rn, table.grid th.rn { position: static; background: #fff !important; color: #999; border-right-color: #ddd; }
  table.grid tbody td { border-bottom-color: #e4e4e4; }
  table.grid tr.dim { display: none !important; }

  /* line-numbered sources wrap rather than clip */
  .src { font-size: 8.5pt; line-height: 1.5; overflow: visible !important; }
  .src td.tx { white-space: pre-wrap; word-break: break-word; }
  .src td.ln, .src td.ln2 { position: static !important; background: #fff !important; }
  .src td.ln, .src td.ln2 { color: #999; border-right-color: #ddd; }
  .src tr { break-inside: avoid; }
  .src tr.dim { display: none !important; }
  .src .hit, .src .hit.cur { background: #f0e6cc !important; color: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .src.diff tr.add td.tx, .src.diff tr.add td.mk { background: #eef3ec !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .src.diff tr.del td.tx, .src.diff tr.del td.mk { background: #f6eeef !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .src.diff tr.hunk td { background: #f4f4f4 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .src.diff tr.file td { break-after: avoid; }

  .kv { font-size: 9pt; }
  .kv h3 { font-size: 8.5pt; border-top-color: #999; break-after: avoid; }
  .kv td { border-bottom-color: #e4e4e4; }
  .kv tr { break-inside: avoid; }

  .frame-wrap { border-color: #999; }
  .frame-wrap iframe { height: auto; min-height: 200mm; }
  .svg-stage { border-color: #999; background: #fff !important; background-image: none; }

  .tk-com { color: #777; }
  .tk-str { color: #3f6b34; }
  .tk-num, .tk-lit, .tk-fun, .tk-tag, .tk-att { color: #000; }
  .tk-key { color: #000; font-weight: 700; }
  .tree .k, .kv td.k { color: #000; }
  .tree .v.s, .tree .v.n, .tree .v.b, .tree .v.u { color: #333; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
}
