*{box-sizing:border-box}
:root{font-family:system-ui,-apple-system,sans-serif}
body{margin:0;background:var(--paper);color:var(--ink);line-height:1.6}
[hidden]{display:none!important}
a{color:inherit;text-underline-offset:.22em}
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.wrap{width:min(1170px,calc(100% - 3rem));margin-inline:auto}
.skip{position:absolute;left:1rem;top:-6rem;background:var(--paper);padding:.5rem 1rem;z-index:1}
.skip:focus{top:1rem}
.mast{border-top:.4rem solid var(--accent);border-bottom:1px solid color-mix(in srgb,var(--ink),transparent 75%)}
.mast-inner{display:flex;gap:1rem;align-items:center;justify-content:space-between;min-height:5.5rem}
.identity{display:flex;align-items:center;gap:.8rem;font:700 clamp(1.1rem,2vw,1.65rem)/1.14 var(--display);text-decoration:none}
.mark{flex:none;display:grid;place-items:center;width:2.65rem;height:2.65rem;font:700 .82rem/1 system-ui,sans-serif;background:var(--ink);color:var(--paper);letter-spacing:.08em}
nav{display:flex;gap:1.2rem;flex-wrap:wrap}
nav a{font-size:.9rem;font-weight:650}
main{min-height:65vh}
h1,h2,h3,figcaption{font-family:var(--display);line-height:1.1;margin:0 0 .7em}
h1{font-size:clamp(2.6rem,6vw,5.25rem);letter-spacing:-.055em;max-width:19ch;overflow-wrap:anywhere}
h2{font-size:clamp(1.45rem,2.9vw,2.1rem);letter-spacing:-.035em}
p{max-width:73ch}
.hero{display:grid;grid-template-columns:1.28fr .82fr;align-items:center;gap:clamp(1.5rem,5vw,5rem);min-height:34rem;padding:clamp(2rem,6vw,5.5rem) 0}
.lead{padding-top:clamp(2rem,5vw,4rem)}
.hero .lead,.article .lead{padding-top:0}
.intro{font-size:clamp(1.04rem,1.65vw,1.28rem);max-width:51ch}
.kicker,.byline,.small{font-size:.82rem;font-weight:650;letter-spacing:.04em}
.kicker{text-transform:uppercase}
.buttons{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem}
.button{display:inline-block;text-decoration:none;background:var(--ink);color:var(--paper);padding:.6rem .95rem;font-weight:700;border:1px solid var(--ink);border-radius:.2rem}
.button.quiet{color:var(--ink);background:transparent}
.button:hover,.route:hover{box-shadow:inset 0 -3px var(--accent)}
.feature{margin:0;min-width:0;border:1px solid color-mix(in srgb,var(--ink),transparent 70%);background:color-mix(in srgb,white 45%,var(--paper));padding:clamp(1.1rem,3vw,2rem)}
figcaption{font-size:clamp(1.25rem,2.6vw,1.8rem);font-weight:700}
.bars,.record-list{list-style:none;padding:0;margin:1.35rem 0 0;display:grid;gap:.8rem}
.bars li{display:grid;grid-template-columns:1fr auto;gap:.22rem .5rem;align-items:baseline}
.bars strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.track{display:block;height:.48rem;grid-column:1/-1;background:color-mix(in srgb,var(--ink),transparent 86%)}
.track span{display:block;height:100%;background:var(--accent)}
.record-list li{border-top:1px solid color-mix(in srgb,var(--ink),transparent 75%);padding:.65rem 0;display:grid;gap:.1rem}
.record-list span{font-size:.91rem}
.rail{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:2rem 0;border-block:1px solid color-mix(in srgb,var(--ink),transparent 65%)}
.rail-links{display:grid;gap:.5rem}
.route{padding:.65rem .9rem;border:1px solid color-mix(in srgb,var(--ink),transparent 65%);font-weight:700}
.article{max-width:780px;margin-inline:auto;padding:clamp(2.5rem,7vw,5.25rem) 0}
.article h1{font-size:clamp(2.5rem,6vw,4.65rem)}
.article .feature{margin:1.75rem 0}
.prose section{margin:2.4rem 0}
.prose p{font-size:1.05rem}
.dataset{margin:2.2rem 0}
.toolbar{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap;margin:1.3rem 0}
.toolbar label{display:grid;gap:.2rem;font-weight:650}
.toolbar input{width:min(100%,19rem);font:inherit;background:transparent;color:var(--ink);border:1px solid var(--ink);padding:.55rem .7rem;border-radius:.2rem}
.toolbar [role=status]{padding:.6rem 0;font-size:.88rem}
.table-scroll{max-width:100%;overflow:auto;border:1px solid color-mix(in srgb,var(--ink),transparent 65%)}
table{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}
th,td{padding:.65rem .8rem;border-bottom:1px solid color-mix(in srgb,var(--ink),transparent 80%);vertical-align:top}
th{background:var(--ink);color:var(--paper);min-width:7rem}
th button{font:inherit;font-weight:700;border:0;text-align:left;padding:0;color:inherit;background:transparent;cursor:pointer}
tr:nth-child(even){background:color-mix(in srgb,var(--ink),transparent 96%)}
.source{display:inline-block;font-size:.85rem;font-weight:650;margin-right:.45rem}
.sources{padding-inline-start:1.2rem}
.sources li{padding-bottom:.4rem;overflow-wrap:anywhere}
.footer{margin-top:3.5rem;padding:1.8rem 0 2.5rem;border-top:1px solid color-mix(in srgb,var(--ink),transparent 65%)}
.footer p{margin:.35rem 0 .8rem;font-size:.9rem}
.gazette .mast{border-bottom:4px double var(--ink)}
.gazette .hero{grid-template-columns:.93fr 1fr}
.gazette .home-copy{order:2}
.gazette .mark{border-radius:50%}
.ledger .mast,.chart .mast{background:var(--ink);color:var(--paper)}
.ledger .mark,.chart .mark{background:var(--paper);color:var(--ink)}
.ledger .feature{border-inline-start:.45rem solid var(--accent)}
.ledger .hero{grid-template-columns:1fr 1fr}
.archive .feature{border:0;border-top:.35rem solid var(--accent);box-shadow:.45rem .5rem 0 color-mix(in srgb,var(--ink),transparent 82%)}
.archive .mark{border-radius:0 .7rem 0 0}
.chart .track,.chart .track span{border-radius:2rem}
.chart .track{height:.8rem}
.chart .feature{border-radius:1rem}
.timeline .record-list{border-inline-start:2px solid var(--accent);padding-inline-start:1rem}
.timeline .record-list li{position:relative;border-top:0;padding:.35rem 0}
.timeline .record-list li:before{content:"";position:absolute;left:-1.27rem;top:.72rem;width:.45rem;height:.45rem;background:var(--accent);border-radius:50%}
.timeline .mark{transform:rotate(-5deg)}
.studio .hero{grid-template-columns:1.2fr .8fr;align-items:end}
.studio .feature{background:var(--ink);color:var(--paper);border-radius:9rem 9rem .3rem .3rem;padding-top:3rem}
.studio .track{background:color-mix(in srgb,var(--paper),transparent 75%)}
.studio .track span{background:var(--paper)}
.studio .mark{border-radius:1.3rem 1.3rem .1rem .1rem}
.field .feature{border-top:.35rem solid var(--ink);border-radius:0 1.5rem 0 0}
.field .mark{border-radius:.2rem .8rem .2rem .2rem}
.workbench .hero{min-height:auto;grid-template-columns:1fr .84fr;padding:3rem 0}
.workbench h1{font-size:clamp(2.3rem,5vw,4rem)}
.workbench .feature{border-radius:.65rem}
.workbench .mark{border-radius:.6rem}
@media(max-width:740px){
  .wrap{width:calc(100% - 2rem)}
  .mast-inner{align-items:flex-start;flex-direction:column;gap:.55rem;padding:.75rem 0}
  .hero,.gazette .hero,.ledger .hero,.studio .hero,.workbench .hero,.rail{grid-template-columns:1fr;min-height:auto}
  .gazette .home-copy{order:0}
  h1{max-width:100%;font-size:clamp(2.1rem,9.5vw,3.5rem)}
  .article h1{font-size:clamp(2.1rem,9vw,3.5rem)}
}
figcaption .kicker{display:block;font:750 .72rem/1.35 system-ui,sans-serif;letter-spacing:.13em;margin-bottom:.5rem}
.annotation{border-top:1px solid currentColor;margin:1.15rem 0 .5rem;padding:.65rem 0 0;font-size:.94rem;line-height:1.43}
.nodes{display:grid;gap:.55rem;margin:1.2rem 0 0;padding:0;list-style:none}
.nodes li{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;padding:.55rem 0;border-top:1px solid color-mix(in srgb,currentColor,transparent 75%)}
.nodes p{margin:.16rem 0 0;font-size:.87rem;line-height:1.45}
.node-index{border:1px solid currentColor;border-radius:.18rem;padding:.16rem .36rem;white-space:nowrap;font:700 .73rem/1.45 system-ui,sans-serif;font-variant-numeric:tabular-nums}
.nodes.timeline{border-left:2px solid currentColor;padding-left:.85rem}
.nodes.timeline li{position:relative;border:0;padding:.5rem 0}
.nodes.timeline li:before{content:"";width:.48rem;height:.48rem;border-radius:50%;position:absolute;left:-1.16rem;top:1.05rem;background:currentColor}
.nodes.flow li{border:1px solid color-mix(in srgb,currentColor,transparent 55%);padding:.55rem;position:relative}
.nodes.flow li:not(:last-child):after{content:"↓";position:absolute;bottom:-.89rem;left:.72rem;font-weight:800;line-height:1;background:var(--paper);color:var(--ink)}
.nodes.flow{gap:.75rem}
.nodes.cards li{border:0;border-left:3px solid currentColor;padding:.35rem .5rem;background:color-mix(in srgb,currentColor,transparent 94%)}
.bars.dots .track{height:2px;margin:.35rem 0}
.bars.dots .track>span{position:relative;background:transparent}
.bars.dots .track>span:after{content:"";display:block;position:absolute;right:0;top:-.28rem;width:.68rem;height:.68rem;border-radius:100%;background:var(--accent)}
.bars.stacked .track{display:flex;height:.82rem}
.bars.stacked .track>span:first-child{background:var(--ink)}
.bars.stacked .track>span:last-child{background:var(--accent)}
.bars.stacked li>span:not(.track){font-size:.81rem}
.studio .feature{border-radius:2.2rem .3rem 2.2rem .3rem;padding:clamp(1.1rem,3vw,2rem)}
@media(max-width:390px){.nodes.timeline li{grid-template-columns:1fr;gap:.3rem}.node-index{justify-self:start}.bars.stacked li{grid-template-columns:1fr}.bars strong{white-space:normal}}
.trend{margin:2.7rem 0}
.trend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:.75rem}
.trend-panel{padding:.85rem;border:1px solid color-mix(in srgb,var(--ink),transparent 70%);background:color-mix(in srgb,white 45%,var(--paper))}
.trend-panel h3{font-size:1.1rem}
.trend-svg{display:block;width:100%;height:auto}
.trend-svg .grid{stroke:currentColor;opacity:.23;fill:none}
.trend-svg polyline{stroke:var(--accent);stroke-width:3;fill:none}
.trend-svg circle{fill:var(--accent)}
.trend-axis{display:flex;justify-content:space-between;margin:0 .25rem;font-size:.72rem}
.trend-latest{margin:.45rem 0 0;font-size:.82rem}
.trend-latest strong{font-size:1.05rem}
.checklist{margin:2.25rem 0;border-top:.25rem solid var(--accent);padding-top:1.25rem}
.checklist ul{padding:0;list-style:none;display:grid;gap:.55rem}
.checklist li{padding:.65rem;border:1px solid color-mix(in srgb,var(--ink),transparent 70%)}
.checklist input{width:1.1rem;height:1.1rem;vertical-align:middle;accent-color:var(--ink)}
.checklist label{display:block;cursor:pointer}
.checklist p{margin:.25rem 0}
