/* Shared typography: title, section, subsection, body, and interface labels. */
:root{--type-section:clamp(32px,3.3vw,46px);--type-subheading:24px;--type-card:19px;--type-body:16px;--type-small:13px;--type-label:12px}
body{font-size:var(--type-body);line-height:1.6}
main .section h2,dialog h2{font-size:var(--type-section);line-height:1.15;font-weight:500;letter-spacing:-.035em;margin-bottom:28px}
main .section h3,main .map-toolbar h3,main .chart-tools h3,main .hero-context h3,main .reconstruction-feature h3{font-size:var(--type-subheading);font-weight:500;line-height:1.25;letter-spacing:-.025em}
main .section h4,main .task-result h4{font-size:var(--type-card);font-weight:500;line-height:1.35;letter-spacing:-.015em;margin:0 0 12px}
main .section p,main .section li{font-size:var(--type-body);line-height:1.65}
main .section p.note,main .viewer-description,main .search-status,main .section .result-meta,main .section .video-card-meta{font-size:var(--type-small);line-height:1.5}
.eyebrow,main .annotation-tier{font-size:var(--type-label);letter-spacing:.12em;line-height:1.4}
.story-nav{font-size:14px;gap:26px}.button,.explorer-tabs button,.wall-filters button,.plot-tabs button{font-size:14px}
main .section .spec-subheading{margin:42px 0 20px}
main .section .section-intro{max-width:870px;margin-bottom:26px}
.purpose .purpose-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:32px}
.purpose .purpose-intro .buttons{flex-shrink:0;margin:0 0 10px;max-width:250px}
.purpose .purpose-context{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.4fr);gap:64px;align-items:center;padding:40px 0 6px}
.purpose .release-scale{display:block;margin:0;padding:0;border:0}
.purpose .release-scale .collection-scale{display:block;font-size:clamp(72px,8vw,112px);font-weight:500;letter-spacing:-.065em;line-height:1;white-space:nowrap}
.purpose .collection-scale>span{font-size:.46em;letter-spacing:-.035em;color:#eef6f0;font-weight:400}
.purpose .release-scale .scale-caption{display:block;font-size:22px;line-height:1.35;letter-spacing:0;margin:14px 0 27px}
.purpose .release-scale .subset-scale{padding-top:20px;border-top:1px solid var(--line);margin:0;font-size:16px}
.purpose .subset-scale b{display:block;font-size:26px;font-weight:500;line-height:1.25;letter-spacing:-.025em}
.purpose .subset-scale span{font-size:22px;line-height:1.35;display:block;letter-spacing:0;margin-top:6px;color:#a8bcb0}
.purpose .purpose-detail{font-size:20px;line-height:1.7;color:#d1ddd5;margin:0}
#headline-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:26px}.stat b{font-size:44px}.stat span{font-size:14px}
.wall-controls{justify-content:flex-end}.wall-load-error{color:#d8e7dc;margin-right:auto;font-size:13px}
/* The collection diagram uses live DOM geometry, so every label stays readable. */
.collection-taxonomy{position:relative;isolation:isolate;margin:28px 0 0;padding:28px 32px;background:#f5f8f1;border:1px solid var(--line);border-radius:12px}
.taxonomy-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:visible}
.taxonomy-lines path{fill:none;stroke:#c4d3ba;stroke-width:1.6}
.taxonomy-lines .taxonomy-flow{stroke:#78ad35;stroke-width:2;stroke-dasharray:4 16;animation:taxonomy-flow 3.8s linear infinite;animation-play-state:paused;opacity:.4}
.taxonomy-lines .selected{stroke:#649e21;opacity:1}
.collection-taxonomy.in-view:not(.page-hidden) .taxonomy-flow{animation-play-state:running}
.taxonomy-root{margin:0 auto;width:180px;text-align:center;background:#173b2c;color:#fff;border-radius:8px;padding:14px 20px;font-size:20px;font-weight:500}
.taxonomy-branches{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin:38px 0 34px}
.taxonomy-node{display:block;background:white;border:1px solid #c4d3ba;border-radius:8px;color:var(--ink);padding:16px 20px;text-align:center;font-size:16px;line-height:1.4;transition:border-color .2s,background .2s,box-shadow .2s}
.taxonomy-node:hover,.taxonomy-node:focus-visible{border-color:#76b900;box-shadow:0 4px 16px #173b2c0c}
.taxonomy-node[aria-pressed=true]{background:#eaf4db;border-color:#76b900}
.taxonomy-node strong{display:block;font-size:21px;font-weight:500;margin-bottom:5px}
.taxonomy-node span{display:block;color:var(--muted);font-size:14px}
.taxonomy-leaves{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:40px}
.taxonomy-description{padding:22px 26px;border-left:3px solid #76b900;background:#fafcf7;min-height:99px;border-radius:0 0 8px 8px}
main .taxonomy-description p{margin:0;max-width:900px}
.sensor-spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.sensor-spec-grid article{border-top:2px solid #b6d68b;padding-top:20px}.sensor-spec-grid p{color:var(--muted);margin-bottom:0}
#quality .recording-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:32px}
#quality .recording-grid>div{padding:22px;border:1px solid var(--line);border-radius:8px;background:#f7f9f3}
#quality .recording-grid strong{font-size:21px;font-weight:500;line-height:1.3}
#quality .recording-grid span{display:block;margin-top:8px;font-size:14px;color:var(--muted)}
#quality .annotation-summary{display:grid;grid-template-columns:1fr 1fr;gap:28px}
#quality .annotation-summary article{padding:24px;border:1px solid var(--line);border-radius:8px}
#quality .annotation-summary p{margin:0;color:var(--muted)}
#quality .quality-annotation{margin:0;border-bottom:1px solid var(--line)}
#quality .quality-annotation summary{font-size:19px;font-weight:500;color:var(--ink);padding:22px 0}
#quality .quality-body{max-width:950px;padding:0 0 20px}#quality .quality-body p,#quality .quality-body li{font-size:16px}
/* A single explorer, with maps and examples at the same level. */
.explorer-tabs{display:flex;border-bottom:1px solid var(--line);gap:10px;margin:26px 0 30px}
.explorer-tabs button{border:0;border-bottom:3px solid transparent;background:none;padding:14px 23px;color:var(--muted);font-weight:500;white-space:nowrap}
.explorer-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:#76b900}
.explorer-tabs button:hover{background:#f3f7ed}.explorer-panel .semantic-map{margin-top:26px}
#data-wall .wall-filters{margin-top:24px}.explorer-panel>h3{margin-top:24px}
[hidden]{display:none!important}
@keyframes taxonomy-flow{to{stroke-dashoffset:-80}}
@media(max-width:1000px){.purpose .purpose-context{gap:36px;grid-template-columns:1fr 1.4fr}.purpose .purpose-detail{font-size:18px}.purpose .purpose-intro{display:block}.purpose .purpose-intro .buttons{max-width:none;margin-top:24px}.taxonomy-node{padding:14px}.taxonomy-leaves{gap:10px}}
@media(max-width:700px){:root{--type-section:32px;--type-subheading:22px;--type-card:18px;--type-body:16px}.purpose .purpose-context{grid-template-columns:1fr;gap:28px;padding:28px 0 8px}.purpose .release-scale .collection-scale{font-size:82px}.purpose .release-scale .scale-caption{font-size:20px;margin:10px 0 20px}.purpose .release-scale .subset-scale{display:block}.purpose .subset-scale b{font-size:24px}.purpose .subset-scale span{margin-top:8px;font-size:20px}.purpose .purpose-detail{font-size:17px;line-height:1.65}.purpose .purpose-intro .buttons{margin-top:20px}.stat b{font-size:34px}.stat span{font-size:13px}.stats{gap:12px}.collection-taxonomy{padding:22px 14px}.taxonomy-root{font-size:18px;width:160px}.taxonomy-branches{gap:12px}.taxonomy-node strong{font-size:18px}.taxonomy-node span{font-size:13px}.taxonomy-leaves{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:34px}.taxonomy-node{font-size:14px;padding:14px 10px}.taxonomy-description{padding:20px;min-height:154px}.sensor-spec-grid{grid-template-columns:1fr;gap:24px}#quality .recording-grid{gap:12px}#quality .recording-grid>div{padding:18px 14px}#quality .recording-grid strong{font-size:18px}#quality .annotation-summary{grid-template-columns:1fr;gap:16px}.explorer-tabs{gap:0}.explorer-tabs button{padding:14px 17px}.story-nav{gap:22px}}
@media(prefers-reduced-motion:reduce){.taxonomy-lines .taxonomy-flow{animation:none;stroke-dasharray:none;opacity:.35}.taxonomy-node{transition:none}}

@media(max-width:1100px){#headline-stats{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:26px}}
@media(max-width:700px){#headline-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 18px}#headline-stats .stat b{font-size:32px}#headline-stats .stat span{font-size:14px}}

/* Visible quality gates keep checks and their training purpose together. */
.quality-gates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:32px 0 40px}
.quality-gate{padding:28px 30px;border:1px solid #d9e4d2;border-top:3px solid #76b900;border-radius:0 0 10px 10px;background:#f8faf5}
.gate-number{display:block;font-size:12px;font-weight:500;letter-spacing:.12em;color:#4e722b;margin-bottom:18px}
main .quality-gate h3{margin:0 0 12px}
main .quality-gate p{margin:0 0 20px;color:var(--muted)}
.quality-gate ul{padding-left:18px;margin:0}.quality-gate li{padding-left:3px;margin-bottom:12px}.quality-gate li:last-child{margin-bottom:0}.quality-gate li::marker{color:#71a935}
.quality-history{padding:32px;border:1px solid var(--line);border-radius:10px;background:#fff}
.quality-history-heading{display:flex;justify-content:space-between;align-items:start;gap:24px;margin-bottom:28px}
main .quality-history-heading h3{margin:0 0 8px}.quality-history-heading .text-button{flex-shrink:0;margin-top:5px;font-size:14px}
main .quality-history-heading p{margin:0;color:var(--muted);font-size:14px}
.quality-history-layout{display:grid;grid-template-columns:225px minmax(0,1fr);gap:38px;align-items:center}
.quality-history-stats>div{padding:0 0 24px}.quality-history-stats strong{display:block;font-size:44px;line-height:1.1;letter-spacing:-.04em;font-weight:500}
.quality-history-stats strong span{font-size:17px;font-weight:400;letter-spacing:0}.quality-history-stats>div>span{display:block;font-size:14px;margin-top:9px}
.quality-history-stats .accepted strong{color:#4d800b}.quality-history-stats .rejected strong{color:#a43d39}
main .quality-history-stats p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}
.quality-history-chart{margin:0;min-width:0}.quality-chart-open{position:relative;display:block;width:100%;border:0;padding:0;background:white;cursor:zoom-in}
.quality-chart-open img{display:block;width:100%;height:auto}.quality-chart-open>span{position:absolute;right:0;top:-10px;padding:4px 8px;background:#f1f6eb;border-radius:4px;color:#385e28;font-size:19px}
.quality-history-chart figcaption{text-align:center;font-size:12px;margin-top:14px;color:var(--muted)}
#quality-chart-dialog{max-width:1200px;width:calc(100vw - 48px);max-height:calc(100dvh - 48px);padding:36px;border:1px solid var(--line);border-radius:12px;background:white}
#quality-chart-dialog::backdrop{background:#0b1b16b8}#quality-chart-dialog h2{font-size:30px;margin:0 50px 8px 0}#quality-chart-dialog p{font-size:14px;color:var(--muted)}#quality-chart-dialog img{display:block;width:100%;height:auto}
.quality-chart-close{position:absolute;right:20px;top:16px;background:#f2f5ee;border:0;border-radius:50%;width:36px;height:36px;font-size:25px;line-height:1}
.environment-chart .chart-body{grid-template-columns:minmax(0,1fr) 300px}.environment-chart .chart-detail-label{font-size:20px;font-weight:500;line-height:1.3;margin-bottom:14px}
main .chart-detail .environment-description{font-size:15px;line-height:1.65;color:var(--muted);margin:0 0 25px}
.standards-document{max-width:1040px;padding:40px 32px;margin:0 auto}.standards-document>.section{padding:35px 0}.standards-document h3{margin:32px 0 18px}.standards-document blockquote{border-left:3px solid #76b900;padding:4px 22px;margin:24px 0;background:#f7faf2}
@media(max-width:1000px){.environment-chart .chart-body{grid-template-columns:minmax(0,1fr) 250px;gap:20px}.quality-history-layout{grid-template-columns:190px minmax(0,1fr);gap:20px}.quality-history-stats strong{font-size:38px}}
@media(max-width:760px){.quality-gates{grid-template-columns:1fr;gap:18px;margin:26px 0}.quality-gate{padding:24px}.quality-history{padding:24px 18px}.quality-history-heading{display:block;margin-bottom:25px}.quality-history-heading .text-button{display:inline-block;margin-top:16px}.quality-history-layout{grid-template-columns:1fr;gap:24px}.quality-history-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}.quality-history-stats>div{padding:0}.quality-history-stats strong{font-size:33px}.quality-history-stats strong span{display:block;font-size:14px;margin-top:5px}.quality-history-stats>p{grid-column:1/-1}.environment-chart .chart-body{grid-template-columns:1fr}.environment-chart .chart-detail{padding-top:22px}#quality-chart-dialog{width:calc(100vw - 24px);padding:24px 16px}.standards-document{padding:30px 20px}}

.quality-diversity{margin:0 0 40px;padding:30px;border:1px solid var(--line);border-radius:10px;background:#f7faf2}
main .quality-diversity>h3{margin:0 0 26px}.diversity-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.diversity-dimensions p{color:var(--muted);margin:0 0 22px}
.quality-plot-legend{display:flex;flex-wrap:wrap;gap:10px 18px;margin:0 0 18px}.quality-plot-legend button{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:white;color:var(--ink);font-size:13px}
.quality-plot-legend button i{display:block;width:20px;height:3px;background:#689f18}.quality-plot-legend [data-quality-series=rejected] i{background:#b24c45}.quality-plot-legend button[aria-pressed=false]{opacity:.4;background:#f4f5f2}
.quality-plot-readout{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:14px;min-height:30px;margin:0 0 10px;font-variant-numeric:tabular-nums}
#quality-week-label{font-weight:500;color:var(--ink)}#quality-accepted-value{color:#507e17}#quality-rejected-value{color:#a43d39}
#quality-history-svg{width:100%;display:block;cursor:crosshair;touch-action:pan-y;overflow:visible}
.quality-axis-title,.quality-axis-label{font-family:inherit;font-size:12px;fill:#617063}.quality-grid-line{stroke:#e1e8dc;stroke-width:1}.quality-crosshair{stroke:#9aa895;stroke-width:1;stroke-dasharray:3 4}
#quality-history-svg path{transition:opacity .18s}
.quality-week-control{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted);padding-top:8px}.quality-week-control label{white-space:nowrap}.quality-week-control input{min-width:0;flex:1;accent-color:#689f18;cursor:ew-resize}.quality-week-control output{width:22px;font-variant-numeric:tabular-nums}
@media(max-width:760px){.quality-diversity{padding:24px}.diversity-dimensions{grid-template-columns:1fr;gap:12px}.quality-plot-legend{gap:8px}.quality-plot-legend button{font-size:12px;padding:6px 8px}.quality-plot-readout{gap:5px 12px;font-size:12px;min-height:44px}#quality-week-label{flex-basis:100%}.quality-week-control{gap:10px}}
@media(prefers-reduced-motion:reduce){#quality-history-svg path{transition:none}}
