
:root{
  --ink:#111111;
  --cream:#F4F0E8;
  --stone:#E7E3DA;
  --taupe:#C9B8A4;
  --moss:#687C56;
  --white:#FFFFFF;
  --muted:#625E57;
  --line:rgba(17,17,17,.15);
  --page:min(1240px, calc(100vw - 48px));
  --sans:"Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif:Baskerville, "Baskerville Old Face", Georgia, serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit}
img{max-width:100%;display:block}
button,input,textarea{font:inherit}
.skip-link{
  position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 14px;z-index:999;
}
.skip-link:focus{left:10px;top:10px}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(244,240,232,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{
  width:var(--page);margin:auto;min-height:86px;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
}
.brand-link{display:flex;align-items:center;text-decoration:none}
.brand-link img{width:76px;height:auto}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{
  font-size:13px;letter-spacing:.015em;text-decoration:none;
  padding:8px 0;border-bottom:1px solid transparent;
}
.nav-links a:hover,.nav-links a[aria-current="page"]{border-color:var(--ink)}
.nav-cta{
  border:1px solid var(--ink)!important;padding:11px 16px!important;
  border-radius:999px;transition:.2s ease;
}
.nav-cta:hover{background:var(--ink);color:var(--cream)}
.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer;font-size:24px;color:var(--ink);-webkit-appearance:none;appearance:none}
main{overflow:hidden}
.container{width:var(--page);margin:auto}
.section{padding:104px 0;border-top:1px solid var(--line)}
.section.compact{padding:72px 0}
.eyebrow{
  display:block;margin-bottom:18px;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)
}
.display{
  font-family:var(--serif);font-weight:400;letter-spacing:-.03em;
  font-size:clamp(54px,8vw,118px);line-height:.87;margin:0;
}
.display-sm{
  font-family:var(--serif);font-weight:400;letter-spacing:-.025em;
  font-size:clamp(42px,5.7vw,78px);line-height:.95;margin:0;
}
.lede{
  font-size:clamp(19px,2vw,28px);line-height:1.35;max-width:780px;color:var(--muted);
  font-weight:300;
}
.copy{
  font-size:17px;line-height:1.7;max-width:760px;color:var(--muted);
}
.serif{font-family:var(--serif)}
.taupe{color:var(--taupe)}
.moss{color:var(--moss)}
.hero{padding:84px 0 78px}
.hero-grid{
  display:grid;grid-template-columns:1.22fr .78fr;gap:64px;align-items:end;
  min-height:690px;
}
.hero-copy{padding-top:30px}
.hero-copy .lede{margin-top:34px}
.hero-note{
  border-top:1px solid var(--taupe);padding-top:22px;margin-top:54px;
  display:flex;justify-content:space-between;gap:30px;align-items:flex-start;
}
.hero-note strong{font-size:12px;text-transform:uppercase;letter-spacing:.12em}
.hero-note span{font-family:var(--serif);font-size:22px;color:var(--taupe);font-style:italic}
.hero-art{
  min-height:600px;background:var(--stone);position:relative;overflow:hidden;
  display:flex;align-items:flex-end;padding:34px;
}
.hero-art:before{
  content:"";position:absolute;width:520px;height:520px;border-radius:50%;
  background:var(--taupe);right:-210px;top:-170px;opacity:.65;
}
.hero-art:after{
  content:"";position:absolute;width:430px;height:430px;border-radius:50%;
  border:1px solid rgba(17,17,17,.28);left:-180px;bottom:-160px;
}
.hero-art .art-copy{position:relative;z-index:2;max-width:330px}
.hero-art .art-copy p{font-family:var(--serif);font-size:34px;line-height:1.07;margin:0 0 22px}
.hero-art .art-copy span{font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.four-col{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.core-equation{
  font-family:var(--serif);font-size:clamp(44px,6vw,80px);line-height:1;
  margin-bottom:58px;
}
.idea-card{
  border-top:1px solid var(--taupe);padding-top:22px;
}
.idea-card h3{font-size:14px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 20px}
.idea-card p{font-size:19px;line-height:1.5;color:var(--muted);margin:0}
.expression-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.expression{
  min-height:390px;padding:42px;border:1px solid var(--line);
  display:flex;flex-direction:column;justify-content:space-between;
  transition:transform .25s ease, background .25s ease;
  text-decoration:none;
}
.expression:hover{transform:translateY(-4px);background:var(--stone)}
.expression img{width:min(270px,75%);height:auto}
.expression p{font-family:var(--serif);font-size:31px;line-height:1.05;margin:40px 0 16px}
.expression small{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.project-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:26px}
.project-card{
  min-height:480px;position:relative;background:var(--stone);
  padding:38px;display:flex;flex-direction:column;justify-content:space-between;
  text-decoration:none;overflow:hidden;
}
.project-card:before{
  content:"";position:absolute;inset:auto -90px -160px auto;width:380px;height:380px;border:1px solid rgba(17,17,17,.18);
  border-radius:50%;
}
.project-card.moss-bg{background:var(--moss);color:var(--cream)}
.project-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.project-card h3{font-family:var(--serif);font-size:clamp(38px,5vw,66px);font-weight:400;line-height:.95;margin:0}
.project-card p{font-size:17px;line-height:1.55;max-width:480px}
.text-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:13px;font-weight:600}
.text-link:after{content:"→";font-size:18px;transition:transform .2s ease}
.text-link:hover:after{transform:translateX(5px)}
.principle{
  border-top:1px solid var(--line);padding-top:20px;
}
.principle strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.11em;margin-bottom:12px}
.principle p{color:var(--muted);line-height:1.55}
.quote-panel{
  background:var(--ink);color:var(--cream);padding:72px;
  display:grid;grid-template-columns:.4fr 1fr;gap:60px;align-items:start;
}
.quote-panel img{width:100px}
.quote-panel blockquote{
  font-family:var(--serif);font-size:clamp(38px,5vw,68px);line-height:1;
  margin:0 0 32px;color:var(--cream)
}
.quote-panel p{max-width:700px;color:#d8d3ca;line-height:1.65}
.subhero{padding:86px 0 72px}
.subhero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:end}
.subhero-mark{width:min(390px,100%);margin-bottom:40px}
.subhero-copy{font-family:var(--serif);font-size:clamp(42px,5.3vw,74px);line-height:1;margin:0}
.band{background:var(--stone);padding:84px 0}
.band.moss-bg{background:var(--moss);color:var(--cream)}
.band.ink-bg{background:var(--ink);color:var(--cream)}
.band .copy{color:inherit;opacity:.84}
.list{
  list-style:none;padding:0;margin:0;border-top:1px solid var(--line)
}
.list li{
  display:grid;grid-template-columns:90px 1fr;gap:30px;padding:26px 0;border-bottom:1px solid var(--line)
}
.list .num{font-family:var(--serif);font-size:31px;color:var(--taupe)}
.list h3{font-size:18px;margin:0 0 8px}
.list p{margin:0;color:var(--muted);line-height:1.55}
.stat{
  padding:24px 0;border-top:1px solid var(--line);
}
.stat b{font-family:var(--serif);font-size:50px;font-weight:400}
.stat span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.team-card{
  padding:34px;border:1px solid var(--line);min-height:250px;
  display:flex;flex-direction:column;justify-content:space-between;
}
.team-card h3{font-size:28px;margin:0 0 6px}
.team-card .role{font-family:var(--serif);font-size:21px;color:var(--taupe)}
.team-card p{color:var(--muted);line-height:1.55}
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.contact-card{
  padding:38px;border-top:1px solid var(--taupe);background:rgba(255,255,255,.18);
}
.contact-card h3{font-family:var(--serif);font-size:36px;font-weight:400;margin:0 0 16px}
.contact-card p{color:var(--muted);line-height:1.55}
.contact-card a{font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}
.site-footer{padding:72px 0 34px;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}
.footer-logo{width:98px;margin-bottom:34px}
.footer-tagline{font-family:var(--serif);font-size:30px;color:var(--taupe)}
.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.footer-links h4{font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 18px}
.footer-links a{display:block;text-decoration:none;color:var(--muted);font-size:14px;margin:9px 0}
.footer-base{
  margin-top:70px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)
}
.placeholder{
  min-height:420px;background:var(--stone);position:relative;padding:30px;
  display:flex;align-items:flex-end;
}
.placeholder:after{
  content:"REPLACE WITH REAL TWENTYTWO PROJECT PHOTOGRAPHY";
  font-size:10px;letter-spacing:.13em;color:var(--muted)
}
.stage{
  display:inline-flex;padding:8px 12px;border:1px solid currentColor;border-radius:999px;
  font-size:10px;letter-spacing:.1em;text-transform:uppercase;
}
.lifecycle{counter-reset:life;list-style:none;padding:0;margin:0}
.lifecycle li{
  counter-increment:life;display:grid;grid-template-columns:70px 1fr;gap:24px;
  padding:22px 0;border-bottom:1px solid var(--line)
}
.lifecycle li:before{
  content:counter(life, decimal-leading-zero);
  font-family:var(--serif);font-size:28px;color:var(--taupe)
}
.lifecycle h3{margin:0 0 7px;font-size:17px}
.lifecycle p{margin:0;color:var(--muted);line-height:1.55}
@media(max-width:900px){
  :root{--page:min(100% - 32px, 760px)}
  .nav{min-height:72px}
  .brand-link img{width:64px}
  .menu-toggle{display:block}
  .nav-links{
    display:none;position:absolute;top:72px;left:0;right:0;background:var(--cream);
    border-bottom:1px solid var(--line);padding:24px 16px;flex-direction:column;align-items:flex-start
  }
  .nav-links.open{display:flex}
  .hero{padding-top:52px}
  .hero-grid,.two-col,.subhero-grid,.footer-grid{grid-template-columns:1fr;gap:44px}
  .hero-grid{min-height:0}
  .hero-art{min-height:420px}
  .expression-grid,.project-grid,.contact-grid,.team-grid{grid-template-columns:1fr}
  .three-col,.four-col{grid-template-columns:1fr 1fr}
  .quote-panel{grid-template-columns:1fr;padding:48px 30px}
  .footer-links{grid-template-columns:1fr 1fr}
  .section{padding:78px 0}
}
@media(max-width:600px){
  :root{--page:calc(100vw - 28px)}
  .display{font-size:58px}
  .display-sm{font-size:45px}
  .hero-note{flex-direction:column}
  .three-col,.four-col,.footer-links{grid-template-columns:1fr}
  .expression,.project-card{padding:28px}
  .list li{grid-template-columns:55px 1fr}
  .subhero{padding-top:58px}
  .footer-base{flex-direction:column}
}


/* Lifestyle / people-first imagery */
.people-intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:end;margin-bottom:30px}
.people-intro p{margin:0}
.lifestyle-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}
.lifestyle-feature,.lifestyle-card{margin:0}
.lifestyle-stack{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-content:start}
.lifestyle-card img,.lifestyle-feature img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--stone)}
.lifestyle-feature img{aspect-ratio:4/5}
.lifestyle-card figcaption,.lifestyle-feature figcaption{padding-top:12px;margin-top:12px;border-top:1px solid var(--taupe);font-size:13px;line-height:1.45;color:var(--muted)}
.story-figure{margin:0}
.story-figure img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--stone)}
.story-figure figcaption{padding-top:12px;margin-top:12px;border-top:1px solid var(--taupe);font-size:13px;line-height:1.45;color:var(--muted)}
@media(max-width:900px){.people-intro,.lifestyle-grid,.lifestyle-stack{grid-template-columns:1fr}.lifestyle-feature img{aspect-ratio:4/3}}

/* v1.2 final review: single concept imagery disclosure */
.section-concept-note{margin-top:14px;font-size:10px;letter-spacing:.055em;text-transform:uppercase;color:var(--muted);text-align:right}
