:root{--ink:#142239;--muted:#586578;--line:#d9dfe5;--paper:#f7f8fa;--blue:#184fba;--green:#dcf5c4;--red:#a32c38}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--blue);text-underline-offset:3px}button,input,select{font:inherit}header{min-height:86px;max-width:1240px;margin:auto;padding:20px 32px;display:flex;align-items:center;gap:45px;border-bottom:1px solid var(--line)}.brand{font-size:24px;letter-spacing:-1px;font-weight:750;color:var(--ink);text-decoration:none}.brand span{margin-left:8px;font-size:17px;font-weight:400;color:var(--blue)}nav{display:flex;gap:25px}nav a,.legacy{font-size:14px;text-decoration:none;color:var(--muted)}nav a[aria-current=page]{color:var(--blue);text-decoration:underline}.legacy{margin-left:auto}main{max-width:1176px;margin:0 auto;padding:58px 0 80px;min-height:75vh}.eyebrow,.mono,th,.status,.label{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:12px;color:var(--blue);margin:0 0 18px}h1{font-size:clamp(34px,5vw,58px);letter-spacing:-2px;line-height:1.08;max-width:850px;margin:0 0 22px;font-weight:650}h2{font-size:25px;letter-spacing:-.6px;line-height:1.2;margin:0 0 16px}h3{font-size:18px;margin:0 0 10px}.intro{font-size:19px;max-width:680px;color:var(--muted);margin-bottom:30px}.hero{display:grid;grid-template-columns:1fr 240px;gap:50px;margin-bottom:46px}.hero-aside{border-left:1px solid var(--line);padding:8px 0 0 28px;align-self:end}.hero-aside strong{display:block;font-size:38px;font-weight:500;letter-spacing:-1.5px}.hero-aside p{font-size:13px;color:var(--muted);margin:0 0 16px}.notice{padding:14px 18px;background:#eef1f5;border-left:3px solid var(--blue);font-size:14px;color:var(--muted);margin:24px 0}.tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 18px}.tools input{width:340px;max-width:100%;padding:10px 12px;border:1px solid #aab5c3;background:white;border-radius:2px;color:var(--ink)}.count{font-size:13px;color:var(--muted)}.table-wrap{overflow-x:auto;border-top:2px solid var(--ink)}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.6px;text-transform:uppercase;padding:14px 12px;border-bottom:1px solid var(--line)}td{padding:20px 12px;border-bottom:1px solid var(--line);vertical-align:top}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.task-name{font-size:17px;font-weight:600;text-decoration:none;color:var(--ink);display:inline-block;margin-bottom:5px}.task-name:hover{color:var(--blue);text-decoration:underline}.contract{font-size:13px;color:var(--muted);max-width:370px}.small{font-size:13px;color:var(--muted)}.status{display:inline-block;padding:3px 7px;font-size:10px;text-transform:uppercase;border:1px solid var(--line);white-space:nowrap}.status.completed{background:var(--green);border-color:#b6d89d;color:#2c5224}.status.running{background:#e4eeff;color:var(--blue);border-color:#b6ccef}.status.failed{background:#fff0f1;color:var(--red);border-color:#edc8cd}.number{font-variant-numeric:tabular-nums}.priority{display:inline-flex;align-items:center;gap:8px}.priority i{height:4px;width:40px;background:var(--line);display:inline-block}.priority i b{height:4px;display:block;background:var(--blue)}.section{margin-top:46px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid var(--line);padding-top:22px}.label{font-size:11px;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.value{font-size:15px;overflow-wrap:anywhere}.spec{margin-bottom:20px}.back{display:inline-block;margin-bottom:26px;font-size:13px;text-decoration:none}.subnav{display:flex;gap:20px;flex-wrap:wrap;margin:26px 0}.subnav a{font-size:14px}.score{font-size:21px;font-weight:600}.empty{padding:30px 0;color:var(--muted)}.prose{max-width:780px}.prose h2{margin-top:38px}.prose p,.prose li{color:var(--muted)}.prose strong{color:var(--ink)}code{background:#e8edf3;padding:2px 5px;font-size:12px;overflow-wrap:anywhere}.artifacts{display:flex;gap:14px;flex-wrap:wrap}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#eef1f5;padding:16px;max-height:460px;overflow:auto}footer{max-width:1240px;margin:auto;border-top:1px solid var(--line);padding:25px 32px;display:flex;justify-content:space-between;gap:30px;font-size:12px;color:var(--muted)}button{cursor:pointer;border:1px solid var(--blue);background:var(--blue);color:white;padding:8px 14px}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #6594f5;outline-offset:4px}.loading{color:var(--muted)}.error{color:var(--red)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1240px){main{padding-left:32px;padding-right:32px}}@media(max-width:700px){header{padding:18px 20px;gap:16px;flex-wrap:wrap}.legacy{display:none}nav{gap:16px;margin-left:auto}nav a{font-size:12px}main{padding:36px 20px 55px}h1{letter-spacing:-1.3px}.hero{grid-template-columns:1fr;gap:16px;margin-bottom:28px}.hero-aside{border-left:0;border-top:1px solid var(--line);padding:16px 0 0;display:flex;gap:30px}.hero-aside strong{font-size:27px}.hero-aside p{max-width:180px}.intro{font-size:17px}.detail-grid{grid-template-columns:1fr;gap:0}.tools{align-items:start;flex-direction:column}.tools input{width:100%}td{padding:16px 12px;min-width:110px}td:first-child{min-width:230px}.table-wrap{margin-right:0}footer{padding:22px 20px;flex-direction:column;gap:10px}.hide-mobile{display:none}}

progress{appearance:none;border:0;width:40px;height:4px;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--blue)}progress::-moz-progress-bar{background:var(--blue)}

.period{display:flex;gap:8px}.period button[aria-pressed="false"]{background:transparent;color:var(--blue)}@media(max-width:700px){header nav{width:100%;margin-left:0;flex-wrap:wrap;justify-content:space-between;gap:12px}}

.status.ready{background:#e4eeff;color:var(--blue)}.status.needs_adapter{background:#fff4da;color:#77560a}.status.measured{background:var(--green);color:#2c5224}.status.proposed{background:white}.status.waiting{color:var(--muted)}

.scatter{margin:24px 0 34px;padding:22px 20px 10px;background:white;border:1px solid var(--line)}.plot-wrap{overflow-x:auto}.plot-wrap svg{display:block;width:100%;min-width:500px;max-height:400px}.plot-grid{stroke:#e8ecf1;stroke-width:1}.plot-axis{stroke:#8996a7;stroke-width:1}.plot-tick{font:12px ui-monospace,monospace;fill:var(--muted)}.plot-label{font:14px system-ui,sans-serif;fill:var(--ink)}.plot-target{fill:transparent;cursor:pointer}.plot-point{stroke:white;stroke-width:2}.point-0{fill:#184fba;background:#184fba}.point-1{fill:#c05621;background:#c05621}.point-2{fill:#39833d;background:#39833d}.point-3{fill:#8352b3;background:#8352b3}.plot-legend{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0}.legend-item{font-size:13px;display:inline-flex;gap:7px;align-items:center}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}@media(max-width:700px){.scatter{padding:12px 8px}.plot-wrap svg{min-width:500px}}

.ontology-snapshot{display:flex;flex-wrap:wrap;gap:16px 30px;padding:16px 0;margin:28px 0 38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}.ontology-snapshot strong{color:var(--blue)}.ontology-diagram{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:4px}.ontology-diagram svg{display:block;width:100%;min-width:800px}.loop-node{cursor:pointer}.loop-node rect{fill:#f8fafc;stroke:#b9c5d4;stroke-width:1.4}.loop-node:hover rect,.loop-node:focus rect{fill:#edf3ff;stroke:var(--blue);stroke-width:2}.loop-node[aria-pressed=true] rect{fill:#e9f1ff;stroke:var(--blue);stroke-width:2}.loop-node:focus-visible{outline:none}.loop-title{font:600 18px system-ui,sans-serif;fill:var(--ink)}.loop-copy{font:13px system-ui,sans-serif;fill:var(--muted)}.loop-hint{font:11px system-ui,sans-serif;fill:var(--blue)}.loop-lane{font:11px ui-monospace,monospace;letter-spacing:1.8px;fill:var(--muted)}.loop-arrow{fill:none;stroke:var(--blue);stroke-width:1.8}#loop-tip path{fill:var(--blue)}.ontology-step-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.ontology-step-buttons button{font-size:12px;background:white;color:var(--muted);border-color:var(--line);border-radius:3px;padding:8px 10px}.ontology-step-buttons button[aria-pressed=true]{background:var(--blue);color:white;border-color:var(--blue)}.ontology-detail{min-height:210px;padding:24px 28px;border-left:3px solid var(--blue);background:#edf2f9}.ontology-detail .eyebrow{margin-bottom:10px}.ontology-detail p:not(.eyebrow){max-width:880px;color:var(--muted)}.ontology-observability{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;padding:28px;margin-top:28px;border:1px dashed #8c9aae;border-radius:4px}.ontology-observability p{font-size:14px;color:var(--muted)}.ontology-observability strong{color:var(--ink)}.ontology-chain{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0}.ontology-chain span{padding:9px 14px;background:white;border:1px solid var(--line);font-size:14px}.ontology-chain b{color:var(--blue)}.ontology-boundaries p{font-size:14px;color:var(--muted)}@media(max-width:900px){header{gap:20px;flex-wrap:wrap}nav{flex-wrap:wrap;gap:12px 18px}.ontology-observability{grid-template-columns:1fr;gap:8px}}@media(max-width:700px){.ontology-detail{padding:20px;min-height:0}.ontology-observability{padding:20px}.ontology-snapshot{gap:10px 18px}.ontology-chain{gap:7px}.ontology-chain span{font-size:12px;padding:7px 9px}}

.traffic-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-bottom:20px}.traffic-stats strong{display:block;font-size:36px;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums}.traffic-stats span{font-size:13px;color:var(--muted)}.traffic-bar{fill:var(--blue);opacity:.8}.traffic-line{fill:none;stroke:#c05621;stroke-width:2.5}.traffic-unique{fill:#c05621;stroke:white;stroke-width:1.2}.traffic-figure{margin-bottom:15px}.traffic-data summary{cursor:pointer;color:var(--blue);font-size:14px;margin:16px 0}@media(max-width:700px){.traffic-stats{grid-template-columns:1fr;gap:16px}.traffic-stats strong{font-size:30px}}
