/* AI Training Data Provenance Checker: a registrar's object provenance file. Warm white conservation board, graphite ink,
   a deep archive-cloth green band carrying the wordmark, Libre Caslon Text headings over Commissioner, Cousine for every
   accession number, code and date. Each dataset is an accession record whose provenance is written in the registrar's
   convention: links separated by semicolons, what the list does not record in square brackets. Colour carries meaning:
   the yellow wash marks a link the headline counts as not recorded; the green is the file's cover and nothing else.
   No shadows, no gradients, no icons. */
:root { --board: #f8f7f3; --paper: #ffffff; --ink: #22231f; --mute: #585952; --rule: #d8d5cc; --rule2: #e8e6df; --cloth: #1f3b2d; --wash: #f7e8a1; --serif: 'Libre Caslon Text', Georgia, serif; --sans: 'Commissioner', system-ui, -apple-system, 'Segoe UI', sans-serif; --mono: 'Fragment Mono', ui-monospace, Menlo, monospace; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--board); color: var(--ink); font: 400 16px/1.55 var(--sans); text-rendering: geometricPrecision; }
a { color: var(--ink); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { text-decoration-thickness: 2px; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 28px; }
code, .n, .d, .acc, .mk, .sp, .plan-tag { font-family: var(--mono); font-feature-settings: 'tnum' 1; }
.folio, .cref { font-feature-settings: 'tnum' 1; }
.d { white-space: nowrap; }
code { font-size: .86em; }
.d, .pl .d { font-size: .9em; }
h1, h2, h3 { font-family: var(--serif); font-weight: 700; letter-spacing: -.005em; }

/* the band: the file's green cloth, the wordmark reversed out */
.band { background: var(--cloth); color: #fff; }
header.site { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 18px 0 16px; flex-wrap: wrap; }
.band a { color: #fff; }
.brand { font: 700 19px/1.2 var(--serif); text-decoration: none; }
.brand em { font-style: italic; font-weight: 400; }
header.site nav { display: flex; gap: 20px; flex-wrap: wrap; font-size: 14.5px; }
header.site nav a { text-decoration: none; }
header.site nav a:hover { text-decoration: underline; }
#nav-auth { display: inline-flex; gap: 20px; }

/* hero */
.hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 44px; padding: 38px 0 24px; align-items: start; }
.eyebrow { font: 600 12.5px/1.4 var(--sans); letter-spacing: .07em; text-transform: uppercase; color: var(--mute); margin-bottom: 12px; }
h1 { font-size: 40px; line-height: 1.12; margin: 0 0 18px; }
.lede { font-size: 17px; line-height: 1.6; margin: 0 0 18px; max-width: 640px; }
.reads { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); padding: 12px 0 4px; margin: 0 0 18px; max-width: 640px; }
.reads p { margin: 0 0 9px; font-size: 15px; }
.cta { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: center; }
.cta .hint { flex-basis: 100%; }
.hint { color: var(--mute); font-size: 14px; }
.btn { display: inline-flex; align-items: center; gap: 8px; font: 600 15px/1 var(--sans); background: var(--ink); color: #fff; border: 1px solid var(--ink); border-radius: 4px; padding: 12px 18px; cursor: pointer; text-decoration: none; }
.btn:hover { background: #3b3c36; }
.btn.ghost { background: transparent; color: var(--ink); }
.btn.ghost:hover { background: var(--paper); }
.btn.small { padding: 9px 13px; font-size: 14px; }
.plan-tag { font-size: 11px; line-height: 1; border: 1px solid currentColor; border-radius: 3px; padding: 3px 5px; }
.wide { max-width: 780px; }

/* the specimen excerpt beside the headline */
.side { display: grid; gap: 18px; }
.specimen { background: var(--paper); border: 1px solid var(--ink); padding: 16px 18px 14px; }
.specimen .legend { display: flex; justify-content: space-between; gap: 12px; font: 600 12px/1.3 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--mute); margin-bottom: 10px; flex-wrap: wrap; }
.specimen .cap { font: 400 20px/1.3 var(--serif); margin: 12px 0 4px; }
.specimen .cap .n { font-size: 18px; }
.specimen .capsub { font-size: 13.5px; color: var(--mute); margin: 0; }
.specimen .chains { grid-template-columns: 1fr; gap: 0; }
.specimen figure.chain { border: 0; padding: 0; background: transparent; }
.specimen .more { font-size: 13px; color: var(--mute); margin: 6px 0 0 22px; }
figure.person { margin: 0; }
figure.person img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border: 1px solid var(--ink); }
figure.person figcaption { font-size: 14.5px; line-height: 1.5; margin-top: 10px; }

/* explain */
.explain { padding: 18px 0 8px; }
.explain h2 { font-size: 25px; margin: 0 0 10px; }
.form { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--ink); }
.form > div { padding: 14px 18px 12px 0; }
.form > div + div { padding-left: 18px; border-left: 1px solid var(--rule); }
.form .k { font: 400 13px/1 var(--mono); color: var(--mute); }
.form h3 { font-size: 18px; margin: 6px 0 6px; }
.form p { margin: 0; font-size: 15px; }
.notice { background: var(--paper); border: 1px solid var(--rule); border-left: 3px solid var(--ink); padding: 12px 16px; margin: 14px 0; font-size: 15px; }

/* the tool */
.tool { background: var(--paper); border: 1px solid var(--ink); padding: 16px 18px; margin: 24px 0 8px; scroll-margin-top: 12px; }
.tool .bar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.tool .bar .hint { font-size: 14.5px; color: var(--mute); flex: 1 1 420px; min-width: 0; }
.tool .bar .hint code { white-space: normal; overflow-wrap: anywhere; }
.spacer { flex: 1; }
textarea.paste { width: 100%; min-height: 220px; font: 400 13.5px/1.5 var(--mono); color: var(--ink); background: var(--board); border: 1px solid var(--ink); border-radius: 4px; padding: 12px; resize: vertical; }
fieldset.ticks { border: 0; border-top: 1px solid var(--rule); padding: 10px 0 2px; margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14.5px; }
fieldset.ticks legend { font: 600 12.5px/1 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--mute); padding: 0 0 8px; }
fieldset.ticks label { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; min-width: 0; }
fieldset.ticks select, fieldset.ticks input[type=number] { font: 400 14px var(--sans); border: 1px solid var(--rule); border-radius: 4px; padding: 5px 6px; background: var(--paper); color: var(--ink); max-width: 100%; }
fieldset.ticks input[type=number] { width: 64px; font-family: var(--mono); }
#actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 14px 0; }
.row { display: flex; gap: 10px; align-items: center; }

/* the result */
#result { scroll-margin-top: 12px; }
.leadline { font: 400 28px/1.25 var(--serif); margin: 24px 0 14px; }
.leadline .n { font-size: 26px; }
.leadline .accn { background: var(--wash); padding: 0 4px; }
.summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.summary > div { padding: 12px 16px 12px 0; }
.summary > div + div { padding-left: 16px; border-left: 1px solid var(--rule); }
.summary .n { font-family: var(--mono); font-size: 26px; line-height: 1.1; }
.summary .accf .n { font-size: 44px; }
.summary { grid-template-columns: 1.3fr repeat(3, minmax(0, 1fr)); }
.summary .accf .n { background: var(--wash); display: inline-block; padding: 0 4px; }
.summary .l { font-size: 14px; margin-top: 4px; }
.summary .sub { display: block; color: var(--mute); font-size: 13px; }
dl.regime-line { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin: 12px 0 8px; font-size: 14px; }
dl.regime-line > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--rule2); }
dl.regime-line dt { color: var(--mute); }
dl.regime-line dd { margin: 0; }
.sec-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--ink); margin: 30px 0 10px; padding-top: 8px; }
.sec-head h2 { font-size: 22px; margin: 0; }
.folio { font-size: 12.5px; color: var(--mute); }
.keyrow { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--mute); }
.kk { display: inline-flex; align-items: center; gap: 6px; }
.sw { display: inline-block; width: 0; height: 16px; }
.sw.ln { border-left: 2px solid var(--ink); }
.sw.br { border-left: 2px dotted var(--mute); }
.conv { margin: 0 0 12px; }

/* bracketed gaps, the registrar's convention; the wash marks a link the headline counts */
.gap { font-family: var(--serif); font-style: italic; font-size: .96em; }
.gap.hl { background: var(--wash); padding: 0 3px; }
.gap.nw { white-space: nowrap; }

/* provenance chain per model */
.chains { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; }
figure.chain { margin: 0; background: var(--paper); border: 1px solid var(--rule); padding: 14px 16px 12px; min-width: 0; }
figure.chain figcaption { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 2px 12px; padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--ink); }
figure.chain .mmeta { grid-column: 1 / 3; }
.mname { font: 700 18px/1.2 var(--serif); }
.mmeta { font-size: 13px; color: var(--mute); }
.hrk { color: var(--ink); font-variant: small-caps; letter-spacing: .03em; font-size: 14px; }
.mcount { font-size: 13px; color: var(--mute); text-align: right; }
ol.links { list-style: none; margin: 0; padding: 0 0 0 10px; }
li.link { display: grid; grid-template-columns: 44px 74px minmax(0, 1fr); gap: 10px; padding: 7px 0 7px 14px; border-left: 2px solid var(--ink); font-size: 14px; position: relative; }
li.link::before { content: ''; position: absolute; left: -5px; top: 13px; width: 8px; height: 8px; background: var(--ink); border-radius: 50%; }
li.link.broken { border-left: 2px dotted var(--mute); }
li.link.broken::before { background: var(--paper); border: 1.5px solid var(--ink); }
li.link .sp { font-size: 12px; color: var(--mute); padding-top: 2px; }
li.link .acc { font-size: 13px; padding-top: 1px; }
.lk { min-width: 0; }
.lk .nm { display: block; font-weight: 600; }
.lk .pl, p.pl { color: var(--ink); overflow-wrap: anywhere; }
.lk .pl { display: block; font-size: 13.5px; }

/* train and test pairs, joined by a bracket */
ul.pairs { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
li.pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px 20px; max-width: 780px; border-left: 2px solid var(--ink); padding: 2px 0 2px 14px; position: relative; font-size: 14.5px; }
li.pair::before, li.pair::after { content: ''; position: absolute; left: 0; width: 8px; border-top: 2px solid var(--ink); }
li.pair::before { top: 0; } li.pair::after { bottom: 0; }
li.pair .pa, li.pair .pb { grid-column: 1; }
li.pair .pw { color: var(--mute); font-size: 14px; }
li.pair .sp { font-size: 12px; color: var(--mute); }

/* shares */
.twin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.share-grid { font-size: 14px; }
.srow { display: grid; grid-template-columns: minmax(0, 1fr) 80px 70px; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--rule2); align-items: baseline; }
.srow .c { font-size: 14px; }
.srow .c { text-align: right; font-family: var(--mono); }
.srow.head { color: var(--mute); font-size: 12.5px; border-bottom: 1px solid var(--ink); }
.srow.rem span:first-child { font-style: italic; }
.srow.tot { border-top: 1px solid var(--ink); border-bottom: 0; font-weight: 600; }
.srow.head .c { font-family: var(--sans); }
.share-grid a { text-decoration: none; }
.share-grid a:hover { text-decoration: underline; }
.srow.tot span { font-family: var(--sans); }
.srow.tot .c { font-family: var(--mono); }

/* the register: one accession record per dataset */
h3.gname { font-size: 17px; margin: 22px 0 6px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
h3.gname .folio { font: 400 13px var(--sans); color: var(--mute); }
ol.reg { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
li.rec { display: grid; grid-template-columns: 62px minmax(0, 1fr) 230px; gap: 4px 16px; padding: 10px 26px 10px 0; border-bottom: 1px solid var(--rule); cursor: pointer; position: relative; }
li.rec .accno .acc { font-size: 14px; font-weight: 700; }
.rname { margin: 0; font-weight: 600; }
p.pl { margin: 2px 0 0; font-size: 14px; }
.flags { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 5px; }
.fl { font-variant: small-caps; letter-spacing: .03em; font-size: 14px; color: var(--ink); }
.fl { border: 1px solid var(--rule); padding: 0 5px; line-height: 1.5; }
.fl.gapfl { background: var(--wash); border-color: var(--wash); }
.keyrow .fl { margin-right: 6px; }
.mg { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; font-size: 13.5px; }
.mg .fam { font-weight: 500; }
.mg .fam::before { content: 'class '; font-weight: 400; color: var(--mute); font-size: 12.5px; }
.mg .fam.none { color: var(--mute); font-style: italic; }
.mg .mk { font-size: 12.5px; }
.mg .mk.locked { color: var(--mute); font-family: var(--sans); font-style: italic; }
.basis { font-size: 12.5px; color: var(--mute); }
.basis .bw { display: block; }
.toggle { position: absolute; right: 6px; top: 16px; width: 10px; height: 10px; border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); transform: rotate(45deg); }
li.rec.open .toggle { transform: rotate(225deg); top: 21px; }
.why { display: none; grid-column: 2 / 4; font-size: 14px; margin-top: 8px; border-top: 1px solid var(--rule2); padding-top: 8px; cursor: auto; }
li.rec.open .why { display: block; }
.why > div { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 12px; padding: 4px 0; }
.why > div.blocks { display: block; }
.why .k { color: var(--mute); }
.why .sub { color: var(--mute); }
.why .refs { display: flex; flex-direction: column; gap: 2px; }
.why .pasted { font-family: var(--mono); font-size: 12.5px; overflow-wrap: anywhere; }

/* findings */
section.finds details { border-bottom: 1px solid var(--rule); padding: 10px 0; }
section.finds summary { cursor: pointer; display: flex; justify-content: space-between; gap: 12px; list-style: none; position: relative; padding-right: 26px; }
section.finds summary::after { content: ''; position: absolute; right: 6px; top: 6px; width: 9px; height: 9px; border-right: 1.5px solid var(--ink); border-bottom: 1.5px solid var(--ink); transform: rotate(45deg); }
section.finds details[open] summary::after { transform: rotate(225deg); top: 11px; }
section.finds summary::-webkit-details-marker { display: none; }
.fname { font: 700 17px/1.3 var(--serif); }
summary .who { font-size: 13px; color: var(--mute); white-space: nowrap; }
.fbody { font-size: 14.5px; max-width: 900px; }
.bygrp { color: var(--mute); font-size: 13.5px; }
ul.items { padding-left: 18px; }
ul.items li { margin: 0 0 8px; }
.iq { font-weight: 500; }
.ask { border-left: 3px solid var(--ink); padding-left: 12px; }
.locked { color: var(--mute); font-style: italic; }
.fl-note { color: var(--mute); font-size: 13.5px; }
.ctrl { border-left: 2px solid var(--ink); padding: 2px 0 2px 14px; margin: 12px 0; font-size: 14px; max-width: 900px; }
.ctrl .ch { font-weight: 600; margin-bottom: 4px; }
.ctrl .ch code { font-weight: 400; font-size: .92em; color: var(--mute); margin-right: .7em; }
.ctrl .ev > div { margin: 4px 0; }
.ctrl .src, .cref { text-decoration: none; border-bottom: 1px solid var(--rule); }
.ctrl .src:hover { border-bottom-color: var(--ink); }
.cref { white-space: nowrap; }
.ctrl .cond { font-weight: 400; font-style: italic; color: var(--mute); }
.ctrl p.q { margin: 0 0 6px; }
.ctrl .ev { color: var(--ink); font-size: 13.5px; }
.cref { text-decoration: none; border-bottom: 1px solid var(--rule); }
.cref:hover { border-bottom-color: var(--ink); }

/* generated pages */
table.plain { border-collapse: collapse; width: 100%; font-size: 14.5px; margin: 6px 0 14px; }
table.plain th, table.plain td { text-align: left; vertical-align: top; padding: 7px 10px 7px 0; border-bottom: 1px solid var(--rule); }
table.plain thead th { font-size: 12.5px; color: var(--mute); border-bottom: 1px solid var(--ink); }
.tablewrap { overflow-x: auto; }
ul.idx { list-style: none; padding: 0; margin: 0 0 12px; columns: 2; column-gap: 32px; }
ul.idx li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--rule2); break-inside: avoid; }
ul.idx li span { color: var(--mute); font-size: 13px; text-align: right; }
h3.idxg { font-size: 17px; margin: 22px 0 4px; }
.qtext { font-family: var(--mono); font-size: 14px; background: var(--paper); border: 1px solid var(--rule); padding: 10px 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.prose { max-width: 760px; padding-bottom: 30px; }
.pricing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--ink); background: var(--paper); }
.pricing > div { padding: 18px 20px; display: flex; flex-direction: column; }
.pricing > div > .btn { margin-top: auto; align-self: flex-start; }
.btnrow { display: flex; flex-wrap: wrap; gap: 10px; }
.hint.wide { max-width: 780px; }
.pricing > div + div { border-left: 1px solid var(--rule); }
.pricing h3 { margin: 0 0 6px; font-size: 20px; }
.pricing > div:nth-child(2) { box-shadow: inset 0 3px 0 var(--ink); }
.price { font: 600 34px/1 var(--sans); font-feature-settings: 'tnum' 1; }
.price small { font-size: 13px; font-weight: 500; letter-spacing: .06em; color: var(--mute); margin-right: 6px; }
.price { font-weight: 500; }
.per { color: var(--mute); font-size: 14px; margin: 4px 0 10px; }
.pricing ul { padding-left: 18px; font-size: 14.5px; }
.list .item { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--rule); text-decoration: none; flex-wrap: wrap; }
.list .item .meta { color: var(--mute); font-size: 13.5px; font-family: var(--mono); }

/* modal */
.modal { display: none; position: fixed; inset: 0; background: rgba(34, 35, 31, .45); z-index: 20; align-items: center; justify-content: center; padding: 16px; }
.modal.open { display: flex; }
.modal .box { background: var(--paper); border: 1px solid var(--ink); padding: 20px; max-width: 460px; width: 100%; }
.modal .legend { font: 700 18px var(--serif); margin-bottom: 6px; }
.modal input[type=email] { width: 100%; font: 400 15px var(--sans); padding: 10px; border: 1px solid var(--ink); border-radius: 4px; }
.ok { color: var(--ink); } .err { color: var(--ink); font-weight: 600; }

/* footer */
footer.site { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; color: var(--mute); padding-bottom: 40px; margin-top: 40px; }
footer.site::before { content: ''; flex-basis: 100%; border-top: 1px solid var(--ink); margin-bottom: 8px; }
footer.site a { color: var(--ink); }
footer.site span:nth-of-type(2), footer.site span:nth-of-type(3) { flex-basis: 100%; }

@media (max-width: 1000px) {
  .hero { grid-template-columns: 1fr; gap: 26px; }
  .chains, .twin { grid-template-columns: 1fr; }
  li.rec { grid-template-columns: 56px minmax(0, 1fr); }
  li.rec .mg { grid-column: 2; flex-direction: row; flex-wrap: wrap; gap: 2px 12px; color: var(--mute); }
  .why { grid-column: 1 / 3; }
}
@media (max-width: 720px) {
  .wrap { padding: 0 16px; }
  h1 { font-size: 29px; }
  .lede { font-size: 16px; }
  header.site { padding: 12px 0; gap: 6px; }
  .brand { font-size: 17px; }
  header.site nav { gap: 14px; font-size: 14px; }
  header.site nav { gap: 6px 16px; }
  #nav-auth { gap: 14px; }
  .form { grid-template-columns: 1fr; }
  fieldset.ticks label { display: flex; flex-wrap: wrap; width: 100%; min-width: 0; }
  fieldset.ticks select { flex: 1 1 100%; min-width: 0; width: 100%; }
  .form > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--rule); }
  .summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .summary > div, .summary > div + div { padding: 10px 12px 10px 0; border-left: 0; }
  .summary > div:nth-child(even) { padding-left: 12px; border-left: 1px solid var(--rule); }
  .summary > div:nth-child(n+3) { border-top: 1px solid var(--rule); }

  dl.regime-line { grid-template-columns: 1fr; }
  dl.regime-line > div { grid-template-columns: 120px minmax(0, 1fr); }
  li.link { display: block; }
  li.link .acc, li.link .sp { display: inline-block; margin-right: 10px; }
  .summary .accf .n { font-size: 36px; }
  li.pair { grid-template-columns: 1fr; }
  li.pair .pw { grid-column: 1; grid-row: auto; }
  .srow { grid-template-columns: minmax(0, 1fr) 64px 58px; }
  .why > div { grid-template-columns: 1fr; gap: 2px; }
  ul.idx { columns: 1; }
  .pricing { grid-template-columns: 1fr; }
  .pricing > div + div { border-left: 0; border-top: 1px solid var(--rule); }
  .leadline { font-size: 23px; }
  .mcount { margin-left: 0; }
}
@media print {
  .band, .tool, #actions, footer.site, .hero, .explain, .no-print { display: none !important; }
  body { background: #fff; }
  .why { display: block; }
}
