@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-mark{width:24px;height:24px;display:grid;grid-template-columns:repeat(2,1fr);gap:3px;transform:rotate(-12deg)}.brand-mark span{border:1px solid var(--mint);background:#a8f4d119;border-radius:3px}.brand-mark span:nth-child(2){border-radius:50%;background:var(--mint)}.brand-mark span:nth-child(3){border-radius:50%;background:var(--coral);border-color:var(--coral)}.brand-mark span:nth-child(4){background:transparent}.brand-word{font:700 20px/1 'Space Grotesk',sans-serif;letter-spacing:-1.4px}.brand-dot{color:var(--mint)}.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-center{font-size:10px;font-weight:700;letter-spacing:1.7px;color:#d5e3e3b8;display:flex;align-items:center;gap:12px}.live-pulse{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 4px #a8f4d11b,0 0 12px var(--mint);display:inline-block;flex:none;animation:pulse 2.7s infinite}.header-rule{width:31px;height:1px;background:#b2d8df65}.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}.eyebrow{display:flex;align-items:center;gap:11px;color:var(--mint);font-size:10px;font-weight:700;letter-spacing:2px}.eyebrow-line{width:22px;height:1px;background:var(--mint)}.intro-message h1,.composer-heading h2,.impact-section 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,.impact-section 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}.round-link{display:flex;align-items:center;gap:17px;border:0;background:transparent;color:var(--cream);font-size:12px;font-weight:700;padding:15px 0;margin-top:37px}.round-icon{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--mint);border-radius:50%;color:var(--mint);font-size:17px;transition:.25s}.round-link:hover .round-icon{background:var(--mint);color:var(--ink);transform:translateY(3px)}.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 .eyebrow{justify-content: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}.composer-footer{display:flex;justify-content:space-between;gap:15px;margin:10px 4px 0;color:#96aeb5;font-size:10px;letter-spacing:.2px}.composer-footer span:last-child{font-size:9px;white-space:nowrap;letter-spacing:1px}.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],.impact-section[hidden],.investigation[hidden]{display:none}.lab-topline{display:flex;justify-content:space-between;align-items:center;color:#bcd0d1;font-size:10px;letter-spacing:1.4px;font-weight:700;border-bottom:1px solid #aac5c42a;padding:0 0 14px}.breadcrumb{display:flex;align-items:center;gap:12px}.breadcrumb-star{font-size:18px;color:var(--mint)}.breadcrumb>span:nth-child(2){color:#789198}.breadcrumb strong{font-weight:700;color:var(--mint)}.run-status{display:flex;align-items:center;gap:9px;color:#d2dfdf}.run-status .live-pulse{width:5px;height:5px}.status-separator{color:#66838c;margin:0 5px}.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))}.story-rail,.insight-rail{border:1px solid #b7d8d32d;background:linear-gradient(155deg,#132c37eb,#0e232deb);backdrop-filter:blur(14px);border-radius:13px;padding:22px;box-shadow:0 15px 45px #0003}.rail-overline,.micro-section-label,.insight-top{display:flex;justify-content:space-between;font-size:9px;font-weight:700;letter-spacing:1.7px;color:var(--mint)}.rail-overline span{color:#748f95}.story-rail h2{font:500 clamp(24px,2.2vw,36px)/1.07 'Space Grotesk',sans-serif;letter-spacing:-1.65px;margin:20px 0 12px}.story-rail>p:not(.rail-note){font-size:12px;line-height:1.6;color:#b4c8cc;margin:0 0 20px}.scenario-switch{display:grid;gap:7px}.switch-button{padding:10px 12px;display:flex;justify-content:space-between;background:#0b1d26a6;color:#aabfc3;border:1px solid #8aa4aa30;border-radius:7px;font-size:11px;font-weight:700;text-align:left}.switch-button.active{color:#10302d;background:var(--mint);border-color:var(--mint)}.switch-button span{font-size:16px;line-height:.8}.micro-section-label{margin:29px 0 14px}.causal-chain{list-style:none;counter-reset:chain;padding:0;margin:0;display:grid;gap:0}.causal-chain li{counter-increment:chain;display:flex;gap:11px;padding:0 0 16px;color:#cbd9d8;font-size:11px;line-height:1.35;position:relative}.causal-chain li::before{content:counter(chain,decimal-leading-zero);width:26px;flex:none;color:var(--mint);font-size:9px;font-weight:700}.causal-chain li:not(:last-child)::after{content:"";position:absolute;left:8px;top:16px;bottom:3px;border-left:1px dashed #a8f4d14a}.impact-cta{margin-top:4px;width:100%;display:flex;align-items:center;text-align:left;gap:12px;background:var(--mint);border:0;border-radius:9px;color:#092521;padding:15px 12px;font-size:12px;font-weight:700;transition:.25s}.impact-cta:hover{background:#d7ffe9;transform:translateY(-3px)}.impact-cta-icon{font-size:21px}.impact-cta small{display:block;font-size:9px;font-weight:500;margin-top:2px;color:#315d54}.cta-arrow{margin-left:auto;font-size:18px}.rail-note{display:flex;gap:8px;font-size:10px;line-height:1.5;color:#819da3;margin:16px 0 0}.rail-note span{color:var(--mint)}
.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-upper{position:absolute;top:21px;left:27px;right:27px;display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#e5eaea;letter-spacing:1.3px;font-weight:700;z-index:4}.viewport-corner b{color:var(--mint)}.viewport-legend{display:flex;align-items:center;gap:7px;color:#bacacc;font-weight:600}.legend-dot{width:5px;height:5px;border-radius:50%;display:inline-block}.legend-dot--policy{background:var(--mint);box-shadow:0 0 9px var(--mint)}.legend-dot--baseline{background:var(--coral);margin-left:10px}.focus-marker{position:absolute;z-index:3;display:flex;align-items:center;gap:8px;filter:drop-shadow(0 2px 8px #0009);transition:top .5s,left .5s}.focus-marker--a{top:39%;left:52%}.focus-marker--b{top:63%;left:69%}.focus-ring{width:28px;height:28px;border:1px solid var(--mint);border-radius:50%;position:relative;display:grid;place-items:center;box-shadow:0 0 0 7px #a8f4d122,0 0 20px #a8f4d164;animation:ring 2.4s infinite}.focus-ring::after{content:"";width:6px;height:6px;background:var(--mint);border-radius:50%}.focus-marker--b .focus-ring{border-color:var(--coral);box-shadow:0 0 0 7px #ff987e22,0 0 20px #ff987e64}.focus-marker--b .focus-ring::after{background:var(--coral)}.focus-label{border:1px solid #a9e6d76b;background:#102832e3;border-radius:5px;color:var(--mint);font-size:8px;letter-spacing:1.1px;padding:8px 9px;font-weight:700;white-space:nowrap}.focus-marker--b .focus-label{border-color:#ff987e65;color:var(--coral)}.world-caption{position:absolute;left:27px;bottom:88px;display:flex;align-items:center;gap:10px;color:#d1dfde;font-size:10px;letter-spacing:.2px;z-index:4}.world-caption>span:first-child{letter-spacing:1.3px;font-weight:700;color:var(--mint)}.caption-line{width:26px;height:1px;background:#bed3d479}.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}.motion-button{width:32px;height:32px;border:1px solid #b3d9d46c;border-radius:50%;background:#102a31d9;color:var(--mint);font-size:15px}.motion-button:hover{background:#315b5b}
.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}}
.timeline-bar[hidden],.motion-button[hidden]{display:none}
.map-attribution{position:absolute;z-index:4;right:20px;bottom:122px;color:#b9d5cf;font-size:8px;text-shadow:0 2px 7px #07151d}.map-attribution a{color:#b9d5cf;text-decoration:underline}
.map-attribution[hidden]{display:none}
.bike-world-caption span[hidden]{display:none}
.insight-top{align-items:center}.signal-glyph{font-size:28px;line-height:.5}.headline-impact{padding:27px 0 20px}.headline-impact small{display:block;color:#bacbce;font-size:9px;letter-spacing:1.45px;font-weight:700}.headline-impact strong{font:500 clamp(48px,4.2vw,72px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-4.5px;color:var(--mint);display:block;margin:4px 0}.headline-impact>span{color:#92aab0;font-size:11px}.metric-mini-cards{display:grid;gap:8px}.metric-mini-card{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 10px;background:#071c25b8;border:1px solid #a1c1bd29;border-radius:6px}.metric-mini-card span{color:#bfd0d1;font-size:10px}.metric-mini-card strong{font:600 14px 'Space Grotesk',sans-serif;white-space:nowrap}.metric-mini-card strong.negative{color:var(--coral)}.metric-mini-card strong.positive{color:var(--mint)}.insight-divider{height:1px;background:#8eb9b448;margin:24px 0}.insight-description{display:flex;gap:12px;color:#d4ddda}.info-icon{width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--mint);border-radius:50%;color:var(--mint);flex:none}.insight-description p{font-size:11px;line-height:1.6;margin:0;color:#b5c9c9}.source-ribbon{display:flex;align-items:center;gap:10px;background:#25463b5c;border:1px solid #a8f4d129;border-radius:5px;padding:10px;margin-top:20px;font-size:10px;line-height:1.4;color:#cfe3d6}.source-icon{color:var(--mint)}.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}
.timeline-bar{display:grid;grid-template-columns:225px 1fr 225px;gap:30px;align-items:center;margin-top:15px;border:1px solid #b7d8d32d;border-radius:10px;padding:18px 20px;background:#10252ed9;backdrop-filter:blur(10px)}.timeline-heading{display:grid;gap:4px}.timeline-heading span{font-size:9px;letter-spacing:1.4px;color:var(--mint);font-weight:700}.timeline-heading strong{font-size:11px;letter-spacing:.4px;color:#e4ece5}.timeline-controls{display:flex;align-items:center;gap:12px;font-size:9px;color:#9fb2b5;font-weight:700;letter-spacing:1px}.timeline-controls input{flex:1;accent-color:var(--mint);cursor:pointer}.timeline-time{display:flex;justify-content:space-between;color:#8faab0;font-size:9px;letter-spacing:1px}

.impact-section{position:relative;z-index:9;min-height:100vh;padding:130px clamp(22px,5vw,84px) 100px;background:radial-gradient(circle at 60% 0%,#17403461,transparent 40%),#081720}.impact-section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;max-width:1480px;margin:auto auto 55px}.impact-section h2{font-size:clamp(54px,6.3vw,96px);margin:20px 0 0}.impact-section-head>p{max-width:300px;color:#b3c9c7;font-size:13px;line-height:1.7;margin:0 0 5px}.impact-layout{max-width:1480px;margin:auto;display:grid;grid-template-columns:minmax(570px,1.45fr) minmax(340px,.8fr);gap:19px}.sector-board,.sector-detail{min-height:540px;border:1px solid #8ebeb052;border-radius:13px;background:#102832b8;position:relative;overflow:hidden}.sector-board{background:radial-gradient(circle at 50% 48%,#25454a,#102831 59%,#0b2029);box-shadow:inset 0 0 100px #03161e77}.sector-board::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#a6e6cd24 1px,transparent 1px);background-size:25px 25px;mask-image:linear-gradient(transparent,#000 15%,#000 80%,transparent)}.sector-board-head,.sector-board-bottom{position:absolute;left:25px;right:25px;z-index:3;display:flex;justify-content:space-between;font-size:9px;font-weight:700;letter-spacing:1.4px;color:#c4dad5}.sector-board-head{top:23px}.sector-board-head span:first-child,.sector-board-bottom span:first-child{color:var(--mint)}.sector-board-bottom{bottom:23px;color:#8aaeb0}.sector-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.sector-links path{fill:none;stroke:url(#linkGradient);stroke-width:1.4;stroke-opacity:.55;stroke-dasharray:4 7;animation:dash 18s linear infinite}.sector-node{position:absolute;z-index:4;width:130px;min-height:106px;padding:13px;border:1px solid #abdbcf65;border-radius:9px;background:#173842e8;box-shadow:0 15px 35px #0005;cursor:pointer;transition:transform .25s,background .25s,border-color .25s;user-select:none}.sector-node:hover,.sector-node.active{transform:translateY(-5px);background:#20514e;border-color:var(--mint);box-shadow:0 12px 32px #76e9b329}.sector-node-icon{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--mint);color:#08241f;font-size:18px}.sector-node small{display:block;margin:10px 0 2px;color:#b6d9d4;font-size:8px;letter-spacing:1.1px;font-weight:700}.sector-node strong{display:block;font:600 17px/1.1 'Space Grotesk',sans-serif;letter-spacing:-.5px}.sector-node em{display:block;margin-top:7px;color:var(--mint);font:700 9px 'DM Sans',sans-serif;letter-spacing:.5px}.sector-node--mobility{left:9%;top:39%}.sector-node--access{left:41%;top:14%}.sector-node--commerce{right:8%;top:37%}.sector-node--households{left:40%;bottom:9%}.sector-node--public{right:8%;bottom:9%}.sector-detail{padding:27px 30px 25px;display:flex;flex-direction:column;background:linear-gradient(155deg,#18333b,#0c222c)}.detail-kicker{display:flex;justify-content:space-between;color:var(--mint);font-size:9px;letter-spacing:1.4px;font-weight:700}.detail-active{color:#dce9dd}.detail-title{display:flex;align-items:start;gap:13px;margin:30px 0 10px}.detail-title>span{font-size:25px;color:var(--mint);border:1px solid #a8f4d17a;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;flex:none}.detail-title h3{font:500 clamp(27px,2.4vw,37px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-1.6px;margin:0}.sector-detail>p{color:#b9cbcc;line-height:1.6;font-size:12px;margin:0 0 25px}.detail-chart-head{display:flex;justify-content:space-between;gap:10px;font-size:8px;font-weight:700;letter-spacing:1px;color:#b7cecc}.detail-chart-head span:last-child{display:flex;align-items:center;gap:5px}.chart-key{display:inline-block;width:8px;height:3px;background:var(--coral);margin-right:3px}.chart-key--policy{background:var(--mint)}.detail-chart{display:block;width:100%;height:165px;overflow:visible;margin:12px 0 8px}.detail-evidence{display:flex;gap:12px;border:1px solid #88c9af45;border-radius:8px;background:#193e3974;padding:12px;margin-top:auto}.detail-evidence-icon{color:var(--mint)}.detail-evidence small{color:var(--mint);font-size:8px;letter-spacing:1.1px;font-weight:700}.detail-evidence p{color:#c8dfd4;font-size:10px;line-height:1.45;margin:4px 0 0}.back-city{border:0;background:transparent;color:var(--mint);font-size:11px;font-weight:700;padding:22px 0 0;text-align:left}.back-city span{float:right}
.about-strip{position:relative;z-index:9;min-height:250px;display:grid;grid-template-columns:1.4fr 1fr auto;align-items:center;gap:35px;padding:45px clamp(24px,5vw,84px);background:#a8f4d1;color:#07302c}.about-strip>div{font:600 clamp(30px,3vw,49px)/1.02 'Space Grotesk',sans-serif;letter-spacing:-2px}.about-strip em{color:#255c50;font-family:Georgia,serif;font-style:italic}.about-strip p{font-size:12px;line-height:1.6;max-width:350px}.about-strip a{text-decoration:none;border:1px solid #15473e;border-radius:40px;font-size:10px;font-weight:700;letter-spacing:1px;padding:13px 16px;white-space:nowrap}.about-strip a:hover{background:#103f36;color:var(--mint)}

.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}
.evidence-dialog{width:min(570px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow-y:auto;border:1px solid #a8f4d177;border-radius:15px;padding:32px;background:#122c37;color:var(--cream);box-shadow:0 40px 120px #000a}.evidence-dialog::backdrop{background:#051219dd;backdrop-filter:blur(9px)}.evidence-dialog form{position:absolute;top:15px;right:16px}.dialog-close{border:1px solid #a8f4d16a;border-radius:50%;width:31px;height:31px;background:transparent;color:var(--mint);font-size:23px;line-height:1}.evidence-dialog h2{font:500 34px/1.08 'Space Grotesk',sans-serif;letter-spacing:-1.4px;margin:27px 0 11px}.evidence-dialog>p{font-size:13px;line-height:1.6;color:#c4d3d4}.evidence-links{display:grid;gap:9px;margin:25px 0}.evidence-links a{display:flex;justify-content:space-between;gap:20px;text-decoration:none;border:1px solid #a8f4d13c;border-radius:7px;padding:12px;color:var(--mint);font-size:11px}.evidence-links a:hover{background:#a8f4d11a}.evidence-warning{background:#314037;border-left:2px solid var(--coral);padding:13px;color:#f1d7c9;font-size:11px;line-height:1.5}

@keyframes pulse{50%{box-shadow:0 0 0 7px #a8f4d110,0 0 18px var(--mint)}}@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){.header-center{display:none}.lab-layout{grid-template-columns:minmax(210px,25%) 1fr;min-height:auto}.insight-rail{grid-column:1/-1;display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:20px;align-items:center}.insight-top,.insight-divider,.text-link{display:none}.headline-impact{padding:0}.metric-mini-cards{grid-template-columns:repeat(2,1fr)}.insight-description{align-self:start}.source-ribbon{grid-column:3;margin-top:0}.simulation-viewport{min-height:560px}.impact-layout{grid-template-columns:1fr}.sector-detail{min-height:400px}.detail-chart{height:150px}.about-strip{grid-template-columns:1fr 1fr}.about-strip a{grid-column:1/-1;justify-self:start}}
@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}.composer-footer{font-size:9px}.scenario-picks>span{width:100%;text-align:center}.scroll-cue{left:22px;bottom:22px}.lab-shell{padding:78px 15px 24px}.lab-topline{display:block}.run-status{margin-top:12px;font-size:8px}.lab-layout{display:flex;flex-direction:column}.simulation-viewport{order:1;min-height:52vh;max-height:610px}.story-rail{order:2}.insight-rail{order:3;display:block}.insight-top,.text-link{display:flex}.headline-impact{padding:20px 0}.metric-mini-cards{grid-template-columns:1fr 1fr}.insight-description{margin-top:20px}.source-ribbon{margin-top:20px}.timeline-bar{grid-template-columns:1fr;gap:13px}.timeline-time{display:none}.story-rail h2{font-size:27px}.focus-marker--b{left:55%}.focus-label{font-size:7px;padding:7px}.viewport-upper{left:17px;right:17px;top:20px;font-size:8px}.viewport-legend{font-size:7px}.world-caption{left:17px;bottom:75px;font-size:9px}.impact-section{padding:95px 16px 65px}.impact-section-head{display:block;margin-bottom:30px}.impact-section h2{font-size:clamp(50px,10vw,72px)}.impact-section-head>p{margin:20px 0 0;max-width:500px}.sector-board{min-height:500px}.sector-node{width:108px;min-height:92px;padding:9px}.sector-node strong{font-size:14px}.sector-node small{font-size:7px}.sector-node em{font-size:8px}.sector-node--mobility{left:3%;top:39%}.sector-node--access{left:36%;top:12%}.sector-node--commerce{right:2%;top:39%}.sector-node--households{left:32%;bottom:10%}.sector-node--public{right:2%;bottom:9%}.sector-board-head,.sector-board-bottom{font-size:7px;left:11px;right:11px}.sector-detail{padding:22px;min-height:490px}.about-strip{display:block;padding:45px 22px}.about-strip p{margin:18px 0 25px}.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}.sector-node--households{left:27%}.sector-node--commerce{right:1%}.sector-node--public{right:1%}.detail-chart-head{font-size:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.focus-marker{border:0;background:transparent;padding:0;color:inherit;cursor:pointer}.focus-marker:hover .focus-ring{transform:scale(1.15)}.focus-ring{transition:transform .2s}
.intro-message h1,.intro-message p,.composer-heading h2,.composer-heading p{text-shadow:0 2px 20px #06151a,0 0 35px #06151ac7}
.overview-section{max-width:1480px;margin:90px auto 0;border-top:1px solid #a8f4d12e;padding-top:32px}.overview-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.overview-head span{color:var(--mint);font-size:9px;font-weight:700;letter-spacing:1.5px}.overview-head h3{font:500 clamp(32px,3.3vw,48px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-2px;margin:9px 0 0}.overview-head p{max-width:315px;color:#a9bfbd;font-size:11px;line-height:1.55;margin:0}.overview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.overview-card{min-width:0;min-height:205px;padding:14px;background:#102d34;border:1px solid #a8f4d13c;border-radius:9px;color:var(--cream);text-align:left;transition:transform .2s,border-color .2s,background .2s}.overview-card:hover,.overview-card:focus-visible{transform:translateY(-5px);border-color:var(--mint);background:#1b4142}.overview-card-top{display:flex;justify-content:space-between;align-items:center;gap:4px;color:var(--mint);font-size:9px;letter-spacing:1.1px;font-weight:700}.overview-card-top span:last-child{font-size:16px}.overview-card strong{display:block;margin:18px 0 5px;font:600 16px/1.1 'Space Grotesk',sans-serif;letter-spacing:-.5px}.overview-card em{font:700 11px 'DM Sans',sans-serif;color:var(--mint)}.overview-card svg{display:block;width:100%;height:58px;margin-top:18px;overflow:visible}.overview-card small{display:block;color:#8eafae;font-size:8px;letter-spacing:.3px;margin-top:7px}.overview-card-empty{display:grid;place-items:center;height:58px;color:#799e9b;font-size:9px;margin-top:18px;border:1px dashed #a8f4d12e}
@media(max-width:1100px){.overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.overview-section{margin-top:62px}.overview-head{display:block}.overview-head p{margin-top:12px}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-card{min-height:190px}.overview-card strong{font-size:15px}}@media(max-width:420px){.overview-grid{gap:7px}.overview-card{padding:10px}}
.overview-card.active{border-color:#a8f4d1a6;box-shadow:inset 0 0 0 1px #a8f4d12e}
.chart-summary{margin:0 0 20px!important;color:#94b9b5!important;font-size:10px!important;line-height:1.45!important}
.view-toggle[hidden],.viewport-legend[hidden],.focus-marker[hidden],.city-state-note[hidden]{display:none}.city-state-note{color:#c9dcda;background:#0b212af0;border:1px solid #a8f4d13b;border-radius:30px;padding:9px 12px;font-size:9px;font-weight:700;letter-spacing:.3px}
#railNoteText{color:#819da3}

/* Bloor West: a focused street experiment inside the larger city lab. */
#bikeLab[hidden]{display:none}
.bike-lab{
  --bike-lemon:#e4f692;
  --bike-glass:#102832e8;
  position:relative;
  z-index:9;
  isolation:isolate;
  overflow:hidden;
  padding:clamp(88px,10vw,154px) clamp(20px,5vw,84px) clamp(86px,8vw,130px);
  background:
    radial-gradient(ellipse at 78% 13%,#a8f4d11a,transparent 39%),
    radial-gradient(ellipse at 2% 62%,#ff987e13,transparent 42%),
    linear-gradient(170deg,#07151d,#0b2128 42%,#081720 100%);
  scroll-margin-top:72px;
}
.bike-lab::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.24;
  background-image:linear-gradient(#a8f4d10c 1px,transparent 1px),linear-gradient(90deg,#a8f4d10c 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(transparent 4%,#000 35%,#000 79%,transparent);
}
.bike-lab-head,.bike-stage,.bike-trace,.bike-evidence-grid,.bike-limits,.bike-next{max-width:1480px;margin-left:auto;margin-right:auto}
.bike-lab-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.62fr);align-items:end;gap:30px;margin-bottom:38px}
.bike-lab-kicker{grid-column:1/-1;display:flex;align-items:center;gap:12px;color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.bike-lab-kicker::before{content:"";width:31px;height:1px;background:var(--bike-lemon)}
.bike-lab-title{max-width:940px;margin:0;font:500 clamp(46px,6.7vw,102px)/.96 'Space Grotesk',sans-serif;letter-spacing:-.075em;text-wrap:balance}
.bike-lab-title em{color:var(--bike-lemon);font:italic 400 1em/.9 Georgia,serif;letter-spacing:-.08em}
.bike-lab-deck{max-width:365px;margin:0 0 6px;color:#bed2ce;font-size:clamp(13px,1.05vw,16px);line-height:1.65}
.bike-stage{
  position:relative;
  overflow:hidden;
  border:1px solid #bddac06b;
  border-radius:20px;
  background:#142930;
  box-shadow:0 34px 100px #020b11ad,inset 0 0 0 1px #ffffff0b;
}
.bike-stage::before,.bike-stage::after{content:"";position:absolute;z-index:7;pointer-events:none;width:24px;height:24px;border-color:var(--bike-lemon);opacity:.9}
.bike-stage::before{top:14px;left:14px;border-top:1px solid;border-left:1px solid}
.bike-stage::after{top:14px;right:14px;border-top:1px solid;border-right:1px solid}
.bike-stage-top{
  position:absolute;
  z-index:6;
  top:0;left:0;right:0;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  padding:26px 34px;
  color:#f1faf1;
  font-size:10px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  text-shadow:0 2px 12px #06151d;
  pointer-events:none;
}
.bike-stage-top>*{pointer-events:auto}
.bike-stage-top span:first-child,.bike-stage-top strong:first-child{color:var(--bike-lemon)}
.bike-stage-visual{
  position:relative;
  min-height:clamp(480px,58vw,745px);
  overflow:hidden;
  background:linear-gradient(130deg,#204147,#102730 70%);
}
.bike-stage-visual::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,#07151dae 0%,transparent 21%,transparent 57%,#06171cc9 100%),linear-gradient(90deg,#071c219a,transparent 42%,transparent 75%,#071b228c);
}
.bike-stage-visual::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  opacity:.35;
  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='.2'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}
.bike-art{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 54%;
  transition:opacity .85s ease,transform 1.3s cubic-bezier(.2,.75,.25,1),filter .85s ease;
  will-change:opacity,transform;
}
.bike-art--baseline{opacity:0;transform:scale(1.055);filter:saturate(.86)}
.bike-art--policy{opacity:1;transform:scale(1.02)}
.bike-stage[data-view="baseline"] .bike-art--baseline,.bike-stage.is-baseline .bike-art--baseline{opacity:1;transform:scale(1);filter:saturate(1)}
.bike-stage[data-view="baseline"] .bike-art--policy,.bike-stage.is-baseline .bike-art--policy{opacity:0;transform:scale(1.07)}
.bike-stage[data-view="policy"] .bike-art--policy,.bike-stage.is-policy .bike-art--policy{opacity:1;transform:scale(1)}
.bike-stage-overlay{
  position:absolute;
  z-index:5;
  left:clamp(20px,3vw,48px);
  bottom:clamp(22px,3vw,48px);
  max-width:min(440px,calc(100% - 40px));
  padding:21px 23px;
  border:1px solid #d8eed083;
  border-radius:12px;
  background:linear-gradient(140deg,#0a232ce8,#112f36dc);
  box-shadow:0 18px 60px #0009;
  backdrop-filter:blur(16px);
  color:#f3f8e9;
}
.bike-stage-overlay:empty{display:none}
.bike-stage-overlay small,.bike-stage-overlay>span:first-child{display:block;color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.bike-stage-overlay strong,.bike-stage-overlay h3{display:block;margin:9px 0;font:500 clamp(23px,2.5vw,34px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-.05em}
.bike-stage-overlay p{margin:7px 0 0;color:#d0e1de;font-size:12px;line-height:1.55}
.bike-stage-footer{
  position:relative;
  z-index:8;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  min-height:84px;
  padding:17px clamp(20px,3vw,42px);
  border-top:1px solid #c5e7d142;
  background:linear-gradient(90deg,#122c34,#0b242b);
  color:#c1d5ce;
  font-size:11px;
  line-height:1.5;
}
.bike-stage-footer p{margin:0;max-width:630px}
.bike-stage-footer strong{color:var(--bike-lemon)}
.bike-view-toggle,.bike-role-switch{
  display:inline-flex;
  align-items:center;
  gap:3px;
  padding:4px;
  border:1px solid #c1e1cc4d;
  border-radius:999px;
  background:#071c24d9;
}
.bike-view-toggle{flex:none}
.bike-view-toggle button,.bike-role-switch button{
  min-height:38px;
  padding:8px 15px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#c4d7d0;
  font-size:11px;
  font-weight:700;
  transition:background .2s,color .2s,transform .2s;
}
.bike-view-toggle button:hover,.bike-role-switch button:hover{color:white;background:#ffffff1c}
.bike-view-toggle button.active,.bike-view-toggle button[aria-pressed="true"],.bike-role-switch button.active,.bike-role-switch button[aria-pressed="true"]{
  background:var(--bike-lemon);
  color:#15302b;
  box-shadow:0 2px 14px #d9f99d40;
}
.bike-trace{
  display:grid;
  grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
  gap:22px;
  margin-top:22px;
  padding:30px;
  border:1px solid #a4cfb04d;
  border-radius:16px;
  background:radial-gradient(circle at 94% 0%,#37614c45,transparent 45%),#102933d9;
  box-shadow:0 24px 70px #0004;
}
.bike-trace-head{align-self:start}
.bike-trace-head>span,.bike-trace-head small{display:block;color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.bike-trace-head h3{margin:13px 0 12px;font:500 clamp(27px,2.7vw,43px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-.055em}
.bike-trace-head p{max-width:350px;margin:0;color:#afc6c4;font-size:12px;line-height:1.6}
.bike-role-switch{grid-column:1;align-self:start;justify-self:start;flex-wrap:wrap;border-radius:14px}
.bike-role-switch button{white-space:nowrap}
.bike-paths{grid-column:2;grid-row:1 / span 2;display:flex;flex-wrap:wrap;align-content:start;gap:9px}
.bike-paths button{
  min-height:45px;
  padding:11px 15px;
  border:1px solid #a9d7c35b;
  border-radius:8px;
  background:#183b3ece;
  color:#dcf1e2;
  font-size:11px;
  font-weight:700;
  text-align:left;
  transition:transform .2s,background .2s,border-color .2s;
}
.bike-paths button:hover,.bike-paths button.active,.bike-paths button[aria-pressed="true"]{transform:translateY(-2px);border-color:var(--bike-lemon);background:#2d594c}
.bike-paths button.active,.bike-paths button[aria-pressed="true"]{box-shadow:inset 0 0 0 1px #e4f6923b;color:var(--bike-lemon)}
.bike-trace-card{
  grid-column:2;
  grid-row:2 / span 2;
  min-width:0;
  padding:24px;
  border:1px solid #e4f6924d;
  border-radius:12px;
  background:linear-gradient(125deg,#18393b,#112b35);
  box-shadow:inset 3px 0 0 var(--bike-lemon);
}
.bike-trace-card small,.bike-trace-card>span:first-child{color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.bike-trace-card h3,.bike-trace-card strong{display:block;margin:11px 0;font:500 clamp(23px,2.2vw,33px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.05em}
.bike-trace-card p{margin:0;color:#c3d9d3;font-size:12px;line-height:1.65}
.bike-step-flow{
  grid-column:1/-1;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  margin-top:5px;
  padding-top:20px;
  border-top:1px solid #a8f4d12f;
}
.bike-step-flow>*{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:8px 11px;
  border:1px solid #b8d8c554;
  border-radius:6px;
  background:#0b2730;
  color:#d5ece0;
  font-size:10px;
  font-weight:700;
  line-height:1.3;
}
.bike-step-flow>*+*::before{content:"→";margin-right:10px;color:var(--bike-lemon)}
.bike-evidence-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:24px;
}
.bike-evidence-grid>*{
  min-width:0;
  padding:23px;
  border:1px solid #b5d8c74a;
  border-radius:11px;
  background:linear-gradient(155deg,#122e35,#0b232b);
  box-shadow:0 16px 42px #0004;
}
.bike-evidence-grid small,.bike-evidence-grid>*>span:first-child{display:block;color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.bike-evidence-grid strong,.bike-evidence-grid h3{display:block;margin:12px 0 8px;font:500 clamp(22px,2.25vw,31px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.045em;color:#f2f9ee}
.bike-evidence-grid p{margin:8px 0 0;color:#bad0c9;font-size:11px;line-height:1.58}
.bike-evidence-grid a{display:inline-flex;gap:10px;align-items:center;margin-top:14px;color:var(--bike-lemon);font-size:11px;font-weight:700;text-decoration:none}
.bike-evidence-grid a:hover{text-decoration:underline}
.bike-limits{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-top:18px;
  padding:19px 22px;
  border:1px solid #ffa88e5e;
  border-left:3px solid var(--coral);
  border-radius:9px;
  background:#3e2e2a70;
  color:#f4d6cc;
  font-size:11px;
  line-height:1.6;
}
.bike-limits::before{content:"!";flex:none;display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--coral);border-radius:50%;color:var(--coral);font-size:12px;font-weight:700}
.bike-limits p{margin:0}
.bike-next{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:34px;
  padding:24px 28px;
  border:1px solid #c5e8be6c;
  border-radius:14px;
  background:linear-gradient(100deg,#1c4543,#173a38 60%,#3d5741);
}
.bike-next h3,.bike-next strong{display:block;margin:0 0 7px;font:500 clamp(20px,2.2vw,29px)/1.1 'Space Grotesk',sans-serif;letter-spacing:-.04em}
.bike-next p{margin:0;color:#cce0d0;font-size:11px;line-height:1.55}
.bike-next a,.bike-next button{
  flex:none;
  min-height:43px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:10px 17px;
  border:1px solid var(--bike-lemon);
  border-radius:999px;
  background:var(--bike-lemon);
  color:#17302c;
  font-size:11px;
  font-weight:700;
  text-decoration:none;
}
.bike-next a:hover,.bike-next button:hover{background:#f7ffd4}

@media(max-width:1060px){
  .bike-lab-head{grid-template-columns:1fr}
  .bike-lab-deck{max-width:700px}
  .bike-trace{grid-template-columns:1fr}
  .bike-role-switch,.bike-paths,.bike-trace-card,.bike-step-flow{grid-column:1;grid-row:auto}
  .bike-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .bike-lab{padding:83px 15px 75px}
  .bike-lab-head{gap:17px;margin-bottom:25px}
  .bike-lab-title{font-size:clamp(46px,10vw,72px)}
  .bike-stage{border-radius:13px}
  .bike-stage-visual{min-height:520px}
  .bike-art{object-position:53% center}
  .bike-stage-top{padding:23px 20px;font-size:9px}
  .bike-stage-overlay{left:16px;right:16px;bottom:16px;max-width:none;padding:16px}
  .bike-stage-overlay strong,.bike-stage-overlay h3{font-size:24px}
  .bike-stage-footer{display:grid;padding:17px;gap:14px}
  .bike-view-toggle{justify-self:start}
  .bike-trace{margin-top:14px;padding:19px;gap:19px}
  .bike-role-switch{display:flex;width:100%;overflow-x:auto;flex-wrap:nowrap;justify-self:stretch;scrollbar-width:thin}
  .bike-role-switch button{min-height:44px}
  .bike-paths button{flex:1 1 calc(50% - 9px);min-width:130px}
  .bike-trace-card{padding:19px}
  .bike-evidence-grid{grid-template-columns:1fr;gap:10px}
  .bike-evidence-grid>*{padding:19px}
  .bike-next{display:grid;padding:20px}
  .bike-next a,.bike-next button{justify-self:start}
}
@media(max-width:420px){
  .bike-stage-visual{min-height:490px}
  .bike-stage-top{display:grid;gap:4px}
  .bike-view-toggle{width:100%}
  .bike-view-toggle button{flex:1;padding:8px 9px}
  .bike-paths button{min-width:0}
  .bike-step-flow{display:grid;grid-template-columns:1fr 1fr}
  .bike-step-flow>*+*::before{display:none}
}
@media(prefers-reduced-motion:reduce){
  .bike-art,.bike-view-toggle button,.bike-role-switch button,.bike-paths button{transition:none}
}

/* Exact Bloor explorer controls and cards. */
#bikeLabButton[hidden]{display:none}
.bike-lab-entry{
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
  min-height:54px;
  margin:2px 0 9px;
  padding:11px 13px;
  border:1px solid #e4f692a8;
  border-radius:9px;
  background:linear-gradient(110deg,#273f38,#344c3e);
  color:#f4f9e8;
  text-align:left;
  font-size:11px;
  font-weight:700;
  transition:background .2s,transform .2s;
}
.bike-lab-entry:hover{background:#42604c;transform:translateY(-2px)}
.bike-lab-entry>span:first-child{display:grid;place-items:center;width:27px;height:27px;flex:none;border:1px solid var(--bike-lemon,#e4f692);border-radius:50%;color:var(--bike-lemon,#e4f692);font-size:17px}
.bike-lab-entry>span:nth-child(2){flex:1}
.bike-lab-entry small{display:block;margin-top:3px;color:#c0d5c9;font-size:9px;font-weight:500}
.bike-lab-entry>span:last-child{color:var(--bike-lemon,#e4f692);font-size:18px}
.metric-mini-card strong.neutral{color:#e2e9e4}
.bike-lab-kicker span+span{color:#b2c9bc}
.bike-stage-top i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--bike-lemon);box-shadow:0 0 0 4px #e4f69224,0 0 14px #e4f692}
.bike-stage-overlay small{color:#c5d8ce;letter-spacing:normal;text-transform:none;font-size:11px;font-weight:500;line-height:1.5}
.bike-view-toggle button span,.bike-role-switch button span{display:inline-block;margin-right:5px;opacity:.6;font-size:9px;letter-spacing:.08em}
.bike-view-toggle button.selected,.bike-role-switch button.selected{background:var(--bike-lemon);color:#15302b;box-shadow:0 2px 14px #d9f99d40}
.bike-stage-location{color:#bed3c8;font-size:10px;font-weight:700;letter-spacing:.09em;text-align:right}
.bike-stage-location span{color:var(--bike-lemon);margin:0 6px}
.bike-trace-head{grid-column:1;grid-row:1}
.bike-trace-head>div>span{color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.15em}
.bike-trace-head h3{margin:12px 0 0}
.bike-trace-head p{margin-top:20px}
.bike-role-switch{grid-column:1;grid-row:2;align-self:start;justify-self:stretch;width:100%;border-radius:12px}
.bike-role-switch button{flex:1;padding:9px 10px}
.bike-trace-grid{grid-column:2;grid-row:1 / span 2;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.2fr);gap:14px;min-width:0}
.bike-path-panel{min-width:0;padding:18px;border:1px solid #a4cfb04d;border-radius:11px;background:#0c252df0}
.bike-panel-label{display:block;color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.12em}
.bike-paths{display:grid;grid-template-columns:1fr;gap:8px;margin-top:18px}
.bike-paths button{display:flex;align-items:center;gap:10px;width:100%;min-height:58px;padding:11px 12px;border-radius:8px}
.bike-paths button.selected{transform:none;border-color:var(--bike-lemon);background:#315a48;color:var(--bike-lemon)}
.bike-path-icon{display:grid;place-items:center;width:29px;height:29px;flex:none;border-radius:50%;background:#a8f4d126;color:var(--bike-lemon);font-size:17px}
.bike-path-text{flex:1}
.bike-path-arrow{opacity:.7;font-size:15px}
.bike-path-note{margin-top:15px;color:#90aca7;font-size:10px;line-height:1.5}
.bike-trace-card{grid-column:auto;grid-row:auto;display:flex;flex-direction:column;padding:22px}
.bike-trace-card-top{display:flex;justify-content:space-between;gap:10px;color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.1em}
.bike-trace-card-top span:last-child{color:#a8c6b8;text-align:right}
.bike-trace-card h4{margin:24px 0 11px;font:500 clamp(24px,2.4vw,37px)/1.07 'Space Grotesk',sans-serif;letter-spacing:-.055em}
.bike-trace-card p{color:#c7d9d1;font-size:12px}
.bike-step-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:25px 0 18px;padding:0;border:0}
.bike-step-flow .bike-step{display:flex;align-items:flex-start;gap:9px;min-height:47px;padding:10px;border:1px solid #b8d8c54f;border-radius:6px;background:#0b2730;color:#d5ece0;font-size:10px;font-weight:600;line-height:1.35}
.bike-step-flow .bike-step::before{content:attr(data-step);display:grid;place-items:center;width:23px;height:23px;flex:none;border-radius:50%;background:var(--bike-lemon);color:#11302a;font-size:9px;font-weight:700;margin:0}
.bike-trace-card-bottom{display:grid;gap:6px;margin-top:auto;padding-top:14px;border-top:1px solid #e4f69242}
.bike-trace-card-bottom span{color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.12em}
.bike-trace-card-bottom strong{margin:0;color:#f3f6ed;font:500 13px/1.45 'DM Sans',sans-serif;letter-spacing:0}
.bike-evidence-overline{display:flex;justify-content:space-between;gap:10px;color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.07em}
.bike-evidence-overline span:last-child{color:#9abbb1;text-align:right}
.bike-evidence-card{display:flex;flex-direction:column}
.bike-evidence-card--observed{background:linear-gradient(155deg,#1d403b,#102a31)}
.bike-evidence-card--limits{border-color:#ff987e6b;background:linear-gradient(155deg,#39342e,#202c2d)}
.bike-evidence-card--limits .bike-evidence-overline span:first-child{color:var(--coral)}
.bike-evidence-card>strong:not(.bike-evidence-word){font-size:clamp(42px,4.1vw,66px);letter-spacing:-.075em}
.bike-evidence-card>strong span{font:500 15px 'DM Sans',sans-serif;letter-spacing:0;color:#b9d1c4}
.bike-evidence-card>strong.bike-evidence-word{font-size:clamp(24px,2.1vw,32px)}
.bike-evidence-card p{flex:1}
.bike-next>div>span{display:block;margin-bottom:9px;color:var(--bike-lemon);font-size:10px;font-weight:700;letter-spacing:.13em}

@media(max-width:1060px){
  .bike-trace-head,.bike-role-switch,.bike-trace-grid{grid-column:1;grid-row:auto}
}
@media(max-width:760px){
  .bike-lab-kicker{flex-wrap:wrap;row-gap:6px}
  .bike-lab-kicker span+span{flex-basis:100%;padding-left:43px}
  .bike-stage-location{text-align:left}
  .bike-trace-head p{margin-top:10px}
  .bike-trace-grid{grid-template-columns:1fr}
  .bike-path-panel{padding:14px}
  .bike-paths{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .bike-paths button{min-width:0}
  .bike-trace-card{padding:19px}
  .bike-evidence-overline{font-size:9px}
}
@media(max-width:420px){
  .bike-stage-top{padding:17px;font-size:8px}
  .bike-stage-overlay small{font-size:10px}
  .bike-role-switch button{padding:8px 7px;font-size:10px}
  .bike-role-switch button span{display:none}
  .bike-paths{grid-template-columns:1fr}
  .bike-paths button{min-height:49px}
  .bike-step-flow{grid-template-columns:1fr 1fr}
  .bike-evidence-overline{display:grid}
  .bike-evidence-overline span:last-child{text-align:left}
  .sector-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;min-height:0;padding:62px 10px 45px}
  .sector-links{display:none}
  .sector-node,.sector-node--mobility,.sector-node--access,.sector-node--commerce,.sector-node--households,.sector-node--public{position:relative;top:auto;right:auto;bottom:auto;left:auto;width:auto;min-height:86px;transform:none}
  .sector-node:hover,.sector-node.active{transform:none}
  .sector-node--public{grid-column:1/-1}
}
.ttc-workbench{position:relative;z-index:2;padding:clamp(44px,7vw,100px) clamp(20px,5vw,82px);background:#0b1c24;color:#e7f8ef}
#ttcWorkbench[hidden],#ttcInspectorButton[hidden]{display:none}
.ttc-workbench-head{max-width:1600px;margin:0 auto 28px;display:flex;align-items:end;justify-content:space-between;gap:32px}
.ttc-workbench-kicker{font-size:11px;letter-spacing:.19em;font-weight:700;color:#9be4cb}
.ttc-workbench-head h2{font-size:clamp(34px,4.8vw,76px);line-height:1.02;letter-spacing:-.055em;margin:14px 0 0}
.ttc-workbench-head h2 em{font-family:Georgia,serif;font-weight:400;color:#9be4cb}
.ttc-workbench-head p{max-width:470px;color:#bad2ca;line-height:1.6;margin:0}
.ttc-workbench-frame{max-width:1600px;margin:auto;border:1px solid #66897d80;border-radius:18px;background:#182932;box-shadow:0 35px 90px #0008;overflow:hidden}
.ttc-workbench-bar{min-height:46px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#b9d5c9;font-size:10px;letter-spacing:.13em;font-weight:600}
.ttc-workbench-bar>span:first-child{display:flex;align-items:center;gap:10px}
.ttc-workbench-bar .live-pulse{display:inline-block}
#ttcInspector{display:block;border:0;width:100%;height:min(900px,88vh);min-height:690px;background:#121923}
.ttc-workbench-foot{max-width:1600px;margin:18px auto 0;color:#a9c2b8;font-size:12px;line-height:1.5}
@media(max-width:1250px){#ttcInspector{height:1550px}}
@media(max-width:900px){.ttc-workbench-head{display:block}.ttc-workbench-head p{margin-top:18px}.ttc-workbench-bar{font-size:9px}#ttcInspector{height:1900px;min-height:0}}
@media(max-width:760px){#ttcInspector{height:2350px}}

/* Both prepared scenarios share a control-room frame and the same visual system. */
.ttc-workbench-head,.ttc-workbench-frame,.ttc-workbench-foot{max-width:1480px}
.ttc-workbench{background:linear-gradient(170deg,#07151d,#0b2128 58%,#081720);padding-top:clamp(82px,9vw,130px)}
.ttc-workbench-head h2{font-family:'Space Grotesk',sans-serif;font-weight:500}
.ttc-workbench-head h2 em{color:var(--mint)}
.ttc-workbench-frame{border-color:#a8f4d15c;background:#0b1c24;border-radius:16px}
.ttc-workbench-bar{background:#112c34;border-bottom:1px solid #a8f4d12e}
#ttcInspector{background:#0b1c24}

.bike-workbench{max-width:1480px;margin:0 auto;display:grid;grid-template-columns:minmax(205px,.62fr) minmax(0,2fr) minmax(305px,1fr);gap:11px;align-items:stretch}
.bike-workbench-pipeline,.bike-workbench-city,.bike-trace{min-width:0;border:1px solid #a8f4d14d;border-radius:13px;background:linear-gradient(155deg,#14343be8,#0c2530);box-shadow:0 22px 60px #0004}
.bike-workbench-pipeline{display:flex;flex-direction:column;overflow:hidden}
.bike-inspector-head{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:50px;padding:12px 15px;border-bottom:1px solid #a8f4d12d}
.bike-inspector-head strong{font:600 16px/1.1 'Space Grotesk',sans-serif;letter-spacing:-.04em}
.bike-inspector-head span{color:var(--bike-lemon);font-size:8px;letter-spacing:.13em;font-weight:700;text-align:right}
.bike-pipeline-list{list-style:none;margin:0;padding:10px 14px;display:grid;gap:2px}
.bike-pipeline-list li{display:grid;grid-template-columns:26px 1fr;gap:8px;padding:12px 2px;border-bottom:1px solid #a8f4d122}
.bike-pipeline-list li:last-child{border:0}
.bike-pipeline-list li>span{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--bike-lemon);border-radius:50%;color:var(--bike-lemon);font:700 9px 'DM Sans',sans-serif}
.bike-pipeline-list strong{display:block;color:#e8f6ed;font-size:12px;line-height:1.25}
.bike-pipeline-list small{display:block;margin-top:5px;color:#a9c6bd;font-size:10px;line-height:1.45}
.bike-pipeline-context{margin:10px 14px 14px;padding:14px;border-top:1px solid #a8f4d130;border-bottom:1px solid #a8f4d130}
.bike-pipeline-context>span{color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.1em}
.bike-pipeline-context strong{display:block;margin:11px 0 7px;color:#f1f7e8;font:600 32px/1 'Space Grotesk',sans-serif;letter-spacing:-.05em}
.bike-pipeline-context strong small{color:#bad0c9;font:500 10px 'DM Sans',sans-serif;letter-spacing:0}
.bike-pipeline-context p{margin:0;color:#a9c6bd;font-size:10px;line-height:1.5}
.bike-pipeline-note{margin:auto 14px 15px;padding:13px;border:1px solid #e4f69248;border-radius:8px;background:#28483e6b}
.bike-pipeline-note span{color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.1em}
.bike-pipeline-note p{margin:6px 0 0;color:#c8dcd0;font-size:10px;line-height:1.5}
.bike-workbench-city{padding:0 10px 11px;overflow:hidden}
.bike-workbench-city>.bike-inspector-head{margin:0 -10px 10px}
.bike-world{position:relative;height:clamp(350px,32vw,510px);overflow:hidden;border:1px solid #a8f4d14f;border-radius:10px;background:radial-gradient(circle at 40% 25%,#2d625c,#0b2732 72%)}
.bike-world canvas{display:block;position:absolute;inset:0;width:100%;height:100%}
.bike-world::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#091e2b90,transparent 28%,transparent 68%,#06151caa)}
.bike-world-hud,.bike-world-caption{position:absolute;z-index:2;left:17px;right:17px;display:flex;justify-content:space-between;gap:12px;color:#e4f3e9;font-size:9px;font-weight:700;letter-spacing:.12em;text-shadow:0 2px 7px #07151d}
.bike-world-hud{top:18px}.bike-world-caption{bottom:18px;color:#bfd6ca}.bike-world-caption span{color:var(--bike-lemon)}
.bike-world-hud span{color:var(--bike-lemon)}.bike-world-hud i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--bike-lemon);box-shadow:0 0 10px var(--bike-lemon)}
.bike-section-label{display:flex;justify-content:space-between;gap:8px;margin:15px 4px 8px;color:#a9c8be;font-size:8px;font-weight:700;letter-spacing:.13em}
.bike-section-label span:last-child{color:var(--bike-lemon)}
.bike-workbench .bike-stage{margin:0;border-radius:10px;box-shadow:none}
.bike-workbench .bike-stage-visual{min-height:230px;height:clamp(230px,21vw,330px)}
.bike-workbench .bike-stage-top{padding:16px 20px;font-size:8px}
.bike-workbench .bike-stage-top span:last-child{display:none}
.bike-workbench .bike-stage-overlay{left:15px;bottom:15px;padding:10px 13px;max-width:230px}
.bike-workbench .bike-stage-overlay strong{font-size:18px;margin:5px 0}
.bike-workbench .bike-stage-overlay small{font-size:9px}
.bike-workbench .bike-stage-footer{display:block;min-height:0;padding:10px;background:#102b34}
.bike-workbench .bike-view-toggle{display:flex;width:100%}
.bike-workbench .bike-view-toggle button{flex:1;min-height:37px;padding:7px;font-size:9px}
.bike-workbench .bike-stage-location{display:none}
.bike-workbench .bike-trace{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;overflow:hidden}
.bike-workbench .bike-trace-head{display:block;padding:14px 16px 0}
.bike-workbench .bike-trace-head h3{font-size:24px;margin:8px 0}
.bike-workbench .bike-trace-head p{margin:9px 0 0;font-size:10px}
.bike-workbench .bike-role-switch{display:flex;flex-wrap:wrap;align-self:stretch;width:auto;margin:0 13px;border-radius:8px}
.bike-workbench .bike-role-switch button{min-height:35px;padding:7px 6px;white-space:normal;font-size:9px}
.bike-workbench .bike-trace-grid{display:flex;flex-direction:column;gap:10px;padding:0 13px 13px;min-width:0}
.bike-workbench .bike-path-panel{padding:12px}
.bike-workbench .bike-paths{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:10px}
.bike-workbench .bike-paths button{min-width:0;min-height:42px;padding:7px;font-size:9px;gap:5px}
.bike-workbench .bike-path-icon{width:22px;height:22px;font-size:13px}
.bike-workbench .bike-path-arrow{display:none}
.bike-workbench .bike-path-note{margin-top:9px;font-size:9px}
.bike-workbench .bike-trace-card{padding:16px}
.bike-workbench .bike-trace-card-top{font-size:8px}
.bike-workbench .bike-trace-card h4{margin:12px 0 8px;font-size:23px}
.bike-workbench .bike-step-flow{gap:5px;margin:15px 0 12px}
.bike-workbench .bike-step-flow .bike-step{min-height:40px;padding:7px;font-size:9px}
.bike-workbench .bike-trace-card-bottom strong{font-size:11px}
.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:1210px){
  .bike-workbench{grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr)}
  .bike-workbench .bike-trace{grid-column:1/-1}
  .bike-workbench .bike-trace-grid{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr)}
}
@media(max-width:760px){
  .bike-workbench{display:flex;flex-direction:column}
  .bike-workbench-city{order:1}.bike-workbench .bike-trace{order:2}.bike-workbench-pipeline{order:3}
  .bike-world{height:390px}
  .bike-world-hud,.bike-world-caption{font-size:8px}
  .bike-workbench .bike-trace-grid{display:flex}
  .bike-workbench .bike-stage-visual{height:250px;min-height:250px}
  .bike-workbench .bike-stage-overlay{max-width:calc(100% - 30px)}
}
@media(max-width:430px){.bike-workbench .bike-view-toggle button span{display:none}.bike-workbench .bike-role-switch{overflow-x:auto;flex-wrap:nowrap}.bike-workbench .bike-role-switch button{flex:none}.bike-world{height:320px}}
@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}

/* Research record uses the same control-room language as both city workbenches. */
.research-entry{display:flex;align-items:center;gap:12px;width:100%;min-height:57px;margin-top:10px;padding:11px 14px;border:1px solid #a8f4d15b;border-radius:9px;background:#102d34c9;color:#e8f9ee;text-align:left;font:700 12px 'DM Sans',sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.research-entry:hover,.research-entry:focus-visible{background:#245044;transform:translateY(-2px)}
.research-entry>span:first-child{color:var(--mint);font-size:23px}.research-entry>span:nth-child(2){flex:1}.research-entry>span:last-child{color:var(--mint);font-size:18px}.research-entry small{display:block;margin-top:4px;color:#acc9be;font-size:9px;font-weight:500}
.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}
#personaLab[hidden]{display:none}
.persona-lab-head,.persona-research-grid,.persona-reaction-head,.persona-reaction-cards,.persona-boundary{max-width:1480px;margin-left:auto;margin-right:auto}
.persona-lab-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.65fr);align-items:end;gap:35px;margin-bottom:32px}
.persona-kicker,.persona-reaction-head span{color:var(--mint);font-size:10px;font-weight:700;letter-spacing:.18em}
.persona-lab-head h2{margin:14px 0 0;font:500 clamp(44px,5.8vw,87px)/.98 'Space Grotesk',sans-serif;letter-spacing:-.075em}
.persona-lab-head h2 em{color:var(--mint);font:italic 400 1em Georgia,serif}
.persona-lab-head>p,.persona-reaction-head>p{max-width:450px;margin:0;color:#bed2ca;font-size:13px;line-height:1.65}
.persona-research-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,.7fr);gap:12px}
.persona-rounds-panel,.persona-research-aside>*{border:1px solid #a8f4d14a;border-radius:12px;background:linear-gradient(150deg,#173b40,#0b232d);box-shadow:0 24px 70px #0003}
.persona-rounds-panel{padding:22px}
.persona-panel-top{display:flex;justify-content:space-between;gap:15px;color:#ade6cd;font-size:9px;font-weight:700;letter-spacing:.15em}
.persona-panel-top span:last-child{color:#e4f692}
.persona-rounds{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;margin:20px 0 22px}
.persona-round{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid #a8f4d144;border-radius:8px;background:#0a2630;color:#bdd4ca;cursor:pointer}
.persona-round small{font:700 10px 'DM Sans',sans-serif}.persona-round span{font-size:17px;line-height:1}
.persona-round--kept{border-color:#e4f6929c;color:#e4f692}.persona-round[aria-pressed=true]{background:#a8f4d1;color:#082d29;border-color:#a8f4d1}.persona-round:hover{border-color:#a8f4d1}
.persona-round-detail{min-height:355px;padding:22px;border:1px solid #a8f4d12c;border-radius:9px;background:#081f29a8}
.persona-detail-kicker{color:#e4f692;font-size:9px;font-weight:700;letter-spacing:.15em}
.persona-round-detail h3{max-width:850px;margin:10px 0 14px;font:500 clamp(18px,2vw,28px)/1.2 'Space Grotesk',sans-serif;letter-spacing:-.035em}
.persona-detail-change,.persona-coach-note{color:#c2d9d0;font-size:11px;line-height:1.6}.persona-detail-change{margin:0 0 18px}.persona-detail-change b{color:#a8f4d1}
.persona-score-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.persona-score{min-width:0;padding:11px;border:1px solid #a8f4d12d;border-radius:7px;background:#15303a}
.persona-score span{display:block;color:#a9c7bd;font-size:9px}.persona-score strong{display:block;margin:7px 0;color:#f0f8ec;font:500 23px 'Space Grotesk',sans-serif;letter-spacing:-.04em}
.persona-score-bar{display:block;height:3px;border-radius:5px;background:#45635d;overflow:hidden}.persona-score-bar:before{content:"";display:block;width:var(--score-width);height:100%;background:#a8f4d1}
.persona-detail-footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:5px;margin-top:18px;color:#e4f692;font-size:9px;font-weight:700;letter-spacing:.04em}
.persona-coach-note{margin:12px 0 0;padding-top:12px;border-top:1px solid #a8f4d128}
.persona-research-aside{display:flex;flex-direction:column;gap:12px}
.persona-holdout,.persona-human{padding:22px}.persona-holdout>span,.persona-human>span{color:#e4f692;font-size:9px;font-weight:700;letter-spacing:.15em}
.persona-holdout strong,.persona-human strong{display:block;margin:15px 0;color:#f0f8ec;font:500 clamp(25px,2.5vw,38px)/1.08 'Space Grotesk',sans-serif;letter-spacing:-.045em}
.persona-holdout p,.persona-human p{margin:0;color:#b7d2c6;font-size:11px;line-height:1.6}
.persona-human{flex:1}.persona-deep-link{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:17px 20px;color:#092b27;background:#a8f4d1;border:0;border-radius:10px;text-align:left;font-size:11px;font-weight:700;cursor:pointer}.persona-deep-link:hover{background:#e4f692}.persona-deep-link span{font-size:20px}
.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}
.persona-reaction-head>p{max-width:430px;font-size:11px}
.persona-reaction-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.persona-reaction-card{min-width:0;padding:22px;border:1px solid #a8f4d14a;border-radius:11px;background:#10303a}
.persona-reaction-top{display:flex;justify-content:space-between;gap:10px;color:#b1d7c7;font-size:9px;font-weight:700;letter-spacing:.1em}.persona-stance{color:#ffb29d}.persona-stance--support{color:#e4f692}
.persona-reaction-card h4{margin:32px 0 5px;font:500 27px 'Space Grotesk',sans-serif;letter-spacing:-.05em}
.persona-reaction-context{text-transform:uppercase;color:#a8f4d1;font-size:9px;letter-spacing:.08em}.persona-reaction-action{min-height:60px;margin:22px 0 12px;color:#f0f8ec;font-size:13px;line-height:1.45}.persona-reaction-quote{margin:0;padding-top:13px;border-top:1px solid #a8f4d139;color:#b8d3c8;font-size:11px;line-height:1.55}
.persona-boundary{margin-top:19px;padding:13px 17px;border-left:3px solid #e4f692;background:#e4f69215;color:#c1d6cc;font-size:11px;line-height:1.6}
@media(max-width:1050px){.persona-research-grid{grid-template-columns:1fr}.persona-research-aside{display:grid;grid-template-columns:1fr 1fr}.persona-deep-link{grid-column:1/-1}}
@media(max-width:760px){.persona-lab-head{display:block}.persona-lab-head>p{margin-top:20px}.persona-rounds-panel{padding:13px}.persona-rounds{grid-template-columns:repeat(5,minmax(0,1fr))}.persona-round-detail{padding:15px}.persona-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.persona-research-aside{display:flex}.persona-reaction-head{display:block}.persona-reaction-head>p{margin-top:12px}.persona-reaction-cards{grid-template-columns:1fr}.persona-reaction-action{min-height:0}}

.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 .persona-reaction-head>p b{color:var(--mint)}.agent-poll .persona-reaction-head>p span{color:inherit;font:inherit;letter-spacing:normal}
.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}

.agent-poll-stats{max-width:1480px;margin:0 auto 14px;white-space:pre-line;color:#b9d5ca;font-size:10px;font-weight:700;letter-spacing:.08em;line-height:1.7}
.bloor-map-actors{pointer-events:auto;cursor:pointer}
.map-motion-note{position:absolute;z-index:4;top:52px;left:27px;max-width:min(360px,calc(100% - 54px));margin:0;padding:10px 12px;border:1px solid #a8f4d14d;border-radius:9px;background:#0a2029e0;color:#c9dcda;font-size:10px;line-height:1.5}.map-motion-note strong{display:block;color:var(--mint)}
.map-motion-legend{display:block;margin-top:6px;color:#9fbdb8;font-size:9px}.map-motion-legend i{display:inline-block;width:7px;height:7px;margin:0 4px 0 9px;border-radius:50%}.map-motion-legend i:first-child{margin-left:0}
.map-actor-card{margin:8px 0 0;padding-top:8px;border-top:1px solid #a8f4d133;color:#f0f8ec}
.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;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-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px;max-width:1480px;max-height:560px;margin:0 auto;overflow:auto}
.agent-card{border:1px solid #a8f4d12e;border-left:4px solid var(--rating);border-radius:7px;background:#10303a;color:#e7f8ef}.agent-card[hidden]{display:none}
.agent-card summary{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:8px 10px;cursor:pointer;list-style:none}.agent-card summary::-webkit-details-marker{display:none}
.agent-card strong{font-size:12px}.agent-card span{grid-column:1;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{margin:0;padding:0 10px 10px;color:#c9dcda;font-size:11px;line-height:1.45}
.replay-toggle{position:relative;z-index:5;display:flex;align-items:center;gap:16px;width:calc(100% - 2*clamp(18px,5vw,82px));max-width:1480px;margin:18px auto;padding:14px 18px;border:1px dashed #a8f4d159;border-radius:10px;background:#0b1c24;color:#e7f8ef;text-align:left}.replay-toggle[hidden]{display:none}.replay-toggle span{color:var(--mint);font-size:9px;font-weight:700;letter-spacing:.14em}.replay-toggle strong{flex:1;font-size:13px}.replay-toggle em{font-style:normal;color:var(--mint);font-size:11px;font-weight:700}
body.replay-collapsed:not([data-scenario=custom]) #impact,body.replay-collapsed #bikeLab,body.replay-collapsed #ttcWorkbench{display:none}
.agent-card--check summary 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, the replay scrubber, the shared ledger and the charts ---------- */
.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}
.story-rail>p.compiler-badge{display:inline-block;margin:-8px 0 18px;padding:6px 9px;border:1px solid #e4f6926b;border-radius:6px;background:#e4f69214;color:var(--bike-lemon);font-size:9px;font-weight:700;letter-spacing:.12em;line-height:1.5}
.story-rail>p.compiler-badge[hidden]{display:none}
.bike-world[hidden],#runLedger[hidden],.experiment-ledger[hidden],.timeline-time[hidden],.timeline-periods[hidden],.event-replay-play[hidden],.map-persona-card[hidden],.map-ratings-toggle[hidden],.run-rerun[hidden],.clef-card[hidden],.run-sweep[hidden]{display:none}

/* Timeline as the event replay scrubber */
.timeline-bar.is-replay{grid-template-columns:minmax(250px,300px) 1fr auto}
.timeline-bar.is-replay .timeline-heading strong{white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:760px){.timeline-bar.is-replay{grid-template-columns:1fr}.timeline-bar.is-replay .timeline-heading strong{white-space:normal}}
.event-replay-play{flex:none;width:32px;height:32px;border:1px solid #b3d9d46c;border-radius:50%;background:#102a31d9;color:var(--mint);font-size:13px;cursor:pointer}
.event-replay-play:hover,.event-replay-play:focus-visible{background:#315b5b}
.timeline-periods{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end}
.timeline-periods button{padding:6px 8px;border:1px solid #a8f4d13d;border-radius:20px;background:#0b212a;color:#aac1c4;font-size:9px;font-weight:700;letter-spacing:.08em;cursor:pointer}
.timeline-periods button:hover,.timeline-periods button:focus-visible{border-color:var(--mint);color:var(--cream)}
.timeline-periods button.current{background:var(--mint);border-color:var(--mint);color:#0c2a2a}
@media(max-width:760px){.timeline-periods{justify-content:flex-start}}

/* Rating overlay toggle and synthetic persona card on the map */
.map-motion-note.is-collapsed .map-motion-detail{display:none}
.map-ratings-toggle{display:block;margin-top:7px;padding:5px 9px;border:1px solid #a8f4d166;border-radius:20px;background:transparent;color:var(--mint);font-size:9px;font-weight:700;letter-spacing:.06em;cursor:pointer}
.map-ratings-toggle[aria-pressed="true"]{background:var(--mint);color:#0c2a2a}
.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}
.map-persona-link{justify-self:start;margin-top:3px;padding:0;border:0;background:transparent;color:var(--bike-lemon);font-size:10px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* 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,.event-replay-play,.timeline-periods button{transition:none}}

/* ---------- Demo view (body.demo-view, set in index.html; the only view) ----------
   The four-beat stage walkthrough: city → prompt → 3D → report, then the 100 agents. */
.people-strip[hidden],.lab-badge[hidden],.report-story[hidden]{display:none!important}

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

/* What the demo view hides */
body.demo-view .lab-topline,body.demo-view .story-rail,body.demo-view .insight-rail,body.demo-view .focus-marker,
body.demo-view .viewport-upper,body.demo-view .world-caption,body.demo-view #mapMotionNote,body.demo-view #mapAttribution,
body.demo-view #runLedger,body.demo-view #replayToggle,body.demo-view #ttcWorkbench,body.demo-view #bikeLab,body.demo-view #personaLab,
body.demo-view .impact-section-head,body.demo-view .sector-board,body.demo-view .overview-head{display:none!important}
/* The 3D viewer has its own playback; the event scrubber stays only for the 2D fallback. */
body.demo-view .lab-shell:has(.simulation-viewport.is-3d) .timeline-bar{display:none!important}
body.demo-view #impact:not(.is-detail-open) .impact-layout{display:none}
body.demo-view.replay-collapsed #impact:not([hidden]){display:block}
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 and the strip; 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,.simulation-viewport.is-speculative .view3d-toggle{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}
.lab-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;color:#c3d6d6;font-size:11px;font-weight:600;letter-spacing:.2px}
.lab-status .live-pulse{width:5px;height:5px}
.lab-badge{padding:4px 9px;border:1px solid #a8f4d14d;border-radius:20px;background:#0b212ad9;color:var(--mint);font-size:9px;font-weight:700;letter-spacing:1.1px}
.lab-badge--compiler{border-color:#e4f6926b;color:#e4f692}
.lab-scenarios{flex:none;display:inline-flex;gap:3px;padding:4px;border:1px solid #a8f4d13b;border-radius:40px;background:#0b212ae6}
.lab-scenarios .switch-button{display:block;border:0;border-radius:30px;padding:10px 16px;background:transparent;color:#aac1c4;font-size:11px;font-weight:700}
.lab-scenarios .switch-button:hover{color:var(--cream);background:#ffffff12}
.lab-scenarios .switch-button.active{background:var(--mint);color:#0c2a2a}
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 .view3d-toggle{order:2}
body.demo-view .motion-button{order:3}

/* People who changed: one chip per person, under the 3D view */
.people-strip{display:flex;align-items:center;gap:18px;margin-top:12px;padding:10px 12px 10px 18px;border:1px solid #a8f4d12e;border-radius:14px;background:linear-gradient(145deg,#12303aeb,#0b222ce8);backdrop-filter:blur(10px)}
.people-strip-head{flex:none;display:grid;gap:4px;max-width:200px}
.people-strip-head span{color:var(--mint);font-size:9px;font-weight:700;letter-spacing:1.5px}
.people-strip-head small{color:#9fbdb8;font-size:10px;line-height:1.4}
.people-strip-choices{flex:1;min-width:0;display:flex;gap:8px;overflow-x:auto;padding:2px}
.people-chip{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:9px 15px;border:1px solid #a8f4d13d;border-radius:11px;background:#0e2a33;color:var(--cream);text-align:left;transition:border-color .2s,background .2s,transform .2s}
.people-chip strong{font:600 14px/1.1 'Space Grotesk',sans-serif;letter-spacing:-.02em}
.people-chip span{color:#b9d5ca;font-size:11px;white-space:nowrap}
.people-chip:hover{border-color:var(--mint);background:#173d43;transform:translateY(-1px)}
.people-chip[aria-pressed="true"]{border-color:var(--mint);background:#1d4a48;box-shadow:inset 0 0 0 1px #a8f4d140}
.people-chip[aria-pressed="true"] strong{color:var(--mint)}
.people-chip:focus-visible{outline-offset:2px}
.lab-credit{margin:9px 2px 0;color:#86a5a8;font-size:9px;letter-spacing:.3px}
.lab-credit a{color:inherit}

/* Report: headline, mini cards, the five charts, what we don't estimate */
body.demo-view .impact-section{min-height:0;padding:96px clamp(22px,4vw,64px) 70px}
.report{max-width:1480px;margin:0 auto}
.report-head{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:24px}
.report-head h2{margin:14px 0 0;font-size:clamp(46px,5vw,78px);line-height:1}
.report-head p{max-width:440px;margin:0 0 4px;color:#b3c9c7;font-size:13px;line-height:1.55}
.report-top{display:grid;grid-template-columns:minmax(300px,1.4fr) minmax(0,3fr);gap:12px;align-items:stretch}
.report-headline{display:flex;flex-direction:column;justify-content:center;padding:24px 26px;border:1px solid #a8f4d166;border-radius:14px;background:radial-gradient(circle at 85% 0%,#2f6a5a73,transparent 55%),linear-gradient(150deg,#163a40,#0c252e);box-shadow:0 24px 60px #0004}
.report-headline small{color:#cfe3dc;font-size:9px;font-weight:700;letter-spacing:1.5px}
.report-headline strong{display:block;margin:8px 0 6px;color:var(--mint);font:500 clamp(54px,5.4vw,88px)/1 'Space Grotesk',sans-serif;letter-spacing:-.06em;font-variant-numeric:tabular-nums;white-space:nowrap}
.report-headline strong.is-long{font-size:clamp(30px,2.7vw,44px);letter-spacing:-.04em;margin:14px 0 12px}
.report-headline span{color:#9fbdb8;font-size:11px}
.report-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.report-mini-card{display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-width:0;padding:20px 22px;border:1px solid #a8f4d130;border-radius:14px;background:#102d34d9}
.report-mini-card span{color:#bfd0d1;font-size:10px;font-weight:700;letter-spacing:.9px;text-transform:uppercase}
.report-mini-card strong{font:500 clamp(22px,1.95vw,32px)/1.08 'Space Grotesk',sans-serif;letter-spacing:-.04em;color:#e2e9e4;font-variant-numeric:tabular-nums}
.report-mini-card strong.negative{color:var(--coral)}.report-mini-card strong.positive{color:var(--mint)}
.report-story{display:flex;gap:11px;align-items:baseline;margin:12px 0 0;padding:13px 16px;border:1px solid #e4f69240;border-left:3px solid #e4f692;border-radius:10px;background:#e4f6920f;color:#e6f0dc;font-size:13px;line-height:1.5}
.report-story::before{content:'⌑';flex:none;color:#e4f692}
.report-charts-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;color:var(--mint);font-size:9px;font-weight:700;letter-spacing:1.4px}
.report-legend{display:flex;align-items:center;gap:6px;color:#b7cecc}
.report-legend .chart-key{margin-left:10px}
body.demo-view .overview-section{margin-top:30px;padding-top:24px}
.overview-card-finding{display:none}
body.demo-view .overview-card-finding{display:block;margin:0 0 9px;color:#cfe0dc;font-size:11px;line-height:1.35}
body.demo-view .overview-card strong{margin-top:14px}
body.demo-view .impact-layout{grid-template-columns:1fr;margin-top:12px}
body.demo-view .sector-detail{width:100%;max-width:880px;min-height:0;margin:0 auto}
.report-limits{max-width:1480px;margin:22px auto 0}
.report-limits-box{display:flex;align-items:center;gap:20px;padding:18px 20px;border:1px solid #ff987e55;border-radius:14px;background:linear-gradient(120deg,#3a2e2a8c,#14262cc7)}
.report-limits-head{flex:none;display:grid;gap:4px}
.report-limits-head span{color:var(--coral);font-size:9px;font-weight:700;letter-spacing:1.5px}
.report-limits-head strong{font:600 18px 'Space Grotesk',sans-serif;letter-spacing:-.02em}
.report-not-estimable{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}
.report-not-estimable li{padding:7px 12px;border:1px solid #ff987e4d;border-radius:20px;background:#2b1f1c80;color:#f4d6cc;font-size:11px;font-weight:600}
.report-not-estimable li[title]{cursor:help}
.report-limits .text-link{flex:none;margin:0}
.report-provenance{margin:14px 2px 0;color:#9fbdb8;font-size:11px;letter-spacing:.2px}

/* The 100 agents close the walkthrough; the footer stays short. */
body.demo-view .agent-poll{padding-top:76px;padding-bottom:76px}
body.demo-view .about-strip{min-height:0;padding:34px clamp(24px,5vw,84px)}
body.demo-view .about-strip>div{font-size:clamp(24px,2.4vw,38px)}

@media(max-width:1100px){.report-top{grid-template-columns:1fr}}
@media(max-width:760px){
  .lab-titlebar{display:block}.lab-scenarios{margin-top:12px}
  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}
  .people-strip{display:block;padding:12px}.people-strip-head{max-width:none;margin-bottom:9px}
  .report-head{display:block}.report-head p{margin-top:12px}
  .report-mini{grid-template-columns:1fr}
  .report-charts-head{flex-wrap:wrap}
  .report-limits-box{display:block}.report-not-estimable{margin:12px 0}
}
