/* Supply-chain journey page. Loads after site.css and reuses its tokens. */
:root{--rail-h:76px;--attack:#ff8a7a;--defend:#7db1ff;--route:#0879ff;--panel:#080e1b;--panel-line:#37527c55;--mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;--ease-out:cubic-bezier(.16,1,.3,1);--sans:Inter,"Segoe UI",Arial,sans-serif}
html{scroll-padding-top:calc(var(--rail-h) + 28px);scrollbar-color:#2b3c5c #05070d}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.nav-link[aria-current="page"]{color:#fff;text-decoration:underline;text-decoration-color:var(--route);text-underline-offset:8px}

/* Hero */
.j-hero{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(330px,1fr);gap:clamp(40px,6vw,96px);align-items:center;min-height:calc(100svh - 116px - var(--rail-h));padding-top:24px;padding-bottom:56px}
.j-hero h1{font-size:clamp(48px,5.7vw,88px);line-height:1.02;margin:0 0 34px;text-wrap:balance}
@media (min-width:701px){.j-hero h1 span{white-space:nowrap}}
.j-hero h1 span{display:block;color:var(--pale);text-wrap:balance}
.j-lede{font-size:24px;line-height:1.45;letter-spacing:-.02em;max-width:560px;margin:0 0 14px}
.j-hero-text{font-size:16px;line-height:1.8;color:var(--muted);max-width:520px;margin:0 0 28px}
.change-card{border:1px solid #355178;border-radius:10px;background:var(--panel);padding:24px 26px 18px;box-shadow:0 28px 60px -18px #000c}
.card-head,.record-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid var(--panel-line);font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#8cb6ff}
.card-head span:last-child,.record-head span:last-child{color:#8b9ab4;letter-spacing:.06em}
.record-head span:last-child{font:12px var(--mono);letter-spacing:0;text-transform:none}
.change-service{font:12px var(--mono);color:#9fb4d5;margin:20px 0 6px}
.change-summary{font-size:22px;line-height:1.4;letter-spacing:-.02em;margin:0 0 22px;color:#eef3fb}
.change-meta{margin:0 0 14px}
.change-meta div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--panel-line);font-size:13px;line-height:1.5}
.change-meta dt{color:#93a2bb}.change-meta dd{margin:0;color:#d9e5fa;text-align:right}
.change-start{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:13px;color:#a6caff}
.change-start:hover{color:#fff}

/* Rail */
.journey{position:relative}
.rail{position:sticky;top:0;z-index:20;background:#05070d;border-block:1px solid #a2b8df1f}
.rail-inner{position:relative;display:flex;align-items:center;height:var(--rail-h)}
.rail-now{display:none}
.rail-line{position:relative;flex:1}
.rail-stops{position:relative;z-index:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));list-style:none;margin:0;padding:0}
.rail-stop{position:relative;display:block;min-height:44px;padding:24px 8px 4px 0;font-size:12px;line-height:1.3;color:#8e9bb2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}
.rail-stop:before{content:"";position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;background:#05070d;border:1.5px solid #4b6690;transition:background .35s,border-color .35s}
.rail-num{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:#6f7d95;margin-right:4px}
.rail-stop:hover{color:#fff}
.rail-stop.is-past:before{background:#0b3a7a;border-color:var(--route)}
.rail-stop[aria-current="step"]{color:#fff}
.rail-stop[aria-current="step"] .rail-num{color:#8cb6ff}
.rail-stop[aria-current="step"]:before{background:var(--route);border-color:var(--route);outline:1.5px solid #0879ff80;outline-offset:3px}
.rail-track{position:absolute;top:10px;left:5px;width:87.5%;height:1px;background:#2a3a57}
.rail-fill{position:absolute;inset:0;background:var(--route);transform:scaleX(var(--p,0));transform-origin:left}
.rail-marker{display:none;position:absolute;top:-6px;left:calc(var(--p,0) * 100%);width:13px;height:13px;margin-left:-6.5px;border-radius:50%;background:#fff;border:3px solid var(--route)}
.js .rail-marker{display:block}

/* Stations */
.journey-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(40px,5vw,80px)}
.station{min-height:calc(100svh - var(--rail-h));padding:88px 0 96px;border-bottom:1px solid var(--line)}
.station:last-child{border-bottom:0}
.station h2{font-size:clamp(40px,4.6vw,64px);line-height:1.04;margin:0 0 28px;text-wrap:balance}
.station h2 span{display:block;color:var(--pale)}
.station-story{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:start;margin-bottom:36px}
.station-lead{font-size:19px;line-height:1.6;letter-spacing:-.01em;color:#dfe5ef;margin:0;max-width:62ch}
.station-change{font-size:14px;line-height:1.7;color:var(--muted);margin:0;padding-left:16px;border-left:1px solid #2b4470}
.station-change span,.enc-attempt span,.enc-answer span,.sr-label{display:block;margin-bottom:5px;font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#8cb6ff}

/* Encounter: the signature moment */
.encounter{display:grid;grid-template-columns:260px minmax(0,1fr);gap:36px;align-items:center;margin:0 0 44px;padding:22px 28px;border:1px solid #1d2b45;border-radius:10px;background:#070b15}
.encounter-art{display:block;width:100%;height:auto;overflow:visible}
.enc-route{stroke:var(--route);stroke-width:2}
.enc-ring{fill:none;stroke:#0879ff40;stroke-width:5}
.enc-node{fill:var(--route)}
.enc-shield{fill:none;stroke:var(--defend);stroke-width:3;stroke-linecap:round;transform-box:view-box;transform-origin:130px 104px}
.enc-attack{fill:none;stroke:var(--attack);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.6}
.enc-burst{fill:none;stroke:var(--attack);stroke-width:2}
.enc-deflect{fill:none;stroke:var(--attack);stroke-width:2.25;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:.9}
.enc-arrow{fill:none;stroke:var(--attack);stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.enc-intent{fill:none;stroke:var(--attack);stroke-width:1.5;stroke-dasharray:2 6;stroke-linecap:round;opacity:.4}
.enc-quarantine{fill:#0879ff1f;stroke:var(--defend);stroke-width:2;stroke-dasharray:4 3;transform-box:fill-box;transform-origin:center}
.enc-icon{fill:none;stroke:var(--attack);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.encounter figcaption p{margin:0;font-size:14px;line-height:1.6;color:#c8d1df}
.encounter figcaption p+p{margin-top:12px}
.enc-attempt span{color:var(--attack)}
.enc-answer span{color:var(--defend)}
.station-record{display:none}

.incident{display:inline-flex;align-items:center;min-height:28px;margin:10px 8px 0 0;padding:3px 11px;border:1px solid #ff8a7a47;border-radius:30px;font-size:12px;color:#ffc4bb;transition:border-color .2s,color .2s}
.incident .ext,.source-link .ext{flex:none;margin-left:7px;opacity:.8}
.incident:hover{border-color:var(--attack);color:#fff}
.role{display:inline-block;padding:1px 7px 2px;border:1px solid #2b4470;border-radius:3px;font:600 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;vertical-align:2px;color:#8cb6ff}

/* Promise and paired rows: each attack beside the answer that stops it. */
.promise{max-width:44ch;margin:0 0 30px;font-size:clamp(22px,2.3vw,30px);line-height:1.3;font-weight:500;letter-spacing:-.025em;color:var(--pale);text-wrap:balance}
.ledger-head,.ledger-row{display:grid;grid-template-columns:minmax(0,.85fr) 44px minmax(0,1.15fr)}
.ledger-head{padding-bottom:12px;border-bottom:1px solid var(--line);font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase}
.ledger-head span:first-child{color:var(--attack)}
.ledger-head span:last-child{color:#8cb6ff}
.ledger{display:grid;list-style:none;margin:0;padding:0}
.ledger-row{align-items:start;padding:22px 0;border-bottom:1px solid #a2b8df14}
.threat{display:grid;gap:18px;padding-top:6px}
.threat strong{display:block;margin-bottom:4px;font-size:15px;font-weight:600;letter-spacing:-.01em;color:#eef2f8}
.threat p{margin:0;font-size:13.5px;line-height:1.6;color:var(--muted)}
.incidents{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.incidents .incident{margin:0}
.ledger-arrow{display:flex;justify-content:center;padding-top:26px;color:#5d86c4}
.ledger-arrow svg{width:28px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.answer{padding:2px 22px;border:1px solid #1f3a66;border-radius:10px;background:#0a1630}
.answer-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;align-items:start;padding:16px 0}
.role-icon{display:grid;place-items:center;width:34px;height:34px;margin-top:-4px;border-radius:50%;background:#12274d;color:#9cc4ff}
.role-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.answer-item+.answer-item{border-top:1px solid #1f3a6699}
.answer-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 6px}
.answer-title strong{font-size:17px;font-weight:600;letter-spacing:-.015em;color:#fff}
.answer-item p:last-child{margin:0;font-size:14.5px;line-height:1.65;color:#c9d6ea}

/* Evidence record */
.record{position:sticky;top:calc(var(--rail-h) + 32px);align-self:start;max-height:calc(100svh - var(--rail-h) - 56px);overflow:auto;margin-top:88px;border:1px solid #355178;border-radius:10px;background:var(--panel);padding:22px 22px 16px;box-shadow:0 28px 60px -18px #000c;scrollbar-width:thin}
.record-sub{margin:14px 0 6px;font-size:13px;color:#b9c6da}
.record-lines{list-style:none;margin:0;padding:0}
.record-line{display:grid;grid-template-columns:24px minmax(0,1fr) 16px;gap:10px;padding:11px 0;border-top:1px solid #37527c33}
.record-line:first-child{border-top:0}
.rl-num{padding-top:2px;font:11px var(--mono);color:#8cb6ff;transition:color .4s}
.rl-title{display:block;font-size:13.5px;color:#e3eaf6;transition:color .4s}
.rl-detail{display:block;margin-top:3px;font:12px/1.6 var(--mono);color:#93a2bb;overflow-wrap:anywhere}
.rl-check{width:16px;height:16px;margin-top:2px;fill:none;stroke:var(--defend);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:16;stroke-dashoffset:0;transition:stroke-dashoffset .5s var(--ease-out)}
.record-foot{display:flex;align-items:center;gap:8px;margin:10px 0 0;padding-top:12px;border-top:1px solid var(--panel-line);font-size:12px;line-height:1.5;color:#9caec9}
.rf-pending{display:none}
.js .record-line:not(.is-verified) .rl-num,.js .record-line:not(.is-verified) .rl-title{color:#7c8aa3}
.js .record-line:not(.is-verified) .rl-detail{display:none}
.js .record-line:not(.is-verified) .rl-check{stroke-dashoffset:16}
.js .record:not(.is-complete) .rf-pending{display:inline}
.js .record:not(.is-complete) .rf-done{display:none}

/* Traces */
.traces{padding:110px 0 120px;background:#0a1020;border-block:1px solid #a2b8df14}
.traces-head{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:64px;align-items:end;margin-bottom:40px}
.traces h2,.coverage h2{font-size:clamp(42px,5.2vw,76px);line-height:1.04;margin:0;text-wrap:balance}
.traces h2 span,.coverage h2 span{color:var(--pale)}
.traces-head p{margin:0;font-size:16px;line-height:1.8;color:var(--muted)}
.trace-picker{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px;padding:0;border:0}
.trace-picker label{position:relative}
.trace-picker input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.trace-picker span{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid #2a3a57;border-radius:30px;font-size:13px;color:#b9c6da;transition:border-color .2s,background .2s,color .2s}
.trace-picker small{font-size:12px;color:#8b9ab4}
.trace-picker label:hover span{border-color:#4b6690;color:#fff}
.trace-picker input:checked+span{border-color:var(--attack);background:#2a1214;color:#ffe1db}
.trace-picker input:checked+span small{color:#ffb4a8}
.trace-picker input:focus-visible+span{outline:2px solid #87baff;outline-offset:3px}
.trace-field{position:relative;overflow:hidden;border:1px solid #1d2b45;border-radius:12px;background:#05070d}
.trace-stages{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));list-style:none;margin:0;padding:0}
.trace-stages li{padding:18px 14px;border-right:1px solid #a2b8df12;font-size:13px;line-height:1.3;color:#c9d4e6}
.trace-stages li:last-child{border-right:0}
.trace-stages span{display:block;margin-bottom:6px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:#7f8ea8}
.trace-svg{position:relative;display:block;width:100%;height:auto;margin-top:56px;margin-bottom:8px}
.trace-real{fill:none;stroke:var(--attack);stroke-width:2.5;stroke-dasharray:7 7;stroke-linecap:round;opacity:.85}
.trace-live{fill:none;stroke:var(--attack);stroke-width:3.5;stroke-linecap:round}
.trace .origin{fill:var(--attack)}
.trace .stop{fill:#05070d;stroke:var(--attack);stroke-width:2;opacity:.75}
.cut line{stroke:var(--defend);stroke-width:3;stroke-linecap:round}
.cut-first line{stroke:#cfe2ff;stroke-width:4.5}
.trace-legend{display:flex;flex-wrap:wrap;gap:22px;margin:0;padding:0 18px 16px;font-size:12px;color:#93a2bb}
.trace-legend span{display:inline-flex;align-items:center;gap:9px}
.lg-real:before{content:"";width:26px;border-top:2px dashed var(--attack)}
.lg-cut:before{content:"";width:3px;height:16px;border-radius:2px;background:var(--defend)}
.trace-stories{margin-top:34px}
.trace-story h3{margin:0 0 20px;font-size:26px;font-weight:500;letter-spacing:-.03em}
.ts-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,56px)}
.ts-cols h4{margin:0;padding-bottom:12px;border-bottom:1px solid var(--line);font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--attack)}
.ts-strip{display:none}
.ts-cols>div+div h4{color:#8cb6ff}
.ts-cols ol,.ts-cols ul{list-style:none;margin:0;padding:0}
.ts-cols li{padding:13px 0;border-bottom:1px solid #a2b8df14;font-size:14px;line-height:1.65;color:#c8d1df}
.stage-tag{display:block;margin-bottom:3px;font-size:12px;font-weight:600;color:#eef2f8}
.source-link{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;font-size:13px;color:#a6caff;border-bottom:1px solid #0879ff80}
.source-link:hover{color:#fff}
.trace{transition:opacity .45s var(--ease-out)}
.trace-story+.trace-story{margin-top:56px}
@supports selector(:has(*)){
.trace{opacity:0}
.trace-story{display:none}
.trace-story+.trace-story{margin-top:0}
.traces:has(#t-3cx:checked) .trace[data-trace="3cx"],.traces:has(#t-shai-hulud:checked) .trace[data-trace="shai-hulud"],.traces:has(#t-solarwinds:checked) .trace[data-trace="solarwinds"],.traces:has(#t-codecov:checked) .trace[data-trace="codecov"],.traces:has(#t-xz-utils:checked) .trace[data-trace="xz-utils"],.traces:has(#t-trivy:checked) .trace[data-trace="trivy"],.traces:has(#t-nx:checked) .trace[data-trace="nx"]{opacity:1}
.traces:has(#t-3cx:checked) .trace-story[data-trace="3cx"],.traces:has(#t-shai-hulud:checked) .trace-story[data-trace="shai-hulud"],.traces:has(#t-solarwinds:checked) .trace-story[data-trace="solarwinds"],.traces:has(#t-codecov:checked) .trace-story[data-trace="codecov"],.traces:has(#t-xz-utils:checked) .trace-story[data-trace="xz-utils"],.traces:has(#t-trivy:checked) .trace-story[data-trace="trivy"],.traces:has(#t-nx:checked) .trace-story[data-trace="nx"]{display:block}
}

/* Coverage map */
.coverage{padding:110px 0}
.coverage h2{margin-bottom:48px}
.coverage-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));border-top:1px solid var(--line)}
.cov-col{padding:18px 14px 8px 0}
.cov-col+.cov-col{padding-left:14px;border-left:1px solid #a2b8df14}
.cov-col a{display:flex;flex-direction:column;justify-content:center;min-height:56px;margin-bottom:6px;font-size:14px;font-weight:600;color:#eef2f8}
.cov-col a span{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;color:#8cb6ff;margin-bottom:4px}
.cov-col a:hover{color:var(--pale)}
.cov-col ul{list-style:none;margin:0;padding:0}
.cov-col li{padding:9px 0;border-top:1px solid #a2b8df10;font-size:12.5px;line-height:1.5;color:var(--muted)}

/* Foundation */
.foundation{padding:100px 0;background:#f0f1f3;color:#06144d;color-scheme:light}
.foundation .section-label{color:#075bd2}
.foundation .label-note{color:#586478}
.foundation h2{max-width:1100px;margin:0 0 56px;font-size:clamp(30px,3.8vw,53px);line-height:1.25;letter-spacing:-.04em;text-wrap:balance}
.foundation h2 span{color:#075bd2}
.foundation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #06144d26}
.foundation-grid>div{padding:28px 28px 0 0}
.foundation-grid>div+div{padding-left:28px;border-left:1px solid #06144d1f}
.foundation h3{margin:0 0 12px;font-size:20px;font-weight:600;letter-spacing:-.02em}
.foundation p{margin:0;font-size:16px;line-height:1.75;color:#4b566b}
.foundation ::selection{background:#075bd2;color:#fff}

/* Sources */
.sources{padding-top:64px;padding-bottom:16px}
.sources h2{margin:0 0 18px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#9fb4d5}
.sources ol{columns:2;column-gap:56px;margin:0;padding-left:22px;font-size:12.5px;line-height:1.7;color:#94a3bb}
.sources li{break-inside:avoid;margin-bottom:7px}
.sources a{color:#a6caff;text-decoration:underline;text-decoration-color:#0879ff80;text-underline-offset:3px;overflow-wrap:anywhere}
.sources a:hover{color:#fff}

/* Motion: the encounter plays once per station, from a visible final state when motion is reduced or scripts are off. */
@media (prefers-reduced-motion:no-preference){
.js .enc-attack{stroke-dashoffset:1;opacity:1;transition:stroke-dashoffset calc(var(--enc,1) * .9s) var(--ease-out),opacity .7s calc(var(--enc,1) * 1.5s)}
.js .enc-shield{opacity:0;transform:scale(.55);transition:opacity .35s calc(var(--enc,1) * .6s),transform .7s calc(var(--enc,1) * .6s) var(--ease-out)}
.js .enc-burst{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.3);transition:opacity .2s calc(var(--enc,1) * .85s),transform .5s calc(var(--enc,1) * .85s) var(--ease-out)}
.js .enc-answer{color:#93a2bb;transition:color .6s 1s}
.js .station.is-reached .enc-attack{stroke-dashoffset:0;opacity:.6}
.js .station.is-reached .enc-shield{opacity:1;transform:none}
.js .station.is-reached .enc-burst{opacity:1;transform:none}
.js .station.is-reached .enc-answer{color:#c8d1df}
.js .enc-deflect{stroke-dashoffset:1;transition:stroke-dashoffset calc(var(--enc,1) * .7s) calc(var(--enc,1) * .9s) var(--ease-out)}
.js .enc-arrow{opacity:0;transition:opacity .25s calc(var(--enc,1) * 1.45s)}
.js .enc-intent{opacity:0;transition:opacity .6s calc(var(--enc,1) * 1.1s)}
.js .enc-quarantine{opacity:0;transform:scale(1.8);transition:opacity .3s calc(var(--enc,1) * .85s),transform .6s calc(var(--enc,1) * .85s) var(--ease-out)}
.js .station.is-reached .enc-deflect{stroke-dashoffset:0}
.js .station.is-reached .enc-arrow{opacity:.9}
.js .station.is-reached .enc-intent{opacity:.4}
.js .station.is-reached .enc-quarantine{opacity:1;transform:none}
.rail-fill,.rail-marker{transition:transform .25s ease-out,left .25s ease-out}
}
@media (prefers-reduced-motion:reduce){.trace,.rl-check,.rail-stop,.rail-stop:before,.incident,.trace-picker span{transition:none}}

/* Mid widths: the record folds into each station. */
@media (max-width:1099px){
.journey-body{grid-template-columns:minmax(0,1fr)}
.record{display:none}
.station-record{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;align-items:baseline;margin:-20px 0 44px;padding:14px 18px;border:1px solid #2a4064;border-radius:8px;background:var(--panel)}
.sr-label{grid-row:span 2;margin:0}
.sr-title{font-size:13.5px;color:#e3eaf6}
.sr-detail{font:12px/1.6 var(--mono);color:#93a2bb;overflow-wrap:anywhere}
.coverage-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.cov-col:nth-child(5){padding-left:0;border-left:0}
.cov-col:nth-child(n+5){border-top:1px solid var(--line)}
.foundation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.foundation-grid>div{padding-bottom:28px}
.foundation-grid>div:nth-child(3){padding-left:0;border-left:0}
.foundation-grid>div:nth-child(n+3){border-top:1px solid #06144d1f}
}
@media (max-width:1000px){
.j-hero{grid-template-columns:minmax(0,1fr);min-height:0;gap:44px;padding-top:16px}
.change-card{max-width:560px}
.rail-stop{font-size:11px}
}
/* Tablet and phone: the rail shows the current stage and a progress line. */
@media (max-width:860px){
:root{--rail-h:64px}
.js .rail-now{display:flex;align-items:baseline;gap:2px;position:absolute;top:10px;left:clamp(24px,5vw,76px);margin:0;font-size:13px;color:#fff}
.rail-now-num{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:#8cb6ff}
.rail-now-of{font-size:12px;font-variant-numeric:tabular-nums;color:#6f7d95;margin-right:10px}
.js .rail-inner{align-items:flex-end;padding-bottom:6px}
.js .rail-stop{padding:22px 0 0;font-size:0;color:transparent}
.js .rail-stop .rail-num{display:none}
.js .rail-stop:before{top:16px;left:calc(50% - 5px)}
.js .rail-track{top:21px;left:calc(6.25% + .5px);width:87.5%}
.rail-stop{white-space:normal}
html:not(.js) .rail{position:static}
html:not(.js) .rail-inner{height:auto;padding-block:10px}
html:not(.js) .rail-track{display:none}
}
@media (max-width:700px){
.j-hero h1{font-size:clamp(40px,11vw,64px);margin-bottom:26px}
.j-lede{font-size:20px}
.j-hero-text{font-size:15px}
.change-card{padding:20px 18px 14px}
.change-summary{font-size:19px}
.change-meta div{flex-direction:column;gap:2px}
.change-meta dd{text-align:left}
.rail-stops{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:4px}
.js .rail-stops{grid-template-columns:repeat(8,minmax(0,1fr))}
.station{min-height:0;padding:60px 0 64px}
.station h2{font-size:clamp(34px,9vw,48px)}
.station-story{grid-template-columns:minmax(0,1fr);gap:20px}
.station-lead{font-size:17px}
.encounter{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}
.encounter-art{max-width:260px}
.station-record{grid-template-columns:minmax(0,1fr);margin-top:-24px}
.sr-label{grid-row:auto;margin-bottom:4px}
.traces,.coverage{padding:64px 0}
.traces-head{grid-template-columns:minmax(0,1fr);gap:20px}
.traces h2,.coverage h2{font-size:clamp(36px,9.4vw,56px)}
.trace-picker span{padding:0 13px;font-size:12.5px}
.ts-cols{grid-template-columns:minmax(0,1fr);gap:36px}
.ledger-head{display:none}
.ledger-row{grid-template-columns:minmax(0,1fr);gap:12px;padding:22px 0 26px}
.ledger-arrow{justify-content:flex-start;padding:0 0 0 4px}
.ledger-arrow svg{transform:rotate(90deg)}
.answer{padding:2px 18px}
.answer-title strong{font-size:16.5px}
.answer-item{grid-template-columns:30px minmax(0,1fr);gap:12px}
.role-icon{width:30px;height:30px;margin-top:-3px}
.role-icon svg{width:16px;height:16px}
.incident{min-height:44px;padding:8px 13px}
.trace-field{display:none}
.ts-strip{position:relative;display:block;list-style:none;margin:0 0 28px;padding:0 0 0 26px}
.ts-strip:before{content:"";position:absolute;left:7px;top:17px;bottom:17px;border-left:2px dashed #ff8a7a59}
.ts-strip li{position:relative;display:flex;align-items:center;gap:10px;min-height:34px;font-size:13.5px;color:#7c8aa3}
.ts-strip li:before{content:"";position:absolute;left:-24px;top:50%;width:12px;height:12px;margin-top:-6px;border-radius:50%;background:#0a1020;border:1.5px solid #2a3a57}
.ts-strip li.hit{color:#eef2f8}
.ts-strip li.hit:before{background:var(--attack);border-color:var(--attack)}
.ts-strip li.cut:before{outline:2px solid var(--defend);outline-offset:3px}
.tss-steps{display:flex;gap:4px}
.tss-steps b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#2a1214;color:#ffc4bb;font-size:12px;font-weight:600}
.tss-cut{margin-left:auto;padding:2px 8px;border:1px solid #7db1ff66;border-radius:3px;font:600 11px/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:#a9c8ff}
.trace-story h3{font-size:22px}
.coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.cov-col:nth-child(odd){padding-left:0;border-left:0}
.cov-col:nth-child(n+3){border-top:1px solid var(--line)}
.foundation{padding:60px 0}
.foundation-grid{grid-template-columns:minmax(0,1fr)}
.foundation-grid>div,.foundation-grid>div+div{padding:22px 0;border-left:0;border-bottom:1px solid #06144d1f}
.foundation-grid>div:nth-child(n+3){border-top:0}
.foundation p{font-size:15px}
.sources ol{columns:1}
}
/* Page-local legibility floor for shared site labels at phone widths. */
@media (max-width:700px){.journey-page .status{font-size:11px}}

/* See where you stand: posture from connected systems. */
.posture{padding:110px 0;background:#0a1020;border-block:1px solid #a2b8df14}
.posture-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(40px,6vw,96px);align-items:start}
.posture h2{margin:0 0 24px;font-size:clamp(40px,4.8vw,68px);line-height:1.04;text-wrap:balance}
.posture h2 span{display:block;color:var(--pale)}
.posture-lead{max-width:52ch;margin:0 0 32px;font-size:19px;line-height:1.6;letter-spacing:-.01em;color:#dfe5ef}
.posture-points{display:grid;list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.posture-points li{padding:18px 0;border-bottom:1px solid #a2b8df14}
.posture-points strong{display:block;margin-bottom:4px;font-size:16px;font-weight:600;color:#eef2f8}
.posture-points p{margin:0;font-size:14.5px;line-height:1.65;color:var(--muted)}
.posture-panel{margin:0;padding:22px 24px 18px;border:1px solid #355178;border-radius:10px;background:var(--panel);box-shadow:0 28px 60px -18px #000c}
.coverage-bars{display:grid;gap:12px;list-style:none;margin:18px 0 0;padding:0}
.coverage-bars li{display:grid;grid-template-columns:132px minmax(0,1fr) 44px;align-items:center;gap:14px;font-size:13.5px;color:#d9e5fa}
.cb-track{height:8px;border-radius:4px;background:#1a2740;overflow:hidden}
.cb-fill{display:block;width:var(--v);height:100%;border-radius:4px;background:var(--route)}
.cb-value{text-align:right;font-variant-numeric:tabular-nums;color:#c9d6ea}
.next-steps{margin-top:22px;padding-top:16px;border-top:1px solid var(--panel-line)}
.ns-head{margin:0 0 10px;font:600 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#8cb6ff}
.next-steps ol{display:grid;gap:10px;margin:0;padding-left:20px;font-size:13.5px;line-height:1.6;color:var(--muted)}
.next-steps strong{font-weight:600;color:#eef2f8}
.posture-panel figcaption{margin-top:16px;font-size:12px;line-height:1.5;color:#8b9ab4}
@media (max-width:1000px){.posture-layout{grid-template-columns:minmax(0,1fr)}.posture-panel{max-width:640px}}
@media (max-width:700px){.posture{padding:64px 0}.posture h2{font-size:clamp(34px,9vw,48px)}.posture-lead{font-size:17px}.posture-panel{padding:18px 16px 14px}.coverage-bars li{grid-template-columns:104px minmax(0,1fr) 40px;gap:10px;font-size:12.5px}}
