.lab-page{--lab-amber:#dfc18b;--lab-muted:#a5b9ac;--lab-line:#334b3c}
.lab-page button,.lab-page select,.lab-page input{font:inherit}
.lab-page button:disabled{opacity:.5;cursor:wait}
.lab-page select:focus-visible,.lab-page summary:focus-visible{outline:2px solid var(--lab-amber);outline-offset:4px}
.lab-intro{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center;padding:48px 0 32px}
.lab-intro .eyebrow,.lab-section-heading .eyebrow,.lab-boundary .eyebrow{font-size:10px;letter-spacing:.14em;color:var(--accent)}
.lab-intro h1{font-size:clamp(36px,4.25vw,62px);line-height:1.12;letter-spacing:-.055em;margin:18px 0}
.lab-intro h1 em{color:var(--lab-amber)}
.lab-intro-copy{max-width:440px;margin-left:auto}
.lab-intro-copy p{font-size:15px;line-height:1.85;color:#b7c9be;margin:0 0 22px}
.lab-badge{display:inline-block;padding:8px 10px;border:1px solid #6b5e3f;color:var(--lab-amber);font:9px/1.5 var(--mono);letter-spacing:.08em;background:#252419}
.lab-page .sky-tabs{margin-bottom:29px}.lab-page .sky-tabs a[aria-current]{border-color:var(--lab-amber);color:var(--lab-amber)}
.lab-scenario-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;color:var(--lab-muted);font:10px/1.6 var(--mono)}
.lab-scenario-heading .eyebrow{font-size:9px;letter-spacing:.1em}
.lab-scenarios{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.lab-scenario{background:#101c15;border:1px solid var(--lab-line);border-radius:3px;padding:14px 12px;text-align:left;color:#b5c6ba;min-height:65px;font:11px/1.5 var(--mono)!important;transition:border-color .15s,background .15s}
.lab-scenario span{display:block;font:9px/1.2 var(--mono);color:#6f907b;margin-bottom:8px}
.lab-scenario:hover{border-color:#88aa92;background:#192a1f}.lab-scenario[aria-pressed=true]{background:#29291d;border-color:#a58e5c;color:#f0dbb0}.lab-scenario[aria-pressed=true] span{color:#c2a76f}
.lab-scenario-summary{display:flex;align-items:baseline;gap:28px;padding:21px 0 18px}.lab-scenario-summary h2{font:17px/1.4 var(--mono);margin:0;color:#dfe8df;min-width:230px}.lab-scenario-summary p{font-size:12px;line-height:1.6;color:var(--lab-muted);margin:0}
.lab-console{border:1px solid #4c5b43;border-radius:4px;background:#101a14;overflow:hidden;box-shadow:0 20px 65px #0003}
.lab-statusbar{min-height:54px;background:#20261a;border-bottom:1px solid #49503b;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px;font:10px/1.5 var(--mono)}
.lab-statusbar p{display:flex;gap:10px;align-items:center;margin:0}.lab-statusbar p>strong{font-weight:400;color:#e7d8b0}.lab-dot{width:6px;height:6px;background:var(--lab-amber);border-radius:50%}
.lab-status-tag{font-size:8px;color:#bba878;border:1px solid #665b3c;padding:2px 5px;letter-spacing:.06em}.lab-statusbar>div{display:flex;gap:24px;color:#99ad9d;font-size:9px}.lab-statusbar>div strong{color:#d8e7dc;font-size:13px;font-weight:400;margin-left:7px}
.lab-console[data-state=stale] .lab-statusbar,.lab-console[data-state=error] .lab-statusbar{background:#35251f;border-color:#795b42}.lab-console[data-state=stale] .lab-dot,.lab-console[data-state=error] .lab-dot{background:#f1a481}
.lab-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:500px}
.lab-map-wrap{position:relative;min-height:500px;background:#0d1c17;overflow:hidden}.lab-map{height:100%;position:absolute;inset:0}
.lab-map-caption{position:absolute;z-index:2;top:18px;left:18px;pointer-events:none;background:#0c1713e8;padding:12px;border:1px solid #3b5241;border-radius:3px}.lab-map-caption>span{display:block;font:9px/1.6 var(--mono);color:#b4c6bb}.lab-map-caption>span+span{font-size:8px;color:#93a697;margin-top:4px}
.lab-map-stamp{position:absolute;bottom:32px;left:18px;z-index:2;border-left:2px solid var(--lab-amber);background:#1c231ce8;color:var(--lab-amber);padding:9px 12px;font:10px/1.6 var(--mono);pointer-events:none}.lab-map-stamp span{display:block;font-size:8px;color:#b8bea5}
.lab-reset{position:absolute;right:12px;bottom:38px;z-index:2;background:#13241bed;color:#d3dfd5;border:1px solid #4b6753;border-radius:3px;padding:9px;font-size:10px!important}
.lab-map-message{position:absolute;left:10%;right:10%;top:42%;z-index:3;background:#102219f2;border:1px solid #64795d;color:#d8e7dc;text-align:center;font-size:13px;padding:22px;line-height:1.7}
.lab-map .maplibregl-ctrl-attrib{background:#0c1914e8!important;color:#92aa9b;font-size:9px}.lab-map .maplibregl-ctrl-attrib a{color:#b1c3b7}.lab-map .maplibregl-ctrl-group{background:#1c2c21;border:1px solid #536853;box-shadow:none}.lab-map .maplibregl-ctrl-group button{border-color:#405142}.lab-map .maplibregl-ctrl-icon{filter:invert(.85)}
.lab-inspector{border-left:1px solid var(--lab-line);padding:20px 21px;background:#121f17}.lab-inspector-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.lab-inspector-top .eyebrow{font-size:8px;color:#9fb5a5;letter-spacing:.08em}.lab-sim-indicator{font:9px/1 var(--mono);border:1px solid #736640;padding:4px;color:var(--lab-amber)}
.lab-flight-picker{display:flex;flex-wrap:wrap;gap:6px;min-height:36px;margin:22px 0 18px}.lab-flight-picker button{border:1px solid #3b5743;background:transparent;color:#a9c3b0;padding:8px;font-size:10px!important;border-radius:3px}.lab-flight-picker button[aria-pressed=true]{background:#304431;color:#f3dfb4;border-color:#a38e62}
.lab-inspector h3{font:29px/1.15 VT323,var(--mono);letter-spacing:.02em;margin:0 0 8px;color:#e6d5ae}.lab-inspector-caption{color:#91a99b;font-size:11px;line-height:1.7;min-height:36px;margin:0 0 20px}
.lab-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px 12px;margin:0}.lab-fields dt{color:#8fab96;font:8px/1.6 var(--mono);margin-bottom:5px}.lab-fields dd{margin:0;color:#cce0d1;font:12px/1.5 var(--mono)}
.lab-age-block{margin-top:25px;padding-top:20px;border-top:1px solid #334c3c}.lab-age-block>div{display:flex;justify-content:space-between;color:#afc2b5;font:9px/1.5 var(--mono)}.lab-age-block meter{width:100%;height:9px;margin:9px 0;appearance:none;background:#304337;border:0;border-radius:0}.lab-age-block meter::-webkit-meter-bar{background:#304337;border:0;border-radius:0}.lab-age-block meter::-webkit-meter-optimum-value{background:#d9be85}.lab-age-block p,.lab-empty-note{color:#98b09f;font-size:10px;line-height:1.75;margin:6px 0 0}.lab-empty-note{padding:14px;border:1px solid #8a6648;color:#e4be9b}
.lab-transport{display:flex;align-items:center;gap:13px;padding:17px 20px;border-top:1px solid var(--lab-line);background:#142119}.lab-play{min-width:150px;min-height:44px;padding:11px 15px;background:#dbc08b;color:#172319;border:1px solid #e6d1a5;border-radius:3px;font:11px/1.3 var(--mono)!important}.lab-play:hover{background:#f0d9ac}.lab-restart{background:transparent;color:#b1c5b7;border:1px solid #3d5745;width:42px;height:44px;border-radius:3px;font-size:20px!important}
.lab-scrubber{flex:1;min-width:60px;padding-inline:10px}.lab-scrubber>div{display:flex;justify-content:space-between;gap:10px;font:8px/1.5 var(--mono);color:#9bb5a4}.lab-scrubber output{color:#d7dfc7;white-space:nowrap}.lab-scrubber input{display:block;width:100%;margin:9px 0 0;height:14px;accent-color:#dfc18b;cursor:pointer}.lab-speed{display:flex;align-items:center;gap:8px;font:9px/1.5 var(--mono);color:#96af9e}.lab-speed select{padding:8px 4px;background:#15281c;border:1px solid #4a634f;color:#dbe6db;border-radius:3px;font-size:11px}
.lab-checkpoints{border-bottom:1px solid var(--lab-line);display:flex;flex-wrap:wrap;gap:6px;padding:0 20px 16px;background:#142119}.lab-checkpoints button{background:transparent;border:1px solid #3b5141;color:#9fb3a7;padding:7px 10px;border-radius:3px;font:9px/1.5 var(--mono)!important;min-height:34px}.lab-checkpoints button[aria-current=true]{border-color:#c1a66f;color:#e4cf9f}.lab-checkpoints button span{color:#d7c398;margin-right:8px}
.lab-reading{display:grid;grid-template-columns:180px 1fr 1.6fr;gap:28px;padding:24px 0;border-bottom:1px solid var(--lab-line);align-items:start;min-height:115px}.lab-reading .eyebrow{color:#a4bca9;font-size:8px;letter-spacing:.08em;margin:6px 0}.lab-reading h3{font:16px/1.5 var(--mono);color:#e6d2a8;margin:0}.lab-reading p{color:#afc3b5;font-size:12px;line-height:1.9;margin:0}
.lab-section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:80px;margin:64px 0 30px}.lab-section-heading h2,.lab-boundary h2{font:32px/1.3 var(--mono);letter-spacing:-.05em;margin:18px 0 0}.lab-section-heading p:last-child,.lab-boundary p{font-size:13px;line-height:1.9;color:#b0c4b7;margin:0}.lab-pipeline{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);padding:0;border:1px solid var(--lab-line);margin:0}.lab-pipeline li{padding:23px;position:relative;border-right:1px solid var(--lab-line)}.lab-pipeline li:last-child{border-right:0}.lab-step{font:10px/1.4 var(--mono);color:#7f9d88}.lab-pipeline h3{font:20px/1.3 VT323,var(--mono);margin:12px 0;color:#deceb0}.lab-pipeline p{font-size:11px;line-height:1.6;color:#c4d5c9;min-height:36px;margin-bottom:12px}.lab-pipeline small{color:#88a291;font:8px/1.5 var(--mono)}
.lab-payload{margin-top:20px;border:1px solid var(--lab-line);padding:0 22px}.lab-payload summary{font:12px/1.6 var(--mono);padding:19px 0;cursor:pointer;color:#bdcfbf;list-style:none;display:flex;justify-content:space-between;gap:16px}.lab-payload summary span{color:var(--lab-amber);font-size:19px}.lab-payload[open] summary span{transform:rotate(45deg)}.lab-payload>p{font-size:12px;line-height:1.8;color:#a5bbad;max-width:850px}.lab-json-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lab-json-grid>div{min-width:0}.lab-json-grid h3{display:flex;justify-content:space-between;gap:12px;font:11px/1.5 var(--mono);color:#ccdcd0}.lab-json-grid h3 span{font-size:8px;color:#ad9a70}.lab-json-grid pre{overflow:auto;max-height:330px;padding:18px;border:1px solid #2c4434;background:#09130d;color:#a9c7b3;font:10px/1.8 var(--mono);tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere}
.lab-boundary{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin:65px 0 35px;border-top:1px solid var(--lab-line);padding-top:40px}.lab-boundary h2{font-size:27px}.lab-boundary p{margin-bottom:18px}.lab-boundary .quiet-link{font:11px/1.8 var(--mono)}
.lab-marker{height:50px;width:50px;border:0;background:transparent;padding:6px;color:#c5dfc4;position:relative;filter:drop-shadow(0 2px 3px #000a)}.lab-marker svg{height:30px;width:30px;fill:currentColor;stroke:#102117;stroke-width:1}.lab-marker span{position:absolute;top:39px;left:50%;transform:translateX(-50%);background:#0a1a13ec;color:#d1ddc6;border:1px solid #42604a;border-radius:2px;padding:3px 5px;font:8px/1.2 var(--mono);white-space:nowrap;pointer-events:none}.lab-marker[aria-pressed=true]{color:#f0cf91}.lab-marker[aria-pressed=true] svg{filter:drop-shadow(0 0 6px #dec48a75)}.lab-marker[aria-pressed=true] span{border-color:#bca169;color:#ecd2a3}
@media(max-width:1100px){.lab-intro{gap:35px}.lab-workspace{grid-template-columns:minmax(0,1fr) 255px}.lab-inspector{padding:18px 16px}.lab-scenario{font-size:10px!important;padding:12px 9px}.lab-reading{grid-template-columns:140px 1fr 1.4fr;gap:18px}.lab-section-heading,.lab-boundary{gap:35px}}
@media(max-width:800px){.lab-intro{grid-template-columns:1fr;gap:8px;padding-top:28px}.lab-intro-copy{margin:0;max-width:600px}.lab-intro h1{font-size:44px}.lab-intro-copy p{font-size:14px}.lab-scenarios{grid-template-columns:repeat(3,1fr)}.lab-scenario-heading>span:last-child{display:none}.lab-scenario-summary{display:block}.lab-scenario-summary p{margin-top:8px}.lab-workspace{grid-template-columns:minmax(0,1fr)}.lab-map-wrap{min-height:400px}.lab-inspector{border-left:0;border-top:1px solid var(--lab-line)}.lab-inspector-top{margin-bottom:14px}.lab-flight-picker{margin:0 0 12px}.lab-inspector-caption{min-height:0}.lab-fields{grid-template-columns:repeat(3,1fr);gap:16px}.lab-age-block{margin-top:18px;padding-top:14px}.lab-reading{grid-template-columns:1fr;gap:9px;min-height:0}.lab-section-heading,.lab-boundary{grid-template-columns:1fr;gap:20px}.lab-pipeline{grid-template-columns:1fr 1fr}.lab-pipeline li:nth-child(2){border-right:0}.lab-pipeline li:nth-child(-n+2){border-bottom:1px solid var(--lab-line)}.lab-transport{flex-wrap:wrap;padding:14px}.lab-scrubber{order:4;flex-basis:100%;padding:8px 0 0}.lab-speed{margin-left:auto}.lab-checkpoints{padding:0 14px 14px}.lab-json-grid{grid-template-columns:1fr}.lab-section-heading{margin-top:44px}.lab-payload{padding:0 15px}}
@media(max-width:440px){.lab-intro h1{font-size:36px}.lab-intro-copy p{font-size:13px}.lab-page .sky-band{display:none}.lab-page .sky-tabs nav{gap:23px}.lab-page .sky-tabs a{font-size:10px}.lab-statusbar{flex-direction:column;align-items:flex-start;gap:10px;padding:13px}.lab-statusbar>div{gap:18px;justify-content:space-between;width:100%;font-size:8px}.lab-statusbar>div strong{font-size:11px;margin-left:4px}.lab-map-wrap{min-height:370px}.lab-map-caption{top:12px;left:12px;max-width:215px;padding:9px}.lab-map-caption>span{font-size:8px}.lab-map-stamp{left:12px;bottom:35px;font-size:8px;padding:7px 9px}.lab-map-stamp span{font-size:7px}.lab-reset{right:10px;bottom:90px;font-size:9px!important}.lab-fields{grid-template-columns:1fr 1fr}.lab-play{min-width:134px;font-size:10px!important}.lab-speed{font-size:8px;gap:5px}.lab-scenario{padding:10px 8px;font-size:9px!important;min-height:63px}.lab-pipeline li{padding:17px}.lab-pipeline p{font-size:10px}.lab-section-heading h2{font-size:27px}.lab-boundary h2{font-size:24px}.lab-payload summary{font-size:10px}.lab-map .maplibregl-ctrl-attrib{font-size:7px}}
@media(prefers-reduced-motion:reduce){.lab-page *{scroll-behavior:auto;transition:none!important}}
/* Give the experiment controls a full touch target on phones and tablets. */
@media(max-width:1024px), (pointer:coarse){
  .lab-reset,.lab-flight-picker button,.lab-checkpoints button{min-height:44px}
  .lab-restart{width:44px;flex-shrink:0}
  .lab-speed select{min-height:44px;min-width:44px}
  .lab-scrubber input{height:44px;margin-top:0}
}
@media(max-width:440px){
  .lab-transport{display:grid;grid-template-columns:minmax(0,1fr) 44px auto;gap:10px 8px}
  .lab-play{min-width:0;padding-inline:8px}
  .lab-speed{margin-left:0}
  .lab-scrubber{grid-column:1/-1}
}
