/* GENERIERT von _nem_feltoltendo/anim.js – nicht von Hand ändern */
.anim{display:block;width:100%;height:100%}
.anim *{transform-box:view-box}
.anim .gr{fill:none;stroke:rgba(255,255,255,.05)}
.anim .hl{stroke:rgba(255,255,255,.1);stroke-width:1}
.anim .dt{fill:rgba(255,255,255,.22)}
.anim .faint{opacity:.45}
.anim .ln{fill:none;stroke:#f6f3ee;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.anim .lf{fill:#151210;stroke:#f6f3ee;stroke-width:2;stroke-linejoin:round}
.anim .th{stroke-width:1.3}
.anim .ac{stroke:var(--accent-txt)}
.anim .acf{fill:var(--accent)}
.anim .dash{stroke-dasharray:6 8;stroke-width:1.2;opacity:.6}
.anim .pit{fill:#0b0a09;stroke:#f6f3ee;stroke-width:2;stroke-linejoin:round}
.anim .soil{fill:rgba(240,58,46,.3)}.anim .soilf{fill:rgba(240,58,46,.16)}
.anim .t{font:500 14px var(--mono);letter-spacing:.16em;fill:rgba(246,243,238,.62);text-transform:uppercase}
.anim .t.r{fill:var(--accent-txt)}
.anim .t.w{fill:#fff}
.anim .scanglow{fill:rgba(240,58,46,.12)}
.phero-media.vf,.about .media.anim-box{background:#0e0c0b}
.anim-box{position:relative}
.anim-box .anim{position:absolute;inset:0}

/* Bagger: Arbeitszyklus */
.exc .boom,.exc .arm,.exc .bkt{transform-origin:0 0}
.exc.dig .boom{animation:dBoom 4.4s ease-in-out infinite}
.exc.dig .arm{animation:dArm 4.4s ease-in-out infinite}
.exc.dig .bkt{animation:dBkt 4.4s ease-in-out infinite}
.exc.dig .soil{animation:dSoil 4.4s ease-in-out infinite}
.exc.dig .boom{transform:rotate(-30deg)}.exc.dig .arm{transform:rotate(92deg)}.exc.dig .bkt{transform:rotate(0deg)}
@keyframes dBoom{0%,100%{transform:rotate(-30deg)}30%{transform:rotate(-12deg)}50%{transform:rotate(-14deg)}72%{transform:rotate(-42deg)}86%{transform:rotate(-40deg)}}
@keyframes dArm{0%,100%{transform:rotate(92deg)}30%{transform:rotate(108deg)}50%{transform:rotate(70deg)}72%{transform:rotate(52deg)}86%{transform:rotate(56deg)}}
@keyframes dBkt{0%,100%{transform:rotate(0deg)}30%{transform:rotate(10deg)}50%{transform:rotate(-62deg)}72%{transform:rotate(-58deg)}86%{transform:rotate(40deg)}}
@keyframes dSoil{0%,40%{opacity:0}50%,82%{opacity:1}90%,100%{opacity:0}}
.exc.reach .boom{transform:rotate(-48deg);animation:rBoom 3.2s ease-in-out infinite}
.exc.reach .arm{transform:rotate(40deg);animation:rArm 3.2s ease-in-out infinite}
.exc.reach .bkt{transform:rotate(-30deg);animation:rBkt 3.2s ease-in-out infinite}
.exc.reach .soil{opacity:0}
@keyframes rBoom{0%,100%{transform:rotate(-48deg)}50%{transform:rotate(-40deg)}}
@keyframes rArm{0%,100%{transform:rotate(40deg)}50%{transform:rotate(58deg)}}
@keyframes rBkt{0%,100%{transform:rotate(-30deg)}50%{transform:rotate(20deg)}}

/* 1 Erdarbeiten */
.e-pit,.e-dim{transform-origin:530px 400px;animation:ePit 13.2s ease-in-out infinite}
@keyframes ePit{0%{transform:scaleY(.04)}80%,94%{transform:scaleY(1)}100%{transform:scaleY(.04)}}
.e-lbl{animation:eLbl 13.2s ease-in-out infinite}
@keyframes eLbl{0%,74%{opacity:0}82%,94%{opacity:1}100%{opacity:0}}
.e-heap{transform-origin:115px 400px;animation:eHeap 13.2s ease-in-out infinite}
@keyframes eHeap{0%{transform:scaleY(.15)}80%,94%{transform:scaleY(1)}100%{transform:scaleY(.15)}}

/* 2 Baggerarbeiten */
.b-heap{transform-origin:120px 440px;animation:bHeap 4.4s ease-in-out infinite}
@keyframes bHeap{0%,84%{transform:scaleY(.94)}92%,100%{transform:scaleY(1)}}
.b-radius{transform-origin:412px 366px;animation:bRad 4.4s ease-in-out infinite}
@keyframes bRad{0%,100%{opacity:.25}50%{opacity:.6}}

/* 3 Abbruch */
.br,.a-roof{transform-box:fill-box;transform-origin:50% 50%}

.a-roof{animation:aRoof 9s ease-in infinite}
@keyframes aRoof{0%,6%{transform:none;opacity:1}14%{transform:translate(30px,60px) rotate(14deg);opacity:0}88%{transform:translateY(-30px);opacity:0}98%,100%{transform:none;opacity:1}}
.br.r1.e{animation:aF1e 9s ease-in 0.00s infinite backwards}@keyframes aF1e{0%,10%{transform:none;opacity:1}20%{transform:translate(-22px,136px) rotate(-28deg);opacity:1}26%{transform:translate(-22px,136px) rotate(-28deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r1.o{animation:aF1o 9s ease-in 0.00s infinite backwards}@keyframes aF1o{0%,10%{transform:none;opacity:1}20%{transform:translate(18px,136px) rotate(24deg);opacity:1}26%{transform:translate(18px,136px) rotate(24deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r2.e{animation:aF2e 9s ease-in 0.55s infinite backwards}@keyframes aF2e{0%,10%{transform:none;opacity:1}20%{transform:translate(-22px,110px) rotate(-28deg);opacity:1}26%{transform:translate(-22px,110px) rotate(-28deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r2.o{animation:aF2o 9s ease-in 0.55s infinite backwards}@keyframes aF2o{0%,10%{transform:none;opacity:1}20%{transform:translate(18px,110px) rotate(24deg);opacity:1}26%{transform:translate(18px,110px) rotate(24deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r3.e{animation:aF3e 9s ease-in 1.10s infinite backwards}@keyframes aF3e{0%,10%{transform:none;opacity:1}20%{transform:translate(-22px,84px) rotate(-28deg);opacity:1}26%{transform:translate(-22px,84px) rotate(-28deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r3.o{animation:aF3o 9s ease-in 1.10s infinite backwards}@keyframes aF3o{0%,10%{transform:none;opacity:1}20%{transform:translate(18px,84px) rotate(24deg);opacity:1}26%{transform:translate(18px,84px) rotate(24deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r4.e{animation:aF4e 9s ease-in 1.65s infinite backwards}@keyframes aF4e{0%,10%{transform:none;opacity:1}20%{transform:translate(-22px,58px) rotate(-28deg);opacity:1}26%{transform:translate(-22px,58px) rotate(-28deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r4.o{animation:aF4o 9s ease-in 1.65s infinite backwards}@keyframes aF4o{0%,10%{transform:none;opacity:1}20%{transform:translate(18px,58px) rotate(24deg);opacity:1}26%{transform:translate(18px,58px) rotate(24deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r5.e{animation:aF5e 9s ease-in 2.20s infinite backwards}@keyframes aF5e{0%,10%{transform:none;opacity:1}20%{transform:translate(-22px,32px) rotate(-28deg);opacity:1}26%{transform:translate(-22px,32px) rotate(-28deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r5.o{animation:aF5o 9s ease-in 2.20s infinite backwards}@keyframes aF5o{0%,10%{transform:none;opacity:1}20%{transform:translate(18px,32px) rotate(24deg);opacity:1}26%{transform:translate(18px,32px) rotate(24deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r6.e{animation:aF6e 9s ease-in 2.75s infinite backwards}@keyframes aF6e{0%,10%{transform:none;opacity:1}20%{transform:translate(-22px,6px) rotate(-28deg);opacity:1}26%{transform:translate(-22px,6px) rotate(-28deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.br.r6.o{animation:aF6o 9s ease-in 2.75s infinite backwards}@keyframes aF6o{0%,10%{transform:none;opacity:1}20%{transform:translate(18px,6px) rotate(24deg);opacity:1}26%{transform:translate(18px,6px) rotate(24deg);opacity:0}86%{transform:translateY(-30px);opacity:0}96%,100%{transform:none;opacity:1}}
.a-s1,.a-s2,.a-s3{animation:aSort 9s infinite}
.a-s2{animation-delay:.6s}.a-s3{animation-delay:1.2s}
@keyframes aSort{0%,30%{fill:rgba(246,243,238,.62)}36%,60%{fill:var(--accent-txt)}66%,100%{fill:rgba(246,243,238,.62)}}

/* 4 Entrümpelung */
.m-fill{transform-origin:624px 464px;animation:mFill 10s ease-in-out infinite}
@keyframes mFill{0%,8%{transform:scaleY(0)}70%,88%{transform:scaleY(1)}96%,100%{transform:scaleY(0)}}
.it1{animation:ent1 10s ease-in-out infinite}
@keyframes ent1{0%,8%{transform:none;opacity:1}14%{transform:translate(245px,-170px) rotate(20deg);opacity:1}20%{transform:translate(490px,-40px) rotate(8deg);opacity:1}22%,100%{transform:translate(490px,-40px);opacity:0}}
.it2{animation:ent2 10s ease-in-out infinite}
@keyframes ent2{0%,20%{transform:none;opacity:1}26%{transform:translate(230px,-172.5px) rotate(-20deg);opacity:1}32%{transform:translate(460px,-45px) rotate(-8deg);opacity:1}34%,100%{transform:translate(460px,-45px);opacity:0}}
.it3{animation:ent3 10s ease-in-out infinite}
@keyframes ent3{0%,32%{transform:none;opacity:1}38%{transform:translate(195px,-175px) rotate(20deg);opacity:1}44%{transform:translate(390px,-50px) rotate(8deg);opacity:1}46%,100%{transform:translate(390px,-50px);opacity:0}}
.it4{animation:ent4 10s ease-in-out infinite}
@keyframes ent4{0%,44%{transform:none;opacity:1}50%{transform:translate(172.5px,-176px) rotate(-20deg);opacity:1}56%{transform:translate(345px,-52px) rotate(-8deg);opacity:1}58%,100%{transform:translate(345px,-52px);opacity:0}}
.it5{animation:ent5 10s ease-in-out infinite}
@keyframes ent5{0%,56%{transform:none;opacity:1}62%{transform:translate(87.5px,-182.5px) rotate(20deg);opacity:1}68%{transform:translate(175px,-65px) rotate(8deg);opacity:1}70%,100%{transform:translate(175px,-65px);opacity:0}}
.reduced .it,.no-anim .it{opacity:1}

/* 5 Grundstücksberäumung */
.g-scan{animation:gScan 9s ease-in-out infinite;opacity:0}
@keyframes gScan{0%,6%{transform:translateX(90px);opacity:0}9%{opacity:1}60%{transform:translateX(740px);opacity:1}64%,100%{transform:translateX(740px);opacity:0}}
.g-clean{opacity:.5;animation:gClean 9s infinite}
@keyframes gClean{0%,60%{opacity:0}70%,92%{opacity:.5}100%{opacity:0}}
.g-ok{animation:gOk 9s infinite}
@keyframes gOk{0%,64%{opacity:0}72%,92%{opacity:1}100%{opacity:0}}
.gi{transform-box:fill-box;transform-origin:50% 50%}
.gi1{animation:gi1 9s ease-in-out infinite}@keyframes gi1{0%,14%{opacity:1;transform:none}18%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi2{animation:gi2 9s ease-in-out infinite}@keyframes gi2{0%,19%{opacity:1;transform:none}23%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi3{animation:gi3 9s ease-in-out infinite}@keyframes gi3{0%,26%{opacity:1;transform:none}30%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi4{animation:gi4 9s ease-in-out infinite}@keyframes gi4{0%,32%{opacity:1;transform:none}36%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi5{animation:gi5 9s ease-in-out infinite}@keyframes gi5{0%,36%{opacity:1;transform:none}40%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi6{animation:gi6 9s ease-in-out infinite}@keyframes gi6{0%,42%{opacity:1;transform:none}46%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi7{animation:gi7 9s ease-in-out infinite}@keyframes gi7{0%,45%{opacity:1;transform:none}49%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi8{animation:gi8 9s ease-in-out infinite}@keyframes gi8{0%,50%{opacity:1;transform:none}54%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi9{animation:gi9 9s ease-in-out infinite}@keyframes gi9{0%,52%{opacity:1;transform:none}56%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi10{animation:gi10 9s ease-in-out infinite}@keyframes gi10{0%,13%{opacity:1;transform:none}17%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi11{animation:gi11 9s ease-in-out infinite}@keyframes gi11{0%,30%{opacity:1;transform:none}34%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.gi12{animation:gi12 9s ease-in-out infinite}@keyframes gi12{0%,53%{opacity:1;transform:none}57%,94%{opacity:0;transform:scale(.4)}100%{opacity:1;transform:none}}
.reduced .gi{opacity:0}.reduced .g-clean,.reduced .g-ok{opacity:1}

/* 6 GaLa-Bau */
.lay.l1{animation:gL1 12s ease-out infinite}.lay.l2{animation:gL2 12s ease-out infinite}
.l1:not(.lay){animation:gF1 12s infinite}.l2:not(.lay){animation:gF2 12s infinite}
@keyframes gF1{0%,10%{opacity:0}20%,94%{opacity:1}100%{opacity:0}}@keyframes gF2{0%,22%{opacity:0}30%,94%{opacity:1}100%{opacity:0}}
.lay.l1{transform-origin:545px 450px}.lay.l2{transform-origin:545px 380px}
@keyframes gL1{0%,6%{opacity:0;transform:scaleY(0)}20%,94%{opacity:1;transform:scaleY(1)}100%{opacity:0}}
@keyframes gL2{0%,20%{opacity:0;transform:scaleY(0)}30%,94%{opacity:1;transform:scaleY(1)}100%{opacity:0}}
.st{transform-box:fill-box;animation:gSt 12s ease-out infinite backwards}
@keyframes gSt{0%,32%{opacity:0;transform:translateY(-90px)}38%,94%{opacity:1;transform:none}100%{opacity:0}}
.st1{animation-delay:0.00s}.st2{animation-delay:0.32s}.st3{animation-delay:0.64s}.st4{animation-delay:0.96s}.st5{animation-delay:1.28s}.st6{animation-delay:1.60s}.st7{animation-delay:1.92s}.st8{animation-delay:2.24s}
.gb{transform-box:fill-box;transform-origin:50% 100%;animation:gGb 12s ease-out infinite backwards}
@keyframes gGb{0%,58%{transform:scaleY(0)}72%,94%{transform:scaleY(1)}100%{transform:scaleY(0)}}
.gb1{animation-delay:0.00s}.gb2{animation-delay:0.15s}.gb3{animation-delay:0.30s}.gb4{animation-delay:0.45s}.gb5{animation-delay:0.60s}.gb6{animation-delay:0.75s}
.rn{stroke:rgba(246,243,238,.4);animation:gRn 1.2s linear infinite}
@keyframes gRn{0%{transform:translateY(-40px);opacity:0}20%{opacity:1}100%{transform:translateY(200px);opacity:0}}
.rn1{animation-delay:0.00s}.rn2{animation-delay:0.24s}.rn3{animation-delay:0.48s}.rn4{animation-delay:0.72s}.rn5{animation-delay:0.96s}
.slope{animation:gSl 12s infinite}
@keyframes gSl{0%,66%{opacity:0}74%,94%{opacity:1}100%{opacity:0}}
.reduced .rn{opacity:0}

/* reduzierte Bewegung: kein Lauf, vollständiges Bild */
.reduced .anim *{animation:none!important}
