/* Banshee's type and finish. Fonts are served locally; no third-party requests. */
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/assets/fonts/manrope-latin.woff2") format("woff2");
}
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url("/assets/fonts/space-grotesk-latin.woff2") format("woff2");
}

:root {
  --font-body: "Manrope", Arial, sans-serif;
  --font-brand: "Space Grotesk", "Manrope", Arial, sans-serif;
  --muted: #afbeb5;
  --line: rgba(190, 219, 205, .16);
  --radius: 5px;
  font-family: var(--font-body);
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3 { font-weight: 500; }
h2 { font-size: clamp(36px, 3.8vw, 49px); letter-spacing: -.045em; line-height: 1.16; }
p { line-height: 1.8; }
.muted { color: #94aa9c; }
.section-space { padding-top: 104px; padding-bottom: 104px; }
.eyebrow { font-size: 10px; letter-spacing: .15em; font-weight: 600; }
.button {
  min-height: 50px;
  padding: 16px 23px;
  font-size: 13px;
  font-weight: 650;
  box-shadow: 0 1px 0 #b0ffc530 inset, 0 7px 22px #0000000d;
}
.button-small { min-height: 44px; padding: 12px 18px; font-size: 12px; }
.button:hover { background: #99efb1; transform: translateY(-1px); }
.button-outline { box-shadow: none; }
.button-outline:hover { background: #253930; }
.text-link { min-height: 44px; font-size: 13px; font-weight: 500; }
.plain-button { min-height: 40px; }

/* A precise live-text lockup, readable at small sizes and on high-DPI screens. */
.brand { display: inline-flex; align-items: center; min-height: 50px; }
.brand-type { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.brand-name {
  font-family: var(--font-brand);
  font-size: 28px;
  font-weight: 600;
  letter-spacing: .125em;
  line-height: 1;
  text-transform: uppercase;
  color: #e6f3e9;
}
.brand-descriptor {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .41em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--green);
}
.brand:hover .brand-name { color: #fff; }
.nav-shell { height: 96px; gap: 28px; }
.desktop-nav { gap: 28px; margin-right: 20px; }
.desktop-nav a { font-size: 12px; font-weight: 500; color: #b9c8bf; }

/* The hero pairs a substantial type weight with a full, uncropped B. */
.hero {
  grid-template-columns: 1.2fr 1fr;
  min-height: 660px;
  gap: 26px;
  padding-top: 64px;
  padding-bottom: 68px;
}
.hero-copy .eyebrow { font-size: 9px; letter-spacing: .145em; margin-bottom: 27px; }
.hero h1 {
  font-size: clamp(57px, 6.15vw, 80px);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: 1.09;
  margin-bottom: 28px;
}
.hero-description { max-width: 465px; font-size: 16px; line-height: 1.85; margin-bottom: 30px; }
.hero-actions { gap: 25px; flex-wrap: wrap; }
.hero-actions .text-link { font-size: 12px; gap: 16px; }
.hero-note { font-size: 9px; line-height: 1.8; letter-spacing: .07em; color: #a0b6a7; max-width: 465px; margin-top: 26px; }
.hero-art {
  margin: 0;
  height: 500px;
  opacity: 1;
  background: radial-gradient(ellipse at 50% 52%, #2b493229, transparent 67%);
}
.art-orbit { opacity: .65; }
.art-grid { opacity: .65; }
.art-marker { top: 7px; left: 10px; font-size: 9px; letter-spacing: .08em; color: #a1b8a9; }
.emblem-window {
  left: 50%;
  top: 8px;
  width: 420px;
  height: 480px;
  transform: translateX(-50%);
  mask-image: linear-gradient(90deg, transparent, black 8%, black 92%, transparent), linear-gradient(180deg, transparent, black 3%, black 97%, transparent);
  mask-composite: intersect;
  mix-blend-mode: lighten;
}
.emblem-window video {
  width: 910px;
  height: 512px;
  left: -45px;
  top: -18px;
  filter: contrast(1.12) brightness(.96);
  mix-blend-mode: lighten;
}
.art-baseline { left: 10px; right: 5px; bottom: 4px; font-size: 9px; letter-spacing: .08em; color: #9cb3a4; }
.motion-toggle { min-height: 36px; padding: 8px 10px; font-size: 10px; }
.principles { padding-top: 26px; padding-bottom: 26px; }
.principles > span { color: #86b297; font-size: 11px; gap: 14px; }
.principles strong { font: 500 12px/1.6 var(--font-body); color: #b5c7bc; }

/* Comfortable reading sizes and a consistent, restrained section rhythm. */
.section-heading { grid-template-columns: .55fr 1fr; gap: 45px; margin-bottom: 42px; }
.section-heading > .eyebrow { color: #a6bfae; }
.section-heading > div > p { font-size: 15px; max-width: 570px; }
.expertise-tabs { gap: 24px; }
.expertise-tabs button { font-size: 14px; font-weight: 500; gap: 13px; min-height: 66px; padding: 18px 4px 18px 0; }
.expertise-tabs button:hover { color: #c6e5cf; }
.expertise-tabs button[aria-selected=true] { color: var(--green); }
.expertise-tabs button > span:first-child { font-size: 11px; color: #9ab5a4; }
.expertise-panel { padding-top: 44px; padding-bottom: 36px; gap: 56px; min-height: 460px; }
.panel-copy .eyebrow { font-size: 10px; margin-bottom: 18px; }
.panel-copy h3 { font-size: 29px; letter-spacing: -.035em; line-height: 1.3; }
.panel-copy > p { font-size: 14px; line-height: 1.85; }
.check-list li { font-size: 12px; line-height: 1.8; margin: 10px 0; }
.intelligence-diagram, .knowledge-visual, .ai-visual {
  border-color: #86b89836;
  border-radius: 8px;
  background: linear-gradient(145deg, #263d3038, #1b2a2345);
  box-shadow: 0 12px 35px #0000000d;
}
.diagram-topline { font-size: 9px; letter-spacing: .08em; color: #adc5b3; }
.source-nodes > span { font-size: 11px; border-radius: 3px; }
.meaning-node { padding: 19px 10px; font-size: 17px; }
.meaning-node small { font-size: 8px; letter-spacing: .04em; color: #a4c9ab; }
.outcome-node { min-height: 49px; font-size: 12px; border-radius: 3px; }
.diagram-caption { font-size: 8px; line-height: 1.7; letter-spacing: .035em; color: #9bb4a2; }
.platform-note { gap: 18px; padding-top: 27px; }
.platform-note p { font-size: 12px; line-height: 1.85; color: #a4b7a9; }
.platform-note strong { font-size: 13px; font-weight: 500; margin-bottom: 4px; }
.knowledge-row { padding: 21px 0; font-size: 16px; }
.knowledge-row small { font-size: 12px; line-height: 1.7; }
.knowledge-visual .outcome-node { font-size: 12px; }
.ai-core strong { font-size: 20px; font-weight: 500; }
.ai-core small { font-size: 11px; line-height: 1.8; }
.ai-consumers span { font-size: 11px; }

/* The lighter managed-service section is the visual anchor of the page. */
.partnership { background: #e6eddf; }
.partnership-intro { gap: 50px; margin-bottom: 46px; }
.partnership-intro h2 { font-size: clamp(34px, 3.4vw, 44px); letter-spacing: -.045em; }
.partnership-intro h2 span { color: #54735c; }
.partnership-intro > p { font-size: 14px; color: #4e6755; max-width: 370px; }
.managed-grid article { padding-top: 31px; padding-bottom: 35px; }
.managed-top { margin-bottom: 22px; font-size: 11px; color: #4f7156; }
.managed-top svg { stroke-width: 1.2; }
.managed-grid h3 { font-size: 38px; letter-spacing: -.045em; }
.managed-grid article > p { font-size: 13px; font-weight: 500; color: #3f5d47; }
.managed-grid li { font-size: 12px; line-height: 1.8; color: #526c58; margin: 9px 0; }
.partnership-bottom p { font-size: 13px; line-height: 1.9; color: #526e5b; }
.partnership-bottom strong { font-weight: 500; color: #2c5037; }
.partnership-bottom .text-link { font-size: 12px; }
.journey { gap: 30px; }
.journey h3 { font-size: 21px; letter-spacing: -.025em; line-height: 1.4; }
.journey p { font-size: 13px; line-height: 1.85; min-height: 78px; }
.step-number { font-size: 11px; }
.step-output { font-size: 11px; line-height: 1.7; color: #a2bfaa; }
.ownership-strip { padding: 29px 34px; border-radius: 5px; }
.ownership-strip h3 { font-size: 16px; line-height: 1.5; }
.ownership-strip p { font-size: 13px; line-height: 1.85; }
.fit-section { gap: 64px; padding-top: 64px; padding-bottom: 64px; }
.fit-section .eyebrow { font-size: 9px; letter-spacing: .1em; color: #a4bfac; }
.fit-section h2 { font-size: 40px; }
.fit-copy > p { font-size: 15px; line-height: 1.85; }
.fit-tags { gap: 9px; }
.fit-tags span { font-size: 11px; line-height: 1.5; padding: 8px 12px; color: #b1c9b9; }
.faq { gap: 70px; }
.faq .eyebrow { font-size: 9px; color: #a4bfac; }
.faq h2 { font-size: 40px; }
.faq-list summary { font-size: 14px; line-height: 1.7; font-weight: 500; padding: 23px 0; }
.faq-list summary:hover { color: var(--green); }
.faq-list summary > span { flex: none; }
.faq-list details p { font-size: 13px; line-height: 1.9; }
.cta-section { padding-top: 84px; padding-bottom: 84px; }
.cta-section .eyebrow { font-size: 9px; letter-spacing: .12em; }
.cta-section h2 { font-size: clamp(50px, 5.3vw, 68px); line-height: 1.13; letter-spacing: -.05em; }
.cta-section > p:not(.eyebrow) { font-size: 14px; }
.cta-section > small { font-size: 11px; color: #a3bfa9; }
.footer-top { padding: 39px 0; gap: 60px; }
.footer-top p { font-size: 12px; color: #a1b7a8; }
.footer-top .back-top { font-size: 12px; }
.footer-bottom { font-size: 11px; color: #98af9f; }
.footer-bottom > span:nth-child(2) { font-size: 9px; letter-spacing: .09em; }
.footer-bottom button { font-size: 11px; }

/* The brief builder uses the same type scale, with comfortable input sizes. */
dialog { border-color: #779e825c; border-radius: 10px; width: min(660px, calc(100% - 32px)); }
.dialog-shell { padding: 42px; }
.dialog-shell .eyebrow { font-size: 9px; }
.dialog-shell h2 { font-size: 34px; letter-spacing: -.04em; }
.dialog-description { font-size: 13px; line-height: 1.85; }
.dialog-close { width: 44px; height: 44px; }
form > label, legend { font-size: 13px; font-weight: 500; }
form > label > span { font-size: 11px; }
input[type=text], input:not([type]), textarea { font-size: 15px; line-height: 1.7; padding: 12px 14px; border-color: #77978080; }
input::placeholder, textarea::placeholder { color: #8fa494; }
.goal-options span { font-size: 11px; min-height: 46px; line-height: 1.7; display: grid; place-items: center; }
.form-note { font-size: 11px; color: #9db6a3; }
.recommendation h3 { font-size: 23px; line-height: 1.35; letter-spacing: -.02em; }
.recommendation .eyebrow { font-size: 9px; }
.recommendation p { font-size: 13px; line-height: 1.85; }
.brief-summary dt { font-size: 10px; color: #a6c4af; }
.brief-summary dd { font-size: 14px; line-height: 1.8; }
.brief-next { font-size: 13px; line-height: 1.85; }
.result-actions .button { font-size: 12px; min-height: 48px; }
.result-footer button, .result-footer p { font-size: 12px; }
.privacy-shell > p:not(.eyebrow) { font-size: 14px; }

@media (max-width: 1100px) {
  .nav-shell { gap: 22px; }
  .desktop-nav { gap: 23px; margin-right: 8px; }
  .desktop-nav a { font-size: 11px; }
  .hero { gap: 10px; }
  .hero h1 { font-size: clamp(51px, 6.1vw, 67px); }
  .hero-actions { gap: 16px; }
  .hero-actions .button { font-size: 12px; padding: 15px 18px; }
  .hero-actions .text-link { font-size: 11px; gap: 10px; }
  .hero-note { font-size: 8px; }
  .art-marker, .art-baseline { font-size: 8px; }
  .expertise-panel { gap: 36px; }
  .panel-copy h3 { font-size: 27px; }
  .panel-copy > p { font-size: 13px; }
  .managed-grid article > p { font-size: 12px; }
  .managed-grid li { font-size: 11px; }
  .journey p { min-height: 96px; }
}
@media (max-width: 850px) {
  .nav-shell { height: 84px; }
  .brand-name { font-size: 26px; }
  .brand-descriptor { font-size: 9px; letter-spacing: .43em; }
  .section-space { padding-top: 80px; padding-bottom: 80px; }
  .hero { grid-template-columns: 1.15fr 1fr; min-height: 600px; padding-top: 48px; padding-bottom: 48px; }
  .hero-copy .eyebrow { font-size: 8px; max-width: none; line-height: 1.9; }
  .hero h1 { font-size: clamp(46px, 6.1vw, 53px); }
  .hero-description { font-size: 15px; }
  .hero-art { height: 430px; min-width: 0; }
  .emblem-window { width: 325px; height: 385px; top: 23px; }
  .emblem-window video { width: 780px; height: 439px; left: -56px; top: -28px; }
  .art-marker, .art-baseline { font-size: 7px; left: 0; }
  .principles > span { gap: 10px; font-size: 10px; }
  .principles strong { max-width: 160px; font-size: 11px; }
  .section-heading { grid-template-columns: 1fr; gap: 0; }
  .section-heading > .eyebrow { padding-top: 0; margin-bottom: 21px; }
  .expertise-tabs { gap: 17px; }
  .expertise-tabs button { font-size: 12px; gap: 10px; }
  .expertise-tabs button > span:first-child { font-size: 10px; }
  .expertise-panel { gap: 28px; }
  .panel-copy h3 { font-size: 24px; }
  .panel-copy .eyebrow { font-size: 9px; }
  .check-list li { font-size: 11px; }
  .diagram-topline { font-size: 8px; }
  .source-nodes > span { font-size: 10px; }
  .meaning-node { font-size: 14px; }
  .meaning-node small { font-size: 7px; }
  .outcome-node { font-size: 11px; }
  .diagram-caption { font-size: 7px; }
  .partnership-intro { grid-template-columns: 1fr; gap: 20px; }
  .partnership-intro > p { max-width: 550px; margin: 0; }
  .managed-grid h3 { font-size: 31px; }
  .managed-grid article > p { min-height: 38px; }
  .journey { grid-template-columns: repeat(2, 1fr); gap: 38px 30px; }
  .journey p { min-height: 0; font-size: 14px; }
  .ownership-strip p { font-size: 12px; }
  .fit-section { gap: 35px; }
  .fit-section h2 { font-size: 36px; }
  .fit-copy > p { font-size: 14px; }
  .faq { gap: 38px; }
  .faq h2 { font-size: 36px; }
  .footer-top { gap: 30px; }
  .footer-top p { font-size: 11px; }
}
@media (max-width: 760px) {
  .hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding-top: 46px; padding-bottom: 34px; }
  .hero h1 { font-size: clamp(52px, 8.2vw, 62px); }
  .hero-description { max-width: 540px; }
  .hero-art { width: 100%; max-width: 500px; margin: 32px auto 0; height: 420px; }
  .emblem-window { width: 340px; height: 400px; top: 10px; }
  .emblem-window video { width: 810px; height: 456px; left: -57px; top: -29px; }
}
@media (max-width: 600px) {
  .nav-shell { height: 80px; }
  .brand { min-height: 48px; }
  .brand-name { font-size: 25px; letter-spacing: .12em; }
  .brand-descriptor { font-size: 9px; letter-spacing: .39em; }
  .header-cta { display: none; }
  .menu-toggle { margin-left: auto; width: 44px; height: 44px; align-items: flex-end; }
  .mobile-menu a, .mobile-menu button { font-size: 14px; min-height: 52px; }
  .section-space { padding-top: 65px; padding-bottom: 65px; }
  h2, .section-heading h2 { font-size: 36px; letter-spacing: -.045em; }
  .hero { display: flex; gap: 0; min-height: 0; padding-top: 42px; padding-bottom: 25px; }
  .hero-copy .eyebrow { font-size: 8px; letter-spacing: .09em; gap: 7px; margin-bottom: 25px; }
  .hero h1 { font-size: clamp(45px, 12.5vw, 65px); letter-spacing: -.055em; line-height: 1.1; margin-bottom: 24px; }
  .hero-description { max-width: 430px; font-size: 15px; line-height: 1.85; margin-bottom: 26px; }
  .hero-actions { gap: 8px 22px; flex-wrap: wrap; }
  .hero-actions .button { font-size: 12px; padding: 15px 16px; gap: 17px; }
  .hero-actions .text-link { font-size: 12px; }
  .hero-note { font-size: 8px; letter-spacing: .045em; max-width: 370px; margin-top: 22px; }
  .hero-art { height: 350px; width: 100%; margin: 29px 0 0; }
  .emblem-window { width: 290px; height: 330px; top: 10px; }
  .emblem-window video { width: 680px; height: 383px; left: -45px; top: -27px; }
  .art-marker, .art-baseline { font-size: 8px; }
  .art-marker { top: 0; }
  .art-baseline { bottom: 0; }
  .motion-toggle { font-size: 10px; }
  .principles { gap: 16px; padding-top: 23px; padding-bottom: 23px; }
  .principles > span { font-size: 11px; gap: 18px; }
  .principles strong { max-width: none; font-size: 12px; }
  .section-heading { margin-bottom: 29px; }
  .section-heading > .eyebrow { font-size: 10px; }
  .section-heading > div > p { font-size: 14px; line-height: 1.85; }
  .expertise-tabs { gap: 14px; }
  .expertise-tabs button { font-size: 11px; line-height: 1.6; min-height: 82px; padding-top: 15px; padding-bottom: 16px; gap: 8px; }
  .expertise-tabs button > span:first-child { font-size: 10px; }
  .expertise-tabs .tab-arrow { top: 12px; font-size: 18px; }
  .expertise-panel { display: block; padding-top: 32px; padding-bottom: 30px; }
  .panel-copy .eyebrow { font-size: 9px; }
  .panel-copy h3 { font-size: 26px; letter-spacing: -.035em; }
  .panel-copy > p { font-size: 14px; }
  .check-list li { font-size: 12px; }
  .intelligence-diagram, .knowledge-visual, .ai-visual { padding: 22px; max-width: 440px; }
  .source-nodes > span { font-size: 11px; }
  .meaning-node { font-size: 16px; }
  .meaning-node small { font-size: 7px; }
  .outcome-node { font-size: 11px; }
  .diagram-caption { font-size: 8px; }
  .platform-note p { font-size: 12px; }
  .platform-note strong { font-size: 13px; }
  .partnership-intro h2 { font-size: 33px; }
  .partnership-intro .eyebrow { font-size: 9px; }
  .partnership-intro > p { font-size: 14px; line-height: 1.85; }
  .managed-grid article, .managed-grid article:first-child, .managed-grid article:last-child { padding: 28px 0; }
  .managed-top { margin-bottom: 10px; }
  .managed-grid h3 { font-size: 37px; }
  .managed-grid article > p { font-size: 14px; min-height: 0; margin-bottom: 18px; }
  .managed-grid li { font-size: 13px; }
  .partnership-bottom p { font-size: 13px; }
  .partnership-bottom .text-link { font-size: 13px; }
  .journey { gap: 32px 22px; margin-top: 36px; }
  .journey h3 { font-size: 18px; }
  .journey p { font-size: 13px; margin-bottom: 16px; }
  .step-output { font-size: 10px; }
  .ownership-strip { padding: 24px 19px; gap: 16px; }
  .ownership-strip h3 { font-size: 15px; }
  .ownership-strip p { font-size: 12px; }
  .fit-section { gap: 23px; padding-top: 48px; padding-bottom: 48px; }
  .fit-section .eyebrow { font-size: 9px; }
  .fit-section h2 { font-size: 36px; }
  .fit-tags span { font-size: 11px; }
  .faq { grid-template-columns: 1fr; gap: 27px; }
  .faq .eyebrow { font-size: 9px; }
  .faq h2 { font-size: 36px; }
  .faq-list summary { font-size: 14px; }
  .faq-list details p { font-size: 13px; }
  .cta-section { padding-top: 63px; padding-bottom: 65px; }
  .cta-section .eyebrow { font-size: 8px; letter-spacing: .06em; line-height: 1.8; }
  .cta-section h2 { font-size: clamp(46px, 11.8vw, 62px); letter-spacing: -.05em; }
  .cta-section > p:not(.eyebrow) { font-size: 13px; }
  .cta-section .button { font-size: 13px; }
  .cta-section > small { font-size: 11px; }
  .footer-top { gap: 22px; padding: 33px 0 23px; }
  .footer-top p { width: 100%; margin: 0; font-size: 12px; }
  .footer-top .back-top { margin: 0; font-size: 12px; }
  .footer-bottom { font-size: 10px; padding-top: 15px; padding-bottom: 15px; }
  .footer-bottom button { font-size: 11px; }
  .dialog-shell { padding: 36px 23px 26px; }
  .dialog-shell h2 { font-size: 29px; }
  .dialog-description { font-size: 13px; }
  input[type=text], input:not([type]), textarea { font-size: 16px; }
  .goal-options span { font-size: 11px; padding: 11px 8px; }
  .result-actions .button { font-size: 12px; }
  .result-footer button, .result-footer p { font-size: 11px; }
  .form-note { font-size: 10px; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 45px; }
  .hero-copy .eyebrow { font-size: 7px; }
  .hero-actions .button, .hero-actions .text-link { font-size: 12px; }
  .hero-art { height: 330px; }
  .emblem-window { width: 270px; height: 310px; }
  .emblem-window video { width: 638px; height: 359px; left: -44px; top: -26px; }
  .expertise-tabs { gap: 11px; }
  .expertise-tabs button { font-size: 10px; }
  .journey { grid-template-columns: 1fr; gap: 26px; }
  .intelligence-diagram, .knowledge-visual, .ai-visual { padding: 18px; }
}
