/* MULTIBILD — edit spacing, type and columns here. Google Font: IBM Plex Sans JP, Medium 500. */
:root{--paper:#fff;--ink:#000;--gutter:14px;--gap:14px;--small:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"IBM Plex Sans JP",Arial,Helvetica,sans-serif;font-weight:500;font-size:var(--small);line-height:1.12}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;font:inherit;border:0;background:none;padding:0;text-align:left;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid currentColor;outline-offset:5px}button:hover{text-decoration:underline;text-underline-offset:3px}p,h1,h2,ul{margin:0;padding:0}h2{font-size:inherit;font-weight:500}ul{list-style:none}li{padding-left:10px}.header{display:grid;grid-template-columns:1fr 1.42fr 1.5fr 1.75fr 1.25fr;gap:var(--gap);padding:20px var(--gutter) 0;min-height:30.5vw;align-items:start}.brand{font-size:18px;letter-spacing:-.7px;white-space:nowrap}.header nav{display:flex;justify-content:space-between;gap:20px}.mobile-comma{display:none}.projects{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7vw var(--gap);padding:0 var(--gutter);align-items:start}.tile{min-width:0;transition:opacity .25s ease,transform .45s ease}.project-image{display:block;width:100%;text-decoration:none!important}.caption{display:flex;justify-content:space-between;min-height:23px;gap:4px;white-space:nowrap}.image-number{margin-left:auto}.project-image img{display:block;width:100%;height:auto;object-fit:cover;transition:filter .3s,transform .4s}.tile--2 img{aspect-ratio:1/1.08;object-position:45% 50%}.tile--3 img{aspect-ratio:1.3;object-position:65% 50%}.tile--4 img{aspect-ratio:1.5;object-position:50% 50%}.projects.has-active-project .tile:not(.is-active-project){opacity:.28}.project-image:focus-visible{outline-offset:4px}.footer{display:grid;grid-template-columns:2.45fr 1.5fr 1.75fr 1.25fr;gap:var(--gap);padding:140px var(--gutter) 80px}.footer>div{display:flex;flex-direction:column;align-items:start}.footer>button:last-child{justify-self:end}.view-switch{position:fixed;z-index:5;left:var(--gutter);bottom:14px;display:flex;gap:5px;background:rgba(255,255,255,.92);padding:4px 5px;backdrop-filter:blur(10px)}.view-switch button{opacity:.4}.view-switch button[aria-pressed=true]{opacity:1}.notice{position:fixed;z-index:20;right:14px;bottom:14px;max-width:min(370px,calc(100vw - 28px));background:#000;color:#fff;padding:16px 20px;font-size:14px;line-height:1.4}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:8px;left:8px;z-index:50;transform:translateY(-200%);background:#000;color:#fff;padding:12px}.skip-link:focus{transform:translateY(0)}
/* Gallery presents one cover per project, with the reference's staggered rhythm. */
body[data-view=gallery] .projects{grid-template-columns:repeat(12,minmax(0,1fr));gap:0 var(--gap)}body[data-view=gallery] .tile:not(.tile--1){display:none}body[data-view=gallery] .tile--1{grid-column:6/span 7;margin-bottom:0}body[data-view=gallery] .tile--1:nth-of-type(8n+5){grid-column:3/span 3}body[data-view=gallery] .tile--1:nth-of-type(12n+9){grid-column:1/span 3}body[data-view=gallery] .tile--1:nth-of-type(16n+13){grid-column:8/span 5}body[data-view=gallery] .caption{padding-top:8px}
.lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:20px var(--gutter);border:0;background:#fff;color:#000}.lightbox[open]{display:flex;flex-direction:column}.lightbox::backdrop{background:#fff}.lightbox-bar,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none}.lightbox-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;padding:30px 0}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain}.close{min-height:30px}.close span{font-size:23px;margin-left:12px}.lightbox-bottom button{min-height:40px}body:has(dialog[open]){overflow:hidden}
@media(min-width:1600px){:root{--gutter:18px;--gap:18px;--small:16px}}
@media(min-width:701px) and (max-width:1100px){:root{--gutter:10px;--gap:10px}.header{grid-template-columns:1fr 1.3fr 1.6fr 1.5fr;min-height:34vw}.availability{display:none}.header nav{gap:12px}.projects{grid-template-columns:repeat(7,minmax(0,1fr))}.caption{font-size:12px}}
@media(max-width:700px){:root{--small:16px;--gutter:14px;--gap:14px}.header{display:flex;justify-content:space-between;gap:16px;padding-top:16px;min-height:150px}.brand{font-size:18px}.availability,.services,.recognition{display:none}.header nav{gap:0;align-items:baseline;white-space:nowrap}.header nav button{font-size:16px;min-height:26px}.mobile-comma{display:inline;margin-right:7px}.projects{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:74px}.tile--3,.tile--4{display:none}.caption{font-size:16px;min-height:25px}.image-number{display:none}.tile--2 img{aspect-ratio:1/1}.footer{grid-template-columns:1fr 1fr;row-gap:24px;padding-top:100px;font-size:14px}.footer>button:last-child{justify-self:start}.view-switch{font-size:14px;bottom:12px}.view-switch button{padding:6px 3px}.notice{bottom:56px}body[data-view=gallery] .projects{grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 14px}body[data-view=gallery] .tile--1{grid-column:2/span 3;margin:0}body[data-view=gallery] .tile--1:nth-of-type(8n+5){grid-column:1/span 3}body[data-view=gallery] .tile--1:nth-of-type(12n+9){grid-column:2/span 3}body[data-view=gallery] .tile--1:nth-of-type(16n+13){grid-column:1/span 3}.lightbox{padding:14px}.lightbox-stage{padding:20px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}


/* Änderungen 1.0: fixed navigation, project hover and centered view control. */
.header{position:fixed;inset:0 0 auto;z-index:10;min-height:0;padding-bottom:18px;background:#fff;font-size:16px;pointer-events:none}
.header>*{pointer-events:auto}
.header .brand{font-size:20px;justify-self:start}
.header button{position:relative;isolation:isolate;text-decoration:none;transition:color .15s}
.header button::before{content:"";position:absolute;inset:-4px -6px;background:#000;z-index:-1;opacity:0;transition:opacity .15s}
.header button:hover,.header button:focus-visible{color:#fff;text-decoration:none}
.header button:hover::before,.header button:focus-visible::before{opacity:1}
main{padding-top:30.5vw;scroll-margin-top:160px}
body:not([data-view=gallery]) .projects{column-gap:10px}
.view-switch{left:50%;transform:translateX(-50%);bottom:18px;font-size:17px;padding:6px 9px;gap:8px}
.view-switch button{padding:7px 5px}
@media(min-width:1600px){.header{font-size:18px}.header .brand{font-size:22px}body:not([data-view=gallery]) .projects{column-gap:14px}}
@media(min-width:701px) and (max-width:1100px){main{padding-top:34vw}.header{min-height:0;font-size:15px}body:not([data-view=gallery]) .projects{column-gap:7px}}
@media(max-width:700px){main{padding-top:150px;scroll-margin-top:80px}.header{min-height:0;padding-bottom:16px;gap:10px}.header .brand{font-size:20px}.header nav button{font-size:17px}.view-switch{font-size:17px;bottom:14px}.notice{bottom:76px}body:not([data-view=gallery]) .projects{column-gap:10px}}
/* Änderungen 1.1: complete project sequences in the stepped gallery. */
body[data-view=gallery] .tile{display:block;grid-column:auto;margin:0}
body[data-view=gallery] .tile:nth-child(4n+1){grid-column:6/span 7}
body[data-view=gallery] .tile:nth-child(4n+2){grid-column:3/span 3}
body[data-view=gallery] .tile:nth-child(4n+3){grid-column:1/span 3}
body[data-view=gallery] .tile:nth-child(4n+4){grid-column:8/span 5;margin-bottom:7vw}
/* One shared outline treatment for navigation, footer, view and lightbox controls. */
button:not(.project-image){position:relative;isolation:isolate;text-decoration:none}
button:not(.project-image)::before{content:"";position:absolute;inset:-4px -6px;border:2px solid #000;border-radius:2px;background:transparent;z-index:-1;opacity:0;transition:opacity .15s;pointer-events:none}
button:not(.project-image):hover,button:not(.project-image):focus-visible{color:#000;text-decoration:none}
button:not(.project-image):hover::before,button:not(.project-image):focus-visible::before{opacity:1}
.view-switch button:hover,.view-switch button:focus-visible{opacity:1}
.footer>button{justify-self:start;align-self:start}
.footer>button:last-child{justify-self:end}
@media(max-width:700px){
 body[data-view=gallery] .tile:nth-child(4n+1){grid-column:2/span 3}
 body[data-view=gallery] .tile:nth-child(4n+2){grid-column:1/span 2}
 body[data-view=gallery] .tile:nth-child(4n+3){grid-column:3/span 2}
 body[data-view=gallery] .tile:nth-child(4n+4){grid-column:1/span 3;margin-bottom:44px}
 body[data-view=gallery] .image-number{display:inline}
 .footer>button:last-child{justify-self:start}
}
body[data-view=gallery] .tile:not(.tile--1){display:block}

/* Each image occupies its own step, preserving the project sequence. */
body[data-view=gallery] .tile:nth-child(1){grid-row:1}
body[data-view=gallery] .tile:nth-child(2){grid-row:2}
body[data-view=gallery] .tile:nth-child(3){grid-row:3}
body[data-view=gallery] .tile:nth-child(4){grid-row:4}
body[data-view=gallery] .tile:nth-child(5){grid-row:5}
body[data-view=gallery] .tile:nth-child(6){grid-row:6}
body[data-view=gallery] .tile:nth-child(7){grid-row:7}
body[data-view=gallery] .tile:nth-child(8){grid-row:8}
body[data-view=gallery] .tile:nth-child(9){grid-row:9}
body[data-view=gallery] .tile:nth-child(10){grid-row:10}
body[data-view=gallery] .tile:nth-child(11){grid-row:11}
body[data-view=gallery] .tile:nth-child(12){grid-row:12}
body[data-view=gallery] .tile:nth-child(13){grid-row:13}
body[data-view=gallery] .tile:nth-child(14){grid-row:14}
body[data-view=gallery] .tile:nth-child(15){grid-row:15}
body[data-view=gallery] .tile:nth-child(16){grid-row:16}
body[data-view=gallery] .tile:nth-child(17){grid-row:17}
body[data-view=gallery] .tile:nth-child(18){grid-row:18}
body[data-view=gallery] .tile:nth-child(19){grid-row:19}
body[data-view=gallery] .tile:nth-child(20){grid-row:20}
body[data-view=gallery] .tile:nth-child(21){grid-row:21}
body[data-view=gallery] .tile:nth-child(22){grid-row:22}
body[data-view=gallery] .tile:nth-child(23){grid-row:23}
body[data-view=gallery] .tile:nth-child(24){grid-row:24}
button:not(.project-image):focus-visible{outline:none}

/* Änderungen 1.3: original logo and matching navigation/grid typography. */
.header{font-size:var(--small)}
.header .brand{width:150px;flex:0 0 150px;line-height:0}
.brand img{display:block;width:150px;height:auto}
@media(min-width:701px) and (max-width:1100px){.header{font-size:12px;grid-template-columns:150px 1.3fr 1.6fr 1.5fr}}
@media(max-width:700px){.header nav button{font-size:16px}.header{align-items:flex-start;flex-wrap:wrap}.header nav{margin-left:auto}}

/* Änderungen 1.4 */
.header{background:transparent}
.header .brand{width:120px;flex-basis:120px}
.brand img{width:120px;height:auto}
.header button::before{border-width:1px;border-radius:6px}
.footer{font-size:var(--small)}
.view-switch{background:transparent;backdrop-filter:none;padding:0;gap:8px}
.view-switch button{background:#000;color:#fff;border-radius:6px;padding:10px 15px;opacity:1;line-height:1.2;text-align:center}
.view-switch button::before{display:none}
.view-switch button:hover,.view-switch button:focus-visible{color:#fff;background:#252525}
.view-switch button:focus-visible{outline:2px solid #000;outline-offset:3px}
.view-switch button[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}
@media(min-width:701px) and (max-width:1100px){.header{grid-template-columns:120px 1.3fr 1.6fr 1.5fr}.footer{font-size:12px}}
@media(max-width:700px){.footer{font-size:16px}}
/* Änderungen 1.5: compact view buttons and softer corners. */
.view-switch{font-size:12px;gap:6px}
.view-switch button{padding:7px 10px;border-radius:15px}
.header button::before{border-radius:15px}

/* Änderungen 1.6: fixed three-part footer and larger grid. */
.footer{position:fixed;inset:auto 0 0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px var(--gutter);pointer-events:none;background:transparent}
.footer>*{pointer-events:auto}
.footer-logo{display:block;width:100px;height:auto;flex:none}
.footer .view-switch{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;flex-direction:row;align-items:center;gap:6px}
.view-switch button,.footer .privacy{border:1px solid #000;border-radius:15px;background:transparent;color:#000;font-size:12px;padding:7px 10px;line-height:1.2;white-space:nowrap;text-decoration:none!important}
.view-switch button[aria-pressed=true]{background:#000;color:#fff;font-weight:700}
.view-switch button[aria-pressed=false]:hover{background:rgba(255,255,255,.65);color:#000}
.view-switch button[aria-pressed=true]:hover{background:#000;color:#fff}
.footer .privacy::before{display:none}
.footer .privacy:hover{background:#000;color:#fff}
.footer .privacy:focus-visible{outline:2px solid #000;outline-offset:3px}
main{padding-bottom:100px}
body:not([data-view=gallery]) .projects{grid-template-columns:repeat(6,minmax(0,1fr));column-gap:2px}
.notice{bottom:70px}
@media(max-width:700px){
 body:not([data-view=gallery]) .projects{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:10px}
 body:not([data-view=gallery]) .tile img{aspect-ratio:1.2;object-fit:cover}
 body:not([data-view=gallery]) .tile--2 img{aspect-ratio:1/1.25}
 .footer{padding:12px 10px;gap:5px}
 .footer .view-switch{bottom:12px;gap:4px}
 .footer .privacy{font-size:10px;padding:7px 6px}
 .view-switch button{padding:7px 8px}
}
@media(min-width:701px){body:not([data-view=gallery]) .projects{grid-template-columns:repeat(5,calc((100% - 60px)/5.6));justify-content:space-between}}
@media(min-width:701px) and (max-width:1100px){body:not([data-view=gallery]) .projects{grid-template-columns:repeat(5,calc((100% - 42px)/5.6))}}
@media(min-width:1600px){body:not([data-view=gallery]) .projects{grid-template-columns:repeat(5,calc((100% - 84px)/5.6))}}
@media(max-width:360px){.footer .view-switch button{font-size:10px;padding:7px 6px}.footer .view-switch{gap:4px}}

/* Änderungen 1.7: uncropped images, final navigation labels and full mobile grids. */
.project-image img{object-fit:contain;object-position:center top}
body:not([data-view=gallery]) .tile img{object-fit:contain}
.view-switch button[aria-pressed=false]:hover{background:#000;color:#fff;font-weight:700}
.header a{position:relative;isolation:isolate;color:#000;text-decoration:none;display:inline-block}
.header a::before{content:"";position:absolute;inset:-4px -6px;border:1px solid #000;border-radius:15px;opacity:0;pointer-events:none;transition:opacity .15s}
.header a:hover::before,.header a:focus-visible::before{opacity:1}
.header a:focus-visible{outline:none}
.header nav{align-items:flex-start}
@media(max-width:700px){
 .tile--3,.tile--4{display:block}
 .header nav{gap:12px;flex-wrap:wrap;justify-content:flex-end;white-space:normal;max-width:100%}
 .header nav a{font-size:16px}
 .mobile-comma{display:none}
 body:not([data-view=gallery]) .tile--3 img,body:not([data-view=gallery]) .tile--4 img{aspect-ratio:1.2}
}
