/* Stories: the chapters on the left, the pinned figure on the right (on phones the figure pins above the text).
   Type and colour are the site tokens; red marks only what is live, selected or the result in question. */
.st{--nav:var(--space-nav-h,64px);--lh:46px;display:block!important;width:100%;color:var(--t1);background:var(--bg)}
.st a{color:inherit}
.nxo-sr,.st-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.st-body{display:grid;grid-template-columns:minmax(360px,.78fr) minmax(0,1.32fr);max-width:1680px;margin:0 auto;padding-top:var(--nav)}
.st-col{padding:0 clamp(24px,3.4vw,56px) 12vh;min-width:0}
.st-stage{position:sticky;top:var(--nav);height:calc(100vh - var(--nav));background:transparent;overflow:hidden;isolation:isolate}
.st-stage canvas{display:block;width:100%;height:100%;outline:none;touch-action:pan-y}
.st-stage canvas:focus-visible{outline:2px solid var(--accent-hot,var(--accent));outline-offset:-2px}
.st-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.st-2d{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:72px clamp(20px,4vw,64px) 72px;overflow:auto}
.st-2d[hidden]{display:none}.st-fig2{width:100%;max-width:980px}
.st-cap{position:absolute;top:22px;inset-inline-start:36px;display:flex;gap:14px;font:500 11px/1 var(--mono);letter-spacing:.06em;color:var(--t3);z-index:3;pointer-events:none}
.st-cap .st-fig{color:var(--t1)}
.st-out{position:absolute;inset-inline-end:36px;bottom:26px;margin:0;display:grid;grid-template-columns:auto auto;gap:4px 14px;font:11px/1.4 var(--mono);color:var(--t3);text-align:end;z-index:3;max-width:60%;pointer-events:none;font-variant-numeric:tabular-nums}
.st-out dd{margin:0;color:var(--t1)}
.st-lbl{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.st-lbl span{/*rtl:keep*/position:absolute;left:0;top:0;font:500 10.5px/1 var(--mono);letter-spacing:.04em;color:var(--t2);white-space:nowrap;padding:3px 5px;margin:-18px 0 0 6px;background:color-mix(in srgb,var(--bg) 72%,transparent);border-left:1px solid var(--hair2)}
.st-lbl span.red{color:var(--t1);border-inline-start-color:var(--accent-graphic,var(--accent))}
.st-ui{position:absolute;inset:0;pointer-events:none;z-index:3}
/* chapters */
.st-intro{min-height:calc(100vh - var(--nav));display:flex;flex-direction:column;justify-content:center;padding:6vh 0}
.st-k{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 18px;font:500 12px/1.4 var(--mono);letter-spacing:.04em;color:var(--t3)}
.st-k a{text-decoration:none;color:var(--t2)}.st-k a:hover{color:var(--t1)}.st-k a::after{content:"/";margin-inline-start:12px;color:var(--t3)}
.st-intro h1{font:500 clamp(34px,3.6vw,56px)/1.04 var(--sans);letter-spacing:-.02em;margin:0 0 20px;max-width:16ch;text-wrap:balance}
.st-intro .lede{font-size:clamp(17px,1.25vw,19px);line-height:1.55;color:var(--t2);max-width:56ch;margin:0 0 28px}
.st-meta{display:grid;gap:10px;margin:0 0 24px;padding:16px 0 0;border-top:1px solid var(--hair);max-width:56ch}
.st-meta div{display:grid;grid-template-columns:110px 1fr;gap:12px}.st-meta dt{font:500 11px/1.6 var(--mono);color:var(--t3);letter-spacing:.04em}.st-meta dd{margin:0;font-size:14px;color:var(--t2)}
.st-skip a{font:12px var(--mono);color:var(--t3)}
.st-ch{min-height:88vh;padding:14vh 0 8vh;border-top:1px solid var(--hair);opacity:.42;transition:opacity var(--dur-base,.24s) var(--ease-standard,ease)}
.st-ch.on{opacity:1}
.st-n{display:flex;align-items:center;gap:12px;margin:0 0 14px;font:500 11px/1 var(--mono);letter-spacing:.06em;color:var(--t3)}
.st-n b{font-weight:500;color:var(--t1)}.st-ch.on .st-n b{color:var(--accent-text,var(--accent))}
.st-ch h2{font:500 clamp(24px,2vw,30px)/1.15 var(--sans);letter-spacing:-.01em;margin:0 0 16px;max-width:24ch;text-wrap:balance}
.st-ch p{font-size:16px;line-height:1.65;color:var(--t2);max-width:60ch;margin:0 0 14px}
.st-cite a{font:500 10px var(--mono);color:var(--accent-text,var(--accent));text-decoration:none;padding:0 1px}
.st-cite a:hover,.st-cite a:focus-visible{text-decoration:underline}
.st-alt{margin:20px 0 0;max-width:60ch;border-top:1px solid var(--hair);padding-top:10px;font-size:14px;color:var(--t2)}
.st-alt summary{cursor:pointer;font:12px/1.5 var(--mono);color:var(--t3);list-style-position:outside}
.st-alt summary:focus-visible{outline:2px solid var(--accent-hot,var(--accent));outline-offset:2px}
.st-alt table{border-collapse:collapse;margin:10px 0;font-size:13px;width:100%}.st-alt th,.st-alt td{text-align:start;padding:4px 8px 4px 0;border-bottom:1px solid var(--hair);font-weight:400}
.st-alt caption{text-align:start;color:var(--t3);font:11px var(--mono);padding-bottom:6px}
.st-alt ol,.st-alt ul{padding-inline-start:1.2em;line-height:1.6}.st-alt dt{font-weight:500;color:var(--t1)}.st-alt dd{margin:0 0 6px}
/* chapter controls */
.st-ctl:empty{display:none}.st-ctl{margin:20px 0 4px;max-width:60ch}
.st-ctl fieldset{border:0;margin:0;padding:0}.st-ctl legend{font:500 11px var(--mono);letter-spacing:.04em;color:var(--t3);margin-bottom:10px}
.st-seg{display:flex;flex-wrap:wrap;gap:8px}.st-seg label,.st-chk label{position:relative;cursor:pointer}
.st-seg input,.st-chk input{position:absolute;opacity:0;width:1px;height:1px}
.st-seg span,.st-chk span{display:inline-block;padding:8px 12px;border:1px solid var(--hair2);border-radius:5px;font:12px/1.2 var(--mono);color:var(--t2);min-height:20px}
.st-seg input:checked+span{border-color:var(--accent-graphic,var(--accent));color:var(--t1);background:var(--accent-bg)}
.st-chk{display:flex;flex-wrap:wrap;gap:8px}.st-chk span::before{content:"";display:inline-block;width:9px;height:9px;border:1px solid var(--t3);margin-inline-end:8px;vertical-align:-1px}
.st-chk input:checked+span{color:var(--t1)}.st-chk input:checked+span::before{background:var(--t1);border-color:var(--t1)}
.st-seg input:focus-visible+span,.st-chk input:focus-visible+span{outline:2px solid var(--accent-hot,var(--accent));outline-offset:2px}
.st-rng{display:flex;align-items:center;gap:12px;margin-top:14px;font:11px var(--mono);color:var(--t3)}
.st-sim{display:grid;gap:14px}.st-sim label{display:grid;gap:6px}.st-sim label>span{display:flex;justify-content:space-between;font:12px var(--mono);color:var(--t2)}
.st-sim output{color:var(--t1);font-variant-numeric:tabular-nums}.st-sim select{font:13px var(--mono);padding:8px;background:var(--surface);color:var(--t1);border:1px solid var(--hair2);border-radius:5px}
.st input[type=range]{width:100%;accent-color:var(--accent-graphic,var(--accent));min-height:24px}
.st-sim .btn{justify-self:start}
/* comparison divider */
.st-cmp{position:absolute;inset:0}.st-cmp-rule{position:absolute;top:0;bottom:0;width:28px;margin-inline-start:-14px;cursor:ew-resize;pointer-events:auto;touch-action:none}
.st-cmp-rule::before{content:"";position:absolute;inset-inline-start:13px;top:0;bottom:0;width:1px;background:var(--t1);opacity:.7}
.st-cmp-h{position:absolute;inset-inline-start:4px;top:50%;width:20px;height:44px;margin-top:-22px;border:1px solid var(--t1);border-radius:5px;background:var(--bg)}
.st-cmp-h::before,.st-cmp-h::after{content:"";position:absolute;top:14px;bottom:14px;width:1px;background:var(--t2)}.st-cmp-h::before{inset-inline-start:7px}.st-cmp-h::after{inset-inline-end:7px}
.st-cmp-a,.st-cmp-b{position:absolute;top:52px;font:500 11px/1.3 var(--mono);letter-spacing:.04em;color:var(--t1);padding:6px 10px;border:1px solid var(--hair2);border-radius:5px;background:color-mix(in srgb,var(--bg) 80%,transparent);max-width:38%}
.st-cmp-a{inset-inline-start:36px}.st-cmp-b{inset-inline-end:36px;text-align:end}
.st-cmp-r{position:absolute;left:50%;bottom:70px;width:min(320px,60%);transform:translateX(-50%);pointer-events:auto}
/* timeline */
.tl{display:grid;gap:22px}.tl-plot{position:relative;margin-inline-start:140px}
.tl-plot.v{margin-inline-start:56px}
.tl-axis{position:absolute;inset:0;pointer-events:none}
.tl-plot.h .tl-axis span{position:absolute;bottom:-4px;transform:translateX(-50%);font:11px var(--mono);color:var(--t3)}
.tl-plot.h .tl-axis span::before{content:"";position:absolute;inset-inline-start:50%;bottom:20px;height:calc(var(--lanes) * var(--lh));border-inline-start:1px solid var(--hair)}
.tl-plot.v .tl-axis span{position:absolute;inset-inline-start:-56px;transform:translateY(-50%);font:11px var(--mono);color:var(--t3)}
.tl-plot.v .tl-axis span::before{content:"";position:absolute;inset-inline-start:44px;top:50%;width:calc(100vw);border-top:1px solid var(--hair)}
.tl-lane{position:absolute;inset-inline-start:-140px;inset-inline-end:0;height:var(--lh);border-top:1px solid var(--hair);display:flex;align-items:center}
.tl-lane span{width:128px;font:11px/1.2 var(--mono);color:var(--t2)}
.tl-now{position:absolute;top:0;bottom:24px;border-inline-start:1px dashed var(--t2)}.tl-plot.v .tl-now{inset-inline-start:-8px;inset-inline-end:0;bottom:auto;border-inline-start:0;border-top:1px dashed var(--t2)}
.tl-now span{position:absolute;top:-18px;inset-inline-start:4px;font:500 10px var(--mono);color:var(--t1);letter-spacing:.06em}
.tl-m{position:absolute;padding:0;border:0;background:none;cursor:pointer;color:var(--t2);font:inherit}
.tl-plot.h .tl-m{width:28px;height:28px;margin:-14px 0 0 -14px}
.tl-m i{position:absolute;inset-inline-start:50%;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;transform:rotate(45deg);border:1.5px solid var(--t1);background:var(--bg)}
.tl-m.k-deadline i{border-radius:50%;transform:none}.tl-m.k-release i{background:var(--t1)}
.tl-m.on i{border-color:var(--accent-graphic,var(--accent));background:var(--accent-graphic,var(--accent))}
.tl-m:focus-visible{outline:2px solid var(--accent-hot,var(--accent));outline-offset:2px;border-radius:4px}
.tl-plot.v .tl-m{inset-inline-start:0;inset-inline-end:0;display:grid;grid-template-columns:28px 76px 1fr;align-items:center;text-align:start;transform:translateY(-50%);min-height:30px}
.tl-plot.v .tl-m i{inset-inline-start:14px}.tl-plot.v .tl-m b{font:500 11px var(--mono);color:var(--t3);grid-column:2}.tl-plot.v .tl-m span{grid-column:3;font-size:13px;line-height:1.3;color:var(--t2)}
.tl-plot.v .tl-m.on span{color:var(--t1)}
.tl-card{border-top:1px solid var(--hair2);padding-top:16px;min-height:120px}
.tl-d{font:500 11px var(--mono);color:var(--t3);letter-spacing:.04em}.tl-card h3{margin:6px 0 8px;font:500 19px/1.3 var(--sans)}.tl-card p{margin:0 0 8px;color:var(--t2);font-size:14px;line-height:1.6;max-width:70ch}
.tl-std{font:11px var(--mono);color:var(--t2);border:1px solid var(--hair2);border-radius:4px;padding:3px 7px}
/* simulator drawing */
.sim{width:100%;height:auto;display:block;font-family:var(--mono)}
.sim .ink{fill:none;stroke:var(--t1);stroke-width:1.2}.sim .faint{fill:none;stroke:var(--t3);stroke-width:1}.sim .red{fill:none;stroke:var(--accent-graphic,var(--accent));stroke-width:1.6}
.sim .thick{stroke-width:2}.sim .redf{fill:var(--accent-graphic,var(--accent))}.sim .fillp{fill:var(--bg)}.sim .dim{fill:none;stroke:var(--t2);stroke-width:1}.sim .axis{fill:none;stroke:var(--t3)}
.sim .bar{fill:var(--t3)}.sim .bar2{fill:var(--hair2)}.sim .barr{fill:var(--accent-graphic,var(--accent))}
.sim text{font-size:13px;fill:var(--t2)}.sim .note{fill:var(--t3);font-size:12px}.sim .strong{fill:var(--t1);font-weight:500}.sim .red-t{fill:var(--t1)}
/* Phones: the simulator is drawn on an 800-unit canvas shown at about 45 per cent; its labels grow so they print near 9 px. */
@media (max-width:620px){.sim text{font-size:20px}.sim .note{font-size:19px}}
.sim-out{display:flex;flex-wrap:wrap;gap:10px 28px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--hair2)}
.sim-out dt{font:11px var(--mono);color:var(--t3)}.sim-out dd{margin:2px 0 0;font:500 18px/1.2 var(--mono);color:var(--t1);font-variant-numeric:tabular-nums}
.sim-out div:first-child dd{color:var(--accent-text,var(--accent))}
/* data story */
.dv{position:relative}.dv-head{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.dv-t{font:500 15px/1.3 var(--sans);color:var(--t1)}.dv-u{font:11px var(--mono);color:var(--t3)}
.dv-tg{margin-inline-start:auto;font:12px var(--mono);color:var(--t2);background:none;border:1px solid var(--hair2);border-radius:5px;padding:6px 10px;cursor:pointer}
.dv-tg:focus-visible{outline:2px solid var(--accent-hot,var(--accent));outline-offset:2px}
.dv svg{width:100%;height:auto;display:block;overflow:visible}
.dv .grid{stroke:var(--hair);fill:none}.dv .base{stroke:var(--t3);fill:none}.dv .tick{font:11px var(--mono);fill:var(--t3)}
.dv .cat{font:12px var(--mono);fill:var(--t2)}.dv .val{font:500 12px var(--mono);fill:var(--t1)}
.dv .bar{fill:var(--t3)}.dv .mk.on .bar,.dv .mk.on .dot{fill:var(--accent-graphic,var(--accent))}.dv .mk:hover .bar,.dv .mk:focus .bar{fill:var(--t2)}.dv .mk.on:hover .bar{fill:var(--accent-hot,var(--accent))}
.dv .line{fill:none;stroke:var(--t1);stroke-width:2}.dv .dot{fill:var(--t1);stroke:var(--bg);stroke-width:2}.dv .hit{fill:transparent}
.dv .mk{outline:none}.dv .mk:focus-visible .cat,.dv .mk:focus-visible .dot{text-decoration:underline;stroke:var(--accent-hot,var(--accent))}
.dv-tip{position:absolute;z-index:2;min-width:120px;max-width:220px;padding:8px 10px;background:var(--surface);border:1px solid var(--hair2);border-radius:5px;font:12px/1.4 var(--mono);color:var(--t2);pointer-events:none}
.dv-tip b{color:var(--t1);font-weight:500;margin-inline-end:6px}.dv-tip i{display:block;font-style:normal;color:var(--t3)}
.dv-tab table{width:100%;border-collapse:collapse;font-size:14px}.dv-tab th,.dv-tab td{text-align:start;padding:7px 10px 7px 0;border-bottom:1px solid var(--hair);font-weight:400}.dv-tab thead th{font:11px var(--mono);color:var(--t3)}.dv-tab td{font-variant-numeric:tabular-nums}
/* after the story */
.st-after{max-width:1680px;margin:0 auto;padding:64px clamp(24px,3.4vw,56px) 96px;border-top:1px solid var(--hair)}
.st-after h2{font:500 22px/1.2 var(--sans);margin:0 0 18px}
.st-refs ol{margin:0 0 56px;padding-inline-start:1.6em;columns:2 420px;column-gap:56px;font-size:14px;line-height:1.55;color:var(--t2)}
.st-refs ol:dir(rtl){padding-inline-end:1.6em}.st-refs li{break-inside:avoid;margin-bottom:10px}.st-refs li:target{outline:1px solid var(--accent-graphic,var(--accent));outline-offset:4px}
.st-refs a{color:var(--t1)}
.st-links p{display:flex;flex-wrap:wrap;gap:8px}.st-links a{font:12px var(--mono);padding:7px 11px;border:1px solid var(--hair2);border-radius:5px;text-decoration:none;color:var(--t1);text-transform:none}
.st-links a:hover,.st-links a:focus-visible{border-color:var(--accent-graphic,var(--accent))}
.st-rel{margin-bottom:56px}
/* index and cards */
.st-index{max-width:1440px;margin:0 auto;padding:calc(var(--nav) + 64px) clamp(16px,3.4vw,48px) 96px}
.st-ih h1{font:500 clamp(34px,4vw,60px)/1.04 var(--sans);letter-spacing:-.02em;margin:0 0 18px;max-width:18ch;text-wrap:balance}
.st-ih .lede{font-size:18px;line-height:1.55;color:var(--t2);max-width:62ch;margin:0 0 32px}
.st-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.st-filter button{font:12px var(--mono);padding:8px 12px;border:1px solid var(--hair2);border-radius:5px;background:none;color:var(--t2);cursor:pointer}
.st-filter button span{color:var(--t3);margin-inline-start:6px}.st-filter button[aria-pressed=true]{border-color:var(--accent-graphic,var(--accent));color:var(--t1);background:var(--accent-bg)}
.st-filter button:focus-visible{outline:2px solid var(--accent-hot,var(--accent));outline-offset:2px}
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
/* a short row of related stories spreads across the row instead of leaving empty slots */
.st-grid:not(:has(>:nth-child(5))){grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.st-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--t2);padding-bottom:6px}
.st-card[hidden]{display:none}
.st-card img{width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;border:1px solid var(--hair);border-radius:5px;background:#000}
.st-card:hover img,.st-card:focus-visible img{border-color:var(--accent-graphic,var(--accent))}
.st-card:focus-visible{outline:2px solid var(--accent-hot,var(--accent));outline-offset:4px;border-radius:5px}
.st-cardk{font:11px var(--mono);color:var(--t3);letter-spacing:.03em;margin-top:6px}.st-card b{font:500 18px/1.25 var(--sans);color:var(--t1)}.st-cardd{font-size:14px;line-height:1.5}
/* embeds (platform and industry homes) */
.st-emb .st-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.st-emb .st-grid:not(:has(>:nth-child(5))){grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
html.embed .st-col,html.embed .st-after,html.embed header,html.embed footer{display:none}html.embed .st-body{display:block;padding:0}html.embed .st-stage{position:fixed;inset:0;height:auto;border:0}
@media (max-width:900px){
  .st-body{display:flex;flex-direction:column-reverse}
  .st-stage{top:var(--nav);height:46vh;z-index:5;border-inline-start:0;background:var(--bg)}
  .st-col{padding:0 16px 30vh}
  .st-intro{min-height:auto;padding:28px 0 40px}
  .st-ch{min-height:70vh;padding:40px 0 30px;opacity:1}
  .st-2d{padding:52px 16px 16px;align-items:flex-start}
  .st-cap{inset-inline-start:24px;top:20px}.st-out{display:none}
  .st-cmp-a,.st-cmp-b{top:44px;font-size:10px;padding:4px 8px}.st-cmp-a{inset-inline-start:16px}.st-cmp-b{inset-inline-end:16px}
  .tl-plot.h{margin-inline-start:120px}
  .st-after{padding:40px 16px 72px}.st-refs ol{columns:1}
  .sim-out dd{font-size:15px}
}
@media (prefers-reduced-motion:reduce){.st-ch{transition:none}}
