:root{--lime:#c5f16d;--paper:#f1f6e9;--line:#d2dec7;--muted:#586e5f}
body.home-page{background:var(--paper)}.reading-progress{position:fixed;top:0;left:0;right:0;height:3px;background:#92ca44;z-index:90;transform:scaleX(var(--reading,0));transform-origin:left;pointer-events:none}.home-page .site-header{min-height:104px}.home-page .hero{box-shadow:0 18px 70px #22482b10}.home-page .benefits{background:var(--lime);border:0;border-radius:0 0 16px 16px;margin-top:-5px;min-height:86px;color:#23442d}.home-page .benefits i{color:#3c6c29}
#leistungen{width:100%;max-width:none;margin-top:70px;padding:86px max(52px,calc((100% - 1392px)/2)) 94px;background:radial-gradient(ellipse at 70% 0,#286a48,transparent 65%),#154530;color:#f3f8ed}#leistungen .section-heading .eyebrow{color:#c5f16d}#leistungen h2 em{font-family:Georgia,serif;color:var(--lime);font-weight:400}#leistungen .section-heading>p{color:#c4d5c5}#leistungen .service-grid{border:0;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}#leistungen .service{position:relative;padding:25px 27px 27px;border:1px solid #badea531;border-radius:16px;background:#24543c;overflow:hidden;display:flex;flex-direction:column;isolation:isolate;transition:opacity .85s,transform .85s,box-shadow .3s}#leistungen .service-print{background:var(--lime);color:#1a402a;border-color:var(--lime)}#leistungen .service-products{background:#37764d}#leistungen .service p{color:#d2e0ce;max-width:none;margin-bottom:25px;line-height:1.75;font-size:15px}#leistungen .service-print p{color:#385a32}#leistungen .service h3{font-size:27px;margin:14px 0 13px;letter-spacing:-.8px}#leistungen .service-top{display:flex;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:1px;font-weight:600;align-items:center}#leistungen .service-top>span:last-child{font-size:23px;font-weight:400}.service-art{height:225px;position:relative;display:grid;place-items:center;color:var(--lime);margin:10px -15px 0}.service-art svg{width:100%;height:100%;overflow:visible}.service-print .service-art{color:#397937}.service-action{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #badea54d;padding-top:18px;margin-top:auto;font-size:13px;font-weight:600}.service-print .service-action{border-color:#315b2e44}.service-action:after{position:absolute;inset:0;content:"";z-index:2}.service-action>span{border:1px solid currentColor;border-radius:50%;width:31px;height:31px;display:grid;place-items:center;transition:background .25s,transform .25s}.service:hover .service-action>span{transform:rotate(45deg)}.service:has(a:focus-visible){outline:3px solid #efa747;outline-offset:5px}#leistungen .service:hover{box-shadow:0 12px 35px #041f263d}.product-stack{position:relative;width:100%;height:200px;perspective:800px}.product-stack img{position:absolute;object-fit:cover;width:58%;height:142px;top:22px;left:21%;border:5px solid #e6f2d6;border-radius:6px;box-shadow:0 10px 25px #09271b44;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.product-stack img:nth-child(1){transform:translate(-29px,7px) rotate(-13deg)}.product-stack img:nth-child(2){transform:translate(30px,3px) rotate(12deg)}.product-stack img:nth-child(3){transform:rotate(-3deg)}.service:hover .product-stack img:nth-child(1){transform:translate(-48px,1px) rotate(-18deg)}.service:hover .product-stack img:nth-child(2){transform:translate(49px,-3px) rotate(18deg)}.service:hover .product-stack img:nth-child(3){transform:translateY(-7px)}.product-stack>span{position:absolute;bottom:7px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:1.5px;color:#e1f3ce}
.idea-band{position:relative;overflow:hidden;background:var(--lime);color:#1b422c;padding:76px 0 66px}.idea-inner{position:relative;z-index:1}.idea-band .eyebrow{font-size:11px;color:#436b31}.idea-band h2{font-size:clamp(4.5rem,8vw,8rem);letter-spacing:-5px;line-height:.98;max-width:1000px}.idea-band h2 em{font-family:Georgia,serif;font-weight:400}.idea-asterisk{display:inline-block;font-size:.7em;margin-left:45px;vertical-align:middle;transform:rotate(var(--orbit-turn,0deg))}.idea-bottom{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-top:38px}.idea-bottom p{margin:0;color:#38552e;font-size:16px}.idea-bottom .button{gap:40px}.idea-orbits{position:absolute;width:640px;right:-200px;top:-70px;color:#477a28;opacity:.18;transform:translateY(var(--orbit-y,0px)) rotate(var(--orbit-turn,0deg));pointer-events:none}.idea-orbits svg{width:100%}.home-page .products-section{background:#e2edcf}.home-page .product-image{border:1px solid #b7cb9f;box-shadow:0 8px 18px #29482108}.home-page .product-tag{background:var(--lime);color:#24452a}.home-page .product-footer{border-color:#b9ce9c}.home-page .process{position:relative}.home-page .steps{gap:30px}.home-page .steps li{position:relative;background:#e5eedb;padding:28px;border-radius:12px;border-top:0;overflow:hidden}.home-page .steps li:before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:#72a834;transform:scaleX(var(--step-progress,0));transform-origin:left}.home-page .steps li>span{color:#437831}.home-page .about{background:#dceacb}.home-page .about-brand{background:radial-gradient(ellipse at top,#387951,#194b34)}.home-page .about-copy h2 em{color:#396f30}.home-page .contact{background:radial-gradient(ellipse at 0 0,#326944,transparent 65%),#164430}.home-page .contact-form select,.home-page .contact-form textarea{background:#173e2cd9}.home-page .site-footer{color:#587345}
.home-page .reveal-pending{transform:translateY(48px);transition:opacity .85s ease,transform .85s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}.home-page .reveal-visible{transform:none}.home-page .service.reveal-pending .draw-path{stroke-dasharray:1000;stroke-dashoffset:1000}.home-page .service.reveal-visible .draw-path{stroke-dashoffset:0;transition:stroke-dashoffset 1.8s ease .15s}.printed-layers{clip-path:inset(0);transition:clip-path 1.5s cubic-bezier(.2,.6,.2,1) .2s}.reveal-pending:not(.reveal-visible) .printed-layers{clip-path:inset(100% 0 0 0)}.scan-line{transform:translateY(var(--scan-y,0px));opacity:.35}.print-head{transform:translateX(var(--head-x,0px))}.home-page .motion-paused{scroll-behavior:auto}.motion-paused .idea-orbits,.motion-paused .idea-asterisk,.motion-paused .scan-line,.motion-paused .print-head{transform:none!important}.home-page.motion-paused .reveal-pending{opacity:1;transform:none;transition:none}.home-page.motion-paused .printed-layers{clip-path:none;transition:none}.home-page.motion-paused .draw-path{stroke-dashoffset:0!important;stroke-dasharray:none!important;transition:none}.motion-paused .product-stack img{transition:none}
@media(max-width:1050px){#leistungen{padding-inline:32px}.service-art{height:190px}#leistungen .service{padding:20px}#leistungen .service h3{font-size:23px}.idea-band h2{letter-spacing:-3px}.idea-asterisk{margin-left:25px}.home-page .steps li{padding:23px}}
@media(max-width:760px){.home-page .site-header{min-height:88px}.home-page .benefits{padding:24px 14px}.home-page .hero .eyebrow{font-size:10px}#leistungen{margin-top:45px;padding:52px 18px 54px}#leistungen .service-grid{grid-template-columns:1fr;gap:18px}#leistungen .service{padding:22px 25px}#leistungen .service-top{font-size:10px}.service-art{height:215px;margin:6px 0}#leistungen .service h3{font-size:27px;margin-top:10px}#leistungen .service p{font-size:15px;max-width:none}.product-stack{max-width:320px}.idea-band{padding:50px 0}.idea-band h2{font-size:clamp(3rem,12vw,5rem);letter-spacing:-2.5px}.idea-band h2 em{white-space:normal}.idea-asterisk{margin-left:16px}.idea-bottom{flex-direction:column;align-items:flex-start;gap:23px;margin-top:28px}.idea-bottom p{font-size:15px}.idea-orbits{width:480px;right:-275px;top:0}.home-page .steps li{padding:24px 20px;gap:0 15px}.home-page .steps h3{font-size:21px}.home-page .reveal-pending{transform:translateY(28px);transition-delay:0ms!important}.home-page .reveal-visible{transform:none}}
@media(prefers-reduced-motion:reduce){.reading-progress{display:none}.home-page .reveal-pending{opacity:1;transform:none}.printed-layers{clip-path:none}.draw-path{stroke-dasharray:none!important;stroke-dashoffset:0!important}.idea-orbits,.idea-asterisk,.scan-line,.print-head{transform:none!important}.service:hover .product-stack img{transform:none}.home-page .steps li:before{transform:none}}

/* The print head keeps its place when the pointer leaves the card. */
.service-print .print-head{animation:printer-toolpath 4s linear infinite paused}
.service-print .scan-line{animation:printer-scan 4s ease-in-out infinite paused}
.service-print .print-trace{stroke-dasharray:1;stroke-dashoffset:1;opacity:0;animation:printer-trace 4s linear infinite paused;transition:opacity .2s}
.service-print .print-flow{animation:printer-feed .5s linear infinite paused}
.service-print .print-tip{animation:printer-tip 1s ease-in-out infinite alternate paused}
@keyframes printer-toolpath{0%,100%{transform:translate(-44px,14px)}25%{transform:translate(3px,-12px)}50%{transform:translate(47px,12px)}75%{transform:translate(0,38px)}}
@keyframes printer-scan{0%,100%{transform:translateY(-30px);opacity:.15}50%{transform:translateY(35px);opacity:.5}}
@keyframes printer-trace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes printer-feed{to{stroke-dashoffset:-6}}
@keyframes printer-tip{from{opacity:.5}to{opacity:1}}
@media(hover:hover) and (pointer:fine){
 .service-print:hover :is(.print-head,.scan-line,.print-trace,.print-flow,.print-tip){animation-play-state:running}
 .service-print:hover .print-trace{opacity:.9}
}
.service-print:has(.service-action:focus-visible) :is(.print-head,.scan-line,.print-trace,.print-flow,.print-tip){animation-play-state:running}
.service-print:has(.service-action:focus-visible) .print-trace{opacity:.9}
.motion-paused .service-print .print-trace{opacity:0}
@media(prefers-reduced-motion:reduce){.service-print :is(.print-head,.scan-line,.print-trace,.print-flow,.print-tip){animation:none!important}.service-print .print-trace{opacity:0!important}}

/* CAD construction runs only during hover or visible keyboard focus. */
.service-cad .cad-drawing{stroke-dasharray:1;animation:cad-outline-draw 5.5s ease-in-out infinite paused}
.service-cad .cad-hole{stroke-dasharray:1;animation:cad-hole-draw 5.5s ease-in-out infinite paused}
.service-cad .cad-dimensions{animation:cad-measure-in 5.5s ease-in-out infinite paused}
.service-cad .cad-cursor{animation:cad-edge-travel 5.5s linear infinite paused}
.service-cad .cad-cursor-ring{animation:cad-cursor-pulse 1.1s ease-in-out infinite alternate paused}
@keyframes cad-outline-draw{0%,100%{stroke-dashoffset:0;opacity:1}10%{stroke-dashoffset:1;opacity:.35}68%,92%{stroke-dashoffset:0;opacity:1}}
@keyframes cad-hole-draw{0%,100%{stroke-dashoffset:0;opacity:1}12%,45%{stroke-dashoffset:1;opacity:0}74%,94%{stroke-dashoffset:0;opacity:1}}
@keyframes cad-measure-in{0%,100%{opacity:1}12%,48%{opacity:.12}78%,94%{opacity:1}}
@keyframes cad-edge-travel{0%,10%,100%{transform:translate(0,0)}24%{transform:translate(81px,48px)}34%{transform:translate(81px,88px)}52%{transform:translate(-26px,149px)}66%{transform:translate(-108px,102px)}76%{transform:translate(-108px,62px)}92%{transform:translate(0,0)}}
@keyframes cad-cursor-pulse{from{opacity:.35}to{opacity:1}}
@media(hover:hover) and (pointer:fine){.service-cad:hover :is(.cad-drawing,.cad-hole,.cad-dimensions,.cad-cursor,.cad-cursor-ring){animation-play-state:running}}
.service-cad:has(.service-action:focus-visible) :is(.cad-drawing,.cad-hole,.cad-dimensions,.cad-cursor,.cad-cursor-ring){animation-play-state:running}
@media(prefers-reduced-motion:reduce){.service-cad :is(.cad-drawing,.cad-hole,.cad-dimensions,.cad-cursor,.cad-cursor-ring){animation:none!important}}

/* On touchscreens, visibility replaces hover; the shared motion controls still apply. */
@media (hover:none), (pointer:coarse){
 .service-cad.card-motion-active :is(.cad-drawing,.cad-hole,.cad-dimensions,.cad-cursor,.cad-cursor-ring),
 .service-print.card-motion-active :is(.print-head,.scan-line,.print-trace,.print-flow,.print-tip){animation-play-state:running}
 .service-print.card-motion-active .print-trace{opacity:.9}
 .service-products .product-stack img{animation:touch-product-front 5.5s ease-in-out infinite paused;transition:none}
 .service-products .product-stack img:nth-child(1){animation-name:touch-product-left}
 .service-products .product-stack img:nth-child(2){animation-name:touch-product-right}
 .service-products.card-motion-active .product-stack img{animation-play-state:running}
}
@keyframes touch-product-left{0%,100%{transform:translate(-16%,4px) rotate(-13deg)}50%{transform:translate(-23%,0) rotate(-18deg)}}
@keyframes touch-product-right{0%,100%{transform:translate(16%,3px) rotate(12deg)}50%{transform:translate(23%,-2px) rotate(18deg)}}
@keyframes touch-product-front{0%,100%{transform:rotate(-3deg)}50%{transform:translateY(-7px) rotate(1deg)}}
@media(prefers-reduced-motion:reduce){.service-products .product-stack img{animation:none!important}}

/* The shop symbol loops while its card is visible, alongside the two films. */
.shop-bag-float{transform-origin:180px 117px;animation:shop-bag-float 6s ease-in-out infinite paused}
.shop-drawing{stroke-dasharray:1;animation:shop-outline 6s ease-in-out infinite paused}
.shop-orbit{transform-origin:180px 117px;animation:shop-orbit 12s linear infinite paused}
.shop-confirm{transform-origin:242px 171px;animation:shop-confirm 6s ease-in-out infinite paused}
@keyframes shop-bag-float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(4deg)}}
@keyframes shop-outline{0%,100%{stroke-dashoffset:0;opacity:1}12%{stroke-dashoffset:1;opacity:.3}65%,90%{stroke-dashoffset:0;opacity:1}}
@keyframes shop-orbit{to{transform:rotate(360deg)}}
@keyframes shop-confirm{0%,100%{transform:scale(1);opacity:1}12%,48%{transform:scale(.6);opacity:0}65%{transform:scale(1.12);opacity:1}75%,90%{transform:scale(1);opacity:1}}
.service-products.card-motion-active :is(.shop-bag-float,.shop-drawing,.shop-orbit,.shop-confirm){animation-play-state:running}
@media(prefers-reduced-motion:reduce){.service-products :is(.shop-bag-float,.shop-drawing,.shop-orbit,.shop-confirm){animation:none!important}}
