:root { --ink:#161b1d; --soft:#4d5559; --paper:#f7f7f4; --white:#fff; --line:#d8dcd9; --accent:#d65c37; --dark:#202829; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial, Helvetica, sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
img { display:block; max-width:100%; }
figure { margin:0; }
figcaption { color:#666e6e; font-size:.8rem; line-height:1.5; margin-top:12px; }
p { margin:0; }
::selection { background:#ffdece; color:var(--ink); }
.container { width:min(1160px,calc(100% - 72px)); margin-inline:auto; }
.skip-link { position:absolute; top:-100px; left:12px; z-index:20; padding:12px 16px; background:white; }
.skip-link:focus { top:10px; }
.accent, .logo span { color:var(--accent); }
.site-header { background:var(--paper); border-bottom:1px solid var(--line); }
.header-content { min-height:85px; display:flex; justify-content:space-between; align-items:center; gap:30px; }
.logo { font-size:1.4rem; font-weight:700; letter-spacing:-.045em; white-space:nowrap; }
.site-header nav { display:flex; align-items:center; gap:40px; }
.site-header nav a { font-size:.94rem; font-weight:600; transition:color .15s ease; white-space:nowrap; }
.site-header nav a:last-child { border:1px solid var(--ink); padding:11px 15px; }
.site-header nav a:last-child:hover { background:var(--ink); color:white; }
.home-hero { min-height:690px; display:grid; grid-template-columns:1fr .83fr; align-items:center; gap:8%; padding-block:90px 100px; }
.small-intro { font-size:.85rem; font-weight:700; letter-spacing:.095em; text-transform:uppercase; color:var(--accent); }
.home-hero h1 { font-size:clamp(4.9rem,8.6vw,8.9rem); letter-spacing:-.095em; line-height:.93; font-weight:700; margin:25px 0 35px; }
.home-hero h1 span { color:var(--accent); }
.hero-lead { max-width:570px; font-size:1.27rem; line-height:1.55; font-weight:500; }
.hero-extra { color:var(--soft); line-height:1.67; max-width:560px; font-size:1.04rem; margin-top:17px; }
.inline-link { font-weight:700; font-size:1rem; display:inline-flex; gap:11px; align-items:center; border-bottom:2px solid var(--ink); padding-bottom:6px; transition:color .15s, border-color .15s; }
.inline-link:hover { color:var(--accent); border-color:var(--accent); }
.hero-text > .inline-link { margin-top:30px; }
.hero-image { align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.hero-image img { width:100%; height:470px; object-fit:cover; object-position:center; }
.hero-image figcaption { max-width:450px; }
.work-section { background:var(--white); border-block:1px solid var(--line); padding:95px 0 106px; }
.section-intro { display:flex; align-items:end; justify-content:space-between; gap:35px; margin-bottom:63px; }
.section-intro h2 { font-size:clamp(2.6rem,4.6vw,4.7rem); line-height:1.06; margin:0; letter-spacing:-.07em; }
.section-intro p { color:var(--soft); max-width:335px; line-height:1.55; font-size:1.02rem; }
.work-entry { display:grid; grid-template-columns:minmax(0,1.17fr) minmax(0,.83fr); gap:7.5%; align-items:center; padding:34px 0 65px; }
.work-entry + .work-entry { border-top:1px solid var(--line); padding-top:76px; }
.work-image { display:block; overflow:hidden; background:#e2e2de; }
.work-image img { width:100%; height:410px; object-fit:cover; transition:transform .3s ease; }
.work-image:hover img { transform:scale(1.02); }
.work-image.press-image { background:#ebe6dc; }
.work-image.press-image img { object-position:center 45%; }
.work-copy { padding-block:15px; }
.project-info { text-transform:uppercase; font-size:.77rem; letter-spacing:.065em; color:#687071; font-weight:700; }
.work-copy h3 { font-size:clamp(2rem,3vw,3.2rem); line-height:1.13; letter-spacing:-.057em; margin:19px 0 22px; }
.work-copy > p:not(.project-info) { color:var(--soft); font-size:1.06rem; line-height:1.68; margin-bottom:28px; }
.work-entry.reverse .work-image { order:2; }
.work-entry.reverse .work-copy { order:1; }
.about-section { background:var(--dark); color:white; padding:105px 0 115px; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:11%; }
.about-grid h2 { font-size:clamp(2.5rem,3.9vw,4.4rem); letter-spacing:-.064em; line-height:1.16; margin:24px 0 0; max-width:550px; font-weight:700; }
.about-text { padding-top:11px; }
.about-text p { color:#d9dfdc; font-size:1.1rem; line-height:1.74; margin-bottom:24px; }
.more-section { padding-block:99px 116px; }
.section-intro.compact { margin-bottom:42px; }
.more-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; border-top:1px solid var(--line); }
.more-item { padding-top:26px; }
.more-item > span { color:#696f71; font-size:.76rem; font-weight:700; letter-spacing:.09em; }
.more-item h3 { font-size:1.7rem; margin:17px 0; letter-spacing:-.04em; }
.more-item p { color:var(--soft); font-size:1.04rem; line-height:1.7; max-width:530px; }
.more-item .inline-link { margin-top:23px; }
.last-note { background:#eee9e3; padding:70px 0; }
.last-note-content { display:flex; align-items:center; justify-content:space-between; gap:50px; }
.last-note-content p { font-size:1.38rem; font-weight:600; line-height:1.45; max-width:640px; letter-spacing:-.025em; }
.outline-link { border:1px solid var(--ink); padding:16px 20px; font-weight:700; white-space:nowrap; transition:background .15s,color .15s; }
.outline-link:hover { background:var(--ink); color:white; }
.site-footer { background:var(--paper); border-top:1px solid var(--line); }
.footer-content { padding-block:33px; display:flex; align-items:center; gap:18px; font-size:.87rem; color:#667072; }
.footer-content strong { color:var(--ink); font-size:1rem; }
.footer-content a { margin-left:auto; color:var(--ink); font-weight:700; }

/* Project pages */
.case-header { padding-top:56px; padding-bottom:55px; }
.back-link { display:inline-block; font-size:.91rem; color:var(--soft); border-bottom:1px solid #abb1b0; padding-bottom:4px; margin-bottom:65px; }
.case-header h1 { font-size:clamp(3.9rem,7vw,7rem); line-height:1.02; letter-spacing:-.075em; margin:20px 0 27px; font-weight:700; }
.case-lead { font-size:clamp(1.28rem,1.9vw,1.75rem); line-height:1.48; max-width:780px; color:#3f4849; }
.case-hero-image img { width:100%; max-height:585px; object-fit:cover; }
.case-hero-image.narrow img { max-height:650px; object-fit:contain; background:#e6e6e1; }
.case-hero-image figcaption { margin-block:13px 0; }
.case-facts { display:grid; grid-template-columns:1fr 1.3fr 1.2fr; gap:35px; border-block:1px solid var(--line); padding-block:28px; margin-top:63px; margin-bottom:22px; }
.case-facts div { display:flex; flex-direction:column; gap:11px; }
.case-facts span { color:#6a7373; font-size:.75rem; letter-spacing:.09em; font-weight:700; }
.case-facts strong { font-size:1.05rem; line-height:1.45; }
.case-footnote { margin-bottom:0!important; }
.footnote { color:#686f70; font-size:.82rem; line-height:1.5; }
.case-section { display:grid; grid-template-columns:200px minmax(0,1fr); gap:7%; border-bottom:1px solid var(--line); padding-block:75px 82px; }
.case-label { font-size:.8rem; color:var(--accent); font-weight:700; padding-top:11px; }
.case-content { max-width:820px; }
.case-content h2 { font-size:clamp(2.25rem,3.5vw,3.8rem); letter-spacing:-.062em; line-height:1.17; margin:0 0 27px; }
.case-content > p { font-size:1.16rem; line-height:1.78; color:#394246; margin-bottom:22px; }
.case-inline-image { margin:37px 0 4px; }
.case-inline-image img { width:100%; max-height:540px; object-fit:cover; background:#e5e3db; }
.image-pair { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-top:37px; }
.image-pair img { width:100%; height:280px; object-fit:cover; background:#e4e4df; }
.image-pair figcaption { padding-right:10px; }
.reference-links { margin-top:40px; padding:24px 0 10px; border-top:1px solid var(--line); display:grid; gap:11px; }
.reference-links p { font-size:.95rem; color:var(--soft); margin-bottom:4px; }
.reference-links a { font-size:.96rem; text-decoration:underline; text-underline-offset:4px; }
.case-next { display:flex; justify-content:space-between; align-items:center; gap:30px; padding-block:60px 90px; font-weight:700; font-size:1rem; }
.case-next a { border-bottom:2px solid var(--ink); padding-bottom:8px; }
.case-next a:hover { border-color:var(--accent); }

@media (max-width: 970px) {
  .home-hero { grid-template-columns:1fr 1fr; gap:6%; min-height:0; }
  .home-hero h1 { font-size:clamp(4rem,8vw,6rem); }
  .hero-image img { height:410px; }
  .work-entry { gap:5%; }
  .work-image img { height:355px; }
  .work-copy h3 { font-size:2.2rem; }
  .about-grid { gap:6%; }
  .case-section { grid-template-columns:145px minmax(0,1fr); gap:5%; }
}
@media (max-width: 720px) {
  .container { width:min(100% - 40px,1160px); }
  .header-content { min-height:72px; gap:12px; }
  .logo { font-size:1.1rem; }
  .site-header nav { gap:18px; }
  .site-header nav a { font-size:.81rem; }
  .site-header nav a:last-child { border:none; padding:0; }
  .home-hero { grid-template-columns:1fr; gap:32px; padding-block:67px 75px; }
  .home-hero h1 { font-size:clamp(4.5rem,15vw,6.4rem); margin:20px 0 25px; }
  .hero-lead { font-size:1.17rem; }
  .hero-image img { height:auto; max-height:520px; aspect-ratio:1.45; object-fit:cover; }
  .work-section { padding:70px 0 78px; }
  .section-intro { display:block; margin-bottom:25px; }
  .section-intro h2 { font-size:3.2rem; margin-bottom:15px; }
  .work-entry, .work-entry.reverse { display:flex; flex-direction:column; align-items:stretch; gap:24px; padding:28px 0 55px; }
  .work-entry + .work-entry { padding-top:58px; }
  .work-entry.reverse .work-image, .work-entry.reverse .work-copy { order:unset; }
  .work-image img { height:auto; aspect-ratio:1.5; object-fit:cover; }
  .work-copy { padding-block:0; }
  .work-copy h3 { font-size:2.35rem; margin-block:14px 18px; }
  .about-section { padding:77px 0; }
  .about-grid { grid-template-columns:1fr; gap:26px; }
  .about-grid h2 { font-size:3rem; }
  .more-section { padding-block:70px; }
  .more-grid { grid-template-columns:1fr; gap:34px; }
  .more-item + .more-item { border-top:1px solid var(--line); padding-top:34px; }
  .last-note-content { display:block; }
  .last-note-content p { margin-bottom:27px; }
  .footer-content { flex-wrap:wrap; gap:7px 18px; }
  .footer-content span { width:100%; order:3; }
  .case-header { padding-top:32px; padding-bottom:38px; }
  .back-link { margin-bottom:58px; }
  .case-header h1 { font-size:clamp(3.3rem,11vw,5.4rem); }
  .case-hero-image img { max-height:460px; }
  .case-facts { grid-template-columns:1fr 1fr; gap:27px; margin-top:40px; }
  .case-section { display:block; padding-block:53px 61px; }
  .case-label { padding:0; margin-bottom:23px; }
  .case-content h2 { font-size:2.5rem; }
  .case-content > p { font-size:1.08rem; }
  .image-pair img { height:auto; aspect-ratio:1.15; }
  .case-next { padding-block:45px 60px; }
}
@media (max-width: 430px) {
  .container { width:calc(100% - 30px); }
  .logo { font-size:1rem; }
  .site-header nav { gap:12px; }
  .site-header nav a { font-size:.75rem; }
  .site-header nav a:last-child { display:none; }
  .home-hero h1 { font-size:4.7rem; }
  .image-pair { grid-template-columns:1fr; }
  .case-facts { grid-template-columns:1fr; gap:20px; }
  .case-next { font-size:.88rem; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .work-image img { transition:none; }
}
