:root{--bg:#080808;--surface:#101010;--paper:#f3f1ec;--ink:#111;--muted:#8e8b84;--line:#282828;--gold:#c5a36b;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--paper);font-family:Arial,Helvetica,sans-serif;line-height:1.6}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.035;background-image:radial-gradient(#fff .5px,transparent .5px);background-size:5px 5px}a{color:inherit;text-decoration:none}button{font:inherit}.container{width:min(calc(100% - 56px),var(--max));margin:auto}.section{padding:128px 0}.section-light{background:var(--paper);color:var(--ink)}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:700;color:#898782;margin:0 0 20px;text-transform:uppercase}.section-light .eyebrow{color:#777}.brand{font-size:23px;font-weight:900;letter-spacing:-.08em}.brand span{color:var(--gold)}.site-header{position:fixed;z-index:20;top:0;left:0;width:100%;background:rgba(8,8,8,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between}.nav-links{display:flex;gap:28px;align-items:center;font-size:9px;text-transform:uppercase;letter-spacing:.16em}.nav-links a{opacity:.68;transition:.25s}.nav-links a:hover{opacity:1}.nav-cta{border:1px solid #555;padding:10px 15px;opacity:1!important}.nav-toggle{display:none;background:none;border:0}.nav-toggle span{display:block;width:22px;height:1px;background:#fff;margin:4px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:15px;top:15px;background:#fff;color:#000;padding:10px;z-index:99}.hero{min-height:100vh;padding-top:145px;padding-bottom:90px;display:grid;grid-template-columns:1fr .86fr;gap:75px;align-items:center}.hero h1{font-size:clamp(65px,9vw,128px);line-height:.8;letter-spacing:-.08em;margin:0 0 34px}.hero h1 em,.statement h2 span,.about-copy h2 em,.contact h2 em,.case-copy h2 em{font-family:Georgia,serif;font-weight:400;color:#aaa}.role{font-size:12px;letter-spacing:.22em;font-weight:700;margin:0 0 8px}.disciplines{font-size:10px;letter-spacing:.19em;color:var(--gold);margin:0 0 28px}.hero-text{max-width:610px;color:#a19f99;font-size:16px;line-height:1.8}.hero-actions{display:flex;gap:24px;align-items:center;margin-top:34px}.button{display:inline-flex;align-items:center;gap:10px;padding:15px 20px;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;transition:.25s}.button-light{background:var(--paper);color:#111}.button:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.18)}.text-link{font-size:9px;text-transform:uppercase;letter-spacing:.15em;border-bottom:1px solid #555;padding-bottom:5px;transition:.25s}.text-link:hover{color:var(--gold);border-color:var(--gold)}.hero-photo{height:660px;position:relative;overflow:hidden;border:1px solid #333;background:#111;box-shadow:0 35px 80px rgba(0,0,0,.3)}.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-photo:after,.archive-photo:after,.project-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.68));pointer-events:none}.photo-caption,.photo-index{position:absolute;z-index:2;font-size:8px;letter-spacing:.18em;color:#ddd}.photo-caption{left:25px;bottom:25px}.photo-index{right:25px;top:25px}.statement{padding:105px 0;border-block:1px solid var(--line)}.statement-grid{display:grid;grid-template-columns:.55fr 1.4fr .8fr;gap:40px}.statement h2{font-size:clamp(45px,6vw,78px);line-height:.92;letter-spacing:-.065em;margin:0}.statement-grid>p:last-child{color:#85827c;margin-top:8px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:38px}.section-heading h2,.archive-group h3{font-size:clamp(48px,7vw,86px);line-height:.88;letter-spacing:-.075em;margin:0}.section-heading>p,.archive-group>p{max-width:455px;color:#818079;margin:0;font-size:13px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:62px 28px}.project-card.project-feature,.project-card.project-wide{grid-column:span 2}.project-image{height:420px;position:relative;overflow:hidden;background:#111;border:1px solid #292929}.project-feature .project-image,.project-wide .project-image{height:590px}.project-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.project-card:hover img{transform:scale(1.035)}.project-image span,.project-image small{position:absolute;z-index:3;color:#ddd;font-size:8px;letter-spacing:.18em}.project-image span{top:20px;right:20px}.project-image small{bottom:20px;left:20px}.project-meta{display:flex;justify-content:space-between;gap:20px;padding:17px 2px 0}.project-meta h3{font-size:25px;line-height:1.05;margin:0 0 6px;letter-spacing:-.035em}.project-meta p{font-size:12px;color:#777;margin:0}.project-meta .project-type{font-size:8px;letter-spacing:.18em;color:#777;margin:0 0 7px;text-transform:uppercase}.project-meta>b{font-size:22px;color:#777}.case-study{border-block:1px solid #242424}.case-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:90px;align-items:center}.case-image{height:620px;position:relative;overflow:hidden;border:1px solid #292929}.case-image img{width:100%;height:100%;object-fit:cover}.case-image span{position:absolute;left:22px;bottom:22px;font-size:8px;letter-spacing:.18em;color:#ddd}.case-copy h2{font-size:clamp(48px,6vw,78px);line-height:.88;letter-spacing:-.07em;margin:0 0 25px}.case-lead{color:var(--gold);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.case-copy>p:not(.eyebrow):not(.case-lead){color:#8e8b84;max-width:500px;font-size:15px;line-height:1.8}.case-facts{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid #2d2d2d;border-bottom:1px solid #2d2d2d;margin:35px 0;padding:18px 0;gap:15px}.case-facts span{display:block;font-size:7px;letter-spacing:.16em;color:#666;margin-bottom:5px}.case-facts strong{font-size:11px;color:#ddd;font-weight:500}.capability-section{background:#0d0d0d;border-bottom:1px solid #252525}.capability-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #292929}.capability{min-height:270px;padding:25px 25px 30px 0;border-right:1px solid #292929}.capability:not(:first-child){padding-left:25px}.capability:last-child{border-right:0}.capability>span{font-size:9px;color:#666;letter-spacing:.16em}.capability h3{font-size:25px;letter-spacing:-.04em;margin:55px 0 12px}.capability p{font-size:12px;color:#777;max-width:230px;margin:0}.section-light .timeline{border-top:1px solid #aaa}.timeline-item{border-bottom:1px solid #aaa}.timeline-item summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:60px 120px 1fr auto;gap:25px;align-items:center;padding:27px 0}.timeline-item summary::-webkit-details-marker{display:none}.timeline-item summary span,.timeline-item summary b{font-size:9px;color:#777}.timeline-item summary strong{font-size:21px;letter-spacing:-.02em}.show-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 25px;padding:0 0 35px 85px}.show-grid p{font-size:11px;color:#555;border-top:1px solid #d0cec7;padding:11px 0;margin:0}.portfolio-archive{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.archive-group{margin-bottom:80px}.archive-group h3{font-size:30px;letter-spacing:-.04em;margin:0 0 8px}.archive-group>p{color:#777;margin:0 0 25px}.archive-photo{height:360px;position:relative;overflow:hidden;border:1px solid #292929;background:#111}.archive-photo.tall{height:500px}.archive-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.archive-photo:hover img{transform:scale(1.035)}.archive-label{position:absolute;z-index:3;left:16px;bottom:14px;font-size:9px;letter-spacing:.15em;color:#eee;text-transform:uppercase;text-shadow:0 2px 12px #000}.pdf-note{color:#666;font-size:11px;margin-top:35px}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:center}.about-photo{aspect-ratio:1;border:1px solid #292929;overflow:hidden;background:#111}.about-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.75)}.about-copy h2{font-size:clamp(45px,6vw,75px);line-height:.92;letter-spacing:-.07em;margin:0 0 30px}.about-copy>p:not(.eyebrow){max-width:650px;color:#999;font-size:15px}.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #333;margin-top:45px}.facts div{padding:18px 15px 0 0}.facts strong{display:block;font-size:35px;letter-spacing:-.05em}.facts span{font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:#666}.book{border-block:1px solid var(--line)}.book-grid{display:grid;grid-template-columns:330px 1fr;gap:100px;align-items:center}.book-cover{height:470px;padding:18px;background:#d6d4cf;transform:rotate(-3deg);box-shadow:20px 25px 60px rgba(0,0,0,.35)}.book-face{height:100%;border:1px solid #777;padding:28px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#eee,#c5c4bf);color:#111}.book-face p{font:34px Georgia,serif;margin:0}.book-face strong{font-size:48px;line-height:.82;letter-spacing:-.07em}.book-face small{font-size:9px;letter-spacing:.18em}.book-copy h2{font-size:clamp(50px,7vw,82px);line-height:.88;letter-spacing:-.07em;margin:0 0 25px}.book-copy>p:not(.eyebrow){max-width:590px;color:#888;font-size:16px}.book-actions{display:flex;gap:14px;margin-top:32px}.contact-box{padding:100px 0;border-block:1px solid #333}.contact h2{font-size:clamp(55px,8vw,105px);line-height:.85;letter-spacing:-.075em;margin:0 0 45px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}.contact-grid>div>p{max-width:420px;color:#888}.contact-details{display:flex;flex-direction:column;gap:12px;align-items:flex-start;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.contact-details a:hover{color:var(--gold)}.footer{padding:70px 0}.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px}.brand-footer{font-size:30px}.footer p{font-size:10px;color:#666}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.footer-meta{text-align:right}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}.archive-group h3,.timeline-item summary strong,.project-meta h3,.capability h3,.about-copy h2,.book-copy h2,.contact h2,.case-copy h2{font-weight:500}.archive-group>p,.section-heading>p,.project-meta p,.case-copy>p,.capability p,.about-copy>p,.book-copy>p,.contact-grid>div>p{line-height:1.8}.hero,.statement,.section,.case-study,.capability-section,.section-light,.book,.contact-box,.footer{font-variant-numeric:lining-nums}.project-type,.eyebrow,.role,.disciplines,.photo-caption,.photo-index,.archive-label,.case-lead,.contact-details,.nav-links{font-family:Arial,Helvetica,sans-serif}.hero h1,.statement h2,.section-heading h2,.archive-group h3,.case-copy h2,.about-copy h2,.book-copy h2,.contact h2,.project-meta h3,.capability h3,.timeline-item summary strong{font-family:Arial,Helvetica,sans-serif}.hero h1 em,.statement h2 span,.about-copy h2 em,.contact h2 em,.case-copy h2 em{font-family:Georgia,serif}.project-meta h3,.capability h3,.timeline-item summary strong{letter-spacing:-.035em}.selected-card,.selected-grid,.filter-bar{display:none!important}@media(max-width:900px){.container{width:min(calc(100% - 34px),var(--max))}.nav{height:68px}.nav-toggle{display:block}.nav-links{display:none;position:absolute;left:0;right:0;top:68px;background:#080808;border-bottom:1px solid #333;padding:24px 17px;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.hero{grid-template-columns:1fr;padding-top:120px;gap:45px}.hero h1{font-size:66px}.hero-photo{height:520px}.section{padding:85px 0}.statement-grid,.case-grid,.about-grid,.book-grid{grid-template-columns:1fr;gap:45px}.section-heading{display:block;margin-bottom:35px}.section-heading>p{margin-top:20px}.project-grid{grid-template-columns:1fr;gap:50px}.project-card.project-feature,.project-card.project-wide{grid-column:auto}.project-feature .project-image,.project-wide .project-image{height:430px}.project-image{height:330px}.case-image{height:480px}.capability-grid{grid-template-columns:1fr 1fr}.capability{border-bottom:1px solid #292929}.capability:nth-child(2){border-right:0}.timeline-item summary{grid-template-columns:40px 1fr;gap:10px}.timeline-item summary b{display:none}.show-grid{grid-template-columns:1fr;padding-left:50px}.portfolio-archive{grid-template-columns:1fr 1fr}.archive-photo,.archive-photo.tall{height:330px}.book-cover{max-width:290px;margin:auto}.book-actions,.hero-actions{flex-wrap:wrap}.contact-grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-meta{text-align:left}}@media(max-width:560px){.hero h1{font-size:58px}.hero-photo{height:440px}.hero-proof{display:grid;grid-template-columns:1fr 1fr}.statement h2,.section-heading h2{font-size:50px}.case-facts{grid-template-columns:1fr}.capability-grid,.portfolio-archive{grid-template-columns:1fr}.capability,.capability:not(:first-child){padding:25px 0;border-right:0}.project-meta{align-items:flex-start}.project-meta h3{font-size:21px}}.final-cta{background:#080808!important;color:#f3f1ec!important;border-block:1px solid #292929}.final-cta .eyebrow{color:#8e8b84!important}.final-cta h2{color:#f3f1ec!important}.final-cta h2 em{color:#aaa!important}.final-cta p{color:#8e8b84!important;max-width:640px;line-height:1.8}.final-cta .button-dark,.final-cta .button{background:#f3f1ec!important;color:#080808!important;border:1px solid #f3f1ec}.final-cta .text-link{color:#f3f1ec!important;border-color:#555}.final-cta .text-link:hover{color:#c5a36b!important;border-color:#c5a36b}.cta-links{display:flex;gap:22px;flex-wrap:wrap;margin-top:10px}


/* Portfolio clarity, project navigation and progressive enhancement. */

      .gallery { border-top: 1px solid #282828; }
      .gallery-head { max-width: 900px; margin-bottom: 55px; }
      .gallery-head h2 { font-size: clamp(52px, 7vw, 88px); line-height: .9; letter-spacing: -.075em; margin: 0 0 25px; }
      .gallery-head h2 em { font-family: Georgia, serif; font-weight: 400; color: #aaa; }
      .gallery-head > p:last-child { max-width: 700px; color: #85827c; font-size: 15px; line-height: 1.8; margin: 0; }
      .gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #292929; border-bottom: 1px solid #292929; }
      .gallery-card,
      .gallery-card.g1,
      .gallery-card.g2,
      .gallery-card.g3,
      .gallery-card.g4 { 
        min-height: 170px; 
        height: auto; 
        display: flex; 
        align-items: flex-end; 
        padding: 28px 24px; 
        background-image: none !important; 
        background: #080808 !important; 
        border-right: 1px solid #292929; 
        position: relative; 
        overflow: hidden; 
      }
      .gallery-card:last-child { border-right: 0; }
      .gallery-card:before { content: ''; position: absolute; left: 24px; top: 28px; width: 28px; height: 1px; background: #c5a36b; opacity: .8; }
      .gallery-card span { position: relative; z-index: 1; font-size: 18px; font-weight: 500; letter-spacing: .02em; color: #eee; }
      .gallery-card:hover { background: #101010 !important; }
      .gallery-card:hover span { color: #c5a36b; transform: translateX(3px); transition: .25s ease; }
      @media (max-width: 800px) {
        .gallery-grid { grid-template-columns: 1fr 1fr; }
        .gallery-card:nth-child(2) { border-right: 0; }
        .gallery-card { border-bottom: 1px solid #292929; }
        .gallery-card:nth-child(3), .gallery-card:nth-child(4) { border-bottom: 0; }
      }
      @media (max-width: 560px) {
        .gallery-grid { grid-template-columns: 1fr; }
        .gallery-card, .gallery-card.g1, .gallery-card.g2, .gallery-card.g3, .gallery-card.g4 { min-height: 115px; border-right: 0; border-bottom: 1px solid #292929; }
        .gallery-card:last-child { border-bottom: 0; }
      }
    
html { scroll-padding-top: 100px; }
.project-link { display: block; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 6px; }
.hero-actions { flex-wrap: wrap; gap: 20px; }
.services-contact { margin: 32px 0 0; }
.capability h3 { margin-top: 36px; }
.capability p { color: #aaa7a0; font-size: 14px; }
.project-meta p { color: #aaa7a0; }
.archive-group > p { max-width: 800px; color: #aaa7a0; }
.archive-group { scroll-margin-top: 105px; }
.archive-photo .image-open { display: block; position: absolute; inset: 0; cursor: zoom-in; }
.archive-photo .image-open:focus-visible { outline-offset: -4px; z-index: 5; }
.reveal { opacity: 1; transform: none; }
.button-dark { background: var(--paper); color: var(--ink); border: 1px solid var(--paper); }
.button-outline-dark { border: 1px solid #777; color: var(--paper); }
.contact .button { overflow-wrap: anywhere; max-width: 100%; }
.site-lightbox { width: min(94vw, 1280px); max-height: 94vh; border: 1px solid #444; padding: 54px 20px 20px; background: #080808; color: white; }
.site-lightbox::backdrop { background: rgba(0,0,0,.92); }
.site-lightbox img { display: block; max-width: 100%; max-height: 75vh; width: auto; height: auto; margin: auto; object-fit: contain; }
.site-lightbox button { position: absolute; top: 8px; right: 14px; border: 1px solid #777; background: #080808; color: white; min-width: 44px; min-height: 40px; cursor: pointer; }
.site-lightbox p { margin: 16px 0 0; font-size: 13px; color: #bbb; text-align: center; }
.project-nav { display: flex; align-items: center; gap: 24px; font-size: 11px; }
.project-intro { padding-top: 155px; padding-bottom: 48px; }
.project-intro h1 { font-size: clamp(48px, 7vw, 100px); line-height: .95; letter-spacing: -.06em; margin: 0 0 28px; }
.project-intro h1 em { font-family: Georgia, serif; font-weight: 400; color: #aaa; }
.project-lead { font-size: 18px; color: #bbb; }
.project-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; border-top: 1px solid #333; margin-top: 40px; padding-top: 20px; }
.project-facts dt { color: #999; text-transform: uppercase; font-size: 10px; letter-spacing: .1em; }
.project-facts dd { margin: 6px 0 0; font-size: 15px; }
.project-overview img { display: block; width: 100%; height: auto; border: 1px solid #333; }
.project-page figcaption { color: #999; font-size: 12px; margin-top: 12px; }
.project-story { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding-top: 75px; padding-bottom: 75px; }
.project-story h2, .project-end h2 { font-size: clamp(36px, 4vw, 58px); line-height: 1.05; letter-spacing: -.04em; font-weight: 500; margin: 0 0 25px; }
.project-story p:not(.eyebrow), .project-end > p:not(.eyebrow) { color: #aaa; font-size: 16px; line-height: 1.8; }
.project-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }
.project-gallery figure { margin: 0; }
.project-gallery img { display: block; width: 100%; height: auto; border: 1px solid #333; }
.project-end { border-bottom: 1px solid #333; }
@media(max-width: 900px) {
  .project-facts { grid-template-columns: 1fr; gap: 18px; }
  .project-story { grid-template-columns: 1fr; gap: 20px; }
  .project-gallery { grid-template-columns: 1fr; gap: 32px; }
  .project-intro { padding-top: 115px; }
  .project-nav { font-size: 10px; gap: 14px; }
}
/* A short lighting cue and one-time entrances keep the photography central. */
.motion-enter {
  animation: portfolio-enter 720ms cubic-bezier(.22, .61, .36, 1) both;
  animation-delay: var(--motion-delay, 0ms);
}
@keyframes portfolio-enter {
  from { opacity: 0; translate: 0 18px; }
  to { opacity: 1; translate: 0 0; }
}
.hero-photo.light-cue::before {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0 auto 0 -70%;
  width: 70%;
  pointer-events: none;
  background: linear-gradient(100deg, transparent 12%, rgba(245, 238, 219, .16) 50%, transparent 88%);
  animation: portfolio-light 1500ms cubic-bezier(.25, .46, .45, .94) 180ms both;
}
@keyframes portfolio-light {
  0% { opacity: 0; transform: translateX(0) skewX(-12deg); }
  25% { opacity: 1; }
  80% { opacity: .65; }
  100% { opacity: 0; transform: translateX(245%) skewX(-12deg); }
}
.nav-links a:not(.nav-cta), .project-nav a:not(.nav-cta) { position: relative; }
.nav-links a:not(.nav-cta)::after, .project-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  inset: auto 0 -6px;
  height: 1px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 240ms ease;
}
.nav-links a:focus-visible::after, .project-nav a:focus-visible::after { transform: scaleX(1); }
.project-image { transition: border-color 300ms ease; }
.project-link:focus-visible .project-image { border-color: var(--gold); }
@media (hover: hover) and (pointer: fine) {
  .nav-links a:hover::after, .project-nav a:hover::after { transform: scaleX(1); }
  .project-link:hover .project-image { border-color: var(--gold); }
}
@media (hover: none) {
  .project-card:hover img, .archive-photo:hover img { transform: none; }
}
@media (max-width: 560px) {
  .motion-enter { animation-duration: 540ms; }
}
@media(prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .motion-enter { opacity: 1; translate: none; }
  .hero-photo.light-cue::before { display: none; }
  .project-card:hover img, .archive-photo:hover img, .button:hover, .gallery-card:hover span { transform: none; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
