/* Keep the existing lecture proportions; scientific diagrams remain editable SVG. */
.sections-with-capstone{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scroll-behavior:smooth}
.sections-with-capstone button{flex-shrink:0}
/* A roadmap uses one shared study sequence, not a labeled takeaway. */
.teaching-point:has(#pointLabel[hidden]){justify-content:center;text-align:center}
.ac-svg text{fill:var(--ink);font-size:26px}
.ac-svg .ac-large{font-size:31px;font-weight:700}
.ac-svg .ac-strong{font-size:26px;font-weight:700}
.ac-svg .ac-small{font-size:23px}
.ac-svg .ac-micro{font-size:18px;fill:var(--muted)}
.ac-svg .ac-kicker{font-size:19px;font-weight:700;letter-spacing:1px;fill:var(--teal)}
.ac-svg .ac-red{fill:#ac343d}
.ac-reversal-flow{fill:none;stroke:#087f78;stroke-width:3}
.ac-reversal-backup{fill:none;stroke:#087f78;stroke-width:2.5;stroke-dasharray:7 5}
.ac-reversal-divider{fill:none;stroke:#cbdbe2;stroke-width:1.5}
.ac-reversal-no{fill:none;stroke:#ac343d;stroke-width:4;stroke-linecap:round}
.ac-reversal-backup-label{fill:#4c6470}
.ac-history-rail{fill:none;stroke:#aac6cc;stroke-width:3}
.ac-history-medallion{fill:#f0f6f8;stroke:#c5d8df;stroke-width:2}
.ac-history-icon{fill:none;stroke:#2b4a5d;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.ac-panel{fill:#f5f9fa;stroke:#bacdd9;stroke-width:1.6}
.ac-platelet-panel{fill:#f3edf8;stroke:#ad96c9;stroke-width:1.6}
.ac-warning-panel{fill:#fbefeb;stroke:#d89a94;stroke-width:1.6}
.ac-node{fill:#e7f3f0;stroke:#6ea9a0;stroke-width:2}
.ac-arrow{fill:none;stroke:#087f78;stroke-width:3;stroke-linejoin:round;stroke-dasharray:1000;stroke-dashoffset:0;animation:ac-path 1.8s ease-out both}
.ac-feedback,.ac-cycle{stroke-dasharray:8 7;animation:none}
.ac-cycle{fill:none;stroke:#087f78;stroke-width:2}
.ac-block{stroke:#ac343d;stroke-width:5;fill:none;stroke-linecap:round}
@keyframes ac-path{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
.ac-summary{font-size:30px;line-height:1.32;padding-top:16px}
.ac-summary ul{gap:23px}
.ac-summary ul.ac-sub-bullets{margin:8px 0 0;padding-left:34px;gap:6px;list-style-type:circle}
.ac-table-wrap{height:100%;padding:10px 12px;overflow:auto}
.ac-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:24px;line-height:1.23}
.ac-table th,.ac-table td{padding:12px 16px;border:1px solid var(--line);vertical-align:middle;text-align:left}
.ac-table thead th{background:#eaf3f4;color:#087f78;font-size:22px}
.ac-table tbody th{background:#f6f9fb;font-weight:700;width:21%}
.ac-table tr:nth-child(even) td{background:#f8fafb}
.ac-table-compact .ac-table th,.ac-table-compact .ac-table td{padding-top:8px;padding-bottom:8px}
.ac-assay-guide .ac-table th,.ac-assay-guide .ac-table td{padding-top:6px;padding-bottom:6px}
.ac-use-preferences .ac-table{font-size:23px;line-height:1.2}
.ac-use-preferences .ac-table th,.ac-use-preferences .ac-table td{padding-top:4px;padding-bottom:4px}
.ac-oral-use-preferences .ac-table tbody th{width:auto}
.ac-oral-use-preferences .ac-table td strong{color:#175f54}
.ac-parenteral-agent{width:14%}.ac-parenteral-target{width:18%}.ac-parenteral-clearance{width:29%}.ac-parenteral-reversal{width:17%}.ac-parenteral-hit{width:22%}
.ac-parenteral-comparison .ac-table tbody th{width:auto}
@media(max-width:600px){.ac-parenteral-comparison .ac-table{min-width:1400px}}
.ac-caption{font-size:22px;line-height:1.3;margin:14px 4px 0;color:var(--muted)}
.ac-interaction-warning{display:flex;align-items:flex-start;gap:12px;margin:14px 4px 0;font-size:25px;line-height:1.25;color:#b52e40}
.ac-interaction-warning>div{min-width:0}
.ac-interaction-flag{flex:0 0 30px;font-size:27px;line-height:1.15}
.ac-interaction-warning .ac-caption{margin:5px 0 0}
@media(max-width:600px){.ac-interaction-warning{font-size:20px;position:sticky;left:0;max-width:calc(100vw - 34px)}.ac-interaction-warning .ac-caption{position:static;max-width:none}}
.ac-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}
/* Warfarin pharmacogenomics: context, gene comparison and combined effects. */
.ac-pgx-rule{fill:none;stroke:#d5e1e7;stroke-width:1.5}
.ac-pgx-join{fill:none;stroke:#087f78;stroke-width:2.5}
.ac-pgx-drug-symbol{fill:#b23b55;stroke:#86263c;stroke-width:1.8}
.ac-pgx-enzyme-symbol{fill:#dceeea;stroke:#217e74;stroke-width:2}
.ac-svg .ac-pgx-drug-label{fill:#9e2e48}
.ac-svg .ac-pgx-enzyme-label{fill:#176b62}
.ac-pgx-reference{margin:24px 0}
.ac-pgx-reference>summary{font-weight:700;cursor:pointer}
.ac-pgx-reference .ac-pgx-doses{height:auto;padding:16px 0;overflow-x:auto;font-size:18px}
.ac-pgx-reference .ac-pgx-history{display:block;font-size:18px}
.ac-pgx-reference .ac-pgx-history span{display:block}
.ac-pgx-reference .ac-table{min-width:680px;font-size:18px}
.ac-pgx-reference .ac-table th,.ac-pgx-reference .ac-table td{padding:8px;font-size:18px}
.ac-pgx-reference .ac-pgx-subhead{font-size:16px}
.ac-pgx-reference .ac-table caption{font-size:20px}
.ac-pgx-reference .ac-caption,.ac-pgx-reference .ac-pgx-evidence{font-size:18px}
.ac-pgx-intro,.ac-pgx-doses{height:100%;box-sizing:border-box;padding:6px 16px;font-size:25px;line-height:1.28}
.ac-pgx-lead{font-size:28px;font-weight:700;margin:0 0 20px}
.ac-pgx-columns{display:grid;grid-template-columns:1fr 1fr;gap:54px}
.ac-pgx-columns h3{font-size:29px;color:var(--teal);margin:0 0 14px;line-height:1.12}
.ac-pgx-columns p{margin:0 0 17px}
.ac-pgx-columns dl{margin:0}
.ac-pgx-columns dt{font-weight:700;margin:15px 0 4px}
.ac-pgx-columns dt:first-child{margin-top:0}
.ac-pgx-columns dd{margin:0}
.ac-pgx-mixture th,.ac-pgx-mixture td{padding:9px 12px}
.ac-pgx-mixture tbody th,.ac-pgx-effects .ac-table tbody th{width:auto}
.ac-pgx-effects .ac-table th,.ac-pgx-effects .ac-table td{padding:12px 16px}
.ac-pgx-history{display:flex;justify-content:space-between;gap:36px;margin:0 0 12px;font-size:23px}
.ac-pgx-history strong{color:var(--teal);margin-right:10px}
.ac-pgx-doses caption{font-weight:700;text-align:left;font-size:26px;padding:0 0 10px}
.ac-pgx-doses .ac-table th,.ac-pgx-doses .ac-table td{text-align:center;padding:9px 12px}
.ac-pgx-doses .ac-table tbody th{width:auto}
.ac-pgx-subhead{display:block;font-size:20px;font-weight:400;margin-top:4px}
.ac-pgx-doses .ac-table .ac-pgx-dose-usual{background:#e4eef8;color:#214e77;font-weight:700}
.ac-pgx-doses .ac-table .ac-pgx-dose-lower{background:#e1f1ed;color:#175f54;font-weight:700}
.ac-pgx-doses .ac-table .ac-pgx-dose-lowest{background:#f0e8f7;color:#633b87;font-weight:700}
.ac-pgx-doses .ac-caption{margin:12px 0 0}
.ac-pgx-evidence{margin:12px 0 0;font-size:24px}
@media(max-width:600px){
  .drug-expanded .vessel-figure:has(.ac-pgx-intro,.ac-pgx-doses){height:auto;overflow:visible;margin:14px 0}
  .ac-pgx-intro,.ac-pgx-doses{height:auto;padding:0;font-size:20px}
  .ac-pgx-lead{font-size:23px}
  .ac-pgx-columns{display:block}
  .ac-pgx-columns section+section{margin-top:24px}
  .ac-pgx-columns h3{font-size:24px}
  .ac-pgx-intro .ac-table{min-width:0;font-size:18px}
  .ac-pgx-intro .ac-table th,.ac-pgx-intro .ac-table td{padding:8px;font-size:18px;overflow-wrap:anywhere}
  .ac-pgx-doses{overflow-x:auto}
  .ac-pgx-history{display:block;font-size:18px}
  .ac-pgx-history span{display:block;margin-bottom:8px}
  .ac-pgx-doses .ac-caption,.ac-pgx-evidence{font-size:18px}
}
/* Warfarin monitoring: qualitative risk plot and a connected treatment progression. */
.ac-inr-goal{fill:#e2f1ed}
.ac-inr-axis{stroke:#547082;stroke-width:1.8;fill:none}
.ac-inr-boundary{stroke:#67958a;stroke-width:1.4;stroke-dasharray:5 6;fill:none}
.ac-inr-curve{fill:none;stroke-width:4.5;stroke-linecap:round}
.ac-inr-thrombosis{stroke:#2466ab}
.ac-inr-bleeding{stroke:#b63a48;stroke-dasharray:12 8}
.ac-svg .ac-inr-thrombosis-label{fill:#2466ab}
.ac-svg .ac-inr-bleeding-label{fill:#b63a48}
.ac-svg .ac-inr-goal-label{fill:#176858}
.ac-phase-initiation{--phase-color:#2466ab}
.ac-phase-stabilization{--phase-color:#71449f}
.ac-phase-maintenance{--phase-color:#176858}
.ac-svg .ac-phase-label{fill:var(--phase-color)}
.ac-phase-node,.ac-phase-check{fill:var(--phase-color)}
.ac-svg .ac-phase-number{fill:#fff}
.ac-phase-progress{fill:none;stroke:#087f78;stroke-width:3;stroke-linecap:round}
.ac-phase-check-guide{fill:none;stroke:#d3dfe5;stroke-width:2}
.ac-phase-return{fill:none;stroke:#087f78;stroke-width:2.5;stroke-dasharray:7 6;stroke-linejoin:round}
.ac-svg .ac-phase-return-label{fill:#176858}
.ac-ttr-in{--ttr-color:#176858}
.ac-ttr-below{--ttr-color:#2466ab}
.ac-ttr-above{--ttr-color:#b63a48}
.ac-ttr-trace{fill:none;stroke:var(--ttr-color);stroke-width:4.5;stroke-linejoin:round;stroke-linecap:round}
.ac-ttr-trace.ac-ttr-above{stroke-dasharray:9 7}
.ac-ttr-time{fill:var(--ttr-color)}
/* Seven-row DTI comparison: retain the reference's column order and blue row headings. */
.ac-dti-comparison{padding:0;height:100%;box-sizing:border-box;overflow:visible}
.ac-dti-comparison .ac-table{font-size:26px;line-height:1.2;color:#15232b}
.ac-dti-feature{width:20%}.ac-dti-agent{width:40%}
.ac-dti-comparison .ac-table th,.ac-dti-comparison .ac-table td{border:2px solid #fff;padding:7px 16px}
.ac-dti-comparison .ac-table thead th,.ac-dti-comparison .ac-table tbody th{background:#075481;color:#fff;font-weight:700}
.ac-dti-comparison .ac-table thead th{font-size:28px;padding-top:13px;padding-bottom:13px}
.ac-dti-comparison .ac-table tbody th{width:auto;text-align:center}
.ac-dti-comparison .ac-table tbody td{background:#ccd7e7}
.ac-dti-comparison .ac-table tr:nth-child(even) td{background:#e7ecf4}
.ac-dti-line{display:block}
.ac-dti-comparison .ac-caption{font-size:20px;line-height:1.25;margin:10px 4px 0}
@media(min-width:601px){#walkthrough.drug-expanded.drug-tools-empty.dti-table-expanded{grid-template-rows:70px 729px 77px 52px}}
@media(max-width:600px){.ac-dti-comparison{overflow-x:auto;height:auto}.ac-dti-comparison .ac-table{min-width:1100px;font-size:22px}.ac-dti-comparison .ac-table thead th{font-size:24px}.ac-dti-comparison .ac-caption{font-size:17px}}
/* Mechanism animations. One complete pass, then hold the teaching frame.
   Base properties are the endpoint, so reduced motion also tells the whole story.
   The existing motion-paused rule freezes CSS timelines without rebuilding SVG. */
.ac-motion-scene text{stroke-width:3px}
.ac-svg .ac-purple{fill:#71449f}
.ac-svg .ac-gold{fill:#91620f}
.ac-vessel-lumen{fill:#f3f9f8}
.ac-vessel-wall{fill:none;stroke:#8bbab1;stroke-width:13}
.ac-injury{fill:#eedcc6;stroke:#b78349;stroke-width:5;stroke-linecap:round}
.ac-plug-platelet{fill:#e4d6ef;stroke:#8660b0;stroke-width:2}
.ac-enzyme-protein{fill:#f6e0b3;stroke:#ab7217;stroke-width:2.5}
.ac-at-protein{fill:#d7efeb;stroke:#087f78;stroke-width:2.5}
.ac-leader{fill:none;stroke:#82949c;stroke-width:1.8}
.ac-flow-arrow{fill:none;stroke:#087f78;stroke-width:2.5}
.ac-soluble-link{fill:none;stroke:#c88619;stroke-width:5}
.ac-soluble-unit{fill:#ecc678;stroke:#a16e19;stroke-width:1.8}
.ac-fibrinogen-source{opacity:.5}
.ac-fibrinogen-travel{opacity:0;animation:ac-substrate-arrival 5s linear both}
.ac-fibrin-release{opacity:0;animation:ac-fibrin-release 1.4s ease-out 4.2s both}
.ac-fibrin-thread,.ac-mesh-strand{fill:none;stroke:#b77a12;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.ac-mesh-strand{stroke-dasharray:1;stroke-dashoffset:0;animation:ac-mesh-grow 1.8s ease-out var(--strand-delay) both}
.ac-next-focus,.ac-target-caption{opacity:1;animation:ac-teaching-reveal 1s ease-out 9.2s both}
.ac-mesh-label{opacity:1;animation:ac-teaching-reveal .8s ease-out 6.5s both}
.ac-sugar-link{fill:none;stroke:#8060aa;stroke-width:4;stroke-linecap:round}
.ac-sugar{fill:#b49bce;stroke:#74519f;stroke-width:1.5}
.ac-binding-sugar{fill:#2e5faa;stroke:#163d78;stroke-width:2}
.ac-scene-divider{fill:none;stroke:#d3dfe3;stroke-width:1.5}
/* Static paired assay readouts: target bands use separate qualitative scales. */
.ac-resistance-target{fill:#e0eeeb}
.ac-resistance-axis{fill:none;stroke:#879ca4;stroke-width:2}
.ac-resistance-boundary{fill:none;stroke:#557e77;stroke-width:1.5;stroke-dasharray:3 3}
.ac-resistance-result{stroke:#fff;stroke-width:2}
.ac-resistance-low{fill:#ac343d}
.ac-resistance-in{fill:#087f78}
.ac-at-loop{fill:none;stroke:#087f78;stroke-width:4;stroke-linecap:round;opacity:1}
/* Inhibition and clot propagation occur concurrently, as in the source slide.
   Only the AT-bound copies become inactive; other enzymes keep generating fibrin.
   These times are teaching cues, not measured biochemical rate constants. */
.ac-basal-iia-capture{animation:ac-basal-capture 5s ease-in-out .5s both}
.ac-basal-xa-capture{animation:ac-basal-capture 5s ease-in-out 1.5s both}
.ac-basal-iia-off{opacity:1;animation:ac-teaching-reveal .4s ease-out 5.5s both}
.ac-basal-xa-off{opacity:1;animation:ac-teaching-reveal .4s ease-out 6.5s both}
.ac-basal-fibrinogen-source{opacity:.45}
.ac-basal-substrate{opacity:0;animation:ac-basal-substrate 2.2s linear var(--reaction-delay) both}
.ac-basal-fibrin-release{opacity:0;animation:ac-basal-product 1.5s ease-out var(--reaction-delay) both}
.ac-basal-plug-growth{opacity:1;animation:ac-teaching-reveal 2s ease-out 5.3s both}
.ac-basal-growth-caption{opacity:1;animation:ac-teaching-reveal .8s ease-out 8.5s both}
/* All four examples share one brief timeline: pentasaccharide docking,
   visible AT contour/loop rearrangement, then the three successful captures.
   There are no per-example delays or additional reveal controls. */
.ac-heparin-binding{animation:ac-heparin-binding 1.8s ease-out both}
.ac-at-reshape{fill:#a5d9d3;stroke:#087f78;stroke-width:2.5}
.ac-at-starting-outline{fill:none;stroke:#728d99;stroke-width:1.8;stroke-dasharray:4 4;opacity:.65;animation:ac-at-outline 1.8s linear both}
.ac-at-reactive-loop{fill:none;stroke:#005f59;stroke-width:5;stroke-linecap:round}
.ac-at-outline-key{fill:none;stroke:#728d99;stroke-width:1.8;stroke-dasharray:4 4}
.ac-at-loop-key{fill:none;stroke:#005f59;stroke-width:5;stroke-linecap:round}
.ac-heparin-capture{animation:ac-heparin-capture 1.8s ease-out both}
.ac-heparin-blocked{opacity:1;animation:ac-heparin-blocked 1.8s linear both}
/* Browsers without CSS path morphing retain the heparin-bound SVG contour
   and starting outline rather than dropping the protein or its explanation. */
@supports(d:path('M0 0 L1 1')){
  .ac-at-reshape{d:var(--at-bound);animation:ac-at-reshape 1.8s ease-in-out both}
  .ac-at-reactive-loop{d:var(--loop-bound);animation:ac-at-loop-expose 1.8s ease-in-out both}
}
.ac-inactive-mark{fill:none;stroke:#ac343d;stroke-width:4;stroke-linecap:round}
.ac-chain-comparison{opacity:1}
@keyframes ac-substrate-arrival{0%,30%{transform:translateX(0);opacity:1}80%,90%{transform:translateX(309px);opacity:1}100%{transform:translateX(309px);opacity:0}}
@keyframes ac-fibrin-release{0%{transform:translate(0,0);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:translate(10px,46px);opacity:0}}
@keyframes ac-mesh-grow{from{stroke-dashoffset:1;opacity:0}5%{opacity:1}to{stroke-dashoffset:0;opacity:1}}
@keyframes ac-teaching-reveal{from{opacity:0}to{opacity:1}}
@keyframes ac-heparin-binding{0%{transform:translateY(16px)}20%,100%{transform:translateY(0)}}
@keyframes ac-at-reshape{0%,20%{d:var(--at-rest);fill:#d9efec}50%,100%{d:var(--at-bound);fill:#a5d9d3}}
@keyframes ac-at-loop-expose{0%,20%{d:var(--loop-rest)}50%,100%{d:var(--loop-bound)}}
@keyframes ac-at-outline{0%,20%{opacity:0}50%,100%{opacity:.65}}
@keyframes ac-heparin-capture{0%,50%{transform:translateX(55px)}100%{transform:translateX(0)}}
@keyframes ac-heparin-blocked{0%,90%{opacity:0}100%{opacity:1}}
@keyframes ac-basal-capture{from{transform:translateX(90px)}to{transform:translateX(0)}}
@keyframes ac-basal-substrate{0%{transform:translateX(0);opacity:0}10%{opacity:1}82%{transform:translateX(-160px);opacity:1}100%{transform:translateX(-160px);opacity:0}}
@keyframes ac-basal-product{0%{transform:translate(0,0);opacity:0}10%{opacity:1}80%{opacity:1}100%{transform:translate(48px,52px);opacity:0}}
/* Shared plot primitives used in later factor-turnover figures. */
.ac-pk-axis{fill:none;stroke:#617985;stroke-width:2}
.ac-svg .ac-pk-blue{fill:#2462b1}
.ac-pk-half-line{fill:none;stroke:#a6b4bd;stroke-width:1.7;stroke-dasharray:5 5}
/* UFH topics 4 and 5: static comparison and dose–half-life relationship. */
.ac-ufh-comparison{display:grid;grid-template-columns:1fr 1fr;gap:30px;height:100%;padding:8px 0 9px;color:#1c2b46;font-size:25px;line-height:1.32}
.ac-ufh-card{border:2px solid #d5dbe3;border-radius:10px;padding:20px 30px;background:#eef2f8}
.ac-ufh-variable{border-color:#b91f32;background:#fcf1f2}
.ac-ufh-card h3{margin:0 0 16px;color:#626e82;font:20px/1.2 ui-monospace,monospace;letter-spacing:2px;text-transform:uppercase}
.ac-ufh-card p{margin:0}
.ac-ufh-card p+p{margin-top:10px}
.ac-ufh-card .ac-ufh-conclusion{margin-top:14px;line-height:1.2}
.ac-ufh-dose-axis{fill:none;stroke:#78838c;stroke-width:3}
.ac-ufh-dose-guide{fill:none;stroke:#a2aab0;stroke-width:2}
.ac-ufh-dose-curve{fill:none;stroke:#6f7b83;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.ac-ufh-distribution-axis{fill:none;stroke:#263942;stroke-width:2.5}
.ac-ufh-distribution-curve{fill:none;stroke:#8b949a;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
/* Paired distributions: direct labels plus line style distinguish them without color. */
.ac-mw-curve{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.ac-mw-curve.ac-mw-lmwh{stroke:#2466ab}
.ac-mw-curve.ac-mw-ufh{stroke:#9b5e08;stroke-dasharray:12 8}
.ac-mw-fill{stroke:none;fill-opacity:.12}
.ac-mw-fill.ac-mw-lmwh{fill:#2466ab}
.ac-mw-fill.ac-mw-ufh{fill:#9b5e08}
.ac-svg .ac-mw-lmwh-label{fill:#2466ab}
.ac-svg .ac-mw-ufh-label{fill:#9b5e08}
/* Assay readouts develop once together, then hold; all teaching labels stay visible. */
.ac-assay-glass{fill:#f8fbfc;stroke:#7d9da9;stroke-width:3;stroke-linecap:round}
.ac-assay-plasma{fill:#f6efd9}
.ac-assay-fibrin{fill:none;stroke:#9c791d;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:ac-assay-clot 2.2s ease-out both}
.ac-assay-clock{fill:#f8fbfc;stroke:#427d83;stroke-width:3}
.ac-assay-clock-detail,.ac-assay-clock-hand{fill:none;stroke:#427d83;stroke-width:4;stroke-linecap:round}
.ac-inr-formula-line{fill:none;stroke:#427d83;stroke-width:2.5;stroke-linecap:round}
.ac-assay-color{animation:ac-assay-color 2.2s ease-out both}
.ac-assay-color-high{--assay-color:#d9ae12;fill:var(--assay-color)}
.ac-assay-color-low{--assay-color:#f5edc0;fill:var(--assay-color)}
@keyframes ac-assay-clot{0%,25%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
@keyframes ac-assay-color{0%,25%{fill:#fbfaf5}100%{fill:var(--assay-color)}}
@media(max-width:600px){
  .drug-expanded .vessel-figure:has(.ac-ufh-comparison){height:auto;min-height:0;margin:12px 0;overflow:visible}
  .ac-ufh-comparison{grid-template-columns:1fr;height:auto;gap:16px;padding:0;font-size:18px}
  .ac-ufh-card{padding:20px}
  .ac-ufh-card h3{font-size:14px;letter-spacing:1.2px}
}
/* Protamine: one shared clock; bind AT-bound UFH, then displace it as a salt.
   Base properties show released AT, the inactive salt, and completed fibrin. */
.ac-svg .ac-protamine-ink{fill:#9c3159}
.ac-svg .ac-heparin-ink{fill:#2b5e9d}
.ac-protamine-heparin-backbone{fill:none;stroke:#2b5e9d;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.ac-protamine-heparin-site{fill:#2b5e9d;stroke:#163e71;stroke-width:1.5}
.ac-protamine-minus{fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round}
.ac-protamine-protein-backbone{fill:none;stroke:#b64c74;stroke-width:9;stroke-linecap:round}
.ac-protamine-positive-site{fill:#f5d9e4;stroke:#9c3159;stroke-width:2}
.ac-protamine-plus{fill:none;stroke:#9c3159;stroke-width:2.5;stroke-linecap:round}
.ac-protamine-complex-fill{fill:#eaf1f0;stroke:#b3c6c2;stroke-width:1.5}
.ac-protamine-ion-pair{fill:none;stroke:#687e81;stroke-width:2.5;stroke-dasharray:2 3}
.ac-protamine-at-contact{fill:none;stroke:#2b5e9d;stroke-width:5;stroke-linecap:round;opacity:0;animation:ac-protamine-at-contact 2.8s ease-out both}
.ac-protamine-at-outcome{opacity:1;animation:ac-protamine-at-outcome 2.8s ease-out both}
.ac-protamine-sequester{transform:translate(0,0);animation:ac-protamine-sequester 2.8s ease-in-out both}
.ac-protamine-dock{transform:translate(0,0);animation:ac-protamine-dock 2.8s ease-in-out both}
.ac-protamine-ionic-pairs,.ac-protamine-complex-halo{opacity:1;animation:ac-protamine-pair 2.8s ease-out both}
.ac-protamine-fibrinogen-source{opacity:.3}
.ac-protamine-substrate{opacity:0;animation:ac-protamine-substrate 2.8s ease-in-out both}
.ac-protamine-fibrin-strand{fill:none;stroke:#b77a12;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;opacity:1;animation:ac-protamine-fibrin 2.8s ease-out both}
@keyframes ac-protamine-dock{0%,10%{transform:translate(210px,0)}35%,100%{transform:translate(0,0)}}
@keyframes ac-protamine-pair{0%,30%{opacity:0}38%,100%{opacity:1}}
@keyframes ac-protamine-sequester{0%,38%{transform:translate(-268px,0)}67%,100%{transform:translate(0,0)}}
@keyframes ac-protamine-at-contact{0%,38%{opacity:1}48%,100%{opacity:0}}
@keyframes ac-protamine-at-outcome{0%,60%{opacity:0}70%,100%{opacity:1}}
@keyframes ac-protamine-substrate{0%,68%{transform:translate(0,0);opacity:0}69%{opacity:1}84%{transform:translate(-234px,22px);opacity:1}87%,100%{transform:translate(-234px,22px);opacity:0}}
@keyframes ac-protamine-fibrin{0%,84%{stroke-dashoffset:1;opacity:0}87%{opacity:1}100%{stroke-dashoffset:0;opacity:1}}
/* HIT follows molecular binding with overlapping cellular responses.
   A shared 3 s clock holds the endpoint. Labels never animate. */
.ac-hit-heparin{fill:none;stroke:#2e5faa;stroke-width:6;stroke-linecap:round}
.ac-hit-pf4 circle{fill:#f0cb77;stroke:#9a6d21;stroke-width:1.4}
.ac-hit-igg{fill:none;stroke:#ad3c54;stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.ac-hit-receptor{fill:none;stroke:#087f78;stroke-width:4;stroke-linecap:round}
.ac-hit-epitopes path{fill:none;stroke:#ad3c54;stroke-width:3;stroke-linecap:round}
.ac-hit-link{fill:none;stroke:#087f78;stroke-width:2.5}
.ac-hit-feedback{fill:none;stroke:#9b762f;stroke-width:2.5;stroke-dasharray:6 5}
.ac-hit-platelet-membrane{fill:url(#ac-hit-platelet-fill);stroke:#8052aa;stroke-width:3}
.ac-hit-granule{fill:#8760aa;stroke:#6c458f;stroke-width:1.3}
.ac-hit-vesicle{fill:#e6d8f2;stroke:#8052aa;stroke-width:2.5}
.ac-hit-procoagulant-surface{fill:none;stroke:#ad3c54;stroke-width:2.5;stroke-linecap:round}
.ac-hit-myeloid-cell{fill:url(#ac-hit-cell-fill);stroke:#648b9d;stroke-width:2.5}
.ac-hit-nucleus{fill:#98aabb;stroke:#648495;stroke-width:1.5}
.ac-hit-tf{fill:none;stroke:#ad3c54;stroke-width:5;stroke-linecap:round}
.ac-hit-vessel-wall{fill:none;stroke:#8bbab1;stroke-width:5}
.ac-hit-endothelial-cell{fill:#f5e2e7;stroke:#bc8092;stroke-width:2}
.ac-hit-endothelial-nucleus{fill:#d0a0b1}
.ac-hit-fibrinogen{opacity:.4}
.ac-hit-substrate-travel{opacity:0;animation:ac-hit-substrate 3s ease-in-out both}
.ac-hit-fibrin-strand{fill:none;stroke:#b77a12;stroke-width:3;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:ac-hit-fibrin 3s ease-out both}
.ac-hit-antigen-assembly{animation:ac-hit-antigen 3s ease-in-out both}
.ac-hit-epitopes{opacity:1;animation:ac-hit-epitope 3s ease-out both}
.ac-hit-antibody-assembly{animation:ac-hit-antibody 3s ease-in-out both}
.ac-hit-complex-docking{animation:ac-hit-dock 3s ease-in-out both}
.ac-hit-cell-complex{animation:ac-hit-cell-dock 3s ease-in-out both}
.ac-hit-pf4-release{animation:ac-hit-release 3s ease-out both}
.ac-hit-microparticle{animation:ac-hit-vesicle 3s ease-out both}
.ac-hit-tissue-factor{opacity:1;animation:ac-hit-tf 3s ease-out both}
.ac-hit-net-strand{fill:none;stroke:#607f92;stroke-width:2.8;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:ac-hit-net 3s ease-out both}
.ac-hit-vwf path{fill:none;stroke:#087f78;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:ac-hit-vwf 3s ease-out both}
.ac-hit-recruited-platelet{animation:ac-hit-recruit 3s ease-in-out both}
@supports(d:path('M0 0 L1 1')){
  .ac-hit-platelet-membrane{d:var(--hit-active);animation:ac-hit-activate 3s ease-in-out both}
}
@keyframes ac-hit-antigen{0%{transform:translateY(-20px)}15%,100%{transform:translateY(0)}}
@keyframes ac-hit-epitope{0%,12%{opacity:0}20%,100%{opacity:1}}
@keyframes ac-hit-antibody{0%,14%{transform:translateY(-28px);opacity:.35}29%,100%{transform:translateY(0);opacity:1}}
@keyframes ac-hit-dock{0%,23%{transform:translateY(-27px)}40%,100%{transform:translateY(0)}}
@keyframes ac-hit-cell-dock{0%,23%{transform:translateY(-12px)}40%,100%{transform:translateY(0)}}
@keyframes ac-hit-activate{0%,38%{d:var(--hit-rest)}52%,100%{d:var(--hit-active)}}
@keyframes ac-hit-release{0%,43%{transform:translate(var(--hit-pf4-dx),var(--hit-pf4-dy));opacity:0}48%{opacity:1}73%,100%{transform:translate(0,0);opacity:1}}
@keyframes ac-hit-vesicle{0%,43%{transform:translate(var(--hit-vesicle-dx),var(--hit-vesicle-dy));opacity:0}48%{opacity:1}73%,100%{transform:translate(0,0);opacity:1}}
@keyframes ac-hit-tf{0%,38%{opacity:.15}60%,100%{opacity:1}}
@keyframes ac-hit-net{0%,43%{stroke-dashoffset:1;opacity:0}48%{opacity:1}78%,100%{stroke-dashoffset:0;opacity:1}}
@keyframes ac-hit-vwf{0%,47%{stroke-dashoffset:1;opacity:0}52%{opacity:1}78%,100%{stroke-dashoffset:0;opacity:1}}
@keyframes ac-hit-substrate{0%,48%{transform:translate(0,0);opacity:0}53%{opacity:1}70%{transform:translate(-162px,31px);opacity:1}76%,100%{transform:translate(-162px,31px);opacity:0}}
@keyframes ac-hit-fibrin{0%,72%{stroke-dashoffset:1;opacity:0}76%{opacity:1}100%{stroke-dashoffset:0;opacity:1}}
@keyframes ac-hit-recruit{0%,55%{transform:translate(95px,-30px)}85%,100%{transform:translate(0,0)}}
.ac-hit-iceberg{margin:1.25rem 0}
.ac-hit-iceberg svg{display:block;width:100%;height:auto}
.ac-hit-iceberg figcaption{font-size:.85em;color:#46626d;margin-top:.5rem}
@media(prefers-reduced-motion:reduce){.ac-svg *{animation:none!important}.sections-with-capstone{scroll-behavior:auto}}
@media(max-width:600px){.sections-with-capstone{overflow:visible}.ac-summary{font-size:20px;padding:6px 0}.ac-summary ul{gap:16px}.ac-table-wrap{height:auto;padding:0;overflow-x:auto}.ac-table{min-width:900px;font-size:21px}.ac-table th,.ac-table td{padding:13px}.ac-table thead th{font-size:18px}.ac-caption{font-size:17px;position:sticky;left:0;max-width:calc(100vw - 34px)}.drug-expanded .vessel-figure:has(.ac-table-wrap){height:auto;min-height:0;margin:12px 0;overflow:visible}}
/* LMWH onward: flat editorial comparisons and actual molecular events.
   No new playback controls, loops, or delayed text reveals. */
.ac-editorial{display:grid;grid-template-columns:1fr 1fr;gap:56px;height:100%;padding:8px 20px;font-size:26px;line-height:1.28;box-sizing:border-box}
.ac-editorial>section+section{border-left:1px solid var(--line);padding-left:40px}
.ac-editorial h3{font-size:29px;line-height:1.12;color:var(--teal);margin:0 0 22px}
.ac-editorial dl{margin:0}
.ac-editorial dt{font-weight:700;font-size:26px;margin:14px 0 5px}
.ac-editorial dd{margin:0;font-size:25px;line-height:1.28}
.ac-tail-arrow{fill:none;stroke:#087f78;stroke-width:2.8}
.ac-tail-drug{fill:#b43d59;stroke:#762238;stroke-width:2}
.ac-tail-thrombin{fill:#dddcef;stroke:#71629c;stroke-width:3}
.ac-tail-exosite{fill:none;stroke:#b38a3d;stroke-width:8;stroke-linecap:round}
.ac-tail-peptide{fill:none;stroke:#b43d59;stroke-width:11;stroke-linecap:round}
.ac-tail-drug-contact{fill:none;stroke:#b43d59;stroke-width:13;stroke-linecap:round}
.ac-dti-at-contact{fill:none;stroke:#087f78;stroke-width:4;stroke-linecap:round}
.ac-tail-factor{fill:#e4eff8;stroke:#487cac;stroke-width:2.3}
.ac-tail-lipid-head{fill:#5eaaa2;stroke:#187c77;stroke-width:1}
.ac-tail-lipid-tail{fill:none;stroke:#8bbdb5;stroke-width:3}
.ac-tail-calcium{fill:#d8ae4e;stroke:#91620f;stroke-width:1.5}
.ac-tail-carboxyl{fill:none;stroke:#487cac;stroke-width:2}
.ac-tail-bone{fill:#eaddc7;stroke:#b59d79;stroke-width:3}
.ac-tail-epidural{fill:#f5ecd9;stroke:#bca681;stroke-width:2}
.ac-tail-dura{fill:#e3f2f3;stroke:#4a838b;stroke-width:3}
.ac-tail-neural{fill:#e3d4e9;stroke:#896496;stroke-width:2.5}
.ac-tail-hematoma{fill:#b84f62;stroke:#92283b;stroke-width:2}
.ac-tail-pressure{fill:none;stroke:#087f78;stroke-width:3}
.ac-neuraxial-blackbox{fill:#fff;stroke:#111;stroke-width:4}
.ac-neuraxial-blackbox-header{fill:#111}
.ac-svg .ac-neuraxial-warning-title{fill:#fff;stroke:none}
.ac-half-life-context{fill:#edf2f7;stroke:#cdd7e0;stroke-width:1.5}
.ac-half-life-range{fill:#bdd0e1;stroke:#51789c;stroke-width:1;stroke-dasharray:4 3}
.ac-half-life-comparison .ac-divider{fill:none;stroke:#c5d8df;stroke-width:1.5}
.ac-tail-liver{fill:#d2a3a0;stroke:#9f6a6c;stroke-width:2.8}
.ac-tail-infusion{fill:#e5f0f8;stroke:#648dac;stroke-width:2.5}
.ac-tail-infusion-line{fill:none;stroke:#648dac;stroke-width:5}
.ac-tail-capsule{fill:#eee3ce;stroke:#987b50;stroke-width:3}
.ac-tail-capsule-seam{fill:none;stroke:#987b50;stroke-width:2}
.ac-tail-cofactor{fill:#d7ebe4;stroke:#467e71;stroke-width:2.5}
.ac-tail-timeline{fill:none;stroke:#7fafa9;stroke-width:7}
.ac-tail-fab-light{fill:#bdd9ee;stroke:#4d80a7;stroke-width:2.5}
.ac-tail-fab-heavy{fill:#98b9d4;stroke:#4d80a7;stroke-width:2.5}
/* The base state is always the informative completed state. */
.ac-tail-arg-bind,.ac-tail-biva-bind,.ac-tail-xa-bind,.ac-tail-fonda-chain,.ac-tail-fonda-capture{transform:translate(0,0)}
.ac-tail-fonda-off,.ac-tail-xa-off,.ac-dti-off{opacity:1}
.ac-tail-direct-scene .ac-tail-arg-bind,.ac-tail-direct-scene .ac-tail-biva-bind,.ac-doac-mechanism-scene .ac-tail-arg-bind,.ac-doac-mechanism-scene .ac-tail-xa-bind{animation:ac-tail-direct-dock 2.2s ease-out both}
.ac-tail-fonda-chain{animation:ac-tail-fonda-bind 2.4s ease-out both}
.ac-tail-fonda-capture{animation:ac-tail-fonda-capture 2.4s ease-out both}
.ac-tail-fonda-off{animation:ac-tail-fonda-off 2.4s linear both}
.ac-tail-xa-off,.ac-dti-off{animation:ac-tail-xa-off 2.2s linear both}
@keyframes ac-tail-direct-dock{0%{transform:translateX(-100px)}65%,100%{transform:translateX(0)}}
@keyframes ac-tail-fonda-bind{0%{transform:translateY(25px)}25%,100%{transform:translateY(0)}}
@keyframes ac-tail-fonda-capture{0%,45%{transform:translateX(90px)}80%,100%{transform:translateX(0)}}
@keyframes ac-tail-fonda-off{0%,75%{opacity:0}80%,100%{opacity:1}}
@keyframes ac-tail-xa-off{0%,58%{opacity:0}65%,100%{opacity:1}}
/* High-affinity sequestration: Fab approaches, captures, and carries bound drug.
   Matched post-capture keyframes keep each complex intact.
   Directed travel illustrates encounters, not active pursuit or a clinical clock. */
.ac-svg .ac-ida-affinity{font-size:50px;fill:#2464a0}
.ac-ida-affinity-scene .ac-teal{fill:#087f68}
.ac-ida-divider{fill:none;stroke:#d5e0e5;stroke-width:1.5}
.ac-ida-origin{fill:none;stroke:#9b5366;stroke-width:1.5;stroke-dasharray:3 3}
.ac-ida-release-path{fill:none;stroke:#7d929c;stroke-width:2.5}
.ac-ida-release-head{fill:#7d929c}
.ac-ida-capture-ring{fill:none;stroke:#2464a0;stroke-width:3}
.ac-ida-check{fill:none;stroke:#087f68;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.ac-ida-free,.ac-ida-released,.ac-ida-mobile-free,.ac-ida-mobile-bound{transform:translate(0,0)}
.ac-ida-restored,.ac-ida-capture-ring,.ac-ida-complete-free,.ac-ida-complete-bound{opacity:1}
.ac-ida-thrombin .ac-tail-thrombin{fill:#d2eee2;stroke:#208568;animation:ac-ida-thrombin 10s linear both}
.ac-ida-mobile-free{animation:ac-ida-approach-free 10s ease-in-out both}
.ac-ida-mobile-bound{animation:ac-ida-approach-bound 10s ease-in-out both}
.ac-ida-free{animation:ac-ida-free 10s ease-in-out both}
.ac-ida-released{animation:ac-ida-release 10s ease-in-out both}
.ac-ida-restored{animation:ac-ida-restore 10s linear both}
.ac-ida-ring-free{animation:ac-ida-ring-free 10s linear both}
.ac-ida-ring-bound{animation:ac-ida-ring-bound 10s linear both}
.ac-ida-complete-free{animation:ac-ida-complete-free 10s linear both}
.ac-ida-complete-bound{animation:ac-ida-complete-bound 10s linear both}
@keyframes ac-ida-approach-free{0%,8%{transform:translate(0,0)}30%,38%{transform:translate(-865px,0)}56%,100%{transform:translate(0,0)}}
@keyframes ac-ida-free{0%,30%,38%{transform:translate(-865px,0)}56%,100%{transform:translate(0,0)}}
@keyframes ac-ida-approach-bound{0%,45%{transform:translate(0,0)}69%,76%{transform:translate(-462px,0)}93%,100%{transform:translate(0,0)}}
@keyframes ac-ida-release{0%,53%{transform:translate(-862px,-16px)}63%,69%,76%{transform:translate(-462px,0)}93%,100%{transform:translate(0,0)}}
@keyframes ac-ida-restore{0%,56%{opacity:0}63%,100%{opacity:1}}
@keyframes ac-ida-thrombin{0%,56%{fill:#d9d4ec;stroke:#7461a5}63%,100%{fill:#d2eee2;stroke:#208568}}
@keyframes ac-ida-ring-free{0%,30%{opacity:0}33%,100%{opacity:1}}
@keyframes ac-ida-ring-bound{0%,69%{opacity:0}72%,100%{opacity:1}}
@keyframes ac-ida-complete-free{0%,56%{opacity:0}60%,100%{opacity:1}}
@keyframes ac-ida-complete-bound{0%,93%{opacity:0}97%,100%{opacity:1}}
/* PCC delivers existing stock; vitamin K enables later production inside the liver.
   One pass holds the full shelves. Base styles are the completed, nonmoving view. */
.ac-rescue-supply{fill:#edf4fb;stroke:#6088ad;stroke-width:2.5}
.ac-rescue-supply-handle{fill:none;stroke:#6088ad;stroke-width:2.5}
.ac-rescue-shelf{fill:none;stroke:#6b9291;stroke-width:4;stroke-linejoin:round}
.ac-rescue-slot .ac-tail-factor{fill:#f6faf9;stroke:#b3c6c1;stroke-width:1.5;stroke-dasharray:5 5}
.ac-rescue-factor .ac-tail-factor{fill:#d2eee2;stroke:#208568}
.ac-rescue-factor{opacity:1;transform:translate(0,0)}
.ac-rescue-replacement{animation:ac-rescue-replace 2.1s ease-in-out var(--delay) both}
.ac-rescue-new{animation:ac-rescue-produce 1.6s linear var(--delay) both}
.ac-rescue-new .ac-tail-factor{animation:ac-rescue-functional 1.6s linear var(--delay) both}
.ac-rescue-vitamin{transform:translate(0,0);animation:ac-rescue-vitamin 1.6s ease-in-out both}
.ac-rescue-k-body{fill:#efd18a;stroke:#936b1c;stroke-width:2.5}
.ac-rescue-k-route{fill:none;stroke:#a0b7b4;stroke-width:2.5}
.ac-rescue-production-on{fill:none;stroke:#176858;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:1;animation:ac-rescue-production-on 2.2s linear both}
.ac-svg .ac-rescue-replacement-label{fill:#2466ab}
.ac-svg .ac-rescue-production-label{fill:#176858}
@keyframes ac-rescue-replace{0%,25%{transform:translateY(-132px)}100%{transform:translateY(0)}}
@keyframes ac-rescue-vitamin{0%,20%{transform:translate(-160px,0)}100%{transform:translate(0,0)}}
@keyframes ac-rescue-production-on{0%,75%{opacity:0}100%{opacity:1}}
@keyframes ac-rescue-produce{0%{opacity:0;transform:translate(var(--from-x),-75px)}20%,45%{opacity:1;transform:translate(var(--from-x),-75px)}65%{opacity:1;transform:translate(0,-75px)}100%{opacity:1;transform:translate(0,0)}}
@keyframes ac-rescue-functional{0%,20%{fill:#e6e9ee;stroke:#8596a7}45%,100%{fill:#d2eee2;stroke:#208568}}
/* Learner-controlled vitamin K cycle. Only this requested teaching loop repeats.
   Base styles show the selected state's complete output for reduced motion/print. */
.ac-vk-factor-route,.ac-vk-cycle-route{fill:none;stroke:#80a6a1;stroke-width:3}
.ac-vk-finishing-step{fill:#ede5f4;stroke:#8763a4;stroke-width:3}
.ac-vk-reductase{fill:#dcebe8;stroke:#377f78;stroke-width:3}
.ac-vk-vitamin{fill:#65b59c;stroke:#286e58;stroke-width:2}
.ac-vk-used{fill:#e2b263;stroke:#9c7025}
.ac-vk-factor-body{stroke-width:3}
.ac-vk-new{fill:#dceaf5;stroke:#608cac}
.ac-vk-functional,.ac-vk-existing{fill:#d2eee2;stroke:#208568}
.ac-vk-nonfunctional{fill:#f5dce0;stroke:#ac343d}
.ac-svg .ac-vk-green-label{fill:#197359}
.ac-vk-check,.ac-vk-cross{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.ac-vk-check{stroke:#197359}.ac-vk-cross{stroke:#ac343d}
.ac-vk-factor-flow{opacity:1;transform:translate(0,0);animation:ac-vk-factor-flow 4.8s linear infinite}
.ac-vk-factor-flow .ac-vk-functional{animation:ac-vk-functional-color 4.8s linear infinite}
.ac-vk-factor-flow .ac-vk-nonfunctional{animation:ac-vk-nonfunctional-color 4.8s linear infinite}
.ac-vk-output-mark{opacity:1;animation:ac-vk-output-mark 4.8s linear infinite}
.ac-vk-cycle-token{opacity:0;transform:translate(0,0);animation:ac-vk-cycle-token 4.8s linear infinite}
.ac-vk-cycle-token .ac-vk-vitamin{animation:ac-vk-redox 4.8s linear infinite}
.ac-vk-inhibition{fill:none;stroke:#ac343d;stroke-width:6;stroke-linecap:round}
.ac-vk-stock{opacity:1}
.ac-vk-scene[data-state="warfarin"] .ac-vk-stock{opacity:.25;animation:ac-vk-deplete 1.8s linear both}
.ac-vk-scene[data-state="warfarin"] .ac-vk-return-route{stroke-dasharray:7 5;opacity:.3}
.ac-vk-stalled-token{opacity:1;transform:translate(0,0);animation:ac-vk-stall 1.8s linear both}
@keyframes ac-vk-factor-flow{0%{opacity:0;transform:translate(-1055px,0)}8%{opacity:1;transform:translate(-1055px,0)}38%,48%{opacity:1;transform:translate(-580px,0)}78%,92%{opacity:1;transform:translate(0,0)}100%{opacity:0;transform:translate(0,0)}}
@keyframes ac-vk-functional-color{0%,38%{fill:#dceaf5;stroke:#608cac}48%,100%{fill:#d2eee2;stroke:#208568}}
@keyframes ac-vk-nonfunctional-color{0%,38%{fill:#dceaf5;stroke:#608cac}48%,100%{fill:#f5dce0;stroke:#ac343d}}
@keyframes ac-vk-output-mark{0%,38%{opacity:0}48%,100%{opacity:1}}
@keyframes ac-vk-cycle-token{0%,8%{opacity:1;transform:translate(0,0)}38%{transform:translate(230px,-75px)}48%{transform:translate(375px,-42px)}64%{transform:translate(465px,0)}72%{transform:translate(415px,76px)}82%{transform:translate(230px,91px)}92%{transform:translate(58px,74px)}100%{opacity:1;transform:translate(0,0)}}
@keyframes ac-vk-redox{0%,38%{fill:#65b59c;stroke:#286e58}48%,82%{fill:#e2b263;stroke:#9c7025}92%,100%{fill:#65b59c;stroke:#286e58}}
@keyframes ac-vk-deplete{0%{opacity:1}100%{opacity:.25}}
@keyframes ac-vk-stall{0%{transform:translate(91px,-91px)}65%{transform:translate(50px,-18px)}100%{transform:translate(0,0)}}
@media(prefers-reduced-motion:reduce){.ac-svg *{animation:none!important}}
@media(max-width:600px){.drug-expanded .vessel-figure:has(.ac-editorial){height:auto;overflow:visible;margin:14px 0}.ac-editorial{display:block;padding:0;font-size:20px}.ac-editorial>section+section{border-left:0;border-top:1px solid var(--line);padding:22px 0 0;margin-top:22px}.ac-editorial h3{font-size:23px}.ac-editorial dt{font-size:20px}.ac-editorial dd{font-size:19px}}
