:root { --bg:#f5f5f2; --fg:#101010; --muted:#72726f; --line:rgba(16,16,16,.18); --sans:Arial, Helvetica, sans-serif; }
html[data-theme="dark"] { --bg:#111; --fg:#f5f5f2; --muted:#aaa; --line:rgba(245,245,242,.22); }
* { box-sizing:border-box; }
html { overflow-x:clip; scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:var(--sans); font-size:16px; line-height:1.45; transition:background .35s,color .35s; }
a { color:inherit; text-decoration:none; } img { display:block; max-width:100%; }
.skip-link { left:-999px; position:absolute; } .skip-link:focus { background:var(--bg); left:1rem; padding:1rem; top:1rem; z-index:10; }
.site-header { align-items:center; color:#fff; display:grid; grid-template-columns:1fr auto 1fr; left:0; padding:1.2rem 2vw; position:fixed; right:0; top:0; z-index:20; }
body.admin-bar .site-header { top:32px; }
body:not(.home) .site-header { background:rgba(16,16,16,.94); }
.site-brand { font-size:.8rem; font-weight:700; letter-spacing:-.06em; line-height:.78; }
.site-brand .custom-logo-link { display:block; line-height:0; }.site-brand .custom-logo { height:auto; max-height:34px; max-width:160px; width:auto; }
.primary-navigation ul,.language-switcher,.site-footer ul { display:flex; gap:1.25rem; list-style:none; margin:0; padding:0; }
.primary-navigation ul { flex-direction:row-reverse; }
.primary-navigation a,.language-switcher a,.theme-toggle { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.header-actions { align-items:center; display:flex; gap:1rem; justify-content:end; } .theme-toggle { background:none; border:0; color:inherit; cursor:pointer; padding:0; }
.mobile-nav-toggle { align-items:center; background:none; border:0; color:inherit; cursor:pointer; display:none; font:inherit; gap:.4rem; padding:0; }.mobile-nav-label { font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hero { background:#252525; color:#fff; display:flex; min-height:100svh; padding:10vh 5vw 5vw; position:relative; } .hero-media,.discipline-media,.about-media { inset:0; position:absolute; }.hero-media img,.discipline-media img,.about-media img { height:100%; object-fit:cover; width:100%; }.hero:before,.discipline:before { background:linear-gradient(130deg,rgba(0,0,0,.45),rgba(0,0,0,.04)); content:""; inset:0; position:absolute; z-index:1; }
.hero-content { align-self:end; max-width:1100px; position:relative; z-index:2; } .hero p,.eyebrow,.section-heading p,.archive-intro p,.project-header p { font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; } .hero h1 { font-size:clamp(3.5rem,10vw,10rem); letter-spacing:-.075em; line-height:.82; margin:.25rem 0 2.5rem; max-width:10ch; } .scroll-cue { font-size:.8rem; }
.disciplines { display:grid; grid-template-columns:repeat(4,1fr); } .discipline { aspect-ratio:3/5; background:#c7c6c1; color:#fff; min-width:0; overflow:hidden; position:relative; } .discipline p { bottom:1.1rem; font-size:.8rem; font-weight:700; left:1rem; letter-spacing:.06em; margin:0; position:absolute; text-transform:uppercase; z-index:2; writing-mode:vertical-rl; }
.projects-section { overflow:hidden; padding:0 0 .75rem; } .section-heading { align-items:center; display:flex; justify-content:space-between; padding:.55rem 1vw .65rem; }.section-heading p { margin:0; }.project-heading-actions { align-items:center; display:flex; gap:1rem; }.section-heading a { border-bottom:1px solid var(--fg); font-size:.8rem; padding-bottom:.2rem; }.project-slider-controls { display:flex; gap:.3rem; }.project-slider-controls button { background:none; border:1px solid var(--line); color:inherit; cursor:pointer; line-height:1; padding:.25rem .45rem; }
.project-rail { display:grid; gap:1px; grid-template-columns:repeat(6,minmax(0,1fr)); }.project-rail.is-auto-slider { display:flex; gap:1px; overflow:hidden; }.project-card { min-width:0; }.project-rail.is-auto-slider .project-card { flex:0 0 calc((100% - 5px) / 6); }.project-card img { aspect-ratio:4/5; background:#d8d7d1; height:auto; object-fit:cover; width:100%; }.project-card span { display:flex; justify-content:space-between; padding:.7rem 1rem; }.project-card strong { font-size:.9rem; font-weight:500; }.project-card small { color:var(--muted); }
.about-feature { background:#3c3c3a; color:#fff; min-height:100svh; overflow:hidden; position:relative; }.about-media img { object-position:right center; }.about-feature:before { background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.3)); content:""; inset:0; position:absolute; z-index:1; }.about-feature-inner { max-width:1100px; padding:10vw 5vw; position:relative; z-index:2; }.about-feature .eyebrow { margin:0 0 3rem; }.about-copy { font-size:clamp(1.1rem,1.8vw,1.65rem); line-height:1.22; max-width:850px; }.about-copy p { margin:0 0 2.1rem; }.about-copy .first-word { font-size:1.42em; font-weight:700; letter-spacing:-.05em; }
.site-footer { align-items:center; border-top:1px solid var(--line); display:flex; justify-content:space-between; padding:1.5rem 2vw; }.footer-logo .custom-logo { height:auto; max-height:30px; max-width:140px; width:auto; }.site-footer ul { gap:1.5rem; font-size:.8rem; text-transform:uppercase; }
.footer-overlay { align-items:center; background:rgba(34,34,34,.72); display:flex; inset:0; opacity:0; padding:1.5rem; pointer-events:none; position:fixed; transition:opacity .2s; z-index:90; }.footer-overlay.is-open { opacity:1; pointer-events:auto; }.footer-overlay-panel { background:#202020; color:#fff; margin:auto; max-height:min(78vh,800px); max-width:760px; overflow:auto; padding:4rem; position:relative; width:100%; }.footer-overlay-close { background:none; border:0; color:#fff; cursor:pointer; font-size:1.75rem; line-height:1; position:absolute; right:1rem; top:1rem; }.footer-overlay-content { font-size:1rem; line-height:1.5; }.footer-overlay-content h2 { font-size:clamp(2rem,5vw,4rem); letter-spacing:-.06em; line-height:.9; margin:0 0 2rem; }.footer-overlay-content h3 { font-size:.75rem; letter-spacing:.08em; margin:2rem 0 .4rem; text-transform:uppercase; }.footer-overlay-content p { margin:.3rem 0 1rem; }.footer-overlay-content a { border-bottom:1px solid currentColor; }.social-links { display:flex; gap:.75rem; margin-bottom:2rem; }.social-links a { align-items:center; border:1px solid rgba(255,255,255,.7); display:inline-flex; gap:.45rem; padding:.55rem .75rem; }.social-icon { font-size:1.15rem; font-weight:700; line-height:1; }.cookie-consent { align-items:center; background:rgba(32,32,32,.94); bottom:1rem; color:#fff; display:flex; gap:1rem; justify-content:space-between; left:1rem; max-width:680px; padding:.85rem 1rem; position:fixed; right:1rem; z-index:80; }.cookie-consent p { font-size:.78rem; margin:0; }.cookie-consent button { background:none; border:1px solid rgba(255,255,255,.75); color:#fff; cursor:pointer; font-size:.75rem; margin-left:.35rem; padding:.45rem .65rem; }
.archive-intro,.page-content,.project-header { padding:9rem 5vw 3rem; }.archive-intro h1,.page-content h1,.project-header h1 { font-size:clamp(3.3rem,9vw,9rem); letter-spacing:-.08em; line-height:.8; margin:0; }.project-back { border-bottom:1px solid currentColor; display:inline-block; font-size:.78rem; letter-spacing:.06em; margin-bottom:3.5rem; padding-bottom:.2rem; text-transform:uppercase; }.project-filters { display:flex; flex-wrap:wrap; gap:.6rem 1.25rem; padding:0 5vw 1rem; }.project-filters a { border-bottom:1px solid transparent; font-size:.78rem; text-transform:uppercase; }.project-filters a.is-active { border-color:currentColor; }.project-grid { display:grid; gap:1px; grid-template-columns:repeat(6,1fr); padding:0 5vw 10vw; }.project-grid .project-card { min-width:0; }.project-grid .project-card span { padding-left:0; padding-right:0; }.page-content>div { font-size:clamp(1rem,1.6vw,1.4rem); margin-left:25%; max-width:720px; }.page-content>div>*:first-child { margin-top:0; }.post-item { border-top:1px solid var(--line); margin-left:25%; max-width:720px; padding:2rem 0; }
.project-image-slider { height:min(75vw,900px); margin:0 5vw; overflow:hidden; position:relative; }.project-slider-slide { inset:0; margin:0; opacity:0; position:absolute; transition:opacity 900ms ease; }.project-slider-slide.is-active { opacity:1; }.project-slider-slide img { height:100%; object-fit:cover; width:100%; }.project-body { display:grid; gap:8vw; grid-template-columns:minmax(0,2fr) minmax(180px,1fr); margin:5rem 20vw 10vw 5vw; }.project-content { font-size:1.15rem; }.project-facts { border-top:1px solid var(--line); }.project-facts div { border-bottom:1px solid var(--line); padding:.7rem 0; }.project-facts dt { color:var(--muted); font-size:.75rem; text-transform:uppercase; }.project-facts dd { margin:0; }
.project-video { aspect-ratio:16/9; background:#1d1d1d; margin:0 5vw; position:relative; }.project-video iframe { border:0; height:100%; width:100%; }.video-consent-button { align-items:center; background:none; border:1px solid rgba(255,255,255,.8); color:#fff; cursor:pointer; display:flex; font:inherit; gap:.7rem; left:50%; padding:.75rem 1rem; position:absolute; top:50%; transform:translate(-50%,-50%); }.video-consent-button span { font-size:1.35rem; }
.mb-lightbox { align-items:center; background:rgba(0,0,0,.96); display:flex; inset:0; justify-content:center; opacity:0; padding:4rem 5rem; pointer-events:none; position:fixed; transition:opacity .2s; z-index:100; }.mb-lightbox.is-open { opacity:1; pointer-events:auto; }.mb-lightbox img { max-height:100%; max-width:100%; object-fit:contain; }.mb-lightbox button { background:none; border:0; color:#fff; cursor:pointer; font:inherit; position:absolute; }.mb-lightbox-close { font-size:1.6rem; right:1.5rem; top:1rem; }.mb-lightbox-prev,.mb-lightbox-next { font-size:3rem; padding:1rem; top:50%; transform:translateY(-50%); }.mb-lightbox-prev { left:1rem; }.mb-lightbox-next { right:1rem; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) { --bg:#111; --fg:#f5f5f2; --muted:#aaa; --line:rgba(245,245,242,.22); } }
@media (min-width:761px) and (max-width:1100px) { .disciplines { grid-template-columns:repeat(2,1fr); }.discipline { aspect-ratio:4/5; }.project-grid { grid-template-columns:repeat(3,1fr); }.project-rail.is-auto-slider .project-card { flex-basis:calc((100% - 2px) / 3); }.project-body { margin-right:8vw; }.page-content>div,.post-item { margin-left:15%; } }
@media (max-width:760px) { .site-header { grid-template-columns:1fr auto; }.mobile-nav-toggle { display:inline-flex; }.primary-navigation { background:rgba(16,16,16,.98); display:none; left:0; padding:1rem 5vw 1.5rem; position:fixed; right:0; top:68px; }body.admin-bar .primary-navigation { top:114px; }.site-header.is-menu-open { background:rgba(16,16,16,.98); }.site-header.is-menu-open .primary-navigation { display:block; }.site-header.is-menu-open .primary-navigation ul { align-items:flex-start; flex-direction:column; gap:1rem; }.disciplines { grid-template-columns:repeat(2,1fr); }.discipline { aspect-ratio:3/4; }.discipline p { writing-mode:initial; }.project-rail { display:flex; overflow-x:auto; }.project-rail .project-card,.project-rail.is-auto-slider .project-card { flex:0 0 72vw; }.site-footer { align-items:flex-start; flex-direction:column; gap:1.5rem; }.site-footer ul { flex-wrap:wrap; gap:1rem; }.footer-overlay-panel { max-height:86vh; padding:3.5rem 1.5rem 2rem; }.cookie-consent { align-items:flex-start; flex-direction:column; }.about-feature-inner { padding:9rem 5vw 4rem; }.about-copy { font-size:1.1rem; }.project-grid { gap:1rem; grid-template-columns:repeat(2,1fr); }.page-content>div,.post-item { margin-left:0; }.project-body { display:block; margin:3rem 5vw 6rem; }.project-facts { margin-top:3rem; }.archive-intro,.page-content,.project-header { padding-top:7rem; }.project-image-slider { height:90vw; margin:0; }.mb-lightbox { padding:4rem 3rem; }.mb-lightbox-prev { left:0; }.mb-lightbox-next { right:0; } }
@media screen and (max-width:782px) { body.admin-bar .site-header { top:46px; } }
