/* ============================================================
   anim-story.css - Stueckzahl-Story "Im Zeitraffer"
   Zweck: scrollgesteuerte Skizze 3D-Druck -> Brueckenserie -> Spritzguss
   mit Stueckzahl-Achse, fuer die Sektion #zeitraffer in serien/index.html.
   Nur die Komponente (Praefix anim-serie), nutzt die Variablen aus style.css.
   Quelle: Animationen-Prototypen/stueckzahl-story.html. Stand 2026-09-30.
   ============================================================ */
.anim-serie{--anim-serie-top:84px;--anim-serie-bottom:0px;--anim-serie-line:var(--brand-blue);--anim-serie-hot:var(--brand-orange);--anim-serie-on-hot:var(--brand-blue);
 --anim-serie-mech:var(--brand-gray-mid);--anim-serie-grain:var(--brand-gray-mid);--anim-serie-powder:var(--brand-gray-light);--anim-serie-part:var(--white);--anim-serie-card:var(--bg-elev);
 --anim-serie-dp:color-mix(in srgb,var(--brand-gray-mid) 26%,var(--bg-elev));--anim-serie-dm:color-mix(in srgb,var(--brand-gray-light) 55%,var(--bg-elev));position:relative;overflow-anchor:none}
html[data-theme='dark'] .anim-serie{--anim-serie-line:var(--brand-blue-light);--anim-serie-part:var(--brand-gray-light);--anim-serie-powder:var(--anim-serie-dp);--anim-serie-mech:var(--anim-serie-dm)}
@media (prefers-color-scheme:dark){html:not([data-theme]) .anim-serie{--anim-serie-line:var(--brand-blue-light);--anim-serie-part:var(--brand-gray-light);--anim-serie-powder:var(--anim-serie-dp);--anim-serie-mech:var(--anim-serie-dm)}}
@media (max-width:720px){.anim-serie{--anim-serie-top:72px}
 body.has-mobile-cta .anim-serie{--anim-serie-bottom:calc(68px + env(safe-area-inset-bottom,0px))}}
.anim-serie__sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.anim-serie__defs{position:absolute;width:0;height:0;overflow:hidden}
.anim-serie__card{width:100%;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-md);padding:clamp(12px,2.4vw,28px)}
.anim-serie__head{display:none;align-items:center;justify-content:space-between;gap:12px}
.anim-serie__count{display:flex;flex-direction:column;line-height:1.1}
.anim-serie__count-k{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}
.anim-serie__count-v{min-width:6.5ch;font-size:clamp(24px,3vw,34px);font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.anim-serie__pause{display:inline-flex;align-items:center;gap:8px;min-width:8.6em;min-height:44px;padding:6px 16px 6px 12px;border:1.5px solid var(--border-strong);
 border-radius:var(--radius-pill);background:var(--anim-serie-card);font-size:14px;font-weight:600;color:var(--text)}
.anim-serie__pause svg{display:block;width:14px;height:14px;fill:currentColor}
.anim-serie__pause .anim-serie__ico-play,.anim-serie__pause--paused .anim-serie__ico-pause{display:none}
.anim-serie__pause--paused .anim-serie__ico-play{display:block}
.anim-serie__pause:focus-visible,.anim-serie__step:focus-visible{outline:2px solid var(--text);outline-offset:2px}
@media (hover:hover){.anim-serie__pause:hover{border-color:var(--anim-serie-hot)}}
.anim-serie__bracket{position:relative;height:10px;margin:18px 0 8px;border:2px solid var(--anim-serie-line);border-bottom:0;border-radius:6px 6px 0 0}
.anim-serie__bracket span{position:absolute;left:50%;top:0;transform:translate(-50%,-58%);display:flex;align-items:center;gap:6px;
 padding:0 10px;background:var(--bg-elev);font-size:13px;font-weight:600;color:var(--anim-serie-line);white-space:nowrap}
.anim-serie__bracket svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.anim-serie__scale{position:relative;height:50px}
.anim-serie__band{position:absolute;top:14px;left:49.54%;width:20%;height:18px;border-left:1px dashed var(--anim-serie-mech);
 border-right:1px dashed var(--anim-serie-mech);background:repeating-linear-gradient(135deg,var(--anim-serie-mech) 0 1px,transparent 1px 6px)}
.anim-serie__band>span{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:12px;font-weight:600;
 line-height:14px;color:var(--text-muted);white-space:nowrap}
.anim-serie__line{position:absolute;left:0;right:0;top:22px;height:2px;background:var(--anim-serie-mech)}
.anim-serie__fill,.anim-serie__marker{display:none}
.anim-serie__fill{position:absolute;left:0;right:0;top:20px;height:6px;border-radius:3px;background:var(--anim-serie-hot);transform-origin:0 50%;transform:scaleX(0)}
.anim-serie__marker{position:absolute;left:-9px;top:14px;width:18px;height:18px;border-radius:50%;background:var(--anim-serie-hot);border:3px solid var(--bg-elev)}
.anim-serie__tick{position:absolute;top:32px;transform:translateX(-50%);font-size:12px;line-height:16px;color:var(--text-muted);white-space:nowrap}
.anim-serie__tick::before{content:'';position:absolute;left:50%;top:-6px;width:1px;height:5px;background:var(--anim-serie-mech)}
.anim-serie__tick:first-of-type{transform:none}.anim-serie__tick:first-of-type::before{left:0}
.anim-serie__tick:last-of-type{transform:translateX(-100%)}.anim-serie__tick:last-of-type::before{left:auto;right:0}
.anim-serie__steps{display:none;position:relative;height:44px;margin-top:2px}
.anim-serie__step{position:absolute;top:0;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:44px;min-height:44px;padding:0 8px;
 border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--text-muted);white-space:nowrap}
.anim-serie__step:nth-child(1){left:-8px}.anim-serie__step:nth-child(2){left:49.54%;transform:translateX(-50%)}.anim-serie__step:nth-child(3){right:-8px}
.anim-serie__n,.anim-serie__num{display:inline-flex;flex:none;align-items:center;justify-content:center;width:26px;height:26px;
 border-radius:50%;border:2px solid var(--anim-serie-mech);background:var(--bg-elev);font-size:13px;font-weight:700;line-height:1;color:var(--text)}
.anim-serie__step[aria-current="step"]{color:var(--text);font-weight:600}
.anim-serie__step[aria-current="step"] .anim-serie__n,.anim-serie--scrolly .anim-serie__num{background:var(--anim-serie-hot);border-color:var(--anim-serie-hot);color:var(--anim-serie-on-hot)}
.anim-serie__num{margin-right:10px;border-color:var(--anim-serie-line)}
.anim-serie__body{margin-top:14px}
.anim-serie__body>.anim-serie__stage{display:none}
.anim-serie__stage{position:relative;width:100%;aspect-ratio:3/2;container:anim-serie-st/inline-size}
.anim-serie__svg{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden}
.anim-serie__lbls{position:absolute;inset:0;pointer-events:none}
.anim-serie__lbl{position:absolute;transform:translate(-50%,-50%);padding:1px 4px;border-radius:4px;background:var(--anim-serie-card);
 font-size:13px;font-weight:600;line-height:1.25;color:var(--text);white-space:nowrap;opacity:0;transition:opacity .3s}
.anim-serie__lbl--l{transform:translate(0,-50%)}.anim-serie__lbl--r{transform:translate(-100%,-50%)}
.anim-serie__stage[data-phase="0"] [data-ph="0"],.anim-serie__stage[data-phase="1"] [data-ph="1"],.anim-serie__stage[data-phase="2"] [data-ph="2"]{opacity:1}
.anim-serie__stage[data-part="0"] .anim-serie__lbl--part,.anim-serie__stage[data-up="1"] .anim-serie__lbl--pw{opacity:0}
.anim-serie__phases{display:grid;gap:18px;margin:0;padding:0;list-style:none}
.anim-serie__phase{display:grid;gap:14px;padding-top:18px;border-top:1px solid var(--border)}
.anim-serie__when{display:flex;align-items:center;margin-bottom:8px;font-size:12.5px;font-weight:700;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-primary)}
.anim-serie__phase h3{margin:0 0 8px;font-size:clamp(1.1rem,1.6vw,1.35rem);color:var(--text)}
.anim-serie__phase p{margin:0;font-size:15px;line-height:1.6;color:var(--text-muted)}
.anim-serie--static .anim-serie__steps{display:block}
@media(min-width:760px){.anim-serie--static .anim-serie__phase{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center;gap:28px}}
/* Scroll-Modus */
.anim-serie--scrolly .anim-serie__track{height:360vh;height:360svh}
.anim-serie--scrolly .anim-serie__sticky{position:sticky;top:var(--anim-serie-top);display:flex;align-items:center;align-items:safe center;
 height:calc(100vh - var(--anim-serie-top) - var(--anim-serie-bottom));height:calc(100svh - var(--anim-serie-top) - var(--anim-serie-bottom))}
.anim-serie--scrolly .anim-serie__head{display:flex}
.anim-serie--scrolly .anim-serie__fill,.anim-serie--scrolly .anim-serie__marker,.anim-serie--scrolly .anim-serie__steps{display:block}
.anim-serie--scrolly .anim-serie__body{display:grid;gap:16px}
.anim-serie--scrolly .anim-serie__body>.anim-serie__stage{display:block;margin-inline:auto}
.anim-serie--scrolly .anim-serie__phase>.anim-serie__stage{display:none}
.anim-serie--scrolly .anim-serie__phase{display:block;grid-area:1/1;padding:0;border:0;opacity:0;transition:opacity .35s}
.anim-serie--scrolly[data-phase="0"] .anim-serie__phase:nth-child(1),.anim-serie--scrolly[data-phase="1"] .anim-serie__phase:nth-child(2),
.anim-serie--scrolly[data-phase="2"] .anim-serie__phase:nth-child(3){opacity:1}
@media(min-width:860px){.anim-serie--scrolly .anim-serie__body{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:32px}}
@media(max-width:859px){.anim-serie--scrolly .anim-serie__phase p{font-size:14px;line-height:1.55}}
/* Handy: Phasen-Knoepfe sitzen in der Zeile der Achsenwerte, Zaehler zweizeilig, kompakte Abstaende */
/* kleine Buehne: Beschriftungen 12 px, Kurzform */
@container anim-serie-st (max-width:480px){.anim-serie__lbl{font-size:12px}.anim-serie__lbl--w{width:5.6em;white-space:normal;text-align:center}.anim-serie__lx{display:none}}
@media(max-width:600px){.anim-serie__sl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .anim-serie__bracket{margin:12px 0 4px}.anim-serie__bracket span{font-size:12px;padding:0 6px}
 .anim-serie__bl{display:none}.anim-serie__tick--m{visibility:hidden}.anim-serie__count-v{font-size:24px}
 .anim-serie__scale{height:52px}.anim-serie__band{top:12px}.anim-serie__line{top:20px}.anim-serie__fill{top:18px}
 .anim-serie__marker{top:13px;left:-8px;width:16px;height:16px}.anim-serie__tick{top:33px}
 .anim-serie__steps{margin-top:-35px}.anim-serie__step{padding:0 9px;transform:translateX(-50%)}
 .anim-serie__step:nth-child(1){left:20%}.anim-serie__step:nth-child(3){left:77%;right:auto}
 .anim-serie--scrolly .anim-serie__body{gap:8px;margin-top:6px}
 .anim-serie--scrolly .anim-serie__when{margin-bottom:4px}.anim-serie--scrolly .anim-serie__when .anim-serie__num{display:none}
 .anim-serie--scrolly .anim-serie__phase h3{font-size:17px;margin-bottom:4px}
 .anim-serie--scrolly .anim-serie__phase p{line-height:1.5}}
@media(max-width:400px){.anim-serie__count-k{letter-spacing:.04em}}
@media print{.anim-serie--scrolly .anim-serie__track{height:auto}.anim-serie--scrolly .anim-serie__sticky{position:static;height:auto}}
/* Skizze */
.anim-serie-mech{fill:none;stroke:var(--anim-serie-mech);stroke-width:2}
.anim-serie-ln{fill:none;stroke:var(--anim-serie-line);stroke-width:2.5;stroke-linejoin:round}
.anim-serie-box{fill:var(--anim-serie-card);stroke:var(--anim-serie-line);stroke-width:2.5;stroke-linejoin:round}
.anim-serie-drive{fill:var(--anim-serie-card);stroke:var(--anim-serie-mech);stroke-width:2}
.anim-serie-hole{fill:var(--anim-serie-card);stroke:var(--anim-serie-line);stroke-width:1.2}
.anim-serie-ko{fill:none;stroke:var(--anim-serie-line);stroke-width:1.2}
.anim-serie-hole--on,.anim-serie-mt,.anim-serie-solid,.anim-serie-spot,.anim-serie-bar-fill{fill:var(--anim-serie-hot)}
.anim-serie-ej{stroke:var(--anim-serie-line);stroke-width:1}
.anim-serie-laser.anim-serie-on{stroke:var(--anim-serie-hot)}
.anim-serie-blade,.anim-serie-plat{fill:var(--anim-serie-line)}.anim-serie-blade.anim-serie-on{fill:var(--anim-serie-hot)}
.anim-serie-powder{fill:url(#anim-serie-powder)}
.anim-serie-pw{fill:var(--anim-serie-powder)}.anim-serie-gran{fill:var(--anim-serie-grain)}
.anim-serie-gro{fill:var(--anim-serie-hot);stroke:var(--anim-serie-line);stroke-width:.8}
.anim-serie-pb{fill:var(--anim-serie-card)}.anim-serie-ph{stroke:var(--anim-serie-mech);stroke-width:1.3}
.anim-serie-hatch{fill:url(#anim-serie-hatch)}
.anim-serie-ml{stroke:var(--anim-serie-card);stroke-width:1.4}
.anim-serie-hotf{fill:url(#anim-serie-melt)}
.anim-serie-kvo{stroke:var(--anim-serie-line)}.anim-serie-kvi{stroke:var(--anim-serie-part)}.anim-serie-kvc{stroke:var(--anim-serie-card)}
.anim-serie-kvp{stroke:var(--anim-serie-hot)}.anim-serie-kvh{stroke:url(#anim-serie-hk1)}.anim-serie-kvj{stroke:url(#anim-serie-hk2)}
.anim-serie-plan{fill:none;stroke:var(--anim-serie-mech);stroke-width:1.5;stroke-dasharray:4 4}
.anim-serie-blk{fill:none;stroke:var(--anim-serie-line);stroke-width:2;stroke-dasharray:100}
.anim-serie-beam{stroke:var(--anim-serie-hot);stroke-width:2;stroke-linecap:round}
.anim-serie-arrow{fill:none;stroke:var(--anim-serie-hot);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.anim-serie-mirror{stroke:var(--anim-serie-line);stroke-width:4;stroke-linecap:round}
.anim-serie-piston{stroke:var(--anim-serie-mech);stroke-width:5}
.anim-serie-rod{stroke:var(--anim-serie-line);stroke-width:5}
.anim-serie-screw{fill:none;stroke:var(--anim-serie-line);stroke-width:1.8;stroke-linejoin:round}
.anim-serie-bar-frame{fill:none;stroke:var(--anim-serie-line);stroke-width:1.5}
.anim-serie-lead path{fill:none;stroke:var(--anim-serie-mech);stroke-width:1.5}.anim-serie-lead circle{fill:var(--anim-serie-mech)}
