/* Anatomy biology: one authored scene, one timeline, one change at a time. */
.story-exhibit{--story-ink:#304c3a;--story-muted:#596c55;background:#f8f6ee;border:1px solid #77856c4d;border-radius:14px;overflow:hidden;box-shadow:0 3px 0 #6673590a,0 24px 50px -40px #243b2d50}
.story-heading{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:19px 25px;border-bottom:1px solid #77856c26;color:#5a6a52;font-size:12px;line-height:1.7}
.story-heading>span:first-child{font:10px/1.5 ui-monospace,monospace;letter-spacing:.09em;white-space:nowrap}
.story-chapter-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:10px 14px;gap:5px;border-bottom:1px solid #77856c2e;background:#f1f2e6}
.story-chapter-button{display:flex;align-items:center;justify-content:flex-start;gap:11px;min-height:48px;border:1px solid transparent;border-radius:6px;background:transparent;color:#5d6a54;padding:9px 12px;text-align:start;font-size:12px;line-height:1.7;cursor:pointer}
.story-chapter-button>span{font:10px/1.5 ui-monospace,monospace;color:#53674b}
.story-chapter-button>b{font-weight:500}
.story-chapter-button[aria-pressed=true]{background:#faf9f2;border-color:#7f95664d;color:#284b32;box-shadow:0 2px 3px #52664b0a}
.story-layout{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(260px,.9fr)}
.story-figure{position:relative;margin:0;min-width:0}
.story-stage{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:960/600;direction:ltr;background:#f8f6ee}
.story-svg{display:block;width:100%;height:auto;overflow:visible}
.story-svg text{font-family:ui-monospace,monospace}
.story-leader{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.story-leader path{fill:none;stroke:#698255;stroke-width:1;opacity:.65;vector-effect:non-scaling-stroke}
.story-leader circle{fill:#edf0da;stroke:#688756;stroke-width:1;vector-effect:non-scaling-stroke}
.story-annotation{position:absolute;z-index:2;max-width:220px;transform:translateX(-50%);color:#3b563c;font-size:11px;line-height:1.6;pointer-events:none;text-align:center;direction:ltr;width:max-content}
.story-annotation>span{display:block;padding:5px 9px;background:#fbfaf4f2;border:1px solid #74856542;border-radius:4px;box-shadow:0 2px 2px #49633908}
[dir=rtl] .story-annotation>span{direction:rtl;text-align:right}
.story-transport{display:grid;grid-template-columns:auto minmax(60px,1fr) auto;gap:16px;align-items:center;margin:0 24px;padding:15px 0;border-block:1px solid #77856c2a}
.story-play{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:9px 13px;background:#315b48;color:#fcfbf4;border:1px solid #284c3a;border-radius:6px;font-family:inherit;font-size:12px;line-height:1.7;font-weight:500;cursor:pointer;white-space:nowrap}
.story-play-icon{display:block;width:10px;height:12px;clip-path:polygon(0 0,100% 50%,0 100%);background:currentColor;flex-shrink:0}
[data-story-playing=true] .story-play-icon{clip-path:polygon(0 0,35% 0,35% 100%,0 100%,0 0,65% 0,100% 0,100% 100%,65% 100%,65% 0)}
.story-timeline{display:flex;align-items:center;height:44px;min-width:0;direction:ltr}
.story-timeline input{appearance:none;-webkit-appearance:none;width:100%;height:4px;border-radius:10px;background:#b9c7a7;cursor:ew-resize;margin:0;direction:ltr;accent-color:#315b48}
.story-timeline input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;border:3px solid #f8f6ee;outline:1px solid #6b8558;border-radius:50%;background:#315b48;box-shadow:0 1px 3px #304c3a2b}
.story-timeline input::-moz-range-thumb{width:11px;height:11px;border:3px solid #f8f6ee;outline:1px solid #6b8558;border-radius:50%;background:#315b48}
.story-timeline .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.story-status{font-size:10px;line-height:1.7;color:#5a6a52;min-width:85px;max-width:150px}
.story-reduced{font-size:11px;line-height:1.7;color:#596c55;grid-column:1/-1}
.story-play:focus-visible,.story-chapter-button:focus-visible,.story-timeline input:focus-visible,.story-fractions button:focus-visible{outline:2px solid #315b48;outline-offset:4px}
.story-legend.visual-legend{background:transparent;border:0;padding:18px 24px 0;gap:10px 20px}
.story-legend.visual-legend li{font-size:11px;line-height:1.7;color:#4d6649}
.story-figure figcaption{font-size:11px;line-height:1.9;color:#63715b;padding:13px 24px 21px}
.story-guide{padding:25px 26px 20px;background:#e8ecdc;border-inline-start:1px solid #77856c2e;display:flex;flex-direction:column;min-width:0}
.biomarker-visual .story-hint{font-size:11px;line-height:1.85;color:#506548;margin:0 0 26px}
.story-chapter-number{display:block;color:#526a46;font:10px/1.5 ui-monospace,monospace;letter-spacing:.06em;margin-bottom:17px;direction:ltr}
[dir=rtl] .story-chapter-number{text-align:right}
.biomarker-visual .story-chapter-copy h3{font-size:24px;line-height:1.6;font-weight:500;letter-spacing:-.02em;color:#2f5038;margin:0 0 15px;text-wrap:pretty}
.biomarker-visual .story-chapter-copy p{font-size:15px;line-height:1.95;color:#506348;margin:0}
.story-chapter-copy+ .story-chapter-copy{margin-top:26px}
[data-story-ready=true] .story-chapter-copy{margin-top:0}
.story-measurement{margin-top:26px;padding-top:22px;border-top:1px solid #73845e40}
.biomarker-visual .story-measurement h3{font-size:14px;font-weight:500;line-height:1.7;margin:0 0 15px;color:#355237}
.story-measurement dl{margin:0}
.story-measurement dl>div{margin-bottom:14px;padding-inline-start:12px;border-inline-start:2px solid #7f9665}
.story-measurement dt{font-size:12px;font-weight:600;color:#355237;line-height:1.7}
.story-measurement dd{font-size:12px;line-height:1.85;color:#53694a;margin:3px 0 0}
.biomarker-visual .story-measurement>p{font-size:11px;line-height:1.9;color:#526848;margin:10px 0 0}
.biomarker-visual .story-duration{font-size:10px;line-height:1.85;color:#5e7053;margin:auto 0 0;padding-top:28px}
.story-fractions{margin-top:24px}
.story-fractions>span{display:block;font-size:11px;color:#4f6745;line-height:1.8;margin-bottom:12px}
.story-fractions>div{display:flex;flex-wrap:wrap;gap:6px}
.story-fractions button{font-family:inherit;display:flex;align-items:center;gap:5px;padding:8px 9px;min-height:44px;background:#f4f4e9;color:#405c40;font-size:11px;line-height:1.6;border:1px solid #7c93664d;border-radius:5px;cursor:pointer}
.story-fractions button>span{height:3px;width:11px;background:#864c4b;border-radius:1px}
.story-fractions button[aria-pressed=true]{background:#faf8f2;border-color:#315b48;box-shadow:inset 0 -2px #315b48}
.biomarker-visual .story-fractions>p{font-size:12px;line-height:1.9;color:#4f6745;margin:12px 0 0}
.story-exhibit [hidden]{display:none!important}
@media(hover:hover) and (pointer:fine){.story-chapter-button:hover{background:#e5ebd9}.story-play:hover{background:#254b3a}.story-fractions button:hover{border-color:#536f44}}
@media(max-width:950px){.story-layout{grid-template-columns:minmax(0,1.8fr) minmax(240px,1fr)}.story-guide{padding:22px}.story-chapter-button{padding:8px 9px;gap:7px;font-size:11px}.story-transport{gap:12px;margin-inline:20px;grid-template-columns:auto 1fr}.story-status{grid-column:1/-1;max-width:none;font-size:10px;margin-top:-5px}.story-annotation{font-size:10px;max-width:180px}.biomarker-visual .story-chapter-copy h3{font-size:22px}}
@media(max-width:700px){.story-exhibit{border-radius:10px}.story-heading{padding:15px 17px;gap:15px;font-size:11px}.story-chapter-nav{padding:7px;gap:2px}.story-chapter-button{flex-direction:column;gap:5px;align-items:flex-start;min-height:65px;padding:7px 5px;font-size:10px;line-height:1.55}.story-chapter-button>span{font-size:9px}.story-layout{grid-template-columns:1fr}.story-guide{padding:22px;border-inline-start:0;border-top:1px solid #77856c2e}.story-stage{aspect-ratio:960/600}.story-svg{position:absolute;top:50%;transform:translateY(-50%)}.story-transport{margin-inline:17px;gap:10px;padding:12px 0}.story-play{padding:8px 10px;font-size:11px;min-height:42px}.story-legend.visual-legend{padding:15px 17px 0;gap:9px 17px}.story-legend.visual-legend li{font-size:10px}.story-figure figcaption{padding:12px 17px 18px;font-size:10px}.story-annotation{font-size:9px;max-width:132px;line-height:1.6}.story-annotation>span{padding:3px 6px}.biomarker-visual .story-hint{margin-bottom:18px}.story-chapter-number{margin-bottom:10px}.biomarker-visual .story-chapter-copy h3{font-size:23px;line-height:1.65;margin-bottom:10px}.biomarker-visual .story-chapter-copy p{font-size:15px;line-height:1.9}.biomarker-visual .story-duration{padding-top:22px}.story-measurement{margin-top:20px}.story-measurement dl{display:grid;grid-template-columns:1fr 1fr;gap:16px}.story-measurement dl>div{margin-bottom:0}}
@media(max-width:360px){.story-chapter-button{font-size:9px;padding:6px 4px}.story-guide{padding:19px}.story-measurement dl{grid-template-columns:1fr}}
@media print{.story-chapter-nav,.story-transport,.story-hint,.story-duration,.story-annotation,.story-leader,.story-fractions{display:none!important}.story-layout{display:block}.story-exhibit{box-shadow:none}.story-guide{border:0}.story-chapter-copy[hidden],.story-measurement[hidden]{display:block!important}}

.anatomy-story .visual-key-sample{background:#94584f}.anatomy-story .visual-key-bands{background:repeating-linear-gradient(90deg,#94584f 0 2px,transparent 2px 5px)}.anatomy-story .visual-key-receptor{border-color:#7f9f86}
.story-context-label{position:absolute;transform:translate(-50%,-100%);padding:3px 5px;color:#455a42;font-size:10px;line-height:1.5;white-space:nowrap;pointer-events:none;background:#f8f6eeda;border-radius:3px}
.anatomy-story .visual-key-reference{height:3px;border-radius:1px;background:#b9998e}
@media(max-width:700px){.story-context-label{font-size:10px;padding:2px 3px}}
/* Meal story: colour-stable names (sugar is gold, insulin is coral) and a predict-then-reveal comparison. */
.story-context-label[data-story-context=sugar],.story-context-label[data-story-context=insulin]{font-weight:600;border-bottom:2px solid #d6ae58}.story-context-label[data-story-context=insulin]{transform:translate(-50%,0)}
.story-context-label[data-story-context=insulin]{border-color:#df9a78}
.story-context-label[data-story-context=test]{transform:translate(-50%,0)}
.anatomy-story .visual-key-glucose{background:#d9b360;border-color:#a07834}.anatomy-story .visual-key-insulin{background:#e19b78;border-color:#b07759}.anatomy-story .visual-key-glut4{background:#3c7557;border-color:#1f4535}
.story-compare{margin-top:24px;padding-top:20px;border-top:1px solid #73845e40}
.biomarker-visual .story-compare h3{font-size:14px;font-weight:600;line-height:1.7;margin:0 0 6px;color:#355237}
.biomarker-visual .story-compare-prompt{font-size:12px;line-height:1.85;color:#4f6745;margin:0 0 12px}
.story-compare-options{display:flex;flex-wrap:wrap;gap:6px}
.story-compare-options button{display:flex;align-items:center;gap:7px;padding:8px 10px;min-height:44px;background:#f4f4e9;color:#405c40;font-size:11px;line-height:1.6;border:1px solid #7c93664d;border-radius:5px;cursor:pointer;font-family:inherit}
.story-compare-options button>span{width:8px;height:8px;border-radius:50%;background:#df9a78;box-shadow:none}
.story-compare-options button[data-story-option="1"]>span{box-shadow:9px 0 #df9a78,18px 0 #df9a78;margin-inline-end:18px}
[dir=rtl] .story-compare-options button[data-story-option="1"]>span{box-shadow:-9px 0 #df9a78,-18px 0 #df9a78}
.story-compare-options button[aria-pressed=true]{background:#faf8f2;border-color:#315b48;box-shadow:inset 0 -2px #315b48}
.story-compare-options button:focus-visible{outline:2px solid #315b48;outline-offset:4px}
.biomarker-visual .story-compare p[data-story-option-copy]{font-size:12px;line-height:1.9;color:#4f6745;margin:12px 0 0}
.biomarker-visual .story-compare p[data-story-option-copy] strong{display:block;color:#355237;font-weight:600}
.story-closer{margin-top:18px;border:1px solid #77856c4d;border-radius:12px;background:#f3f3e8}
.story-closer>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:15px 20px;font-size:14px;font-weight:500;color:#2f5038}
.story-closer>summary::-webkit-details-marker{display:none}
.story-closer>summary::before{content:"+";display:grid;place-items:center;width:22px;height:22px;border:1px solid #7c9366;border-radius:50%;font-size:14px;line-height:1;color:#315b48;flex-shrink:0}
.story-closer[open]>summary::before{content:"\2212"}
.story-closer>summary:focus-visible{outline:2px solid #315b48;outline-offset:-2px;border-radius:12px}
.biomarker-visual .story-closer-note{margin:0 20px 16px;font-size:13px;line-height:1.85;color:#526848}
.story-closer>.story-exhibit{margin:0 12px 12px}
@media(hover:hover) and (pointer:fine){.story-compare-options button:hover{border-color:#536f44}.story-closer>summary:hover{color:#204232}}
@media print{.story-compare-options{display:none!important}.story-closer>.story-exhibit{display:block}}

/* Native scrolling advances each authored scene; optional controls stay in a disclosure. */
.story-scroll-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;border-bottom:1px solid #77856c2e;font-size:12px;color:#526848}
.story-scroll-toolbar>div{display:flex;align-items:center;gap:18px}
.story-scroll-toolbar button,.story-scroll-toolbar a{font:inherit;color:#315b48;background:none;border:0;text-underline-offset:4px;min-height:44px;display:inline-flex;align-items:center;cursor:pointer;padding:4px 0}
.story-scroll-toolbar button{text-decoration:underline}
.story-scroll-toolbar button:focus-visible,.story-scroll-toolbar a:focus-visible{outline:2px solid #315b48;outline-offset:4px}
.story-scroll-cue,.story-scroll-notes{display:none}
.story-after{display:block;scroll-margin-top:24px}
[data-story-scroll=true]{overflow:visible;scroll-margin-top:16px}
[data-story-scroll=true] .story-figure{position:sticky;top:16px;align-self:start;background:#f8f6ee;z-index:3;border-radius:0 0 12px 12px}
[data-story-scroll=true] .story-guide{padding-block:0}
[data-story-scroll=true] .story-figure>.story-legend,[data-story-scroll=true] .story-figure>figcaption{display:none!important}
[data-story-scroll=true] .story-scroll-cue{display:flex;align-items:center;justify-content:space-between;position:relative;gap:12px;padding:13px 24px 16px;color:#526848;font-size:11px;line-height:1.8;background:#f8f6ee}
.story-scroll-cue>i{position:absolute;inset:0 24px auto;height:2px;background:#dbe1cf;overflow:hidden}
.story-scroll-cue>i>b{display:block;height:100%;background:#567752;transform:scaleX(0);transform-origin:left}
[dir=rtl] .story-scroll-cue>i>b{transform-origin:right}
[data-story-scroll-status]{font:10px/1.8 ui-monospace,monospace;direction:ltr}
/* Chapters follow their copy instead of reserving half a screen of blank space.
   A bounded floor still gives the revealing pose a readable scroll interval. */
[data-story-scroll=true] .story-chapter-copy{min-height:clamp(220px,30vh,320px);min-height:clamp(220px,30svh,320px);display:flex;flex-direction:column;justify-content:center;position:relative;padding:28px 0;border-bottom:1px solid #77856c2e;scroll-margin-top:30vh}
[data-story-scroll=true] .story-chapter-copy::before{content:"";position:absolute;inset-inline-start:-27px;top:32%;height:36%;width:2px;background:transparent}
[data-story-scroll=true] .story-chapter-copy[aria-current=step]::before{background:#67865a}
[data-story-scroll=true] .story-measurement{margin:0;padding:24px 0 32px;border-top:0}
[data-story-scroll=true] .story-scroll-notes{display:block;border-top:1px solid #77856c2e;padding-bottom:20px;background:#f8f6ee;border-radius:0 0 14px 14px}
.biomarker-visual .story-scroll-notes>p{font-size:11px;line-height:1.9;color:#63715b;padding:12px 24px 0;margin:0}
.story-play,.story-chapter-button,.story-scroll-toolbar button{transition:transform 140ms var(--visual-press,cubic-bezier(.23,1,.32,1))}
.story-play:active:not(:focus-visible),.story-chapter-button:active:not(:focus-visible),.story-scroll-toolbar button:active:not(:focus-visible){transform:scale(.98)}
@media(max-width:700px){
  .story-scroll-toolbar{padding:8px 17px;align-items:flex-start;flex-direction:column;gap:0;font-size:11px}
  .story-scroll-toolbar>div{width:100%;justify-content:space-between}
  [data-story-scroll=true] .story-layout{display:block}
  [data-story-scroll=true] .story-figure{top:0;border-bottom:1px solid #77856c4d;box-shadow:0 12px 18px -18px #304c3a80}
  [data-story-scroll=true] .story-guide{padding:0 24px 16px}
  [data-story-scroll=true] .story-scroll-cue{padding:10px 17px 12px;font-size:10px}
  .story-scroll-cue>i{inset-inline:17px}
  [data-story-scroll=true] .story-chapter-copy{min-height:clamp(220px,32vh,300px);min-height:clamp(220px,32svh,300px);padding:24px 0}
  [data-story-scroll=true] .story-chapter-copy::before{inset-inline-start:-25px}
  [data-story-scroll=true] .story-chapter-copy h3{font-size:23px}
  [data-story-scroll=true] .story-chapter-copy p{font-size:15px}
}
@media(prefers-reduced-motion:reduce){.story-play,.story-chapter-button,.story-scroll-toolbar button{transition:none}}
@media print{
  .story-scroll-toolbar,.story-scroll-cue,.story-scroll-notes{display:none!important}
  [data-story-scroll=true] .story-figure{position:static}
  [data-story-scroll=true] .story-chapter-copy{min-height:0;display:block;padding:16px 0}
  [data-story-scroll=true] .story-figure>.story-legend,[data-story-scroll=true] .story-figure>figcaption{display:block!important}
}

/* A native disclosure keeps the scene quiet and preserves keyboard semantics. */
.story-control-menu{position:absolute;z-index:8;width:calc(100% - 24px);pointer-events:none;inset-block-start:10px;inset-inline-end:12px}
.story-control-menu>summary{pointer-events:auto;margin-inline-start:auto;display:grid;place-items:center;width:44px;height:44px;cursor:pointer;list-style:none;color:#315b48;background:#fbfaf4ed;border:1px solid #77856c4d;border-radius:50%;box-shadow:0 2px 8px #304c3a0a}
.story-control-menu>summary::-webkit-details-marker{display:none}
.story-control-menu>summary svg{fill:#fbfaf4;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.story-control-menu>summary:focus-visible{outline:2px solid #315b48;outline-offset:3px}
.story-control-panel{box-sizing:border-box;pointer-events:auto;position:absolute;inset-block-start:52px;inset-inline-end:0;width:min(580px,100%);max-width:100%;max-height:min(560px,65svh);overflow:auto;overscroll-behavior:contain;border:1px solid #77856c66;border-radius:10px;background:#f8f6ee;box-shadow:0 16px 40px #304c3a26;text-align:start;direction:inherit}
.story-control-title{display:block;padding:15px 18px 0;font-size:12px;font-weight:600;color:#315b48}
.story-control-panel .story-scroll-toolbar{padding:4px 18px 8px;align-items:flex-start;flex-direction:column;gap:0;font-size:11px}
.story-control-panel .story-scroll-toolbar>div{width:100%;justify-content:space-between}
.story-control-panel .story-chapter-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding:8px;gap:2px}
.story-control-panel .story-chapter-button{flex-direction:column;align-items:flex-start;gap:4px;padding:8px 6px;font-size:10px;min-height:64px}
.story-control-panel .story-transport{margin:0 18px;grid-template-columns:auto minmax(60px,1fr);gap:12px}
.story-control-panel .story-status{grid-column:1/-1;max-width:none;margin:0}
.biomarker-visual .story-control-panel .story-hint,.biomarker-visual .story-control-panel .story-duration{font-size:11px;line-height:1.8;padding:12px 18px 0;margin:0}
.biomarker-visual .story-control-panel .story-duration{padding-block:8px 15px}
[data-story-following=false] .story-scroll-cue>span:first-child{visibility:hidden}
[data-story-ready=true]:not([data-story-scroll=true]) .story-chapter-copy+.story-chapter-copy{margin-top:28px}
@media(max-width:700px){.story-control-panel{width:100%}.story-control-menu{inset-block-start:8px;inset-inline-end:9px}}
@media(prefers-reduced-motion:reduce){.story-play:active,.story-chapter-button:active,.story-scroll-toolbar button:active{transform:none}}
@media print{.story-control-menu{display:none!important}}

.story-control-panel .story-fractions,.story-control-panel .story-comparison-controls{margin:0;padding:0 18px 18px}
.story-comparison-controls>span{display:block;font-size:11px;color:#4f6745;line-height:1.8;margin-bottom:10px}

/* Preserve a full finger-sized hit area while keeping the scrub track quiet. */
.story-timeline input{height:44px;background:transparent}
.story-timeline input::-webkit-slider-runnable-track{height:4px;background:#b9c7a7;border-radius:10px}
.story-timeline input::-webkit-slider-thumb{margin-top:-6.5px}
.story-timeline input::-moz-range-track{height:4px;background:#b9c7a7;border-radius:10px}
.visual-key-hemoglobin{border-radius:42% 48% 37% 50%;background:#b66e70;border-color:#82464d}
.visual-key-ferritin-shell{border-radius:50%;background:#88a28a;border-color:#52705c}
.visual-key-ferritin-iron{border-radius:50%;background:#cda562;border-color:#91692e}

/* The short recap is useful on request; it need not repeat the complete story
   as a second uninterrupted block of reading. Native details works without JS. */
.story-summary{margin-top:18px;border-block:1px solid #77856c40}
.story-summary>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;padding:15px 0;color:#355237;font-size:14px;font-weight:500;line-height:1.7}
.story-summary>summary::-webkit-details-marker{display:none}
.story-summary>summary::after{content:"+";font:400 20px/1 ui-monospace,monospace}
.story-summary[open]>summary::after{content:"−"}
.story-summary>summary:focus-visible{outline:2px solid #315b48;outline-offset:4px}
.feature-visual .story-summary .visual-steps{margin-top:0;margin-bottom:18px}
.feature-visual .story-summary .visual-step-copy{border:0;padding-top:6px}
@media(max-width:700px){.story-annotation{font-size:10px;max-width:144px}.feature-visual .story-summary .visual-step-copy{padding-block:10px}}
