/* Nur diese Groesse ist angemeldet - der Browser muss wissen, dass eine Zahl
   darin steht, um sie selbst weiterzuzaehlen. --journey bleibt bewusst eine
   gewoehnliche Variable: angemeldete Eigenschaften werden bei jeder Zuweisung
   aus dem Skript typgeprueft, was den Rueckfallweg spuerbar ausbremst. */
@property --journey-auto{syntax:"<number>";inherits:false;initial-value:0}
@keyframes journey-lauf{from{--journey-auto:0}to{--journey-auto:1}}

.hero-scroll{position:relative}.wow-hero{--journey:0;min-height:790px;height:calc(100svh - 96px);max-height:1100px;padding:28px 5% 0;isolation:isolate;background:#09090d;overflow:hidden}.wow-hero .hero-grid{opacity:.7;background-size:110px 110px;mask-image:linear-gradient(transparent,#0008)}.violet-light{position:absolute;width:80%;height:100%;right:-20%;top:4%;z-index:-1;background:radial-gradient(ellipse at center,#743bd16b 0%,#52299830 35%,transparent 68%);transform:translate3d(calc(var(--journey)*-14%),calc(var(--journey)*-5%),0);pointer-events:none}.violet-light:after{content:'';position:absolute;inset:15% 25%;border-radius:50%;box-shadow:0 0 140px 60px #9460ec22;transform:rotate(-30deg)}.wow-hero .hero-top{z-index:4}.wow-hero .eyebrow,.wow-hero .edition{font-size:10px;letter-spacing:1.8px}.wow-copy{position:relative;z-index:3;margin-top:66px;pointer-events:none;transform:translateY(calc(var(--journey)*-85px));opacity:calc(1 - var(--journey)*1.4)}.wow-copy a{pointer-events:auto}.wow-copy h1{font-size:clamp(64px,7.8vw,120px);letter-spacing:-.068em;line-height:1.02;font-weight:700;max-width:100%;width:max-content}.wow-copy h1 em,.wow-copy h1.text-motion em{color:#c8a5ff;background:none}.wow-copy h1.text-entered em .motion-word{background:linear-gradient(110deg,#bea0f6 0%,#be98ff 30%,#fbf5ff 46%,#d5b5ff 55%,#a87bea 75%,#d2b8ff 100%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:violet-sweep 3.8s ease .3s 1 both}.wow-description{margin-top:33px;max-width:380px}.wow-description>p{font-size:18px;line-height:1.65;color:#b6adca}.wow-actions{display:flex;align-items:flex-start;flex-direction:column;gap:18px;margin-top:27px}.wow-actions .button{padding:14px 24px;background:#d7c2ff;box-shadow:0 0 40px #9763ec1c}.wow-secondary{font-size:14px;color:#d1c7df;margin-left:7px}.wow-secondary:hover{color:#fff}.wow-projects{position:absolute;top:360px;left:48%;width:47%;z-index:2;perspective:1300px;transform-origin:center;transition:none}.wow-pointer{position:relative;aspect-ratio:1.66;transform:rotateX(var(--pointer-y,0deg)) rotateY(var(--pointer-x,0deg));transition:transform .45s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}.wow-card{display:block;position:absolute;width:100%;overflow:hidden;border:1px solid #c6a6ff5e;border-radius:9px;background:#1b1722;box-shadow:0 35px 80px #0009,0 0 35px #9e67ed13;transform-style:preserve-3d;will-change:transform}.wow-card img{aspect-ratio:900/498;object-fit:cover;height:auto}.wow-card .window-bar{background:#20192c;padding:10px 14px}.wow-diana{width:85%;top:-80px;right:-2%;transform:translate3d(0,0,-90px) rotateY(-12deg) rotateZ(8deg);opacity:.75;filter:brightness(.85)}.wow-maler{left:0;top:18px;transform:rotateY(-10deg) rotateZ(-5deg)}.wow-card:hover{border-color:#dec8ff}.wow-project-label{display:flex;justify-content:space-between;gap:18px;margin-top:39px;color:#a89bbd;font-size:9px;letter-spacing:1px}.wow-project-label a{font-size:12px;letter-spacing:0;color:#ded0f0}.wow-scroll-caption{display:none;position:absolute;z-index:3;top:65px;left:12%;font:500 clamp(24px,3.2vw,48px)/1.12 'Space Grotesk',sans-serif;letter-spacing:-1.5px;opacity:0;pointer-events:none}.wow-bottom{position:absolute;left:5%;right:5%;bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #ffffff1c;padding-top:21px;font-size:9px;letter-spacing:1.7px;color:#91849f;z-index:4}.wow-bottom a{color:#cfc2e0}.wow-bottom a span{display:inline-block;margin-left:14px;font-size:17px}.wow-motion .wow-copy{will-change:transform,opacity}.wow-motion .wow-description{animation:wow-arrive .95s cubic-bezier(.16,1,.3,1) .45s both}.wow-motion .wow-projects{animation:wow-arrive 1.1s cubic-bezier(.16,1,.3,1) .25s both}@keyframes violet-sweep{0%{background-position:100% 0}100%{background-position:0% 0}}@keyframes wow-arrive{from{opacity:0;translate:0 28px;filter:blur(5px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@media(min-width:1001px){.wow-motion .hero-scroll{height:175svh;min-height:1280px}.wow-motion .wow-hero{position:sticky;top:96px;height:calc(100svh - 96px);min-height:0;max-height:none}.wow-motion .wow-copy{margin-top:clamp(32px,5vh,65px)}.wow-motion .wow-copy h1{font-size:clamp(64px,min(7.8vw,12vh),120px)}.wow-motion .wow-projects{left:calc(48% - var(--journey)*29%);width:calc(47% + var(--journey)*15%);top:calc(47% - var(--journey)*14%);max-width:1050px}.wow-motion .wow-diana{transform:translate3d(calc(var(--journey)*100px),calc(var(--journey)*-75px),-90px) rotateY(-12deg) rotateZ(8deg);opacity:calc(.75 - var(--journey)*.75)}.wow-motion .wow-maler{transform:rotateY(calc(-10deg + var(--journey)*10deg)) rotateZ(calc(-5deg + var(--journey)*5deg));box-shadow:0 30px 90px #000a,0 0 90px #9855e426}.wow-motion .wow-scroll-caption{display:block;opacity:calc((var(--journey) - .45)*1.82);transform:translateY(calc((1 - var(--journey))*20px))}.wow-motion .wow-project-label{opacity:calc((var(--journey) - .5)*2);margin-top:var(--zeilenabstand)}}
@media(min-width:1001px){.wow-motion .wow-projects{--kopf:calc(100svh - 96px);--leiste:66px;--zeilenabstand:clamp(62px,9svh,84px);--zeile:calc(var(--zeilenabstand) + 22px);--reserve:24px;--oben:clamp(198px,calc(24svh - var(--journey)*9svh),260px);--frei:max(0px,calc(var(--kopf) - var(--oben) - var(--leiste) - var(--zeile) - var(--reserve)));left:calc(53% - var(--journey)*25%);top:var(--oben);width:calc(43% + var(--journey)*15%);--barhoehe:40px;--versatz:calc(var(--barhoehe) + 30px);max-width:max(0px,calc((var(--frei) - var(--versatz))*1.7))}}
@media(min-width:1001px) and (max-height:850px){.wow-description{margin-top:23px}.wow-description>p{font-size:16px}.wow-actions{margin-top:20px;gap:13px}.wow-bottom{bottom:18px;padding-top:14px}.wow-project-label{margin-top:30px}}
@media(max-width:1000px){.wow-hero{height:auto;min-height:900px}.wow-copy{margin-top:50px}.wow-copy h1{font-size:8.4vw}.wow-projects{top:380px;left:46%;width:49%}.wow-description{max-width:340px}.wow-project-label{flex-direction:column;gap:7px}.wow-bottom{bottom:28px}.wow-hero .edition{display:none}}
@media(max-width:760px){.wow-hero{padding:27px 6% 0;min-height:0;max-height:none;height:auto}.wow-hero .hero-top .eyebrow{font-size:8px;letter-spacing:1.4px}.wow-copy{margin-top:47px}.wow-copy h1{font-size:8.8vw;letter-spacing:-.065em;line-height:1.08}.wow-description{margin-top:26px;max-width:none}.wow-description>p{font-size:16px}.wow-actions{flex-direction:row;align-items:center;gap:18px;flex-wrap:wrap;margin-top:24px}.wow-actions .button{padding:12px 18px;font-size:12px;gap:14px}.wow-secondary{font-size:12px;margin-left:0}.wow-projects{position:relative;left:auto;top:auto;width:93%;margin:100px 0 0;animation-delay:.4s!important}.wow-diana{top:-55px;width:82%;right:-6%}.wow-maler{top:0;transform:rotateY(-6deg) rotateZ(-4deg)}.wow-project-label{margin-top:28px;padding-left:6px}.wow-project-label>span{font-size:8px}.wow-project-label>a{font-size:11px}.wow-bottom{position:relative;left:auto;right:auto;bottom:auto;margin-top:30px;padding:20px 0;font-size:8px;letter-spacing:1px}.wow-bottom>span{max-width:140px}.wow-bottom a{white-space:nowrap}.violet-light{width:150%;height:80%;top:20%;right:-50%}.wow-card .window-bar{padding:8px 10px}.wow-card .window-bar span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.wow-copy,.wow-pointer{transform:none!important;opacity:1!important}.wow-copy h1.text-entered em .motion-word{animation:none!important;background:none;color:var(--purple);-webkit-text-fill-color:currentColor}.wow-motion .hero-scroll{height:auto;min-height:0}.wow-motion .wow-hero{position:relative;top:auto;min-height:790px;height:auto}.wow-motion .wow-projects{left:48%;width:47%;top:360px}.wow-motion .wow-maler{transform:none}.wow-motion .wow-diana{opacity:.75;transform:translate3d(0,0,-90px) rotateZ(8deg)}.wow-motion .wow-scroll-caption{display:none}.wow-copy,.wow-projects,.wow-description{animation:none!important}}@media(prefers-reduced-motion:reduce) and (max-width:760px){.wow-motion .wow-hero{min-height:0}.wow-motion .wow-projects{left:auto;top:auto;width:93%}}@media(forced-colors:active){.wow-copy h1.text-entered em .motion-word{background:none;color:CanvasText;-webkit-text-fill-color:CanvasText}}
.home-page .wow-copy h1{font-family:'Inter',sans-serif;font-weight:900;font-optical-sizing:auto;text-transform:uppercase;letter-spacing:0em;line-height:1.06}
.home-page .wow-copy h1 em,.home-page .wow-copy h1.text-motion em{display:inline-block;margin-top:.08em;color:#c8a5ff;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px #c8a5ff;background:none;animation:none}
.home-page .wow-copy h1.text-entered em .motion-word{background:none;color:#c8a5ff;-webkit-text-fill-color:transparent;-webkit-text-stroke:1px #c8a5ff;animation:none}
@media(max-width:760px){.home-page .wow-copy h1{font-size:7.5vw;letter-spacing:0em;line-height:1.02}.home-page .wow-copy h1 em,.home-page .wow-copy h1.text-entered em .motion-word{-webkit-text-stroke:1px #c8a5ff}}
@media(forced-colors:active){.home-page .wow-copy h1 em,.home-page .wow-copy h1.text-entered em .motion-word{-webkit-text-stroke:0;-webkit-text-fill-color:CanvasText;color:CanvasText}}

.home-page .wow-copy h1{font-size:clamp(48px,7.1vw,108px);word-spacing:.06em}
@media(min-width:1001px){.home-page .wow-copy h1{font-size:clamp(48px,min(7.1vw,11vh),108px)}}
@media(max-width:760px){.home-page .wow-copy h1{font-size:7.5vw}}

/* A silhouette outline avoids tracing overlapping variable-font contours. */
.home-page .wow-copy h1 em,.home-page .wow-copy h1.text-motion em,.home-page .wow-copy h1.text-entered em .motion-word{color:#09090d;-webkit-text-fill-color:#09090d;-webkit-text-stroke:0;background:none;text-shadow:1px 0 #c8a5ff,-1px 0 #c8a5ff,0 1px #c8a5ff,0 -1px #c8a5ff,.7px .7px #c8a5ff,-.7px -.7px #c8a5ff,.7px -.7px #c8a5ff,-.7px .7px #c8a5ff}
@media(forced-colors:active){.home-page .wow-copy h1 em,.home-page .wow-copy h1.text-motion em,.home-page .wow-copy h1.text-entered em .motion-word{color:CanvasText;-webkit-text-fill-color:CanvasText;text-shadow:none}}

/* Slanted light sweeps with a fading trail in each direction. */
.home-page .wow-copy h1 em{position:relative}
.home-page .wow-copy h1 em .hero-spark,.home-page .wow-copy h1 em .hero-spark-return{position:absolute;inset:0;display:block;pointer-events:none;color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:0;text-shadow:none;background-clip:text;-webkit-background-clip:text;background-repeat:no-repeat;background-size:300% 100%;filter:drop-shadow(0 0 2px #c7a4ff44);animation:hero-light-out 9s linear 1.3s infinite;background-image:linear-gradient(110deg,transparent 42%,#b69aff08 44%,#b69aff35 47%,#c9aaff88 49.4%,#f5eaff 50%,#c9aaff77 50.3%,transparent 50.6%)}
.home-page .wow-copy h1 em .hero-spark-return{background-image:linear-gradient(110deg,transparent 49.4%,#c9aaff77 49.7%,#f5eaff 50%,#c9aaff88 50.6%,#b69aff35 53%,#b69aff08 56%,transparent 58%);animation-name:hero-light-back}
@keyframes hero-light-out{0%,8%{background-position:100% 0;opacity:0}9%{background-position:100% 0;opacity:1}44%{background-position:0% 0;opacity:1}45%,100%{background-position:0% 0;opacity:0}}
@keyframes hero-light-back{0%,53%{background-position:0% 0;opacity:0}54%{background-position:0% 0;opacity:1}89%{background-position:100% 0;opacity:1}90%,100%{background-position:100% 0;opacity:0}}
.home-page .hatch-paused .hero-spark,.home-page .hatch-paused .hero-spark-return{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce),(forced-colors:active){.home-page .wow-copy h1 em .hero-spark,.home-page .wow-copy h1 em .hero-spark-return{display:none;animation:none}}

@media(max-width:1000px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-maler{transform:translate3d(0,calc(var(--mobile-journey,0)*-24px),0) rotateY(calc(-6deg + var(--mobile-journey,0)*6deg)) rotateZ(calc(-4deg + var(--mobile-journey,0)*4deg))}
.wow-motion .wow-diana{transform:translate3d(calc(var(--mobile-journey,0)*-24px),calc(var(--mobile-journey,0)*-48px),-40px) rotateZ(calc(8deg - var(--mobile-journey,0)*4deg));opacity:.85}
}

/* The desktop story, recomposed for a portrait viewport. */
@media(max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.violet-light{transform:none}
.wow-projects{perspective:none}
.wow-pointer{transform-style:flat}
.wow-motion .hero-scroll{height:145svh;min-height:0}
.wow-motion .wow-hero{position:sticky;top:77px;height:calc(100svh - 77px);min-height:0;max-height:none;padding:18px 6% 0}
.wow-motion .wow-copy{margin-top:24px;transform:translateY(calc(var(--journey)*-75px));opacity:clamp(0,calc(1 - var(--journey)*1.8),1)}
.wow-motion .wow-description{margin-top:18px;max-width:440px}
.wow-motion .wow-description>p{font-size:14px;line-height:1.5}
.wow-motion .wow-actions{margin-top:18px;gap:14px;flex-direction:row;align-items:center}
.wow-motion .wow-actions .button{min-height:42px;padding:10px 15px}
.wow-motion .wow-projects{position:absolute;margin:0;left:calc(9% - var(--journey)*5%);width:calc(82% + var(--journey)*10%);top:calc(60% - var(--journey)*25%);max-width:none}
.wow-motion .wow-maler{top:0;transform:rotateY(calc(-10deg + var(--journey)*10deg)) rotateZ(calc(-5deg + var(--journey)*5deg));box-shadow:0 24px 65px #0008,0 0 50px #9855e426}
.wow-motion .wow-diana{top:-42px;right:-2%;width:85%;transform:translate3d(calc(var(--journey)*35px),calc(var(--journey)*-55px),-90px) rotateZ(8deg);opacity:clamp(0,calc(.8 - var(--journey)*.95),.8)}
.wow-motion .wow-scroll-caption{display:block;top:10%;left:6%;right:6%;font-size:clamp(20px,5.2vw,34px);line-height:1.15;letter-spacing:-.025em;opacity:clamp(0,calc((var(--journey) - .45)*2.5),1);transform:translateY(calc((1 - var(--journey))*18px))}
.wow-motion .wow-project-label{margin-top:24px;font-size:9px;opacity:calc((var(--journey) - .55)*2.5)}
.wow-motion .wow-bottom{position:absolute;left:6%;right:6%;bottom:14px;margin:0;padding:14px 0 0}
}
@media(min-width:650px) and (max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){.wow-motion .wow-projects{width:calc(54% + var(--journey)*10%);left:calc(40% - var(--journey)*22%);top:calc(58% - var(--journey)*23%)}}

/* Mobile hero: fixed geometry, compositor-only movement and enlargement. */
@media(max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-projects{left:9%;top:60%;width:82%;transform-origin:top left;transform:translate3d(calc(var(--journey)*-5vw),calc(var(--journey)*(-25svh + 19.25px)),0) scale(calc(1 + var(--journey)*.121951));animation:none!important;filter:none;will-change:transform}
.wow-motion .wow-pointer{transition:none;transform:none}
.wow-motion .wow-card{backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 12px 28px #0006;filter:none}
.wow-motion .wow-maler{transform:translateZ(0) rotate(calc(-5deg + var(--journey)*5deg))}
.wow-motion .wow-diana{transform:translate3d(calc(var(--journey)*35px),calc(var(--journey)*-55px),0) rotate(8deg)}
.wow-motion .wow-description{animation:none!important}
.wow-motion .violet-light:after{display:none}
.wow-motion .wow-copy,.wow-motion .wow-scroll-caption{will-change:transform,opacity}
}
@media(min-width:650px) and (max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-projects{left:40%;top:var(--karten-start,58%);width:54%;max-width:var(--karten-breite,calc(((100svh - 77px)*0.42 - 140px)*1.807));transform:translate3d(calc(var(--journey)*-22vw),calc(var(--journey)*(-70px + 17.71px)),0) scale(calc(1 + var(--journey)*.185185))}
}

@supports (animation-timeline: scroll()){
/* Reichweite = Hoehe der Spur minus Hoehe des klebenden Kopfes, also genau
   die Strecke, die das Skript zuvor gerechnet hat. */
@media(max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-hero{animation:journey-lauf linear both;animation-duration:auto;animation-timeline:scroll(root block);animation-range:0 calc(45svh + 77px);--journey:var(--journey-auto)}
}
}

@media(min-width:1001px) and (max-height:700px){
.wow-motion .wow-scroll-caption{display:block}
.wow-motion .wow-projects{--oben:clamp(104px,calc(19svh - var(--journey)*6svh),170px)}
}

/* Die Fensterleiste der Vorschaukarten haelt eine Zeile, sonst waechst sie bei
   schmalen Karten auf ein Vielfaches und frisst die Bildflaeche. */
.wow-card .window-bar{flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
.wow-card .window-bar span{overflow:hidden;text-overflow:ellipsis}
@media(min-width:1001px) and (max-height:760px){
.wow-card .window-bar{padding:6px 11px;font-size:9px}
.wow-card .window-bar b{font-size:10px;line-height:1}
.wow-card .window-bar i{width:4px;height:4px}
.wow-motion .wow-projects{--barhoehe:30px}
}

/* Desktop repair: pixel geometry is measured on resize, transforms on scroll. */
@media(min-width:1001px) and (prefers-reduced-motion:no-preference){
.wow-motion .hero-scroll{height:175vh;min-height:900px}
.wow-motion .wow-hero{height:calc(100vh - 96px);position:-webkit-sticky;position:sticky;top:96px;min-height:0;max-height:none}
.wow-motion .wow-projects{left:0;top:0;max-width:none;margin:0;animation:none;transform-origin:top center;will-change:transform}
.wow-motion .wow-scroll-caption{display:block!important;left:6%;right:6%;top:78px;font-size:clamp(18px,min(2.5vw,4.6vh),40px);line-height:1.15;z-index:5;will-change:transform,opacity}
.wow-motion .wow-pointer{aspect-ratio:auto;height:auto;transform:none;transition:none}
.wow-motion .wow-maler{position:relative;left:auto;top:auto;width:100%}
.wow-motion .wow-diana{top:-40px}
.wow-motion .wow-project-label{margin-top:48px;opacity:1;flex-wrap:wrap;gap:8px 20px}
.wow-motion .wow-bottom{bottom:16px}
}

@media(min-width:650px) and (max-width:1000px) and (max-height:820px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-copy{margin-top:26px}
.wow-motion .wow-copy h1{font-size:clamp(32px,5.4vw,52px)}
.wow-motion .wow-description{margin-top:14px}
.wow-motion .wow-description>p{font-size:14px;line-height:1.5}
.wow-motion .wow-actions{margin-top:14px;gap:10px}
.wow-motion .wow-scroll-caption{font-size:clamp(17px,3.4vw,26px)}
}
.wow-hero.ohne-projektzeile .wow-project-label{display:none}
@media(min-width:650px) and (max-width:1000px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-project-label{margin-top:44px}
}

/* Die Karten verlassen die Szene, statt bis zum Schluss zu bleiben: Sie
   wandern zur Seite und blenden dabei aus. Die Projektzeile gehoert zu ihnen
   und geht mit. Danach gehoert der Kopf dem Text, der dabei waechst. */
@media(max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-motion .wow-projects{opacity:clamp(0,calc((.58 - var(--journey))/.24),1)}
.wow-motion .wow-projects[style]{pointer-events:auto}
.wow-motion .wow-hero .wow-scroll-caption,.wow-hero.wow-hero .wow-scroll-caption{font-size:min(calc(var(--bu-basis,24px)*(1 + var(--journey)*.75)),calc((100svh - 270px)/4.7));transform:translateY(calc((1 - var(--journey))*14px + var(--journey)*9svh))}
}
@media(max-width:649px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-hero.wow-hero .wow-scroll-caption{--bu-basis:clamp(20px,5.2vw,34px)}
}
@media(min-width:650px) and (max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-hero.wow-hero .wow-scroll-caption{--bu-basis:clamp(19px,3.4vw,28px)}
}
@media(max-width:1000px) and (min-height:600px) and (prefers-reduced-motion:no-preference){
.wow-hero.wow-hero .wow-scroll-caption{opacity:clamp(0,calc((var(--journey) - .58)/.24),1)}
}
