::selection { background: var(--lime); color: var(--ink); }

.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: var(--blue); }

.approach {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(3rem, 8vw, 9rem);
  background: #0e1012;
}

.approach-copy { position: sticky; top: 5rem; align-self: start; }
.approach-copy h2 { font-size: clamp(3rem, 5.5vw, 6rem); line-height: .92; letter-spacing: -.06em; margin: 0 0 2rem; }
.approach-copy h2 em { font-style: normal; color: var(--orange); }
.approach-copy > p:not(.eyebrow) { color: #a9aaa7; max-width: 34rem; font-size: 1.05rem; }
.approach-copy .text-link { display: inline-block; margin-top: 1.5rem; }
.process { border-top: 1px solid var(--line); }
.process article { display: grid; grid-template-columns: 4rem 1fr; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.process article > span { font-size: .75rem; color: var(--orange); }
.process h3 { font-size: clamp(1.8rem, 3vw, 3rem); letter-spacing: -.04em; margin: 0 0 .45rem; }
.process p { color: #9fa19f; margin: 0; max-width: 34rem; }

.signal { min-height: 85vh; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8vw; background: var(--blue); overflow: hidden; }
.signal-orbit { aspect-ratio: 1; position: relative; border: 1px solid rgba(255,255,255,.55); border-radius: 50%; display: grid; place-items: center; }
.signal-orbit::before, .signal-orbit::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.26); border-radius: 50%; }
.signal-orbit::before { inset: 13%; }
.signal-orbit::after { inset: 29%; }
.signal-orbit b { font-size: clamp(3rem, 7vw, 7rem); letter-spacing: -.07em; }
.signal-orbit span { position: absolute; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--lime); z-index: 1; }
.signal-orbit span:nth-child(1) { top: 8%; left: 27%; }
.signal-orbit span:nth-child(2) { right: 3%; bottom: 35%; background: var(--orange); }
.signal-orbit span:nth-child(3) { left: 28%; bottom: 22%; background: #fff; }
.signal-copy .eyebrow { color: #cbd5ff; }
.signal-copy h2 { font-size: clamp(3rem, 5vw, 5.8rem); line-height: .92; letter-spacing: -.06em; margin: 0 0 2rem; }
.signal-copy > p:last-child { font-size: 1.08rem; max-width: 33rem; color: #d9e0ff; }

.project-cta { background: var(--lime); color: var(--ink); display: grid; grid-template-columns: 1.4fr .6fr; gap: 3rem; align-items: end; }
.project-cta > .eyebrow { grid-column: 1 / -1; color: #555b13; }
.project-cta h2 { font-size: clamp(3.5rem, 7vw, 8rem); line-height: .85; letter-spacing: -.07em; margin: 0; }
.project-cta h2 span { color: #818b16; }
.project-cta > div p { max-width: 28rem; margin: 0 0 2rem; }

.page-hero, .contact-hero { min-height: 83vh; padding: clamp(9rem, 15vw, 13rem) var(--pad) 5rem; display: flex; flex-direction: column; justify-content: flex-end; position: relative; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 5rem 5rem; }
.page-hero h1, .contact-hero h1 { font-size: clamp(4rem, 8vw, 9rem); line-height: .85; letter-spacing: -.075em; margin: 0 0 2.5rem; }
.page-hero h1 span, .contact-hero h1 span { color: #858784; }
.page-hero > p:last-child, .contact-hero > p:not(.eyebrow) { font-size: clamp(1.05rem, 1.6vw, 1.35rem); color: #bec0bd; max-width: 46rem; margin: 0; }

.statement { display: grid; grid-template-columns: .55fr 1.45fr; gap: 4rem; background: var(--paper); color: var(--ink); }
.statement h2 { font-size: clamp(2.6rem, 5vw, 5.4rem); line-height: 1; letter-spacing: -.055em; margin: 0 0 2rem; }
.statement > div > p:last-child { font-size: 1.15rem; color: #5f605b; max-width: 49rem; }
.principles { background: var(--orange); color: var(--ink); }
.principles .eyebrow { color: #612100; }
.principle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(0,0,0,.22); }
.principle-grid article { background: var(--orange); padding: 2rem; min-height: 22rem; display: flex; flex-direction: column; }
.principle-grid article > span { font-size: .75rem; }
.principle-grid h3 { font-size: 2rem; line-height: 1; letter-spacing: -.04em; margin: auto 0 1rem; }
.principle-grid p { margin: 0; color: #552000; }
.company-card { display: grid; grid-template-columns: 1fr 1fr; gap: 6rem; }
.company-card h2 { font-size: clamp(3rem, 6vw, 6rem); letter-spacing: -.06em; margin: 0; }
.company-card dl { margin: 0; border-top: 1px solid var(--line); }
.company-card dl > div { padding: 1.2rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1.5fr; }
.company-card dt { color: #81827f; font-size: .8rem; }
.company-card dd { margin: 0; }
.company-card a:hover { color: var(--lime); }

.contact-hero { min-height: 92vh; }
.contact-hero h1 span { color: var(--lime); }
.contact-email { font-size: clamp(1.6rem, 3vw, 3rem); font-weight: 800; letter-spacing: -.03em; margin-top: 3rem; align-self: flex-start; border-bottom: 2px solid var(--lime); }
.contact-email:hover { color: var(--lime); }
.contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; background: var(--paper); color: var(--ink); }
.contact-details h2 { font-size: clamp(3rem, 5vw, 5rem); line-height: .95; letter-spacing: -.055em; }
.contact-details .eyebrow { color: #777; }
.detail-list { border-top: 1px solid #c5c5bd; }
.detail-list > div { display: grid; grid-template-columns: 8rem 1fr; padding: 1.4rem 0; border-bottom: 1px solid #c5c5bd; }
.detail-list span { font-size: .75rem; color: #74756f; }
.detail-list a { font-size: 1.1rem; font-weight: 750; }
.detail-list p { margin: 0; }

.legal-page { background: var(--paper); color: var(--ink); }
.legal-hero { padding: clamp(10rem, 16vw, 14rem) var(--pad) 5rem; border-bottom: 1px solid #c9c8c1; }
.legal-hero .eyebrow { color: #73746e; }
.legal-hero h1 { font-size: clamp(3.6rem, 8vw, 8rem); line-height: .9; letter-spacing: -.07em; margin: 0 0 1.5rem; }
.legal-hero > p:last-child { color: #73746e; }
.legal-content { width: min(48rem, calc(100% - 2 * var(--pad))); margin: 0 auto; padding: clamp(4rem, 8vw, 8rem) 0; }
.legal-content > p:first-child { font-size: 1.25rem; color: #343530; }
.legal-content h2 { font-size: 1.5rem; letter-spacing: -.02em; margin: 3rem 0 .7rem; }
.legal-content p { color: #5c5d58; }
.legal-content a { text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: .2em; }

.error-page { min-height: 100vh; padding: 9rem var(--pad) 5rem; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 5vw; background-image: radial-gradient(circle at 15% 45%, rgba(38,93,255,.3), transparent 33%); }
.error-code { font-size: clamp(9rem, 24vw, 24rem); font-weight: 950; line-height: .7; letter-spacing: -.12em; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.35); }
.error-page h1 { font-size: clamp(3.5rem, 6vw, 7rem); line-height: .88; letter-spacing: -.065em; margin: 0 0 1.8rem; }
.error-page > div:last-child > p:not(.eyebrow) { color: #a9aaa6; max-width: 30rem; margin-bottom: 2rem; }

@media (max-width: 900px) {
  .approach { grid-template-columns: 1fr; }
  .approach-copy { position: static; }
  .signal { grid-template-columns: 1fr; }
  .signal-orbit { width: min(32rem, 90vw); justify-self: center; }
  .project-cta, .statement, .company-card, .contact-details, .error-page { grid-template-columns: 1fr; }
  .principle-grid { grid-template-columns: 1fr; }
  .principle-grid article { min-height: 15rem; }
  .error-code { margin-top: 4rem; }
  .error-page { gap: 4rem; }
}

@media (max-width: 560px) {
  .page-hero, .contact-hero { min-height: 75vh; }
  .page-hero h1, .contact-hero h1 { font-size: clamp(3.5rem, 17vw, 5rem); }
  .company-card dl > div, .detail-list > div { grid-template-columns: 1fr; gap: .35rem; }
  .error-page { padding-top: 7rem; }
  .error-code { font-size: 9rem; }
}
