@charset "UTF-8";
:root {
  --ink:#151923;
  --muted:#555e6a;
  --blue:#3349bd;
  --line:#d9dde4;
  --paper:#fff;
  --surface:#f3f5f8;
  --night:#171d31;
  --gutter:clamp(1.25rem,5vw,5rem);
  --max:1320px;
  color-scheme:light;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--ink);
  background:var(--paper);
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:2rem;
}

body {
  margin:0;
  font-size:1rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a {
  color:inherit;
  text-underline-offset:.3em;
}

button,a {
  -webkit-tap-highlight-color:transparent;
}

a:focus-visible,button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:5px;
}

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

img {
  max-width:100%;
  display:block;
}

h1,h2,h3,p {
  margin:0;
}

h1,h2,h3 {
  font-weight:500;
}

h1,h2 {
  letter-spacing:-.055em;
}

p {
  max-width:65ch;
}

.container {
  width:min(calc(100% - var(--gutter)*2),var(--max));
  margin-inline:auto;
}

.skip-link {
  position:fixed;
  top:1rem;
  left:1rem;
  transform:translateY(-180%);
  background:var(--ink);
  color:white;
  padding:.75rem 1rem;
  z-index:20;
}

.skip-link:focus {
  transform:none;
}

.draft-bar {
  font-size:.875rem;
  background:var(--surface);
  color:var(--muted);
  border-bottom:1px solid var(--line);
}

.draft-bar .container {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-block:.5rem;
}

.site-header {
  background:var(--paper);
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  min-height:104px;
  border-bottom:1px solid var(--line);
}

.brand {
  display:flex;
  align-items:center;
  gap:.8rem;
  text-decoration:none;
  flex:none;
  line-height:1.05;
}

.brand img {
  width:48px;
  height:42px;
  object-fit:contain;
}

.brand strong {
  font-size:1.875rem;
  font-weight:700;
  letter-spacing:-.06em;
}

.brand-sub {
  display:block;
  font-size:.875rem;
  letter-spacing:.01em;
  margin-top:.3rem;
}

.site-header nav {
  display:flex;
  align-items:center;
  gap:1.75rem;
  flex-wrap:wrap;
}

.site-header nav a {
  font-size:.9375rem;
  text-decoration:none;
  padding-block:.6rem;
}

.site-header nav a:hover,.text-link:hover {
  color:var(--blue);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1.8rem;
  min-height:52px;
  background:var(--blue);
  color:#fff;
  text-decoration:none;
  padding:.8rem 1.2rem;
  font-size:1rem;
  line-height:1.4;
  font-weight:500;
  border:1px solid var(--blue);
  transition:background .15s,border-color .15s;
}

.button:hover {
  background:#243793;
  border-color:#243793;
}

.button span {
  font-size:1.3rem;
  line-height:1;
}

.button-small {
  font-size:.9375rem;
  min-height:46px;
  gap:1.2rem;
}

.text-link {
  font-size:.9375rem;
}

.eyebrow {
  font-size:.875rem;
  font-weight:500;
  letter-spacing:.04em;
  color:var(--muted);
  line-height:1.5;
}

.hero {
  padding-top:3.4rem;
}

.hero>.eyebrow {
  display:flex;
  justify-content:space-between;
  gap:1rem;
}

.hero h1 {
  font-size:clamp(2.7rem,6.8vw,6.6rem);
  line-height:1.08;
  margin-top:2.3rem;
  margin-bottom:2.5rem;
  letter-spacing:-.06em;
}

.hero h1 span {
  color:var(--blue);
}

.hero-bottom {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:3rem;
  align-items:start;
}

.hero-description {
  font-size:clamp(1.125rem,1.5vw,1.3rem);
  line-height:1.65;
  max-width:39rem;
  color:var(--muted);
}

.hero-actions {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1rem;
  justify-self:end;
  padding-top:.3rem;
}

.discipline-strip {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:4rem;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--line);
}

.discipline-strip>div {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.2rem 1.1rem;
  padding:1.5rem 1.75rem;
  border-right:1px solid var(--line);
  font-size:1.35rem;
}

.discipline-strip>div:first-child {
  padding-left:0;
}

.discipline-strip>div:last-child {
  border-right:0;
}

.index {
  color:var(--blue);
  font-size:.875rem;
  letter-spacing:.025em;
  padding-top:.2rem;
  font-variant-numeric:tabular-nums;
}

.discipline-strip .index {
  padding-top:.4rem;
}

.discipline-note {
  grid-column:2;
  font-size:.875rem;
  color:var(--muted);
}

.section {
  padding-block:6rem;
}

.section-heading {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:2rem;
  margin-bottom:3rem;
}

.section-heading>.eyebrow {
  padding-top:.65rem;
}

.section-heading h2 {
  font-size:clamp(2.4rem,4.5vw,4.2rem);
  line-height:1.1;
  max-width:20ch;
}

.section-heading p:not(.eyebrow) {
  font-size:1.125rem;
  color:var(--muted);
  margin-top:1.5rem;
  max-width:42rem;
}

.service-row {
  display:grid;
  grid-template-columns:.25fr .75fr 1fr;
  gap:2rem;
  padding-block:2.5rem;
  border-top:1px solid var(--line);
}

.service-row:last-child {
  border-bottom:1px solid var(--line);
}

.service-row h3 {
  font-size:clamp(1.5rem,2.2vw,2rem);
  line-height:1.25;
  letter-spacing:-.035em;
}

.service-row p {
  color:var(--muted);
  max-width:38rem;
}

.service-row ul {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.35rem;
  list-style:none;
  margin:1.2rem 0 0;
  padding:0;
  font-size:.875rem;
}

.service-row li {
  padding-bottom:.2rem;
  border-bottom:1px solid var(--line);
}

.service-offers {
  margin:1.6rem 0;
}

.service-offers>div {
  padding-block:1.1rem;
  border-top:1px solid var(--line);
}

.service-offers dt {
  font-size:1rem;
  font-weight:600;
  line-height:1.45;
}

.service-offers dd {
  margin:.5rem 0 0;
  font-size:1rem;
  color:var(--muted);
}

.contact {
  background:var(--surface);
  border-top:1px solid var(--line);
}

.contact h2 {
  font-size:clamp(2.5rem,5.8vw,5.5rem);
  line-height:1.12;
  margin-block:1.5rem 2.5rem;
}

.contact-bottom {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:2rem;
}

.contact-bottom p {
  font-size:1.125rem;
  color:var(--muted);
}

.contact-email {
  color:var(--blue);
  font-size:clamp(1.5rem,3vw,2.5rem);
  line-height:1.3;
  text-decoration:none;
  border-bottom:1px solid var(--blue);
  padding-bottom:.25rem;
  white-space:nowrap;
}

.contact-email span {
  display:inline-block;
  margin-left:1.1rem;
}

.site-footer {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1rem;
  padding-block:1.6rem;
  font-size:.875rem;
  color:var(--muted);
}

.site-footer a {
  text-decoration:none;
}

.site-footer a:hover {
  text-decoration:underline;
}

.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:1.5rem;
}

.legal-page {
  max-width:820px;
  padding-block:clamp(3rem,8vw,7rem);
}

.legal-page h1 {
  font-size:clamp(2.5rem,6vw,4.5rem);
  line-height:1.1;
  margin-block:1rem 2rem;
}

.legal-page h2 {
  font-size:1.4rem;
  letter-spacing:-.025em;
  margin-block:2.5rem .8rem;
}

.legal-page p + p {
  margin-top:1rem;
}

.legal-page address {
  font-style:normal;
  margin-block:1rem;
}

.legal-page a {
  overflow-wrap:anywhere;
}

.products {
  background:var(--night);
  color:white;
}

.product-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5rem;
}

.products .eyebrow {
  color:#b8c0d6;
}

.products h2 {
  font-size:clamp(2.7rem,4.7vw,4.5rem);
  line-height:1.12;
  margin-top:2rem;
}

.product-copy {
  padding-top:.15rem;
}

.product-status {
  display:inline-block;
  font-size:.875rem;
  color:#d5dbed;
  border-bottom:1px solid #687391;
  padding-bottom:.4rem;
  margin-bottom:1.75rem;
}

.product-lead {
  font-size:clamp(1.4rem,2.1vw,1.8rem);
  line-height:1.45;
  letter-spacing:-.02em;
  margin-bottom:1.3rem;
}

.product-copy>p:not(.product-lead) {
  color:#bec6dc;
}

.light-link {
  display:inline-block;
  font-size:1rem;
  margin-top:2.2rem;
  text-decoration:none;
  border-bottom:1px solid #74819e;
  padding-bottom:.3rem;
}

.light-link:hover {
  border-color:#fff;
}

.light-link span {
  margin-left:.5rem;
}

.products a:focus-visible {
  outline-color:#fff;
}

.process-list {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid var(--ink);
}

.process-list li {
  padding:1.5rem 1.5rem 0 0;
  display:flex;
  flex-direction:column;
}

.process-list li+li {
  border-left:1px solid var(--line);
  padding-left:1.5rem;
}

.process-list h3 {
  font-size:1.5rem;
  letter-spacing:-.035em;
  line-height:1.3;
  margin:1.5rem 0 .9rem;
}

.process-list p {
  font-size:1rem;
  color:var(--muted);
}

.process-list .process-result {
  font-size:.875rem;
  margin-top:auto;
  padding-top:1.5rem;
  color:var(--ink);
  max-width:none;
}

.process-result span {
  display:block;
  color:var(--muted);
  font-size:.875rem;
  margin-bottom:.25rem;
}

.about {
  border-top:1px solid var(--line);
}

.founders {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(2rem,4vw,4rem);
  margin-top:3.5rem;
}

.founder {
  margin:0;
  min-width:0;
  display:flex;
  flex-direction:column;
  padding-top:1.75rem;
  border-top:1px solid var(--ink);
}

.founder-heading {
  display:grid;
  grid-template-columns:7rem minmax(0,1fr);
  align-items:center;
  gap:1.5rem;
}

.portrait {
  width:7rem;
  max-width:100%;
  aspect-ratio:1/1;
  background:var(--surface);
  overflow:hidden;
}

.portrait img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 25%;
}

.founder h3 {
  font-size:clamp(1.4rem,2.2vw,1.875rem);
  letter-spacing:-.035em;
  line-height:1.2;
  overflow-wrap:break-word;
}

.founder-role {
  margin-top:.6rem;
  font-size:.9375rem;
  color:var(--blue);
  line-height:1.5;
}

.founder-description {
  margin-top:1.5rem;
  padding-bottom:1.75rem;
}

.founder-bio {
  font-size:1rem;
  color:var(--muted);
  max-width:55ch;
}

.founder-bio+.founder-bio {
  margin-top:1rem;
}

.founder-education {
  margin-top:auto;
  padding-top:1.2rem;
  border-top:1px solid var(--line);
}

.founder-qualifications {
  list-style:none;
  margin:.7rem 0 0;
  padding:0;
  font-size:.875rem;
  line-height:1.6;
}

.founder-qualifications li+li {
  margin-top:.35rem;
}

.contact-intro {
  font-size:1.125rem;
  color:var(--muted);
}

.contact-people {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  margin-top:3rem;
}

.contact-people>div {
  min-width:0;
  border-top:1px solid var(--line);
  padding-top:1.3rem;
}

.contact-people h3 {
  font-size:1.4rem;
  letter-spacing:-.025em;
  margin-bottom:.6rem;
}

.contact-people a {
  display:inline-block;
  color:var(--blue);
  font-size:clamp(.9375rem,1.4vw,1.25rem);
  overflow-wrap:anywhere;
}

.contact-people a span {
  display:inline-block;
  margin-left:.5rem;
}

@media(min-width:1600px) {
  .hero {
    padding-top:4.5rem;
  }
  .hero h1 {
    margin-top:3rem;
  }
  .hero-bottom {
    margin-top:3rem;
  }
}

@media(max-width:1050px) {
  .header-inner {
    flex-wrap:wrap;
    gap:1rem;
    padding-block:1.2rem;
  }
  .site-header nav {
    order:3;
    width:100%;
    border-top:1px solid var(--line);
    padding-top:.6rem;
    gap:1.5rem;
  }
  .hero-location {
    display:none;
  }
  .hero-bottom {
    grid-template-columns:1.4fr 1fr;
    gap:2rem;
  }
  .discipline-strip>div {
    padding-inline:1rem;
  }
  .service-row {
    grid-template-columns:.2fr .8fr 1.2fr;
    gap:1.25rem;
  }
  .section-heading {
    grid-template-columns:.6fr 1.6fr;
  }
  .contact-bottom {
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:700px) {
  .draft-bar .container>span:last-child {
    display:none;
  }
  .header-inner {
    min-height:90px;
  }
  .brand strong {
    font-size:1.6rem;
  }
  .brand img {
    width:39px;
    height:37px;
  }
  .button-small {
    padding:.65rem .75rem;
    gap:.6rem;
    font-size:.875rem;
  }
  .site-header nav {
    gap:1.2rem;
  }
  .hero {
    padding-top:2.25rem;
  }
  .hero h1 {
    font-size:clamp(2.3rem,7.3vw,3.8rem);
    line-height:1.12;
    letter-spacing:-.05em;
    margin-block:1.75rem;
  }
  .hero-bottom {
    grid-template-columns:1fr;
    gap:1.75rem;
  }
  .hero-actions {
    justify-self:start;
  }
  .hero-description {
    font-size:1.125rem;
  }
  .discipline-strip {
    grid-template-columns:1fr;
    margin-top:2.5rem;
  }
  .discipline-strip>div {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:1rem 0!important;
    grid-template-columns:2rem 6.5rem 1fr;
    align-items:center;
    gap:.5rem;
    font-size:1.125rem;
  }
  .discipline-strip>div:last-child {
    border-bottom:0;
  }
  .discipline-strip .index {
    padding:0;
  }
  .discipline-note {
    grid-column:3;
    line-height:1.5;
  }
  .section {
    padding-block:3.5rem;
  }
  .section-heading {
    grid-template-columns:1fr;
    gap:1.3rem;
    margin-bottom:2rem;
  }
  .section-heading h2 {
    font-size:2.5rem;
  }
  .section-heading p:not(.eyebrow) {
    font-size:1rem;
  }
  .service-row {
    grid-template-columns:2.5rem 1fr;
    gap:1rem;
    padding-block:1.75rem;
  }
  .service-row>div {
    grid-column:2;
  }
  .service-row h3 {
    font-size:1.5rem;
  }
  .service-row h3 br {
    display:none;
  }
  .service-row ul {
    display:block;
    margin-top:1rem;
  }
  .service-row li {
    border:0;
    padding:.15rem 0;
  }
  .contact h2 {
    margin-bottom:1.5rem;
  }
  .contact-bottom {
    gap:1.75rem;
  }
  .contact-email {
    font-size:clamp(1.3rem,6vw,2rem);
  }
  .contact-email span {
    margin-left:.4rem;
  }
  .site-footer {
    flex-direction:column;
    gap:.7rem;
  }
}

@media(max-width:360px) {
  .header-inner>.button-small {
    width:100%;
    order:3;
  }
  .site-header nav {
    order:2;
  }
  .discipline-strip>div {
    grid-template-columns:1.7rem 1fr;
  }
  .discipline-note {
    grid-column:2;
  }
  .brand-sub {
    font-size:.875rem;
  }
}

@media(max-width:1050px) {
  .product-layout {
    gap:3rem;
  }
  .process-list {
    grid-template-columns:1fr 1fr;
    gap:2rem 0;
  }
  .process-list li:nth-child(3) {
    border-left:0;
    padding-left:0;
  }
  .process-list li:nth-child(n+3) {
    border-top:1px solid var(--line);
  }
  .founder-heading {
    grid-template-columns:6rem minmax(0,1fr);
    gap:1.1rem;
  }
  .portrait {
    width:6rem;
  }
}

@media(max-width:700px) {
  .product-layout {
    grid-template-columns:1fr;
    gap:2rem;
  }
  .products h2 {
    font-size:2.5rem;
    margin-top:1.3rem;
  }
  .product-status {
    margin-bottom:1.25rem;
  }
  .light-link {
    margin-top:1.5rem;
  }
  .process-list {
    grid-template-columns:1fr;
    gap:0;
  }
  .process-list li,.process-list li+li {
    border-left:0;
    border-top:1px solid var(--line);
    padding:1.5rem 0;
    display:grid;
    grid-template-columns:2.5rem 1fr;
    gap:.7rem 1rem;
  }
  .process-list li:first-child {
    border-top:0;
  }
  .process-list li h3 {
    margin:0;
  }
  .process-list p {
    grid-column:2;
  }
  .process-list .process-result {
    padding-top:.4rem;
  }
  .process-list .index {
    padding-top:.2rem;
  }
  .founders {
    grid-template-columns:1fr;
    gap:2.5rem;
    margin-top:2rem;
  }
  .founder {
    padding-top:1.5rem;
  }
  .founder-heading {
    grid-template-columns:5.5rem minmax(0,1fr);
    gap:1.1rem;
  }
  .portrait {
    width:5.5rem;
  }
  .founder h3 {
    font-size:1.5rem;
  }
  .founder-role {
    font-size:.875rem;
  }
  .founder-description {
    margin-top:1.25rem;
    padding-bottom:1.25rem;
  }
}

@media(max-width:700px) {
  .contact-people {
    grid-template-columns:1fr;
    gap:1.75rem;
    margin-top:2rem;
  }
  .contact-people a {
    font-size:1rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    transition:none!important;
  }
}
