@keyframes wpulse{0%{--w:300}to{--w:560}}@keyframes scroll-down{0%{opacity:0;transform:scaleY(0);transform-origin:bottom}30%{opacity:1;transform:scaleY(1);transform-origin:bottom}70%{opacity:1;transform:scaleY(1);transform-origin:top}to{opacity:0;transform:scaleY(0);transform-origin:top}}@keyframes boot-blink{50%{opacity:0}}@keyframes search-flash{0%{box-shadow:0 0 0 0 var(--highlight-dim)}16%,60%{box-shadow:0 0 0 3px var(--highlight)}to{box-shadow:0 0 0 0 transparent}}@keyframes turnstile-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes status-pulse{0%,to{text-shadow:0 0 0 transparent}30%{text-shadow:0 0 18px currentColor}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes logo-draw{to{stroke-dashoffset:0}}@keyframes logo-fill{to{fill-opacity:1}}@keyframes logo-stroke-out{to{stroke-opacity:0}}@keyframes rise{to{transform:translateY(0)}}@keyframes amp-in{to{opacity:1}}@keyframes fade-up{to{opacity:1;transform:translateY(0)}}@keyframes fade-in{to{opacity:1}}@keyframes nav-draw{0%{stroke-dashoffset:1;fill-opacity:0}60%{stroke-dashoffset:0;fill-opacity:0;stroke-opacity:1}to{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:0}}@keyframes dot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.9)}}@keyframes soft-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes sun-spin{to{transform:rotate(360deg)}}@keyframes start-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes ants{to{stroke-dashoffset:-200}}@keyframes x-draw{0%{stroke-dashoffset:1;fill-opacity:0}55%{stroke-dashoffset:0;fill-opacity:0;stroke-opacity:1}to{stroke-dashoffset:0;fill-opacity:1;stroke-opacity:0}}@font-face{font-family:"Inter";src:url(../fonts/InterVariable.woff2)format("woff2-variations");font-weight:300 600;font-display:swap;font-style:normal}@font-face{font-family:"Bricolage";src:url(../fonts/BricolageGrotesque.woff2)format("woff2-variations");font-weight:200 800;font-display:swap;font-style:normal}@font-face{font-family:"Fraunces";src:url(../fonts/Fraunces.woff2)format("woff2-variations");font-weight:100 900;font-display:swap;font-style:normal}@font-face{font-family:"Fraunces";src:url(../fonts/FrauncesItalic.woff2)format("woff2-variations");font-weight:100 900;font-display:swap;font-style:italic}@font-face{font-family:"JBMono";src:url(../fonts/JetBrainsMono.woff2)format("woff2-variations");font-weight:400 600;font-display:swap;font-style:normal}*,::after,::before{margin:0;padding:0;box-sizing:border-box}:root{color-scheme:dark light;--font:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;--font-display:'Bricolage', 'Inter', sans-serif;--font-serif:'Fraunces', Georgia, serif;--font-mono:'JBMono', ui-monospace, 'SF Mono', monospace;--ease:0.3s ease;--ease-out:cubic-bezier(.16, 1, .3, 1);--step--2:clamp(0.69rem, 0.67rem + 0.11vw, 0.75rem);--step--1:clamp(0.83rem, 0.80rem + 0.15vw, 0.94rem);--step-0:clamp(0.95rem, 0.92rem + 0.20vw, 1.06rem);--step-1:clamp(1.20rem, 1.10rem + 0.55vw, 1.60rem);--step-2:clamp(1.55rem, 1.30rem + 1.20vw, 2.40rem);--step-3:clamp(2.20rem, 1.60rem + 2.90vw, 4.20rem);--step-4:clamp(1.90rem, 1.10rem + 3.60vw, 5.00rem);--hero:clamp(2.10rem, 0.90rem + 5.80vw, 6.50rem);--container:1160px;--gutter:clamp(20px, 5vw, 48px)}[data-theme=dark]{--bg:#0c0b0a;--bg-2:#14120f;--fg:#eae7e1;--fg-strong:#f6f4ef;--fg-dim:#b8b4ab;--muted:#85817a;--faint:#403d37;--line:#1f1d19;--line-bright:#2c2923;--grid-line:rgba(156, 175, 136, 0.07);--accent:#f6f4ef;--btn-bg:#f6f4ef;--btn-fg:#0c0b0a;--highlight:#9caf88;--highlight-bright:#b6c79f;--highlight-dim:rgba(156, 175, 136, 0.35);--glow-1:rgba(120, 180, 120, 0.09);--glow-2:rgba(70, 195, 140, 0.05);--glow-core:rgba(156, 175, 136, 0.26);--error:#c0392b;--warn:#e5a00d;--obj-node:#9caf88;--obj-node-hot:#b6c79f;--obj-line:rgba(156, 175, 136, 0.22);--obj-dust:rgba(156, 175, 136, 0.10);--obj-fog:#0c0b0a;--obj-blend:additive;--obj-node-alpha:0.9}[data-theme=light]{--bg:#faf9f6;--bg-2:#f2f0ea;--fg:#201e1a;--fg-strong:#14120e;--fg-dim:#4c483f;--muted:#8b877d;--faint:#d8d4cb;--line:#e6e3da;--line-bright:#d5d1c6;--grid-line:rgba(107, 127, 90, 0.10);--accent:#14120e;--btn-bg:#14120e;--btn-fg:#faf9f6;--highlight:#6b7f5a;--highlight-bright:#55694a;--highlight-dim:rgba(107, 127, 90, 0.40);--glow-1:rgba(90, 160, 100, 0.12);--glow-2:rgba(60, 175, 115, 0.08);--glow-core:rgba(107, 127, 90, 0.20);--error:#c0392b;--warn:#e5a00d;--obj-node:#46503a;--obj-node-hot:#6b7f5a;--obj-line:rgba(85, 105, 74, 0.28);--obj-dust:rgba(85, 105, 74, 0.14);--obj-fog:#faf9f6;--obj-blend:normal;--obj-node-alpha:0.85}html{scroll-behavior:auto;scroll-padding-top:72px}body{font-family:var(--font);font-size:var(--step-0);background:var(--bg);color:var(--fg);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip;position:relative;z-index:0;isolation:isolate}html.theme-transition,html.theme-transition *,html.theme-transition ::after,html.theme-transition ::before{transition:background-color .5s ease,color .5s ease,border-color .5s ease,box-shadow .5s ease,opacity .5s ease,fill .5s ease,stroke .5s ease!important}.grid-bg,[data-theme=light] body::after{position:fixed;inset:0;pointer-events:none}[data-theme=light] body::after{content:"";z-index:9999;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.17 -0.17 -0.16 0 0.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-repeat:repeat;background-size:300px 300px}a{color:inherit;text-decoration:none}svg{display:block}em{font-style:italic}.grid-bg{z-index:-1;opacity:0;transition:opacity .8s ease;background-image:linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.35)0,rgba(0,0,0,.35) 45%,rgba(0,0,0,.15) 100%);-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.35)0,rgba(0,0,0,.35) 45%,rgba(0,0,0,.15) 100%)}body:has(#nav.scrolled) .grid-bg{opacity:1}#scene-canvas{position:fixed;inset:0;z-index:0;pointer-events:none}html.no-webgl #scene-canvas{display:none}.hero-scene{z-index:1}.hero-divider,footer,main{position:relative;z-index:1}.progress,nav{position:fixed;top:0;left:0}.progress{height:2px;width:100%;background:var(--highlight);z-index:200;transform:scaleX(0);transform-origin:0 50%}.eyebrow,.hud{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;color:var(--muted)}.eyebrow{font-weight:400;letter-spacing:.14em;margin-bottom:10px}.hud{font-weight:500;letter-spacing:.08em;line-height:1.35}.display,.display-xl{font-family:var(--font-display);font-size:var(--step-2);font-weight:600;letter-spacing:-.02em;line-height:1.05;color:var(--fg-strong)}.display-xl{font-size:var(--step-3);font-weight:550;letter-spacing:-.025em;line-height:1}[data-theme=dark] .display,[data-theme=dark] .display-xl{font-variation-settings:"wght"540}.prose{font-size:var(--step--1);line-height:1.85;text-align:justify;hyphens:auto;-webkit-hyphens:auto}nav{right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:60px;transition:background .4s ease,border-color .4s ease;border-bottom:1px solid transparent}nav.scrolled{background:color-mix(in srgb,var(--bg) 85%,transparent);border-bottom-color:var(--line)}@media (pointer:fine){nav.scrolled{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}@media (pointer:coarse){nav.scrolled{background:color-mix(in srgb,var(--bg) 96%,transparent)}}.nav-logo{opacity:0;transform:translateY(-4px);transition:opacity .4s ease,transform .4s ease;pointer-events:none}nav.scrolled .nav-logo{opacity:1;transform:translateY(0);pointer-events:all}.nav-logo svg{height:16px;width:auto;color:var(--accent)}.nav-right{display:flex;align-items:center;gap:12px}.contact-btn,.search-btn,.theme-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:0 0;border:1px solid var(--line);border-radius:50%;cursor:pointer;color:var(--muted);transition:color var(--ease),border-color var(--ease)}.contact-btn:hover,.search-btn:hover,.theme-btn:hover{color:var(--fg);border-color:var(--muted)}.contact-btn svg,.search-btn svg,.theme-btn svg{width:15px;height:15px}.icon-moon,.icon-sun,.icon-system{display:none}[data-theme-mode=dark] .icon-moon,[data-theme-mode=light] .icon-sun,[data-theme-mode=system] .icon-system{display:block}#services,.hero,.hero-scene,.search-btn,.theme-btn{position:relative}.search-btn::after,.theme-btn::after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.04em;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:4px 10px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease}.search-btn:hover::after,.theme-btn:hover::after{opacity:1}html.webgl .hero-scene{height:160vh}html.webgl .hero{position:sticky;top:0}.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:96px var(--gutter) 72px;overflow:clip;background:0 0}.hero-fallback{position:absolute;inset:0;z-index:0}html.webgl .hero-fallback{display:none}.hero-glow{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;transition:background var(--ease)}.hero-glow-1,.hero-glow-2{transform:translate(-50%,-50%)}.hero-glow-1{width:560px;height:560px;background:var(--glow-1);left:50%;top:62%}.hero-glow-2{width:380px;height:380px;background:var(--glow-2);left:38%;top:40%}.hero-content{position:relative;z-index:2;text-align:center;max-width:1100px}.hero-hud{margin-bottom:26px;color:color-mix(in srgb,var(--highlight) 72%,var(--muted))}.hero-logo{display:flex;justify-content:center;margin-bottom:clamp(28px,5vh,48px)}html.no-webgl .hero-logo{will-change:transform,opacity}.hero-logo svg{height:clamp(54px,8.5vw,96px);width:auto;color:var(--accent);overflow:visible}@property --w{syntax:"<number>";inherits:false;initial-value:300}.hero-h1{font-family:var(--font-display);font-size:var(--hero);line-height:.98;letter-spacing:-.03em;font-variation-settings:"wght"var(--w, 560);color:var(--fg-strong);animation:wpulse 1.1s var(--ease-out) .35s both;margin-bottom:clamp(20px,3.4vh,34px)}@media (pointer:coarse){.hero-h1{animation:none;font-variation-settings:"wght"560}}.line-wrap{overflow:hidden;padding-block:.04em}.line,.line-wrap{display:block}.hero-h1 .amp{font-family:var(--font-serif);font-style:italic;font-weight:300;font-variation-settings:"wght"300;color:var(--highlight)}.hero-sub{font-size:var(--step-1);font-weight:350;color:var(--fg-dim);line-height:1.7;max-width:34em;margin:0 auto clamp(28px,4.5vh,44px)}.hero-actions{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}#services::before,.scroll-hint{position:absolute;left:50%;transform:translateX(-50%)}.scroll-hint{bottom:36px;transition:opacity .4s ease}.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--muted),transparent);animation:scroll-down 2s ease-in-out infinite}.hero-divider{height:1px;max-width:720px;margin:0 auto;background:linear-gradient(90deg,transparent,var(--highlight),transparent);opacity:.5}.btn,.btn-ghost{padding:12px 28px;font-family:var(--font);font-size:var(--step--1);font-weight:500;border-radius:999px;cursor:pointer}.btn{display:inline-block;letter-spacing:-.01em;color:var(--btn-fg);background:var(--btn-bg);border:0;transition:opacity var(--ease),transform var(--ease)}.btn-ghost:hover,.btn:hover{opacity:.85;transform:translateY(-1px)}.btn-ghost{display:inline-flex;align-items:center;gap:8px;color:var(--highlight);background:0 0;border:1px solid var(--highlight);transition:all .4s ease;opacity:.85}.btn-ghost:hover{opacity:1;background:color-mix(in srgb,var(--highlight) 8%,transparent);box-shadow:0 4px 20px color-mix(in srgb,var(--highlight) 10%,transparent)}.section-split{max-width:var(--container);margin:0 auto;padding:clamp(64px,9vh,112px) var(--gutter);display:grid;grid-template-columns:1fr 2fr;gap:64px}.section-label{position:sticky;top:96px;align-self:start}.section-label .eyebrow{margin-bottom:14px}.section-label::after{content:"";display:block;width:48px;height:1px;margin-top:20px;background:var(--highlight);opacity:.5}#services::before{display:none;content:"";top:-140px;width:min(720px,80vw);height:260px;border-radius:50%;background:radial-gradient(closest-side,var(--glow-1),transparent 72%);filter:blur(40px);pointer-events:none}.service{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,36px);padding:clamp(28px,4vh,44px)0;border-bottom:1px solid var(--line);position:relative}.service:first-child{padding-top:0}.service:last-child{border-bottom:none}.service-num{font-family:var(--font-mono);font-size:var(--step-2);font-weight:500;line-height:1;color:var(--highlight);opacity:.85;min-width:2ch}.service-body{min-width:0}.service-title{margin-bottom:12px}.service-head{display:flex;align-items:baseline;gap:12px;width:100%;background:0 0;border:0;cursor:pointer;padding:0;text-align:left;position:relative;font-family:var(--font-display);font-size:var(--step-1);font-weight:600;letter-spacing:-.01em;line-height:1.15;color:var(--fg-strong);transition:color var(--ease)}.service:hover .service-head{color:var(--highlight)}.service-head::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:var(--highlight-dim);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--ease-out)}.service-head[aria-expanded=true]::after{transform:scaleX(1)}.chevron{width:16px;height:16px;color:var(--muted);flex-shrink:0;margin-left:auto;align-self:center;transition:transform .3s ease,color var(--ease)}.service-head[aria-expanded=true] .chevron{transform:rotate(180deg)}.service:hover .chevron{color:var(--highlight)}.service-intro{font-size:var(--step--1);color:var(--muted);line-height:1.75;text-align:justify;hyphens:auto;-webkit-hyphens:auto;transition:color var(--ease);max-width:62ch}.service:hover .service-details li,.service:hover .service-intro{color:var(--fg)}.service-details{max-height:0;overflow:hidden;transition:max-height .4s ease,opacity .3s ease;opacity:0}.service-details.open{opacity:1}.service-details ul{list-style:none;padding:14px 0 4px}.service-details li,.services-more p{font-size:var(--step--1);color:var(--muted);line-height:1.6}.service-details li{padding:5px 0 5px 18px;position:relative;transition:color var(--ease)}.inline-link{color:var(--highlight);text-decoration:underline;text-decoration-color:var(--highlight-dim);text-underline-offset:3px;transition:text-decoration-color var(--ease)}.inline-link:hover{text-decoration-color:var(--highlight)}.service-details li::before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:var(--highlight);transform:translateY(-50%)}.quote-scene,.services-more{display:flex;align-items:center}.services-more{justify-content:space-between;gap:16px 24px;flex-wrap:wrap;padding-top:clamp(24px,3.5vh,36px)}.services-more p{max-width:44ch}#kunden{display:block;scroll-margin-top:28px}.quote-scene{position:relative;min-height:58vh;flex-direction:column;justify-content:center;padding:96px var(--gutter);text-align:center}.quote-text{font-family:var(--font-serif);font-style:italic;font-size:var(--step-4);font-weight:380;font-variation-settings:"wght"380;letter-spacing:-.015em;line-height:1.12;color:var(--fg-strong);max-width:22ch}.quote-text .wipe{display:block;text-wrap:balance}.about-item:hover h3,.project-card:hover h3,.q-accent,.search-quick-item:hover svg,.tifeed-claim em{color:var(--highlight)}.js.booted .hero-hud,.js.booting .hero-hud{animation:none;opacity:1;transform:none}.hud-slash{letter-spacing:0}.hud-slash-b{margin-right:.62em}.js.booting .hud-slash-b{animation:boot-blink 1.06s steps(1,end) infinite}.js.booting #hero-hud.is-typing .hud-slash-b{animation:none;opacity:1}.hud-txt{position:relative;display:inline-block;text-align:left}.js.booting .hud-final{visibility:hidden}.hud-boot{display:none}.js.booting .hud-boot{display:inline;position:absolute;left:0;top:0;white-space:pre}.js.booting .hero-actions,.js.booting .hero-h1 .amp,.js.booting .hero-h1 .line,.js.booting .hero-logo .wm-fill path,.js.booting .hero-logo .wm-stroke path,.js.booting .hero-sub,.js.booting .scroll-hint{animation-play-state:paused}.pi-brand{display:grid;place-items:center}.pi-mark{width:var(--mark-w, 46%);aspect-ratio:var(--mark-ar, 1);background:var(--mark-fg);-webkit-mask:var(--mark) center/contain no-repeat;mask:var(--mark) center/contain no-repeat;transition:transform .4s ease}.project-card:hover .pi-mark{transform:scale(1.03)}.js .project-card .pi-mark{opacity:0;transition:opacity 1.6s var(--ease-out) .35s,transform .4s ease}.js .project-card.in .pi-mark{opacity:1}.pi-img{background:0 0;-webkit-mask:none;mask:none;width:78%;height:auto;aspect-ratio:auto}.pi-seeliebi{background:#fdf9f3;--mark:url(../images/mark-seeliebi.svg);--mark-ar:520/521;--mark-w:38%;--mark-fg:#0D5C4A}.pi-pelikan{background:#faf6f0;--mark:url(../images/mark-pelikan.svg);--mark-ar:520/662;--mark-w:30%;--mark-fg:#B8913F}.pi-archilotl{background:#f2f0ec;--mark:url(../images/mark-archilotl.svg);--mark-ar:2602/2812;--mark-w:30%;--mark-fg:#1c1c1a}.pi-tortenwerk{background:#f6efe7}.pi-quad{width:48%}.pi-continental{background:#1c1a19}.pi-knipsmi{background:#f4f2ec}.k-stack{display:grid;width:64%;aspect-ratio:auto;background:0 0;-webkit-mask:none;mask:none}.k-stack img{grid-area:1/1;width:100%;height:auto;transition:opacity .45s ease}.k-stack .k-light{opacity:0}.k-stack .k-dark,[data-theme=light] .k-stack .k-light{opacity:1}[data-theme=light] .k-stack .k-dark{opacity:0}[data-theme=dark] .pi-seeliebi{background:#14262b;--mark-fg:#4f9d85}[data-theme=dark] .pi-pelikan{background:#221f1a;--mark-fg:#C9A253}[data-theme=dark] .pi-archilotl{background:#1a1a19;--mark-fg:#cfcdc6}[data-theme=dark] .pi-tortenwerk{background:#2b211c}.pi-continental{background:#efece7}[data-theme=dark] .pi-continental{background:#1c1a19}[data-theme=dark] .pi-knipsmi{background:#1e2620}.tifeed{max-width:var(--container);margin:0 auto;padding:clamp(64px,9vh,112px) var(--gutter)}.tifeed-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,72px);align-items:start}.tifeed-claim{font-family:var(--font-serif);font-size:var(--step-2);font-weight:400;line-height:1.12;letter-spacing:-.015em;color:var(--fg-strong);margin:20px 0 0}.tifeed-claim em{font-style:italic}.tifeed-lede{font-size:var(--step-0);line-height:1.7;color:var(--fg-dim);max-width:56ch}.tifeed-lede strong{color:var(--fg-strong);font-weight:550}.tifeed-actions{margin-top:34px}.about-item{padding:clamp(24px,3.5vh,40px)0;border-bottom:1px solid var(--line)}.about-item:first-child{padding-top:0}.about-item:last-of-type{border-bottom:none}.about-item h3,.step h3{font-family:var(--font-display);color:var(--fg-strong)}.about-item h3{display:flex;align-items:center;gap:14px;font-size:var(--step-1);font-weight:600;letter-spacing:-.01em;margin-bottom:14px;transition:color var(--ease)}.marker{display:inline-block;width:22px;height:1.5px;background:var(--highlight);flex-shrink:0;transform:scaleX(0);transform-origin:0 50%;transition:transform .8s var(--ease-out) .2s}.in .marker{transform:scaleX(1)}.about-item .prose,.about-note p,.footer-credit a:hover{color:var(--fg)}.about-note{margin-top:24px;padding-top:8px}.about-note h4{font-family:var(--font-mono);font-size:var(--step--2);font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}.about-note p{font-size:var(--step--1);line-height:1.7;opacity:.8;max-width:60ch}.projects{max-width:var(--container);margin:0 auto;padding:clamp(64px,9vh,112px) var(--gutter)}.projects-header{margin-bottom:clamp(48px,8vh,88px)}.projects-header .display-xl{margin-bottom:16px}.projects-header-sub{margin-top:clamp(72px,11vh,128px);margin-bottom:clamp(32px,5vh,56px);padding-top:clamp(40px,6vh,64px);border-top:1px solid var(--line)}.projects-header-sub .display{margin-bottom:14px}.project-card p,.projects-intro{font-size:var(--step--1);color:var(--muted)}.projects-intro{line-height:1.7;max-width:52ch}.scrolly{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);margin-bottom:clamp(64px,10vh,120px)}.stage{position:sticky;top:0;height:100svh;display:grid;place-items:center;margin:0}.stage-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--bg-2);box-shadow:0 12px 48px rgba(0,0,0,.1)}[data-theme=dark] .stage-frame{box-shadow:0 12px 48px rgba(0,0,0,.35)}.stage-art{position:absolute;inset:0;transition:opacity .6s ease,transform .6s var(--ease-out)}.stage[data-scene="0"] .stage-badi,.stage[data-scene="1"] .stage-wehen,.stage[data-scene="2"] .stage-wehen,.stage[data-scene="3"] .stage-badi,.stage[data-scene="4"] .stage-badi{opacity:0;transform:scale(.985)}.contact-card-close svg,.pi{width:100%;height:100%}.project-image .pi,.stage-art .pi{position:absolute;inset:0}.pi.svg-dark,.pi.svg-light{opacity:0;transition:opacity .45s ease}.pi.svg-dark{opacity:1}[data-theme=light] .pi.svg-light{opacity:1}[data-theme=light] .pi.svg-dark{opacity:0}.step,.steps{display:flex;flex-direction:column}.step{min-height:48vh;justify-content:center;gap:6px;opacity:.1;transform:translateY(14px);transition:opacity .38s ease,transform .45s var(--ease-out)}.step.active{opacity:1;transform:none}.step.passed{transform:translateY(-14px)}.step h3{font-size:var(--step-2);font-weight:550;letter-spacing:-.02em;line-height:1.05;margin-bottom:10px}.step-text{font-size:var(--step-0);color:var(--fg);line-height:1.7;max-width:42ch}.project-card h3,.step-text-lg{font-family:var(--font-display);letter-spacing:-.01em}.step-text-lg{font-size:var(--step-1);font-weight:450;line-height:1.4;color:var(--fg-strong);max-width:30ch}.pi-todo span,.step-link{font-family:var(--font-mono)}.step-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:var(--step--1);color:var(--highlight);border-bottom:1px solid var(--highlight-dim);padding-bottom:2px;width:fit-content;transition:border-color var(--ease),opacity var(--ease);opacity:.9}.step-link:hover{opacity:1;border-bottom-color:var(--highlight)}.projects-track{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,40px) 24px}.project-card{display:block;color:inherit;cursor:pointer;border-radius:12px;padding:12px;margin:-12px;transition:transform .4s ease,box-shadow .4s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px rgba(0,0,0,.08)}[data-theme=dark] .project-card:hover{box-shadow:0 8px 32px rgba(0,0,0,.3)}.project-image{position:relative;width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:var(--line);margin-bottom:14px;transform:translateZ(0)}.pi-todo{position:absolute;inset:0;display:grid;place-items:center;background:repeating-linear-gradient(-45deg,transparent 0 11px,color-mix(in srgb,var(--highlight) 6%,transparent) 11px 12px);transition:transform .4s ease}.pi-todo span{font-size:var(--step--2);letter-spacing:.1em;color:var(--muted);padding:7px 12px;border:1px solid var(--line-bright);border-radius:4px;background:var(--bg);transition:color var(--ease),border-color var(--ease)}.project-card:hover .pi-todo,.project-card:hover .project-image .pi,[data-theme=dark] .project-card:hover .project-image .svg-light,[data-theme=light] .project-card:hover .project-image .svg-dark{transform:scale(1.03)}.project-card:hover .pi-todo span{color:var(--highlight);border-color:var(--highlight-dim)}.project-image .pi{transition:opacity .45s ease,transform .4s ease}.project-card h3{font-size:var(--step-0);font-weight:550;margin-bottom:6px;transition:color var(--ease);display:flex;align-items:center;justify-content:space-between;gap:8px}.project-card p{line-height:1.6}.project-card-note{cursor:default}.project-card-note:hover{transform:none;box-shadow:none}.project-card h3,.project-card-note:hover h3{color:var(--fg-strong)}.project-card-note:hover .pi-todo{transform:none}.project-card-note:hover .pi-todo span{color:var(--muted);border-color:var(--line-bright)}.project-card-soon{pointer-events:none;cursor:default;position:relative;opacity:.65}.project-card-soon .project-image::after{content:"In Entwicklung";position:absolute;top:32px;right:-50px;width:200px;background:var(--error);color:#fff;font-family:var(--font-mono);font-size:.58rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:6px 0;transform:rotate(45deg);z-index:1;text-align:center;text-indent:10px;line-height:1}.project-phase-link{pointer-events:auto;cursor:pointer;transition:opacity .3s ease}.project-phase-link:hover{opacity:1}.project-phase{font-family:var(--font-mono);font-size:var(--step--2);font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--highlight);border:1px solid var(--highlight);border-radius:3px;padding:2px 6px;opacity:.6;white-space:nowrap}.contact{max-width:var(--container);margin:0 auto;padding:48px var(--gutter) 140px}.contact-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:999;opacity:0;pointer-events:none;transition:opacity .4s ease}@media (pointer:coarse){.contact-backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(0,0,0,.55)}}.contact-backdrop.active{opacity:1;pointer-events:auto}.contact-card{position:relative;overflow:visible;border:1px solid var(--line);border-radius:16px;padding:56px 56px 48px;background:color-mix(in srgb,var(--fg) 3%,var(--bg));box-shadow:0 2px 8px rgba(0,0,0,.06),0 12px 40px rgba(0,0,0,.04)}.contact-card.expanded{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;width:92vw;max-width:1080px;max-height:90vh;overflow-y:auto;overflow-x:visible;padding:64px 64px 56px;box-shadow:0 8px 32px rgba(0,0,0,.15),0 32px 80px rgba(0,0,0,.12)}.contact-card-placeholder{visibility:hidden}.contact-card-close{display:none;position:absolute;top:16px;right:16px;width:32px;height:32px;padding:6px;border:0;background:0 0;color:var(--muted);cursor:pointer;border-radius:6px;transition:color var(--ease),background var(--ease);z-index:1}.contact-card-close:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 8%,transparent)}.contact-card.expanded .contact-card-close{display:block}[data-theme=dark] .contact-card{box-shadow:0 2px 8px rgba(0,0,0,.3),0 16px 48px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.03)}[data-theme=dark] .contact-card.expanded{box-shadow:0 8px 32px rgba(0,0,0,.5),0 32px 80px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.05)}.search-backdrop{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:rgba(0,0,0,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:999;opacity:0;pointer-events:none;transition:opacity .32s ease}@media (pointer:coarse){.search-backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(0,0,0,.55)}}.search-backdrop.active{opacity:1;pointer-events:auto}.search-panel{width:92vw;max-width:620px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--fg) 3%,var(--bg));box-shadow:0 8px 32px rgba(0,0,0,.15),0 32px 80px rgba(0,0,0,.12);overflow:hidden;transform:translateY(-8px);transition:transform .32s var(--ease-out)}.search-backdrop.active .search-panel{transform:none}[data-theme=dark] .search-panel{box-shadow:0 8px 32px rgba(0,0,0,.5),0 32px 80px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.05)}.search-field{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.search-ico{width:20px;height:20px;color:var(--muted);flex:none}.search-input{flex:1;border:0;background:0 0;outline:0;color:var(--fg-strong);font-family:var(--font);font-size:var(--step-1);padding:0}.phone-prefix-search::placeholder,.search-input::placeholder{color:var(--muted)}.search-esc{font-family:var(--font-mono);font-size:var(--step--2);color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:3px 7px;cursor:pointer;flex:none}.search-results{list-style:none;margin:0;padding:6px;max-height:56vh;overflow-y:auto}.search-hit{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-radius:10px;cursor:pointer}.search-hit.is-active{background:color-mix(in srgb,var(--fg) 7%,transparent)}.search-hit-main{min-width:0}.search-hit-title{display:block;color:var(--fg-strong);font-weight:500;font-size:var(--step-0)}.search-hit-desc{display:block;font-size:var(--step--1);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-hit mark{background:var(--highlight-dim);color:inherit;border-radius:2px;padding:0 1px}.search-hit-desc,.search-hit-ext,.search-hit-label{color:var(--muted)}.search-hit-label{flex:none;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase}.search-quick{padding:12px 14px 6px}.search-quick-label{margin:0 0 9px;padding:0 6px;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.search-quick-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.search-quick-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:15px 8px 13px;border:1px solid var(--line);border-radius:11px;background:0 0;color:var(--fg-strong);cursor:pointer;font:inherit;text-align:center;transition:border-color var(--ease),background var(--ease),transform .2s var(--ease-out)}.search-quick-item:hover{border-color:var(--muted);background:color-mix(in srgb,var(--fg) 5%,transparent)}.search-quick-item svg{width:21px;height:21px;color:var(--muted);transition:color var(--ease)}.search-quick-t{font-size:var(--step-0);font-weight:500}.search-hint{margin:0;padding:14px 20px;color:var(--muted);font-size:var(--step--1);border-top:1px solid var(--line)}@media (prefers-reduced-motion:reduce){.search-backdrop,.search-panel{transition:none}.search-panel{transform:none}}.search-flash{animation:search-flash 1.7s var(--ease-out)}@media (prefers-reduced-motion:reduce){.search-flash{animation:none}}.contact-header{margin-bottom:40px}.contact-header h2{font-family:var(--font-display);font-size:var(--step-2);font-weight:600;letter-spacing:-.025em;color:var(--fg-strong);margin-bottom:12px}.contact-intro{font-size:var(--step--1);color:var(--muted);line-height:1.7;max-width:600px}.contact-form{display:flex;flex-direction:column}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.contact-fields{display:grid;grid-template-columns:3fr 2fr;gap:0 32px;align-items:stretch}.contact-fields textarea,.contact-fields>.contact-fields-right>input{font-family:var(--font);font-size:max(.92rem,16px);color:var(--fg);background:0 0;border:1px dashed var(--line);border-radius:8px;padding:16px 18px;outline:0;transition:border-color .4s ease;resize:none;letter-spacing:-.01em;width:100%}.textarea-wrap{position:relative;min-height:100%}.textarea-wrap textarea{min-height:100%;width:100%;box-sizing:border-box;line-height:1.6}.char-count{position:absolute;bottom:10px;right:12px;font-family:var(--font-mono);font-size:11px;color:var(--muted);opacity:0;transition:opacity .2s;pointer-events:none}.char-count.visible{opacity:1}.char-count.warn{color:var(--warn)}.contact-fields-right{display:flex;flex-direction:column;justify-content:space-between;gap:12px}.contact-fields input::placeholder,.contact-fields textarea::placeholder,.phone-field input[type=tel]::placeholder{color:var(--muted);font-weight:400}.contact-fields textarea:focus,.contact-fields>.contact-fields-right>input:focus{border-color:var(--highlight);outline:0}.phone-field{display:flex;align-items:stretch;border:1px dashed var(--line);border-radius:8px;transition:border-color .4s ease}.phone-field.focused{border-color:var(--highlight)}.phone-prefix-wrap{position:relative;flex-shrink:0}.phone-prefix-trigger{font-family:var(--font);font-size:max(.85rem,16px);color:var(--fg);background:0 0;border:0;border-right:1px dashed var(--line);padding:16px 14px 16px 18px;cursor:pointer;white-space:nowrap;transition:color .2s ease;height:100%}.phone-prefix-trigger:hover{color:var(--highlight)}.phone-prefix-dropdown{display:none;position:absolute;top:calc(100% + 6px);left:-1px;width:260px;background:var(--bg);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.25);z-index:100;overflow:hidden}.phone-prefix-dropdown.open{display:flex;flex-direction:column}.phone-prefix-search,.phone-prefix-search:focus{font-family:var(--font);font-size:max(.82rem,16px);color:var(--fg);background:0 0;border:0!important;outline:0!important;box-shadow:none!important;padding:12px 14px}.phone-prefix-list{max-height:200px;overflow-y:auto;padding:4px}.phone-prefix-item{font-family:var(--font);font-size:.8rem;color:var(--fg);padding:8px 12px;border-radius:6px;cursor:pointer;white-space:nowrap;display:flex;justify-content:space-between;gap:8px;transition:background .15s ease}.phone-prefix-item.highlighted,.phone-prefix-item:hover{background:color-mix(in srgb,var(--highlight) 12%,transparent)}.phone-prefix-item.active{color:var(--highlight)}.phone-prefix-separator{height:1px;background:var(--line);margin:4px 0}.phone-prefix-item-name{overflow:hidden;text-overflow:ellipsis}.phone-prefix-item-dial{color:var(--muted);flex-shrink:0;font-family:var(--font-mono);font-size:.72rem}.phone-field input[type=tel]{flex:1;font-family:var(--font);font-size:max(.92rem,16px);color:var(--fg);background:0 0;border:0;padding:16px 18px;outline:0;letter-spacing:-.01em;min-width:0}.cf-turnstile{display:flex;justify-content:flex-start;margin-top:24px}.cf-turnstile iframe{border-radius:10px!important;box-shadow:0 4px 24px rgba(0,0,0,.12);animation:turnstile-in .4s ease}.form-footer{display:flex;align-items:center;justify-content:space-between;padding-top:32px;gap:16px}.form-footer-left{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.form-status{font-size:var(--step--1);font-weight:400;min-height:1.2em}.form-status-success{color:var(--highlight);animation:status-pulse 1.2s ease 1}.form-status-error{color:var(--error)}#contact-submit:disabled{opacity:.5;cursor:wait}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:4px}footer{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:var(--container);margin:0 auto;padding:48px var(--gutter) 40px;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--line)}.footer-logo{height:20px;color:var(--faint);overflow:visible}.footer-credit{font-size:.66rem;color:var(--muted);opacity:.6}.footer-credit a{color:var(--muted);transition:color .2s ease}@media (max-width:900px){.section-split{grid-template-columns:1fr;gap:36px;padding:72px var(--gutter)}.section-label{position:static}.section-label::after{display:none}.scrolly{grid-template-columns:1fr;gap:0}.stage{height:auto;top:60px;z-index:2;padding:12px 0;background:color-mix(in srgb,var(--bg) 96%,transparent)}.stage-frame{max-height:52vh;margin:0 auto}.step{min-height:46vh}.tifeed{padding:72px var(--gutter)}.tifeed-inner{grid-template-columns:1fr;gap:28px;align-items:start}.tifeed-lede{max-width:none}.projects-track{grid-template-columns:repeat(2,1fr)}.contact{padding:48px var(--gutter) 96px}.contact-card{padding:40px 40px 36px}.contact-fields{grid-template-columns:1fr;gap:16px 0}footer{padding:32px var(--gutter) 28px}}@media (max-width:600px){.quote-text{font-size:clamp(1.5rem,6.4vw,2.4rem)}nav{padding:0 20px}html.webgl .hero-scene{height:142vh}.hero{padding:90px 20px 60px}.hero-glow-1{width:340px;height:340px}.hero-glow-2{width:280px;height:280px}.hero-logo{margin-bottom:32px}.hero-logo svg{height:56px}.hero-actions{gap:10px}.quote-scene{min-height:50vh;padding:64px 20px}.service{grid-template-columns:1fr;gap:8px}.service-num{font-size:var(--step-1)}.service:hover .service-details li,.service:hover .service-intro{color:var(--muted)}.about-item:hover h3,.service:hover .service-head{color:var(--fg-strong)}.projects-track{grid-template-columns:1fr;gap:44px}.step{min-height:42vh}.contact{padding:32px 20px 72px}.contact-card{padding:32px 24px 28px;border-radius:12px}.textarea-wrap textarea{min-height:160px}.contact-fields input,.contact-fields textarea,.phone-field input[type=tel],.phone-prefix-search{font-size:16px!important}.cf-turnstile{margin-top:20px}.form-footer{flex-direction:column;gap:20px;padding-top:24px}.form-footer,.form-footer-left{align-items:stretch}.form-footer-left .btn{width:100%;text-align:center}.form-footer footer{padding:24px 20px;gap:6px}.scroll-hint{bottom:24px}}:focus-visible{outline:2px solid var(--highlight);outline-offset:2px}::selection{background:var(--highlight);color:#fff}.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease-out) calc(var(--i, 0)*90ms),transform .8s var(--ease-out) calc(var(--i, 0)*90ms)}.js .reveal.in{opacity:1;transform:none}.js .hero-logo .wm-fill path{fill-opacity:0;animation:logo-fill 1.4s ease 4.3s forwards}.js .hero-logo .wm-stroke path{stroke:currentColor;stroke-width:3;stroke-dasharray:1;stroke-dashoffset:1;animation:logo-draw 4.4s cubic-bezier(.45,.05,.35,1) .15s forwards,logo-stroke-out 1.4s ease 4.3s forwards}.js .line{transform:translateY(112%);animation:rise .9s var(--ease-out) both}.js .line.l1{animation-delay:.12s}.js .line.l2{animation-delay:.26s}.js .hero-h1 .amp{opacity:0;animation:amp-in .7s ease .45s both}.js .anim{opacity:0;transform:translateY(14px);animation:fade-up .8s var(--ease-out) both}.js .anim-d3{animation-delay:.6s}.js .anim-d4{animation-delay:.78s}.js .scroll-hint{opacity:0;animation:fade-in .8s ease 1.6s both}.js .scroll-hint.done{animation:none;opacity:1}.js #nav.drawn .nav-logo path{stroke:currentColor;stroke-width:4;stroke-dasharray:1;animation:nav-draw .9s var(--ease-out) both}.js .hero-divider{transform:scaleX(0);transform-origin:center;transition:transform 1.4s var(--ease-out)}.js .hero-divider.in{transform:scaleX(1)}.js .quote-scene .wipe{clip-path:inset(-10% 100% -10%0);transition:clip-path 1s var(--ease-out) calc(var(--i, 0)*150ms + 150ms)}.js .quote-scene.in .wipe{clip-path:inset(-10% -2% -10%0)}.js .quote-scene.reveal{transform:none}.draw{stroke-dasharray:1}.js .project-card .draw,.js .stage .draw{stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease-out) var(--d, 0s)}.js .project-card .t,.js .stage .t{opacity:0;transform:translateY(10px);transition:opacity 1.15s var(--ease-out) calc(var(--i, 0)*150ms),transform 1.15s var(--ease-out) calc(var(--i, 0)*150ms)}.stage:is([data-scene="1"],[data-scene="2"]) .stage-badi .t{opacity:1;transform:none}.stage:is([data-scene="1"],[data-scene="2"]) .stage-badi .b-waves .draw{stroke-dashoffset:0}.js .stage .b-area{opacity:0;transition:opacity .9s ease .5s}.js .stage .b-dot{opacity:0;transition:opacity .4s ease .9s}.js .stage .b-trend{transition-duration:1.4s}.stage[data-scene="2"] .stage-badi .b-trend{stroke-dashoffset:0}.stage[data-scene="2"] .stage-badi .b-area{opacity:1}.stage[data-scene="2"] .stage-badi .b-dot{opacity:1;transform-box:fill-box;transform-origin:center;animation:dot-pulse 1.6s ease 1.2s 3}.stage[data-scene="2"] .stage-badi .b-transit{animation:soft-pulse 2s ease 1s 2}.b-sun,.ha-dot,.p-icon,.w-start{transform-box:fill-box;transform-origin:center}.stage:is([data-scene="1"],[data-scene="2"]) .stage-badi .b-sun{animation:sun-spin 26s linear infinite}.js .stage .w-progress{transform:scaleX(0);transform-box:fill-box;transform-origin:left center;transition:transform 1.3s var(--ease-out) .35s}.js .stage .w-row{opacity:0;transform:translateX(-6px);transition:opacity .55s var(--ease-out) calc(var(--i, 0)*90ms + .25s),transform .55s var(--ease-out) calc(var(--i, 0)*90ms + .25s)}.stage:is([data-scene="3"],[data-scene="4"]) .stage-wehen .t{opacity:1;transform:none}.stage:is([data-scene="3"],[data-scene="4"]) .stage-wehen .w-progress{transform:scaleX(1)}.stage:is([data-scene="3"],[data-scene="4"]) .stage-wehen .w-row{opacity:1;transform:none}.js .stage .w-shield{fill-opacity:0;transition:stroke-dashoffset 1s var(--ease-out),fill-opacity .7s ease .7s}.js .stage .w-check{transition-delay:.55s}.js .stage .w-arr1{transition-delay:.75s}.js .stage .w-arr2{transition-delay:.9s}.js .stage .w-pdf{opacity:0;transform:translateY(6px);transition:opacity .7s var(--ease-out) .3s,transform .7s var(--ease-out) .3s}.stage[data-scene="4"] .stage-wehen .w-shield{stroke-dashoffset:0;fill-opacity:1}.stage[data-scene="4"] .stage-wehen .w-arr1,.stage[data-scene="4"] .stage-wehen .w-arr2,.stage[data-scene="4"] .stage-wehen .w-check{stroke-dashoffset:0}.project-card.in .t,.stage[data-scene="4"] .stage-wehen .w-pdf{opacity:1;transform:none}.stage[data-scene="4"] .stage-wehen .w-start{animation:start-pulse 1.8s ease .6s 3}.project-card.in .ha-dot{animation:dot-pulse 1.4s ease calc(var(--i, 0)*80ms + .7s)1}.js .project-card .m-b{opacity:0;transform:translateY(7px);transition:opacity .6s var(--ease-out) calc(var(--i, 0)*170ms + .15s),transform .6s var(--ease-out) calc(var(--i, 0)*170ms + .15s)}.project-card.in .m-b{opacity:1;transform:none}.js .project-card .m-arrow{transition-delay:.75s;transition-duration:1s}.project-card.in .m-arrow{stroke-dashoffset:0}.project-card.in .z-zone{animation:ants 14s linear infinite}.js .project-card .u-ring{stroke-dasharray:0 88;transition:stroke-dasharray 1.4s var(--ease-out) .4s}.project-card.in .u-ring{stroke-dasharray:50 88}.js .project-card .u-body{opacity:0;transition:opacity .9s ease .55s}.project-card.in .u-body{opacity:1}.js .project-card .p-icon{opacity:0;transform:scale(.55);transition:opacity .5s var(--ease-out) calc(var(--i, 0)*55ms + .2s),transform .5s var(--ease-out) calc(var(--i, 0)*55ms + .2s)}.project-card.in .p-icon{opacity:1;transform:scale(1)}.js .project-card .p-island{opacity:0;transition:opacity .8s ease .1s}.project-card.in .p-island{opacity:1}@media (hover:hover) and (min-width:601px){.project-card:hover .m-arrow{animation:re-draw 1s var(--ease-out)}.project-card:hover .u-ring{animation:ring-sweep 1.2s var(--ease-out)}@keyframes re-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes ring-sweep{0%{stroke-dasharray:0 88}to{stroke-dasharray:50 88}}}.footer-x{stroke-dasharray:1}.js footer.in .footer-x{stroke:currentColor;stroke-width:3;animation:x-draw 1.4s var(--ease-out) both}@supports (animation-timeline:scroll()){.js.no-webgl .hero-content,.progress{animation:grow-x linear both;animation-timeline:scroll(root block)}@keyframes grow-x{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.js.no-webgl .hero-content{animation:hero-park linear both;animation-range:0 70vh}@keyframes hero-park{to{transform:translateY(-56px) scale(.985);opacity:.1}}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}html{scroll-behavior:auto}.js .anim,.js .hero-h1 .amp,.js .project-card .m-b,.js .project-card .p-icon,.js .project-card .p-island,.js .project-card .pi-mark,.js .project-card .t,.js .project-card .u-body,.js .quote-scene .wipe,.js .reveal,.js .stage .b-area,.js .stage .b-dot,.js .stage .t,.js .stage .w-pdf,.js .stage .w-row{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important}.hero-h1,.js .line{animation:none!important}.js .line{transform:none!important}.hero-h1{font-variation-settings:"wght"560}#scene-canvas{position:absolute;inset:0 0 auto 0;height:100vh;height:100svh}html.webgl .hero-scene{height:auto;min-height:100svh}html.webgl .hero{position:relative}.js .nav-logo{opacity:1!important;transform:none!important;pointer-events:all}.hero-glow{display:none}.draw,.js .project-card .draw,.js .stage .draw{stroke-dashoffset:0!important}.js #nav.drawn .nav-logo path,.js .hero-logo path,.js footer.in .footer-x{animation:none!important;fill-opacity:1!important;stroke-opacity:0!important}.js .hero-divider,.js .stage .w-progress{transform:none!important}.js .stage .w-shield{fill-opacity:1!important}.js .project-card .u-ring{stroke-dasharray:50 88!important}.b-sun,.b-transit,.ha-dot,.js .hero-content,.optional-loop,.w-start,.z-zone{animation:none!important}.scroll-hint{display:none}.grid-bg{opacity:.5}.step{opacity:1!important;filter:none!important;transform:none!important}}