.foto-grid-wrap{position:relative}.foto-grid-wrap::after{content:'';position:absolute;bottom:0;left:0;right:0;height:180px;background:linear-gradient(to bottom,transparent,#0a0a0a);pointer-events:none;z-index:2}.view-toggle{display:flex;align-items:center;justify-content:center;gap:20px;padding:28px 0 0;background-color:#0a0a0a}.toggle-btn{background:0 0;border:none;font-family:Montserrat,sans-serif;font-size:12px;font-weight:300;letter-spacing:5px;text-transform:uppercase;color:rgba(255,255,255,.55);cursor:pointer;padding:6px 0;border-bottom:1px solid transparent;transition:color .25s,border-color .25s}.toggle-btn:hover{color:rgba(255,255,255,.75)}.toggle-btn.active{color:#fff;border-bottom:1px solid #fff}.toggle-sep{color:rgba(255,255,255,.2);font-size:12px}main{background-color:#0a0a0a}.foto-grid{position:relative;padding:24px;background-color:#0a0a0a}.foto-item{overflow:hidden;cursor:pointer;background-color:#0a0a0a}.foto-grid:not(.flow-mode) .foto-item{position:absolute}.foto-item.span-2{grid-column:span 2}.foto-item.span-3{grid-column:span 3}.foto-item img{width:100%;height:auto;display:block;transition:transform .5s;background:rgba(255,255,255,.04)}.foto-item:hover img{transform:scale(1.04)}.foto-item::after{content:'+';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.75);width:40px;height:40px;line-height:38px;text-align:center;border:1.5px solid rgba(255,255,255,.75);border-radius:50%;font-family:Montserrat,sans-serif;font-size:20px;font-weight:200;color:rgba(255,255,255,.9);opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:2}.foto-item:hover::after{opacity:1;transform:translate(-50%,-50%) scale(1)}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .35s,visibility 0s .35s;overflow:hidden}.lightbox.open{opacity:1;pointer-events:all;visibility:visible;transition-delay:0s}.lightbox:not(.open) #lightboxImg{pointer-events:none!important}.lightbox-img{max-width:90vw;max-height:90vh;object-fit:contain;transform:scale(.95);transition:transform .35s}.lightbox.open .lightbox-img{transform:scale(1)}.lightbox-close{position:absolute;top:32px;right:40px;background:0 0;border:none;color:#fff;cursor:pointer;opacity:.7;transition:opacity .2s;display:flex;align-items:center;justify-content:center;padding:8px;z-index:10;touch-action:manipulation}.lightbox-close svg{width:22px;height:22px;display:block}.lightbox-close:hover{opacity:1}body.flow-active{overflow-x:hidden}body.flow-active .back-arrow,body.flow-active .page-header,body.flow-active .view-toggle{flex-shrink:0}body.flow-active .foto-grid-wrap{flex:1;min-height:0;display:flex;flex-direction:column;position:static}body.flow-active .foto-grid-wrap::after{display:none}body.flow-active main{display:block}.flow-wrapper{position:relative;background-color:#0a0a0a}.flow-wrapper.active{display:block;overflow:hidden;margin-top:28px}.foto-grid.flow-mode{display:flex;flex-direction:row;column-count:unset;gap:10px;padding:0 48px;align-items:flex-start;overflow:visible;will-change:transform;cursor:grab;flex:1;min-height:0}.foto-grid.flow-mode:active{cursor:grabbing}.foto-grid.flow-mode .foto-item{position:relative;height:var(--flow-h,calc(100vh - 260px));width:auto;flex-shrink:0;overflow:visible;border-radius:4px;background-color:transparent}.foto-grid.flow-mode .foto-item picture{display:block;height:100%;width:auto}.foto-grid.flow-mode .foto-item img{height:100%;width:auto;max-width:none;display:block;filter:none;transition:none}.foto-grid.flow-mode .foto-item:hover img{transform:none;filter:none}.flow-hint{display:none;text-align:center;font-family:Montserrat,sans-serif;font-size:11px;font-weight:300;letter-spacing:5px;color:rgba(255,255,255,.55);text-transform:uppercase;padding:16px 0 10px;flex-shrink:0;animation:2.5s ease-in-out infinite flow-hint-pulse}@keyframes flow-hint-pulse{0%,100%{opacity:1}50%{opacity:.4}}.flow-wrapper.active .flow-hint{display:block}@media (max-width:480px){.foto-grid{padding:12px}}.back-arrow{display:inline-flex;align-items:center;gap:10px;margin:12px 0 0 52px;color:rgba(255,255,255,.55);text-decoration:none;transition:color .25s,transform .25s}.back-arrow:hover{color:#fff;transform:translateX(-4px)}.back-arrow svg{width:22px;height:22px}.lightbox-next,.lightbox-prev{position:absolute;top:50%;transform:translateY(-50%);background:0 0;border:none;color:rgba(255,255,255,.6);cursor:pointer;padding:16px 24px;transition:color .2s,transform .2s;z-index:10;user-select:none;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.lightbox-next svg,.lightbox-prev svg{width:28px;height:28px;display:block}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-prev:hover{color:#fff;transform:translateY(-50%) translateX(-4px)}.lightbox-next:hover{color:#fff;transform:translateY(-50%) translateX(4px)}.foto-item img,.lightbox-img{pointer-events:none;user-select:none;-webkit-user-drag:none}.foto-item{pointer-events:auto}.contact-portrait,.foto-item img,.lightbox-img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.lightbox::after{content:"© Nicolas Jagusch";position:absolute;bottom:24px;right:32px;font-family:Montserrat,sans-serif;font-size:11px;font-weight:300;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.3);pointer-events:none;user-select:none;z-index:10001}.album-nav{display:flex;justify-content:space-between;align-items:center;padding:20px 52px 56px;width:100%;box-sizing:border-box}.album-nav-next,.album-nav-prev{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:rgba(255,255,255,.55);transition:color .25s,transform .25s}.album-nav-next{margin-left:auto}.album-nav-prev:hover{color:#fff;transform:translateX(-4px)}.album-nav-next:hover{color:#fff;transform:translateX(4px)}.album-nav-next svg,.album-nav-prev svg{width:22px;height:22px;flex-shrink:0}.album-nav-hint{display:none}.album-nav-title{font-family:Montserrat,sans-serif;font-size:12px;font-weight:300;letter-spacing:4px;text-transform:uppercase;color:inherit}.album-nav-spacer{flex:1}@media (max-width:768px){.back-arrow{margin:16px 0 0 20px;min-height:44px;padding:0 12px 0 4px}.album-nav{padding:16px 20px 44px}.album-nav-next,.album-nav-prev{min-height:44px}.toggle-btn{padding:16px 6px;min-height:44px}.foto-grid.flow-mode .foto-item{height:var(--flow-h,calc(100vh - 340px));max-width:calc(100vw - 32px)}.foto-grid.flow-mode{padding:0 16px}.foto-grid.flow-mode .foto-item img{max-width:100%;object-fit:contain}}.back-label{font-family:Montserrat,sans-serif;font-size:12px;font-weight:300;letter-spacing:4px;text-transform:uppercase;color:inherit}.foto-item img:not([src]),.foto-item img[src=""]{visibility:hidden}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:.4}}.foto-item::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.04);animation:1.6s ease-in-out infinite skeleton-pulse;z-index:0;transition:opacity .3s}.foto-item.loaded::before{opacity:0;pointer-events:none}@media (prefers-reduced-motion:reduce){.lightbox,.lightbox-img{transition:none!important}}.pause-btn{background:0 0;border:1px solid rgba(255,255,255,.25);border-radius:4px;color:rgba(255,255,255,.55);cursor:pointer;font-size:13px;padding:4px 10px;margin-left:8px;transition:color .2s,border-color .2s;vertical-align:middle}.pause-btn:hover{color:#fff;border-color:rgba(255,255,255,.6)}.pause-btn[aria-pressed=true]{color:#fff;border-color:#fff}.flow-discover-wrap{position:relative;display:inline-flex;align-items:center}.flow-discover-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(4px);white-space:nowrap;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.85);font-family:Montserrat,sans-serif;font-size:10px;font-weight:400;letter-spacing:3px;text-transform:uppercase;padding:6px 12px;border-radius:3px;pointer-events:none;opacity:0;animation:.5s 1.5s forwards flowTipIn,.4s 6.2s forwards flowTipOut;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.flow-discover-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-top-color:rgba(255,255,255,.18)}@keyframes flowTipIn{to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes flowTipOut{to{opacity:0;transform:translateX(-50%) translateY(-4px)}}@media (prefers-reduced-motion:reduce){.flow-discover-tip{animation:none;opacity:0}}.photo-count{text-align:left;font-family:Montserrat,sans-serif;font-size:11px;font-weight:300;letter-spacing:5px;text-transform:uppercase;color:rgba(255,255,255,.55);margin:0;padding:14px 0 0 24px;background-color:#0a0a0a}.lightbox-counter{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);font-family:Montserrat,sans-serif;font-size:11px;font-weight:300;letter-spacing:5px;color:rgba(255,255,255,.75);background:rgba(0,0,0,.35);padding:5px 14px;border-radius:20px;pointer-events:none;user-select:none;white-space:nowrap;z-index:10010}#lightboxImg{pointer-events:auto!important;cursor:zoom-in;touch-action:none;-webkit-touch-callout:none}#lightboxImg.zoomed{cursor:zoom-out;max-width:none;max-height:none}.lightbox-caption{position:absolute;bottom:0;left:0;right:0;padding:56px 52px 52px;background:linear-gradient(to top,rgba(0,0,0,.72) 0,transparent 100%);font-family:Montserrat,sans-serif;font-size:13px;font-weight:300;letter-spacing:4.5px;text-transform:uppercase;color:rgba(255,255,255,.8);opacity:0;pointer-events:none;transition:opacity .25s;z-index:10000}.lightbox-caption.visible{opacity:1;pointer-events:auto}@media (max-width:640px){.album-nav-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.lightbox-caption{padding:48px 24px 68px;letter-spacing:3px}.lightbox-close{padding:12px;top:28px;right:32px}}body.flow-active .back-arrow{margin-top:8px}body.flow-active .view-toggle{padding:6px 0 2px;gap:12px}body.flow-active .toggle-btn{font-size:10px;letter-spacing:4px;padding:2px 0}body.flow-active .toggle-sep{font-size:10px}body.flow-active .pause-btn{font-size:11px;padding:2px 8px}body.flow-active .photo-count{display:none}@supports (height:100svh){.foto-grid.flow-mode .foto-item{height:var(--flow-h,calc(100svh - 260px))}@media (max-width:768px){.foto-grid.flow-mode .foto-item{height:var(--flow-h,calc(100svh - 340px))}}}