:root {
  --ink-950: #0b2036;
  --ink-900: #102a43;
  --ink-800: #183b56;
  --ink-700: #334e68;
  --ink-600: #486581;
  --ink-500: #627d98;
  --blue-700: #1d4eb5;
  --blue-600: #2456c4;
  --blue-500: #3468d5;
  --teal-700: #0c625c;
  --teal-600: #0f766e;
  --teal-100: #dff3f0;
  --gold-600: #a96817;
  --gold-500: #c9872b;
  --coral-600: #ad4e3d;
  --paper: #ffffff;
  --canvas: #f5f8fb;
  --canvas-2: #eef4f8;
  --line: #d7e2ec;
  --line-dark: #bdcbd8;
  --success: #14735f;
  --warning-bg: #fff7e6;
  --warning-line: #e8c47a;
  --shadow-sm: 0 1px 2px rgba(16, 42, 67, .06), 0 5px 18px rgba(16, 42, 67, .045);
  --shadow-md: 0 14px 42px rgba(16, 42, 67, .11);
  --shadow-lg: 0 28px 80px rgba(16, 42, 67, .16);
  --radius-sm: .55rem;
  --radius: 1rem;
  --radius-lg: 1.5rem;
  --container: 76rem;
  --reading: 49rem;
  --serif: "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: Aptos, "Segoe UI", Helvetica, Arial, sans-serif;
  --mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  min-width: 20rem;
  background: var(--canvas);
  color: var(--ink-900);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: var(--blue-700); text-underline-offset: .16em; text-decoration-thickness: .08em; }
a:hover { color: var(--teal-700); }
p, ul, ol, blockquote, figure { margin-top: 0; }
h1, h2, h3, h4 {
  margin: 0 0 .7em;
  color: var(--ink-950);
  font-family: var(--serif);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.025em;
  text-wrap: balance;
}
h1 { font-size: clamp(3rem, 7vw, 6.8rem); }
h2 { font-size: clamp(2.15rem, 4.4vw, 4.4rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); }
h4 { font-size: 1.12rem; font-family: var(--sans); letter-spacing: -.01em; }
::selection { background: #cfe1ff; color: var(--ink-950); }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: .5rem;
  left: .5rem;
  padding: .7rem 1rem;
  border-radius: var(--radius-sm);
  background: var(--ink-950);
  color: white;
  transform: translateY(-160%);
  transition: transform .18s ease;
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: .2rem solid var(--gold-500); outline-offset: .2rem; }

.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.container--narrow { width: min(calc(100% - 2rem), var(--reading)); margin-inline: auto; }
.section { padding-block: clamp(4.8rem, 9vw, 8rem); }
.section--compact { padding-block: clamp(3.2rem, 6vw, 5.4rem); }
.section--paper { background: var(--paper); }
.section--tint { background: var(--canvas-2); }
.section--ink { background: var(--ink-950); color: #e6eef5; }
.section--ink h2, .section--ink h3, .section--ink h4 { color: white; }
.section--ink a { color: #bcd3ff; }
.section-head {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(17rem, .8fr);
  gap: 2rem 5rem;
  align-items: end;
  margin-bottom: clamp(2.2rem, 5vw, 4rem);
}
.section-head--single { grid-template-columns: minmax(0, 52rem); }
.section-head p { margin: 0; color: var(--ink-600); font-size: clamp(1.04rem, 1.6vw, 1.2rem); }
.section--ink .section-head p { color: #b9cadd; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: 1rem;
  color: var(--blue-700);
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .13em;
  line-height: 1.25;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 1.8rem; height: .12rem; background: currentColor; }
.section--ink .eyebrow { color: #8fb4ff; }
.lede { color: var(--ink-700); font-size: clamp(1.15rem, 2vw, 1.43rem); line-height: 1.55; }
.measure { max-width: 44rem; }
.kicker { color: var(--teal-700); font-weight: 750; }
.small { font-size: .89rem; }
.muted { color: var(--ink-600); }
.no-margin { margin: 0; }
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(189, 203, 216, .75);
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(16px);
}
.header-inner { min-height: 5.15rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; color: var(--ink-950); text-decoration: none; flex: 0 0 auto; }
.brand img { width: 12.7rem; height: auto; }
.site-nav { display: flex; align-items: center; gap: .15rem; }
.nav-list { display: flex; align-items: center; gap: .05rem; margin: 0; padding: 0; list-style: none; }
.nav-link, .nav-trigger {
  display: inline-flex;
  min-height: 2.8rem;
  align-items: center;
  gap: .36rem;
  padding: .6rem .72rem;
  border: 0;
  border-radius: .6rem;
  background: transparent;
  color: var(--ink-700);
  font-size: .92rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
.nav-link:hover, .nav-trigger:hover, .nav-link[aria-current="page"], .nav-trigger[data-current="true"] { background: #edf3f9; color: var(--ink-950); }
.nav-trigger svg { width: .85rem; transition: transform .18s ease; }
.nav-item { position: relative; }
.nav-item[data-open="true"] .nav-trigger svg { transform: rotate(180deg); }
.nav-menu {
  position: absolute;
  top: calc(100% + .45rem);
  left: -.35rem;
  width: min(23rem, 88vw);
  margin: 0;
  padding: .7rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  box-shadow: var(--shadow-md);
  list-style: none;
  opacity: 0;
  transform: translateY(-.4rem);
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease;
}
.nav-item[data-open="true"] .nav-menu { opacity: 1; transform: translateY(0); pointer-events: auto; }
.nav-menu a { display: block; padding: .78rem .85rem; border-radius: .65rem; color: var(--ink-800); text-decoration: none; }
.nav-menu a:hover, .nav-menu a:focus-visible { background: var(--canvas-2); }
.nav-menu strong { display: block; color: var(--ink-950); font-size: .94rem; }
.nav-menu span { display: block; color: var(--ink-600); font-size: .82rem; line-height: 1.4; }
.nav-cta { margin-left: .65rem; }
.menu-toggle {
  display: none;
  width: 2.9rem;
  height: 2.9rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: .72rem;
  background: white;
  color: var(--ink-950);
}
.menu-toggle svg { width: 1.35rem; }

.button {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: .75rem 1rem;
  border: 1px solid transparent;
  border-radius: .7rem;
  background: var(--blue-600);
  color: white;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 .3rem .9rem rgba(36, 86, 196, .15);
  transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}
.button:hover { background: var(--blue-700); color: white; transform: translateY(-1px); box-shadow: 0 .65rem 1.5rem rgba(36, 86, 196, .2); }
.button--secondary { border-color: var(--line-dark); background: white; color: var(--ink-900); box-shadow: none; }
.button--secondary:hover { background: var(--canvas-2); color: var(--ink-950); }
.button--dark { background: var(--ink-950); box-shadow: none; }
.button--dark:hover { background: #153653; }
.button--ghost { border-color: rgba(255, 255, 255, .35); background: transparent; color: white; box-shadow: none; }
.button--ghost:hover { border-color: white; background: rgba(255, 255, 255, .08); }
.button--text { min-height: auto; padding: 0; background: transparent; color: var(--blue-700); box-shadow: none; }
.button--text:hover { background: transparent; color: var(--teal-700); box-shadow: none; transform: none; }
.button svg { width: 1.05rem; flex: 0 0 auto; }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }

.hero {
  position: relative;
  overflow: clip;
  padding-block: clamp(5rem, 9vw, 9.3rem) clamp(4.3rem, 8vw, 7.4rem);
  background:
    radial-gradient(circle at 93% 12%, rgba(36, 86, 196, .13), transparent 26rem),
    radial-gradient(circle at 79% 70%, rgba(15, 118, 110, .12), transparent 27rem),
    linear-gradient(180deg, #fff 0%, #f5f8fb 100%);
}
.hero::before, .hero::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(36, 86, 196, .17);
  border-radius: 999px;
  pointer-events: none;
}
.hero::before { width: 36rem; height: 36rem; top: -18rem; right: -10rem; }
.hero::after { width: 24rem; height: 24rem; right: 2rem; bottom: -13rem; border-color: rgba(15, 118, 110, .2); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(18rem, .7fr); gap: 4rem 6rem; align-items: center; }
.hero h1 { max-width: 13ch; }
.hero-copy { max-width: 48rem; }
.hero-copy > p { max-width: 42rem; margin-bottom: 0; }
.hero-proof { margin-top: 2rem; padding-left: 1rem; border-left: .18rem solid var(--teal-600); color: var(--ink-600); font-size: .96rem; }
.hero-panel {
  position: relative;
  min-height: 31rem;
  padding: 1.25rem;
  border: 1px solid rgba(189, 203, 216, .8);
  border-radius: 1.7rem;
  background: rgba(255, 255, 255, .72);
  box-shadow: var(--shadow-lg);
  backdrop-filter: blur(10px);
}
.hero-panel::before { content: ""; position: absolute; inset: .65rem; border: 1px solid rgba(215, 226, 236, .9); border-radius: 1.25rem; pointer-events: none; }
.architecture { position: relative; z-index: 1; display: grid; gap: .72rem; padding: 1.25rem .65rem; }
.architecture-label { margin: 0 0 .2rem; color: var(--ink-600); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.architecture-node {
  position: relative;
  padding: 1rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: .8rem;
  background: white;
  box-shadow: var(--shadow-sm);
}
.architecture-node:not(:last-child)::after { content: ""; position: absolute; left: 50%; bottom: -.75rem; width: 1px; height: .75rem; background: var(--line-dark); }
.architecture-node span { display: block; margin-bottom: .14rem; color: var(--blue-700); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.architecture-node strong { display: block; color: var(--ink-950); font-family: var(--serif); font-size: 1.2rem; line-height: 1.18; }
.architecture-node--emphasis { border-color: #91c7c0; background: #f0fbf9; }
.architecture-outcome { margin-top: .25rem; padding: 1rem; border-radius: .85rem; background: var(--ink-950); color: white; }
.architecture-outcome span { color: #a9c5ff; }
.hero-note { position: absolute; right: -1.6rem; bottom: 2.1rem; z-index: 2; width: 11.5rem; padding: .85rem 1rem; border-radius: .8rem; background: #fff9ea; color: var(--ink-800); box-shadow: var(--shadow-md); font-size: .79rem; font-weight: 700; line-height: 1.45; transform: rotate(-2deg); }
.hero-note::before { content: ""; position: absolute; top: -.28rem; left: 1.25rem; width: 3rem; height: .55rem; background: rgba(201, 135, 43, .28); transform: rotate(3deg); }

.page-hero { position: relative; overflow: clip; padding-block: clamp(4.7rem, 8vw, 7.3rem) clamp(3.6rem, 6vw, 5.2rem); background: white; border-bottom: 1px solid var(--line); }
.page-hero::after { content: ""; position: absolute; right: -8rem; top: -9rem; width: 27rem; height: 27rem; border: 1px solid rgba(36, 86, 196, .15); border-radius: 45% 55% 57% 43% / 45% 45% 55% 55%; transform: rotate(18deg); }
.page-hero h1 { max-width: 13ch; font-size: clamp(3.1rem, 7vw, 6rem); }
.page-hero p { max-width: 50rem; margin: 1.4rem 0 0; color: var(--ink-600); font-size: clamp(1.15rem, 2vw, 1.42rem); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .4rem .55rem; align-items: center; margin: 0 0 1.45rem; padding: 0; list-style: none; color: var(--ink-600); font-size: .84rem; }
.breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: .55rem; color: var(--line-dark); }
.breadcrumbs a { color: inherit; }

.stat-strip { position: relative; z-index: 4; margin-top: -2.3rem; }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 1rem; background: white; box-shadow: var(--shadow-md); overflow: hidden; }
.stat { min-height: 8.2rem; padding: 1.3rem 1.45rem; }
.stat + .stat { border-left: 1px solid var(--line); }
.stat strong { display: block; margin-bottom: .25rem; color: var(--ink-950); font-family: var(--serif); font-size: 1.75rem; }
.stat span { color: var(--ink-600); font-size: .9rem; line-height: 1.45; }

.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.card {
  position: relative;
  display: flex;
  min-height: 100%;
  flex-direction: column;
  padding: clamp(1.35rem, 2.5vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover { transform: translateY(-3px); border-color: #b4c8dc; box-shadow: var(--shadow-md); }
.card-number { margin-bottom: 2rem; color: var(--blue-700); font-family: var(--mono); font-size: .78rem; font-weight: 800; }
.card h3 { margin-bottom: .7rem; font-size: 1.55rem; }
.card p { color: var(--ink-600); }
.card .card-link { margin-top: auto; padding-top: 1.2rem; color: var(--ink-900); font-weight: 800; text-decoration: none; }
.card .card-link::after { content: " →"; color: var(--blue-700); }
.card--feature { border-top: .23rem solid var(--blue-600); }
.card--teal { border-top-color: var(--teal-600); }
.card--gold { border-top-color: var(--gold-500); }
.card--ink { background: var(--ink-950); color: white; }
.card--ink h3, .card--ink .card-link { color: white; }
.card--ink p { color: #bfd0df; }

.service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; counter-reset: services; }
.service-item {
  counter-increment: services;
  display: grid;
  grid-template-columns: 3.1rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1.55rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
}
.service-item::before { content: counter(services, decimal-leading-zero); color: var(--blue-700); font-family: var(--mono); font-size: .78rem; font-weight: 800; padding-top: .2rem; }
.service-item h3 { margin-bottom: .5rem; font-size: 1.45rem; }
.service-item p { margin: 0; color: var(--ink-600); }
.service-item ul { margin: .9rem 0 0; padding-left: 1.15rem; color: var(--ink-700); font-size: .92rem; }
.service-item li + li { margin-top: .3rem; }

.network-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 3rem 6rem; align-items: center; }
.network-visual {
  position: relative;
  min-height: 31rem;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: var(--radius-lg);
  background: radial-gradient(circle at center, rgba(52, 104, 213, .23), transparent 42%), rgba(255, 255, 255, .035);
  overflow: hidden;
}
.network-core { position: absolute; z-index: 3; left: 50%; top: 50%; width: 9rem; height: 9rem; display: grid; place-items: center; padding: 1rem; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; background: var(--ink-950); color: white; text-align: center; transform: translate(-50%, -50%); box-shadow: 0 0 0 1.3rem rgba(36, 86, 196, .11); font-family: var(--serif); font-size: 1.2rem; line-height: 1.12; }
.network-ring { position: absolute; left: 50%; top: 50%; width: 23rem; height: 23rem; border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; transform: translate(-50%, -50%); }
.network-node { position: absolute; z-index: 2; width: 9rem; padding: .66rem .8rem; border: 1px solid rgba(255, 255, 255, .22); border-radius: 99rem; background: rgba(255, 255, 255, .08); color: #e9f1f8; text-align: center; font-size: .82rem; font-weight: 700; }
.network-node:nth-of-type(1) { left: 50%; top: 8%; transform: translateX(-50%); }
.network-node:nth-of-type(2) { right: 4%; top: 26%; }
.network-node:nth-of-type(3) { right: 7%; bottom: 17%; }
.network-node:nth-of-type(4) { left: 50%; bottom: 5%; transform: translateX(-50%); }
.network-node:nth-of-type(5) { left: 6%; bottom: 18%; }
.network-node:nth-of-type(6) { left: 3%; top: 27%; }
.network-copy p { color: #bccddd; font-size: 1.05rem; }
.network-steps { display: grid; gap: .85rem; margin-top: 2rem; }
.network-step { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .85rem; }
.network-step span { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: rgba(143, 180, 255, .16); color: #a9c5ff; font-weight: 800; }
.network-step strong { color: white; }
.network-step p { margin: .12rem 0 0; color: #aebfd0; font-size: .92rem; }

.logo-wall { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.logo-tile { display: grid; min-height: 7.5rem; place-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; background: white; }
.logo-tile img { max-width: 100%; max-height: 4.2rem; object-fit: contain; filter: saturate(.75); transition: filter .16s ease, transform .16s ease; }
.logo-tile:hover img { filter: saturate(1); transform: scale(1.025); }
.logo-disclaimer { max-width: 58rem; margin: 1.3rem 0 0; color: var(--ink-600); font-size: .82rem; }

.work-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.work-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); background: white; overflow: hidden; box-shadow: var(--shadow-sm); }
.work-card[hidden] { display: none !important; }
.work-cover { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #eaf0f5; }
.work-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .3s ease; }
.work-card:hover .work-cover img { transform: scale(1.022); }
.status-badge { position: absolute; left: .8rem; top: .8rem; display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .55rem; border-radius: 99rem; background: rgba(255, 255, 255, .94); color: var(--ink-800); box-shadow: var(--shadow-sm); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.status-badge::before { content: ""; width: .42rem; height: .42rem; border-radius: 50%; background: var(--teal-600); }
.status-badge--forthcoming::before { background: var(--gold-500); }
.work-body { display: flex; min-height: 19rem; flex: 1; flex-direction: column; padding: 1.35rem; }
.work-meta { display: flex; flex-wrap: wrap; gap: .35rem .75rem; margin-bottom: .8rem; color: var(--ink-600); font-size: .75rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.work-body h3 { font-size: 1.55rem; }
.work-body p { color: var(--ink-600); }
.work-actions { display: flex; flex-wrap: wrap; gap: .65rem 1rem; margin-top: auto; padding-top: 1rem; }
.work-actions a { font-weight: 800; text-decoration: none; }
.work-actions a::after { content: " ↗"; }
.work-actions a[href$=".pdf"]::after { content: " ↓"; }
.filter-bar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.filter-button { padding: .55rem .78rem; border: 1px solid var(--line-dark); border-radius: 99rem; background: white; color: var(--ink-700); font-size: .86rem; font-weight: 800; }
.filter-button:hover, .filter-button[aria-pressed="true"] { border-color: var(--ink-900); background: var(--ink-900); color: white; }
.filter-count { margin-left: auto; align-self: center; color: var(--ink-600); font-size: .85rem; }

.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.product-card { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 1rem; min-height: 32rem; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: white; }
.product-card::before { content: ""; position: absolute; right: -7rem; bottom: -8rem; width: 18rem; height: 18rem; border: 2.5rem solid rgba(36, 86, 196, .06); border-radius: 50%; }
.product-card--teal::before { border-color: rgba(15, 118, 110, .08); }
.product-visual { position: relative; display: grid; align-content: center; }
.product-cover { width: min(100%, 18rem); border-radius: .7rem; box-shadow: var(--shadow-md); transform: rotate(-2deg); }
.product-card--teal .product-cover { transform: rotate(2deg); }
.product-copy { position: relative; z-index: 2; align-self: center; }
.product-copy h3 { font-size: clamp(2rem, 3vw, 3rem); }
.product-copy p { color: var(--ink-600); }
.product-label { display: inline-flex; margin-bottom: 1rem; padding: .35rem .55rem; border-radius: 99rem; background: #edf3ff; color: var(--blue-700); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.product-card--teal .product-label { background: var(--teal-100); color: var(--teal-700); }
.product-label--hero {
  margin-bottom: 1.25rem;
  padding: .48rem .75rem;
  background: var(--teal-100);
  color: var(--teal-700);
  font-size: .78rem;
}
.product-stack { display: grid; gap: .65rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.product-stack li { display: flex; gap: .6rem; color: var(--ink-700); font-size: .92rem; }
.product-stack li::before { content: ""; width: .48rem; height: .48rem; margin-top: .48rem; border-radius: 50%; background: var(--blue-600); flex: 0 0 auto; }
.product-card--teal .product-stack li::before { background: var(--teal-600); }
.product-placeholder { margin-top: 1.2rem; padding: .75rem .85rem; border: 1px dashed var(--line-dark); border-radius: .7rem; background: var(--canvas); color: var(--ink-600); font-size: .82rem; }

.process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.process-step { position: relative; padding: 1.3rem; border-top: .16rem solid var(--blue-600); background: white; }
.process-step:nth-child(2) { border-top-color: var(--teal-600); }
.process-step:nth-child(3) { border-top-color: var(--gold-500); }
.process-step:nth-child(4) { border-top-color: var(--coral-600); }
.process-step span { display: block; margin-bottom: 1.4rem; color: var(--ink-500); font-family: var(--mono); font-size: .76rem; }
.process-step h3 { font-size: 1.3rem; }
.process-step p { margin: 0; color: var(--ink-600); font-size: .9rem; }

.insight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.insight-card { display: flex; min-height: 24rem; flex-direction: column; padding: 1.45rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.insight-card[hidden] { display: none !important; }
.insight-topic { display: inline-flex; align-self: flex-start; margin-bottom: 2rem; padding: .32rem .55rem; border-radius: 99rem; background: var(--canvas-2); color: var(--teal-700); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.insight-card time { margin-bottom: .7rem; color: var(--ink-600); font-size: .78rem; }
.insight-card h3 { font-size: 1.55rem; }
.insight-card p { color: var(--ink-600); }
.insight-card a { margin-top: auto; padding-top: 1rem; color: var(--ink-900); font-weight: 850; text-decoration: none; }
.insight-card a::after { content: " →"; color: var(--blue-700); }

.quote-band { padding-block: clamp(3.5rem, 6vw, 5.5rem); background: var(--teal-700); color: white; }
.quote-band blockquote { max-width: 60rem; margin: 0; font-family: var(--serif); font-size: clamp(1.8rem, 4vw, 3.4rem); line-height: 1.2; }
.quote-band cite { display: block; margin-top: 1.4rem; color: #cce9e5; font-family: var(--sans); font-size: .9rem; font-style: normal; }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .8fr); gap: 3rem 6rem; align-items: start; }
.panel { padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }
.panel h3 { font-size: 1.65rem; }
.check-list { display: grid; gap: .75rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.check-list li { display: grid; grid-template-columns: 1.35rem minmax(0, 1fr); gap: .65rem; color: var(--ink-700); }
.check-list li::before { content: "✓"; display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; background: var(--teal-100); color: var(--teal-700); font-size: .78rem; font-weight: 900; }
.warning { padding: 1rem 1.1rem; border: 1px solid var(--warning-line); border-radius: .8rem; background: var(--warning-bg); color: #6e4b13; }
.warning strong { color: #533609; }

.cta-band { position: relative; overflow: hidden; padding-block: clamp(4rem, 7vw, 6.5rem); background: var(--ink-950); color: white; }
.cta-band::after { content: ""; position: absolute; right: -8rem; top: -10rem; width: 30rem; height: 30rem; border: 4rem solid rgba(52, 104, 213, .13); border-radius: 50%; }
.cta-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(16rem, .8fr); gap: 2rem 5rem; align-items: end; }
.cta-inner h2 { max-width: 13ch; color: white; }
.cta-inner p { margin: 0; color: #bfd0df; font-size: 1.08rem; }
.cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: flex-end; }

.contact-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(19rem, .75fr); gap: 2rem 4rem; align-items: start; }
.form-card { padding: clamp(1.25rem, 3vw, 2.3rem); border: 1px solid var(--line); border-radius: var(--radius-lg); background: white; box-shadow: var(--shadow-sm); }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.form-field { display: grid; gap: .4rem; }
.form-field--full { grid-column: 1 / -1; }
.form-field label, .fieldset legend { color: var(--ink-900); font-size: .88rem; font-weight: 800; }
.form-field input, .form-field select, .form-field textarea {
  width: 100%;
  min-height: 3rem;
  padding: .72rem .78rem;
  border: 1px solid var(--line-dark);
  border-radius: .65rem;
  background: #fbfdff;
  color: var(--ink-950);
}
.form-field textarea { min-height: 10rem; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--blue-600); box-shadow: 0 0 0 .2rem rgba(36, 86, 196, .11); outline: none; }
.form-help { margin: 0; color: var(--ink-600); font-size: .78rem; }
.checkbox { display: grid; grid-template-columns: 1.2rem minmax(0, 1fr); gap: .65rem; align-items: start; }
.checkbox input { width: 1.05rem; height: 1.05rem; margin-top: .28rem; accent-color: var(--blue-600); }
.checkbox label { color: var(--ink-700); font-size: .84rem; }
.form-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; margin-top: 1.3rem; }
.form-status { min-height: 1.4rem; margin: .8rem 0 0; color: var(--ink-700); font-size: .86rem; }
.form-status--error { color: var(--coral-600); font-weight: 700; }
.contact-aside { position: sticky; top: 7rem; display: grid; gap: 1rem; }
.contact-method { padding: 1.25rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; }
.contact-method h3 { font-family: var(--sans); font-size: 1rem; }
.contact-method p { margin: 0; color: var(--ink-600); }
.contact-method a { font-weight: 800; overflow-wrap: anywhere; }

.article-hero { padding-block: clamp(4.4rem, 7vw, 7rem) 3rem; background: white; border-bottom: 1px solid var(--line); }
.article-hero h1 { max-width: 15ch; font-size: clamp(3rem, 7vw, 5.8rem); }
.article-deck { max-width: 50rem; color: var(--ink-600); font-size: clamp(1.16rem, 2vw, 1.42rem); }
.article-meta { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; align-items: center; margin: 1.5rem 0 0; color: var(--ink-600); font-size: .86rem; }
.article-meta span + span { position: relative; }
.article-meta span + span::before { content: "•"; margin-right: 1.2rem; color: var(--line-dark); }
.article-layout { display: grid; grid-template-columns: 13rem minmax(0, var(--reading)); gap: 3rem 4rem; justify-content: center; align-items: start; }
.article-tools { position: sticky; top: 7rem; padding-top: .4rem; }
.article-tools strong { display: block; margin-bottom: .7rem; color: var(--ink-950); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.article-tools nav { display: grid; gap: .35rem; }
.article-tools a { padding: .35rem 0; color: var(--ink-600); font-size: .8rem; line-height: 1.35; text-decoration: none; }
.article-tools a:hover { color: var(--blue-700); }
.article-body { min-width: 0; font-family: var(--serif); font-size: 1.09rem; line-height: 1.78; }
.article-body > :first-child { margin-top: 0; }
.article-body h2, .article-body h3, .article-body h4 { scroll-margin-top: 7rem; }
.article-body h2 { margin-top: 3.7rem; font-size: clamp(2rem, 4vw, 3.35rem); }
.article-body h3 { margin-top: 2.6rem; font-size: clamp(1.55rem, 2.7vw, 2.15rem); }
.article-body h4 { margin-top: 2rem; font-family: var(--serif); font-size: 1.35rem; }
.article-body p { margin-bottom: 1.35rem; }
.article-body a { overflow-wrap: anywhere; }
.article-body sup { font-size: .68em; line-height: 0; }
.article-body blockquote { margin: 2.2rem 0; padding: 1.4rem 1.6rem; border-left: .22rem solid var(--teal-600); background: var(--canvas-2); color: var(--ink-800); font-size: 1.16rem; }
.article-body figure { margin: 2.6rem 0; }
.article-body figure img { width: min(100%, 72rem); margin-inline: auto; border: 1px solid var(--line); border-radius: .8rem; background: white; box-shadow: var(--shadow-md); }
.article-body figcaption { width: min(calc(100% - 2rem), 58rem); margin: .75rem auto 0; color: var(--ink-600); font-family: var(--sans); font-size: .82rem; line-height: 1.55; text-align: center; }
.article-body ul, .article-body ol { padding-left: 1.4rem; }
.article-body li + li { margin-top: .45rem; }
.article-body hr { margin: 3rem 0; border: 0; border-top: 1px solid var(--line); }
.article-source { margin-top: 3rem; padding: 1.2rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--canvas-2); font-family: var(--sans); font-size: .86rem; }
.article-source p { margin: 0; }
.detail-cover { width: min(100%, 26rem); border-radius: .9rem; box-shadow: var(--shadow-lg); }
.toc-subsection { padding-left: .7rem !important; font-size: .8rem; }
.article-downloads { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.2rem; }

.site-footer { background: #081a2b; color: #b7c9d9; }
.footer-main { display: grid; grid-template-columns: minmax(15rem, 1.2fr) repeat(3, minmax(9rem, .6fr)); gap: 2rem 4rem; padding-block: 4rem 3rem; }
.footer-brand img { width: 14rem; filter: brightness(0) invert(1); opacity: .94; }
.footer-brand p { max-width: 28rem; margin: 1rem 0 0; color: #9fb2c4; }
.footer-col h2 { margin-bottom: .85rem; color: white; font-family: var(--sans); font-size: .78rem; letter-spacing: .11em; text-transform: uppercase; }
.footer-col ul { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.footer-col a { color: #b7c9d9; text-decoration: none; }
.footer-col a:hover { color: white; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; padding-block: 1.2rem 1.6rem; border-top: 1px solid rgba(255, 255, 255, .11); color: #88a0b5; font-size: .79rem; }
.footer-bottom p { margin: 0; }

.reveal { opacity: 1; transform: none; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 68rem) {
  .menu-toggle { display: inline-flex; }
  .site-nav {
    position: fixed;
    inset: 5.15rem 0 auto;
    max-height: calc(100dvh - 5.15rem);
    display: none;
    align-items: stretch;
    padding: 1rem;
    border-bottom: 1px solid var(--line);
    background: white;
    overflow-y: auto;
  }
  .site-nav[data-open="true"] { display: block; }
  .nav-list { display: grid; align-items: stretch; }
  .nav-link, .nav-trigger { width: 100%; min-height: 3rem; justify-content: space-between; padding-inline: .85rem; font-size: 1rem; }
  .nav-item { width: 100%; }
  .nav-menu { position: static; display: none; width: auto; margin: .2rem 0 .6rem 1rem; border: 0; border-left: 2px solid var(--line); border-radius: 0; box-shadow: none; opacity: 1; transform: none; pointer-events: auto; }
  .nav-item[data-open="true"] .nav-menu { display: block; }
  .nav-cta { margin: .8rem 0 0; }
  .nav-cta .button { width: 100%; }
  .hero-grid, .network-grid, .split, .contact-grid { grid-template-columns: 1fr; }
  .hero h1 { max-width: 14ch; }
  .hero-panel { width: min(100%, 34rem); min-height: 28rem; margin-inline: auto; }
  .hero-note { right: .2rem; }
  .section-head, .cta-inner { grid-template-columns: 1fr; align-items: start; }
  .cta-actions { justify-content: flex-start; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .stat:nth-child(4) { border-top: 1px solid var(--line); }
  .card-grid, .work-grid, .insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .logo-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .product-grid { grid-template-columns: 1fr; }
  .product-card { min-height: auto; }
  .process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .article-layout { grid-template-columns: minmax(0, var(--reading)); }
  .article-tools { position: static; display: none; }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-brand { grid-column: 1 / -1; }
  .contact-aside { position: static; }
}

@media (max-width: 44rem) {
  .container, .container--narrow { width: min(calc(100% - 1.25rem), var(--container)); }
  .header-inner { min-height: 4.65rem; }
  .brand img { width: 10.5rem; }
  .site-nav { inset: 4.65rem 0 auto; max-height: calc(100dvh - 4.65rem); }
  .hero { padding-top: 4.2rem; }
  .hero-grid { gap: 2.7rem; }
  .hero-panel { min-height: 26rem; padding: .8rem; border-radius: 1.2rem; }
  .hero-note { position: relative; right: auto; bottom: auto; width: auto; margin: 1rem .4rem .2rem; transform: none; }
  .stat-strip { margin-top: -1rem; }
  .stat-grid { grid-template-columns: 1fr; }
  .stat + .stat { border-left: 0; border-top: 1px solid var(--line); }
  .card-grid, .work-grid, .insight-grid, .service-list, .form-grid { grid-template-columns: 1fr; }
  .form-field--full { grid-column: auto; }
  .logo-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .logo-tile { min-height: 6rem; }
  .product-card { grid-template-columns: 1fr; }
  .product-visual { justify-items: center; }
  .product-cover { width: min(70%, 14rem); }
  .process { grid-template-columns: 1fr; }
  .network-visual { min-height: 28rem; }
  .network-ring { width: 19rem; height: 19rem; }
  .network-core { width: 7.5rem; height: 7.5rem; font-size: 1rem; }
  .network-node { width: 7.3rem; font-size: .72rem; }
  .network-node:nth-of-type(2) { right: 1%; }
  .network-node:nth-of-type(3) { right: 2%; }
  .network-node:nth-of-type(5) { left: 2%; }
  .network-node:nth-of-type(6) { left: 1%; }
  .article-meta span + span::before { display: none; }
  .article-meta { display: grid; gap: .2rem; }
  .article-body { font-size: 1.03rem; }
  .article-body figure { margin-inline: 0; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
}

@media print {
  .site-header, .site-footer, .cta-band, .article-tools, .button-row, .article-downloads { display: none !important; }
  body { background: white; color: black; font-size: 11pt; }
  .section, .article-hero { padding-block: 1.5rem; }
  .article-layout { display: block; }
  .article-body { max-width: none; font-size: 11pt; }
  a { color: black; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; }
  figure, img { break-inside: avoid; }
}

/* Version 2 content modules */
.logo-tile {
  grid-template-rows: minmax(4.7rem, 1fr) auto;
  gap: .75rem;
  min-height: 9.3rem;
  padding: .9rem 1rem .85rem;
  text-align: center;
}
.logo-image { display: grid; width: 100%; min-height: 4.7rem; place-items: center; }
.logo-tile img { width: 100%; max-width: 12rem; max-height: 4.7rem; }
.logo-name { color: var(--ink-700); font-size: .72rem; font-weight: 750; line-height: 1.3; }

.case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.case-card {
  position: relative;
  min-height: 100%;
  padding: 1.55rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  box-shadow: var(--shadow-sm);
}
.case-card::after { content: ""; position: absolute; left: 1.55rem; right: 1.55rem; bottom: 0; height: .2rem; border-radius: 99rem 99rem 0 0; background: linear-gradient(90deg, var(--blue-600), var(--teal-600)); opacity: .75; }
.case-card h3 { margin-top: 1.25rem; margin-bottom: .7rem; font-size: 1.55rem; }
.case-card p { color: var(--ink-600); }
.case-question { color: var(--ink-900) !important; font-weight: 750; line-height: 1.45; }
.relationship-tag {
  display: inline-flex;
  align-items: center;
  padding: .35rem .55rem;
  border-radius: 99rem;
  background: #eaf1ff;
  color: var(--blue-700);
  font-size: .69rem;
  font-weight: 850;
  letter-spacing: .065em;
  line-height: 1.25;
  text-transform: uppercase;
}

.method-fields { display: grid; gap: .8rem; }
.method-field {
  display: grid;
  grid-template-columns: 3.2rem minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
  padding: 1.2rem 1.35rem;
  border: 1px solid var(--line);
  border-radius: .9rem;
  background: white;
  box-shadow: var(--shadow-sm);
}
.method-field > span { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: 50%; background: var(--ink-950); color: white; font-family: var(--mono); font-size: .76rem; font-weight: 850; }
.method-field h3 { margin: .05rem 0 .35rem; font-size: 1.35rem; }
.method-field p { margin: 0; color: var(--ink-600); }

.book-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.book-card {
  display: grid;
  grid-template-columns: 5.3rem minmax(0, 1fr);
  min-height: 26rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.book-spine { display: flex; flex-direction: column; justify-content: space-between; padding: 1rem .8rem; background: var(--blue-700); color: white; writing-mode: vertical-rl; transform: rotate(180deg); }
.book-spine span { font-family: var(--mono); font-size: .72rem; font-weight: 850; letter-spacing: .12em; }
.book-spine strong { font-family: var(--serif); font-size: 1rem; line-height: 1.15; }
.book-card--teal .book-spine { background: var(--teal-700); }
.book-card--ink .book-spine { background: var(--ink-950); }
.book-copy { display: flex; min-width: 0; flex-direction: column; padding: 1.45rem; }
.book-copy h3 { margin: 1.25rem 0 .35rem; font-size: 1.55rem; }
.book-copy p { color: var(--ink-600); }
.book-copy a { margin-top: auto; padding-top: 1rem; font-weight: 800; }
.book-subtitle { color: var(--ink-900) !important; font-family: var(--serif); font-size: 1.1rem; font-style: italic; }
.resource-heading { margin-top: clamp(4.2rem, 8vw, 7rem); }
.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.resource-card { display: flex; min-height: 17rem; flex-direction: column; padding: 1.45rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow-sm); }
.resource-number { color: var(--teal-700); font-family: var(--mono); font-size: .72rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.resource-card h3 { margin: 1.1rem 0 .65rem; font-size: 1.45rem; }
.resource-card p { color: var(--ink-600); }
.resource-card a { margin-top: auto; padding-top: 1rem; font-weight: 800; }

.file-field input[type="file"] { padding: .65rem; background: var(--canvas); }
.file-field input[type="file"]::file-selector-button { margin-right: .8rem; padding: .55rem .8rem; border: 1px solid var(--line-dark); border-radius: .55rem; background: white; color: var(--ink-900); font-weight: 750; cursor: pointer; }
.file-field input[type="file"]::file-selector-button:hover { background: var(--canvas-2); }

@media (max-width: 68rem) {
  .case-grid, .book-grid, .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .book-card:last-child, .resource-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 44rem) {
  .case-grid, .book-grid, .resource-grid { grid-template-columns: 1fr; }
  .book-card:last-child, .resource-card:last-child { grid-column: auto; }
  .book-card { min-height: 22rem; grid-template-columns: 4.4rem minmax(0, 1fr); }
  .book-spine strong { font-size: .9rem; }
  .method-field { grid-template-columns: 2.7rem minmax(0, 1fr); padding-inline: 1rem; }
  .method-field > span { width: 2.3rem; height: 2.3rem; }
  .logo-tile { min-height: 8.4rem; }
  .logo-name { font-size: .66rem; }
}

/* Version 2 final cards */
.engagement-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.engagement-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  padding: 1.45rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  box-shadow: var(--shadow-sm);
}
.engagement-logo {
  display: grid;
  min-height: 6.1rem;
  margin: -.15rem -.15rem 1.15rem;
  padding: .7rem 1rem;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: .85rem;
  background: var(--canvas);
}
.engagement-logo img {
  display: block;
  width: 100%;
  max-width: 13.5rem;
  max-height: 4.55rem;
  object-fit: contain;
}
.engagement-logo--mark {
  background: linear-gradient(145deg, var(--ink-950), var(--blue-700));
  color: white;
}
.engagement-logo--mark span {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3vw, 2.55rem);
  font-weight: 800;
  letter-spacing: .025em;
}
.engagement-type {
  align-self: flex-start;
  padding: .34rem .55rem;
  border-radius: 99rem;
  background: #eaf1ff;
  color: var(--blue-700);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .065em;
  line-height: 1.25;
  text-transform: uppercase;
}
.engagement-card h3 { margin: 1.15rem 0 .28rem; font-size: 1.55rem; }
.engagement-card h4 { margin: 0 0 .8rem; color: var(--ink-700); font-family: var(--sans); font-size: .98rem; line-height: 1.45; }
.engagement-card p { color: var(--ink-600); }
.engagement-outcome {
  margin-top: auto;
  padding-top: .9rem;
  border-top: 1px solid var(--line);
}
.engagement-card > a { margin-top: .75rem; font-weight: 800; }

.book-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.book-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.book-cover {
  aspect-ratio: 760 / 1040;
  overflow: hidden;
  background: var(--canvas-2);
}
.book-cover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.book-copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  padding: 1.35rem;
}
.book-copy h3 { margin: 1rem 0 .35rem; font-size: 1.48rem; }
.book-copy p { color: var(--ink-600); }
.book-copy a { margin-top: auto; padding-top: .9rem; font-weight: 800; }
.book-subtitle { color: var(--ink-900) !important; font-family: var(--serif); font-size: 1.05rem; font-style: italic; }

.lecture-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.lecture-card {
  display: flex;
  min-height: 18.5rem;
  flex-direction: column;
  padding: 1.45rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
  box-shadow: var(--shadow-sm);
}
.lecture-number {
  margin-bottom: 1.15rem;
  color: var(--teal-700);
  font-family: var(--mono);
  font-size: 1.1rem;
  font-weight: 850;
  letter-spacing: .08em;
}
.lecture-card h3 { margin: 1rem 0 .65rem; font-size: 1.5rem; }
.lecture-card p { color: var(--ink-600); }
.lecture-card a { margin-top: auto; padding-top: 1rem; font-weight: 800; }

.form-field input[type="file"] {
  padding: .68rem;
  background: var(--canvas);
}
.form-field input[type="file"]::file-selector-button {
  margin-right: .8rem;
  padding: .56rem .82rem;
  border: 1px solid var(--line-dark);
  border-radius: .55rem;
  background: white;
  color: var(--ink-900);
  font-weight: 750;
  cursor: pointer;
}
.form-field input[type="file"]::file-selector-button:hover { background: var(--canvas-2); }

@media (max-width: 68rem) {
  .engagement-grid, .book-grid, .lecture-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .engagement-card:last-child, .book-card:last-child, .lecture-card:last-child { grid-column: 1 / -1; }
}
@media (max-width: 44rem) {
  .engagement-grid, .book-grid, .lecture-grid { grid-template-columns: 1fr; }
  .engagement-card:last-child, .book-card:last-child, .lecture-card:last-child { grid-column: auto; }
  .engagement-card, .lecture-card { padding: 1.2rem; }
  .engagement-logo { min-height: 5.5rem; }
}
.article-body img { max-width: 100%; height: auto; }
.article-body { overflow-wrap: anywhere; word-break: normal; }

/* --------------------------------------------------------------------------
   Version 3: corrected network map, larger institutional proof, real covers,
   licensing previews and report landing pages.
   -------------------------------------------------------------------------- */

.network-node {
  width: 9.6rem;
  min-height: 2.9rem;
  display: grid;
  place-items: center;
  line-height: 1.22;
  white-space: normal;
  overflow-wrap: break-word;
}
.network-node--legal { left: 50%; top: 7%; transform: translateX(-50%); }
.network-node--technology { left: 50%; bottom: 5%; transform: translateX(-50%); }
.network-node--behaviour { left: 5%; bottom: 17%; }
.network-node--economics { left: 3%; top: 27%; }
.network-node--policy { right: 3%; top: 27%; }
.network-node--sector { right: 5%; bottom: 17%; }

.logo-wall {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.logo-tile {
  min-height: 10.75rem;
  padding: 1.15rem 1.25rem 1rem;
}
.logo-image { min-height: 6.25rem; }
.logo-tile img {
  max-width: 14.5rem;
  max-height: 6.2rem;
}
.logo-name { font-size: .76rem; }

.book-cover {
  aspect-ratio: 2 / 3;
  padding: .65rem;
  background: #f7fafc;
}
.book-cover picture { display: grid; width: 100%; height: 100%; place-items: center; }
.book-cover img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border: 1px solid rgba(12, 36, 59, .11);
  box-shadow: 0 .7rem 1.8rem rgba(8, 31, 51, .12);
}

.product-price-preview {
  margin-top: 1.1rem;
  color: var(--ink-800) !important;
  font-size: .9rem;
}
.product-definition { max-width: 48rem; }
.product-intro { align-items: center; }
.small-note { color: var(--ink-600); font-size: .8rem; }

.licence-section { background: white; }
.licence-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}
.licence-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 31rem;
  flex-direction: column;
  padding: clamp(1.35rem, 2.6vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--canvas);
  box-shadow: var(--shadow-sm);
}
.licence-card--featured {
  border-color: rgba(36, 86, 196, .45);
  background: linear-gradient(180deg, #f3f7ff, white 42%);
  box-shadow: var(--shadow-md);
}
.licence-recommended {
  position: absolute;
  right: 1rem;
  top: 1rem;
  padding: .32rem .55rem;
  border-radius: 99rem;
  background: var(--blue-700);
  color: white;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.licence-type {
  max-width: calc(100% - 5rem);
  color: var(--ink-700);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.licence-price {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .7rem;
  align-items: baseline;
  margin: 1.35rem 0 1.2rem;
}
.licence-price strong {
  color: var(--ink-950);
  font-family: var(--serif);
  font-size: clamp(2.8rem, 5vw, 4.6rem);
  font-weight: 750;
  letter-spacing: -.045em;
  line-height: .95;
}
.licence-price span { color: var(--ink-600); font-size: .84rem; }
.licence-card > p { color: var(--ink-600); }
.licence-best {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--ink-700) !important;
  font-size: .88rem;
}
.licence-actions {
  display: grid;
  gap: .8rem;
  margin-top: auto;
  padding-top: 1.25rem;
}
.licence-button { width: 100%; justify-content: center; }
.licence-button--pending {
  border-color: var(--line-dark);
  background: #dfe7ee;
  color: var(--ink-600);
  cursor: not-allowed;
  box-shadow: none;
}
.licence-button--pending:hover { background: #dfe7ee; transform: none; }
.text-link {
  color: var(--blue-700);
  font-size: .84rem;
  font-weight: 800;
  text-align: center;
}
.licence-notice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.licence-notice > div {
  padding: 1.35rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: white;
}
.licence-notice h3 { font-size: 1.35rem; }

.report-hero h1 { max-width: 20ch; font-size: clamp(2.7rem, 6vw, 5.2rem); }
.report-detail {
  display: grid;
  grid-template-columns: minmax(16rem, .55fr) minmax(0, 1.15fr);
  gap: 2.5rem 5rem;
  align-items: center;
}
.report-detail-cover { display: grid; place-items: center; }
.report-detail-cover img {
  width: min(100%, 25rem);
  border: 1px solid var(--line);
  border-radius: .8rem;
  box-shadow: var(--shadow-lg);
}
.report-detail-copy h2 { max-width: 18ch; }
.report-key-points {
  display: grid;
  gap: .7rem;
  margin: 1.4rem 0 0;
  padding: 0;
  list-style: none;
}
.report-key-points li {
  display: grid;
  grid-template-columns: 1.35rem minmax(0, 1fr);
  gap: .65rem;
  color: var(--ink-700);
}
.report-key-points li::before {
  content: "";
  width: .55rem;
  height: .55rem;
  margin: .55rem 0 0 .35rem;
  border-radius: 50%;
  background: var(--teal-600);
}
.report-identifiers {
  margin-top: 1.2rem;
  color: var(--ink-600);
  font-family: var(--mono);
  font-size: .76rem;
  line-height: 1.7;
}
.report-related {
  display: grid;
  gap: .7rem;
  margin: 1rem 0 1.4rem;
  padding-left: 1.1rem;
}
.report-related a { color: var(--blue-700); font-weight: 750; }

@media (max-width: 68rem) {
  .logo-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .licence-grid { grid-template-columns: 1fr; }
  .licence-card { min-height: auto; }
  .licence-notice { grid-template-columns: 1fr; }
  .report-detail { grid-template-columns: minmax(14rem, .55fr) minmax(0, 1fr); gap: 2rem 3rem; }
}

@media (max-width: 44rem) {
  .network-visual { min-height: 32rem; }
  .network-ring { width: 17rem; height: 17rem; }
  .network-core { width: 7rem; height: 7rem; font-size: .94rem; box-shadow: 0 0 0 .9rem rgba(36, 86, 196, .11); }
  .network-node { width: 7rem; min-height: 2.65rem; padding: .55rem .5rem; font-size: .68rem; }
  .network-node--legal { top: 6%; }
  .network-node--technology { bottom: 4%; }
  .network-node--economics { left: 1%; top: 24%; }
  .network-node--policy { right: 1%; top: 24%; }
  .network-node--behaviour { left: 1%; bottom: 17%; }
  .network-node--sector { right: 1%; bottom: 17%; }

  .logo-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .logo-tile { min-height: 8.7rem; padding: .8rem; }
  .logo-image { min-height: 5rem; }
  .logo-tile img { max-height: 5rem; }
  .logo-name { font-size: .67rem; }

  .book-cover { padding: .5rem; }
  .licence-card { padding: 1.2rem; }
  .licence-price strong { font-size: 3.1rem; }
  .licence-recommended { position: static; align-self: flex-start; margin-bottom: .75rem; }
  .licence-type { max-width: none; }
  .report-detail { grid-template-columns: 1fr; }
  .report-detail-cover img { width: min(82%, 19rem); }
}

/* Reset legacy nth-of-type coordinates before applying the explicit V3 node map. */
.network-visual .network-node {
  inset: auto;
  transform: none;
}
.network-visual .network-node--legal { left: 50%; top: 7%; transform: translateX(-50%); }
.network-visual .network-node--technology { left: 50%; bottom: 5%; transform: translateX(-50%); }
.network-visual .network-node--behaviour { left: 5%; bottom: 17%; }
.network-visual .network-node--economics { left: 3%; top: 27%; }
.network-visual .network-node--policy { right: 3%; top: 27%; }
.network-visual .network-node--sector { right: 5%; bottom: 17%; }
@media (max-width: 44rem) {
  .network-visual .network-node--legal { top: 6%; }
  .network-visual .network-node--technology { bottom: 4%; }
  .network-visual .network-node--economics { left: 1%; top: 24%; }
  .network-visual .network-node--policy { right: 1%; top: 24%; }
  .network-visual .network-node--behaviour { left: 1%; bottom: 17%; }
  .network-visual .network-node--sector { right: 1%; bottom: 17%; }
}
