: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 { 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: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; }
.hero { background:#252525 var(--hero-image) center/cover no-repeat; color:#fff; display:flex; min-height:100svh; padding:10vh 5vw 5vw; position:relative; } .hero:before,.discipline:before { background:linear-gradient(130deg,rgba(0,0,0,.45),rgba(0,0,0,.04)); content:""; inset:0; position:absolute; }
.hero-content { align-self:end; max-width:1100px; position:relative; } .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 var(--discipline-image) center/cover no-repeat; color:#fff; min-width:0; 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:1; writing-mode:vertical-rl; }
.projects-section { padding:12vw 0 9vw 5vw; overflow:hidden; } .section-heading { align-items:center; display:flex; justify-content:space-between; padding:0 5vw 2rem 0; }.section-heading p { margin:0; }.section-heading a,.about-teaser>a { border-bottom:1px solid var(--fg); font-size:.8rem; padding-bottom:.2rem; }
.project-rail { display:flex; gap:1.25rem; overflow-x:auto; padding:0 5vw 1rem 0; scrollbar-width:thin; }.project-card { flex:0 0 min(72vw,540px); }.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-top:.7rem; }.project-card strong { font-size:.9rem; font-weight:500; }.project-card small { color:var(--muted); }
.about-feature { background:#3c3c3a var(--about-image) right center/cover no-repeat; color:#fff; min-height:100svh; position:relative; }.about-feature:before { background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.3)); content:""; inset:0; position:absolute; }.about-feature-inner { max-width:1100px; padding:10vw 5vw; position:relative; }.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 { border-top:1px solid var(--line); display:grid; gap:3rem; grid-template-columns:2fr 1fr 1fr; padding:3rem 5vw 2rem; }.footer-kicker { font-size:.75rem; font-weight:700; letter-spacing:.1em; }.footer-email { font-size:clamp(1.25rem,2.2vw,2.4rem); letter-spacing:-.04em; }.site-footer ul { flex-direction:column; gap:.45rem; font-size:.85rem; }.footer-copy { align-self:end; color:var(--muted); font-size:.75rem; text-align:right; }
.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-grid { display:grid; gap:1.5rem; grid-template-columns:repeat(3,1fr); padding:2rem 5vw 10vw; }.project-grid .project-card { min-width: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-hero { margin:0 5vw; }.project-hero img { height:min(75vw,900px); 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; }
@media (prefers-color-scheme: dark) { html:not([data-theme]) { --bg:#111; --fg:#f5f5f2; --muted:#aaa; --line:rgba(245,245,242,.22); } }
@media (max-width:760px) { .site-header { grid-template-columns:1fr auto; }.primary-navigation { display:none; }.disciplines { grid-template-columns:repeat(2,1fr); }.discipline { aspect-ratio:3/4; }.discipline p { writing-mode:initial; }.site-footer { grid-template-columns:1fr; gap:2rem; }.footer-copy { text-align:left; }.about-feature-inner { padding:9rem 5vw 4rem; }.about-copy { font-size:1.1rem; }.project-grid { grid-template-columns: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; } }
