@font-face { font-family:'EB Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/eb-garamond-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family:'EB Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url(fonts/eb-garamond-latin-400-italic.woff2) format('woff2'); }
@font-face { font-family:'EB Garamond'; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/eb-garamond-latin-600-normal.woff2) format('woff2'); }
:root { --paper:#fbf6ea; --ink:#1d1a2e; --soft:#36324a; --rule:#1d1a2e;
  --proven-ink:#00733f; --proven-bg:#d9f7e6; --measured-ink:#3a3000; --measured-bg:#ffe94d; --measured-line:#c9a800;
  --reasoned-ink:#5a1f00; --reasoned-bg:#ffc2a3; --reasoned-line:#ff7a52; --guess-ink:#c4001d; --guess-bg:#ffe0e4;
  --sourced-ink:#1c3fc4; --sourced-bg:#dfe6ff; }
* { box-sizing:border-box; margin:0; padding:0; }
html { background:var(--paper); }
body { background:var(--paper); color:var(--ink); font-family:'EB Garamond', Garamond, Georgia, serif; font-size:1.25rem; line-height:1.5; }
.page { max-width:820px; margin:0 auto; padding:64px 24px 48px; }
h1 { font-weight:600; line-height:1.1; }
h2 { font-weight:600; font-size:1rem; letter-spacing:.16em; text-transform:uppercase; }
.num { margin-right:10px; }
section { margin-top:44px; }
.steps { list-style:none; display:grid; gap:10px; }
.row { display:grid; grid-template-columns:132px 1fr; column-gap:18px; align-items:baseline; padding:9px 0; border-top:1px solid color-mix(in srgb, var(--rule) 22%, transparent); }
h2 + .row { border-top:0; }
.tag { justify-self:start; font-size:0.8125rem; font-weight:600; letter-spacing:.1em; padding:2px 8px 1px; border-radius:2px; border:1px solid; white-space:nowrap; }
.proven { color:var(--proven-ink); background:var(--proven-bg); border-color:var(--proven-ink); }
.measured { color:var(--measured-ink); background:var(--measured-bg); border-color:var(--measured-line); }
.reasoned { color:var(--reasoned-ink); background:var(--reasoned-bg); border-color:var(--reasoned-line); }
.guess { color:var(--guess-ink); background:var(--guess-bg); border-color:var(--guess-ink); }
.tag[data-grade] { position:relative; }
.tag[data-grade]::after { content:attr(data-grade); position:absolute; left:-1px; top:calc(100% + 3px); font-size:0.8125rem; font-weight:400;
  font-style:italic; letter-spacing:0; line-height:1.2; color:var(--guess-ink); white-space:nowrap; }
.grade { font-style:italic; color:var(--guess-ink); margin-right:2px; }
.note { font-size:1.0625rem; color:var(--soft); margin-top:14px; font-style:italic; }
.note s { color:var(--guess-ink); }
.join fieldset { display:contents; border:0; }
.join { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; align-items:end; margin-top:8px; }
.join label { display:grid; gap:6px; font-size:1rem; color:var(--soft); }
.join input, .join select { background:#fffdf7; color:var(--ink); border:1px solid var(--rule); border-radius:2px; font:inherit; font-size:1.125rem; padding:10px 12px; }
.join button { justify-self:start; background:var(--accent); color:var(--paper); border:1px solid var(--accent); border-radius:2px; font:inherit; font-size:1.125rem; letter-spacing:.06em; padding:10px 24px; text-align:left; cursor:pointer; }
.join button:hover, .join button:focus-visible { background:var(--link); border-color:var(--link); }
.join button small { display:block; font-size:0.875rem; font-style:italic; letter-spacing:0; }
.join input:focus-visible, .join select:focus-visible { outline:2px solid var(--link); outline-offset:1px; }
.join-done { margin-top:14px; font-size:1.0625rem; color:var(--ink); border-left:3px solid var(--accent); padding-left:12px; }
.privacy { font-size:1rem; color:var(--soft); margin-top:14px; }
.foot { margin-top:56px; padding-top:12px; font-size:0.9375rem; letter-spacing:.12em; text-transform:uppercase; color:var(--soft); text-align:center; }
@media (max-width:560px) { body { font-size:1.125rem; } .row { grid-template-columns:1fr; row-gap:6px; } .page { padding:40px 16px; } }

:root { --accent:#b0002a; }
.page { max-width:1040px; display:grid; grid-template-columns:1fr 1fr; column-gap:48px; }
.mast { grid-column:1 / -1; text-align:center; border-top:6px double var(--ink); border-bottom:1px solid var(--ink); padding:14px 0 28px; }
.kicker { font-size:clamp(1.625rem, 4vw, 2.5rem); font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding-bottom:10px; border-bottom:1px solid var(--ink); }
h1 { font-size:clamp(2rem, 4.6vw, 3.25rem); margin:22px auto 12px; max-width:880px; font-style:italic; font-weight:400; }
.sub { font-size:1.3125rem; max-width:740px; margin:0 auto; }
.meta { font-size:0.9375rem; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); margin-top:14px; }
section { margin-top:30px; }
h2 { color:var(--accent); border-bottom:2px solid var(--ink); padding-bottom:4px; margin-bottom:12px; }
.what, .labels, .join-wrap, .foot { grid-column:1 / -1; }
.steps { grid-template-columns:repeat(3, 1fr); column-gap:32px; }
.steps li + li { border-left:1px solid var(--ink); padding-left:32px; }
@media (max-width:760px) { .steps { grid-template-columns:1fr; } .steps li + li { border-left:0; padding-left:0; } }
.foot { border-top:6px double var(--ink); }
.foot a { color:var(--ink); text-underline-offset:3px; }
@media (max-width:760px) { .page { grid-template-columns:1fr; } }
.page.plain { display:block; max-width:880px; }   .facts { padding-left:1.6em; } .facts li { margin-top:12px; overflow-wrap:anywhere; } .facts small { color:var(--soft); }

.check { grid-column:1 / -1; }
.library { grid-column:1 / -1; }
.library .count { font-size:1.375rem; margin:0; }
.library .count b { font-size:clamp(2.75rem, 6vw, 4rem); font-weight:600; color:var(--accent); margin-right:10px; }
.ticker { font-size:1.125rem; margin:6px 0 0; }
.ticker .name { font-size:0.9375rem; letter-spacing:.14em; text-transform:uppercase; margin-right:10px; }
.ticker .up { font-weight:600; }
.ticker .green { color:#0a7a3b; } .ticker .red { color:var(--accent); }
.ticker .why { display:block; font-size:0.9375rem; color:var(--soft); }
.updated { font-size:0.9375rem; color:var(--soft); margin:4px 0 0; }
.newest-head { font-size:0.9375rem; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); margin:14px 0 4px; }
.newest { list-style:none; padding:0; margin:0; }
.newest li { display:grid; grid-template-columns:92px 1fr; column-gap:18px; align-items:baseline; padding:8px 0; border-top:1px solid color-mix(in srgb, var(--rule) 22%, transparent); }
.browse { margin:12px 0 0; font-size:1.25rem; }
.browse a { color:var(--ink); text-underline-offset:3px; }
.mast .meta a, .founders a { color:var(--ink); text-underline-offset:3px; }
.charter, .signed, .founders { grid-column:1 / -1; max-width:760px; margin-left:auto; margin-right:auto; width:100%; }
.articles { padding-left:1.6em; margin:0; }
.articles li { padding:10px 0; border-top:1px solid color-mix(in srgb, var(--rule) 22%, transparent); }
.articles li::marker { color:var(--accent); font-weight:600; }
.signed { text-align:center; margin-top:36px; }
.sig { font-size:clamp(2.125rem, 5vw, 2.875rem); font-style:italic; margin:0; border-bottom:1px solid var(--ink); display:inline-block; padding:0 24px 4px; }
.circle { list-style:none; padding:0; margin:0; }
.circle li { display:grid; grid-template-columns:76px 1fr; column-gap:14px; align-items:baseline; padding:10px 0; border-top:1px solid color-mix(in srgb, var(--rule) 22%, transparent); }
.circle .seat { color:var(--accent); font-weight:600; }
.circle .name { font-size:1.5rem; font-style:italic; }
.circle .open { color:var(--soft); }
.circle .work { display:block; font-size:1.0625rem; }
.check h2 .num { color:var(--ink); }
.paste { display:grid; gap:8px; font-size:1.0625rem; color:var(--soft); }
.paste textarea { background:#fffdf7; color:var(--ink); border:1px solid var(--ink); border-radius:2px; font:inherit; font-size:1.1875rem; line-height:1.45; padding:12px 14px; resize:vertical; min-height:170px; }
.link { all:unset; cursor:pointer; font-size:1rem; color:var(--soft); text-decoration:underline; text-underline-offset:3px; margin-top:8px; }
.link:hover { color:var(--accent); }
.tiers { border:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; margin-top:20px; }
.tiers legend { font-size:0.9375rem; letter-spacing:.14em; text-transform:uppercase; color:var(--soft); margin-bottom:8px; }
.tier { display:grid; grid-template-columns:auto 1fr; column-gap:10px; align-items:baseline; padding:12px 14px; border:1px solid var(--ink); border-radius:2px; cursor:pointer; background:#fffdf7; }
.tier input { accent-color:var(--accent); }
.tier b { font-weight:600; font-size:1.1875rem; }
.tier span { grid-column:2; font-size:1rem; color:var(--soft); line-height:1.35; }
.tier:has(input:checked) { border-width:2px; border-color:var(--accent); padding:11px 13px; }
.tier.soon { cursor:not-allowed; border-style:dashed; color:var(--soft); background:transparent; }
.builtin, .own { margin-top:14px; font-size:1.0625rem; }
.builtin input { accent-color:var(--accent); margin-right:8px; }
.warn { font-size:1rem; color:var(--soft); font-style:italic; }
.own-row { display:grid; grid-template-columns:1.1fr 1fr 1.4fr; gap:12px; margin-top:10px; }
.own-row label { display:grid; gap:6px; font-size:1rem; color:var(--soft); }
.own-row input, .own-row select { background:#fffdf7; color:var(--ink); border:1px solid var(--ink); border-radius:2px; font:inherit; font-size:1.0625rem; padding:8px 10px; min-width:0; }
.go { margin-top:18px; background:var(--ink); color:var(--paper); border:1px solid var(--ink); border-radius:2px; font:inherit; font-size:1.3125rem; padding:10px 30px; text-align:left; cursor:pointer; transition:transform .1s ease; }
.go small { display:block; font-size:0.875rem; font-style:italic; }
.go:hover { transform:translateY(-1px); } .go:active { transform:translateY(1px); } .go:disabled { opacity:.6; cursor:wait; }
.status { margin-top:14px; font-size:1.125rem; min-height:1.5em; }
.status b { font-weight:600; }
.results { list-style:none; }
.results li { display:grid; grid-template-columns:132px 1fr; column-gap:18px; align-items:baseline; padding:10px 0; border-top:1px solid color-mix(in srgb, var(--ink) 22%, transparent); }
.results .said { font-size:1.1875rem; }
.results s { color:var(--guess-ink); }
.results .fix { display:block; font-size:1.0625rem; margin-top:2px; }
.results .whyguess { display:block; font-size:1rem; color:var(--soft); font-style:italic; margin-top:2px; }
.sourced { color:var(--sourced-ink); background:var(--sourced-bg); border-color:var(--sourced-ink); }
.results .lookup-box { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:10px; margin-top:6px; }
.results .lookup { font:inherit; font-size:1rem; color:var(--ink); background:transparent; border:1px solid var(--ink); border-radius:2px; padding:2px 10px; cursor:pointer; }
.results .lookup:hover { background:var(--sourced-bg); }
.results .lookup:disabled { cursor:wait; color:var(--soft); }
.results .lookup-note { font-size:0.9375rem; color:var(--soft); font-style:italic; }
.results .source { display:block; font-size:1rem; margin-top:4px; }
.results .source q { font-style:italic; }
.results .source-head { display:block; font-size:0.9375rem; color:var(--soft); font-style:italic; margin-top:2px; }
.results .source.opposes a { color:var(--guess-ink); }
.results details { grid-column:2; margin-top:4px; }
.results summary { cursor:pointer; font-size:0.9375rem; color:var(--soft); text-decoration:underline; text-underline-offset:3px; list-style:none; }
.results summary::-webkit-details-marker { display:none; }
.results .how { font-size:0.9375rem; color:var(--soft); margin-top:4px; }
.results code { font-family:Consolas, 'Courier New', monospace; font-size:0.875rem; color:var(--ink); }
.falsified { color:#fff; background:var(--guess-ink); border-color:var(--guess-ink); }
.state { display:block; grid-column:2; font-style:normal; font-size:0.875rem; letter-spacing:.02em; margin-top:6px; }
.state::before { content:''; display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:1px; background:currentColor; }
.state.built { color:var(--proven-ink); } .state.unbuilt { color:var(--guess-ink); }
.builtin .state, .join-wrap .state { margin-top:8px; }
.north { grid-column:2; margin-top:4px; font-size:0.875rem; color:var(--soft); }
.north summary { cursor:pointer; text-decoration:underline; text-underline-offset:3px; list-style:none; }
.north summary::-webkit-details-marker { display:none; }
.north-body { margin-top:4px; line-height:1.4; }
.mini { font-size:0.6875rem; font-weight:600; letter-spacing:.08em; padding:0 5px; border:1px solid; border-radius:2px; white-space:nowrap; }
.mini.measured { color:var(--measured-ink); background:var(--measured-bg); border-color:var(--measured-line); }
.mini.reasoned { color:var(--reasoned-ink); background:var(--reasoned-bg); border-color:var(--reasoned-line); }
.atlas-link { display:inline-block; margin-top:10px; font-size:1.125rem; color:var(--ink); }
.theorem { border-left:3px solid var(--accent); padding:4px 0 4px 16px; font-style:italic; }
.theorem b { font-style:normal; }
.cite { font-size:1rem; color:var(--soft); margin:8px 0 10px; }
@media (max-width:760px) { .tiers, .own-row { grid-template-columns:1fr; } .results li { grid-template-columns:1fr; row-gap:6px; } .results details { grid-column:1; } }
.charter .why { font-size:1.5rem; line-height:1.35; margin:0 0 10px; }
.charter .why + .row { border-top:0; margin-bottom:22px; }
.trace, .showcase, .score { grid-column:1 / -1; }
.trace { margin-top:28px; }
.trace-box { display:grid; gap:10px; font-size:clamp(1.5rem, 3.4vw, 2.125rem); font-weight:600; line-height:1.15; }
.trace-box input { font:inherit; font-size:1.375rem; font-weight:400; color:var(--ink); background:#fffdf7; border:2px solid var(--ink); border-radius:2px; padding:12px 14px; width:100%; }
.trace-try { font-size:1.0625rem; color:var(--soft); margin-top:10px; }
.trace-try button, .trace-hits button { font:inherit; color:var(--ink); background:none; border:0; border-bottom:1px solid var(--ink); cursor:pointer; padding:0; margin-right:10px; }
.trace-hits { list-style:none; margin-top:12px; display:grid; gap:8px; }
.trace-hits button { text-align:left; font-size:1.1875rem; margin:0; }
.trace-none { margin-top:12px; color:var(--soft); font-style:italic; }
.trace-more { color:var(--soft); } .trace-more a { color:var(--link); }   .trace-chain { margin-top:18px; border-top:1px solid var(--ink); padding-top:14px; }
.trace-start { font-size:1.375rem; font-weight:600; }
.trace-steps { list-style:none; margin-top:10px; border-left:2px solid var(--ink); padding-left:18px; display:grid; gap:12px; }
.trace-step { display:grid; grid-template-columns:110px 1fr; column-gap:14px; align-items:baseline; }
.trace-step b { display:block; }
.trace-step small, .trace-step code { display:block; font-size:1.0625rem; color:var(--soft); overflow-wrap:anywhere; }
.trace-step code { font-family:Consolas, 'Courier New', monospace; font-size:0.9375rem; }
.tag.root { color:var(--paper); background:var(--ink); border-color:var(--ink); }
.trace-saved { margin-top:12px; font-size:1.125rem; }
.trace-saved .tag { margin-right:8px; }
.trace-saved small { color:var(--soft); }
.trace-link { margin-top:10px; font-size:1.125rem; }
.trace-link a { color:var(--ink); text-underline-offset:3px; }
.score-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)); gap:16px; margin-top:12px; }
.score-cell { border-top:3px solid var(--ink); padding-top:8px; display:grid; gap:2px; align-content:start; }
.score-cell b { font-size:clamp(2.25rem, 5vw, 3.25rem); font-weight:600; line-height:1; color:var(--proven-ink); }
.score-cell b.none { font-size:1.25rem; color:var(--soft); font-style:italic; font-weight:400; line-height:1.2; }
.score-cell span { font-size:1.0625rem; }
.score-cell small { font-size:0.875rem; color:var(--soft); }
:root { --link:#1c3fc4; --search-bg:#eef2ff; --score-bg:#e9f8ef; --open-ink:#5b1fa8; --open-bg:#efe6ff; }
.tag.open { color:var(--open-ink); background:var(--open-bg); border-color:var(--open-ink); }
.browse a, .trace-link a, .foot a, .mast .meta a, .founders a, .trace-hits button, .trace-try button { color:var(--link); border-bottom-color:var(--link); }
.browse a:hover, .trace-link a:hover, .foot a:hover, .mast .meta a:hover, .founders a:hover, .trace-hits button:hover, .trace-try button:hover { color:var(--accent); border-bottom-color:var(--accent); }
.trace { background:var(--search-bg); border-top:3px solid var(--link); padding:18px 20px 20px; }
.trace-box input { background:#fffdf7; border-color:var(--link); }
.trace-steps { border-left-color:var(--accent); }
.score { background:var(--score-bg); border-top:3px solid var(--proven-ink); padding:4px 20px 20px; }
.score h2 { border-bottom-color:var(--proven-ink); }
@media (max-width:560px) { .trace, .score { padding-left:14px; padding-right:14px; } }
.addr { font-family:Consolas, 'Courier New', monospace; font-size:0.875rem; overflow-wrap:anywhere; }
.trace-try { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.trace-try button { font-size:0.875rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--accent);
  background:var(--paper); border:1px solid var(--accent); border-radius:2px; padding:3px 10px 2px; margin:0; text-decoration:none; }
.trace-try button:hover, .trace-try button:focus-visible { color:var(--paper); background:var(--link); border-color:var(--link); }
@media (min-width:1280px) {
  .page { max-width:1160px; grid-template-columns:240px 1fr 1fr 240px; column-gap:40px; }
  .score-cell small, .score .note { font-size:1rem; }
  .page > * { grid-column:2 / 4; }
  .page > .mast { grid-column:1 / -1; }
  .page > .score { grid-column:1; grid-row:2 / span 6; align-self:start; position:sticky; top:24px; }
  .page > .showcase { grid-column:4; grid-row:2 / span 6; align-self:start; position:sticky; top:24px; }
  .score-grid { grid-template-columns:1fr; }
  .page > .floor { grid-column:2; } .page > .who { grid-column:3; }
}
@media (max-width:560px) { .trace-step { grid-template-columns:1fr; row-gap:4px; } }
.tag.studies { color:var(--open-ink); background:var(--open-bg); border-color:var(--open-ink); }
.counters table { width:100%; border-collapse:collapse; font-size:1.0625rem; margin-top:10px; }
.counters th { text-align:left; font-size:0.875rem; letter-spacing:.1em; text-transform:uppercase; color:var(--soft); padding:8px 10px; }
.counters td { text-align:left; vertical-align:top; padding:10px; border-top:1px solid color-mix(in srgb, var(--rule) 22%, transparent); }
.counters td small { display:block; margin-top:6px; font-size:0.875rem; color:var(--soft); }
@media (max-width:560px) { .counters thead { display:none; } .counters tr, .counters td { display:block; } .counters td { border-top:0; padding:4px 0; } .counters tr { border-top:1px solid var(--rule); padding:8px 0; } }
.counters td .tag { display:inline-block; min-width:168px; text-align:center; box-sizing:border-box; }
.size { font-style:italic; font-size:0.9375rem; color:var(--open-ink); margin-left:4px; }
.idea-list { list-style:none; margin-top:4px; border:2px solid var(--link); border-top:0; background:#fffdf7; }
.idea-list li { display:grid; grid-template-columns:132px auto 1fr; column-gap:12px; align-items:baseline; padding:9px 14px; cursor:pointer; border-top:1px solid color-mix(in srgb, var(--rule) 22%, transparent); }
.idea-list li:first-child { border-top:0; }
.idea-list li:hover, .idea-list li[aria-selected="true"] { background:color-mix(in srgb, var(--link) 12%, #fffdf7); }
.idea-list .idea-claim { color:var(--soft); white-space:nowrap; }
.idea-list .tag, .idea-hit .tag, #idea-count > .tag { display:inline-block; min-width:132px; text-align:center; box-sizing:border-box; }
#idea-count { display:grid; gap:8px; justify-items:start; }
.idea-hit { color:var(--link); text-decoration:none; } .idea-hit:hover { color:var(--accent); } .idea-hit .tag { margin-right:10px; }
.idea-tools { display:flex; gap:22px; align-items:center; margin-top:12px; font-size:1.0625rem; color:var(--soft); }
.idea-tools input { width:18px; height:18px; vertical-align:-3px; accent-color:var(--link); }
.idea-tools button, #idea-count button { font:inherit; font-size:0.875rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; color:var(--accent); background:none; border:1px solid var(--accent); border-radius:2px; padding:4px 12px; cursor:pointer; }
.idea-tools button:hover, #idea-count button:hover { color:var(--paper); background:var(--link); border-color:var(--link); }
.row.found { background:color-mix(in srgb, var(--link) 10%, transparent); box-shadow:inset 4px 0 0 var(--link); padding-left:12px; }
@media (max-width:560px) { .idea-list li { grid-template-columns:1fr; row-gap:4px; } }
