@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{color-scheme:dark;--ink:#07131c;--ink2:#0d202b;--pane:#102630ed;--pane2:#132d38;--stroke:#6e9aa72b;--mint:#a8f4d1;--mintdeep:#56caaa;--cream:#f3f6ed;--muted:#a9b9bf;--coral:#ff987e;--lavender:#cdcaff;--reveal:0;--zoom:1;font-family:'DM Sans',Inter,ui-sans-serif,system-ui,sans-serif;background:var(--ink);color:var(--cream);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;background:var(--ink)}button,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,textarea:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:2px solid var(--mint);outline-offset:4px}a{color:inherit}em{font-style:normal;color:var(--mint)}.skip-link{position:fixed;z-index:100;top:-80px;left:12px;background:var(--mint);color:var(--ink);padding:10px 14px}.skip-link:focus{top:12px}

.city-stage{position:fixed;z-index:0;inset:0;background:radial-gradient(ellipse at 62% 30%,#274557 0%,#132936 36%,#081720 76%),#07131c;overflow:hidden;pointer-events:none}.city-stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0}.sky-glow{position:absolute;inset:0;background:radial-gradient(circle at 68% 17%,#b7dfe629 0,transparent 32%),radial-gradient(circle at 7% 91%,#ff987e13,transparent 35%);mix-blend-mode:screen}.scene-grain{position:absolute;inset:0;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}.city-haze{position:absolute;inset:0;background:linear-gradient(90deg,#07131caa,transparent 32%,transparent 78%,#07131c77),linear-gradient(0deg,#07131c 0%,transparent 28%,transparent 80%,#07131c36)}
.cloud-field{position:fixed;z-index:2;inset:0;pointer-events:none;opacity:calc(.82 - var(--reveal)*.82);filter:blur(1px);transition:opacity .1s linear}.cloud{position:absolute;display:block;border-radius:50%;background:radial-gradient(ellipse at 48% 52%,#c8d8e4ee 0%,#9bb4cdb9 34%,#6588a37a 55%,transparent 72%);filter:blur(31px);mix-blend-mode:screen;will-change:transform}.cloud--a{width:62vw;height:46vw;min-width:560px;min-height:370px;top:-18%;left:-22%;transform:translate3d(calc(var(--reveal)*-14vw),calc(var(--reveal)*-18vh),0)}.cloud--b{width:63vw;height:49vw;min-width:600px;min-height:400px;top:-20%;right:-24%;transform:translate3d(calc(var(--reveal)*16vw),calc(var(--reveal)*-20vh),0)}.cloud--c{width:57vw;height:39vw;min-width:550px;min-height:380px;top:28%;left:-23%;transform:translate3d(calc(var(--reveal)*-21vw),calc(var(--reveal)*5vh),0)}.cloud--d{width:54vw;height:43vw;min-width:580px;min-height:390px;top:20%;right:-23%;transform:translate3d(calc(var(--reveal)*18vw),calc(var(--reveal)*-5vh),0)}.cloud--e{width:70vw;height:42vw;min-width:720px;min-height:400px;bottom:-31%;left:-12%;transform:translate3d(calc(var(--reveal)*-9vw),calc(var(--reveal)*20vh),0)}.cloud--f{width:63vw;height:43vw;min-width:660px;min-height:400px;bottom:-31%;right:-15%;transform:translate3d(calc(var(--reveal)*14vw),calc(var(--reveal)*21vh),0)}

.site-header{position:fixed;z-index:40;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;height:78px;padding:0 clamp(22px,3vw,56px);border-bottom:1px solid #d4e4e716;background:linear-gradient(#07131cab,#07131c06);backdrop-filter:blur(9px)}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;white-space:nowrap}.brand-word{font:700 20px/1 'Space Grotesk',sans-serif;letter-spacing:-1.4px}.brand-word small{font:700 8px/1 'Space Grotesk',sans-serif;letter-spacing:1.8px;color:var(--mint);display:inline-block;margin-left:8px;vertical-align:top;padding-top:3px}.header-action{border:1px solid #b8e9d85e;border-radius:50px;background:#0a2029bd;color:var(--cream);padding:11px 16px;font-size:11px;font-weight:700;letter-spacing:.3px;transition:.25s}.header-action:hover{background:var(--mint);color:var(--ink)}.header-action span{margin-left:18px;color:var(--mint)}.header-action:hover span{color:var(--ink)}

main{position:relative;z-index:4}.intro-chapter{height:340vh;min-height:2300px;position:relative}.intro-sticky{position:sticky;top:0;height:100vh;min-height:660px;overflow:hidden}.city-coordinates{position:absolute;right:3vw;top:18vh;display:grid;gap:5px;text-align:right;color:#dde6e5a1;font-size:9px;letter-spacing:1.6px}.intro-message{position:absolute;left:clamp(24px,7vw,126px);top:23%;width:min(700px,63vw);opacity:clamp(0,calc(1 - var(--reveal)*3.4),1);transform:translateY(calc(var(--reveal)*-90px));transition:transform .09s linear;pointer-events:auto}.intro-message h1,.composer-heading h2{font:500 clamp(54px,7vw,118px)/.99 'Space Grotesk',sans-serif;letter-spacing:-.079em;margin:25px 0 22px;text-wrap:balance}.intro-message h1 em,.composer-heading h2 em{font-weight:400;font-family:Georgia,serif;font-style:italic;letter-spacing:-.085em}.intro-message p{font-size:clamp(15px,1.25vw,18px);color:#d0dfe0;line-height:1.6;max-width:430px}.composer-scene{position:absolute;z-index:6;left:50%;top:49%;transform:translate(-50%,calc(-43% + (1 - var(--reveal))*90px));width:min(780px,calc(100vw - 48px));opacity:clamp(0,calc((var(--reveal) - .3)*2.6),1);pointer-events:none;transition:transform .12s linear}.composer-scene.is-ready{pointer-events:auto}.composer-heading{text-align:center}.composer-heading h2{font-size:clamp(44px,5vw,72px);margin:17px 0 15px;line-height:1.04}.composer-heading p{font-size:14px;line-height:1.6;color:#c0d0d4;margin:0 auto 29px;max-width:520px}.hypothesis-card{padding:18px 18px 12px;border:1px solid #b5dfd76b;border-radius:18px;background:linear-gradient(135deg,#17323de8,#102832ee);box-shadow:0 26px 90px #0009,0 0 55px #8affd51a;backdrop-filter:blur(18px)}.hypothesis-card>label{font-size:9px;color:var(--mint);letter-spacing:1.7px;font-weight:700;margin-left:6px}.composer-input-row{display:flex;align-items:center;gap:12px;margin-top:7px}.composer-input-row textarea{min-height:77px;flex:1;resize:vertical;max-height:190px;color:var(--cream);background:transparent;border:0;outline:0;padding:12px 7px;font:500 clamp(18px,2vw,25px)/1.35 'Space Grotesk',sans-serif;letter-spacing:-.6px}.composer-input-row textarea::placeholder{color:#a8bfc6aa}.run-button{align-self:stretch;display:flex;align-items:center;gap:16px;border:0;border-radius:11px;padding:0 15px 0 23px;background:var(--mint);color:#0a242a;font-size:12px;font-weight:700;white-space:nowrap;transition:.2s}.run-button:hover{background:#d5ffeb;transform:translateY(-2px)}.run-arrow{font-size:19px}.scenario-picks{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;flex-wrap:wrap}.scenario-picks>span{font-size:9px;color:#acbcc1;letter-spacing:1.5px;margin-right:5px;font-weight:700}.scenario-chip{background:#122b35c9;border:1px solid #a8f4d14b;border-radius:30px;color:var(--cream);padding:10px 12px;display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;transition:.2s;backdrop-filter:blur(8px)}.scenario-chip:hover{background:#2d5a58;border-color:var(--mint);transform:translateY(-2px)}.chip-icon{color:var(--mint);font-size:14px}.chip-end{color:#9aadb3;font-size:9px;border-left:1px solid #adcacb40;padding-left:9px}.scroll-cue{position:absolute;left:clamp(24px,3vw,56px);bottom:33px;display:flex;align-items:center;gap:12px;font-size:9px;font-weight:700;letter-spacing:1.6px;color:#cfdfdeaa}.scroll-cue span:last-child{margin-left:22px;color:var(--mint)}.scroll-track{width:23px;height:37px;border:1px solid #abc7cbb3;border-radius:20px;position:relative}.scroll-track span{position:absolute;top:6px;left:10px;width:2px;height:8px;background:var(--mint);border-radius:2px;animation:scrollMove 1.8s infinite}.scene-credit{position:absolute;right:3vw;bottom:36px;font:italic 14px Georgia,serif;color:#cdd9dbab}.scene-credit span{color:var(--mint);margin-left:12px}

.lab-shell{min-height:100vh;padding:96px clamp(22px,3vw,56px) 36px;background:linear-gradient(#07131cce,#07131c6b 11%,#07131c9c 80%,#07131cf0);position:relative;z-index:8}.lab-shell[hidden],.investigation[hidden]{display:none}.breadcrumb-star{font-size:18px;color:var(--mint)}.lab-layout{display:grid;grid-template-columns:minmax(245px,22%) minmax(430px,1fr) minmax(258px,21%);gap:18px;margin-top:20px;min-height:min(690px,calc(100vh - 205px))}
.simulation-viewport{position:relative;overflow:hidden;border:1px solid #b8d0ca3b;border-radius:13px;background:linear-gradient(145deg,#192e3e8c,#0d1f2b3b);min-height:540px;box-shadow:inset 0 0 70px #05131e70,0 20px 65px #0003}.simulation-viewport::before,.simulation-viewport::after{position:absolute;content:"";width:18px;height:18px;border-top:1px solid var(--mint);top:10px}.simulation-viewport::before{left:10px;border-left:1px solid var(--mint)}.simulation-viewport::after{right:10px;border-right:1px solid var(--mint)}.viewport-bottom{position:absolute;bottom:18px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;z-index:4}.view-toggle{display:flex;gap:2px;background:#0b212af0;padding:4px;border:1px solid #a8f4d13b;border-radius:40px}.view-toggle button{border:0;background:transparent;color:#aac1c4;border-radius:30px;padding:8px 14px;font-size:10px;font-weight:700}.view-toggle button.selected{background:var(--mint);color:#0c2a2a}
.bloor-map-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.bloor-map-canvas[hidden]{display:none}
.simulation-viewport.has-mapped-world{position:sticky;top:80px;align-self:start;height:clamp(540px,74vh,760px);min-height:0}
@media(max-width:760px){.simulation-viewport.has-mapped-world{position:relative;top:auto;height:52vh;min-height:390px}}

.text-link{margin-top:18px;padding:0;color:var(--mint);background:transparent;border:0;font-size:11px;font-weight:700;text-align:left}.text-link span{margin-left:10px}

.investigation{position:fixed;z-index:50;inset:0;background:#07131cbe;display:grid;place-items:center;backdrop-filter:blur(18px);padding:22px}.investigation-card{width:min(570px,100%);border:1px solid #a8f4d165;border-radius:17px;background:radial-gradient(circle at 90% 0%,#30645585,transparent 38%),#102934;box-shadow:0 30px 100px #0009;padding:28px 32px}.investigation-top{display:flex;align-items:center;gap:10px;color:var(--mint);font-size:9px;font-weight:700;letter-spacing:1.6px}.investigation-orbit{font-size:23px;animation:spin 5s linear infinite}.investigation-top span:last-child{margin-left:auto;color:#b5d4c8}.investigation h2{font:500 39px/1.1 'Space Grotesk',sans-serif;letter-spacing:-1.5px;margin:35px 0 12px}.investigation p{font-size:13px;line-height:1.6;color:#b6cacd}.investigation-progress{height:3px;background:#759f9a54;border-radius:3px;margin:30px 0 22px}.investigation-progress span{display:block;width:25%;height:100%;background:var(--mint);transition:width .6s}.investigation ol{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.investigation li{color:#8da7aa;font-size:10px;line-height:1.35}.investigation li.complete{color:var(--mint)}.investigation-card>small{display:block;margin-top:22px;color:#7c9da2;font-size:9px;letter-spacing:.4px}

@keyframes scrollMove{50%{transform:translateY(11px);opacity:.4}}@keyframes ring{50%{box-shadow:0 0 0 12px #a8f4d10b,0 0 22px #a8f4d181}}@keyframes dash{to{stroke-dashoffset:-180}}@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:1160px){.lab-layout{grid-template-columns:minmax(210px,25%) 1fr;min-height:auto}.text-link{display:none}.simulation-viewport{min-height:560px}}
@media(max-width:760px){.site-header{height:64px;padding:0 20px}.brand-word{font-size:17px}.header-action{font-size:0;padding:10px 12px}.header-action span{font-size:17px;margin:0}.intro-chapter{height:280vh;min-height:1800px}.intro-sticky{min-height:560px}.city-coordinates,.scene-credit{display:none}.intro-message{left:22px;top:24%;width:calc(100vw - 44px)}.intro-message h1{font-size:clamp(53px,10vw,82px)}.intro-message p{font-size:14px;max-width:310px}.composer-scene{width:calc(100vw - 30px);top:47%}.composer-heading h2{font-size:clamp(36px,7.2vw,60px)}.composer-heading p{font-size:12px;max-width:340px;margin-bottom:16px}.hypothesis-card{padding:14px}.composer-input-row{display:block}.composer-input-row textarea{display:block;width:100%;min-height:73px;font-size:19px}.run-button{width:100%;height:43px;justify-content:space-between}.scenario-picks>span{width:100%;text-align:center}.scroll-cue{left:22px;bottom:22px}.lab-shell{padding:78px 15px 24px}.lab-layout{display:flex;flex-direction:column}.simulation-viewport{order:1;min-height:52vh;max-height:610px}.text-link{display:flex}.investigation ol{grid-template-columns:1fr 1fr}.investigation-card{padding:23px}.investigation h2{font-size:31px}}
@media(max-width:420px){.brand-word small{display:none}.composer-heading h2{font-size:36px}.composer-heading p{font-size:11px}.scenario-chip{font-size:10px;padding:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.intro-message h1,.intro-message p,.composer-heading h2,.composer-heading p{text-shadow:0 2px 20px #06151a,0 0 35px #06151ac7}

.view-toggle[hidden]{display:none}

.experiment-ledger{max-width:1480px;margin:18px auto 0;padding:22px;border:1px solid #a8f4d14f;border-radius:14px;background:linear-gradient(145deg,#14343bea,#0a222de8);box-shadow:0 24px 65px #0004;color:#e8f6ed}
.experiment-ledger-head{display:flex;justify-content:space-between;align-items:end;gap:20px;border-bottom:1px solid #a8f4d12e;padding-bottom:17px}
.experiment-ledger-head span,.experiment-path-heading span{color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.13em}
.experiment-ledger-head h3{margin:8px 0 0;font:600 clamp(22px,2.3vw,34px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.05em}
.experiment-ledger-head p{max-width:400px;margin:0;color:#b9d5ca;font-size:12px;line-height:1.55}
.experiment-ledger-choices{display:flex;gap:8px;overflow-x:auto;padding:16px 0}
.experiment-choice{flex:0 0 auto;display:flex;flex-direction:column;align-items:start;gap:6px;min-width:140px;padding:11px 13px;border:1px solid #a8f4d13d;border-radius:9px;background:#102c34;color:#d8efe1;text-align:left;cursor:pointer}
.experiment-choice:hover,.experiment-choice[aria-pressed="true"]{border-color:var(--bike-lemon);background:#29493d}
.experiment-choice strong{font-size:12px}.experiment-choice span{color:#b9d5ca;font-size:10px;text-transform:capitalize}
.experiment-ledger-path{border:1px solid #a8f4d130;border-radius:10px;background:#09232c;padding:16px}
.experiment-path-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid #a8f4d12a}
.experiment-path-heading strong{font:600 16px 'Space Grotesk',sans-serif}
.experiment-path-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:13px}
.experiment-path-column{padding:14px;border:1px solid #a8f4d12e;border-radius:8px;background:#14343b}
.experiment-path-column>span{display:block;margin-bottom:10px;color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.12em}
.experiment-path-column p{display:flex;gap:11px;align-items:baseline;margin:0;padding:8px 0;border-top:1px solid #a8f4d118;color:#e4f2e8;font-size:11px;line-height:1.4}
.experiment-path-column p small{flex:none;color:#8eb5aa;font:500 9px 'JetBrains Mono',monospace}
.experiment-path-caveat{margin:13px 0 0;color:#a9c6bd;font-size:10px;line-height:1.5}

@media(max-width:650px){.experiment-ledger{padding:16px}.experiment-ledger-head{display:block}.experiment-ledger-head p{margin-top:10px}.experiment-path-heading{display:block}.experiment-path-heading span{display:block;margin-top:6px}.experiment-path-columns{grid-template-columns:1fr}}

/* Keep the lab readable while letting the city remain the primary visual. */
.lab-shell{background:linear-gradient(#07131c8c,#07131c29 12%,#07131c46 82%,#07131cb8)}
.simulation-viewport{background:linear-gradient(145deg,#192e3e2b,#0d1f2b12);box-shadow:inset 0 0 45px #05131e2c,0 20px 65px #0003}

.persona-lab{position:relative;z-index:5;padding:clamp(72px,8vw,125px) clamp(18px,5vw,82px);background:radial-gradient(circle at 82% 2%,#254c4b6b,transparent 40%),linear-gradient(155deg,#071720,#102d32 62%,#071720);color:#e7f8ef}

.persona-reaction-head{max-width:1480px;margin-left:auto;margin-right:auto}

.persona-reaction-head span{color:var(--mint);font-size:10px;font-weight:700;letter-spacing:.18em}


.persona-reaction-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-top:75px;margin-bottom:20px}
.persona-reaction-head h3{margin:11px 0 0;font:500 clamp(26px,3vw,42px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.05em}

@media(max-width:760px){.persona-reaction-head{display:block}}

.agents-note{position:fixed;z-index:45;right:16px;bottom:16px;margin:0;padding:8px 12px;border:1px solid #ff987e66;border-radius:30px;background:#0a2029e6;color:#ffb29d;font-size:9px;font-weight:700;letter-spacing:.12em}.agents-note[data-state=live]{border-color:#a8f4d166;color:var(--mint)}
#agentPoll[hidden]{display:none}.agent-poll .persona-reaction-head{margin-top:0}
.agent-poll-split{display:flex;gap:2px;max-width:1480px;min-height:30px;margin:0 auto 12px;border-radius:6px;overflow:hidden;background:#14343b}.agent-poll-split span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:9px 8px;color:#0a242a;font-size:9px;font-weight:700;letter-spacing:.08em}

.bloor-map-actors{pointer-events:auto;cursor:pointer}

.agent-poll{padding-top:clamp(84px,8vw,110px)}.agent-poll-status{display:block;margin-top:10px;color:#b9d5ca!important;letter-spacing:.12em!important}
.agent-poll-filter{display:flex;flex-wrap:wrap;gap:6px;max-width:1480px;min-height:26px;margin:0 auto 12px}.agent-poll-filter button{padding:6px 10px;border:1px solid #a8f4d140;border-radius:20px;background:#10303a;color:#cfe6dc;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.agent-poll-filter button[aria-pressed=true]{background:var(--mint);color:#0a242a}
.agent-poll-cards{display:grid;grid-template-rows:repeat(3,96px);grid-auto-flow:column;grid-auto-columns:220px;gap:8px;max-width:1480px;height:334px;margin:0 auto;padding:6px;border:1px dashed #a8f4d133;border-radius:10px;background:#0b222966;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain}
.agent-card{display:flex;flex-direction:column;height:96px;border:1px solid #a8f4d12e;border-left:4px solid var(--rating);border-radius:7px;background:#10303a;color:#e7f8ef}.agent-card.is-new{animation:agent-card-in .45s cubic-bezier(.2,.8,.2,1) both}@keyframes agent-card-in{from{opacity:0;transform:translateX(60px)}}.agent-card[hidden]{display:none}
.agent-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:8px 10px 4px}
.agent-card strong,.agent-card span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.agent-card strong{font-size:12px;line-height:16px}.agent-card span{grid-column:1;line-height:12px;color:#9fbdb8;font-size:9px;letter-spacing:.06em;text-transform:uppercase}.agent-card b{grid-row:1/3;grid-column:2;align-self:center;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--rating);color:#0a242a;font-size:12px}
.agent-card p{height:45px;margin:0 10px;padding:0;color:#c9dcda;font-size:11px;line-height:15px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.agent-card:is(:hover,:focus-visible) p{display:block;overflow-y:auto}

.agent-card--check strong::after{content:' ?';color:#ffd27a}
/* Event-driven Bloor map: clickable only once a RunResult is attached (bloor-map.js toggles these classes). */
.bloor-map-canvas.bloor-map-canvas--interactive{pointer-events:auto}.bloor-map-canvas.bloor-map-canvas--hover{cursor:pointer}

/* ---------- Mapped run: one event log for the map and the shared ledger ---------- */
.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}

#runLedger[hidden],.experiment-ledger[hidden],.map-persona-card[hidden],.run-rerun[hidden],.clef-card[hidden],.run-sweep[hidden]{display:none}

/* Synthetic persona card on the 2D map */
.map-persona-card{position:absolute;z-index:4;bottom:140px;right:22px;display:grid;gap:4px;max-width:min(290px,calc(100% - 44px));margin:0;padding:10px 12px;border:1px solid #a8f4d166;border-radius:9px;background:#0a2029eb;color:#c9dcda;font-size:10px;line-height:1.45}
.map-persona-card strong{color:var(--mint);font:600 14px 'Space Grotesk',sans-serif;letter-spacing:-.02em}
.map-persona-card small{color:#9fbdb8;font-size:9px}

/* Shared ledger directly under the lab, for both prepared policies and compiled runs */
.run-ledger{position:relative;z-index:8;padding:0 clamp(22px,3vw,56px) 36px;background:linear-gradient(#07131cb8,#07131ce0)}
.run-ledger .experiment-ledger{margin-top:0}
.run-ledger-host{display:block;margin-top:8px;color:#9fbdb8;font-size:9px;font-weight:700;letter-spacing:.12em}
#runLedger{scroll-margin-top:84px}
.run-ledger-tools{display:flex;gap:12px;align-items:stretch;padding-top:16px}
.run-ledger-tools .clef-card{flex:0 0 min(300px,32%)}
.run-rerun{flex:1;min-width:0;padding:14px;border:1px solid #a8f4d130;border-radius:10px;background:#09232c}
.run-tool-label{display:block;color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.13em}
.run-rerun-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.run-rerun-row select{min-height:32px;padding:5px 10px;border:1px solid #a8f4d14d;border-radius:7px;background:#102c34;color:#e8f6ed;font:600 11px 'DM Sans',sans-serif}
.run-rerun-levels{display:flex;gap:2px;padding:3px;border:1px solid #a8f4d13b;border-radius:30px;background:#0b212a}
.run-rerun-levels button{padding:6px 11px;border:0;border-radius:20px;background:transparent;color:#aac1c4;font-size:10px;font-weight:700;cursor:pointer}
.run-rerun-levels button[data-current="true"]{box-shadow:inset 0 0 0 1px #a8f4d166}
.run-rerun-levels button[aria-pressed="true"]{background:var(--mint);color:#0c2a2a}
.run-rerun-go{min-height:32px;padding:6px 14px;border:0;border-radius:8px;background:var(--mint);color:#0a242a;font-size:11px;font-weight:700;cursor:pointer}
.run-rerun-go:hover:not(:disabled){background:#d5ffeb}
.run-rerun-go:disabled{background:#3c5b58;color:#a9c6bd;cursor:not-allowed}
.run-rerun-note{margin:9px 0 0;color:#a9c6bd;font-size:10px;line-height:1.5}
.run-rerun-status{margin:8px 0 0;color:#e8f6ed;font-size:10px;font-weight:700;letter-spacing:.09em}
.run-sweep-button{margin-top:10px}
.run-sweep{margin-top:10px;color:#c9dcda;font-size:10px;letter-spacing:.06em}
.run-sweep table{width:100%;border-collapse:collapse;font-size:10px}
.run-sweep caption{caption-side:bottom;padding-top:7px;color:#9fbdb8;text-align:left;font-size:9px;line-height:1.5}
.run-sweep th,.run-sweep td{padding:6px 8px;border-top:1px solid #a8f4d122;text-align:left}
.run-sweep th{color:var(--bike-lemon);font-size:9px;letter-spacing:.1em}
.clef-card{display:grid;gap:6px;padding:14px;border:1px solid #9cc7ff55;border-radius:10px;background:#0c2433}
.clef-card span{color:#9cc7ff;font-size:9px;font-weight:700;letter-spacing:.13em}
.clef-card strong{color:#e6f1ff;font:600 18px 'Space Grotesk',sans-serif;letter-spacing:-.03em}
.clef-card small{color:#a7bfd6;font-size:10px}
.run-ledger-seek{min-height:14px;margin:0 0 10px;color:var(--mint);font-size:9px;font-weight:700;letter-spacing:.12em}
.experiment-event{display:flex;gap:11px;align-items:baseline;width:100%;margin:0;padding:8px 6px;border:0;border-top:1px solid #a8f4d118;border-radius:0;background:transparent;color:#e4f2e8;font:inherit;font-size:11px;line-height:1.4;text-align:left;cursor:pointer}
.experiment-event small{flex:none;min-width:78px;color:#8eb5aa;font:500 9px 'JetBrains Mono',monospace}
.experiment-event:hover{background:#1d434a}
.experiment-event[aria-pressed="true"]{background:#29493d;box-shadow:inset 3px 0 0 var(--bike-lemon)}
.experiment-event:focus-visible{outline:2px solid var(--mint);outline-offset:-2px;transform:none}
@media(max-width:900px){.run-ledger-tools{flex-direction:column}.run-ledger-tools .clef-card{flex:none}}
@media(max-width:760px){.run-ledger{padding:0 15px 24px}.map-persona-card{top:auto;bottom:70px;right:12px}}
@media(prefers-reduced-motion:reduce){.experiment-event{transition:none}}

/* ---------- Demo view (body.demo-view, set in index.html; the only view) ----------
   The walkthrough: city → prompt → the 100 agents → 3D and the assessment. */

.header-actions{display:flex;align-items:center;gap:10px}

body.demo-view #runLedger{display:none!important}
body.demo-view .agents-note{padding:6px 10px;font-size:8px;letter-spacing:.1em;opacity:.85}

/* Lab: one title bar, the 3D view full width, a big Baseline / With policy switch */
/* Opaque behind the title bar; see-through behind the viewport, where a speculative question shows the city. */
body.demo-view .lab-shell{padding-top:86px;padding-bottom:28px;min-height:100vh;background:linear-gradient(#07131cf7 0,#07131cf2 170px,#07131c80 230px,#07131c80 calc(100% - 150px),#07131cf2 calc(100% - 90px),#081720)}
.simulation-viewport.is-speculative .view3d-frame{display:none!important}
.lab-titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.lab-titlebar-main{min-width:0}
.lab-kicker{display:flex;align-items:center;gap:9px;color:var(--mint);font-size:9px;font-weight:700;letter-spacing:1.6px}
.lab-kicker .breadcrumb-star{font-size:14px;line-height:1}
.lab-titlebar h2{max-width:1080px;margin:6px 0 7px;font:500 clamp(19px,1.6vw,25px)/1.18 'Space Grotesk',sans-serif;letter-spacing:-.025em;text-wrap:balance}

body.demo-view .lab-layout{display:block;margin-top:14px;min-height:0}
body.demo-view .simulation-viewport,body.demo-view .simulation-viewport.has-mapped-world{position:relative;top:auto;height:clamp(460px,calc(100vh - 262px),880px);min-height:0;border-radius:16px}
body.demo-view .simulation-viewport .viewport-bottom{top:16px;left:16px;right:auto;bottom:auto;gap:8px;justify-content:flex-start}
body.demo-view .view-toggle{padding:5px;box-shadow:0 12px 34px #0007}
body.demo-view .view-toggle button{padding:12px 24px;font-size:13px;letter-spacing:.2px}
body.demo-view .view-toggle button:not(.selected):hover{color:var(--cream);background:#ffffff14}

body.demo-view .agent-poll{padding-top:76px;padding-bottom:76px}

@media(max-width:760px){
  .lab-titlebar{display:block}
  body.demo-view .lab-shell{padding-top:76px}
  body.demo-view .simulation-viewport,body.demo-view .simulation-viewport.has-mapped-world{height:62vh;min-height:380px}
  body.demo-view .view-toggle button{padding:10px 16px;font-size:12px}
}
