:root {
  --paper: #f4f1ea;
  --paper-2: #fbf8f1;
  --ink: #122236;
  --muted: #596577;
  --rule: #c9ced2;
  --orange: #f45a16;
  --night: #0d2436;
  --night-2: #091a29;
  --max: 1440px;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
a { color: inherit; }
img { display: block; max-width: 100%; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: color-mix(in srgb, var(--paper) 94%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(18,34,54,.08);
}
.header-inner {
  max-width: var(--max);
  margin: 0 auto;
  min-height: 92px;
  padding: 18px 52px;
  display: grid;
  grid-template-columns: 260px 1fr auto;
  align-items: center;
  gap: 26px;
}
.logo-link { width: 220px; }
.logo-link img { width: 100%; height: auto; }
.main-nav { display:flex; justify-content:flex-end; gap:42px; align-items:center; }
.main-nav a {
  text-decoration:none;
  font-size: 15px;
  letter-spacing:.01em;
  padding: 10px 0;
  position: relative;
}
.main-nav a::after {
  content:"";
  position:absolute;
  left:0; right:100%; bottom:3px;
  height:2px;
  background:var(--orange);
  transition:right .22s ease;
}
.main-nav a:hover::after,
.main-nav a[aria-current="page"]::after { right:0; }
.header-mark {
  padding-left: 30px;
  border-left: 1px solid var(--rule);
  font-size: 10px;
  line-height:1.55;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}
.menu-toggle { display:none; border:0; background:none; font:inherit; color:inherit; padding:8px; }
.menu-toggle span { display:block; width:24px; height:1px; background:currentColor; margin:5px 0; }

.page { overflow: clip; }
.hero {
  max-width: var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns: 48% 52%;
  min-height: 720px;
  border-bottom:1px solid var(--rule);
}
.hero-copy {
  padding: 92px 62px 78px 64px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:26px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.3em;
  color:var(--muted);
}
.eyebrow::before { content:""; width:48px; height:2px; background:var(--orange); }
.display {
  font-family:var(--sans);
  font-size: clamp(52px, 6.2vw, 92px);
  line-height:.92;
  letter-spacing:-.035em;
  font-weight:400;
  margin:0 0 34px;
}
.dot { color:var(--orange); }
.lead {
  max-width: 650px;
  font-size: clamp(20px, 1.6vw, 27px);
  line-height:1.48;
  color:#3f4b5b;
  margin:0;
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:18px;
  margin-top:54px;
  font-size:16px;
  text-decoration:none;
}
.text-link::before { content:""; width:84px; height:2px; background:var(--orange); }
.text-link .arrow { font-size:26px; transform:translateY(-1px); }
.hero-image { min-height:720px; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center 56%; }

.home-thoughts {
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--rule);
}
.thought {
  padding: 66px 78px 62px;
  min-height: 370px;
  border-right:1px solid var(--rule);
}
.thought:last-child { border-right:0; }
.index {
  font-size:11px;
  letter-spacing:.18em;
  color:#6b7787;
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:16px;
}
.index::after { content:""; width:44px; height:1px; background:#9ba4ad; }
.thought h2,
.section-title {
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:-.025em;
  line-height:1.02;
  margin:0;
}
.thought h2 { font-size: clamp(43px, 4vw, 64px); max-width:540px; }
.thought p {
  font-size:17px;
  line-height:1.55;
  color:#4c5663;
  max-width:620px;
  margin:22px 0 0;
}
.flow-bar {
  max-width:var(--max);
  margin:0 auto;
  min-height:118px;
  padding: 0 72px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:30px;
  letter-spacing:.27em;
  font-size:12px;
  text-transform:uppercase;
}
.flow-bar .line { width:86px; height:1px; background:#a9b0b6; }

.page-hero {
  max-width:var(--max);
  margin:0 auto;
  padding: 82px 64px 72px;
  display:grid;
  grid-template-columns: 42% 58%;
  gap:58px;
  align-items:start;
}
.page-hero .section-title { font-size:clamp(52px,5.3vw,82px); }
.page-intro { font-size:19px; line-height:1.55; color:#4c596a; margin-top:26px; max-width:570px; }
.complexity-lines { height:280px; position:relative; margin-top:10px; }
.complexity-lines span { position:absolute; height:1px; left:0; right:0; transform-origin:left center; background:#aeb7bd; opacity:.75; }
.complexity-lines span:nth-child(1){ top:25%; transform:rotate(9deg); }
.complexity-lines span:nth-child(2){ top:42%; transform:rotate(-8deg); }
.complexity-lines span:nth-child(3){ top:58%; transform:rotate(5deg); }
.complexity-lines span:nth-child(4){ top:67%; transform:rotate(-2deg); background:var(--orange); }

.perspective-grid {
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.perspective-card {
  padding: 42px 30px 48px;
  border-right:1px solid var(--rule);
  min-height:360px;
}
.perspective-card:last-child { border-right:0; }
.perspective-card h3 {
  font-family:var(--sans);
  font-weight:400;
  letter-spacing:-.02em;
  font-size: clamp(30px, 2.4vw, 42px);
  line-height:1.02;
  margin:18px 0 16px;
}
.perspective-card p { font-size:16px; line-height:1.55; color:#4f5966; margin:0; }
.editorial-photo {
  max-width:var(--max);
  margin:0 auto;
  min-height:520px;
  display:grid;
  grid-template-columns: 58% 42%;
}
.editorial-photo img { width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.editorial-photo .aside-copy {
  padding:70px 64px;
  display:flex;
  align-items:flex-end;
  background:var(--paper-2);
}
.editorial-photo blockquote {
  margin:0;
  font-family:var(--sans);
  font-size:clamp(34px,3.2vw,52px);
  line-height:1.08;
  font-weight:400;
}

.engagements-wrap {
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns: 36% 64%;
  border-bottom:1px solid var(--rule);
}
.engagements-photo img { width:100%; height:100%; min-height:880px; object-fit:cover; object-position:center; }
.engagements-content { padding:64px 60px 36px; }
.engagements-content .section-title { font-size:clamp(50px,4.7vw,76px); max-width:760px; }
.engagements-sub { font-size:20px; line-height:1.5; color:#556171; max-width:700px; margin:24px 0 36px; }
.engagement {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:16px;
  padding:22px 0 24px;
  border-top:1px solid var(--rule);
}
.engagement:first-of-type { border-top:0; }
.engagement .num { color:var(--orange); font-size:24px; font-weight:500; }
.engagement h3 { font-family:var(--sans); font-size:28px; font-weight:400; margin:0 0 5px; line-height:1.1; }
.engagement p { margin:0; color:#5c6572; line-height:1.5; }
.engagement-foot {
  max-width:var(--max);
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr 390px;
  align-items:center;
  gap:36px;
  padding:38px 64px 46px;
}
.engagement-foot .flow-bar { min-height:0; padding:0; justify-content:flex-start; }
.engagement-foot p { border-left:2px solid var(--orange); padding-left:24px; color:#5a6574; line-height:1.45; margin:0; }

.contact-hero {
  min-height: calc(100vh - 92px);
  background:var(--night);
  color:white;
  display:grid;
  grid-template-columns: 55% 45%;
}
.contact-copy { padding: 74px 70px 82px; }
.contact-copy .eyebrow { color:#b9c3cc; }
.contact-copy .section-title { font-size:clamp(48px,4.6vw,72px); max-width:760px; }
.contact-copy > p { font-size:18px; line-height:1.55; color:#d6dee5; max-width:690px; margin:26px 0 0; }
.contact-form { max-width:760px; margin-top:46px; display:grid; grid-template-columns:1fr 1fr; gap:22px 24px; }
.form-field { display:flex; flex-direction:column; gap:9px; }
.form-field.full { grid-column:1/-1; }
.form-field label { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:#c7d0d8; }
.form-field input, .form-field textarea {
  width:100%; border:0; border-bottom:1px solid rgba(255,255,255,.42); background:transparent; color:white;
  font:inherit; font-size:17px; padding:10px 0 12px; outline:none; border-radius:0;
}
.form-field textarea { min-height:118px; resize:vertical; }
.form-field input:focus, .form-field textarea:focus { border-bottom-color:var(--orange); }
.form-field input::placeholder, .form-field textarea::placeholder { color:#8493a0; }
.captcha-row { grid-column:1/-1; display:grid; grid-template-columns:minmax(180px,1fr) minmax(160px,220px); gap:24px; align-items:end; }
.captcha-question { color:#d6dee5; font-size:16px; line-height:1.45; }
.captcha-question strong { color:white; font-weight:600; }
.form-actions { grid-column:1/-1; display:flex; align-items:center; gap:22px; margin-top:6px; }
.submit-button { border:1px solid var(--orange); background:transparent; color:white; padding:13px 24px; font:inherit; cursor:pointer; transition:.2s ease; }
.submit-button:hover { background:var(--orange); }
.form-note { color:#9cabb7; font-size:12px; line-height:1.45; }
.honeypot { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-status { grid-column:1/-1; padding:12px 14px; border-left:2px solid var(--orange); color:#dce3e8; background:rgba(255,255,255,.04); }
.contact-image { position:relative; min-height:760px; }
.contact-image::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(13,36,54,.58), rgba(13,36,54,.05)); }
.contact-image img { width:100%; height:100%; object-fit:cover; object-position:center; }

.privacy {
  max-width:900px;
  margin:0 auto;
  padding:90px 32px 110px;
}
.privacy h1 { font-family:var(--sans); font-size:64px; font-weight:400; letter-spacing:-.03em; margin:0 0 34px; }
.privacy h2 { font-family:var(--sans); font-size:30px; font-weight:400; margin:42px 0 12px; }
.privacy p, .privacy li { color:#465362; line-height:1.65; font-size:17px; }

.site-footer {
  border-top:1px solid rgba(18,34,54,.15);
  min-height:100px;
  display:flex;
  align-items:center;
}
.footer-inner {
  width:100%; max-width:var(--max); margin:0 auto;
  padding: 22px 52px;
  display:grid;
  grid-template-columns:220px 1fr auto;
  gap:28px;
  align-items:center;
  font-size:12px;
  color:#657080;
}
.footer-logo { width:150px; }
.footer-nav { display:flex; gap:26px; }
.footer-nav a { text-decoration:none; }
.footer-nav a:hover { color:var(--ink); }

.fade-up { opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
.fade-up.in { opacity:1; transform:none; }

@media (max-width: 1000px) {
  .header-inner { grid-template-columns:190px 1fr auto; padding:16px 26px; min-height:78px; }
  .logo-link { width:170px; }
  .header-mark { display:none; }
  .hero { grid-template-columns:1fr; min-height:0; }
  .hero-copy { padding:70px 34px 56px; }
  .hero-image { min-height:480px; }
  .home-thoughts { grid-template-columns:1fr; }
  .thought { border-right:0; border-bottom:1px solid var(--rule); padding:54px 38px; }
  .thought:last-child { border-bottom:0; }
  .page-hero { grid-template-columns:1fr; padding:68px 34px 48px; }
  .complexity-lines { height:180px; }
  .perspective-grid { grid-template-columns:1fr 1fr; }
  .perspective-card:nth-child(2) { border-right:0; }
  .perspective-card:nth-child(-n+2) { border-bottom:1px solid var(--rule); }
  .editorial-photo { grid-template-columns:1fr; }
  .editorial-photo img { max-height:560px; }
  .engagements-wrap { grid-template-columns:1fr; }
  .engagements-photo img { min-height:520px; max-height:620px; }
  .engagements-content { padding:54px 34px 30px; }
  .engagement-foot { grid-template-columns:1fr; padding:34px; }
  .contact-hero { grid-template-columns:1fr; min-height:0; }
  .contact-copy { padding:64px 34px 66px; }
  .contact-image { min-height:520px; }
  .footer-inner { grid-template-columns:160px 1fr; padding:22px 28px; }
  .footer-nav { grid-column:1/-1; }
}

@media (max-width: 720px) {
  .header-inner { grid-template-columns:1fr auto; padding:14px 18px; }
  .logo-link { width:154px; }
  .menu-toggle { display:block; }
  .main-nav {
    display:none;
    position:absolute;
    top:72px; left:0; right:0;
    background:var(--paper);
    border-bottom:1px solid var(--rule);
    padding:18px 22px 24px;
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
  }
  .main-nav.open { display:flex; }
  .hero-copy { padding:56px 22px 44px; }
  .display { font-size:52px; }
  .lead { font-size:19px; }
  .text-link { margin-top:38px; }
  .hero-image { min-height:360px; }
  .thought { padding:44px 22px; min-height:0; }
  .flow-bar { padding:30px 22px; gap:13px; flex-wrap:wrap; min-height:0; }
  .flow-bar .line { width:32px; }
  .page-hero { padding:54px 22px 38px; gap:20px; }
  .page-hero .section-title, .contact-copy .section-title { font-size:48px; }
  .complexity-lines { height:140px; }
  .perspective-grid { grid-template-columns:1fr; }
  .perspective-card { border-right:0; border-bottom:1px solid var(--rule); min-height:0; padding:36px 22px; }
  .perspective-card:last-child { border-bottom:0; }
  .editorial-photo .aside-copy { padding:46px 24px; }
  .engagements-photo img { min-height:360px; }
  .engagements-content { padding:46px 22px 24px; }
  .engagement { grid-template-columns:52px 1fr; }
  .engagement h3 { font-size:25px; }
  .engagement-foot { padding:28px 22px 38px; }
  .contact-copy { padding:52px 22px 56px; }
  .contact-form { grid-template-columns:1fr; gap:20px; }
  .form-field.full, .captcha-row, .form-actions { grid-column:1; }
  .captcha-row { grid-template-columns:1fr; gap:16px; }
  .form-actions { align-items:flex-start; flex-direction:column; }
  .contact-image { min-height:380px; }
  .privacy { padding:64px 22px 90px; }
  .privacy h1 { font-size:48px; }
  .footer-inner { grid-template-columns:1fr; padding:24px 22px; gap:16px; }
  .footer-nav { grid-column:auto; flex-wrap:wrap; }
}
