/* Mineral · Swiss (Geist) · Square · Cage slats. Shared by all pages. */
@font-face{font-family:Geist;src:url("../fonts/Geist-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Geist Mono";src:url("../fonts/GeistMono-Regular.woff2") format("woff2");font-display:swap}
:root{--paper:#EFEDE8;--ink:#1E2421;--muted:#5E6862;--line:#D3D6D1;--acc:#2F4B3F;--band-ink:#F1F0EA;--band-muted:#B8C6BD;--white:#FAF9F6;
  --sans:Geist,Arial,sans-serif;--mono:"Geist Mono",ui-monospace,monospace;color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.55 var(--sans)}
html[data-lang="de"] [lang="en"],html[data-lang="en"] [lang="de"]{display:none!important}
.w{max-width:1240px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
a{color:inherit}:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.lab{font:400 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.slats{color:var(--acc);display:block;width:130px;height:auto}
.h{font-weight:800;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.05em;line-height:1;margin:0;text-wrap:balance}

.nav{position:sticky;top:0;z-index:5;background:var(--paper);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.nav .w{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.mark{font-weight:700;letter-spacing:-.03em;text-decoration:none}
.nav nav{display:flex;gap:22px;align-items:center;font-size:.92rem}
.nav nav a{text-decoration:none;color:var(--muted)}.nav nav a:hover,.nav nav a[aria-current="page"]{color:var(--ink)}
.nav nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--acc)}
.langbtn,.menubtn{font:500 .78rem var(--mono);border:1px solid var(--ink);background:transparent;color:var(--ink);padding:5px 9px;cursor:pointer}
.menubtn{display:none}
@media (max-width:760px){
  .menubtn{display:block}
  .nav nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:0;padding:8px max(20px,env(safe-area-inset-left,0px)) 16px}
  .nav nav.open{display:flex}.nav nav a{padding:10px 0;width:100%;border-bottom:1px solid var(--line);font-size:1.05rem}
  .nav nav a[aria-current="page"]{box-shadow:none;color:var(--acc);font-weight:600}.langbtn{margin-top:12px}
}

.hero{background:var(--acc);color:var(--band-ink)}
.hero .w{display:grid;grid-template-columns:5fr 7fr;gap:40px;padding-block:56px 48px;align-items:end}
.hero .lab{color:var(--band-muted)}
.hero h1{font-weight:800;font-size:clamp(3rem,8vw,6.2rem);line-height:.9;letter-spacing:-.055em;margin:14px 0 18px}
.hero p{font-weight:300;font-size:1.2rem;max-width:34ch;margin:0 0 26px}
.hero .slats{color:var(--band-ink);margin-top:28px}
.hfig{margin:0}.hfig img{width:100%;height:auto;display:block;aspect-ratio:16/10;object-fit:cover}
.hfig figcaption{font:400 .72rem var(--mono);color:var(--band-muted);margin-top:8px;letter-spacing:.04em}
@media (max-width:860px){.hero .w{grid-template-columns:1fr;padding-block:40px}}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{display:inline-block;text-decoration:none;font-weight:600;font-size:.92rem;padding:11px 16px;border:1px solid currentColor;margin-right:8px}
.hero .btn.fill,.contact .btn.fill{background:var(--band-ink);color:var(--acc);border-color:var(--band-ink)}
.btn.dark{background:var(--acc);color:var(--band-ink);border-color:var(--acc)}

section{padding-block:64px}
.sh{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:28px}
.sh h2{font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:-.045em;margin:0;line-height:1}
.index{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{text-decoration:none;display:grid;gap:10px}
.card .ph,.prow .ph{aspect-ratio:4/3;overflow:hidden;background:var(--white)}
.card img,.prow img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}
.card:hover img,.prow:hover img{transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.card img,.prow img{transition:none}.card:hover img,.prow:hover img{transform:none}}
.card b{font-weight:600}.card .lab{display:flex;justify-content:space-between}
@media (max-width:900px){.index{grid-template-columns:1fr 1fr}}@media (max-width:480px){.index{grid-template-columns:1fr}}

.plist{display:grid;gap:0}
.prow{display:grid;grid-template-columns:5fr 7fr;gap:32px;text-decoration:none;padding-block:28px;border-top:1px solid var(--line);align-items:start}
.prow h3{font-weight:800;font-size:1.8rem;letter-spacing:-.04em;margin:6px 0 6px;line-height:1.05}
.prow p{margin:0 0 10px;max-width:60ch}
.meta{font:400 .8rem/1.5 var(--mono);color:var(--acc);margin:0 0 14px}
@media (max-width:760px){.prow{grid-template-columns:1fr;gap:14px}}

.proj{padding-block:48px 64px}
.phead{display:grid;gap:10px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:32px}
.phead .meta{margin:0}
.pbody{display:grid;grid-template-columns:4fr 8fr;gap:40px;margin-bottom:48px}
.ptxt{position:sticky;top:84px;align-self:start;display:grid;gap:12px}
.ptxt p{margin:0;max-width:46ch}.ptxt h2{font-weight:800;font-size:1.8rem;letter-spacing:-.04em;margin:0;line-height:1}
.ptxt .role{font:400 .8rem/1.5 var(--mono);color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.gal{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.gal figure{margin:0;display:grid;gap:6px;min-width:0}.gal figure.wide{grid-column:1/-1}
.gal img{width:100%;height:auto;display:block;background:var(--white)}.gal .dw img{mix-blend-mode:multiply}
.gal figcaption{font:400 .72rem var(--mono);color:var(--muted);letter-spacing:.03em}
@media (max-width:860px){.pbody{grid-template-columns:1fr}.ptxt{position:static}.gal{grid-template-columns:1fr}}
.pn{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;font:400 .82rem var(--mono)}
.pn a{text-decoration:none;color:var(--acc)}

.about{display:grid;grid-template-columns:3fr 5fr 4fr;gap:40px}
.about .pic img{width:100%;height:auto;display:block;aspect-ratio:3/4;object-fit:cover}
.about .lead{font-weight:300;font-size:1.2rem;margin-top:0}
.about h4{font:400 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc);margin:26px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.about dl{margin:0;display:grid;gap:8px}.about dt{font-weight:600}.about dd{margin:0}
.plain{margin:0;padding:0;list-style:none}
.tl{margin:0 0 20px;padding:0;list-style:none;display:grid;gap:8px}
.tl li{display:grid;grid-template-columns:9.5rem 1fr;gap:12px}
.tl time{font:400 .8rem var(--mono);color:var(--muted);padding-top:2px}
@media (max-width:900px){.about{grid-template-columns:1fr 1fr}.about .pic{grid-column:1/-1;max-width:260px}}
@media (max-width:560px){.about{grid-template-columns:1fr}.tl li{grid-template-columns:1fr;gap:0}}

.contact{background:var(--acc);color:var(--band-ink)}
.contact .w{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;padding-block:24px}
.contact .lab{color:var(--band-muted)}
.contact .h{margin:10px 0 18px}
.contact .lines{font:400 1.05rem/1.8 var(--mono);margin-bottom:24px}.contact .lines a{color:var(--band-ink)}
.contact .slats{width:180px;color:var(--band-ink)}
@media (max-width:700px){.contact .w{grid-template-columns:1fr}}

footer.f{border-top:1px solid var(--line);padding-block:18px;padding-bottom:max(24px,env(safe-area-inset-bottom,0px));font:400 .72rem var(--mono);color:var(--muted)}
footer.f .w{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
footer.f a{color:var(--muted)}footer.f .slats{width:90px}

.off3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.ob{display:grid;gap:10px;align-content:start;border-top:2px solid var(--acc);padding-top:14px}
.ob h2{font-weight:800;font-size:1.6rem;letter-spacing:-.04em;margin:0;line-height:1.05}.ob p{margin:0}.ob h4{font:400 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--acc);margin:12px 0 8px}
.links{margin:0;padding:0;list-style:none;display:grid;gap:6px}.links a{color:var(--acc)}
@media (max-width:900px){.off3{grid-template-columns:1fr}}
