:root {
  --bg: #f7f8f3;
  --surface: #ffffff;
  --text: #263c35;
  --muted: #5e7066;
  --quiet: #617264;
  --accent: #aa572f;
  --nav-current-bg: #f0e4d8;
  --nav-current-text: #8d4526;
  --marker-autolab: #216c62;
  --marker-anyverse: #a44c28;
  --marker-core: #875364;
  --marker-corresponding: #4e6591;
  --marker-leader: #846318;
  --border: rgba(49, 76, 53, .17);
  --content: 1200px;
  --header-offset: 112px;
  --resource-bg: #333333;
  --resource-hover: #287fbd;
  --section-primary-size: clamp(40px, 4vw, 56px);
  --section-secondary-size: 28px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-offset); }
body { margin: 0; font-size: 17px; line-height: 1.7; }
body:has(dialog[open]) { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
button:disabled { cursor: wait; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
::selection { background: #d5a87955; color: #263c35; }
img { display: block; max-width: 100%; height: auto; }
svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
h1, h2, h3, h4, h5, p { margin: 0; }
h1, h2, h3, h4, h5 { line-height: 1.15; font-weight: 550; }
sup { font-size: .6em; vertical-align: super; line-height: 0; }
.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; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 100; background: var(--text); color: var(--bg); padding: 10px 20px; }
.skip-link:focus { top: 12px; }
.reading-progress { position: fixed; inset: 0 0 auto; z-index: 60; height: 3px; background: #aa572f14; pointer-events: none; }
.reading-progress-fill { width: 100%; height: 100%; background: var(--accent); transform: scaleX(0); transform-origin: left center; }
.site-header { position: fixed; z-index: 40; top: 0; left: 0; width: 100%; padding: 22px 40px; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 32px; border-bottom: 1px solid rgba(49,76,53,.12); background: rgba(247,248,243,.94); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); box-shadow: 0 3px 18px #263c3505; }
.header-brand { display: flex; align-items: center; gap: 20px; min-width: 0; }
.wordmark { display: inline-flex; align-items: baseline; font-size: 20px; font-weight: 650; letter-spacing: -.8px; white-space: nowrap; }
.wordmark sup { align-self: flex-start; line-height: 1.4; font-size: 11px; padding-left: 1px; }
.wordmark span { color: var(--accent); padding: 0 2px; }
.site-header nav { display: flex; justify-content: flex-end; gap: 28px; font-size: 15px; color: #52685b; }
.site-header nav a { padding: 10px 9px; margin-inline: -9px; min-height: 44px; display: flex; align-items: center; transition: color .18s ease, background-color .18s ease; white-space: nowrap; }
.site-header nav a:hover { color: var(--accent); }
.site-header nav a[aria-current="location"] { color: var(--nav-current-text); background: var(--nav-current-bg); }
.mobile-nav summary.has-current-section { color: var(--nav-current-text); background: var(--nav-current-bg); }
.mobile-nav { display: none; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: rgba(255,255,255,.4); }
.icon-button:hover { background: rgba(255,255,255,.8); border-color: #4b735650; }
/* cover-font-start */
/* Google Sans 700, OFL-1.1: embedded to prevent fallback-font swapping. */
@font-face { font-family: "Google Sans Cover"; src: url("data:font/woff2;base64,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") format("woff2"); font-style: normal; font-weight: 700; font-display: block; }
/* cover-font-end */
.hero { position: relative; padding-top: var(--cover-header-height, var(--header-offset)); text-align: center; overflow: hidden; }
.hero-video-stage { position: relative; width: 100%; aspect-ratio: 16 / 9; isolation: isolate; overflow: hidden; background: #223b34; }
.hero-video-stage::before { content: ""; position: absolute; inset: -18px; z-index: -1; background: url('assets/cover/cover-mosaic.jpg') center / cover no-repeat; }
.hero-video-stage > video { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.035); }
.hero-title-overlay { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: auto; visibility: visible; opacity: 1; background: rgba(0,0,0,.38); transition: none; }
.hero-title-content { width: 100%; display: flex; flex-direction: column; align-items: center; gap: clamp(22px, 2.4vw, 36px); padding: 28px 0; }
.hero h1 { width: max-content; max-width: 94%; display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0; padding: 0; color: #ffffff; font-family: "Google Sans Cover", "Segoe UI", Roboto, Arial, sans-serif; font-size: 3.9vw; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; -webkit-text-stroke: 0; text-shadow: none; }
.hero h1 > span { display: block; }
.hero h1 .project-name { align-self: center; text-align: center; font-size: 1.65em; line-height: 1.05; margin-bottom: .24em; white-space: nowrap; }
.hero h1 .paper-name { white-space: nowrap; }
.project-name sup { font-size: .58em; line-height: 0; position: relative; vertical-align: baseline; top: -.55em; }
.hero-details { width: min(100%, 1160px); padding: 0 24px; zoom: .8; }
.affiliations { color: #ffffff; font-size: 22px; font-weight: 500; line-height: 1.65; text-wrap: balance; }
.cover-play { position: absolute; bottom: 20px; right: 24px; padding: 10px 18px; border: 1px solid #ffffff80; border-radius: 24px; background: #263c35dd; color: white; font-size: 14px; }
.cover-play[hidden] { display: none; }
@media (forced-colors: active) { .hero h1 { color: CanvasText; -webkit-text-stroke: 0; text-shadow: none; } }
.institution-logos { display: flex; align-items: center; gap: 20px; padding-left: 20px; border-left: 1px solid var(--border); }
.institution-logo { flex: 0 0 auto; object-fit: contain; }
.sjtu-logo { width: auto; height: 44px; }
.autolab-logo { width: auto; height: 44px; }
.anyverse-logo { width: auto; height: 34px; }
.resource-links { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.resource-link { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; gap: 9px; background: var(--resource-bg); border: 0; border-radius: 999px; padding: 10px 22px; font-size: 14px; font-weight: 600; color: #ffffff; transition: background-color .18s ease; }
.resource-link svg { width: 18px; height: 18px; }
.resource-link:hover, .resource-link:focus-visible { background: var(--resource-hover); }
.resource-link:focus-visible { outline: 2px solid #ffffff; outline-offset: 4px; }
.meet-link { width: fit-content; min-height: 44px; margin: 72px auto 0; display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 22px; font-weight: 600; letter-spacing: -.02em; color: var(--text); white-space: nowrap; }
.meet-link span { color: var(--accent); font-size: 18px; }
.section { max-width: calc(var(--content) + 96px); padding: 104px 48px; margin: 0 auto; }
.section + .section { border-top: 1px solid var(--border); }
.section-heading { text-align: center; margin-bottom: 28px; }
.section-kicker { color: var(--accent); font-size: var(--section-primary-size); font-weight: 650; letter-spacing: -.015em; line-height: 1.17; margin-bottom: 22px; text-wrap: balance; }
.section-claim { max-width: 1060px; margin-inline: auto; }
.section-claim .throughput-gain { display: inline-block; color: #557b49; font-size: 1.55em; font-weight: 750; line-height: 1; vertical-align: -.06em; white-space: nowrap; }
.policy-name { white-space: nowrap; }
.section-claim sub { font-size: .65em; line-height: 0; vertical-align: sub; }
.policy-name sub { font-family: Arial, sans-serif; font-variant-numeric: lining-nums; letter-spacing: 0; }
.policy-decimal { position: relative; top: .08em; }
.section h2 { font-size: clamp(40px,4vw,56px); letter-spacing: -.038em; line-height: 1.17; text-wrap: balance; }
.section .section-heading h2 { font-size: var(--section-secondary-size); line-height: 1.3; letter-spacing: -.015em; }
.section-intro { max-width: 920px; margin: 0 auto 42px; color: var(--muted); font-size: 20px; line-height: 1.75; text-align: center; text-wrap: pretty; }
.section-intro strong { color: #2b4837; font-weight: 550; }
.system-section { padding-top: 60px; }
.paper-figure { margin: 0; }
.figure-button { position: relative; display: block; width: 100%; border: 1px solid var(--border); border-radius: 9px; padding: 16px; background: #fff; overflow: hidden; cursor: zoom-in; }
.figure-button img { width: 100%; }
.enlarge-label { position: absolute; right: 12px; top: 12px; font-size: 10px; line-height: 1.5; color: #505a54; padding: 4px 9px; border: 1px solid #dce0dc; border-radius: 4px; background: #ffffffe6; opacity: 0; transition: opacity .2s; }
.figure-button:hover .enlarge-label, .figure-button:focus-visible .enlarge-label { opacity: 1; }
figcaption { margin: 16px auto 0; max-width: 850px; text-align: center; font-size: 14px; color: var(--quiet); line-height: 1.6; }
.figure-description { max-width: none; margin: 18px 0 0; text-align: left; color: var(--text); }
.figure-caption-title { font-size: 20px; line-height: 1.45; font-weight: 550; color: var(--text); }
#expanded-figure-description { grid-template-columns: 1fr; max-width: none; margin: 0; padding: 24px 32px 32px; }
#expanded-figure-description[hidden] { display: none; }
figcaption a, .source-note a { color: #526e57; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: #345a3440; }
figcaption a:hover, .source-note a:hover { color: var(--accent); }
.principles { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 16px; margin: 32px 0 0; }
.principle-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; min-height: 232px; padding: 28px; border: 1px solid #d1dacc; border-radius: 10px; background: #e6ebe2; text-align: left; box-shadow: none; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
.principle-number { font-size: 12px; line-height: 1.5; letter-spacing: .08em; color: #667961; font-variant-numeric: tabular-nums; }
.principle-title { display: block; font-size: 22px; font-weight: 550; line-height: 1.3; letter-spacing: -.025em; margin-top: 16px; color: #4f654f; }
.principle-copy { display: block; margin-top: 12px; color: #53664f; font-size: 16px; line-height: 1.7; }
.principle-card.is-active { background: #fff9ec; border-color: #c88d58; box-shadow: 0 8px 24px #aa572f12; }
.principle-card.is-active .principle-number { color: var(--accent); }
.principle-card.is-active .principle-title { color: var(--text); }
.principle-card.is-active .principle-copy { color: #526449; }
.metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 34px 0; }
.metrics > div { display: flex; flex-direction: column; text-align: center; }
.metrics > div + div { border-left: 1px solid var(--border); padding-left: 16px; }
.metrics strong { font-size: 43px; font-weight: 500; letter-spacing: -1.8px; line-height: 1.25; }
.metrics strong span { font-size: 25px; color: var(--accent); margin-left: 1px; }
.metrics div > span { font-size: 12px; color: #50634f; margin-top: 10px; }
.metrics small { color: var(--quiet); font-size: 10px; margin-top: 5px; line-height: 1.5; }
.source-note { color: var(--quiet); font-size: 14px; line-height: 1.6; margin: 20px auto 0; max-width: 880px; text-align: center; }
/* Four method blocks share one hierarchy: title, explanation, original diagram. */
.method > .section-heading { text-align: center; margin-bottom: 42px; }
.method > .section-heading h2 { max-width: 1060px; margin-inline: auto; }
.method-stage { border-top: 1px solid var(--border); padding-top: 32px; margin-top: 54px; }
.method-stage-heading { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 24px; align-items: start; margin-bottom: 28px; }
.method-stage-index { color: var(--accent); font-size: 26px; line-height: 1.6; font-variant-numeric: tabular-nums; }
.method-stage h3 { font-size: 36px; line-height: 1.25; letter-spacing: -.025em; }
.method-stage-heading p { max-width: 900px; text-wrap: pretty; margin-top: 16px; color: var(--muted); font-size: 19px; line-height: 1.75; }
.method-stage-heading strong { color: var(--text); font-weight: 600; }
.text-link { display: inline-flex; gap: 18px; align-items: center; margin-top: 24px; font-size: 13px; color: #985126; }
.text-link:hover { color: var(--accent); }
.compact-figure .figure-button { padding: 18px; }
.section.research-question { min-height: 0; padding-top: 24px; padding-bottom: 8px; }
.research-question-content { max-width: 1000px; margin-inline: auto; text-align: center; }
.section.research-question h2 { font-size: clamp(32px,3.5vw,46px); line-height: 1.25; letter-spacing: -.025em; font-weight: 500; color: var(--text); text-wrap: balance; }
.research-question .question-line { display: block; }
.research-question .keep-together { white-space: nowrap; }
.research-question + .system-section { padding-top: 24px; border-top: 0; }
.system-section .method-stage-heading { grid-template-columns: minmax(0,1fr); }
.task-dialog-heading { min-width: 0; }
.task-video-prompt { margin-top: 6px; color: var(--muted); font-size: 15px; line-height: 1.55; text-wrap: pretty; }
.research-question:focus { outline: none; }
.demo-group-heading .task-hint { color: var(--muted); font-size: 15px; line-height: 1.5; margin-top: 12px; }
.task-orbit { width: calc(100vw - 32px); margin-inline: calc(50% - 50vw + 16px); overflow: clip; }
.task-ring { position: relative; height: 560px; isolation: isolate; touch-action: pan-y pinch-zoom; user-select: none; cursor: grab; }
.task-ring::before { content: ""; position: absolute; left: 50%; top: var(--orbit-center-y,248px); width: calc(var(--orbit-radius-x,500px) * 2); height: calc(var(--orbit-radius-y,142px) * 2); transform: translate(-50%,-50%); border: 1px solid #78917633; border-radius: 50%; pointer-events: none; }
.task-ring.is-dragging, .task-ring.is-dragging button { cursor: grabbing; }
.task-ring:focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; border-radius: 8px; }
.task-ring .task-tile { position: absolute; left: 0; top: 0; width: var(--orbit-card-width,210px); will-change: transform; transform-origin: center; }
.task-ring .task-tile h4 { font-size: 15px; font-weight: 500; line-height: 1.5; letter-spacing: 0; margin: 12px 0 0; text-align: center; min-height: 3em; }
.task-tile .video-shell { border-radius: 7px; box-shadow: 0 6px 16px #263c3515; background: #e8ede4; }
.task-tile .video-shell > :is(img,video) { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; pointer-events: none; }
.task-tile .video-shell > video { opacity: 0; }
.task-tile .video-shell > video.has-frame { opacity: 1; }
.task-pending { display: flex; align-items: center; justify-content: center; background: #e8ede4; color: var(--muted); font-size: 14px; border-style: dashed; box-shadow: none; }
.task-controls { display: flex; justify-content: center; gap: 12px; margin-top: 0; }
.task-controls button { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 11px; border-radius: 50%; border: 1px solid var(--text); background: var(--text); color: var(--bg); transition: background .18s, border-color .18s; }
.task-controls button:hover:enabled { background: var(--accent); border-color: var(--accent); }
.task-controls button:disabled { background: #e1e6dc; border-color: #d5ddcf; color: #7a8678; cursor: default; }
.task-controls svg { width: 20px; height: 20px; }
.task-expand { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; background: transparent; cursor: grab; }
.task-expand:focus-visible { outline: 3px solid var(--accent); outline-offset: -4px; }
.task-expand-icon { position: absolute; bottom: 7px; right: 7px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #263c35c9; color: white; opacity: 0; transition: opacity .18s; }
.task-expand-icon svg { width: 18px; height: 18px; }
.task-tile:not(.is-rear):hover .task-expand-icon, .task-tile:focus-within .task-expand-icon { opacity: 1; }
.task-preview-state { position: absolute; left: 8px; bottom: 8px; border-radius: 3px; color: white; background: #263c35cf; font-size: 11px; padding: 1px 6px; pointer-events: none; }
.task-preview-state[hidden] { display: none; }
.video-dialog { --video-aspect: 1.777777778; --video-toolbar-height: 76px; --video-dialog-gutter: 40px; width: min(1100px,calc(100vw - var(--video-dialog-gutter)),calc((100svh - var(--video-toolbar-height) - 34px) * var(--video-aspect))); max-width: none; max-height: calc(100svh - 32px); padding: 0; border: 1px solid var(--border); border-radius: 12px; color: var(--text); background: var(--bg); overflow: auto; }
.video-dialog::backdrop { background: #1c302ad6; backdrop-filter: blur(8px); }
.task-dialog-toolbar { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 22px; background: var(--bg); }
.task-dialog-toolbar h2 { font-size: 22px; line-height: 1.4; letter-spacing: -.02em; }
#close-task-video, .video-dialog-close { flex-shrink: 0; background: #e8ede4; border: 1px solid var(--border); }
#close-task-video svg, .video-dialog-close svg { width: 20px; height: 20px; }
#task-modal-player, .modal-video-player { background: #111a16; aspect-ratio: var(--video-aspect); }
#task-modal-player video, .modal-video-player video { display: block; width: 100%; height: 100%; object-fit: contain; }
.demo-video-entry { padding: 0; border: 0; background: transparent; font: inherit; color: var(--accent); text-align: left; cursor: pointer; min-height: 44px; }
.demo-video-status { padding: 14px 22px; color: var(--accent); font-size: 14px; }
.task-dialog-feedback { padding: 14px 22px; display: flex; align-items: center; gap: 16px; }
.task-dialog-feedback[hidden] { display: none; }
#task-modal-retry { min-height: 44px; padding: 8px 16px; border: 1px solid var(--border); border-radius: 6px; background: #e8ede4; }
#task-modal-retry[hidden] { display: none; }
#task-modal-status { color: var(--accent); font-size: 14px; }
#task-modal-status a { text-decoration: underline; }
.loading-note { color: var(--muted); text-align: center; padding: 50px; }
.correction-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.video-card { min-width: 0; }
.video-shell { position: relative; width: 100%; aspect-ratio: 16 / 9; background: #141715; overflow: hidden; border-radius: 8px; border: 1px solid var(--border); }
.video-shell video { display: block; width: 100%; height: 100%; object-fit: contain; background: #000; }
.video-cover { position: absolute; z-index: 1; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; inset: 0; padding: 0; border: 0; background: linear-gradient(180deg,#0000 25%,#0007); transition: background .2s; }
.video-cover[hidden] { display: none; }
.video-cover:hover { background: linear-gradient(180deg,#0000 25%,#0004); }
.play-icon { width: 56px; height: 56px; border: 1px solid #ffffff70; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #1117; backdrop-filter: blur(10px); box-shadow: 0 3px 22px #0003; transition: transform .2s, background .2s; }
.video-cover:hover .play-icon { transform: scale(1.08); background: #181810aa; }
.play-icon svg { fill: white; stroke: none; width: 17px; height: 17px; margin-left: 3px; }
.duration { position: absolute; bottom: 16px; right: 18px; font-size: 12px; color: #fff; font-variant-numeric: tabular-nums; background: #0006; padding: 1px 7px; border-radius: 3px; }
.video-tag { position: absolute; bottom: 18px; left: 18px; color: #f1e8dc; font-size: 10px; letter-spacing: .08em; }
.video-card :is(h3,h4,h5) { font-size: 20px; letter-spacing: -.4px; margin: 19px 0 10px; line-height: 1.4; }
.video-card > p { color: var(--muted); font-size: 15px; line-height: 1.8; }
.video-error { font-size: 12px; color: #995127; padding: 10px 0; }
.video-error a { text-decoration: underline; }
.recovery-results { margin-top: 50px; border-top: 1px solid var(--border); }
.recovery-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 24px 0; }
.recovery-heading h3 { font-size: 20px; letter-spacing: -.4px; }
.recovery-heading p { color: var(--quiet); font-size: 11px; }
.recovery-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 25px 0; border-top: 1px solid var(--border); }
.recovery-row > span { font-size: 15px; }
.recovery-row small { display: block; font-weight: 400; font-size: 11px; color: var(--quiet); line-height: 1.5; margin-top: 6px; letter-spacing: 0; }
.recovery-values { display: flex; gap: 38px; align-items: center; }
.baseline-value { color: #627260; font-size: 26px; letter-spacing: -.5px; }
.result-arrow { color: #6b8066; font-size: 23px; }
.recovery-values strong { font-size: 32px; font-weight: 500; color: var(--accent); letter-spacing: -.7px; min-width: 180px; }
.recovery-values strong small { color: #5d725c; }
.coffee { position: relative; }
.coffee .video-shell { border-radius: 10px; }
.coffee .play-icon { width: 76px; height: 76px; }
.coffee .play-icon svg { width: 22px; height: 22px; }

.results-table-wrap { margin-top: 50px; }
.results-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.results-table caption { text-align: left; color: var(--quiet); font-size: 11px; margin-bottom: 16px; }
.results-table th, .results-table td { padding: 25px 16px; border-bottom: 1px solid var(--border); text-align: right; font-weight: 400; }
.results-table thead th { font-size: 13px; color: #49634c; border-top: 1px solid var(--border); padding-top: 16px; padding-bottom: 16px; }
.results-table th:first-child { text-align: left; padding-left: 0; }
.results-table thead th:last-child { color: var(--accent); }
.results-table tbody th { font-size: 15px; }
.results-table td { width: 22%; font-size: 24px; letter-spacing: -.5px; }
.results-table td:last-child { color: #a45a32; }
.results-table small { display: block; color: var(--quiet); font-size: 10px; margin-top: 5px; letter-spacing: 0; }
.infrastructure-note { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 50px; margin-top: 56px; padding: 35px 0 0; align-items: center; border-top: 1px solid var(--border); }
.infra-number { font-size: 44px; letter-spacing: -2px; line-height: 1.2; }
.infra-number span { display: block; font-size: 12px; letter-spacing: 0; color: var(--accent); margin-top: 8px; }
.infrastructure-note h3 { font-size: 19px; margin-bottom: 12px; letter-spacing: -.3px; }
.infrastructure-note p { font-size: 13px; color: var(--muted); max-width: 640px; }
.infrastructure-note a { color: #985528; white-space: nowrap; }
.citation { padding-top: 64px; padding-bottom: 80px; }
.citation-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; gap: 20px; }
.citation h2 { font-size: 28px; }
.copy-button { display: flex; align-items: center; gap: 8px; border: 1px solid var(--border); border-radius: 5px; background: #ffffff88; padding: 9px 13px; min-height: 44px; font-size: 12px; color: var(--muted); }
.copy-button:hover { color: var(--text); background: #e9efe3; }
.citation pre { margin: 0; padding: 28px 30px; border: 1px solid var(--border); border-radius: 7px; background: #edf2e9; font-size: 14px; color: #455f47; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 2; }
.citation code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.copy-status { font-size: 12px; color: var(--accent); min-height: 22px; margin-top: 10px; }
.site-footer { border-top: 1px solid var(--border); text-align: center; padding: 42px 24px; }
.site-footer .wordmark { font-size: 18px; }
.site-footer > p { margin-top: 12px; color: var(--quiet); font-size: 11px; }
#figure-dialog { width: min(1400px, calc(100vw - 40px)); max-width: none; max-height: calc(100svh - 40px); padding: 0; border: 1px solid #294d292e; border-radius: 10px; background: #f5f7ef; color: var(--text); overflow: auto; }
#figure-dialog::backdrop { background: #253b2ac9; backdrop-filter: blur(6px); }
.contributors .section-heading { margin-bottom: 52px; }
.contribution-list { margin: 0; }
.contribution-row { display: grid; grid-template-columns: 240px minmax(0,1fr); gap: 32px; align-items: baseline; padding: 25px 0; border-top: 1px solid var(--border); }
.contribution-row dt { color: var(--muted); font-size: 14px; }
.contribution-row dd { margin: 0; min-width: 0; color: #42634c; font-size: 17px; }
.contributor-names { display: flex; flex-wrap: wrap; row-gap: 8px; list-style: none; margin: 0; padding: 0; }
.contributor-names li { white-space: nowrap; }
.contributor-names li:not(:last-child)::after { content: "·"; margin-inline: 14px; color: #788675; }
.corresponding-details { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 24px; }
.contributor-email { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; max-width: 100%; padding: 3px 0; background: transparent; border: 0; border-radius: 3px; color: var(--accent); font-size: 14px; }
.contributor-email:hover span { text-decoration: underline; text-underline-offset: 4px; }
.contributor-email svg { width: 16px; height: 16px; }
.contributors-affiliations { margin-top: 46px; color: var(--muted); text-align: center; font-size: 14px; line-height: 1.9; }
.contributors-affiliations p + p { margin-top: 3px; }
.email-copy-control { position: relative; display: inline-flex; vertical-align: -.2em; }
.email-feedback { position: absolute; z-index: 5; right: -12px; bottom: calc(100% + 12px); padding: 7px 11px; border: 1px solid #d0dccf; border-radius: 6px; background: #f7faf3; box-shadow: 0 4px 14px #263c3514; color: var(--text); font-size: 12px; font-weight: 500; line-height: 1.45; white-space: nowrap; pointer-events: none; }
.email-feedback::after { content: ""; position: absolute; right: 18px; bottom: -5px; width: 8px; height: 8px; border-right: 1px solid #d0dccf; border-bottom: 1px solid #d0dccf; background: #f7faf3; transform: rotate(45deg); }
.email-feedback-error { width: min(250px, calc(100vw - 40px)); white-space: normal; overflow-wrap: anywhere; pointer-events: auto; }
.email-address { user-select: text; }
.dialog-toolbar { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 20px; background: #f5f7ef; z-index: 1; }
.dialog-toolbar p { font-size: 12px; color: #4a644c; }
.dialog-close { border: 0; flex-shrink: 0; }
#expanded-figure { width: 100%; background: white; padding: 16px; }
.original-method-block { margin-top: 64px; }
.original-method-block > h3, .paper-results-block > h3 { font-size: 28px; line-height: 1.3; letter-spacing: -.5px; margin-bottom: 24px; }
.original-recovery { margin-top: 44px; }
.coffee-recovery-description, .task-summary { display: grid; gap: 12px; font-size: 17px; line-height: 1.75; color: var(--muted); }
.coffee-recovery-description strong, .task-summary strong { color: var(--text); font-weight: 600; }
.task-summary { margin-top: 24px; }
.paper-results-block { margin-top: 52px; }
.results-jumps { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 44px; }
.results-jumps a { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; padding: 8px 17px; border: 1px solid var(--border); border-radius: 5px; color: var(--muted); font-size: 13px; transition: background .2s, color .2s, border-color .2s; }
.results-jumps a span { color: var(--accent); }
.results-jumps a:hover, .results-jumps a[aria-current="location"] { color: #97542e; border-color: #aa572f55; background: #e9c9a432; }
.demo-group { min-width: 0; }
.demo-group + .demo-group { margin-top: 72px; padding-top: 56px; border-top: 1px solid var(--border); }
.demo-group-heading { margin-bottom: 32px; }
.demo-group-heading h3 { font-size: 38px; line-height: 1.25; letter-spacing: -.025em; max-width: 1000px; }
.demo-group-heading p { margin-top: 14px; color: var(--muted); font-size: 19px; line-height: 1.7; }
.demo-subgroup { margin-top: 52px; padding-top: 32px; border-top: 1px solid var(--border); }
.coffee-full-task > h4, .demo-subgroup > h4 { margin-bottom: 24px; font-size: 26px; line-height: 1.3; font-weight: 550; letter-spacing: -.02em; }
.demo-group:focus, .demo-subgroup:focus { outline: none; }
.demo-group:focus-visible .demo-group-heading h3, .demo-subgroup:focus-visible > h4 { outline: 2px solid var(--accent); outline-offset: 6px; }
.results-group { min-width: 0; }
.results-group + .results-group { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--border); }
.results-group > h3 { font-size: 27px; line-height: 1.3; letter-spacing: -.6px; margin-bottom: 24px; }
.results-group > .paper-results-block { margin-top: 32px; }
.results-group > h3 + .paper-results-block { margin-top: 0; }
.results-group:focus { outline: none; }
.results-group:focus-visible > h3 { outline: 2px solid var(--accent); outline-offset: 6px; }
.paper-table-panel { background: #ffffffb8; color: var(--text); border: 1px solid #526c4e26; border-radius: 10px; padding: 28px 30px 18px; }
.table-heading { margin-bottom: 22px; }
.table-heading h4 { font-size: 19px; line-height: 1.4; font-weight: 550; letter-spacing: -.3px; }
.table-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: 14px; line-height: 1.6; color: var(--muted); }
.table-meta span + span { border-left: 1px solid var(--border); padding-left: 18px; }
.paper-table-scroll { max-width: 100%; overflow-x: auto; scrollbar-color: #9fb4aa #f0f5f2; scrollbar-width: thin; }
.paper-table-hint { display: none; }
.paper-table-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
.paper-table { width: 100%; border-collapse: collapse; table-layout: fixed; color: #314c3d; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; font-size: 14px; font-variant-numeric: lining-nums tabular-nums; line-height: 1.55; }
.paper-table thead { border-top: 1px solid #61765a26; border-bottom: 1px solid #61765a36; background: #eaf0e4; }
.paper-table thead th { font-family: inherit; color: #465f47; font-size: 12px; font-weight: 600; padding: 14px 12px; vertical-align: middle; }
.paper-table tbody { border-bottom: 1px solid #61765a36; }
.paper-table tbody th, .paper-table tbody td { padding: 11px 12px; vertical-align: middle; font-weight: 400; }
.paper-table tbody tr:not(.table-group) { border-bottom: 1px solid #65795d16; transition: background-color .15s; }
.paper-table tbody tr:not(.table-group):hover { background: #f2f5ed; }
.paper-table tbody tr:last-child { border-bottom: 0; }
.paper-table th, .paper-table td { text-align: center; }
.paper-table th:first-child { text-align: left; padding-left: 16px; }
.paper-table td:last-child, .paper-table thead th:last-child { padding-right: 16px; }
.paper-table strong { font-weight: 650; color: var(--accent); }
.paper-table u { text-underline-offset: 2px; }
.paper-table .table-group { border-top: 1px solid #61765a36; background: #f2f5ee; }
.paper-table .table-group th { font-family: inherit; text-align: left; font-size: 12px; font-weight: 600; color: #52694e; padding: 12px 16px; }
.paper-table .ours { background: #e6eee0; }
.paper-table .ours:hover, .paper-table tbody tr.ours:not(.table-group):hover { background: #e0e9d9; }
.paper-table[data-paper-table="6"] .ours { border-top: 1px solid #8da28360; }
.paper-table[data-paper-table="6"] :is(th,td):nth-child(2) { text-align: left; }
.paper-table .italic th { font-style: normal; font-weight: 600; }
.paper-table.context-table th:last-child, .paper-table.context-table td:last-child { text-align: left; }
@media (max-width: 767px) {
  .paper-table-panel { padding: 20px 16px 16px; }
  .paper-table-hint { display: block; color: var(--quiet); font-size: 12px; margin-bottom: 14px; }
  .paper-table { min-width: 680px; font-size: 13px; }
  .table-heading { margin-bottom: 16px; }
  .table-heading h4 { font-size: 18px; }
  .table-meta { display: block; font-size: 14px; margin-top: 8px; }
  .table-meta span { display: block; }
  .table-meta span + span { border: 0; padding: 0; }
  .original-method-block, .paper-results-block { margin-top: 38px; }
  .original-method-block > h3, .paper-results-block > h3 { font-size: 24px; }
  .results-jumps { gap: 6px; margin-bottom: 32px; }
  .results-jumps a { font-size: 12px; padding: 8px 12px; gap: 8px; }
  .results-group > h3 { font-size: 23px; margin-bottom: 20px; }
  .results-group + .results-group { margin-top: 44px; padding-top: 28px; }
  .results-group > .paper-results-block { margin-top: 26px; }
  .results-group > h3 + .paper-results-block { margin-top: 0; }
}
@media (max-width: 1024px) {
  :root { --section-primary-size: 48px; }
  .site-header { padding: 18px 28px; gap: 22px; }
  .site-header nav { gap: 20px; font-size: 12px; }
  .section { padding: 80px 36px; }
  .system-section { padding-top: 46px; }
  .principles { gap: 16px; }
  .principle-card { padding: 24px; }
  .metrics strong { font-size: 35px; }
  .metrics { gap: 12px; }
  .metrics > div + div { padding-left: 10px; }
  .metrics div > span { font-size: 10px; }
  .metrics small { font-size: 9px; }
  .section h2 { font-size: 48px; }
  .section-intro { font-size: 19px; }
}
@media (max-width: 767px) {
  :root { --header-offset: 144px; --section-primary-size: 38px; --section-secondary-size: 24px; }
  .site-header { padding: 14px 20px; column-gap: 12px; row-gap: 8px; grid-template-columns: minmax(0,1fr); }
  .header-brand { grid-column: 1 / -1; gap: 12px; }
  .site-header .mobile-nav { grid-column: 1; }
  .site-header .wordmark { font-size: 16px; }
  .site-header nav { gap: 18px; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; mask-image: linear-gradient(90deg,#000 90%,transparent); }
  .site-header nav::-webkit-scrollbar { display: none; }
  .site-header nav a { font-size: 11px; padding: 12px 0; }
  .icon-button { width: 44px; height: 44px; }
  .hero-video-stage { aspect-ratio: auto; height: max(360px, 60vw); }
  .hero-video-stage::before { background-image: url('assets/cover/cover-mosaic-mobile.jpg'); }
  .hero-title-content { gap: 24px; padding: 24px 0; }
  .hero-details { padding: 0 20px; }
  .affiliations { font-size: 17px; max-width: 500px; margin-left: auto; margin-right: auto; }
  .institution-logos { gap: 12px; padding-left: 12px; }
  .sjtu-logo { height: 38px; }
  .autolab-logo { height: 38px; }
  .anyverse-logo { height: 28px; }
  .resource-links { gap: 8px; margin-top: 22px; }
  .resource-link { font-size: 12px; padding: 10px 14px; gap: 7px; }
  .resource-link svg { width: 15px; height: 15px; }
  .meet-link { font-size: 20px; margin-top: 60px; }
  .section { padding: 68px 24px; }
  .section-kicker { margin-bottom: 20px; }
  .section h2 { font-size: 38px; }
  .demo-group + .demo-group { margin-top: 48px; padding-top: 36px; }
  .demo-group-heading { margin-bottom: 26px; }
  .demo-group-heading h3 { font-size: 29px; }
  .demo-group-heading p { font-size: 17px; }
  .demo-subgroup { margin-top: 38px; padding-top: 26px; }
  .coffee-full-task > h4, .demo-subgroup > h4 { font-size: 23px; margin-bottom: 22px; }
  .method > .section-heading { margin-bottom: 32px; }
  .method-stage { margin-top: 38px; padding-top: 24px; }
  .method-stage-heading { grid-template-columns: 32px minmax(0,1fr); gap: 14px; margin-bottom: 24px; }
  .method-stage-index { font-size: 20px; }
  .method-stage h3 { font-size: 28px; }
  .method-stage-heading > div { display: contents; }
  .method-stage-heading p { grid-column: 1 / -1; margin-top: 0; font-size: 17px; line-height: 1.75; }
  .section-intro { font-size: 17px; line-height: 1.8; margin-bottom: 32px; }
  .figure-button { padding: 12px; border-radius: 6px; }
  .enlarge-label { opacity: 1; font-size: 8px; padding: 2px 5px; top: 5px; right: 5px; }
  figcaption { font-size: 14px; }
  .figure-description { margin-top: 16px; }
  .figure-caption-title { font-size: 18px; }
  #expanded-figure-description { margin: 0; padding: 20px; }
  .contributors .section-heading { margin-bottom: 34px; }
  .contribution-row { grid-template-columns: minmax(0,1fr); gap: 10px; padding: 22px 0; }
  .contribution-row dd { font-size: 16px; }
  .contributor-names li:not(:last-child)::after { margin-inline: 10px; }
  .corresponding-details { gap: 2px 18px; }
  .contributors-affiliations { margin-top: 30px; font-size: 13px; }
  .principles { gap: 14px; grid-template-columns: 1fr; margin: 36px 0 0; }
  .principle-card { min-height: 220px; padding: 22px; }
  .principle-title { font-size: 21px; margin-top: 14px; }
  .principle-copy { font-size: 16px; }
  .metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px 16px; padding: 28px 0; }
  .metrics > div + div { border-left: 0; padding-left: 0; }
  .metrics > div:nth-child(even) { border-left: 1px solid var(--border); }
  .metrics strong { font-size: 36px; }
  .metrics div > span { font-size: 11px; }
  .metrics small { font-size: 9px; padding: 0 5px; }
  .source-note { font-size: 13px; }
  .section.research-question { padding-top: 20px; padding-bottom: 8px; }
  .section.research-question h2 { font-size: 28px; line-height: 1.3; }
  .research-question .question-line { display: inline; }
  .task-ring { height: 470px; }
  .task-ring .task-tile h4 { font-size: 15px; }
  .video-dialog { --video-dialog-gutter: 20px; --video-toolbar-height: 68px; }
  .task-dialog-toolbar { padding: 12px 14px; gap: 12px; }
  .task-dialog-toolbar h2 { font-size: 18px; }
  .task-dialog-feedback { padding: 12px 14px; flex-wrap: wrap; gap: 10px; }
  .correction-grid { grid-template-columns: 1fr; gap: 34px; }
  .video-card :is(h3,h4,h5) { font-size: 18px; }
  .video-card > p { font-size: 15px; }
  .recovery-results { margin-top: 36px; }
  .recovery-heading { display: block; }
  .recovery-heading p { margin-top: 9px; font-size: 10px; }
  .recovery-row { gap: 15px; }
  .recovery-row > span { font-size: 13px; max-width: 110px; }
  .recovery-row small { font-size: 9px; }
  .recovery-values { gap: 15px; }
  .baseline-value { font-size: 23px; }
  .recovery-values strong { font-size: 28px; min-width: 116px; }
  .result-arrow { font-size: 17px; }
  .coffee .play-icon { width: 58px; height: 58px; }

  .results-table th, .results-table td { padding: 20px 9px; }
  .results-table tbody th { font-size: 12px; }
  .results-table td { font-size: 20px; }
  .results-table small { font-size: 9px; }
  .results-table thead th { font-size: 11px; }
  .infrastructure-note { gap: 24px; margin-top: 40px; }
  .infra-number { font-size: 36px; }
  .infrastructure-note h3 { font-size: 17px; }
  .infrastructure-note p { font-size: 12px; }
  .citation h2 { font-size: 25px; }
  .copy-button { font-size: 11px; }
  .citation pre { padding: 20px; font-size: 12px; }
  #figure-dialog { width: calc(100vw - 20px); max-height: calc(100svh - 20px); }
  .dialog-toolbar { padding: 10px 12px; gap: 10px; }
  .dialog-toolbar p { font-size: 10px; }
  #expanded-figure { padding: 10px; }
}
@media (max-width: 380px) {
  :root { --section-primary-size: clamp(30px, 8.95vw, 34px); }
  .site-header { column-gap: 12px; row-gap: 8px; padding-left: 16px; padding-right: 16px; }
  .institution-logos { gap: 10px; padding-left: 10px; }
  .sjtu-logo, .autolab-logo { height: 32px; }
  .anyverse-logo { height: 24px; }
  .resource-link { padding: 9px 10px; font-size: 11px; }
  .section { padding-left: 20px; padding-right: 20px; }
  .section h2 { font-size: 34px; }
  .recovery-row { display: block; }
  .recovery-row > span { max-width: none; display: flex; gap: 10px; align-items: baseline; }
  .recovery-row > span small { margin-top: 0; }
  .recovery-values { justify-content: space-between; gap: 12px; margin-top: 20px; }
  .results-table td { font-size: 17px; }
  .results-table th, .results-table td { padding-right: 6px; padding-left: 6px; }
  .infrastructure-note { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  .site-header > nav { display: none; }
  .mobile-nav { display: block; position: relative; justify-self: end; }
  .mobile-nav summary { list-style: none; min-height: 44px; padding-inline: 10px; display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--muted); cursor: pointer; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .site-header .mobile-nav nav { position: absolute; top: 48px; right: -4px; display: flex; flex-direction: column; min-width: 164px; gap: 0; padding: 10px 18px; background: #f8f9f4; border: 1px solid var(--border); border-radius: 7px; box-shadow: 0 12px 35px #233c2415; overflow: visible; mask-image: none; }
  .site-header .mobile-nav nav a { display: block; padding: 9px 10px; margin: 0; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hero-title-overlay { transition: none; transform: none; }
  *, *::before, *::after { transition: none !important; }
}

/* Method: preserve original vector geometry, arrows and transparent outer backing. */
.method-flow { margin: 0; overflow-x: auto; padding: 5px; overscroll-behavior-x: contain; }
.flow-canvas { position: relative; width: 100%; isolation: isolate; }
.flow-connections, .flow-connectors { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; }
.flow-module { --flow-bg: #e3edf8; --flow-border: #7298ba; position: absolute; padding: 0; border: 0; border-radius: 6px; background: color-mix(in srgb, var(--flow-bg) 60%, var(--bg)); text-align: left; overflow: visible; cursor: zoom-in; transition: background .25s, box-shadow .25s; }
.tone-orange { --flow-bg: #f5e1c5; --flow-border: #c18147; }
.tone-blue { --flow-bg: #e3edf8; --flow-border: #7298ba; }
.tone-purple { --flow-bg: #eee5f2; --flow-border: #9676ae; }
.tone-green { --flow-bg: #e5efdf; --flow-border: #7b9b70; }
.flow-module > img { width: 100%; height: 100%; filter: blur(1px) saturate(.65); opacity: .42; transition: filter .25s, opacity .25s; }
.flow-module.is-active { background: var(--flow-bg); box-shadow: 0 0 0 2px var(--flow-border), 0 6px 24px color-mix(in srgb, var(--flow-border) 20%, transparent); }
.flow-module.is-active > img { filter: none; opacity: 1; }
.flow-expand { position: absolute; top: 3px; right: 5px; color: #40564c; font-size: 13px; line-height: 1.2; opacity: 0; background: #f7f8f3e6; border-radius: 3px; padding: 2px 5px; }
.flow-module:hover .flow-expand, .flow-module:focus-visible .flow-expand { opacity: 1; }
@media(max-width: 700px) {
 .flow-canvas { min-width: 720px; }
 .flow-correction-interface .flow-canvas { min-width: 640px; }
 .method-flow { scrollbar-width: thin; scrollbar-color: #8d9d92 #e5eae1; }
}
@media(prefers-reduced-motion: reduce) {
 .flow-module, .flow-module > img { transition: none; }
}
.tone-teal { --flow-bg: #e1eeeb; --flow-border: #5d989b; }
.flow-action-model [data-flow-module="c-current"] { border-radius: 4px; }
.flow-action-model [data-flow-module="c-current"]::before { content: ''; position: absolute; inset: -6px 0; }
.flow-action-model [data-flow-module="c-current"] .flow-expand { top: auto; bottom: 3px; right: calc(10.715% + 3px); }

/* Plates follow source contours, including the expert's separate output shapes. */
.flow-action-model .flow-module, .flow-action-model .flow-module.is-active { background: none; box-shadow: none; border-radius: 0; }
.flow-plate { position: absolute; inset: 0; width: 100%; height: 100%; stroke: none; fill: none; pointer-events: none; }
.flow-plate .plate-fill { fill: color-mix(in srgb, var(--flow-bg) 60%, var(--bg)); stroke: var(--flow-border); stroke-opacity: .35; stroke-width: 1.5px; vector-effect: non-scaling-stroke; transition: fill .25s, stroke-opacity .25s; }
.flow-module.is-active .flow-plate .plate-fill { fill: var(--flow-bg); stroke-opacity: 1; stroke-width: 2.5px; }
.flow-action-model .flow-module > img { position: relative; }
.flow-action-model .flow-module:focus-visible { outline: none; }
.flow-action-model .flow-module:focus-visible .plate-fill { stroke-opacity: 1; stroke-width: 4px; }
.flow-action-model [data-flow-module="d"] .flow-expand { right: 6%; top: 1.4%; }
/* Method02: clip blur to the exact original rounded panel, not its crop box. */
.flow-clip-defs { position: absolute; pointer-events: none; }
.flow-correction-interface .flow-module,
.flow-correction-interface .flow-module.is-active { background: none; box-shadow: none; border-radius: 0; }
.flow-correction-interface [data-flow-module="a"] { clip-path: url(#correction-a-clip); }
.flow-correction-interface [data-flow-module="b"] { clip-path: url(#correction-b-clip); }
/* Framework: exact source contours and one stage shared by diagram and cards. */
.framework-diagram-scroll { overflow-x: auto; padding: 4px; overscroll-behavior-x: contain; }
.framework-module, .framework-module.is-active { background: none; box-shadow: none; border-radius: 0; }
.framework-module > img { position: relative; }
.framework-module:focus-visible { outline: none; }
.framework-module:focus-visible .plate-fill { stroke-opacity: 1; stroke-width: 4px; }
/* Keep one original outline; a second CSS stroke creates a mismatched rim. */
.framework-module .flow-plate .plate-fill,
.framework-module.is-active .flow-plate .plate-fill,
.framework-module:focus-visible .flow-plate .plate-fill { stroke: none; }
.framework-module:focus-visible .flow-plate .plate-fill { fill: color-mix(in srgb, var(--flow-bg) 80%, var(--flow-border)); }
.framework-flow .principle-card { min-height: 238px; padding: 22px; background: color-mix(in srgb, var(--flow-bg) 18%, var(--bg)); border-color: color-mix(in srgb, var(--flow-border) 28%, var(--bg)); }
.framework-flow .principle-title { font-size: 21px; color: var(--muted); }
.framework-flow .principle-copy { font-size: 15px; line-height: 1.7; color: var(--muted); }
.framework-flow .principle-number { color: var(--muted); }
.framework-flow .principle-card.is-active { background: color-mix(in srgb, var(--flow-bg) 68%, var(--bg)); border-color: var(--flow-border); box-shadow: none; }
.framework-flow .is-active .principle-title { color: var(--text); }
.framework-flow .is-active .principle-number { color: color-mix(in srgb, var(--flow-border) 75%, var(--text)); }
.framework-flow .principle-card:focus-visible { outline-color: var(--flow-border); outline-offset: 3px; }
@media(max-width:1100px) and (min-width:701px) {
 .framework-flow .principles { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .framework-flow .principle-card { min-height: 190px; }
}
@media(max-width:700px) {
 .framework-flow .principles { grid-template-columns: 1fr; }
 .framework-flow .principle-card { min-height: 0; padding: 20px; }
 .framework-diagram-scroll { scrollbar-width: thin; scrollbar-color: #8d9d92 #e5eae1; }
 .framework-diagram-scroll .flow-canvas { min-width: 760px; }
}
.training-section .figure-description { display: grid; grid-template-columns: minmax(200px,.8fr) minmax(0,2fr); gap: 28px; padding: 18px 0 28px; border-bottom: 1px solid var(--border); }
.training-section #figure-9 .figure-description { border-bottom: 0; }
.training-section .figure-brief { color: var(--muted); font-size: 17px; line-height: 1.75; text-wrap: pretty; }
.training-section .figure-brief strong { color: var(--text); font-weight: 600; }
@media(max-width:700px) {
 .training-section .figure-description { grid-template-columns: 1fr; gap: 12px; }
 .training-section .figure-brief { font-size: 17px; }
}
#expanded-figure-description .figure-brief { color: var(--muted); font-size: 17px; line-height: 1.75; }
