:root {
  --ink:#102526;
  --deep:#0b1d1f;
  --cream:#f5f5ee;
  --mint:#c6f5ae;
  --green:#91bda6;
  --muted:#aebfba;
  --line:rgba(255,255,255,.16);
  --font:'DM Sans',sans-serif;
  --display:'Manrope',sans-serif;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:86px;
}

body {
  margin:0;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--font);
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}

button,input,textarea,select {
  font:inherit;
}

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

button,a {
  touch-action:manipulation;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  cursor:pointer;
}

button:disabled {
  cursor:wait;
  opacity:.65;
}

button {
  color:inherit;
}

a,button {
  outline-offset:6px;
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid currentColor;
}

img {
  max-width:100%;
  object-fit:cover;
}

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

h1,h2,h3 {
  font-family:var(--display);
  font-weight:500;
}

button {
  border:0;
}

section {
  scroll-margin-top:20px;
}

[hidden] {
  display:none!important;
}

.mint {
  color:var(--mint);
}

.skip-link {
  position:fixed;
  z-index:100;
  top:-60px;
  left:20px;
  background:var(--mint);
  color:var(--ink);
  padding:12px 20px;
}

.skip-link:focus {
  top:12px;
}

.site-header {
  height:96px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 5.5%;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10;
  background:var(--ink);
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:29px;
  font-weight:650;
  letter-spacing:-1.25px;
}

.brand img {
  filter:brightness(0) invert(1);
  object-fit:contain;
}

.brand-period {
  color:var(--mint);
}

.desktop-nav {
  display:flex;
  gap:36px;
  font-size:14px;
  color:#d1dcd5;
}

.desktop-nav a {
  transition:color .2s;
}

.desktop-nav a:hover {
  color:var(--mint);
}

.header-cta {
  font-size:14px;
  padding:12px 0 12px 22px;
  display:flex;
  align-items:center;
  gap:35px;
}

.header-cta span {
  display:grid;
  place-items:center;
  border:1px solid #718883;
  border-radius:50%;
  width:35px;
  height:35px;
  font-size:21px;
  transition:.2s;
}

.header-cta:hover span {
  background:var(--mint);
  border-color:var(--mint);
  color:var(--ink);
}

.menu-toggle,.mobile-nav {
  display:none;
}

.hero {
  position:relative;
  min-height:725px;
  isolation:isolate;
  padding:87px 5.5% 0;
  overflow:hidden;
}

.hero-grid {
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:linear-gradient(#c6f5ae04 1px,transparent 1px),linear-gradient(90deg,#c6f5ae04 1px,transparent 1px);
  background-size:84px 84px;
  mask-image:linear-gradient(90deg,transparent,#000);
}

.eyebrow {
  font-size:10px;
  font-weight:600;
  letter-spacing:1.8px;
  display:flex;
  align-items:center;
  gap:10px;
  line-height:1.7;
}

.status-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  display:inline-block;
  flex:none;
  background:var(--mint);
  box-shadow:0 0 0 4px #c6f5ae0b;
}

.hero h1 {
  font-size:clamp(65px,7.8vw,112px);
  line-height:1.06;
  letter-spacing:-6px;
  margin:28px 0 30px;
  font-weight:500;
}

.hero-copy {
  position:relative;
  z-index:2;
  width:64%;
  pointer-events:none;
}

.hero-copy a,.hero-copy button {
  pointer-events:auto;
}

.impact-word {
  position:relative;
  color:var(--mint);
}

.impact-word svg {
  position:absolute;
  bottom:-12px;
  left:0;
  width:100%;
  height:17px;
  fill:none;
  stroke:var(--mint);
  stroke-width:1.7;
  opacity:.75;
}

.hero-description {
  max-width:490px;
  font-size:17px;
  line-height:1.8;
  color:#bccdc6;
}

.hero-actions {
  margin-top:32px;
  display:flex;
  gap:28px;
  align-items:center;
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  padding:18px 24px;
  font-size:14px;
  font-weight:600;
  transition:transform .2s,background .2s;
}

.button:hover {
  transform:translateY(-3px);
}

.button span {
  font-size:23px;
  font-weight:400;
  line-height:1;
}

.button-mint {
  background:var(--mint);
  color:var(--ink);
}

.button-mint:hover {
  background:#dcffca;
}

.text-link {
  font-size:13px;
  display:inline-flex;
  gap:18px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #79958b;
}

.text-link span {
  font-size:18px;
}

.hero-art {
  position:absolute;
  right:-2%;
  top:0;
  width:57%;
  height:640px;
  z-index:1;
  isolation:isolate;
}

.hero-art:before {
  content:'';
  position:absolute;
  width:70%;
  height:70%;
  left:15%;
  top:15%;
  background:radial-gradient(ellipse,#79d9a41c,transparent 65%);
  z-index:-1;
}

.hero-art svg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  filter:drop-shadow(0 0 18px #a0ffb41c);
}

#sculpture-lines {
  transform-origin:350px 350px;
  animation:breathe 12s ease-in-out infinite;
}

.art-orbit {
  position:absolute;
  left:14%;
  top:15%;
  width:72%;
  height:74%;
  border:1px solid #b6d5bd13;
  border-radius:50%;
  transform:rotate(-25deg);
}

.orbit-two {
  inset:7% auto auto 7%;
  width:86%;
  height:90%;
  border-style:dashed;
  opacity:.8;
}

.label-strategy {
  top:14%;
  left:27%;
}

.label-engineering {
  top:55%;
  right:9%;
}

.label-growth {
  bottom:12%;
  left:23%;
}

.partners {
  padding:32px 5.5% 27px;
  border-top:1px solid var(--line);
  background:#0d2122;
  text-align:center;
}

.partners>p {
  font-size:8px;
  letter-spacing:1.8px;
  color:#859d92;
}

.partner-names {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:38px;
  margin:32px auto;
  color:#c0cec2;
}

.partner-names>span {
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}

.partner-palo {
  font-size:25px;
  letter-spacing:-1.2px;
}

.partner-palo span {
  display:block;
  text-align:right;
  font-size:11px;
  letter-spacing:2.8px;
  margin-top:2px;
}

.partner-mixtiles {
  font-size:29px;
  letter-spacing:-1.4px;
}

.partner-forter {
  font-size:36px;
  letter-spacing:-2px;
  font-style:italic;
}

.partner-forter span {
  font-size:10px;
  vertical-align:top;
  letter-spacing:0;
}

.partner-hyper {
  font-size:16px;
  letter-spacing:1px;
}

.partner-access {
  font-size:26px;
  letter-spacing:-1.4px;
}

.partner-boring {
  font-size:24px;
  letter-spacing:-1px;
}

.partner-boring span {
  display:block;
}

.partner-diagnostic {
  font-size:21px;
  letter-spacing:-.8px;
}

.partner-diagnostic span {
  display:block;
  text-align:right;
  font-size:10px;
  font-weight:600;
  letter-spacing:3.3px;
  margin-top:3px;
}

.partner-axiom {
  font-size:21px;
  font-weight:600!important;
  letter-spacing:5px;
}

.section-light {
  background:var(--cream);
  color:var(--ink);
}

.expertise {
  padding:83px 7% 40px;
}

.section-top {
  display:flex;
  justify-content:space-between;
  align-items:start;
  margin-bottom:28px;
}

.expertise h2,.testimonials h2 {
  font-size:clamp(32px,4.1vw,58px);
  line-height:1.18;
  letter-spacing:-2.5px;
}

.muted-heading {
  color:#808b7d;
}

.services-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8%;
  margin-top:56px;
}

.service-tabs {
  padding-top:10px;
}

.service-tab {
  display:flex;
  align-items:center;
  gap:22px;
  text-align:left;
  width:100%;
  padding:26px 8px;
  background:transparent;
  color:var(--ink);
  border-bottom:1px solid #d2d8cc;
}

.tab-number {
  font-size:10px;
  color:#7a8a7b;
  align-self:flex-start;
  margin-top:7px;
}

.service-tab>span:nth-child(2) {
  font-family:var(--display);
  font-size:22px;
  letter-spacing:-.7px;
  flex:1;
}

.service-tab small {
  display:block;
  font:12px var(--font);
  color:#707e71;
  letter-spacing:0;
  margin-top:9px;
}

.tab-arrow {
  width:35px;
  height:35px;
  display:grid;
  place-items:center;
  font-size:22px;
  border-radius:50%;
  transition:.25s;
}

.service-tab.active .tab-arrow {
  background:var(--ink);
  color:var(--mint);
  transform:rotate(45deg);
}

.service-tab.active {
  border-bottom-color:var(--ink);
}

.service-tab:not(.active):hover {
  background:#e9ede0;
}

.service-panel {
  background:#e7ecdf;
  padding:29px 34px 24px;
  min-height:507px;
  position:relative;
  animation:panel-in .3s ease;
}

.panel-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:8px;
  letter-spacing:1.7px;
}

.panel-top>span:last-child {
  font-size:21px;
}

.service-visual {
  height:190px;
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:6px 0 16px;
}

.service-visual svg {
  width:100%;
  max-width:400px;
  height:100%;
  overflow:visible;
}

.service-visual .ln {
  fill:none;
  stroke:#6c8a63;
  stroke-width:1;
}

.service-visual .ln-faint {
  stroke-opacity:.6;
}

.service-visual .dash {
  stroke-dasharray:3 4;
}

.service-visual .dots {
  fill:#7f9b76;
  stroke:none;
}

.service-visual .ink {
  fill:none;
  stroke:var(--ink);
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.service-visual .ink-fill,.service-visual .layer-top {
  fill:var(--ink);
}

.service-visual .accent {
  fill:var(--mint);
  stroke:var(--ink);
  stroke-width:1.2;
}

.service-visual .node circle {
  fill:#e7ecdf;
  stroke:#7f9b76;
}

.service-visual .node-new circle {
  stroke-dasharray:2 2;
}

.service-panel:not([hidden]) .service-visual .draw {
  stroke-dasharray:1;
  stroke-dashoffset:1;
  animation:visual-draw 1.1s cubic-bezier(.4,0,.2,1) forwards;
}

.service-panel:not([hidden]) .service-visual .draw-late {
  animation-delay:.6s;
}

@keyframes visual-draw {
  to {
    stroke-dashoffset:0;
  }
}

.service-panel h3 {
  font-size:32px;
  line-height:1.2;
  letter-spacing:-1.3px;
  margin-bottom:15px;
}

.service-panel>p {
  font-size:13px;
  line-height:1.8;
  color:#5b6b60;
  max-width:380px;
}

.service-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:20px;
}

.service-tags span {
  font-size:8px;
  letter-spacing:.1px;
  border:1px solid #c4cdbd;
  border-radius:20px;
  padding:5px 9px;
}

.panel-link {
  display:flex;
  justify-content:space-between;
  font-size:11px;
  font-weight:600;
  border-top:1px solid #c4cdbd;
  margin-top:24px;
  padding-top:15px;
}

.panel-link span {
  font-size:17px;
}

.approach {
  padding:90px 7% 0;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 12%;
  background:var(--deep);
  position:relative;
}

.approach h2 {
  font-size:clamp(43px,4.8vw,67px);
  line-height:1.1;
  letter-spacing:-3px;
  margin:24px 0;
}

.approach-intro>p:not(.eyebrow) {
  font-size:14px;
  color:#a9bdb3;
  line-height:1.9;
  max-width:390px;
}

.approach-steps article {
  border-top:1px solid #40514a;
  padding:25px 0 30px;
}

.approach-steps article>span {
  font-size:9px;
  letter-spacing:1.3px;
  color:var(--mint);
}

.approach-steps h3 {
  font-size:24px;
  letter-spacing:-.7px;
  margin:13px 0 12px;
}

.approach-steps p {
  font-size:13px;
  line-height:1.85;
  color:#96aea0;
  max-width:365px;
}

.testimonials {
  padding:85px 7%;
  border-bottom:1px solid #d4dacd;
}

.testimonial-layout {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:9%;
  margin-top:34px;
}

.testimonials h2 {
  font-size:42px;
  letter-spacing:-2px;
}

.quote-symbol {
  font-family:Georgia,serif;
  font-size:140px;
  height:145px;
  line-height:1.2;
  margin-top:25px;
  color:#a4bc96;
}

.quote-person {
  display:flex;
  gap:14px;
  align-items:center;
  margin-top:35px;
}

.quote-person img {
  border-radius:50%;
  filter:saturate(.55);
  width:48px;
  height:48px;
}

.quote-person strong {
  display:block;
  font-size:12px;
  font-weight:600;
  margin-bottom:3px;
}

.quote-person div>span {
  font-size:10px;
  color:#738269;
}

.faq {
  padding:70px 7% 80px;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:10%;
}

.faq h2 {
  font-size:36px;
  letter-spacing:-1.5px;
  line-height:1.2;
  margin:22px 0 27px;
}

.dark-link {
  border-color:#b2bca9;
  font-size:11px;
}

.faq-list details {
  border-bottom:1px solid #cbd4c3;
}

.faq-list details:first-child {
  border-top:1px solid #cbd4c3;
}

.faq-list summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:21px 0;
  font-size:13px;
  font-weight:500;
  gap:12px;
}

.faq-list summary::-webkit-details-marker {
  display:none;
}

.faq-list summary span {
  font-size:20px;
  font-weight:400;
  transition:transform .2s;
}

.faq-list details[open] summary span {
  transform:rotate(45deg);
}

.faq-list details p {
  padding:0 25px 24px 0;
  font-size:12px;
  line-height:1.8;
  color:#63775b;
}

.faq-list details a {
  text-decoration:underline;
  text-underline-offset:3px;
}

.contact-section {
  background:var(--mint);
  color:var(--ink);
  padding:75px 7% 70px;
  display:grid;
  grid-template-columns:1.08fr 1fr;
  gap:10%;
}

.contact-copy .status-dot {
  background:var(--ink);
  box-shadow:0 0 0 4px #1025260c;
}

.contact-copy h2 {
  font-size:clamp(45px,5vw,72px);
  letter-spacing:-3px;
  line-height:1.12;
  margin:26px 0;
}

.contact-copy h2>span {
  font-family:Georgia,serif;
  font-style:italic;
}

.contact-copy>p:not(.eyebrow) {
  font-size:13px;
  line-height:1.8;
  color:#45633e;
}

.button-dark {
  background:var(--ink);
  color:var(--mint);
  margin-top:30px;
}

.button-dark:hover {
  background:#1f3e34;
}

.contact-email {
  display:block;
  font-size:12px;
  margin-top:20px;
  width:fit-content;
  border-bottom:1px solid #7eb56c;
  padding-bottom:4px;
}

.contact-form {
  padding-top:5px;
}

.contact-form h3 {
  font:500 16px var(--display);
  margin-bottom:25px;
}

.contact-form label {
  font-size:10px;
  font-weight:500;
  display:block;
  min-width:0;
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.contact-form input,.contact-form select,.contact-form textarea {
  width:100%;
  min-width:0;
  display:block;
  background:transparent;
  color:var(--ink);
  border:0;
  border-radius:0;
  border-bottom:1px solid #8db776;
  padding:11px 0 14px;
  margin:0 0 23px;
  font-size:12px;
  outline-offset:3px;
}

.contact-form input::placeholder,.contact-form textarea::placeholder {
  color:#5f8254;
  opacity:1;
}

.contact-form textarea {
  resize:vertical;
  min-height:86px;
}

.contact-form select {
  cursor:pointer;
}

.form-submit {
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  border-bottom:1px solid var(--ink);
  padding:3px 0 13px;
  background:transparent;
  font-size:12px;
  font-weight:600;
}

.form-submit span {
  font-size:24px;
}

.form-status {
  font-size:11px;
  line-height:1.7;
  padding-top:12px;
  min-height:30px;
}

.form-status.error {
  color:#792c24;
}

footer {
  padding:35px 5.5%;
  display:flex;
  align-items:center;
  gap:35px;
  background:var(--deep);
}

footer>.brand {
  font-size:24px;
}

footer>.brand img {
  width:28px;
  height:28px;
}

footer>span {
  font-size:10px;
  color:#8ca194;
}

footer>div {
  display:flex;
  gap:25px;
  margin-left:auto;
  align-items:center;
  font-size:9px;
  color:#b3c2b7;
}

footer>div>span {
  color:#6e897b;
}

dialog {
  background:var(--cream);
  color:var(--ink);
  border:0;
  padding:30px;
  width:min(850px,94vw);
  max-height:90dvh;
  overscroll-behavior:contain;
}

dialog::backdrop {
  background:#061619bd;
  backdrop-filter:blur(8px);
}

.dialog-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
}

.dialog-header h2 {
  font-size:25px;
  letter-spacing:-1px;
  margin-top:6px;
}

.dialog-close {
  font-size:30px;
  background:transparent;
  width:40px;
  height:40px;
}

.calendar-fallback {
  font-size:11px;
  margin:18px 0;
  line-height:1.7;
}

.calendar-fallback a {
  text-decoration:underline;
}

.calendar-fallback a:not([href]) {
  display:none;
}

#calendar-container iframe {
  display:block;
  width:100%;
  height:560px;
  border:0;
}

@keyframes breathe {
  0%,100% {
    transform:rotate(-4deg) scale(.98);
  }
  50% {
    transform:rotate(5deg) scale(1.035);
  }
}

@keyframes panel-in {
  from {
    opacity:.3;
    transform:translateY(5px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@media(min-width:1550px) {
  .site-header,.hero,.partners,footer {
    padding-left:max(5.5%,calc((100vw - 1400px)/2));
    padding-right:max(5.5%,calc((100vw - 1400px)/2));
  }
  .hero-art {
    right:calc((100vw - 1500px)/2);
    width:770px;
  }
  .expertise,.approach,.testimonials,.faq,.contact-section {
    padding-left:max(7%,calc((100vw - 1320px)/2));
    padding-right:max(7%,calc((100vw - 1320px)/2));
  }
}

@media(max-width:1100px) {
  .site-header {
    height:82px;
    padding-inline:5%;
  }
  .hero {
    padding-top:65px;
    min-height:655px;
  }
  .hero h1 {
    letter-spacing:-4px;
  }
  .hero-art {
    right:-8%;
    width:63%;
    height:570px;
    top:5px;
    opacity:.85;
  }
  .hero-description {
    font-size:15px;
    max-width:410px;
  }
  .hero-actions {
    gap:20px;
  }
  .button {
    padding:17px 19px;
    font-size:12px;
    gap:20px;
  }
  .hero-actions .text-link {
    font-size:11px;
  }
  .partner-names {
    gap:20px;
  }
  .partner-hyper {
    font-size:13px;
  }
  .services-layout {
    gap:5%;
  }
  .service-tab>span:nth-child(2) {
    font-size:19px;
  }
  .service-panel {
    padding-inline:25px;
  }
  .service-tags span {
    font-size:7px;
  }
  .approach {
    gap:0 8%;
  }
  .approach-steps h3 {
    font-size:21px;
  }
  .testimonials h2 {
    font-size:36px;
  }
  .faq {
    gap:7%;
  }
  .contact-section {
    gap:7%;
  }
  footer {
    gap:20px;
  }
  footer>span {
    display:none;
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:20px;
  }
  .site-header {
    height:76px;
    padding-inline:6%;
  }
  .brand {
    font-size:25px;
  }
  .brand img {
    width:29px;
    height:29px;
  }
  .desktop-nav {
    display:none;
  }
  .header-cta {
    margin-left:auto;
    padding-right:22px;
    font-size:12px;
    gap:13px;
  }
  .header-cta span {
    width:28px;
    height:28px;
    font-size:16px;
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    gap:6px;
    background:transparent;
    padding:10px 0 10px 8px;
  }
  .menu-toggle span {
    height:1px;
    width:22px;
    background:var(--cream);
    transition:transform .2s;
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.5px) rotate(45deg);
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.5px) rotate(-45deg);
  }
  .mobile-nav {
    position:absolute;
    top:76px;
    left:0;
    width:100%;
    padding:25px 6%;
    background:var(--deep);
    display:flex;
    flex-direction:column;
    gap:22px;
    border-bottom:1px solid #426052;
    font-size:18px;
  }
  .hero {
    padding:48px 6% 0;
    min-height:0;
  }
  .hero-copy {
    width:100%;
  }
  .eyebrow {
    font-size:8px;
    letter-spacing:1.5px;
  }
  .hero h1 {
    font-size:clamp(57px,11.9vw,90px);
    letter-spacing:-3.6px;
    margin:25px 0 29px;
    line-height:1.04;
  }
  .hero-description {
    font-size:14px;
    line-height:1.8;
    max-width:440px;
  }
  .desktop-break {
    display:none;
  }
  .hero-actions {
    margin-top:25px;
    gap:22px;
  }
  .hero-actions .button {
    font-size:12px;
    padding:17px 18px;
  }
  .hero-actions .text-link {
    font-size:10px;
    gap:10px;
  }
  .hero-art {
    position:relative;
    width:110%;
    height:420px;
    top:auto;
    right:auto;
    margin:-3px -5% -9px;
    opacity:1;
  }
  .hero-art svg {
    max-width:520px;
    left:50%;
    transform:translateX(-50%);
  }
  .hero-art .art-orbit {
    max-width:360px;
    left:50%;
    transform:translateX(-50%);
  }
  .hero-art .orbit-two {
    max-width:420px;
  }
  .label-strategy {
    top:12%;
    left:22%;
  }
  .label-engineering {
    right:8%;
    top:54%;
  }
  .label-growth {
    bottom:13%;
    left:15%;
  }
  .partners {
    padding:28px 6%;
  }
  .partner-names {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:27px 20px;
    margin:27px 0 25px;
  }
  .partner-palo {
    font-size:20px;
  }
  .partner-palo span {
    font-size:9px;
    letter-spacing:2px;
    text-align:center;
  }
  .partner-mixtiles {
    font-size:25px;
  }
  .partner-forter {
    font-size:29px;
  }
  .partner-hyper {
    font-size:10px;
    letter-spacing:.3px;
  }
  .partner-access {
    font-size:21px;
  }
  .partner-boring {
    font-size:19px;
  }
  .partner-diagnostic {
    font-size:17px;
  }
  .partner-diagnostic span {
    font-size:8px;
    letter-spacing:2.6px;
    text-align:center;
  }
  .partner-axiom {
    font-size:16px;
    letter-spacing:3.5px;
  }
  .expertise {
    padding:53px 6% 30px;
  }
  .section-top {
    margin-bottom:26px;
  }
  .expertise h2 {
    font-size:clamp(29px,6.4vw,45px);
    letter-spacing:-1.6px;
    line-height:1.2;
  }
  .services-layout {
    grid-template-columns:1fr;
    margin-top:27px;
    gap:24px;
  }
  .service-tabs {
    padding:0;
  }
  .service-tab {
    padding:19px 4px;
    gap:17px;
  }
  .service-tab>span:nth-child(2) {
    font-size:19px;
  }
  .service-tab small {
    font-size:11px;
    margin-top:6px;
  }
  .service-tab .tab-number {
    font-size:9px;
  }
  .tab-arrow {
    width:31px;
    height:31px;
  }
  .service-panel {
    min-height:0;
    padding:25px;
  }
  .service-visual {
    height:150px;
  }
  .service-panel h3 {
    font-size:31px;
  }
  .service-panel>p {
    font-size:12px;
  }
  .service-tags span {
    font-size:8px;
  }
  .approach {
    padding:55px 6% 0;
    grid-template-columns:1fr;
    gap:36px;
  }
  .approach h2 {
    font-size:50px;
    letter-spacing:-2.5px;
  }
  .approach-intro>p:not(.eyebrow) {
    font-size:13px;
  }
  .approach-steps article {
    padding:23px 0;
  }
  .approach-steps h3 {
    font-size:23px;
  }
  .approach-steps p {
    font-size:12px;
    max-width:none;
  }
  .testimonials {
    padding:52px 6%;
  }
  .testimonial-layout {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:25px;
  }
  .testimonials h2 {
    font-size:37px;
  }
  .testimonial-heading {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:15px;
  }
  .quote-symbol {
    display:none;
  }
  .quote-person {
    margin-top:25px;
  }
  .faq {
    padding:50px 6%;
    grid-template-columns:1fr;
    gap:28px;
  }
  .faq h2 {
    font-size:33px;
    margin:19px 0;
  }
  .faq-list summary {
    font-size:12px;
    padding:19px 0;
  }
  .contact-section {
    padding:50px 6% 30px;
    grid-template-columns:1fr;
    gap:45px;
  }
  .contact-copy h2 {
    font-size:59px;
    letter-spacing:-3px;
    margin:23px 0;
  }
  .contact-copy>p:not(.eyebrow) {
    font-size:12px;
  }
  .contact-form h3 {
    font-size:16px;
  }
  .contact-form input,.contact-form select,.contact-form textarea {
    font-size:16px;
  }
  .contact-form input::placeholder,.contact-form textarea::placeholder {
    font-size:12px;
  }
  .contact-form label {
    font-size:11px;
  }
  footer {
    padding:28px 6%;
    flex-wrap:wrap;
    gap:24px;
  }
  footer>div {
    margin:0;
    width:100%;
    font-size:8px;
    gap:20px;
    justify-content:space-between;
  }
  dialog {
    padding:20px;
  }
  .dialog-header h2 {
    font-size:20px;
  }
  #calendar-container iframe {
    height:500px;
  }
}

@media(max-width:380px) {
  .header-cta {
    padding-right:12px;
  }
  .hero-actions {
    gap:14px;
  }
  .hero-actions .button {
    font-size:10px;
    padding:15px;
    gap:13px;
  }
  .hero-actions .text-link {
    font-size:9px;
    gap:7px;
  }
  .hero-art {
    height:370px;
  }
  .testimonial-heading {
    flex-wrap:wrap;
    gap:20px;
  }
  .contact-copy h2 {
    font-size:51px;
  }
  .partner-hyper {
    font-size:8px;
  }
  .form-row {
    gap:14px;
  }
}

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

/* Keep narrow layouts deliberate, rather than letting controls compress headings. */
.header-cta {
  white-space:nowrap;
}

@media(max-width:760px) {
  .hero h1 {
    font-size:clamp(42px,11.8vw,80px);
    letter-spacing:-2.8px;
  }
  .hero-actions {
    gap:16px;
  }
  .hero-actions .button {
    white-space:nowrap;
    padding:16px 15px;
    gap:17px;
    font-size:11px;
  }
  .hero-actions .text-link {
    font-size:9px;
    gap:8px;
    white-space:nowrap;
  }
  .testimonial-heading {
    display:block;
  }
  .header-cta {
    padding-right:18px;
    gap:12px;
  }
}

@media(max-width:380px) {
  .header-cta {
    font-size:10px;
    padding-right:12px;
    gap:9px;
  }
  .hero-actions .button {
    font-size:10px;
    gap:12px;
    padding:15px 12px;
  }
  .hero-actions {
    gap:12px;
  }
  .hero-actions .text-link {
    font-size:8px;
  }
}

@media(max-width:380px) {
  .header-cta {
    display:none;
  }
  .menu-toggle {
    margin-left:auto;
  }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .hero-art {
    right: 0;
    width: 55%;
  }
  .desktop-nav {
    gap: 24px;
    font-size: 12px;
  }
}

/* Privacy services: the same visual system, with a dedicated data-and-trust story. */
.privacy-hero-new { padding-top: 48px; }
.privacy-back { display: inline-block; margin-bottom: 32px; color: #95aea3; font-size: 9px; letter-spacing: 1.4px; }
.privacy-hero-new h1 { font-size: clamp(64px, 6.9vw, 100px); letter-spacing: -5px; }
.privacy-hero-new .hero-description { max-width: 450px; }
.privacy-art { position: absolute; right: 2%; top: 25px; width: 49%; height: 590px; }
.privacy-art svg { width: 100%; height: 100%; }
.privacy-orbit { transform-origin: 300px 300px; animation: privacy-orbit 18s ease-in-out infinite alternate; }
@keyframes privacy-orbit { from { transform: rotate(-5deg); } to { transform: rotate(20deg); } }
.privacy-foundations { padding: 65px 7%; display: grid; grid-template-columns: 1.1fr 1fr; gap: 10%; border-bottom: 1px solid #d2d8cc; }
.privacy-foundations h2 { font-size: clamp(30px, 3.1vw, 43px); letter-spacing: -1.6px; line-height: 1.2; margin-top: 25px; }
.privacy-foundations > div > p:not(.eyebrow) { font-size: 14px; color: #5b6b60; line-height: 1.9; }
.privacy-principles { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 15px; font-size: 11px; line-height: 1.5; }
.privacy-principles span::before { content: '+'; margin-right: 9px; color: #6c8e62; }
.privacy-services-new { padding: 75px 7% 40px; }
.privacy-services-new h2, .privacy-engagements h2 { font-size: clamp(36px, 4.5vw, 60px); letter-spacing: -2.5px; line-height: 1.18; }
.privacy-service-list { margin-top: 45px; }
.privacy-service-list article { display: grid; grid-template-columns: 35px 1fr 1.25fr 150px; gap: 25px; align-items: center; border-top: 1px solid #cdd5c5; padding: 28px 0; }
.privacy-service-number { font-size: 10px; color: #7a8a72; }
.privacy-service-list h3 { font-size: 24px; letter-spacing: -.8px; }
.privacy-service-list p { font-size: 13px; color: #62725d; line-height: 1.8; }
.privacy-engagements { padding: 80px 7%; background: var(--deep); }
.engagement-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 48px; }
.engagement-grid article { padding: 0 30px; border-left: 1px solid #40514a; display: flex; flex-direction: column; }
.engagement-grid article:first-child { border-left: 0; padding-left: 0; }
.engagement-grid article:last-child { padding-right: 0; }
.engagement-number { font-size: 9px; letter-spacing: 1.3px; color: var(--mint); }
.engagement-grid h3 { font-size: 27px; letter-spacing: -1px; margin: 22px 0 17px; }
.engagement-grid p { font-size: 13px; line-height: 1.9; color: #a7bcaf; flex: 1; }
.engagement-grid article > div { margin-top: 30px; padding-top: 18px; border-top: 1px solid #40514a; font-size: 10px; color: #c1d2c5; line-height: 1.6; }
.privacy-page .contact-copy h2 { font-size: clamp(40px, 4.4vw, 63px); }
@media (min-width: 1550px) {
  .privacy-art { right: calc((100vw - 1450px)/2); width: 720px; }
  .privacy-foundations, .privacy-services-new, .privacy-engagements { padding-left: max(7%, calc((100vw - 1320px)/2)); padding-right: max(7%, calc((100vw - 1320px)/2)); }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .privacy-art { width: 47%; right: 0; }
  .privacy-hero-new h1 { font-size: 7.2vw; letter-spacing: -3px; }
  .privacy-hero-new .hero-description { max-width: 350px; }
  .privacy-service-list article { grid-template-columns: 25px 1fr 1.1fr; gap: 18px; }
  .engagement-grid article { padding-inline: 20px; }
  .engagement-grid h3 { font-size: 23px; }
}
@media (max-width: 760px) {
  .privacy-hero-new { padding-top: 30px; }
  .privacy-back { margin-bottom: 25px; font-size: 8px; }
  .privacy-hero-new h1 { font-size: clamp(42px, 11.8vw, 80px); letter-spacing: -2.8px; }
  .privacy-hero-new .hero-description { max-width: 450px; }
  .privacy-art { position: relative; right: auto; top: auto; width: 110%; height: 385px; margin: 10px -5% 0; }
  .privacy-art svg { display: block; max-width: 440px; margin: auto; }
  .privacy-foundations { grid-template-columns: 1fr; gap: 25px; padding: 45px 6%; }
  .privacy-foundations h2 { font-size: 30px; margin-top: 20px; }
  .privacy-foundations > div > p:not(.eyebrow) { font-size: 13px; }
  .privacy-principles { font-size: 10px; gap: 14px; }
  .privacy-services-new { padding: 45px 6% 30px; }
  .privacy-services-new h2, .privacy-engagements h2 { font-size: 36px; letter-spacing: -1.7px; }
  .privacy-service-list { margin-top: 30px; }
  .privacy-service-list article { grid-template-columns: 22px 1fr; gap: 13px; padding: 24px 0; align-items: baseline; }
  .privacy-service-list h3 { font-size: 23px; }
  .privacy-service-list p { grid-column: 2; font-size: 12px; }
  .privacy-engagements { padding: 50px 6%; }
  .engagement-grid { grid-template-columns: 1fr; margin-top: 35px; gap: 32px; }
  .engagement-grid article, .engagement-grid article:first-child, .engagement-grid article:last-child { border-left: 0; border-top: 1px solid #40514a; padding: 23px 0 0; }
  .engagement-grid h3 { font-size: 28px; margin-top: 17px; }
  .engagement-grid p { font-size: 13px; }
  .engagement-grid article > div { margin-top: 20px; padding-top: 0; border: 0; }
  .privacy-page .contact-copy h2 { font-size: clamp(37px, 10.5vw, 60px); letter-spacing: -2px; }
}

/* Transparent line sculpture inherits the page's current text color. */
#hero-scene-root { position:absolute; inset:0; z-index:0; color:inherit; }
.hero-loading-poster { position:absolute; inset:0 0 0 auto; width:49%; height:100%; }
@media(max-width:760px) {
  /* Headline and text, then the sphere, then the actions. */
  .hero:has(#hero-scene-root) { display:flex; flex-direction:column; padding-top:22px; padding-bottom:48px; }
  .hero:has(#hero-scene-root) .hero-copy { display:contents; }
  .hero:has(#hero-scene-root) h1 { order:1; font-size:clamp(42px,14.6vw,84px); line-height:1; letter-spacing:-.055em; margin:0 0 24px; }
  .hero:has(#hero-scene-root) .hero-description { order:2; font-size:15px; line-height:1.7; }
  #hero-scene-root { position:relative; inset:auto; order:3; width:calc(100% + 12vw); margin:4px 0 0 -6vw; height:min(380px, 96vw); flex:none; }
  #hero-scene-root .hero-scene { height:100%; }
  .hero:has(#hero-scene-root) .hero-actions { order:4; position:relative; z-index:2; margin-top:0; gap:18px 32px; flex-wrap:wrap; }
  .hero-loading-poster { inset:0; width:100%; height:100%; }
}

/* Headings that no longer follow an eyebrow start flush with their column. */
.faq h2,.contact-copy h2,.privacy-foundations h2 { margin-top:0; }
.privacy-service-list article { grid-template-columns:35px 1fr 1.25fr; }
.expertise { padding-bottom:90px; }
.approach { padding-bottom:90px; }
.privacy-services-new { padding-bottom:75px; }
.asw-container .asw-menu-btn { --asw-primary:#102526; }
footer { padding-bottom:84px; }
/* Partner logos run as a continuous strip; four sets keep the loop seamless on wide screens. */
.partners { padding-left:0; padding-right:0; }
.partner-marquee {
  overflow:hidden;
  margin:32px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.partner-track { display:flex; width:max-content; animation:partner-scroll 76s linear infinite; }
.partner-marquee:hover .partner-track { animation-play-state:paused; }
.partner-marquee .partner-names { display:flex; flex:none; flex-wrap:nowrap; justify-content:flex-start; align-items:center; gap:84px; margin:0; padding-right:84px; }
.partner-marquee .partner-names>span { flex:none; text-align:left; }
@keyframes partner-scroll { to { transform:translateX(-50%); } }
@media(max-width:760px) {
  .partner-marquee { margin:24px 0; }
  .partner-track { animation-duration:56s; }
  .partner-marquee .partner-names { gap:52px; padding-right:52px; }
}
@media(prefers-reduced-motion:reduce) {
  .partner-marquee { -webkit-mask-image:none; mask-image:none; padding:0 6%; }
  .partner-track { width:auto; }
  .partner-marquee .partner-names { flex-wrap:wrap; justify-content:center; gap:28px 48px; padding:0; }
  .partner-marquee .partner-names[aria-hidden] { display:none; }
}
html.asw-stop-animations .partner-marquee { -webkit-mask-image:none; mask-image:none; padding:0 6%; }
html.asw-stop-animations .partner-track { width:auto; }
html.asw-stop-animations .partner-marquee .partner-names { flex-wrap:wrap; justify-content:center; gap:28px 48px; padding:0; }
html.asw-stop-animations .partner-marquee .partner-names[aria-hidden] { display:none; }
@media(max-width:760px) {
  .expertise { padding-bottom:53px; }
  .approach { padding-bottom:55px; }
  .privacy-services-new { padding-bottom:45px; }
  .privacy-service-list article { grid-template-columns:22px 1fr; }
  /* Services read as an accordion: each panel opens directly under its tab. */
  .services-layout { display:flex; flex-direction:column; gap:0; }
  .service-tabs,.service-panels { display:contents; }
  #tab-lead { order:1; } #panel-lead { order:2; }
  #tab-build { order:3; } #panel-build { order:4; }
  #tab-team { order:5; } #panel-team { order:6; }
  #tab-privacy { order:7; } #panel-privacy { order:8; }
  .service-tab.active { border-bottom-color:transparent; }
  .service-tab.active .tab-arrow { transform:rotate(135deg); }
  .service-panel { padding:4px 22px 22px; margin-bottom:6px; }
  .panel-top { display:none; }
  .service-visual { height:130px; margin:14px 0 12px; }
  .service-panel h3 { font-size:26px; letter-spacing:-1px; }
}

/* Testimonials: every quote is stacked in one cell, so switching never changes the height. */
.testimonial-layout { grid-template-rows:1fr auto; row-gap:0; }
.testimonial-heading { grid-column:1; grid-row:1; }
.quote-content { grid-column:2; grid-row:1 / span 2; display:grid; }
.quote-slide { grid-area:1 / 1; margin:0; display:flex; flex-direction:column; justify-content:space-between; opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .45s ease, transform .45s ease, visibility 0s linear .45s; }
.quote-slide.active { opacity:1; visibility:visible; transform:none; transition:opacity .45s ease, transform .45s ease; }
.quote-slide blockquote { font-size:24px; font-weight:450; line-height:1.6; letter-spacing:-.4px; margin:0; }
.quote-slide blockquote p { margin:0; }
.quote-slide blockquote p + p { margin-top:.75em; }
.quote-slide.quote-long blockquote { font-size:19px; line-height:1.65; letter-spacing:-.2px; }
.quote-controls { grid-column:1; grid-row:2; align-self:end; display:flex; align-items:center; gap:14px; }
.quote-count { min-width:56px; font-size:11px; letter-spacing:1.5px; color:#5f6f58; font-variant-numeric:tabular-nums; }
.quote-count i { font-style:normal; opacity:.45; margin:0 2px; }
.quote-progress { position:relative; flex:1; max-width:170px; height:1px; margin-right:10px; background:#cdd5c5; }
#quote-progress-bar { position:absolute; inset:0 auto 0 0; width:0; background:var(--ink); transition:width .45s ease; }
.quote-arrow { display:grid; place-items:center; width:46px; height:46px; padding:0; border:1px solid #b6c1ad; border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.quote-arrow svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.quote-arrow:hover { background:var(--ink); border-color:var(--ink); color:var(--mint); }
.quote-arrow:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media(max-width:1100px) and (min-width:761px) {
  .quote-slide blockquote { font-size:21px; }
  .quote-slide.quote-long blockquote { font-size:17px; }
}
@media(max-width:760px) {
  .testimonial-layout { grid-template-columns:1fr; grid-template-rows:auto; row-gap:28px; }
  .testimonial-heading,.quote-content,.quote-controls { grid-column:1; grid-row:auto; }
  .quote-slide blockquote { font-size:19px; line-height:1.6; }
  .quote-slide.quote-long blockquote { font-size:16px; }
  .quote-controls { margin-top:4px; }
  .quote-progress { max-width:none; }
  .quote-arrow { width:44px; height:44px; }
}
