/* Seamless navigation, model-led exploration and connected expertise. */
body:has(.progress-chapters) .site-header { background:#101d27;border-bottom:0;box-shadow:none; }
body .progress-chapters { margin:0;padding:0;top:var(--reading-header-height);background:#101d27;border:0;box-shadow:none;backdrop-filter:none; }
body .progress-chapters a,body .progress-chapters a.is-current,body .progress-chapters a:hover { background:transparent;border:0; }
body .progress-chapters>.wrap { gap:0;margin-block:0; }
body .chapter-progress { height:2px;bottom:0;background:#ffffff12; }
body .chapter-progress__fill { transition:none;background:var(--gold); }

/* One image-sized stage; the choices and one short caption sit below it. */
#approach .section-head { align-items:center;margin-bottom:24px; }
@media(min-width:901px) { main>#approach { padding-block:clamp(24px,4.4svh,64px); } }
#approach .method-heading-copy { flex:none; }
.viewer-led.viewer-shell { border-radius:12px; }
.viewer-led .ev { display:flex;flex-direction:column;grid-template-columns:none;grid-template-rows:none; }
.viewer-led .ev__layers { order:0;padding:0; }
.viewer-led .ev__layers button { display:flex;align-items:center;gap:14px;min-height:62px;padding:16px 24px; }
.viewer-led .ev__layers button b { margin:0;font-size:11px; }
.viewer-led .ev__layers .ev__layer-name { font-size:16px; }
.viewer-led .ev__stage { order:1;width:100%;height:clamp(460px,55svh,760px);min-height:0; }
.viewer-led .ev__stage-legend { display:none; }
.viewer-led .ev__panel { order:2;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 24px;border-right:0;border-top:1px solid #ffffff16;padding:18px 24px;background:#172833; }
.viewer-led [data-ev="rows"] { display:flex;flex-wrap:wrap;gap:7px;border:0;width:100%; }
.viewer-led .ev__row { border:0; }
.viewer-led .ev__row button { min-height:40px;padding:9px 15px;border:1px solid #ffffff20;border-radius:5px;gap:10px; }
.viewer-led .ev__row.on { background:none; }
.viewer-led .ev__row.on button { border-color:var(--gold);background:color-mix(in srgb,var(--gold) 6%,transparent); }
.viewer-led .ev__row .ev__n { display:none; }
.viewer-led .ev__row .ev__zh { font-size:14px; }
.viewer-led .ev__row .ev__dot { height:12px;width:2px; }
.viewer-led .ev__system-detail { flex:1;min-width:200px;min-height:0;font-size:13px;line-height:1.6;margin:0; }
.viewer-led .ev__viewpoints { margin:0;gap:6px; }
.viewer-led .ev__viewpoints button { font-size:12px;min-height:34px;padding:7px 10px; }
.viewer-led .ev__sim { width:auto;min-height:34px;font-size:12px;border:0;margin:0;padding:7px 0; }
.viewer-led .ev__stages { margin:0; }
.viewer-led .ev__panel-foot { margin:0;padding:0; }
.viewer-led .viewer-reset { font-size:12px;margin:0; }
.viewer-led .ev__note.is-on { flex:1; }
.viewer-led .ev__note .ev__rows { display:none; }
.viewer-led .ev__note .ev__hold { font-size:14px;line-height:1.7;margin:0; }
.viewer-led .ev__motion-note { font-size:12px; }
@media(min-width:901px) and (max-height:950px) {
  main>#approach { padding-block:24px; }
  .viewer-led .ev__stage { height:55svh;min-height:350px; }
  .viewer-led .ev__panel { padding:14px 20px;gap:7px 20px; }
  .viewer-led .ev__layers button { min-height:56px;padding:12px 20px; }
}
@media(max-width:800px) {
  .viewer-led .ev__layers button { min-height:58px;padding:12px 10px;gap:6px;flex-direction:column;align-items:flex-start; }
  .viewer-led .ev__layers .ev__layer-name { font-size:13px; }
  .viewer-led .ev__stage { height:340px;min-height:0; }
  .viewer-led .ev__panel { padding:16px;gap:12px 18px; }
  .viewer-led [data-ev="rows"] { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
  .viewer-led .ev__row button { width:100%;padding:10px;min-height:44px; }
  .viewer-led .ev__row .ev__zh { font-size:12px; }
  .viewer-led .ev__system-detail { flex-basis:100%; }
  .viewer-led .ev__viewpoints { margin-right:auto; }
}

/* r2's paired seamless tracks, consolidated into one row of all 24 logos. */
.partner-section { padding-block:50px 64px; }
.partner-heading { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px; }
.partner-heading h2.eyebrow { margin:0;font:400 12px/1.6 var(--sans);letter-spacing:.1em;color:var(--muted); }
.partner-pause { display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff26;border-radius:50%;background:transparent;color:var(--muted); }
.partner-pause svg { width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.6; }
.partner-pause .play-glyph,.partner-pause[aria-pressed="true"] .pause-glyph { display:none; }
.partner-pause[aria-pressed="true"] .play-glyph { display:block; }
.partner-window { overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.partner-belt { display:flex;width:max-content;animation:partner-loop 112s linear infinite; }
.partner-run { display:flex;flex:none;align-items:center;gap:clamp(30px,3.2vw,54px);padding:18px clamp(30px,3.2vw,54px) 18px 0;margin:0;list-style:none; }
.partner-run li { flex:none;width:clamp(120px,12vw,168px);margin:0; }
.partner-run img { display:block;width:100%;height:70px;object-fit:contain;filter:none;border-radius:0;opacity:.82; }
.partner-window:hover .partner-belt,.partner-window:focus-within .partner-belt,.partner-section.is-paused .partner-belt { animation-play-state:paused; }
.partner-window:focus-visible { outline:2px solid var(--gold);outline-offset:-3px; }
@keyframes partner-loop { to { transform:translateX(-50%); } }

/* Photography changes with the selected discipline; the graph holds the
   shared risk -> design -> verification relationship throughout. */
.practice-interactive .practice-intro { display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:32px; }
.practice-interactive .practice-intro h2 { margin:0;font-size:clamp(32px,2.4vw,54px);line-height:1.35; }
.practice-interactive .practice-intro>p { max-width:34em;color:var(--muted);font-size:16px;line-height:1.8;margin:0; }
.practice-console { display:grid;grid-template-columns:1.35fr 1fr;border:1px solid #ffffff20;border-radius:12px;overflow:hidden;background:#142633; }
.practice-scenes { position:relative;min-width:0;display:flex;flex-direction:column; }
.practice-scene { position:relative;isolation:isolate;flex:1;min-height:400px;display:flex;align-items:end;padding:36px; }
.practice-scene>img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:var(--photo-finish); }
.practice-scene:after { content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#081824ef,transparent 80%); }
.practice-scene-copy { max-width:95%; }
.practice-scene-copy .eyebrow { margin:0 0 13px;font-size:11px; }
.practice-scene-copy h3 { font:500 clamp(25px,1.6vw,38px)/1.4 var(--serif);margin:0 0 12px;color:#f6f5ef; }
html[lang=en] .practice-scene-copy h3 { font-family:var(--sans); }
.practice-scene-copy>p:last-child { color:#d6dde0;font-size:13px;margin:0;line-height:1.8; }
.practice-network { position:relative;padding:5px 36px 20px;background:#10222e;border-top:1px solid #ffffff20; }
.practice-network-lines { display:block;width:100%;height:55px;overflow:visible; }
.practice-network-lines path { fill:none;stroke-width:1;vector-effect:non-scaling-stroke; }
.network-base { stroke:#5e7482; }
.network-active { stroke:var(--gold);stroke-dasharray:720;stroke-dashoffset:720;transition:stroke-dashoffset .3s ease; }
.practice-console[data-active="1"] .network-active { stroke-dashoffset:360; }
.practice-console[data-active="2"] .network-active { stroke-dashoffset:0; }
.practice-network-lines circle { fill:#10222e;stroke:#5e7482;stroke-width:1;vector-effect:non-scaling-stroke; }
.practice-console[data-active="0"] circle:nth-child(1),.practice-console[data-active="1"] circle:nth-child(2),.practice-console[data-active="2"] circle:nth-child(3) { fill:var(--gold);stroke:var(--gold); }
.practice-network-dots { position:absolute;top:5px;left:36px;right:36px;height:55px;pointer-events:none; }
.practice-network-dots i { position:absolute;top:50%;left:10%;transform:translate(-50%,-50%);width:8px;height:8px;border:1px solid #5e7482;border-radius:50%;background:#10222e; }
.practice-network-dots i:nth-child(2) { left:50%; }.practice-network-dots i:nth-child(3) { left:90%; }
.practice-console[data-active="0"] .practice-network-dots i:nth-child(1),.practice-console[data-active="1"] .practice-network-dots i:nth-child(2),.practice-console[data-active="2"] .practice-network-dots i:nth-child(3) { background:var(--gold);border-color:var(--gold); }
.practice-network-labels { display:flex;justify-content:space-between;color:#b3c1ca;font-size:12px; }
.practice-network-labels>span { min-width:20%;text-align:center; }
.practice-options { padding:34px 36px;display:flex;flex-direction:column;justify-content:center; }
.practice-options-label { font-size:11px;color:var(--muted);letter-spacing:.05em;margin:0 0 20px; }
.practice-options [role="tablist"] { display:grid;gap:8px;margin:0;padding:0;border:0;overflow:visible; }
.practice-options [role="tab"] { display:flex;align-items:center;gap:18px;text-align:left;width:100%;border:1px solid transparent;border-radius:8px;padding:21px 18px;background:transparent;color:#becbd3;transition:background .2s,border-color .2s; }
.practice-options [role="tab"][aria-selected="true"] { background:#233d4c;border-color:#68838f;color:#fff; }
.practice-option-number { color:var(--gold);font:11px var(--mono);align-self:flex-start;margin-top:4px; }
.practice-options strong { display:block;font-size:22px;font-weight:500;line-height:1.4;margin:0 0 7px; }
.practice-options small { display:block;font-size:13px;line-height:1.6;color:#b5c4cd; }
.practice-option-arrow { margin-left:auto;color:var(--gold);opacity:0; }
.practice-options [aria-selected="true"] .practice-option-arrow { opacity:1; }
.practice-engagement-note { margin-top:24px;padding-top:22px;border-top:1px solid #ffffff20; }
.practice-engagement-note p { color:var(--muted);font-size:11px;margin:0 0 12px; }
.practice-engagement-note>span { display:inline-block;font-size:13px;color:#dde3e6;margin-right:22px; }
.practice-options>.text-link { align-self:flex-start;margin-top:22px;font-size:12px; }
@media(min-width:1900px) and (min-height:1000px) { .practice-scene { min-height:clamp(430px,45svh,720px); } }
@media(min-width:901px) and (max-height:950px) {
  main>.practice-interactive { padding-block:36px; }
  .practice-interactive .practice-intro { margin-bottom:24px; }
  .practice-interactive .practice-intro h2 { font-size:34px; }
  .practice-options { padding:24px 28px; }
  .practice-options [role="tab"] { padding-block:15px; }
  .practice-options-label { margin-bottom:12px; }
  .practice-engagement-note { margin-top:16px;padding-top:16px; }
  .practice-options>.text-link { margin-top:14px; }
  .practice-scene { min-height:340px; }
}
@media(max-width:900px) {
  .practice-interactive .practice-intro { display:block; }
  .practice-interactive .practice-intro>p { margin-top:20px;font-size:15px; }
  .practice-console { grid-template-columns:1fr; }
  .practice-options { display:contents; }
  .practice-scenes { order:2; }
  .practice-scene { min-height:320px;padding:24px; }
  .practice-options [role="tablist"] { order:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:10px; }
  .practice-options [role="tab"] { flex-direction:column;align-items:start;padding:12px 8px;gap:10px;border-radius:5px; }
  .practice-options [role="tab"]>span:nth-child(2) { width:100%;min-width:0; }
  .practice-options strong { font-size:14px;margin:0;white-space:normal;overflow-wrap:normal; }
  .practice-options small,.practice-options-label,.practice-option-arrow { display:none; }
  .practice-option-number { font-size:10px;margin:0; }
  .practice-engagement-note { order:3;margin:0;padding:22px 24px 10px; }
  .practice-options>.text-link { order:4;margin:10px 24px 22px;justify-self:start; }
  .practice-network { padding-inline:24px; }
  .practice-network-dots { left:24px;right:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .partner-belt { animation:none; }
  .partner-run[aria-hidden="true"],.partner-pause { display:none; }
  .partner-window { overflow-x:auto; }
  .network-active,.practice-options [role="tab"] { transition:none; }
}
