@font-face{font-family:Recursive;src:url(/fonts/recursive-latin.woff2)format("woff2");font-weight:400 900;font-display:swap;unicode-range:U+20-7E,U+A0-FF,U+2013-2014,U+2018-201E,U+2026,U+2192,U+20AC}@font-face{font-family:Recursive;src:url(/fonts/recursive-latin-ext.woff2)format("woff2");font-weight:400 900;font-display:swap;unicode-range:U+104-107,U+118-119,U+141-144,U+15A-15B,U+179-17C}@font-face{font-family:Hanken Grotesk;src:url(/fonts/hanken-latin.woff2)format("woff2");font-weight:400 600;font-display:swap;unicode-range:U+20-7E,U+A0-FF,U+2013-2014,U+2018-201E,U+2026,U+2192,U+20AC}@font-face{font-family:Hanken Grotesk;src:url(/fonts/hanken-latin-ext.woff2)format("woff2");font-weight:400 600;font-display:swap;unicode-range:U+104-107,U+118-119,U+141-144,U+15A-15B,U+179-17C}:root{--bg:#181a18;--bg-deep:#11130f;--fg:#efefe5;--muted:#a9aa9f;--line:#34372f;--copper:#d0aa7d;--violet:#8b5cf6;--red:#e01c2e;--f-mark:"Recursive", ui-sans-serif, system-ui, sans-serif;--f-text:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--f-data:"Recursive", ui-monospace, "SFMono-Regular", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font:400 1rem/1.55 var(--f-text);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}a{color:inherit}img{max-width:100%}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--copper);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{gap:clamp(36px,6vw,72px);max-width:72rem;margin:0 auto;padding-block:clamp(16px,3vw,32px) 40px;display:grid}.top{font:400 .8rem/1.4 var(--f-data);color:var(--muted);justify-content:space-between;align-items:baseline;gap:16px;display:flex}.top a{text-decoration:none}.langs{gap:14px;display:flex}.langs a{text-transform:uppercase}.langs a:hover,.langs a[aria-current]{color:var(--fg)}header{gap:14px;display:grid}.identity{font:600 .95rem/1 var(--f-mark);letter-spacing:.01em;margin:0}.mark{touch-action:pan-y;-webkit-user-select:none;user-select:none;container-type:inline-size}.mark[role=button]{cursor:pointer}.box{height:44cqw;position:relative}.base,.lay,.grid-layer,.lens-layer{position:absolute;inset:0}.cell{position:absolute;overflow:hidden}.cell .inner{will-change:transform;position:absolute}.name{font:820 20.5cqw/.86 var(--f-mark);letter-spacing:-.035em;margin:0;padding-top:1.2cqw}.name span{display:block}.name span+span{padding-left:11cqw}svg.mb{width:100%;height:100%;position:absolute;inset:0;overflow:visible}svg.mb path{fill:none;stroke:var(--fg);stroke-width:46px;stroke-linejoin:miter;stroke-miterlimit:3}svg.mb .stem{stroke:var(--violet)}.role{font:500 clamp(1.2rem, 2.4vw, 1.65rem)/1.3 var(--f-text);text-wrap:balance;max-width:30ch;margin:clamp(10px,1.5vw,18px) 0 0}@media (prefers-reduced-motion:reduce){.cell .inner{will-change:auto}}.bands{pointer-events:none;position:absolute;inset:0}.band{opacity:0;transform-origin:50% 100%;height:100%;position:absolute;top:0;overflow:hidden}.band .lay{height:100%;position:absolute;top:0}.fig1{margin:clamp(6px,1.5vw,18px) 0 0}.trace{width:100%;height:clamp(56px,9vw,110px);display:block;overflow:visible}.trace .days line{stroke:var(--line);stroke-width:1px;vector-effect:non-scaling-stroke}.trace .t{fill:none;stroke:var(--fg);stroke-width:1.3px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.trace .pk{stroke:var(--red);stroke-width:8px;stroke-linecap:round;vector-effect:non-scaling-stroke}.fig1 figcaption{font:400 .75rem/1.35 var(--f-data);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:2px 14px;margin-top:6px;display:flex}.flow{gap:clamp(64px,9vw,128px);display:grid}.flow>*{min-width:0}.flow{--bleed:max(16px, (100vw - 72rem) / 2)}.h2{font:700 1.35rem/1.15 var(--f-mark);letter-spacing:-.01em;margin:0}.path p{margin:0}.path-title{font:480 clamp(1.4rem, 3vw, 2.1rem)/1.3 var(--f-mark);letter-spacing:-.01em;text-wrap:balance;max-width:36ch}.path-sub{color:var(--muted);max-width:40rem;margin-top:12px!important}.projects{gap:clamp(32px,5vw,56px);display:grid}.proj{grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;column-gap:24px;display:grid}.proj+.proj{margin-top:clamp(24px,4vw,54px)}.proj .txt{min-width:0}.proj .scene{font:400 clamp(1.08rem, 1.7vw, 1.28rem)/1.45 var(--f-text);max-width:34rem;margin:10px 0 0}.proj .go{font:500 .9rem var(--f-text);color:var(--copper);text-underline-offset:4px;margin-top:14px;display:inline-block}.proj .go:hover{text-decoration-thickness:2px}.proj .media img{width:100%;height:auto;display:block}.p-app .txt{grid-column:1/span 4}.p-app .media{margin-right:calc(-1 * var(--bleed));grid-column:5/-1}.p-lab .media{margin-left:calc(-1 * var(--bleed));grid-area:1/1/auto/span 8}.p-lab .txt{grid-area:1/9/auto/-1}.interlude{--surface:var(--bg-deep);background:var(--surface);margin-inline:calc(-1 * var(--bleed));padding:clamp(28px, 4vw, 56px) var(--bleed);border-block:1px solid var(--line);grid-template:"head photo""quote photo"1fr/minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px 32px;display:grid}.memory-head{grid-area:head;min-width:0}.interlude .qcap{margin:0 0 14px}.interlude .quote-wrap{grid-area:quote;min-width:0;position:relative}.memory-nav{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.memory-head button{border:1px solid var(--copper);background:var(--surface);min-width:48px;min-height:48px;color:var(--fg);font:500 .875rem/1.35 var(--f-text);cursor:pointer;border-radius:2px;padding:10px 14px}.memory-head .memory-next{background:var(--copper);color:var(--bg-deep)}.memory-head button:hover{text-decoration:underline}.memory-head button:focus-visible{outline:2px solid var(--copper);outline-offset:4px}.memory-count{color:var(--muted);font:400 .75rem/1.4 var(--f-data);font-variant-numeric:tabular-nums}.memory-head [hidden]{display:none!important}.interlude .keyph{margin:0 calc(-1 * var(--bleed)) 0 0;aspect-ratio:3/2;grid-area:photo;align-self:center;position:relative}.interlude .keyph img{object-fit:cover;width:100%;height:100%;display:block}.interlude .keyph:after{content:"";background:linear-gradient(90deg, var(--surface), transparent 35%);pointer-events:none;position:absolute;inset:0}.quote{font:italic 400 clamp(1.35rem, 2.6vw, 2rem)/1.35 var(--f-text);text-wrap:balance;max-width:26ch;margin:0}.quote:before{content:"„"}.quote:after{content:"”"}:lang(en) .quote:before{content:"“"}:lang(de) .quote:before{content:"„"}:lang(de) .quote:after{content:"“"}.qcap{font:400 .75rem/1.35 var(--f-data);color:var(--muted);margin:12px 0 0}.contact{border-top:1px solid var(--line);grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:20px 40px;padding-top:28px;display:grid}.contact h2{font:700 1.35rem/1.15 var(--f-mark);margin:0 0 10px}.contact .lead{color:var(--muted);margin:0 0 6px}.form{gap:14px;max-width:34rem;display:grid}.form .row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.form label{font:500 .85rem var(--f-text);color:var(--muted);gap:6px;display:grid}.form input,.form textarea{font:400 1rem/1.4 var(--f-text);color:var(--fg);background:var(--bg-deep);border:1px solid var(--line);border-radius:2px;width:100%;padding:10px 12px}.form textarea{resize:vertical;min-height:8rem}.form input:focus-visible,.form textarea:focus-visible{outline:2px solid var(--copper);outline-offset:1px}.form .hp{position:absolute;left:-9999px}.form .status{font:400 .9rem var(--f-text);min-height:1.4em;margin:0}.form .status[data-kind=ok]{color:var(--copper)}.form .status[data-kind=err]{color:#f0a58f}.btn{font:500 .95rem/1 var(--f-text);color:var(--bg);background:var(--copper);cursor:pointer;border:0;border-radius:2px;padding:12px 18px}.btn:hover{background:#ddbb93}.btn:disabled{opacity:.7;cursor:default}.form .actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.form .privacy-note{color:var(--muted);font-size:.8rem}footer{font:400 .8rem/1.5 var(--f-data);color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;gap:8px 22px;padding-top:18px;display:flex}footer a{text-decoration:none}footer a:hover{color:var(--fg)}footer .end{margin-left:auto}.prose{gap:14px;max-width:40rem;display:grid}.prose h1{font:800 clamp(2rem, 6vw, 3.4rem)/1 var(--f-mark);letter-spacing:-.03em;margin:0 0 8px}.prose h2{font:700 1.2rem/1.2 var(--f-mark);margin:22px 0 0}.prose p,.prose ul{margin:0}.prose ul{gap:6px;padding-left:1.1rem;display:grid}.prose .meta{color:var(--muted);font:400 .85rem var(--f-data)}.app-page{padding-top:clamp(40px,7vw,88px)}.app-title{font:700 clamp(2rem, 5vw, 3.2rem)/1.05 var(--f-mark);letter-spacing:-.02em;margin:0}.app-lead{font:480 clamp(1.15rem, 2.2vw, 1.5rem)/1.4 var(--f-mark);text-wrap:balance;max-width:36ch;margin:18px 0 0}.app-scene .how{font:400 .9rem/1.5 var(--f-data);color:var(--muted);text-wrap:pretty;max-width:34rem;margin:14px 0 0}.app-scene .scene{text-wrap:pretty}.app-next{flex-wrap:wrap;gap:12px 32px;display:flex}.app-next .go{color:var(--copper);text-underline-offset:4px;font-size:1rem}@media (max-width:760px){.proj{grid-template-columns:minmax(0,1fr);row-gap:18px}.proj .txt,.proj .media{grid-area:auto/1/auto/-1}.proj .media{margin-left:calc(-1 * var(--bleed));margin-right:calc(-1 * var(--bleed));order:-1}.interlude{grid-template:"head""photo""quote"/minmax(0,1fr)}.interlude .keyph{margin-inline:calc(-1 * var(--bleed))}.interlude .keyph:after{background:linear-gradient(0deg, var(--surface), transparent 35%)}}@media (max-width:640px){.contact,.form .row{grid-template-columns:minmax(0,1fr)}footer .end{margin-left:0}}@media print{:root{--bg:#fff;--bg-deep:#fff;--fg:#111;--muted:#444;--line:#bbb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.form,.langs,.memory-nav{display:none}}
