/* Stack the hero title, motivation text and method link. */
#overview .hero-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; align-items: start; }
#overview .hero-side { margin-top: 0; padding-bottom: 0; }
#overview .hero-side p { max-width: 680px; }

/* Figure 1: each vertical branch follows foundation model → downstream model → distillation.
   Tasks share a source; there are no task-to-task edges or scheduling delays. */
.overview-v3.overview-flow .overview-lane { padding: 23px 18px 18px; }
.overview-v3.overview-flow .lane-heading { min-height: 65px; margin-bottom: 14px; padding-right: 65px; }
.overview-v3.overview-flow .lane-heading h3 { font-size: 25px; line-height: 1.15; }
.overview-v3.overview-flow .mini-label { font-size: 10px; }
.overview-v3.overview-flow .count { position: absolute; font-size: 11px; margin: 0; }
.overview-flow .ov-foundation { border: 1px solid #ccd2c1; border-radius: 8px; background: white; padding: 11px 14px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.overview-flow .ov-foundation > span { font-size: 8px; letter-spacing: 1px; color: #8b947d; }
.overview-flow .ov-foundation strong { font-size: 19px; letter-spacing: -.4px; }
.overview-flow .ov-foundation small { font-size: 10px; color: #859175; }
.overview-flow .plug-route .ov-foundation { border-color: #b4cd91; }
.overview-flow .ov-development,
.overview-flow .ov-distill-once { display: flex; justify-content: center; align-items: center; gap: 12px; min-height: 71px; }
.overview-flow .ov-stage-arrow { font-size: 35px; font-weight: 300; line-height: 1; color: #b5a37f; }
.overview-flow .ov-distill-once .ov-stage-arrow { color: #7da247; }
.overview-flow .ov-development > div,
.overview-flow .ov-distill-once > div { display: flex; flex-direction: column; gap: 5px; }
.overview-flow .ov-development strong,
.overview-flow .ov-distill-once strong { font-size: 14px; font-weight: 550; }
.overview-flow .ov-development small,
.overview-flow .ov-distill-once small { font-size: 10px; color: #9b895f; }
.overview-flow .ov-development.complete small,
.overview-flow.adapters-trained .ov-distill-once small { color: #779747; }
.overview-flow .ov-training-progress { height: 6px; width: 100%; overflow: hidden; border-radius: 3px; background: #e0e8d5; }
.overview-flow .ov-training-progress > span { display: block; height: 100%; border-radius: inherit; background: #86ac50; transform: scaleX(var(--training-progress, 0)); transform-origin: left; }
.overview-flow .backbone-progress { min-width: 180px; }
.overview-flow .task-progress { margin: 7px 0 4px; }
.overview-flow .ov-development.complete .ov-stage-arrow { color: #9ba98d; }
.overview-v3.overview-flow .three-plugs { gap: 6px; visibility: hidden; }
.overview-v3.overview-flow .three-plugs.available { visibility: visible; }
.overview-v3.overview-flow .three-plugs .lora-chip { flex: 1; font-size: 10px; padding: 8px 4px; }
.overview-flow .transfer-caption { height: 27px; font-size: 8px; letter-spacing: .15px; text-align: center; }
.overview-flow .ov-fanout { --path: #d5dacc; height: 29px; position: relative; margin: 0 0 6px; }
.overview-flow .ov-fanout:before { content: ''; position: absolute; top: 8px; left: 16.6667%; right: 16.6667%; border-top: 1px solid var(--path); }
.overview-flow .ov-fanout:after { content: ''; position: absolute; top: 0; height: 8px; left: 50%; border-left: 1px solid var(--path); }
.overview-flow .ov-fanout i { position: absolute; top: 8px; bottom: 3px; border-left: 1px solid var(--path); left: 16.6667%; }
.overview-flow .ov-fanout i:nth-child(2) { left: 50%; }
.overview-flow .ov-fanout i:nth-child(3) { left: 83.3333%; }
.overview-flow .ov-fanout i:after { content: ''; position: absolute; left: -3px; bottom: 0; width: 5px; height: 5px; border-right: 1px solid var(--path); border-bottom: 1px solid var(--path); transform: rotate(45deg); }
.overview-flow.downstream-developed .serial-fanout { --path: #b29d73; }
.overview-flow.adapters-transferred .parallel-fanout { --path: #89ac56; }
.overview-v3.overview-flow .serial-tasks,
.overview-v3.overview-flow .parallel-tasks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.overview-v3.overview-flow .serial-row,
.overview-v3.overview-flow .parallel-task { min-width: 0; padding: 8px; border-radius: 7px; opacity: 1; transform: none; transition: none; }
.overview-v3.overview-flow .serial-row:not(:last-child):after { content: none; }
.overview-v3.overview-flow .serial-row.active { border-color: #bca982; box-shadow: none; }
.overview-flow .ov-task-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-height: 62px; margin-bottom: 8px; }
.overview-flow .ov-task-heading strong { font-size: 14px; letter-spacing: -.4px; }
.overview-flow .ov-task-heading > span { font-size: 9px; line-height: 1.3; }
.overview-flow .ov-task-heading > small { margin-left: 0; font-size: 8px; }
.overview-flow .serial-output,
.overview-flow .parallel-output { position: relative; min-width: 0; }
.overview-flow .ov-task-media,
.overview-flow .output-recording { visibility: hidden; transition: none; }
.overview-flow.downstream-developed .ov-task-media,
.overview-flow .parallel-task.ready .output-recording { visibility: visible; }
.overview-flow .serial-pending,
.overview-flow .output-wait { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 7px; align-items: center; justify-content: center; padding: 8px; border: 1px dashed #d9dfcf; border-radius: 5px; background: #f9faf6; color: #97a08c; font-size: 10px; text-align: center; line-height: 1.4; }
.overview-flow .pending-number { font-size: 29px; color: #b2a17e; font-weight: 300; }
.overview-flow.downstream-developed .serial-pending,
.overview-flow .parallel-task.ready .output-wait { display: none; }
.overview-flow .ov-preview-label { display: block; font-size: 8px; color: #919b85; margin-bottom: 5px; }
.overview-flow .ov-task-media > video,
.overview-flow .output-recording > video { width: 100%; height: auto !important; min-height: 0; aspect-ratio: 16 / 9; object-fit: contain !important; border-radius: 4px; }
.overview-flow .ov-format,
.overview-flow .ov-audio,
.overview-flow .ov-conditioning { box-sizing: border-box; height: 48px; min-width: 0; margin-top: 5px; padding: 4px; gap: 4px; font-size: 9px; line-height: 1.3; }
.overview-flow .ov-format .alpha-grid { width: 14px; height: 14px; flex: 0 0 14px; }
.overview-flow .ov-audio { flex-direction: column; align-items: stretch; }
.overview-flow .ov-audio > span { font-size: 9px; white-space: normal; }
.overview-flow .ov-audio img { height: 18px; width: 100%; flex: none; }
.overview-flow .ov-conditioning > span { font-size: 9px; }
.overview-flow .ov-conditioning video { width: 50% !important; height: 36px !important; }
.overview-flow .task-training { width: 100%; }
.overview-flow .ov-branch-arrow { font-size: 21px; line-height: 1; text-align: center; color: #c0c7b3; margin: 4px 0; }
.overview-flow .serial-row.active .ov-branch-arrow { color: #b4a076; }
.overview-flow .serial-row.complete .ov-branch-arrow { color: #91ac6b; }
.overview-v3.overview-flow .data-operation,
.overview-v3.overview-flow .train-operation { grid-template-columns: 1fr; padding: 6px; gap: 0; }
.overview-v3.overview-flow .data-operation strong,
.overview-v3.overview-flow .train-operation strong { font-size: 12px; }
.overview-v3.overview-flow .data-operation em,
.overview-v3.overview-flow .train-operation em { grid-column: 1; font-size: 9px; margin-top: 3px; }
.overview-flow .train-operation { margin-top: 5px; }
.overview-v3.overview-flow .serial-result { visibility: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; min-height: 48px; padding: 7px 4px; border-radius: 4px; text-align: center; line-height: 1.35; }
.overview-v3.overview-flow .serial-row.complete .serial-result { visibility: visible; background: #f0f5e8; border: 1px solid #cad8b5; }
.overview-flow .serial-result strong { font-size: 11px; font-weight: 550; }
.overview-flow .serial-result span { font-size: 8px; color: #85946e; font-weight: 400; }
.overview-v3.overview-flow .plug-delivery { visibility: hidden; display: flex; flex-direction: row; min-height: 32px; padding: 5px 3px; margin-bottom: 9px; gap: 4px; justify-content: center; background: #f1f7e8; border: 1px solid #d5e4c0; border-radius: 4px; }
.overview-v3.overview-flow .parallel-task.ready .plug-delivery { visibility: visible; }
.overview-flow .plug-delivery > span { width: 18px; height: 18px; font-size: 16px; border-radius: 4px; }
.overview-flow .plug-delivery strong { font-size: 9px; }
.overview-flow .plug-delivery em { font-size: 9px; }
.overview-flow .ov-transfer-note { visibility: hidden; display: block; text-align: center; color: #7c9361; font-size: 9px; padding: 10px 0 2px; line-height: 1.4; }
.overview-flow .parallel-task.ready .ov-transfer-note { visibility: visible; }
.overview-flow .more-tasks { gap: 8px; padding-top: 14px; }
.overview-flow .more-tasks span { font-size: 10px; }
.overview-v3.overview-flow .lane-summary { font-size: 11px; margin-top: 12px; min-height: 35px; line-height: 1.6; }
.overview-flow .plug-route .lane-summary { margin-top: 24px; padding: 13px; background: #edf4e3; border: 1px solid #d8e5c5; border-radius: 6px; }

/* Emphasize the reusable adapters; six compact tasks receive their own copies. */
.overview-flow .plug-route { position: relative; }
.overview-flow .ov-distill-once { min-height: 110px; gap: 13px; }
.overview-flow .ov-distill-once > div { gap: 9px; min-width: 0; }
.overview-flow .ov-distill-once strong { font-size: 24px; font-weight: 650; letter-spacing: -.7px; line-height: 1.2; }
.overview-flow .ov-distill-once small { font-size: 13px; font-weight: 500; color: #597838; }
.overview-flow .ov-distill-once .ov-stage-arrow { font-size: 42px; }
.overview-flow .ov-lora-bank { padding: 12px 0 4px; }
.overview-flow .ov-bank-label { display: block; color: #6b7b56; font-size: 10px; font-weight: 650; letter-spacing: 1.35px; margin-bottom: 10px; text-align: center; }
.overview-v3.overview-flow .three-plugs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0; }
.overview-v3.overview-flow .three-plugs .lora-chip { display: flex; flex-direction: column; gap: 7px; padding: 16px 4px; min-width: 0; min-height: 80px; border-width: 1.5px; box-shadow: 0 3px 10px #34432307; }
.overview-flow .three-plugs .lora-chip::before { content: none; }
.overview-flow .three-plugs .lora-chip strong { font-size: 14px; font-weight: 650; line-height: 1.25; white-space: normal; text-align: center; letter-spacing: -.3px; }
.overview-flow .three-plugs .lora-chip small { font-size: 9px; font-weight: 400; white-space: normal; text-align: center; }
.overview-flow .transfer-caption { display: flex; align-items: center; justify-content: center; gap: 9px; height: 45px; font-size: 9px; letter-spacing: .3px; color: #6c8055; }
.overview-flow .transfer-caption > span { font-size: 24px; line-height: 1; }
.overview-v3.overview-flow .plug-route .parallel-tasks { gap: 10px; }
.overview-v3.overview-flow .plug-route .parallel-task { padding: 7px; border-color: #dce4d1; }
.overview-v3.overview-flow .plug-route .parallel-task.ready { border-color: #9fbf79; }
.overview-flow .plug-route .ov-task-heading { min-height: 30px; margin-bottom: 4px; justify-content: center; }
.overview-flow .plug-route .ov-task-heading strong { font-size: 11px; letter-spacing: -.2px; line-height: 1.3; }
.overview-flow .ov-adapter-dock { height: 18px; margin-bottom: 7px; display: flex; justify-content: center; align-items: center; gap: 3px; }
.overview-flow .ov-adapter-dock > span { visibility: hidden; font-size: 8px; line-height: 15px; font-weight: 650; border: 1px solid; border-radius: 3px; padding: 0 4px; }
.overview-flow .ov-adapter-dock > b { visibility: hidden; font-size: 11px; color: #5c842e; margin-left: 2px; }
.overview-flow .parallel-task.ready .ov-adapter-dock > * { visibility: visible; }
.overview-flow .ov-adapter-dock .step,.overview-flow .lora-flight.step { color: var(--blue); background: var(--blue-soft); border-color: #aabfcc; }
.overview-flow .ov-adapter-dock .cfg,.overview-flow .lora-flight.cfg { color: var(--green-dark); background: var(--soft); border-color: #adc48d; }
.overview-flow .ov-adapter-dock .long,.overview-flow .lora-flight.long { color: var(--clay); background: var(--clay-soft); border-color: #cdbb9f; }
.overview-flow .plug-route .parallel-output { height: 92px; }
.overview-flow .plug-route .output-recording > video { max-width: 114px; margin-inline: auto; }
.overview-flow .plug-route .output-recording > :is(.ov-format,.ov-audio,.ov-conditioning) { max-width: 114px; margin-inline: auto; height: 23px; font-size: 7px; padding: 2px; gap: 3px; }
.overview-flow .plug-route .ov-format .alpha-grid { width: 10px; height: 10px; flex-basis: 10px; }
.overview-flow .plug-route .ov-audio { flex-direction: row; align-items: center; }
.overview-flow .plug-route .ov-audio > span { font-size: 7px; max-width: 46px; }
.overview-flow .plug-route .ov-audio img { width: 50%; height: 15px; }
.overview-flow .plug-route .ov-conditioning > span { font-size: 7px; }
.overview-flow .plug-route .ov-conditioning video { height: 19px !important; }
.overview-flow .plug-route .output-wait { font-size: 10px; background: #f7f9f2; border-style: solid; }
.overview-flow .plug-route .output-wait > span { font-size: 20px; color: #9aac84; }
.overview-flow .parallel-task .ov-case-detail { justify-content: center; font-size: 8px; color: #7a886c; line-height: 1.4; padding-top: 5px; text-align: center; }
.overview-flow .plug-route .lane-summary { margin-top: 14px; padding: 11px; font-size: 12px; font-weight: 550; }
.overview-flow .overview-flight-layer { position: absolute; inset: 0; pointer-events: none; z-index: 5; overflow: hidden; }
.overview-flow .lora-flight { position: absolute; left: 0; top: 0; visibility: hidden; padding: 7px 5px; min-width: 32px; text-align: center; border: 1.5px solid; border-radius: 6px; font-size: 10px; font-weight: 650; line-height: 1.2; white-space: nowrap; box-shadow: 0 5px 12px #30432324; will-change: transform; }
@media (max-width: 1100px) {
 .overview-v3.overview-flow { grid-template-columns: 1fr; }
 .overview-v3.overview-flow .overview-lane { padding: 20px; }
 .overview-v3.overview-flow .plug-route { border-left: 0; border-top: 1px solid var(--line); }
 .overview-v3.overview-flow .ov-task-media > video,
 .overview-v3.overview-flow .output-recording > video { max-height: 130px; }
 .overview-flow .ov-task-heading { min-height: 62px; }
}

/* Keep the figure readable at a glance: primary labels and visual state only. */
#overview-animation .lane-heading { min-height: 0; padding-right: 0; margin-bottom: 22px; }
#overview-animation .lane-heading h3 { font-size: 26px; }
#overview-animation .ov-foundation { padding: 14px; }
#overview-animation .ov-foundation strong { font-size: 21px; }
#overview-animation .ov-development strong { font-size: 17px; }
#overview-animation .ov-distill-once { min-height: 94px; }
#overview-animation .ov-distill-once strong { font-size: 24px; }
#overview-animation .ov-training-progress { height: 8px; border-radius: 4px; }
#overview-animation .ov-task-heading { min-height: 37px; margin-bottom: 9px; }
#overview-animation .ov-task-heading strong { font-size: 15px; line-height: 1.25; }
#overview-animation .plug-route .ov-task-heading strong { font-size: 13px; }
#overview-animation .ov-task-media { display: grid; grid-template-rows: auto 34px; gap: 5px; }
#overview-animation .ov-conditioning,#overview-animation .ov-audio { height: 34px; margin: 0; padding: 2px; justify-content: center; }
#overview-animation .ov-conditioning video { width: 72px !important; height: 30px !important; }
#overview-animation .ov-audio img { width: 100%; height: 26px; }
#overview-animation .data-operation,#overview-animation .train-operation { display: flex; justify-content: space-between; align-items: center; padding: 10px 8px; min-height: 38px; }
#overview-animation .data-operation strong,#overview-animation .train-operation strong { font-size: 15px; }
#overview-animation .data-operation em,#overview-animation .train-operation em { font-size: 15px; min-height: 0; margin: 0; color: #628b3b; }
#overview-animation .serial-result { min-height: 43px; }
#overview-animation .serial-result strong { font-size: 14px; }
#overview-animation .three-plugs .lora-chip { min-height: 70px; padding: 16px 8px; }
#overview-animation .three-plugs .lora-chip strong { font-size: 16px; }
#overview-animation .transfer-caption { height: 44px; font-size: 16px; letter-spacing: 0; font-weight: 550; }
#overview-animation .ov-adapter-dock { height: 18px; margin-bottom: 8px; gap: 5px; }
#overview-animation .ov-adapter-dock > span { display: block; width: 18px; height: 14px; padding: 0; border-width: 1.5px; }
#overview-animation .ov-adapter-dock > b { font-size: 15px; }
#overview-animation .plug-route .ov-conditioning,#overview-animation .plug-route .ov-audio { height: 23px; padding: 2px; }
#overview-animation .plug-route .ov-conditioning video { width: 55px !important; height: 20px !important; }
#overview-animation .plug-route .ov-audio img { height: 19px; }
#overview-animation .output-wait > span { font-size: 30px; }
#overview-animation .more-tasks { justify-content: center; padding-top: 10px; }
#overview-animation .more-tasks b { font-size: 30px; }
#overview-animation .lane-summary { margin-top: 9px; min-height: 0; font-size: 18px; font-weight: 600; text-align: center; padding: 13px 0; line-height: 1.3; }
#overview-animation .plug-route .lane-summary { font-size: 18px; }
#overview-animation .lora-flight { width: 29px; min-width: 29px; height: 29px; padding: 0; display: grid; place-items: center; font-size: 24px; font-weight: 400; }
#overview .board-footer { justify-content: flex-end; }
@media (max-width: 620px) {
 #overview-animation .lane-heading h3 { font-size: 23px; }
 #overview-animation .ov-task-heading { min-height: 33px; }
 #overview-animation .ov-task-heading strong { font-size: 12px; }
 #overview-animation .plug-route .ov-task-heading strong { font-size: 13px; }
 #overview-animation .ov-distill-once strong { font-size: 21px; }
 #overview-animation .data-operation,#overview-animation .train-operation { padding: 9px 4px; }
 #overview-animation .data-operation strong,#overview-animation .train-operation strong { font-size: 12px; }
 #overview-animation .serial-result strong { font-size: 12px; }
 #overview-animation .three-plugs .lora-chip { padding: 12px 4px; }
 #overview-animation .three-plugs .lora-chip strong { font-size: 14px; }
}
@media (max-width: 620px) {
 .overview-v3.overview-flow .overview-lane { padding: 19px 10px 15px; }
 .overview-v3.overview-flow .lane-heading { min-height: 66px; padding-right: 56px; }
 .overview-v3.overview-flow .lane-heading h3 { font-size: 24px; }
 .overview-v3.overview-flow .mini-label { font-size: 8px; letter-spacing: .6px; }
 .overview-v3.overview-flow .count { font-size: 9px; }
 .overview-v3.overview-flow .serial-tasks,
 .overview-v3.overview-flow .parallel-tasks { gap: 7px; }
 .overview-v3.overview-flow .serial-row,
 .overview-v3.overview-flow .parallel-task { padding: 5px; }
 .overview-flow .ov-task-heading { min-height: 75px; }
 .overview-flow .ov-task-heading strong { font-size: 11px; }
 .overview-flow .ov-task-heading > span { font-size: 8px; }
 .overview-flow .ov-task-heading > small { font-size: 7px; }
 .overview-flow .ov-format,
 .overview-flow .ov-audio,
 .overview-flow .ov-conditioning { font-size: 8px; padding: 2px; }
 .overview-flow .ov-format .alpha-grid { display: none; }
 .overview-flow .ov-audio > span,
 .overview-flow .ov-conditioning > span { font-size: 8px; }
 .overview-flow .ov-conditioning video { height: 27px !important; }
 .overview-v3.overview-flow .data-operation,
 .overview-v3.overview-flow .train-operation { padding: 5px 3px; }
 .overview-v3.overview-flow .data-operation strong,
 .overview-v3.overview-flow .train-operation strong { font-size: 11px; }
 .overview-v3.overview-flow .data-operation em,
 .overview-v3.overview-flow .train-operation em { font-size: 8px; min-height: 22px; }
 .overview-flow .serial-result strong { font-size: 10px; }
 .overview-flow .serial-result span { font-size: 7px; }
 .overview-flow .serial-pending,
 .overview-flow .output-wait { font-size: 9px; padding: 4px; }
 .overview-flow .plug-delivery > span { display: none; }
 .overview-flow .plug-delivery strong { font-size: 8px; letter-spacing: -.15px; }
 .overview-flow .plug-delivery em { font-size: 8px; }
 .overview-flow .ov-transfer-note { font-size: 8px; }
 .overview-flow .more-tasks span { font-size: 9px; }
 .overview-v3.overview-flow .lane-summary { font-size: 10px; }
 .overview-flow .transfer-caption { font-size: 7px; }
 .overview-flow .ov-distill-once strong { font-size: 21px; }
 .overview-flow .ov-distill-once small { font-size: 12px; }
 .overview-flow .ov-distill-once { gap: 7px; }
 .overview-flow .ov-distill-once .ov-stage-arrow { font-size: 32px; }
 .overview-v3.overview-flow .three-plugs { gap: 5px; }
 .overview-v3.overview-flow .three-plugs .lora-chip { min-height: 84px; padding: 10px 5px; }
 .overview-flow .three-plugs .lora-chip strong { font-size: 12px; }
 .overview-flow .three-plugs .lora-chip small { font-size: 8px; }
 .overview-v3.overview-flow .plug-route .parallel-tasks { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
 .overview-flow .plug-route .ov-task-heading { min-height: 29px; }
 .overview-flow .plug-route .parallel-output { height: 91px; }
}
