:root {
  --ink: #101010;
  --paper: #f2efe8;
  --paper-deep: #e9e4da;
  --muted: #6e6a63;
  --line: rgba(16, 16, 16, 0.15);
  --line-light: rgba(255, 255, 255, 0.18);
  --accent: #d65b40;
  --white: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
.site-header {
  align-items: center;
  color: var(--white);
  display: flex;
  justify-content: space-between;
  left: 0;
  padding: 24px clamp(22px, 4.5vw, 76px);
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10;
}
.brand { font-size: .8rem; font-weight: 850; letter-spacing: .105em; white-space: nowrap; }
.brand span { color: var(--accent); }
.site-nav { display: flex; gap: 28px; font-size: .82rem; font-weight: 650; }
.site-nav a { opacity: .76; transition: opacity 180ms ease; }
.site-nav a:hover { opacity: 1; }
.hero {
  align-items: end;
  background: radial-gradient(circle at 75% 20%, #4b4b48, #252525 40%, #111 100%);
  color: var(--white);
  display: flex;
  min-height: 100svh;
  overflow: hidden;
  padding: clamp(130px, 16vw, 210px) clamp(22px, 10vw, 160px) 66px;
  position: relative;
}
.hero-video, .hero-overlay, .hero-grain { height: 100%; inset: 0; position: absolute; width: 100%; }
.hero-video { object-fit: cover; }
.hero-overlay { background: linear-gradient(90deg, rgba(0, 0, 0, .79) 0%, rgba(0, 0, 0, .48) 50%, rgba(0, 0, 0, .24) 100%), linear-gradient(0deg, rgba(0, 0, 0, .48), transparent 55%); }
.hero-grain { background-image: radial-gradient(rgba(255,255,255,.12) .7px, transparent .7px); background-size: 5px 5px; mix-blend-mode: soft-light; opacity: .23; pointer-events: none; }
.hero-content { max-width: 865px; position: relative; z-index: 2; }
.eyebrow { color: var(--accent); font-size: .69rem; font-weight: 850; letter-spacing: .16em; margin: 0 0 16px; text-transform: uppercase; }
h1, h2, h3 { line-height: 1.02; margin-top: 0; }
h1 { font-size: clamp(3.25rem, 7.45vw, 7.25rem); letter-spacing: -.07em; margin-bottom: 27px; max-width: 825px; }
h2 { font-size: clamp(2.35rem, 5vw, 5rem); letter-spacing: -.06em; margin-bottom: 28px; max-width: 900px; }
h3 { font-size: 1.35rem; letter-spacing: -.035em; margin-bottom: 14px; }
.hero-copy, .section-copy { font-size: clamp(1rem, 1.35vw, 1.22rem); margin: 0; max-width: 610px; }
.hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 26px; margin-top: 37px; }
.button { align-items: center; display: inline-flex; font-size: .78rem; font-weight: 850; justify-content: center; letter-spacing: .06em; min-height: 53px; padding: 0 24px; text-transform: uppercase; transition: background 180ms ease, transform 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--accent); color: var(--white); }
.button-primary:hover { background: #ee6e50; }
.text-link { border-bottom: 1px solid rgba(255,255,255,.55); font-size: .83rem; font-weight: 750; padding-bottom: 4px; }
.text-link span { color: var(--accent); margin-left: 7px; }
.hero-status { bottom: 31px; font-size: .69rem; font-weight: 750; letter-spacing: .12em; margin: 0; position: absolute; right: clamp(22px, 4.5vw, 76px); text-transform: uppercase; z-index: 2; }
.section { padding: clamp(82px, 11vw, 164px) clamp(22px, 8vw, 132px); }
.services-section { background: var(--paper); }
.service-grid { background: var(--line); border: 1px solid var(--line); display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 62px; }
.service-card { background: var(--paper); min-height: 265px; padding: 31px 28px; }
.service-number { color: var(--accent); display: block; font-size: .69rem; font-weight: 850; letter-spacing: .11em; margin-bottom: 54px; }
.service-card p { color: #54514b; font-size: .96rem; margin: 0; }
.section-dark { background: var(--ink); color: var(--white); }
.approach-layout { display: grid; gap: 62px; grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); }
.approach-layout .section-copy { align-self: end; color: #d0cdc5; padding-bottom: 10px; }
.contact-section { padding-bottom: clamp(94px, 14vw, 180px); padding-top: clamp(94px, 14vw, 180px); text-align: center; }
.contact-section h2, .contact-section .section-copy { margin-left: auto; margin-right: auto; }
.contact-section .button { margin-top: 34px; }
.site-footer { align-items: center; border-top: 1px solid var(--line); display: flex; font-size: .75rem; justify-content: space-between; padding: 28px clamp(22px, 8vw, 132px); }
.site-footer .brand { font-size: .71rem; }
@media (max-width: 800px) {
  .site-header { padding-top: 19px; padding-bottom: 19px; }
  .site-nav { display: none; }
  .hero { padding-bottom: 84px; }
  .hero-status { bottom: 28px; left: 22px; right: auto; }
  .service-grid { grid-template-columns: 1fr; }
  .service-card { min-height: 210px; }
  .service-number { margin-bottom: 35px; }
  .approach-layout { grid-template-columns: 1fr; gap: 15px; }
  .site-footer { align-items: flex-start; flex-direction: column; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .hero-video { display: none; } .button { transition: none; } }
