@font-face{font-family:"Inter";src:url("fonts/inter-latin-wght.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
html{color-scheme:light}body{margin:0}img{max-width:100%;height:auto}[hidden]{display:none!important}
:root{--bg:#ffffff;--soft:#f8f5f3;--ink:#1c1410;--muted:#6f625b;--line:#ece4df;--orange:#bd4930;--brown:#764429;--deep:#2a1710;--grad:linear-gradient(90deg,#fa332e 0%,#bd4930 40%,#764429 75%,#2a1710 100%);--red:#fa332e;--c:var(--red);--display:"Inter","Helvetica Neue",Arial,sans-serif;--body:"Inter","Helvetica Neue",Arial,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);--spot:clamp(170px,26vw,320px)}
@view-transition{navigation:auto}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}
a{color:inherit}
h1,h2,h3{font-family:var(--display);line-height:1.04;letter-spacing:-.025em;font-weight:400;text-wrap:balance;margin:0}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media(min-width:720px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:300;color:var(--muted);display:inline-flex;align-items:center;gap:.6em}
.eyebrow::before{content:"";width:1.6em;height:2px;border-radius:2px;background:var(--grad)}
:focus-visible{outline:3px solid var(--brown);outline-offset:3px;border-radius:4px}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
.nav.scrolled{border-bottom-color:var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:18px}
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo-img{height:46px;width:auto;display:block}
@media(max-width:480px){.logo-img{height:38px}}
.foot .logo-img{height:62px}
#menu{display:flex;align-items:center;gap:4px}
#menu a{text-decoration:none;font-weight:500;font-size:.96rem;padding:8px 14px;border-radius:999px;position:relative;transition:background .25s,color .25s}
#menu a:not(.nav-cta)::after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
#menu a:hover::after,#menu a[aria-current]::after{transform:scaleX(1)}
#menu a[data-c=red]{--c:var(--red)}#menu a[data-c=orange]{--c:var(--orange)}#menu a[data-c=brown]{--c:var(--brown)}#menu a[data-c=mix]::after{background:var(--grad)}
.nav-cta{background:var(--ink);color:#fff!important;margin-left:8px}
.nav-cta:hover{background:var(--red)}
.burger{display:none;width:44px;height:44px;border:0;background:var(--soft);border-radius:50%;cursor:pointer;position:relative}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:var(--ink);transition:transform .3s var(--ease)}
.burger span:first-child{top:18px}.burger span:last-child{top:25px}
.burger[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@media(max-width:860px){
.burger{display:block}
#menu{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;background:var(--bg);border-bottom:1px solid var(--line);padding:12px max(16px,env(safe-area-inset-left,0px)) 20px;clip-path:inset(0 0 100% 0);transition:clip-path .45s var(--ease);visibility:hidden}
#menu.open{clip-path:inset(0 0 0 0);visibility:visible}
#menu a{font-size:1.6rem;padding:10px 4px;border-radius:0}
#menu a:not(.nav-cta)::after{left:4px;right:auto;width:40px;bottom:6px}
.nav-cta{margin:10px 0 0;text-align:center;border-radius:999px!important;font-size:1.1rem!important}
}
.hero{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(48px,9vw,120px) clamp(48px,7vw,96px)}
.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:-1;animation:fadein 1.2s .2s var(--ease) both}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(2.9rem,8.4vw,6.6rem);font-weight:400}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.08em}
.hero h1 .line span{display:inline-block;animation:rise .9s var(--ease) both}
.hero h1 .line:nth-child(2) span{animation-delay:.12s}
.hero h1 .line:nth-child(3) span{animation-delay:.24s}
.hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
.hero-lead{max-width:34ch;font-size:1.2rem;color:var(--muted);margin-top:28px;animation:fade .9s .45s var(--ease) both}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px;animation:fade .9s .6s var(--ease) both}
.viz-spot{aspect-ratio:1;width:100%;max-width:100%}
.viz-fallback{background:radial-gradient(circle at 38% 34%,#fff 0 4%,#fa332e 18%,#bd4930 42%,#764429 62%,#2a1710 80%);border-radius:50%;scale:.8;animation:drift2 10s ease-in-out infinite}
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
@keyframes fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes pop{from{scale:.2;opacity:0}to{scale:1;opacity:1}}
@keyframes drift2{50%{translate:-5% 7%}}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:999px;text-decoration:none;border:0;cursor:pointer;font:inherit;font-weight:600;position:relative;overflow:hidden;isolation:isolate;transition:color .35s}
.btn::before{content:"";position:absolute;inset:0;background:var(--c);transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1;border-radius:inherit}
.btn:hover::before{transform:none}
.btn-dark{background:var(--ink);color:#fff}
.btn-line{background:rgba(255,255,255,.7);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-line:hover{color:#fff}
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:22px;background:var(--bg)}
.marquee-track{display:flex;gap:48px;width:max-content;animation:scroll 30s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font-size:clamp(1.6rem,4vw,2.8rem);font-weight:300;letter-spacing:-.01em;white-space:nowrap;display:inline-flex;align-items:center;gap:48px}
.marquee-track span::after{content:"";width:.5em;height:.5em;border-radius:50%;background:var(--dot)}
@keyframes scroll{to{transform:translateX(-50%)}}
section.block{padding-block:clamp(64px,10vw,128px)}
section.block.cta-sec{padding-block:0 clamp(48px,7vw,88px)}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px 40px;margin-bottom:48px}
.sec-head h2{font-size:clamp(2.1rem,5vw,3.6rem);font-weight:400;max-width:16ch;padding-bottom:.08em}
.sec-head p{max-width:42ch;color:var(--muted)}
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.svc{--c:var(--orange);position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:56px;min-height:300px;padding:32px;border-radius:24px;background:var(--soft);text-decoration:none;overflow:hidden;isolation:isolate;transition:color .45s,transform .45s var(--ease)}
.svc::before{content:"";position:absolute;width:40px;height:40px;right:32px;top:32px;border-radius:50%;background:var(--c);z-index:-1;transition:transform .7s var(--ease)}
.svc:hover{color:#fff;transform:translateY(-4px)}
.svc:hover::before{transform:scale(28)}
.svc.red{--c:var(--red)}.svc.brown{--c:var(--brown)}
.svc.mix::before{background:var(--grad)}
.svc .num{font-size:.8rem;letter-spacing:.22em;font-weight:300;opacity:.7}
.svc h3{font-size:clamp(1.9rem,3.6vw,2.8rem);font-weight:500}
.svc p{margin-top:12px;max-width:36ch;opacity:.85}
.svc .go{display:inline-flex;align-items:center;gap:8px;font-weight:600;margin-top:20px}
.svc .go .arr{transition:transform .35s var(--ease)}
.svc:hover .go .arr{transform:translateX(6px)}
@media(max-width:720px){.services{grid-template-columns:1fr}.svc{min-height:240px;padding:26px}.svc::before{right:26px;top:26px}}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;counter-reset:s}
.step{border-top:2px solid var(--ink);padding-top:22px;counter-increment:s}
.step::before{content:counter(s,decimal-leading-zero);font-weight:700;font-size:.95rem;color:var(--c)}
.step.plain::before{content:"";display:block;width:28px;height:2px;background:var(--grad)}
.step h3{font-size:1.5rem;margin:10px 0}
.step p{color:var(--muted)}
@media(max-width:720px){.steps{grid-template-columns:1fr;gap:32px}}
.cta{background:var(--ink);color:#fff;border-radius:32px;padding:clamp(36px,6vw,72px);display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:end;position:relative;overflow:hidden;isolation:isolate}
.cta h2{font-size:clamp(2rem,5vw,3.6rem);font-weight:400}
.cta .eyebrow{color:#b9b0aa}
.cta .contact-lines{display:grid;gap:6px;font-size:1.1rem}
.cta .contact-lines span{color:#b9b0aa}
.cta .contact-lines a{text-decoration:none;font-size:clamp(1.5rem,3vw,2rem);font-weight:600}
.cta .contact-lines a:hover{color:var(--c)}
.cta::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:var(--c);right:-120px;top:-160px;opacity:.95;z-index:-1;animation:breathe 8s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.15) translate(-20px,20px)}}
.cta .btn-light{background:#fff;color:var(--ink);justify-self:start;margin-top:18px;font-size:1rem!important}
.cta .btn-light:hover{color:#fff}
@media(max-width:760px){.cta{grid-template-columns:1fr}.cta::after{width:220px;height:220px;right:-90px;top:-100px}}
.sub-hero{padding-block:clamp(56px,8vw,112px) clamp(48px,6vw,80px);position:relative;overflow:hidden;isolation:isolate}
.sub-hero .wrap{position:relative}
.sub-hero .big-dot{position:absolute;width:var(--spot);aspect-ratio:1;border-radius:50%;background:var(--c);right:max(16px,4%);top:50%;margin-top:calc(var(--spot) / -2);z-index:-1;animation:pop 1s var(--ease) both,drift2 12s 1s ease-in-out infinite}
.sub-hero .big-dot.liquid-on{background:transparent!important;animation:none}
.sub-hero .big-dot.liquid-on i{display:none}
.sub-hero.mix .big-dot{background:transparent}
.sub-hero.mix .big-dot i{position:absolute;width:64%;aspect-ratio:1;border-radius:50%;mix-blend-mode:multiply}
.sub-hero.mix .big-dot i:nth-child(1){background:var(--red);left:0;top:0}
.sub-hero.mix .big-dot i:nth-child(2){background:var(--orange);right:0;top:8%}
.sub-hero.mix .big-dot i:nth-child(3){background:var(--brown);left:18%;bottom:0}
.sub-hero h1{font-size:clamp(2.6rem,7.5vw,6rem);font-weight:400;margin-top:20px;line-height:1.08;max-width:calc(100% - var(--spot) - 8%)}
.sub-hero .line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.08em}
.sub-hero h1 span{display:inline-block;animation:rise .9s var(--ease) both}
.sub-hero .lead{max-width:min(40ch,calc(100% - var(--spot) - 8%));font-size:1.25rem;margin-top:24px;animation:fade .9s .3s var(--ease) both}
.sub-hero .wrap>p:not(.crumbs):not(.lead){position:relative}
.crumbs{font-size:.9rem;color:var(--muted);font-weight:300;letter-spacing:.22em}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink)}

/* Handy und Tablet: keine fluessigen Animationen, Text rueckt nach oben */
@media(max-width:860px){
.hero-grid{grid-template-columns:1fr}
.viz-spot,.hero-canvas{display:none}
.hero{padding-block:40px 56px}
.sub-hero{padding-block:40px 40px}
.sub-hero .big-dot,.sub-hero .hero-canvas{display:none}
.sub-hero h1{max-width:100%;margin-top:14px}
.sub-hero .lead{max-width:40ch}
}
.touch .viz-spot,.touch .hero-canvas,.touch .sub-hero .big-dot{display:none}
.touch .hero-grid{grid-template-columns:1fr}
.touch .sub-hero h1{max-width:100%}
.touch .sub-hero .lead{max-width:40ch}

.offers{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}
.offer{padding:28px 28px 28px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.offer:nth-child(odd){border-right:1px solid var(--line)}
.offer:nth-child(even){padding-left:28px}
.offer .dot{width:12px;height:12px;border-radius:50%;background:var(--c);margin-top:12px;transition:transform .4s var(--ease)}
.offer:hover .dot{transform:scale(1.8)}
.offer h3{font-size:1.45rem;font-weight:600}
.offer p{color:var(--muted);margin-top:6px}
@media(max-width:720px){.offers{grid-template-columns:1fr}.offer,.offer:nth-child(even){padding:22px 0;border-right:0}}
.label-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,56px);align-items:center;background:#0c0d12;color:#fff;border-radius:32px;padding:clamp(28px,5vw,64px);text-decoration:none;position:relative;overflow:hidden;isolation:isolate;transition:transform .45s var(--ease)}
.label-card::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 80%,rgba(250,51,46,.55),transparent 55%);opacity:.7;z-index:-1;transition:opacity .5s}
.label-card:hover{transform:translateY(-4px)}
.label-card:hover::before{opacity:1}
.eq{display:flex;align-items:flex-end;gap:6px;height:clamp(120px,18vw,200px)}
.eq i{flex:1;height:100%;background:linear-gradient(to top,var(--red),var(--orange));border-radius:3px;transform-origin:bottom;animation:eq 1.1s var(--d) ease-in-out infinite alternate}
@keyframes eq{0%{transform:scaleY(.18)}50%{transform:scaleY(.9)}100%{transform:scaleY(.4)}}
.label-body{min-width:0}
.label-kicker{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:300;color:#a7abba}
.label-name{display:block;font-weight:700;font-size:clamp(2.2rem,6vw,4.2rem);letter-spacing:.04em;line-height:1;margin:14px 0 18px;color:transparent;-webkit-text-stroke:1.5px #fff;transition:color .45s}
.label-card:hover .label-name{color:#fff}
.label-body p{color:#c9ccd6;max-width:40ch}
.label-ig{display:inline-flex;align-items:center;gap:10px;margin-top:26px;font-weight:600;font-size:1.1rem;padding:12px 20px;border-radius:999px;background:#fff;color:#0c0d12;transition:background .3s,color .3s}
.label-card:hover .label-ig{background:var(--red);color:#fff}
.label-ig .arr{transition:transform .35s var(--ease)}
.label-card:hover .label-ig .arr{transform:translate(3px,-3px)}
@media(max-width:760px){.label-card{grid-template-columns:1fr}.eq{height:90px;order:2}}
.next{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;text-decoration:none;padding-block:40px;border-top:1px solid var(--line)}
.next small{display:block;color:var(--muted);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.next strong{font-size:clamp(2rem,6vw,4.4rem);font-weight:400;letter-spacing:-.02em;line-height:1.15;transition:color .35s}
.next:hover strong{color:var(--nc)}
.next .ring{width:72px;height:72px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font-size:1.6rem;transition:background .35s,color .35s,transform .45s var(--ease)}
.next:hover .ring{background:var(--nc);border-color:var(--nc);color:#fff;transform:rotate(-45deg)}
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,80px);align-items:start}
.info-list{display:grid;gap:28px}
.info-list .label{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.info-list .val{font-size:clamp(1.4rem,3vw,2rem);font-weight:600;line-height:1.2;margin-top:6px}
.info-list .val a{text-decoration:none}
.copy{margin-top:8px;font:inherit;font-size:.85rem;font-weight:600;background:var(--soft);border:0;border-radius:999px;padding:6px 14px;cursor:pointer}
.copy:hover{background:var(--line)}
form.card{background:var(--soft);border-radius:24px;padding:clamp(22px,4vw,40px);display:grid;gap:16px;position:relative}
.field{display:grid;gap:6px}
.field label,.field legend{font-weight:600;font-size:.92rem}
fieldset.field{border:0;padding:0;margin:0;min-width:0}
fieldset.field legend{padding:0;margin-bottom:6px}
.field input,.field textarea{font:inherit;padding:14px 16px;border-radius:14px;border:1.5px solid var(--line);background:#fff;color:var(--ink);transition:border-color .25s,box-shadow .25s;width:100%}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--brown);box-shadow:0 0 0 4px rgba(250,51,46,.14)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.chips label{padding:8px 16px;border-radius:999px;background:#fff;border:1.5px solid var(--line);cursor:pointer;font-weight:500;transition:all .25s}
.chips input:checked+label{background:var(--ink);border-color:var(--ink);color:#fff}
.chips input:focus-visible+label{outline:3px solid var(--brown);outline-offset:2px}
.form-note{font-size:.92rem;color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
.legal{max-width:760px}
.legal h2{font-size:1.5rem;margin:36px 0 10px}
.legal p{color:var(--muted);margin:0 0 8px}
.legal a{color:var(--ink)}
.todo{background:#fde7e3;color:#a32a1a;padding:1px 6px;border-radius:6px}
footer{border-top:1px solid var(--line);margin-top:clamp(24px,4vw,48px)}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding-block:48px}
.foot-intro{margin-top:14px;color:var(--muted);max-width:32ch}
.foot h2{margin:0 0 12px;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.foot a{text-decoration:none}.foot a:hover{color:var(--orange)}
.foot address{font-style:normal}
.foot-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:20px 32px;color:var(--muted);font-size:.88rem;border-top:1px solid var(--line)}
.foot-bottom a{text-decoration:none}
@media(max-width:720px){.foot{grid-template-columns:1fr}}
@supports (animation-timeline:view()){.rv{animation:rv linear both;animation-timeline:view();animation-range:entry 0% entry 55%}@keyframes rv{from{opacity:.15;transform:translateY(40px)}to{opacity:1;transform:none}}}
.page-in{animation:fade .6s var(--ease) both}

/* Handy und Tablet (Touch): keine haengenbleibenden Hover-Zustaende */
@media(hover:none){
.btn:hover::before{transform:translateY(101%)}
.btn-line:hover,.cta .btn-light:hover{color:var(--ink)}
.btn:hover .arr{transform:none}
.svc:not(.is-on):hover{color:inherit;transform:none}
.svc:not(.is-on):hover::before{transform:none}
.label-card:not(.is-on):hover{transform:none}
.label-card:not(.is-on):hover .label-name{color:transparent}
.label-card:not(.is-on):hover .label-ig{background:#fff;color:#0c0d12}
.ccard:not(.is-on):hover{color:inherit;transform:none}
.ccard:not(.is-on):hover::before{transform:none}
.ccard:not(.is-on):hover .label{color:var(--muted)}
.contact-form .chips input:not(:checked)+label:hover{color:var(--ink);border-color:var(--line)}
.contact-form .chips input:not(:checked)+label:hover::before{transform:scale(1)}
.next:hover .ring{background:transparent;border-color:var(--ink);color:var(--ink);transform:none}
.next:hover strong{color:inherit}
}

/* Handy: Farbeffekte laufen beim Scrollen von selbst */
.touch .svc.is-on{color:#fff}
.touch .svc.is-on::before{transform:scale(28)}
.touch .label-card.is-on::before{opacity:1}
.touch .label-card.is-on .label-name{color:#fff}
.touch .label-card.is-on .label-ig{background:var(--red);color:#fff}
.touch .ccard.is-on{color:#fff}
.touch .ccard.is-on::before{transform:scale(60)}
.touch .ccard.is-on .label{color:rgba(255,255,255,.78)}
.touch .ccard.is-on .copy{background:#fff;color:var(--ink)}

/* Handy: Punkte in den Formular-Auswahlen pulsieren von selbst, Farbe bleibt beim Antippen */
@keyframes dotpulse{0%,100%{transform:scale(1)}50%{transform:scale(2.6)}}
.touch .contact-form .chips label::before{animation:dotpulse 2.4s ease-in-out infinite}
.touch .contact-form .chips label:nth-of-type(2)::before{animation-delay:.3s}
.touch .contact-form .chips label:nth-of-type(3)::before{animation-delay:.6s}
.touch .contact-form .chips label:nth-of-type(4)::before{animation-delay:.9s}
.touch .contact-form .chips label:nth-of-type(5)::before{animation-delay:1.2s}
.touch .contact-form .chips label:nth-of-type(6)::before{animation-delay:1.5s}
.touch .contact-form .chips input:checked+label::before{animation:none}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
