:root{
  --paper:#f4f6f5;
  --ink:#182c27;
  --muted:#52615c;
  --line:#d5ded9;
  --green:#142923;
  --lime:#cedf9c;
  --white:#fff;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
  color-scheme:light
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased
}
a{
  color:inherit;
  text-decoration:none
}
a:hover{
  text-decoration:underline;
  text-underline-offset:5px
}
button,summary{
  font:inherit
}
p{
  margin:0 0 1.2em
}
h1,h2,h3{
  margin:0;
  font-weight:400;
  line-height:1.06;
  letter-spacing:-.055em
}
h1{
  font-size:clamp(3rem,6.2vw,6rem)
}
h2{
  font-size:clamp(2.4rem,4.6vw,4.5rem)
}
h3{
  font-size:1.8rem;
  letter-spacing:-.035em
}
em{
  font-family:var(--serif);
  font-weight:400
}
svg{
  display:block;
  max-width:100%
}
.wrap{
  width:min(1280px,calc(100% - 112px));
  margin:auto
}
.eyebrow{
  font-size:11px;
  letter-spacing:.17em;
  text-transform:uppercase;
  font-weight:600;
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:28px
}
.eyebrow::before{
  content:'';
  width:7px;
  height:7px;
  background:currentColor;
  flex:none
}
.muted{
  color:var(--muted)
}
.skip{
  position:fixed;
  top:10px;
  left:16px;
  z-index:99;
  background:var(--lime);
  padding:12px;
  transform:translateY(-160%)
}
.skip:focus{
  transform:none
}
:focus-visible{
  outline:3px solid #8ba747;
  outline-offset:6px
}
.site-head{
  border-bottom:1px solid var(--line);
  background:var(--paper);
  position:relative;
  z-index:10
}
.head-inner{
  min-height:99px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.brand{
  display:flex;
  align-items:center;
  gap:13px;
  font-size:25px;
  letter-spacing:-1px;
  font-weight:600
}
.brand:hover{
  text-decoration:none
}
.brand svg{
  width:32px;
  height:32px
}
.nav{
  display:flex;
  align-items:center;
  gap:34px;
  font-size:13px
}
.nav a[aria-current=page]{
  text-decoration:underline;
  text-underline-offset:7px
}
.nav-cta{
  padding:12px 18px;
  border:1px solid var(--ink)
}
.nav-cta span{
  margin-left:22px
}
.mobile-nav{
  display:none
}
.hero{
  padding:84px 0 0
}
.hero-grid{
  display:grid;
  grid-template-columns:1.08fr 1fr;
  gap:45px;
  align-items:center
}
.hero h1{
  max-width:10ch
}
.hero-copy>p:not(.eyebrow){
  max-width:440px;
  color:var(--muted);
  margin-top:28px;
  font-size:17px
}
.actions{
  display:flex;
  align-items:center;
  gap:28px;
  flex-wrap:wrap;
  margin-top:34px
}
.button{
  display:inline-flex;
  gap:36px;
  align-items:center;
  background:var(--ink);
  color:var(--paper);
  padding:15px 22px;
  font-size:13px
}
.button:hover{
  background:#29463b;
  text-decoration:none
}
.text-link{
  font-size:13px;
  border-bottom:1px solid;
  padding-bottom:4px;
  display:inline-flex;
  gap:28px;
  align-items:center
}
.text-link:hover{
  text-decoration:none;
  border-bottom-width:2px
}
.hero-art{
  background:#e0e7e3;
  position:relative;
  overflow:hidden;
  aspect-ratio:1.06
}
.hero-art svg{
  width:100%;
  height:100%
}
.art-caption{
  position:absolute;
  left:26px;
  right:26px;
  bottom:22px;
  display:flex;
  justify-content:space-between;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#324c40
}
.hero-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  margin-top:64px;
  padding:23px 0;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase
}
.hero-bottom span:last-child{
  color:var(--muted)
}
.section{
  padding:100px 0
}
.section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:48px
}
.section-head h2{
  max-width:700px
}
.intro-grid{
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:60px
}
.intro-grid h2{
  max-width:820px
}
.intro-body{
  max-width:650px;
  margin:30px 0 0;
  font-size:18px;
  color:var(--muted)
}
.intro-note{
  margin-top:42px;
  display:flex;
  gap:35px;
  align-items:center;
  border-top:1px solid var(--line);
  padding-top:23px;
  font-size:13px
}
.intro-note strong{
  white-space:nowrap;
  font-weight:400;
  font-size:28px;
  letter-spacing:-1px
}
.portfolio{
  background:#e8edea
}
.product-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:44px 28px
}
.product-card{
  display:block
}
.product-card:hover{
  text-decoration:none
}
.product-visual{
  height:290px;
  position:relative;
  overflow:hidden;
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transition:background .25s
}
.product-visual svg{
  position:absolute;
  width:65%;
  height:100%;
  right:-10px;
  top:0;
  transition:transform .4s
}
.product-card:hover svg{
  transform:scale(1.05)
}
.product-label{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  position:relative;
  z-index:1
}
.product-wordmark{
  font-size:clamp(1.9rem,3vw,2.8rem);
  letter-spacing:-.06em;
  line-height:1.05;
  position:relative;
  z-index:1;
  max-width:8ch
}
.product-arrow{
  position:absolute;
  right:24px;
  bottom:24px;
  border:1px solid currentColor;
  border-radius:50%;
  width:36px;
  height:36px;
  display:grid;
  place-items:center
}
.crime{
  background:#183d32;
  color:#edf3dc
}
.vehicle{
  background:#dce4bf;
  color:#244335
}
.geo{
  background:#cbdad4;
  color:#22493e
}
.almanac{
  background:#e5dacc;
  color:#604939
}
.card-description{
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  padding-top:22px
}
.card-description h3{
  font-size:21px;
  letter-spacing:-.03em;
  margin-bottom:9px
}
.card-description p{
  font-size:14px;
  color:var(--muted);
  max-width:420px;
  margin:0
}
.card-description>span{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.07em;
  white-space:nowrap;
  padding-top:4px
}
.dark{
  background:var(--green);
  color:var(--paper)
}
.dark .eyebrow{
  color:var(--lime)
}
.dark .muted{
  color:#c5d1cb
}
.cap-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:42px;
  margin-top:60px
}
.cap{
  border-top:1px solid #526b5e;
  padding-top:24px
}
.cap .number{
  font-size:12px;
  color:var(--lime);
  display:block;
  margin-bottom:38px
}
.cap h3{
  font-size:28px;
  margin-bottom:18px;
  letter-spacing:-.04em
}
.cap p{
  font-size:15px;
  color:#c5d1cb;
  max-width:330px
}
.cap .text-link{
  margin-top:15px
}
.partnership-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px
}
.partnership-grid h2{
  max-width:520px
}
.rows{
  border-top:1px solid var(--line)
}
.row{
  padding:27px 0;
  border-bottom:1px solid var(--line);
  display:grid;
  grid-template-columns:36px 1fr;
  gap:12px
}
.row>span{
  font-size:11px;
  padding-top:5px;
  color:var(--muted)
}
.row h3{
  font-size:23px;
  margin-bottom:12px
}
.row p{
  color:var(--muted);
  font-size:15px;
  margin:0
}
.contact{
  background:var(--green);
  color:var(--paper);
  padding:78px 0
}
.contact .wrap{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:35px
}
.contact h2{
  max-width:680px
}
.contact .eyebrow{
  margin-bottom:20px
}
.contact .button{
  white-space:nowrap;
  margin-bottom:6px
}
.site-foot{
  padding:60px 0 22px;
  background:var(--paper)
}
.footer-top{
  display:flex;
  justify-content:space-between;
  gap:40px;
  padding-bottom:55px
}
.footer-top p{
  font-size:13px;
  color:var(--muted);
  max-width:280px;
  margin-top:20px
}
.footer-links{
  display:flex;
  gap:75px
}
.footer-links div{
  display:flex;
  flex-direction:column;
  gap:11px;
  font-size:13px
}
.footer-links strong{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.1em;
  margin-bottom:8px
}
.consent{
  position:fixed;
  left:16px;
  right:16px;
  bottom:16px;
  max-width:600px;
  z-index:50;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:18px 28px;
  padding:20px 24px;
  background:var(--paper);
  border:1px solid var(--ink);
  font-size:14px
}
.consent[hidden]{
  display:none
}
.consent p{
  flex:1 1 280px;
  margin:0;
  color:var(--muted)
}
.consent p a{
  text-decoration:underline;
  text-underline-offset:4px
}
.consent-actions{
  display:flex;
  align-items:center;
  gap:24px
}
.consent button{
  cursor:pointer;
  border:0;
  background:none;
  color:inherit;
  padding:0
}
.consent button.button{
  background:var(--ink);
  color:var(--paper);
  padding:13px 20px
}
.consent button.text-link{
  border-bottom:1px solid
}
.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:22px;
  font-size:11px;
  color:var(--muted)
}
.todo{
  font-style:italic
}
.page-hero{
  padding:75px 0 80px;
  border-bottom:1px solid var(--line)
}
.page-hero h1{
  max-width:1050px
}
.page-hero .lede{
  font-size:20px;
  color:var(--muted);
  max-width:700px;
  margin-top:30px
}
.crumb{
  font-size:12px;
  color:var(--muted);
  margin-bottom:42px
}
.crumb span{
  margin:0 12px
}
.feature-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center
}
.feature-split p{
  color:var(--muted);
  font-size:17px
}
.feature-split h2{
  margin-bottom:28px
}
.detail-visit{
  margin:28px 0 0
}
.detail-facts{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  padding-top:32px;
  border-top:1px solid var(--line);
  margin-top:45px
}
.detail-facts strong{
  display:block;
  font-size:25px;
  font-weight:400;
  letter-spacing:-.04em
}
.detail-facts span{
  font-size:12px;
  color:var(--muted)
}
.light-caps .cap{
  border-color:var(--line)
}
.light-caps .cap p,.light-caps .number{
  color:var(--muted)
}
.wide-copy{
  max-width:750px
}
.availability{
  padding:28px;
  border:1px solid var(--line);
  margin-top:28px
}
.availability h3{
  font-size:22px;
  margin-bottom:14px
}
.doc{
  padding:65px 0 90px
}
.doc .wrap{
  max-width:900px
}
.doc h1{
  font-size:clamp(2.7rem,5vw,4.5rem);
  margin-bottom:25px
}
.doc h2{
  font-size:27px;
  letter-spacing:-.03em;
  margin:45px 0 20px
}
.doc h3{
  font-size:21px;
  margin:28px 0 15px
}
.doc a{
  text-decoration:underline
}
.doc p,.doc li{
  color:var(--muted)
}
.doc .updated{
  font-size:13px
}
.callout{
  padding:24px;
  background:#e8edea;
  margin:24px 0
}
.callout p:last-child{
  margin:0
}
.tablewrap{
  overflow-x:auto;
  margin:25px 0
}
table{
  border-collapse:collapse;
  width:100%;
  font-size:13px
}
th,td{
  text-align:left;
  padding:14px;
  border:1px solid var(--line);
  vertical-align:top
}
th{
  background:#e8edea
}
@media(min-width:1500px){
  .hero-art{
    max-height:570px
  }
  .hero h1{
    font-size:96px
  }
}
@media(max-width:1000px){
  .wrap{
    width:calc(100% - 64px)
  }
  .nav{
    gap:20px
  }
  .hero-grid{
    gap:30px
  }
  .hero h1{
    font-size:clamp(3rem,6.7vw,5rem)
  }
  .section{
    padding:75px 0
  }
  .partnership-grid{
    gap:45px
  }
  .intro-grid{
    gap:30px;
    grid-template-columns:.45fr 1fr
  }
  .card-description{
    display:block
  }
  .card-description>span{
    display:block;
    margin-top:12px
  }
  .feature-split{
    gap:40px
  }
  .footer-links{
    gap:35px
  }
}
@media(max-width:700px){
  .wrap{
    width:calc(100% - 40px)
  }
  .head-inner{
    min-height:80px
  }
  .brand{
    font-size:23px
  }
  .nav{
    display:none
  }
  .mobile-nav{
    display:block
  }
  .mobile-nav summary{
    cursor:pointer;
    list-style:none;
    font-size:13px;
    padding:8px 0 8px 15px
  }
  .mobile-nav summary::-webkit-details-marker{
    display:none
  }
  .mobile-nav summary::after{
    content:' +';
    margin-left:8px
  }
  .mobile-nav[open] summary::after{
    content:' −'
  }
  .mobile-links{
    position:absolute;
    left:0;
    right:0;
    top:80px;
    background:var(--paper);
    padding:20px;
    border-bottom:1px solid var(--line);
    box-shadow:0 18px 20px #182c2710;
    display:flex;
    flex-direction:column;
    gap:0
  }
  .mobile-links a{
    padding:12px 0;
    font-size:16px
  }
  .hero{
    padding-top:45px
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:38px
  }
  .hero h1{
    font-size:clamp(3.3rem,12vw,5rem);
    max-width:11ch
  }
  .hero-copy>p:not(.eyebrow){
    font-size:16px;
    max-width:470px;
    margin-top:24px
  }
  .eyebrow{
    font-size:10px;
    margin-bottom:23px
  }
  .hero-art{
    aspect-ratio:1.25
  }
  .hero-bottom{
    margin-top:32px;
    gap:22px;
    font-size:9px
  }
  .hero-bottom span:last-child{
    max-width:145px;
    text-align:right
  }
  .intro-grid,.partnership-grid,.feature-split{
    grid-template-columns:1fr;
    gap:30px
  }
  .section{
    padding:62px 0
  }
  h2{
    font-size:clamp(2.3rem,8.8vw,3.3rem)
  }
  .intro-body{
    font-size:16px
  }
  .intro-note{
    gap:25px
  }
  .section-head{
    align-items:start;
    flex-direction:column;
    gap:25px;
    margin-bottom:34px
  }
  .product-grid{
    grid-template-columns:1fr;
    gap:36px
  }
  .product-visual{
    height:280px
  }
  .product-wordmark{
    font-size:38px
  }
  .card-description{
    display:grid
  }
  .card-description>span{
    font-size:9px;
    margin:0
  }
  .cap-grid{
    grid-template-columns:1fr;
    gap:30px;
    margin-top:40px
  }
  .cap .number{
    margin-bottom:20px
  }
  .cap p{
    max-width:none
  }
  .contact{
    padding:55px 0
  }
  .contact .wrap{
    flex-direction:column;
    align-items:start
  }
  .contact h2{
    font-size:2.6rem
  }
  .footer-top{
    flex-direction:column;
    gap:30px;
    padding-bottom:35px
  }
  .footer-links{
    justify-content:space-between;
    gap:20px
  }
  .footer-bottom{
    font-size:10px
  }
  .page-hero{
    padding:40px 0 50px
  }
  .page-hero h1{
    font-size:clamp(2.8rem,10vw,4rem)
  }
  .page-hero .lede{
    font-size:17px
  }
  .detail-facts{
    gap:15px
  }
  .detail-facts strong{
    font-size:21px
  }
  .detail-facts span{
    font-size:11px
  }
  .crumb{
    margin-bottom:30px
  }
  .actions{
    gap:24px
  }
  .doc{
    padding-top:40px
  }
  .art-caption{
    left:20px;
    right:20px;
    font-size:8px
  }
}
@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto
  }
  *,*::before,*::after{
    transition:none!important
  }
}
.contact .eyebrow{
  color:var(--lime)
}
.contact .button{
  background:var(--lime);
  color:var(--ink)
}
.contact .button:hover{
  background:#e0ebbd
}

/* ---- additions for the MVC build: brand mark, proof band, standards, commitments ---- */
.brand-mark{font-family:Arial,Helvetica,sans-serif;font-weight:700;font-size:30px;line-height:1;width:32px;display:inline-block;text-align:center}
.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:64px}
.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:34px 0}
.proof strong{display:block;font-size:30px;letter-spacing:-1px;font-weight:400;line-height:1.05}
.proof span{display:block;font-size:13px;color:var(--muted);margin-top:8px;max-width:24ch}
.cap-grid.four{grid-template-columns:repeat(4,1fr)}
.cap ul{margin:14px 0 0;padding-left:18px;font-size:14px;color:var(--muted);line-height:1.6}
.cap li{margin-bottom:4px}
.commitments{margin-top:56px;border-top:1px solid var(--line);padding-top:36px;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.commitments h3{font-size:17px;letter-spacing:-.02em;margin-bottom:6px}
.commitments p{font-size:13px;color:var(--muted);margin:0}
.sectors{font-size:13px;color:var(--muted);margin-top:18px}
.sectors strong{color:var(--ink);font-weight:600}
@media(max-width:1000px){.proof-grid,.commitments,.cap-grid.four{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.commitments,.cap-grid.four{grid-template-columns:1fr}}

/* ---- plain hero: typography carries it, no illustration panel ---- */
.hero-plain .hero-copy{max-width:820px}
.hero-plain h1{max-width:15ch;font-size:clamp(2.6rem,5.6vw,5.4rem)}
.hero-plain .hero-copy>p:not(.eyebrow){max-width:560px}
.hero-plain .proof{margin-top:72px}
@media(max-width:700px){.hero-plain .proof{margin-top:48px}}

/* ---- brand mark: drafted M, small in the header, annotated in the footer ---- */
.brand svg{width:32px;height:32px;flex:none}
.brand-full{display:block;width:186px;height:auto;margin:0 0 14px -10px}
.site-foot .brand{margin-bottom:10px}
