/* =========================================================
   aFig Scientific Figure System (v2)
   Signature palette: soft teal, muted indigo, warm coral accents. Ink #1C2140.
   Build order: compartments → structures → pathways/arrows → labels → legend.
========================================================= */
.fig-v2, .fig-story .v2 { font-family: var(--body); }
.fig-v2 text, .fig-story .v2 text { font: 600 9px var(--body); fill: #1C2140; letter-spacing: .005em; }
.fig-v2 .lt, .fig-story .v2 .lt { font: 600 8.6px var(--body); fill: #1C2140; }
.fig-v2 .lt.b, .fig-v2 .b { font-weight: 800; }
.fig-v2 .ls { font: 500 7.2px var(--body); fill: #5B6486; }
.fig-v2 .zh { font: 800 7.6px var(--head); letter-spacing: .14em; fill: #5B6486; }
.fig-v2 .ttl { font: 800 15px var(--head); fill: #1C2140; letter-spacing: -.01em; }
.fig-v2 .pl { font: 900 17px var(--head); fill: #3E4992; }
.fig-v2 .bdg { font: 700 9.5px var(--body); fill: #1F7F79; letter-spacing: .02em; }
.fig-v2 .lg { font: 600 9.5px var(--body); fill: #3C4257; }
.fig-v2 .pp, .fig-story .v2 .pp { font: 800 6.4px var(--body); fill: #fff; }

/* Labels: leader line draws, then the term writes on */
.fig-v2 .lb2 .ld { fill: none; stroke: #6B7395; stroke-width: .75; }
.fig-v2 .lb2 circle { fill: #1C2140; }
.fig-v2 .lb2 text { font: 600 8.6px var(--body); fill: #1C2140; }
.fig-cell.fig-v2 .lb2 text { font-size: 11.5px; }
.fig-cell.fig-v2 .lb2 .ld { stroke-width: .9; }

/* Pathway connectors */
.fig-v2 .ax .ap, .fig-v2 .ax .apf { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.js .fig-v2 .lb2 .ld, .js .fig-v2 .ax .ap { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js .fig-v2 .lb2 circle, .js .fig-v2 .lb2 text, .js .fig-v2 .ax .apf, .js .fig-v2 .ax .tip { opacity: 0; }
.fig-v2.in .lb2 .ld, .fig-v2.in .ax .ap { animation: figDraw .7s var(--ease) both; animation-delay: var(--d); }
.fig-v2.in .lb2 circle { animation: figFade .3s both; animation-delay: var(--d); }
.fig-v2.in .lb2 text { animation: figType .7s var(--ease) both; animation-delay: calc(var(--d) + .3s); }
.fig-v2.in .ax .apf { animation: figFade .6s var(--ease) both; animation-delay: var(--d); }
.fig-v2.in .ax .tip { animation: figFade .25s both; animation-delay: calc(var(--d) + .6s); }

/* Hero: the figure is a white publication card floating on the brand gradient */
.hero-stage .fig-cell.fig-v2 { border-radius: 22px; filter: drop-shadow(0 40px 60px rgba(0, 25, 70, .45)); }
.fig-gen.fig-v2 { background: #fff; }

/* Story (app.js resets the svg class, so story rules hang off the inner .v2 group) */
.fig-story .v2 .txt text { font: 500 22px var(--body); fill: #1D2240; }
.fig-story .v2 .sm { font: 600 12.5px var(--body); fill: #3C4257; }
.fig-story .v2 .flag { font: 700 12px var(--body); fill: #B44A35; }
.fig-story .v2 .chip text { font: 700 13px var(--body); fill: #fff; }
.fig-story .v2 .zt { font: 800 13px var(--head); fill: #3E4992; letter-spacing: .08em; text-transform: uppercase; }
.fig-story .v2 .l3 text.tw { font: 700 13px var(--body); fill: #1C2140; }
.fig-story .v2 .fixed { font: 700 13px var(--body); fill: #1C2140; }
@keyframes hlTeal { to { fill: #002f87; } }
.fig-story.at-0 .v2 .hl { animation: hlTeal 1s var(--ease) both; animation-delay: var(--d); }

.reduce .fig-v2 *, .reduce .fig-story .v2 * { animation: none !important; opacity: 1 !important; transform: none !important; stroke-dashoffset: 0 !important; clip-path: none !important; }


/* Plan-card blue for highlighted words */
@keyframes hlTeal { to { fill: #0a5bd3; } }
