/* Shared layout and interaction foundations. Cinematic tokens live in identity.css. */
:root {
  --accent: #245de8;
  --accent-bright: #94b8ff;
  --accent-solid: #245de8;
  --sig: #7ab8ff;
  --cobalt: #245de8;
  --azure: #94b8ff;
  --accb: #436187;
  --bg: #080f1b;
  --night: #080f1b;
  --deep: #111d32;
  --mid: #111d32;
  --card: #182741;
  --panel: #182741;
  --txt: #f5f7fa;
  --dim: #bac7d8;
  --muted: #adbbcd;
  --low: #95a8c0;
  --line: #ffffff24;
  --line-2: #ffffff40;
}
::selection { background: #9ebfff; color: #080f1b; }
html { scroll-padding-top: 94px; }
body { line-height: 1.65; }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--azure); outline-offset: 5px; }
.wrap { max-width: 1440px; padding-inline: clamp(24px, 5.5vw, 88px); }
.nav { height: 84px; padding-inline: clamp(24px, 4vw, 72px); background: #080f1bf5; border-bottom: 1px solid #ffffff1f; gap: 32px; }
.nav.is-stuck { background: #080f1bf5; border-color: #ffffff24; backdrop-filter: blur(20px); }
/* Keep the original blue wordmark, as well as the original logo image. */
body[data-design="v5"] .nav__word span { color: #3479f6; }
body[data-design="v6"] .nav__word span { color: #6ca7ff; }
.nav__links { gap: clamp(16px, 2.1vw, 32px); font-family: inherit; font-size: 13px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #c5d4ea; }
.nav__links a { position: relative; padding-block: 29px; }
.nav__links a::after { content: ""; position: absolute; inset: auto 0 17px; height: 2px; background: #94b8ff; transform: scaleX(0); transform-origin: left; transition: transform .25s; }
.nav__links a:hover::after, .nav__links a.on::after { transform: scaleX(1); }
.nav__links a.on { color: #fff; }
.btn { border: 1px solid transparent; border-radius: 0; background: var(--accent-solid); padding: 16px 26px; font-family: inherit; font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: 0; min-height: 52px; transition: background .25s, transform .25s; }
.btn:hover { background: #194ec6; box-shadow: none; transform: translateY(-2px); }
.btn--sm { padding: 11px 19px; min-height: 44px; font-size: 13px; }
.ghost { border: 0; border-bottom: 1px solid #ffffff66; border-radius: 0; padding: 9px 0; font-family: inherit; font-size: 14px; letter-spacing: 0; text-transform: none; }
.hero__cta, .hero6__cta { gap: 28px; }
.hero { min-height: min(940px, 100svh); padding-top: 130px; }
.hero__h1 { max-width: 1100px; font-size: clamp(44px, 6.6vw, 100px); font-weight: 500; line-height: 1.04; letter-spacing: -.045em; }
.hero__content { padding-bottom: 36px; }
.hero__media img { filter: none; object-position: center; animation: none; transform: none; }
.hero__scrim { background: linear-gradient(90deg, #080f1bf5 0%, #080f1bb8 42%, #080f1b30 100%), linear-gradient(0deg, #080f1b 0%, transparent 68%); }
.hero__sub { max-width: 53ch; color: #dce5f1; margin-top: 26px; }
.hero__base { color: #b7c9e3; border-color: #ffffff30; }
.hero .kicker { color: #c3d6f1; }
.hero6 { min-height: 800px; grid-template-columns: 54% 46%; padding-top: 84px; }
.hero6__panel { position: relative; justify-content: center; gap: 30px; padding: 62px clamp(28px, 5.5vw, 88px); background: #111d32; }
.hero6__panel::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg, #245de8, #94b8ff); }
.hero6__h1 { font-size: clamp(43px, 5.05vw, 82px); font-weight: 400; letter-spacing: -.045em; line-height: 1.04; }
.hero6__h1 em { font-weight: 400; }
.hero6__media img { filter: none; object-position: center; }
.hero6__media::after { background: linear-gradient(90deg, #111d3225, transparent 45%); }
.hero6__art { opacity: .18; }
.hero6__sub { max-width: 43ch; font-size: 17px; color: #bac9dd; }
.hero6__base { color: #a8bdd9; font-size: 11px; margin-top: 14px; padding-top: 22px; gap: 20px; }
.hero6--sub { min-height: 700px; }
.phero { min-height: 760px; padding-top: 145px; }
.phero--low { min-height: 650px; }
.phero__media img { filter: none; }
.phero__scrim { background: linear-gradient(90deg, #080f1bed, #080f1b66), linear-gradient(0deg, #080f1b 0%, #080f1b00 90%); }
.phero__sub { color: #c3d2e8; }
.phero__rail { color: #bed0e7; }
.ph { padding-top: 155px; padding-bottom: 70px; }
.ph__h1 { max-width: 20ch; letter-spacing: -.04em; }
.h2 { font-weight: 500; letter-spacing: -.035em; line-height: 1.1; }
.kicker, .eyebrow { font-family: inherit; font-size: 12px; font-weight: 600; letter-spacing: .1em; }
.sec, .sech { padding-block: clamp(72px, 8vw, 120px); }
.sec:not(.sec--mid), .sech:not(.sech--mid):not(.sech--deep), .chapters, .team6 {
  background: #edf2f8; color: #111d32;
  --txt: #111d32; --dim: #586a80; --muted: #5d7089; --low: #5d728d;
  --line: #334f7426; --line-2: #334f7440; --sig: #2867d7; --azure: #2867d7;
  --card: #fff; --panel: #fff; --accb: #9db5d4; --deep: #dce7f4; --bg: #fff; --night: #fff;
}
.sec:not(.sec--mid) .eyebrow { color: #2867d7; }
.srow { grid-template-columns: 62px 1fr 1.15fr; gap: 32px; padding-block: 35px; }
.srow__n { font-family: inherit; font-size: 15px; }
.srow__t { font-size: clamp(23px, 2.4vw, 34px); font-weight: 500; line-height: 1.15; }
.srow:hover, .row6:hover { background: #245de809; }
.srow__go { font-family: inherit; font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.feat { border: 0; border-left: 4px solid #245de8; border-radius: 0; background: #dce7f4; padding: clamp(26px, 4vw, 56px); margin-top: 44px; }
.feat__media, .card, .band, .mstep, .caps, .stats, .grid6, .pair6 figure, .codes6 figure, .loop6, .map6 { border-radius: 0; }
.feat__media img, .card__media img, .card:hover .card__media img, .band img, .wide img, .wide6 img, .team6__media img, .show__media img { filter: none; }
.cards { gap: 28px; }
.card { border: 0; box-shadow: 0 4px 30px #162c4c08; transition: transform .3s, box-shadow .3s; }
.card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px #162c4c18; }
.card__body { padding: 30px; gap: 14px; }
.card__label { font-family: inherit; font-size: 13px; letter-spacing: 0; text-transform: none; }
.card__t { font-size: clamp(24px, 2.6vw, 36px); font-weight: 500; line-height: 1.14; }
.card__b { font-size: 15px; }
.card__spec span { font-family: inherit; font-size: 13px; letter-spacing: 0; }
.card__link { font-family: inherit; font-size: 14px; letter-spacing: 0; text-transform: none; padding-top: 20px; }
.pill { font-family: inherit; letter-spacing: 0; font-size: 10px; }
.show__media { max-width: 1264px; margin-inline: auto; padding-inline: 24px; }
.show .h2 { max-width: 20ch; }
.show__foot .tags { justify-content: flex-start; }
.tagband { background: #245de8; color: white; border: 0; }
.tagband span { color: white; }
.tagband i { background: #a6c6ff; }
.marq { background: #080f1b; }
.chapters { grid-template-columns: 46% 54%; }
.chapters__media { top: 84px; height: calc(100svh - 84px); background: #111d32; }
.chapters__media .slide { background: #111d32; }
.chapters__media::after { background: none; }
.chapters__media .atxt { fill: #a6bedc; }
.chapters__intro { padding-top: 76px; }
.chapters__intro h2 { font-weight: 400; max-width: 19ch; }
.chapter { min-height: 520px; padding-block: 64px; }
.chapter .num { font-size: 58px; font-weight: 300; color: #597597; -webkit-text-stroke: 0; }
.chapter.in-view .num { -webkit-text-stroke: 0; color: #2867d7; }
.chapter h3 { font-weight: 400; font-size: clamp(30px, 3vw, 45px); max-width: 17ch; }
.chapter a { align-self: flex-start; border-bottom-color: #9cafcb; font-weight: 500; }
.case6 { min-height: 800px; }
.case6__media img { filter: none; }
.case6__media::after { background: linear-gradient(90deg, #080f1bf2, #080f1b80 65%, #080f1b30), linear-gradient(0deg, #080f1b, transparent 70%); }
.case6 h2 { font-weight: 400; max-width: 19ch; line-height: 1.06; }
.case6 .body, .case6__client { color: #c3d2e8; }
.prods6 { gap: 28px; padding: 64px clamp(24px, 5.5vw, 88px); background: #edf2f8; }
.prod6 { min-height: 660px; border: 0; }
.prod6 img, .prod6:hover img { filter: none; }
.prod6::after { background: linear-gradient(0deg, #080f1bf5 0%, #080f1bbf 36%, #080f1b00 85%); }
.prod6__body { padding: 36px; }
.prod6 h3 { font-weight: 400; line-height: 1.12; }
.prod6 p { color: #c0cee0; }
.prod6__name span { color: #d9e4f3; }
.team6 { padding-inline: clamp(24px, 5.5vw, 88px); max-width: none; }
.team6__media { margin-right: 0; }
.team6 h2, .sech h2 { font-weight: 400; line-height: 1.12; }
.secnum, .row6 .rn, .vrow6>b, .grid6 .gn { color: #597597; -webkit-text-stroke: 0; font-weight: 300; }
.stats6 b { font-weight: 400; color: #a8c7ff; }
.grid6 { gap: 24px; background: transparent; border: 0; }
.grid6>div { border-top: 2px solid #3974eb; padding: 30px; }
.sech--deep { background: #080f1b; }
.closeband, .close6 { background: #080f1b; }
.closeband__media, .close6__glow { background: linear-gradient(115deg, transparent 35%, #3974eb20); }
.close, .close6 h2 { max-width: 1100px; font-weight: 400; font-size: clamp(42px, 6.2vw, 90px); line-height: 1.08; letter-spacing: -.04em; }
.closeband .wrap { position: relative; }
.footgrid b, .foot, .foot__nav, .mail { font-family: inherit; letter-spacing: 0; text-transform: none; }
.footgrid b { font-size: 13px; }
.foot__nav { font-size: 13px; gap: 14px 26px; }
.foot { font-size: 12px; }
.nav-toggle { display: none; }
.form .err, .form6 .err { color: #b92d45; }
.form label, .form__note { font-family: inherit; font-size: 12px; text-transform: none; letter-spacing: 0; }
.form input, .form select, .form textarea { border-radius: 0; }
.map svg, .map6 svg { background: #111d32; }
@media (max-width: 1100px) {
  .nav { gap: 18px; }
  .nav__links { gap: 16px; }
  .hero6 { grid-template-columns: 55% 45%; min-height: 740px; }
  .hero6__panel { padding-inline: 32px; }
  .hero6__h1 { font-size: 5.3vw; }
}
@media (max-width: 1000px) {
  .nav > .btn { margin-left: auto; }
  .nav-toggle { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; flex: none; background: transparent; border: 1px solid #ffffff50; color: #fff; cursor: pointer; }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { display: block; width: 18px; height: 1px; background: currentColor; position: relative; transition: transform .2s; }
  .nav-toggle span::before, .nav-toggle span::after { content: ""; position: absolute; left: 0; }
  .nav-toggle span::before { top: -6px; }
  .nav-toggle span::after { top: 6px; }
  .nav.menu-open .nav-toggle span { background: transparent; }
  .nav.menu-open .nav-toggle span::before { top: 0; transform: rotate(45deg); }
  .nav.menu-open .nav-toggle span::after { top: 0; transform: rotate(-45deg); }
  .nav.menu-open .nav__links { display: flex; flex-direction: column; position: absolute; inset: 84px 0 auto; padding: 18px 28px 28px; gap: 0; background: #080f1b; border-bottom: 1px solid #ffffff30; max-height: calc(100svh - 84px); overflow-y: auto; }
  .nav__links a { padding: 15px 0; font-size: 19px; }
  .nav__links a::after { bottom: 9px; }
}
@media (max-width: 900px) {
  .hero6 { grid-template-columns: 1fr; min-height: auto; }
  .hero6__panel { padding: 60px 28px 40px; min-height: 610px; }
  .hero6__h1 { font-size: clamp(44px, 8vw, 70px); }
  .hero6__media { height: 440px; }
  .hero6--sub .hero6__panel { min-height: 520px; }
  .chapters { grid-template-columns: 1fr; }
  .chapter { min-height: auto; padding: 40px 28px; }
  .chapter .num { font-size: 42px; }
  .chapters__intro { padding: 64px 28px 20px; }
  .srow { grid-template-columns: 44px 1fr; gap: 18px; }
  .srow__b { grid-column: 2; }
  .team6 { gap: 34px; }
}
@media (max-width: 600px) {
  .nav { height: 74px; padding-inline: 20px; gap: 12px; }
  .nav > .btn { display: none; }
  .nav-toggle { margin-left: auto; }
  .nav.menu-open .nav__links { top: 74px; }
  .hero { min-height: 850px; min-height: 100svh; padding-top: 150px; }
  .hero__h1 { font-size: clamp(40px, 10vw, 58px); line-height: 1.07; }
  .hero__content { padding-bottom: 18px; }
  .hero__scrim { background: linear-gradient(90deg, #080f1bdc, #080f1b80), linear-gradient(0deg, #080f1b, transparent); }
  .hero__sub { font-size: 16px; }
  .hero__base { margin-top: 20px; }
  .hero6 { padding-top: 74px; }
  .hero6__panel { min-height: 630px; padding: 48px 24px 30px; gap: 28px; }
  .hero6__h1 { font-size: clamp(38px, 9.8vw, 56px); }
  .hero6__base { flex-direction: column; gap: 4px; }
  .hero6__media { height: 340px; }
  .hero6--sub .hero6__panel { min-height: 520px; }
  .phero, .phero--low { min-height: 720px; }
  .ph__h1 { font-size: 42px; }
  .card__body { padding: 25px; }
  .card__label { flex-wrap: wrap; gap: 8px; }
  .srow { grid-template-columns: 30px 1fr; gap: 14px; }
  .prods6 { padding-block: 36px; gap: 24px; }
  .prod6 { min-height: 600px; }
  .prod6__body { padding: 26px; }
  .case6 { min-height: 760px; }
  .case6 h2 { font-size: 44px; }
  .close6__foot .legal, .foot__legal { margin-left: 0; }
  .footgrid { gap: 30px 20px; }
  .mail { overflow-wrap: anywhere; max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .rise, .reveal { opacity: 1 !important; transform: none !important; }
  .band img, .wide img, .show__media img, .wide6 img, .team6__media img, .hero6__media img { clip-path: none !important; }
}
