:root { --ink:#000; --line:#dedede; --gutter:clamp(24px,8.6vw,168px); --label:12px; --copy:16.2px; --body:18px; --heading:36px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { margin:0; background:#fff; color:var(--ink); font:400 var(--body)/1.65 'Plus Jakarta Sans',sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font:400 var(--heading)/1.2 'Syne',sans-serif; letter-spacing:-.035em; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; }
a:focus-visible,button:focus-visible { outline:2px solid #000; outline-offset:6px; }
img { display:block; max-width:100%; }
[hidden] { display:none!important; }
.wrap { margin-inline:var(--gutter); }
.label { display:block; font-size:var(--label); line-height:1.7; text-transform:uppercase; letter-spacing:.065em; }
.skip { position:absolute; left:24px; top:-100px; background:#fff; padding:12px; z-index:50; }
.skip:focus { top:12px; }
.header { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px var(--gutter); background:#fff; }
.brand { flex:0 0 151.2px; }
.brand img { width:151.2px; height:auto; }
.header nav { display:flex; gap:clamp(20px,2.3vw,40px); align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.header nav a { font-size:var(--copy); text-transform:uppercase; letter-spacing:.025em; padding:6px 0; }
.header nav a:hover { text-decoration:underline; text-underline-offset:7px; }
.header nav .contact-link { border:1px solid #000; border-radius:100px; padding:8px 18px; }
.menu-toggle { display:none; }
.intro { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:32px; padding:36px 0 44px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.intro h1 { margin-top:16px; }
.intro-copy { grid-column:8/13; font-size:var(--copy); padding-bottom:3px; }
.intro-copy p+p { margin-top:16px; }
.intro-motto { margin-top:28px; }
.section-bar { border-top:1px solid var(--line); padding:24px 0; display:flex; gap:24px; justify-content:space-between; align-items:baseline; }
.projects .section-bar h2 { font-size:var(--body); letter-spacing:-.015em; }
.filters { display:flex; flex-wrap:wrap; gap:12px 28px; margin:0 0 32px; }
.filters button { font-size:var(--label); text-transform:uppercase; letter-spacing:.065em; padding:8px 0; border:0; border-bottom:1px solid transparent; background:#fff; }
.filters button[aria-pressed=true] { border-bottom-color:#000; }
.project-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:95px 32px; align-items:start; }
.project { min-width:0; }
.project.wide { grid-column:1/8; }
.project.wide .project-photo { aspect-ratio:1.35; }
.project.lead-right { grid-column:8/13; margin-top:100px; }
.project.lead-right .project-photo { aspect-ratio:1.5; }
.project.inset { grid-column:9/13; margin-top:130px; }
.project.inset .project-photo { aspect-ratio:1; }
.project.landscape { grid-column:3/13; }
.project.landscape .project-photo { aspect-ratio:1.9; }
.project.commercial { grid-column:1/6; }
.project.commercial .project-photo { aspect-ratio:1.05; }
.project.last { grid-column:7/13; margin-top:160px; }
.project.last .project-photo { aspect-ratio:1.5; }
.project.architecture-portrait .project-photo { aspect-ratio:.95; }
.project.house-konstancin img { object-position:center 65%; }
.project-open { border:0; background:#fff; padding:0; width:100%; text-align:left; }
.project-photo { display:block; overflow:hidden; aspect-ratio:1.65; }
.project-photo img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.project-open:hover img { transform:scale(1.025); }
.project-caption { display:flex; justify-content:space-between; align-items:start; gap:20px; margin-top:18px; }
.project-title { display:block; font:400 var(--body)/1.5 'Syne',sans-serif; letter-spacing:-.015em; margin-top:5px; }
.project-location { text-align:right; max-width:140px; padding-top:3px; }
.studio { border-top:1px solid var(--line); padding-top:36px; margin-top:112px; text-align:center; }
.studio-content { max-width:900px; margin-inline:auto; }
.studio-content > h2 { margin-bottom:28px; text-align:left; }
.long-copy { font-size:var(--copy); max-width:720px; margin-left:0; margin-right:auto; text-align:left; }
.long-copy p+p { margin-top:24px; }
.studio-english { margin-top:40px; }
.team { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:40px; }
.team article { border-top:1px solid var(--line); padding-top:22px; }
.team-photo-frame { width:100%; aspect-ratio:1; overflow:hidden; margin-bottom:22px; }
.team-photo { width:100%; height:100%; object-fit:cover; }
.team-photo-hanna { object-position:50% 20%; transform:scale(1.8); transform-origin:50% 5%; }
.team-photo-pawel { object-position:50% 15%; }
.team h3 { font-size:var(--body); letter-spacing:-.015em; margin-bottom:8px; }
.team article > p:not(.label) { font-size:var(--copy); margin-top:18px; }
.team a { display:inline-block; font-size:var(--body); border-bottom:1px solid #000; margin-top:18px; }
.services { margin-top:112px; }
.services .section-bar { align-items:end; padding-top:36px; padding-bottom:32px; }
.service-list article { display:grid; grid-template-columns:1fr 1fr 1.5fr; gap:32px; border-top:1px solid var(--line); padding:28px 0 34px; }
.service-list h3 { font-size:var(--body); letter-spacing:-.015em; }
.service-list p { font-size:var(--copy); }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:56px; border-top:1px solid #000; padding:36px 0 72px; margin-top:100px; }
.contact h2 { margin-top:24px; }
.contact-people > div+div { margin-top:30px; }
.contact-people a { display:block; overflow-wrap:anywhere; }
.contact-people .label { margin-bottom:8px; }
.footer { border-top:1px solid var(--line); padding:24px 0 36px; display:flex; justify-content:space-between; gap:32px; font-size:var(--label); }
.footer p+p { margin-top:12px; }
.footer > a { white-space:nowrap; text-transform:uppercase; }
.project-dialog { width:min(1200px,calc(100vw - 64px)); max-height:calc(100svh - 40px); border:0; padding:28px; color:#000; background:#fff; }
.project-dialog::backdrop { background:rgb(0 0 0 / .7); }
.dialog-close { display:flex; gap:20px; justify-content:flex-end; align-items:center; border:0; background:#fff; font-size:var(--label); margin:0 0 20px auto; min-height:44px; text-transform:uppercase; }
.dialog-close span { font-size:var(--heading); line-height:1; }
.dialog-image { width:100%; max-height:calc(100svh - 230px); object-fit:contain; }
.dialog-caption { display:flex; justify-content:space-between; gap:20px; margin-top:20px; }
.dialog-caption h2 { font-size:var(--body); letter-spacing:-.015em; }
body.dialog-open { overflow:hidden; }
.project-link { display:block; width:100%; text-align:left; }
.project-link:hover img { transform:scale(1.025); }
.header nav a.active { text-decoration:underline; text-underline-offset:7px; }
.page-heading { padding-block:60px 64px; }
.page-heading .long-copy { margin-top:32px; }
.project-intro { padding-block:36px 64px; }
.back-link,.text-link { display:inline-block; font-size:var(--label); border-bottom:1px solid #000; }
.project-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:44px; }
.project-facts { margin:28px 0 0; font-size:var(--label); }
.project-facts > div { display:flex; gap:24px; margin-top:8px; }
.project-facts dt { width:100px; text-transform:uppercase; letter-spacing:.065em; }
.project-facts dd { margin:0; }
.detail-gallery { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:80px 32px; align-items:start; }
.detail-photo { min-width:0; }
.detail-photo:nth-child(6n+1) { grid-column:1/7; }
.detail-photo:nth-child(6n+2) { grid-column:8/13; margin-top:100px; }
.detail-photo:nth-child(6n+3) { grid-column:2/6; }
.detail-photo:nth-child(6n+4) { grid-column:7/12; margin-top:60px; }
.detail-photo:nth-child(6n+5) { grid-column:1/6; }
.detail-photo:nth-child(6n) { grid-column:7/13; margin-top:120px; }
.detail-photo img { width:100%; height:auto; }
.photo-credit { display:block; margin:8px 0 0; font:400 12px/1.7 'Plus Jakarta Sans',sans-serif; color:#000; text-transform:none; letter-spacing:0; }
.photo-credit[hidden] { display:none; }
.detail-photo figcaption { display:flex; justify-content:space-between; gap:20px; margin-top:16px; font:400 var(--body)/1.5 'Syne',sans-serif; }
.detail-photo figcaption .label { font-family:'Plus Jakarta Sans',sans-serif; text-align:right; }
.project-next { margin-top:72px; padding-block:28px 64px; border-top:1px solid var(--line); }
.project-next a { display:inline-block; margin-top:8px; font:400 var(--body)/1.5 'Syne',sans-serif; letter-spacing:-.015em; }
.standalone-studio { margin-top:40px; border:0; padding-top:20px; }
.clients { max-width:900px; margin:80px auto 72px; border-top:1px solid var(--line); padding-top:32px; }
.clients > .long-copy { margin-top:28px; }
.client-list { list-style:none; padding:0; margin:36px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px 32px; font-size:var(--copy); }
.publications { margin-top:60px; }
.publications h3 { font-size:var(--body); margin-bottom:22px; }
.publications a { display:flex; justify-content:space-between; gap:24px; padding-block:18px; border-top:1px solid var(--line); font-size:var(--copy); }
.publications a:hover { text-decoration:underline; text-underline-offset:5px; }
.service-details { margin-bottom:72px; }
.service-details > article { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px; padding:32px 0 48px; border-top:1px solid var(--line); }
.service-summary { grid-column:1/6; }
.service-description { grid-column:6/13; }
.services-heading { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:32px; }
.services-heading h1 { grid-column:1/-1; }
.services-heading .long-copy { grid-column:6/13; }
.service-details h2 { font-size:var(--body); letter-spacing:-.015em; }
.service-summary h2 { margin-top:0; }
.service-details article p,.service-details article ul { font-size:var(--copy); max-width:720px; margin-top:24px; }
.service-details .service-description > p { margin-top:0; }
.service-details article ul { padding-left:20px; }
.service-details li+li { margin-top:8px; }
.services-english { margin-top:44px; }
.services-english article { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding:28px 0; border-top:1px solid var(--line); }
.service-details .services-english article { grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px; }
.service-details .services-english h3 { grid-column:1/6; }
.service-details .services-english p { grid-column:6/13; }
.services-english h3 { font-size:var(--body); letter-spacing:-.015em; }
.services-english p { font-size:var(--copy); margin:0; }
.office-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px; margin-bottom:80px; }
.office-grid article { border-top:1px solid var(--line); padding-top:28px; }
.office-grid .label { margin:24px 0 12px; }
.office-grid a { display:block; overflow-wrap:anywhere; }
.office-grid article > p:not(.label) { margin-top:28px; font-size:var(--copy); }
.office-grid .text-link { display:inline-block; margin-top:20px; }
.office-map { display:block; width:100%; max-width:480px; height:220px; border:0; margin-top:24px; filter:grayscale(100%); }
@media(max-width:1100px) { .clients { margin-inline:var(--gutter); }.client-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .page-heading { padding-block:36px 44px; }
 .project-intro-grid,.office-grid { grid-template-columns:1fr; gap:32px; }
 .project-intro-grid { margin-top:32px; }
 .detail-gallery { display:block; }
 .detail-photo:nth-child(n) { width:90%; margin:0 0 40px; }
 .detail-photo:nth-child(2n) { width:78%; margin-left:auto; }
 .detail-photo:nth-child(3n) { width:84%; margin-left:6%; }
 .detail-photo figcaption { display:block; }.detail-photo figcaption .label { text-align:left; margin-top:8px; }
 .standalone-studio { margin-top:24px; }
 .clients { margin-top:60px; }.client-list { grid-template-columns:1fr 1fr; gap:16px; }
 .service-details > article,.services-english article,.service-details .services-english article { grid-template-columns:1fr; gap:16px; }
 .service-summary,.service-description,.service-details .services-english h3,.service-details .services-english p,.services-heading h1,.services-heading .long-copy { grid-column:1; }
 .services-heading { grid-template-columns:1fr; }
 .publications a { display:block; }.publications a .label { margin-top:8px; }
}
@media(min-width:2000px) { .wrap { max-width:1700px; margin-inline:auto; }.header { padding-inline:max(var(--gutter),calc((100vw - 1700px)/2)); } }
@media(max-width:1100px) { .header nav { gap:14px 20px; }.header nav a { font-size:var(--copy); }.intro { gap:32px; }.project-caption { display:block; }.project-location { text-align:left; max-width:none; margin-top:8px; }.studio { grid-template-columns:1fr; gap:24px; }.service-list article { grid-template-columns:1fr 2fr; }.service-list article > p { grid-column:2; } }
@media(max-width:760px) {
 :root { --gutter:24px; }
 .header { display:grid; grid-template-columns:1fr 48px; padding-block:12px; gap:12px; }
 .brand,.brand img { width:129.6px; }
 .menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:8px; width:48px; height:48px; padding:10px; border:0; background:#fff; }
 .menu-toggle span { height:1px; width:28px; background:#000; }
 .header.menu-ready nav { display:none; }
 .header.menu-open nav { display:flex; }
 .header nav { grid-column:1/-1; flex-direction:column; align-items:flex-start; border-top:1px solid var(--line); padding-top:12px; gap:0; }
 .header nav a { padding:12px 0; }
 .header nav .contact-link { margin-top:12px; }
 .intro { grid-template-columns:1fr; gap:24px; padding-top:36px; padding-bottom:36px; }
 .intro-copy { grid-column:1; width:100%; }
 .project-grid { display:block; }
 .project { margin:0 0 48px; }
 .project.inset { width:85%; margin:0 0 48px auto; }
 .project.lead-right { margin:0 0 48px; }
 .project.last { width:90%; margin:0 0 48px auto; }
 .filters { gap:8px 20px; margin-bottom:24px; }
 .project.wide .project-photo,.project.commercial .project-photo { aspect-ratio:1.15; }
 .project.landscape .project-photo { aspect-ratio:1.4; }
 .project-caption { margin-top:14px; }
 .studio,.services { margin-top:72px; }
 .team { grid-template-columns:1fr; gap:28px; }
 .services .section-bar { display:block; }.services .section-bar .label { margin-top:24px; }
 .service-list article { grid-template-columns:1fr; gap:12px; }.service-list article > p { grid-column:auto; }
 .contact { grid-template-columns:1fr; gap:32px; margin-top:60px; padding-bottom:48px; }
 .footer { flex-direction:column; }
 .project-dialog { width:calc(100vw - 24px); padding:16px; }.dialog-caption { display:block; }.dialog-caption .label { margin-top:8px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.project-photo img { transition:none; } }
