:root {
  --teal: #075c67;
  --teal2: #064650;
  --cream: #f7f3e7;
  --white: #fffefa;
  --ink: #15231f;
  --rust: #bd633f;
  --line: #16342c2b;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: Arial, sans-serif;
  line-height: 1.65;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a {
  color: inherit;
  text-decoration: none;
}
h1,
h2,
h3,
.large,
.question,
blockquote {
  font-family: Georgia, serif;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1 {
  font-size: clamp(3.4rem, 7vw, 7rem);
  line-height: 0.98;
  letter-spacing: -0.045em;
}
h2 {
  font-size: clamp(2.4rem, 5vw, 5rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
}
h3 {
  font-size: 1.75rem;
}
.kicker {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.72rem;
  font-weight: 800;
  color: var(--rust);
}
.light {
  color: #f1b795;
}
nav {
  height: 86px;
  padding: 0 max(24px, calc((100% - 1200px) / 2));
  display: flex;
  align-items: center;
  gap: 32px;
  position: sticky;
  top: 0;
  z-index: 10;
  background: #f7f3e7f2;
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.nav-role { font-size: .65rem; text-transform: uppercase; letter-spacing: .14em; color: #53615b; }
.logo {
  font:
    1.3rem Georgia,
    serif;
  margin-right: auto;
}
.logo span {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 2px solid var(--teal);
  border-radius: 50%;
  font: bold 0.85rem Arial;
  color: var(--teal);
  margin-right: 10px;
}
.menu {
  border: 1px solid var(--teal);
  background: transparent;
  color: var(--teal);
  border-radius: 999px;
  padding: 10px 16px;
  display: flex;
  gap: 10px;
  align-items: center;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .7rem;
  cursor: pointer;
}
.menu i { width: 7px; height: 7px; background: var(--rust); border-radius: 50%; }
.menu-panel { position: fixed; inset: 0; z-index: 50; background: var(--teal2); color: var(--white); padding: 34px max(24px, calc((100% - 1200px)/2)); display: grid; grid-template-rows: auto 1fr auto; opacity: 0; visibility: hidden; transform: translateY(-20px); transition: opacity .35s ease, transform .35s ease, visibility .35s; }
.menu-panel.open { opacity: 1; visibility: visible; transform: none; }
.menu-top { display: flex; justify-content: space-between; text-transform: uppercase; letter-spacing: .14em; font-size: .72rem; color: #b9cdca; }
.menu-close { border: 0; background: none; color: inherit; cursor: pointer; font: inherit; text-transform: uppercase; letter-spacing: inherit; }
.menu-options { align-self: center; display: grid; }
.menu-options a { font: clamp(2.2rem, 6vw, 5.4rem)/1.05 Georgia,serif; border-bottom: 1px solid #ffffff30; padding: 10px 0; display: flex; align-items: baseline; gap: 22px; transition: color .2s, padding-left .2s; }
.menu-options a:hover { color: #f1b795; padding-left: 12px; }
.menu-options small { font: .65rem Arial,sans-serif; color: #f1b795; letter-spacing: .14em; }
.menu-panel>p { margin: 0; color: #b9cdca; }
.hero,
.two,
.mini-case {
  width: min(1200px, calc(100% - 48px));
  margin: auto;
}
.hero {
  min-height: calc(100vh - 86px);
  display: grid;
  grid-template-columns: 1.3fr 0.7fr;
  align-items: center;
  gap: 7vw;
  padding: 70px 0;
}
.lead {
  font-size: clamp(1.2rem, 2vw, 1.75rem);
  max-width: 680px;
}
.buttons {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 35px;
}
.hero-proof { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 24px; color: var(--teal); font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.hero-proof span { display: flex; align-items: center; gap: 8px; }
.hero-proof span:before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--rust); }
.button {
  padding: 13px 20px;
  border: 1px solid;
  border-radius: 999px;
  font-weight: bold;
}
.filled {
  background: var(--ink);
  color: var(--cream);
}
.portrait-wrap { position: relative; padding: 22px 0 0 22px; will-change: transform; }
.portrait-accent { position: absolute; inset: 0 22px 22px 0; background: var(--rust); }
.portrait { position: relative; margin: 0; background: var(--white); padding: 10px; box-shadow: 0 22px 55px #17372e26; transform: rotate(1.25deg); }
.portrait img { width: 100%; aspect-ratio: 4/5; display: block; object-fit: cover; object-position: center 38%; filter: saturate(.86) contrast(1.02); }
.portrait figcaption { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 11px 4px 2px; color: var(--ink); }
.portrait figcaption span { font: 1rem Georgia,serif; }
.portrait figcaption small { font-size: .57rem; text-transform: uppercase; letter-spacing: .11em; color: #64716c; }
.reveal { opacity: 0; transform: translateY(32px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.75,.25,1); }
.reveal.visible { opacity: 1; transform: none; }
.word-reveal { opacity: 1; transform: none; }
.word-mask { display: inline-block; overflow: hidden; vertical-align: bottom; padding: .04em .015em .08em; margin-bottom: -.08em; }
.word-mask > span { display: inline-block; transform: translateY(112%); opacity: .08; transition: transform .82s cubic-bezier(.16,1,.3,1), opacity .6s ease; transition-delay: calc(var(--word-index) * 42ms); }
.word-reveal.words-visible .word-mask > span { transform: translateY(0); opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .word-mask > span, .reveal { transition: none; transform: none; opacity: 1; }
}
.cream,
.white,
.teal,
.dark,
.visuals {
  padding: 110px max(24px, calc((100% - 1200px) / 2));
  border-top: 1px solid var(--line);
}
.cream {
  background: var(--cream);
}
.white {
  background: var(--white);
}
.teal,
.visuals {
  background: var(--teal);
  color: var(--white);
}
.dark {
  background: #142521;
  color: var(--white);
}
.two,
.mini-case {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 8vw;
}
.copy {
  font-size: 1.08rem;
}
.pills {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}
.pills span {
  padding: 8px 12px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: 0.8rem;
  color: var(--ink);
}
.section-title,
.narrow,
.case-hero {
  width: min(980px, 100%);
  margin: auto;
}
.section-title > p:last-child {
  max-width: 650px;
}
.approach-grid { width: min(1100px,100%); margin: 52px auto 0; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.approach-grid article { padding: 25px 20px 30px; border-right: 1px solid var(--line); }
.approach-grid article:last-child { border-right: 0; }
.approach-grid span { color: var(--rust); font-size: .72rem; font-weight: 800; }
.approach-grid h3 { margin: 48px 0 13px; color: var(--teal); }
.approach-grid p { color: var(--muted,#5c6964); margin: 0; font-size: .95rem; }
.scope-grid {
  width: min(1100px, 100%);
  margin: 50px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.scope-grid div {
  min-height: 170px;
  border: 1px solid var(--line);
  padding: 25px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.scope-grid b {
  font: 1.55rem Georgia, serif;
  color: var(--teal);
}
.scope-grid span {
  color: #5c6964;
}
.industry-line {
  width: min(1100px, 100%);
  margin: 30px auto 0;
  padding: 22px;
  background: var(--cream);
}
.cards {
  width: min(1100px, 100%);
  margin: 55px auto 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.card {
  background: var(--white);
  color: var(--ink);
  padding: 30px;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  border-radius: 6px;
  transition: transform .35s cubic-bezier(.2,.75,.25,1), box-shadow .35s ease;
}
.card:hover { transform: translateY(-7px); box-shadow: 0 20px 42px #042f351f; }
.card span {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.13em;
  color: var(--rust);
}
.card h3 {
  font-size: 2.2rem;
  margin: 24px 0 12px;
}
.card b {
  margin-top: auto;
  color: var(--teal);
}
.card-facts { margin: 20px 0 24px; padding-top: 15px; border-top: 1px solid var(--line); display: grid; gap: 11px; }
.card-facts div { display: grid; grid-template-columns: 64px 1fr; gap: 10px; }
.card-facts dt { color: var(--rust); text-transform: uppercase; letter-spacing: .1em; font-size: .62rem; font-weight: 800; }
.card-facts dd { margin: 0; color: #53615b; font-size: .78rem; line-height: 1.4; }
.case-hero {
  padding: 120px 24px;
}
.case-hero h1 {
  color: var(--teal);
}
.question {
  font-style: italic;
  font-size: clamp(1.7rem, 3vw, 2.7rem);
  max-width: 850px;
}
.case-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 50px;
  border-top: 1px solid var(--line);
  padding-top: 25px;
}
.case-meta span {
  display: grid;
}
.case-meta b {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 0.7rem;
  color: var(--rust);
}
.narrow {
  width: min(900px, 100%);
}
.story .large,
.large {
  font-size: clamp(1.55rem, 2.7vw, 2.45rem);
  line-height: 1.25;
}
.story p:not(.large) {
  font-size: 1.1rem;
}
blockquote {
  margin: 50px 0 0;
  border-left: 5px solid var(--rust);
  padding: 12px 0 12px 28px;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  font-style: italic;
}
.steps {
  list-style: none;
  padding: 0;
  counter-reset: item;
}
.steps li {
  counter-increment: item;
  display: grid;
  grid-template-columns: 56px 1fr;
  padding: 26px 0;
  border-top: 1px solid var(--line);
}
.steps li:before {
  content: "0" counter(item);
  color: var(--rust);
  font-weight: bold;
}
.steps b {
  font: 1.55rem Georgia;
}
.steps span {
  grid-column: 2;
  color: #53615b;
}
.reason-list p {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}
.reason-list b {
  display: block;
  font: 1.5rem Georgia;
  color: var(--teal);
}
.tools h2 {
  color: #fff;
}
.tool-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.tool-grid div {
  background: #ffffff10;
  border: 1px solid #ffffff32;
  padding: 22px;
  display: grid;
}
.tool-grid strong {
  font: 1.5rem Georgia;
}
.tool-grid span {
  color: #c9d8d7;
}
.challenges h3 {
  margin-bottom: 4px;
  color: var(--teal);
}
.visuals h2 {
  color: #fff;
}
.journey {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 45px 0;
  gap: 10px;
}
.journey div {
  width: 130px;
  aspect-ratio: 1;
  border: 1px solid #ffffff60;
  border-radius: 50%;
  display: grid;
  place-items: center;
  align-content: center;
}
.journey b {
  font: 2rem Georgia;
  color: #f1b795;
}
.journey i {
  font-size: 1.7rem;
}
.system-map {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  align-items: center;
}
.system-map div {
  background: var(--white);
  color: var(--ink);
  padding: 25px;
  text-align: center;
}
.system-map .hub {
  grid-column: 1/-1;
  background: #f1b795;
  font-size: 1.35rem;
}
.system-map small {
  color: #66726d;
}
.outcomes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 40px 0;
}
.outcomes div {
  border: 1px solid var(--line);
  padding: 24px;
  display: grid;
  text-align: center;
}
.outcomes b {
  font: 3.5rem Georgia;
  color: var(--teal);
}
.note {
  font-size: 0.8rem;
  color: #66726d;
}
.mini-case {
  padding-top: 110px;
  padding-bottom: 110px;
}
.mini-case h2 {
  font-size: clamp(2.5rem, 4.5vw, 4.5rem);
}
.mini-case.dark {
  width: 100%;
  padding-left: max(24px, calc((100% - 1200px) / 2));
  padding-right: max(24px, calc((100% - 1200px) / 2));
}
.confidential {
  border-left: 4px solid #f1b795;
  background: #ffffff12;
  padding: 20px;
}
.contact {
  text-align: center;
  background: var(--teal2);
  color: #fff;
  padding: 120px 24px;
}
.contact h2 {
  max-width: 900px;
  margin: 0 auto 35px;
}
.contact a {
  display: inline-block;
  border: 1px solid;
  padding: 14px 22px;
  border-radius: 999px;
  font-weight: bold;
}
footer {
  background: #142521;
  color: #9fb0aa;
  padding: 25px max(24px, calc((100% - 1200px) / 2));
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
}
@media (max-width: 760px) {
  nav {
    height: 76px;
  }
  .nav-role { display: none; }
  .hero,
  .two,
  .mini-case,
  .cards {
    grid-template-columns: 1fr;
  }
  .hero {
    padding: 50px 0 80px;
  }
  .portrait-wrap {
    order: -1;
    width: 88%;
    margin: auto;
  }
  .portrait figcaption { align-items: flex-start; flex-direction: column; gap: 2px; }
  .menu-panel { padding-top: 25px; padding-bottom: 25px; }
  .menu-options a { padding: 12px 0; }
  .cream,
  .white,
  .teal,
  .dark,
  .visuals {
    padding-top: 75px;
    padding-bottom: 75px;
  }
  .case-meta,
  .tool-grid,
  .outcomes,
  .system-map,
  .scope-grid {
    grid-template-columns: 1fr 1fr;
  }
  .approach-grid { grid-template-columns: 1fr 1fr; }
  .approach-grid article:nth-child(2) { border-right: 0; }
  .approach-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .journey {
    overflow-x: auto;
    justify-content: flex-start;
  }
  .journey div {
    min-width: 110px;
  }
  .journey i {
    min-width: 24px;
  }
  .cards {
    gap: 12px;
  }
  .card {
    min-height: 240px;
  }
  .mini-case.dark {
    grid-template-columns: 1fr;
  }
  .system-map .hub {
    grid-column: 1/-1;
  }
  footer {
    flex-direction: column;
    gap: 6px;
  }
}
