:root{--paper:#edf2f5;--bone:#dbe5e9;--ink:#171b19;--muted:#636a64;--line:#c8d3d9;--rail:210px;--sans:"IBM Plex Sans",sans-serif;--gutter:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;border-radius:0}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #4a00e0;outline-offset:5px}img{display:block;max-width:100%;height:auto}h1,h2,p,figure{margin:0}h1,h2{font-weight:500}button[hidden],[hidden]{display:none!important}.skip-link{position:fixed;top:10px;left:10px;z-index:100;padding:12px;background:#171b19;color:#fff;transform:translateY(-180%)}.skip-link:focus{transform:none}
.masthead{position:fixed;inset:0 auto 0 0;width:var(--rail);padding:34px 24px 24px;display:flex;flex-direction:column;z-index:4;border-right:1px solid var(--line);background:var(--paper)}.identity{display:block;width:160px;max-width:100%;margin-bottom:44px}.brand-logo{width:100%;height:auto}.archive-marker{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:600}.marker-dot{width:6px;height:6px;background:var(--ink);border-radius:50%}.masthead-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:18px}.masthead nav{display:flex;flex-direction:column;gap:0;margin-top:34px;font-size:12px}.masthead nav a{display:flex;justify-content:space-between;align-items:center;min-height:44px;border-top:1px solid var(--line)}.masthead nav a:last-child{border-bottom:1px solid var(--line)}.masthead nav a:hover{color:#000;text-decoration:underline;text-underline-offset:4px}.masthead nav span{font-size:11px}.preview-label{margin-top:auto;font-size:10px;letter-spacing:.02em;color:var(--muted)}.page{margin-left:var(--rail)}
.works{padding:0 var(--gutter) 45px}.catalogue-heading{min-height:132px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:24px 0}.catalogue-heading h1{font-size:clamp(25px,2.55vw,40px);line-height:1.15;letter-spacing:-.045em}.catalogue-heading p{font-size:12px;color:var(--muted);line-height:1.5;max-width:180px}.catalogue-tools{position:relative;margin-bottom:20px}.index-controls{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:24px;padding-right:102px}.filters,.view-controls{display:flex;gap:22px}.index-controls button{position:relative;padding:12px 0;font-size:12px;min-height:44px;color:var(--muted)}.index-controls button[aria-pressed=true]{color:var(--ink);font-weight:600}.index-controls button[aria-pressed=true]:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}.index-controls button:hover{color:#000}.result-count{position:absolute;right:0;top:14px;font-size:11px;color:var(--muted);max-width:95px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 18px;align-items:start}.project-entry{min-width:0}.project-entry.lead{grid-column:span 2}.project-image{display:block;position:relative;overflow:hidden;background:#e4e7e1;aspect-ratio:1/1}.lead .project-image{aspect-ratio:2.045/1}.project-image img{width:100%;height:100%;object-fit:cover}.lead .project-image img{object-position:center 47%}.image-open{position:absolute;bottom:14px;right:14px;font-size:11px;background:var(--paper);color:var(--ink);padding:9px 12px;opacity:0;transform:translateY(5px);pointer-events:none}.project-image:hover .image-open,.project-image:focus-visible .image-open{opacity:1;transform:none}.project-label{display:grid;grid-template-columns:22px 1fr auto;column-gap:7px;row-gap:2px;padding-top:10px}.project-number{font-size:10px;color:var(--muted);grid-row:1/3;line-height:22px;font-variant-numeric:tabular-nums}.project-label h2{font-size:15px;font-weight:600;line-height:1.45;letter-spacing:-.025em}.project-type{grid-column:2;grid-row:2;font-size:11px;color:var(--muted)}.project-year{grid-column:3;grid-row:1;font-size:10px;color:var(--muted);padding-top:3px}.project-label:hover h2{text-decoration:underline;text-underline-offset:4px}.project-grid:has(.project-entry[hidden]) .lead{grid-column:span 1}.project-grid:has(.project-entry[hidden]) .lead .project-image{aspect-ratio:1}
.project-grid.list-view{display:block}.list-view .project-image{display:none}.list-view .project-label{grid-template-columns:35px 1fr minmax(160px,32%) 70px;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:22px 10px}.list-view .project-label:hover{background:#e7ebe3}.list-view .project-number{grid-row:1}.list-view .project-label h2{font-size:21px;font-weight:500}.list-view .project-type{grid-column:3;grid-row:1;font-size:12px}.list-view .project-year{grid-column:4;grid-row:1;text-align:right;font-size:12px}
footer{display:flex;justify-content:space-between;gap:24px;padding:24px var(--gutter);border-top:1px solid var(--line);font-size:11px;color:var(--muted)}footer>a:hover{text-decoration:underline;text-underline-offset:4px}
.project-top{display:flex;justify-content:space-between;padding:26px var(--gutter) 0;font-size:11px;color:var(--muted)}.project-top a{padding:6px 0}.project-intro{padding:32px var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.project-intro h1{font-size:clamp(28px,3.3vw,52px);line-height:1.12;letter-spacing:-.045em;overflow-wrap:anywhere}.project-meta{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:11px;color:var(--muted);margin-top:14px}.project-intro>p{font-size:14px;line-height:1.65;max-width:490px;padding-top:2px}.gallery{padding:0 var(--gutter) 40px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px;align-items:center}.plate{min-width:0}.plate.wide{grid-column:1/-1}.plate img{width:100%;height:auto;max-height:850px;object-fit:contain}.plate:first-child img{max-height:76vh;object-position:center}.plate figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.plate figcaption span:last-child{color:var(--ink)}.adjacent-projects{display:grid;grid-template-columns:1fr 1fr;margin:0 var(--gutter) 40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.adjacent-projects a{display:flex;flex-direction:column;gap:12px;padding:25px 16px 25px 0}.adjacent-projects a:last-child{padding-left:24px;border-left:1px solid var(--line)}.adjacent-projects span{font-size:11px;color:var(--muted)}.adjacent-projects strong{font-size:23px;font-weight:500;letter-spacing:-.03em}.adjacent-projects a:hover strong{text-decoration:underline;text-underline-offset:6px}
@media(min-width:1800px){:root{--rail:240px;--gutter:40px}.masthead{padding-left:34px}.project-label h2{font-size:18px}.project-type{font-size:13px}}
@media(max-width:1100px){:root{--rail:170px;--gutter:22px}.masthead{padding:30px 17px 20px}.identity{width:136px}.project-grid{gap:28px 14px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-entry.lead{grid-column:span 1}.lead .project-image{aspect-ratio:1}.catalogue-heading p{display:none}.project-year{display:none}.filters,.view-controls{gap:16px}.project-intro{gap:25px}.project-intro>p{font-size:13px}.result-count{font-size:10px}.index-controls{padding-right:88px}}
@media(max-width:700px){:root{--rail:0px;--gutter:16px}.masthead{position:relative;width:100%;height:auto;padding:18px var(--gutter);flex-direction:row;align-items:center;border-right:0;border-bottom:1px solid var(--line);gap:20px}.identity{width:136px;margin:0}.archive-marker{font-size:12px;margin-left:auto;gap:6px}.marker-dot{width:4px;height:4px}.masthead-note,.preview-label{display:none}.masthead nav{margin:0;font-size:11px}.masthead nav a:first-child{display:none}.masthead nav a:last-child{border:0;gap:8px;min-height:44px}.masthead nav span{font-size:12px}.catalogue-heading{min-height:91px;padding:24px 0}.catalogue-heading h1{font-size:27px;letter-spacing:-.04em}.catalogue-tools{margin-bottom:16px}.index-controls{padding:0;gap:10px;flex-wrap:wrap}.filters{gap:20px}.view-controls{gap:15px}.index-controls button{font-size:11px}.result-count{position:static;margin-top:10px;max-width:none}.project-grid{gap:26px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-entry.lead{grid-column:1/-1}.lead .project-image{aspect-ratio:1.3}.project-label{grid-template-columns:1fr;gap:3px;padding-top:8px}.project-number{display:none}.project-label h2{font-size:13px;grid-column:1;grid-row:1}.project-type{font-size:10px;grid-column:1;grid-row:2;line-height:1.4}.project-year{display:none}.image-open{display:none}.project-grid:has(.project-entry[hidden]) .lead{grid-column:span 1}.list-view .project-label{grid-template-columns:1fr 60px;padding:18px 2px;gap:3px}.list-view .project-label h2{font-size:18px;grid-column:1;grid-row:1}.list-view .project-type{grid-column:1;grid-row:2;font-size:11px}.list-view .project-year{display:block;grid-column:2;font-size:10px}.list-view .project-number{display:none}.project-top{padding-top:18px}.project-intro{display:block;padding-top:22px;padding-bottom:25px}.project-intro h1{font-size:36px}.project-meta{margin-top:10px}.project-intro>p{margin-top:22px;font-size:14px;max-width:none}.gallery{gap:24px 12px}.plate img{max-height:none}.plate:first-child img{max-height:76vh}.plate figcaption{font-size:9px;gap:8px}.plate figcaption span:nth-child(2){display:none}.plate:not(.wide) figcaption span:last-child{display:none}.adjacent-projects{margin-bottom:25px}.adjacent-projects strong{font-size:18px;line-height:1.3}.adjacent-projects a:last-child{padding-left:16px}footer{padding-top:20px;padding-bottom:20px;font-size:10px}footer>span{display:none}.image-dialog{padding:12px}.viewer-controls,.viewer-navigation{font-size:11px}}
@media(max-width:370px){.masthead{gap:12px}.identity{width:112px}.archive-marker{font-size:11px}.masthead nav{font-size:10px}.catalogue-heading h1{font-size:24px}.filters{gap:16px}.view-controls{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Shared Labs header replaces the archive-only sidebar. */
html{scroll-behavior:auto;scrollbar-gutter:auto;overflow-x:clip;scroll-padding-top:calc(var(--nav-height) + 16px)}
.page{margin:0 auto;max-width:1660px}
.catalogue-heading{min-height:112px}
.gallery{display:flex;flex-direction:column;gap:28px;align-items:stretch}
.gallery-row{display:grid;gap:18px;align-items:start;min-width:0}
.gallery-row .plate{min-width:0;margin:0}
.gallery-row .plate img{width:100%;height:auto;max-height:none;object-fit:contain}
.gallery-row .plate figcaption{min-height:18px}
.gallery-row .plate figcaption span:last-child{display:inline}
@media(max-width:700px){
  .gallery{gap:24px}
  .gallery-row{gap:12px}
  .gallery-row .plate figcaption span:not(:first-child){display:none}
  .catalogue-heading{min-height:91px}
}

/* Archive uses the same reading, metadata and title scales as the main site. */
body{font-family:var(--sans);font-size:var(--type-body);line-height:var(--leading-body)}
.catalogue-heading h1,.project-intro h1{font-size:var(--type-h2);line-height:1.1;letter-spacing:-.035em}
.project-intro>p{font-size:var(--type-body);line-height:var(--leading-body);max-width:60ch}
.project-label h2{font-size:1rem;line-height:1.35;font-weight:500;letter-spacing:-.015em}
.project-meta,.project-top,.project-number,.project-year,.plate figcaption,.result-count,.filters,.view-controls,footer{font-family:var(--mono);font-size:var(--type-label);line-height:1.5}
.project-image,.project-image img{cursor:pointer}
.plate img{cursor:default}
img{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}
.project-label{padding-bottom:8px}
.index-controls button[aria-pressed=true]{font-weight:inherit}
.result-count{position:static;margin-top:10px;max-width:none}
.index-controls{padding-right:0}
/* Short filtered views retain the same native scrollbar and column widths. */
.archive-index{min-height:calc(100dvh + 1px)}
@media(max-width:700px){.project-label h2{font-size:.9375rem}.catalogue-heading h1,.project-intro h1{font-size:var(--type-h2)}}
