@font-face{font-family:PortfolioFont;src:url(/fonts/DK-Die-Bruecke.otf) format("opentype");font-weight:400;font-style:normal}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;overflow:hidden;background-color:#f5f5f5}.crosshair{position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;z-index:9999;will-change:transform}.crosshair:before,.crosshair:after{content:"";position:absolute;background-color:#1d1d1d;opacity:.55}.crosshair:before{width:13px;height:1px;top:-.5px;left:-6.5px}.crosshair:after{width:1px;height:13px;top:-6.5px;left:-.5px}.proj-link-dot{display:block;width:.85rem;height:.85rem;border-radius:30%;background-color:#1d1d1d;flex-shrink:0;transition:transform .25s ease}.proj-link-text{font-family:PortfolioFont,sans-serif;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:#1d1d1d;white-space:nowrap}.proj-link{position:fixed;z-index:100;display:flex;align-items:center;text-decoration:none}.proj-link:hover .proj-link-dot{transform:scale(1.2)}.proj-link--edge-left{flex-direction:column;gap:1.25rem;left:2rem;top:50%;transform:translateY(-50%)}.proj-link--edge-left .proj-link-text{writing-mode:vertical-rl;transform:rotate(180deg);min-height:5rem;display:flex;align-items:flex-end}.proj-link--edge-right{flex-direction:column-reverse;gap:1.25rem;right:2rem;top:50%;transform:translateY(-50%)}.proj-link--edge-right .proj-link-text{writing-mode:vertical-rl;transform:rotate(0);min-height:5rem;display:flex;align-items:flex-start}.proj-link--edge-bottom-left{flex-direction:row;gap:.9rem;bottom:2rem;left:2rem}.proj-link--edge-bottom-right{flex-direction:row-reverse;gap:.9rem;bottom:2rem;right:2rem}.proj-mobile-menu{display:none;position:fixed;bottom:calc(2.5rem + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);z-index:100;flex-direction:column-reverse;align-items:center;gap:.55rem;pointer-events:none}.proj-mobile-toggle{background:none;border:none;padding:0;cursor:none;display:flex;pointer-events:auto}.proj-link-dot--toggle{width:1rem;height:1rem;transition:transform .3s ease,border-radius .3s ease}.proj-mobile-menu.is-open .proj-link-dot--toggle{transform:rotate(45deg) scale(1.1);border-radius:2px}.proj-mobile-item{display:flex;flex-direction:row;align-items:center;gap:.75rem;text-decoration:none;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s ease calc(var(--i) * .06s),transform .25s ease calc(var(--i) * .06s)}.proj-mobile-menu.is-open .proj-mobile-item{opacity:1;transform:translateY(0);pointer-events:auto}.proj-mobile-label{font-family:PortfolioFont,sans-serif;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:#1d1d1d}@media(max-width:768px){.proj-links-desktop{display:none!important}.proj-mobile-menu{display:flex}}.projects-mount{position:fixed;inset:0;cursor:none}.back-btn{position:fixed;left:2rem;top:50%;transform:translateY(-50%);z-index:100;display:flex;flex-direction:column;align-items:center;gap:1.25rem;background:none;border:none;padding:0;cursor:pointer}.back-btn-text{writing-mode:vertical-rl;transform:rotate(180deg);font-family:PortfolioFont,sans-serif;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:#1d1d1d;min-height:7rem;display:flex;align-items:flex-end}.back-btn-dot{display:block;width:1rem;height:1rem;border-radius:30%;background-color:#1d1d1d;transition:transform .25s ease,background-color .25s ease;-webkit-transition:;-moz-transition:;-ms-transition:;-o-transition:;-webkit-border-radius:30%;-moz-border-radius:30%;-ms-border-radius:30%;-o-border-radius:30%}.back-btn:hover .back-btn-dot{transform:scale(1.15);background-color:#1d1d1d}.gallery-caption-item{position:fixed;right:3rem;top:50%;transform:translateY(-50%);text-align:right;pointer-events:none;z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:0;max-width:14rem}.caption-index{font-family:PortfolioFont,sans-serif;font-size:3.5rem;line-height:1;letter-spacing:-.02em;color:#1d1d1d;opacity:.2}.caption-rule{display:block;width:2rem;height:1px;background:#1d1d1d;opacity:.35;margin:.8rem 0}.caption-title{font-family:PortfolioFont,sans-serif;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#1d1d1d}.caption-text{font-family:PortfolioFont,sans-serif;font-size:.68rem;line-height:1.65;letter-spacing:.05em;color:#1d1d1d;opacity:.65;margin:.6rem 0 0;white-space:pre-line}@media(max-width:768px){.gallery-caption-item{right:auto;left:50%;top:auto;bottom:3rem;transform:translate(-50%);text-align:center;align-items:center;max-width:80vw}.caption-index{font-size:1.5rem}.caption-rule{margin:.5rem 0}.caption-title{font-size:.72rem}.caption-text{font-size:.62rem}}.gallery-mount{position:fixed;inset:0;cursor:none}.intro-panel{position:fixed;inset:0;z-index:200;background:#e4e4e4;display:flex;flex-direction:column}.intro-scroll-area{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.intro-content{max-width:820px;margin:0 auto;padding:max(8vh,3.5rem) max(8vw,2rem) 3rem;display:flex;flex-direction:column;align-items:flex-start}.intro-label{font-family:PortfolioFont,sans-serif;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:#1d1d1d;opacity:.55;margin-bottom:1.5rem}.intro-title{font-family:PortfolioFont,sans-serif;font-size:clamp(2.2rem,6vw,7rem);line-height:1.05;color:#1d1d1d;margin:0 0 2rem;font-weight:400}.intro-letter{display:inline-block}.intro-rule{display:block;width:2.5rem;height:1px;background:#1d1d1d;opacity:.3;margin-bottom:2rem}.intro-body{display:flex;flex-direction:column;gap:1.2rem}.intro-body p{font-family:PortfolioFont,sans-serif;font-size:.92rem;line-height:1.85;letter-spacing:.03em;color:#1d1d1d;opacity:.8;margin:0;max-width:62ch}.intro-footer{flex-shrink:0;display:flex;justify-content:center;padding:2rem 0 max(4vh,2.5rem);border-top:1px solid rgba(29,29,29,.12);background:#e4e4e4}.intro-continue{display:flex;flex-direction:column;align-items:center;gap:1rem;background:none;border:none;padding:0;cursor:pointer}.intro-continue-text{writing-mode:vertical-rl;transform:rotate(180deg);font-family:PortfolioFont,sans-serif;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:#1d1d1d}.intro-continue-dot{display:block;width:.9rem;height:.9rem;border-radius:30%;background:#1d1d1d;transition:transform .25s ease}.intro-continue:hover .intro-continue-dot{transform:scale(1.15)}@media(max-width:768px){.intro-content{padding:max(6vh,2.5rem) max(6vw,1.5rem) 2rem}.intro-body p{font-size:.88rem;line-height:1.75}.intro-footer{padding:1.5rem 0 max(3vh,1.5rem)}}.ls-root{position:fixed;inset:0;display:flex;overflow:hidden;z-index:999;background:#f5f5f5}.ls-panel{width:50%;height:100%;background:#f5f5f5;display:flex;align-items:center}.ls-left{justify-content:flex-end;padding-right:3vw}.ls-right{justify-content:flex-start;padding-left:3vw}.ls-word{font-family:PortfolioFont,Impact,sans-serif;font-size:clamp(1rem,9vw,13rem);color:#1a1209;line-height:1;white-space:nowrap;text-shadow:0 0 4px rgba(26,18,9,.25)}.ls-letter{display:inline-block;opacity:0}.ls-line{position:fixed;top:7vh;bottom:13vh;left:calc(50% - .5px);width:1px;background:#1a1209;pointer-events:none;z-index:1000}.ls-counter{position:fixed;bottom:4vh;left:50%;transform:translate(-50%);font-family:PortfolioFont,Impact,sans-serif;font-size:clamp(1rem,2vw,2rem);color:#1a1209;pointer-events:none;z-index:1001;white-space:nowrap;letter-spacing:.05em}
