:root{--lab-ink:#1e211f;--lab-paper:#f2eee4;--lab-panel:#faf7ef;--lab-rule:#b7ad98;--lab-accent:#8b2f23;--lab-good:#255f4b;--lab-warn:#875f17;--lab-muted:#67645d}.lab-body{margin:0;background:var(--lab-paper);color:var(--lab-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.lab-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:.85rem clamp(1rem,4vw,4rem);border-bottom:1px solid var(--lab-rule);background:rgba(242,238,228,.96);backdrop-filter:blur(10px)}.lab-brand{display:flex;align-items:center;gap:.75rem;color:inherit;text-decoration:none;font-weight:800;letter-spacing:.07em;font-size:.82rem}.lab-header nav{display:flex;gap:1rem;flex-wrap:wrap}.lab-header nav a,.lab-footer a{color:inherit;text-decoration:none;font-size:.82rem;font-weight:700}.lab-header nav a:hover,.lab-header nav a:focus-visible,.lab-footer a:hover,.lab-footer a:focus-visible{text-decoration:underline;text-underline-offset:.25em}.lab-shell{width:min(1180px,calc(100% - 2rem));margin:0 auto}.lab-hero{padding:clamp(4rem,10vw,8rem) 0 3rem;max-width:950px}.lab-hero h1{font-size:clamp(2.7rem,7vw,6.6rem);line-height:.92;letter-spacing:-.055em;margin:.45rem 0 1.5rem;max-width:1050px}.lab-deck{max-width:760px;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.55}.lab-state{display:inline-flex;gap:.6rem;align-items:center;margin-top:1.25rem;padding:.55rem .8rem;border:1px solid var(--lab-rule);background:var(--lab-panel);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.lab-state[data-state="unscored"]{border-left:5px solid var(--lab-warn)}.lab-state[data-state="scored"]{border-left:5px solid var(--lab-good)}.lab-principle{display:grid;grid-template-columns:120px 1fr;gap:1rem;border-top:2px solid var(--lab-ink);border-bottom:1px solid var(--lab-rule);padding:1rem 0}.lab-principle span{font-size:.72rem;font-weight:900;letter-spacing:.14em}.lab-principle strong{font-size:clamp(1rem,2vw,1.25rem)}.lab-section{padding:4.5rem 0;border-bottom:1px solid var(--lab-rule);scroll-margin-top:5rem}.lab-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.5fr);gap:2rem;align-items:end;margin-bottom:1.5rem}.lab-section-head h2{font-size:clamp(2rem,4vw,3.8rem);letter-spacing:-.045em;margin:.25rem 0 0}.lab-section-head p{margin:0;color:var(--lab-muted);line-height:1.55}.eyebrow{font-size:.7rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.cycle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.lab-card{border:1px solid var(--lab-rule);background:var(--lab-panel);padding:clamp(1rem,2.5vw,1.6rem);min-width:0}.cycle-card{position:relative}.cycle-top{display:flex;justify-content:space-between;align-items:start;gap:1rem}.cycle-year{font-size:clamp(2.4rem,5vw,4.6rem);font-weight:850;letter-spacing:-.05em}.status-pill{display:inline-flex;padding:.35rem .55rem;border:1px solid currentColor;font-size:.68rem;letter-spacing:.1em;font-weight:900;text-transform:uppercase}.status-pill.unavailable,.status-pill.partial{color:var(--lab-warn)}.status-pill.scored{color:var(--lab-good)}.checkpoint-rail{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;margin:1.2rem 0}.checkpoint{padding:.65rem .3rem;text-align:center;border-top:4px solid var(--lab-rule);background:#eee8dc}.checkpoint.ok{border-color:var(--lab-good)}.checkpoint strong{display:block;font-size:.95rem}.checkpoint span{font-size:.65rem;color:var(--lab-muted)}.blockers{margin:1rem 0 0;padding:0;list-style:none}.blockers li{padding:.35rem 0;border-top:1px dotted var(--lab-rule);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;overflow-wrap:anywhere}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.metric{border-top:3px solid var(--lab-ink);padding-top:.7rem}.metric span{display:block;color:var(--lab-muted);font-size:.72rem}.metric strong{display:block;font-size:1.7rem;margin-top:.15rem}.cal-chart{width:100%;max-width:650px;height:auto;margin:1rem auto;display:block}.cal-chart text{font-family:inherit;fill:var(--lab-ink);font-size:11px}.cal-chart .grid{stroke:#c8beaa;stroke-width:1}.cal-chart .ideal{stroke:var(--lab-muted);stroke-dasharray:5 5;stroke-width:1.5}.cal-chart .series{fill:none;stroke:var(--lab-accent);stroke-width:3}.cal-chart .point{fill:var(--lab-panel);stroke:var(--lab-accent);stroke-width:3}.failure-table{width:100%;border-collapse:collapse;font-size:.86rem}.failure-table th,.failure-table td{padding:.65rem .45rem;border-bottom:1px solid var(--lab-rule);text-align:left}.failure-table th{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase}.guard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.guard{border-left:4px solid var(--lab-good);background:var(--lab-panel);padding:1rem;line-height:1.45}.guard::before{content:"GATE";display:block;font-size:.62rem;font-weight:900;letter-spacing:.12em;margin-bottom:.35rem}.contract-card dl{display:grid;grid-template-columns:minmax(150px,.35fr) 1fr;gap:.45rem 1rem}.contract-card dt{font-weight:800}.contract-card dd{margin:0;overflow-wrap:anywhere}.lab-footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.5rem clamp(1rem,4vw,4rem);font-size:.78rem}.empty-state{padding:2rem 0;max-width:720px}.empty-state strong{font-size:1.25rem}.muted{color:var(--lab-muted)}.skeleton{min-height:180px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.lab-header{align-items:flex-start;flex-direction:column;gap:.65rem}.lab-header nav{gap:.75rem}.lab-shell{width:min(100% - 1.25rem,1180px)}.lab-section-head{grid-template-columns:1fr;gap:.6rem}.cycle-grid,.guard-grid,.metric-grid{grid-template-columns:1fr}.lab-principle{grid-template-columns:1fr}.checkpoint-rail{grid-template-columns:repeat(5,minmax(44px,1fr));overflow-x:auto}.contract-card dl{grid-template-columns:1fr;gap:.15rem}.contract-card dd{margin-bottom:.7rem}.failure-table{font-size:.75rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
