/* Next Wave Partners · round 2 brand system
   Built on the logo blue and navy. The chevron bug from the mark drives the graphic system. */
:root {
  --blue: #035dff;
  --blue-ui: #197dff;
  --blue-deep: #0047d6;
  --blue-ink: #0036a8;
  --navy: #0a1628;
  --navy-2: #102240;
  --ink: #050c18;
  --coral: #ff5b3a;
  --sky: #8db8ff;
  --ice: #e8f0ff;
  --cloud: #f1f5f9;
  --white: #ffffff;
  --slate: #374151;
  --muted: #64748b;
  --line: #d7e0ec;

  --font-display: 'Archivo', 'Arial Black', sans-serif;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --font-label: 'Space Grotesk', 'Inter', sans-serif;

  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.82rem + 0.3vw, 1rem);
  --text-base: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.6vw, 1.45rem);
  --text-xl: clamp(1.4rem, 1.1rem + 1.3vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 3vw, 4rem);
  --text-3xl: clamp(2.3rem, 0.9rem + 4.6vw, 5.6rem);
  --text-hero: clamp(3rem, 0.8rem + 7.4vw, 8.6rem);

  --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem; --space-4: 1rem; --space-5: 1.25rem;
  --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem;
  --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;

  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --fast: 200ms var(--ease);
  --wrap: 1320px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --section: clamp(4.5rem, 9vw, 9rem);
  --chev: 18px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: none; text-size-adjust: none; -webkit-font-smoothing: antialiased; scroll-behavior: smooth; scroll-padding-top: 96px; }
body { min-height: 100dvh; font-family: var(--font-body); font-size: var(--text-base); line-height: 1.6; color: var(--slate); background: var(--white); overflow-x: clip; }
img, svg, picture { display: block; max-width: 100%; height: auto; }
ul[role='list'], ol[role='list'] { list-style: none; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--navy); line-height: 1; text-wrap: balance; font-weight: 800; }
p, li { text-wrap: pretty; }
p { max-width: 66ch; }
::selection { background: var(--blue); color: var(--white); }
:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 1rem; top: -100px; z-index: 200; background: var(--coral); color: var(--ink); padding: 0.6rem 1rem; font-weight: 700; text-decoration: none; }
.skip:focus { top: 1rem; }
a, button, input, textarea { transition: color var(--fast), background-color var(--fast), border-color var(--fast), transform var(--fast), opacity var(--fast); }

.wrap { width: min(100% - 2 * var(--gutter), var(--wrap)); margin-inline: auto; }
.section { padding-block: var(--section); position: relative; }
.section--tight { padding-block: clamp(3rem, 6vw, 5rem); }
.bg-blue { background: var(--blue); color: #eaf1ff; }
.bg-navy { background: var(--navy); color: #c9d6ea; }
.bg-ink { background: var(--ink); color: #c9d6ea; }
.bg-ice { background: var(--ice); }
.bg-cloud { background: var(--cloud); }
.bg-blue h1, .bg-blue h2, .bg-blue h3, .bg-navy h1, .bg-navy h2, .bg-navy h3, .bg-ink h2, .bg-ink h3 { color: var(--white); }
.clip { overflow: hidden; }

/* type */
.display { font-family: var(--font-display); font-weight: 800; font-stretch: 118%; font-variation-settings: 'wdth' 118; text-transform: uppercase; letter-spacing: -0.01em; line-height: 0.9; }
.h-hero { font-size: var(--text-hero); }
.h-1 { font-size: var(--text-3xl); }
.h-2 { font-size: var(--text-2xl); }
.h-3 { font-size: var(--text-xl); font-variation-settings: 'wdth' 108; font-stretch: 108%; letter-spacing: -0.005em; line-height: 1.05; }
.h-4 { font-family: var(--font-body); font-size: var(--text-lg); font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
.lede { font-size: var(--text-lg); line-height: 1.5; max-width: 54ch; }
.bg-blue .lede, .bg-navy .lede { color: #dbe6fb; }
.muted { color: var(--muted); }
.bg-navy .muted, .bg-ink .muted { color: #93a6c4; }
.bg-blue .muted { color: #cfe0ff; }
.accent { color: var(--blue); }
.bg-blue .accent { color: var(--navy); }
.bg-navy .accent { color: var(--sky); }
.mt-2 { margin-top: var(--space-2); } .mt-4 { margin-top: var(--space-4); } .mt-6 { margin-top: var(--space-6); } .mt-8 { margin-top: var(--space-8); } .mt-12 { margin-top: var(--space-12); } .mt-16 { margin-top: var(--space-16); }

.eyebrow { display: inline-flex; align-items: center; gap: 0.6rem; font-family: var(--font-label); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); }
.eyebrow .ff { --s: 18px; }
.bg-blue .eyebrow, .hero .eyebrow { color: var(--white); }
.bg-blue .eyebrow .ff, .hero .eyebrow .ff { color: var(--navy); }
.bg-navy .eyebrow, .bg-ink .eyebrow { color: var(--sky); }
.bg-navy .eyebrow .ff, .bg-ink .eyebrow .ff { color: var(--coral); }

/* accent glyph = the logo bug (sprite #nw-bug, viewBox 333 x 569). Size by height with --s. */
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ff { pointer-events: none; --s: 19px; height: var(--s); width: calc(var(--s) * 0.5852); flex: none; overflow: visible; display: inline-block; vertical-align: -0.18em; }
.ff { transition: translate 260ms var(--ease), color var(--fast), opacity var(--fast), transform var(--fast); }
a:hover .ff, button:hover .ff, a:focus-visible .ff { translate: 4px 0; }
.crumbs a:hover .ff { translate: -4px 0; }
.f-top:hover .ff { translate: 0 -3px; }

/* buttons, shaped like the bug arrowhead */
.btn { --b: var(--blue); --t: var(--white); position: relative; display: inline-flex; align-items: center; gap: 0.85rem; min-height: 52px; padding: 0.8rem calc(1.4rem + var(--chev)) 0.8rem 1.4rem; background: var(--b); color: var(--t); font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); letter-spacing: 0.02em; text-decoration: none; clip-path: polygon(0 0, calc(100% - var(--chev)) 0, 100% 50%, calc(100% - var(--chev)) 100%, 0 100%); line-height: 1.15; }
.btn:hover { --b: var(--blue-deep); }
.btn:focus-visible { outline: 3px solid var(--t); outline-offset: -7px; }
.btn--white { --b: var(--white); --t: var(--blue); }
.btn--white:hover { --b: var(--ice); }
.btn--navy { --b: var(--navy); --t: var(--white); }
.btn--navy:hover { --b: var(--ink); }
.btn--coral { --b: var(--coral); --t: var(--ink); }
.btn--coral:hover { --b: #ff7a5e; }
.btn--line { --b: transparent; --t: currentColor; box-shadow: inset 0 0 0 2px currentColor; clip-path: none; padding-right: 1.4rem; }
.btn--line:hover { --b: rgb(255 255 255 / 0.12); }
.btn--line:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; }

.link-ff { display: inline-flex; align-items: center; gap: 0.6rem; font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); text-decoration: none; color: var(--blue); border-bottom: 2px solid currentColor; padding-bottom: 3px; }
.link-ff .ff { --s: 18px; }
.link-ff:hover { color: var(--blue-deep); }
.bg-navy .link-ff, .bg-ink .link-ff { color: var(--sky); }
.bg-navy .link-ff:hover { color: var(--white); }
.bg-blue .link-ff { color: var(--white); }
.text-link { color: var(--blue); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.bg-navy .text-link { color: var(--sky); }

/* scroll progress */
.progress i .ff { --s: 17px; }
.progress { position: fixed; inset: 0 0 auto 0; height: 4px; z-index: 120; pointer-events: none; }
.progress span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--blue), var(--blue-ui)); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); }
.progress i { position: absolute; top: -6px; left: 0; display: block; line-height: 0; color: var(--coral); transform: translateX(calc(var(--p, 0) * (100vw - 10px))); opacity: min(1, calc(var(--p, 0) * 40)); }

/* header */
.site-header { position: sticky; top: 0; z-index: 100; background: rgb(255 255 255 / 0.94); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid transparent; transition: border-color var(--fast); }
.site-header.is-scrolled { border-bottom-color: var(--line); }
.header-inner { height: 80px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); }
.brand { display: inline-flex; color: var(--blue); text-decoration: none; }
.brand .nw-lockup { height: 46px; width: auto; }
.brand:hover .nw-lines path { animation: ffpulse 700ms var(--ease); }
.brand .nw-lines .l2 { animation-delay: 60ms !important; } .brand .nw-lines .l3 { animation-delay: 120ms !important; }
@keyframes ffpulse { 0% { transform: translateX(0); } 40% { transform: translateX(26px); opacity: 0.4; } 100% { transform: translateX(0); opacity: 1; } }
.nav { display: flex; gap: 0.15rem; align-items: center; }
.nav a { position: relative; text-decoration: none; font-family: var(--font-label); font-weight: 600; font-size: var(--text-sm); color: var(--navy); padding: 0.55rem 0.8rem; }
.nav a::after { content: ''; position: absolute; left: 0.8rem; right: 0.8rem; bottom: 0.25rem; height: 3px; background: var(--blue); transform: scaleX(0); transform-origin: 0 50%; transition: transform 260ms var(--ease); }
.nav a:hover::after, .nav a[aria-current='page']::after { transform: scaleX(1); }
.nav a[aria-current='page'] { color: var(--blue); }
.header-actions { display: flex; align-items: center; gap: var(--space-3); }
.header-actions .btn { min-height: 46px; }
.menu-btn { display: none; width: 58px; height: 58px; place-items: center; color: var(--navy); background: var(--ice); }
.menu-btn svg { width: 29px; height: 29px; }
@media (max-width: 1100px) { .nav, .header-actions .btn { display: none; } .menu-btn { display: inline-grid; } }
@media (max-width: 520px) { .brand .nw-lockup { height: 38px; } .header-inner { height: 68px; } }

.mobile-menu { position: fixed; inset: 0; z-index: 99; background: var(--blue); color: var(--white); padding: 96px var(--gutter) var(--space-12); overflow-y: auto; display: none; }
.mobile-menu.is-open { display: block; animation: menuIn 320ms var(--ease); }
@keyframes menuIn { from { clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); } to { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); } }
.mobile-menu ul { list-style: none; border-top: 2px solid rgb(255 255 255 / 0.25); }
.mobile-menu li { border-bottom: 2px solid rgb(255 255 255 / 0.25); }
.mobile-menu li a { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.85rem 0; font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 118; font-stretch: 118%; text-transform: uppercase; font-size: clamp(1.5rem, 6vw, 2.2rem); line-height: 1.1; text-decoration: none; color: var(--white); }
.mobile-menu li a .ff { --s: 24px; color: var(--navy); }
.mobile-menu li a[aria-current='page'] { color: var(--navy); }
.mobile-menu .btn { margin-top: var(--space-8); }
.mobile-menu .mm-bug { position: absolute; right: -40px; bottom: -40px; width: 220px; color: rgb(255 255 255 / 0.08); pointer-events: none; }
body.menu-open { overflow: hidden; }
body.menu-open .site-header { background: var(--blue); }
body.menu-open .brand { color: var(--white); }
body.menu-open .menu-btn { background: var(--white); color: var(--blue); }

/* ---------- HOME HERO ---------- */
.hero { position: relative; background: var(--blue); color: var(--white); overflow: hidden; isolation: isolate; }
.hero-super { position: absolute; z-index: -1; left: -6%; bottom: -30%; width: min(70vw, 980px); color: var(--blue-deep); opacity: 0.55; pointer-events: none; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); gap: clamp(2rem, 4vw, 4rem); align-items: center; min-height: calc(100svh - 80px - 64px); padding-block: clamp(3rem, 6vw, 5rem); }
.hero h1 { color: var(--white); }
.hero h1 .hl { color: var(--navy); display: block; }
.hero-copy .lede { margin-top: var(--space-8); color: #e3ecff; }
.hero-copy .btn-row { margin-top: var(--space-10); }
.hero-visual { position: relative; aspect-ratio: 791 / 814; width: 100%; max-width: 640px; justify-self: end; }
.mark-photo { position: absolute; inset: 0; -webkit-mask: url(../brand/mask-nw.svg) center / contain no-repeat; mask: url(../brand/mask-nw.svg) center / contain no-repeat; background: var(--navy); }
.mark-photo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.04); }
.mark-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(160deg, rgb(3 93 255 / 0) 40%, rgb(3 93 255 / 0.35)); mix-blend-mode: multiply; }
.mark-lines { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--white); }
.mark-lines path { transform-box: fill-box; }
.js .mark-lines path { opacity: 0; transform: translateX(-60%); animation: lineIn 900ms var(--ease) forwards; }
.js .mark-lines .l1 { animation-delay: 350ms; } .js .mark-lines .l2 { animation-delay: 470ms; } .js .mark-lines .l3 { animation-delay: 590ms; }
@keyframes lineIn { to { opacity: 1; transform: none; } }
.js .mark-photo { animation: markIn 1100ms var(--ease) both; }
@keyframes markIn { from { opacity: 0; transform: translateX(-24px) scale(0.98); } to { opacity: 1; transform: none; } }
.hero-tag { position: absolute; left: 0; bottom: 6%; background: var(--navy); color: var(--white); font-family: var(--font-label); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.55rem 1.4rem 0.55rem 0.9rem; clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%); }
@media (max-width: 960px) {
  .hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .hero-visual { justify-self: center; max-width: 520px; }
}

/* marquee */
.marquee { background: var(--navy); color: var(--white); overflow: hidden; border-block: 1px solid rgb(255 255 255 / 0.06); }
.marquee-track { display: flex; width: max-content; animation: marquee 38s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.marquee-group { display: flex; align-items: center; gap: 2.2rem; padding-right: 2.2rem; height: 64px; }
.marquee-group span { font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 120; font-stretch: 120%; text-transform: uppercase; font-size: clamp(1rem, 0.8rem + 0.8vw, 1.5rem); white-space: nowrap; letter-spacing: 0.01em; }
.marquee-group span:nth-child(4n+1) { color: var(--sky); }
.marquee-group .ff { --s: 24px; color: var(--blue-ui); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- people block ---------- */
.people { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.chev-frame { position: relative; }
.chev-frame .back { position: absolute; inset: 9% -5% -7% 7%; background: var(--blue); clip-path: polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%); }
.chev-frame .front { position: relative; clip-path: polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%); }
.chev-frame img { width: 100%; aspect-ratio: 875 / 584; object-fit: cover; }
.chev-frame .speed { position: absolute; left: -4%; top: -9%; width: 34%; color: var(--coral); }
.heads { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); margin-top: var(--space-10); }
.head { text-decoration: none; display: block; }
.head .ph { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--blue); clip-path: polygon(0 0, 100% 0, 100% 78%, 78% 100%, 0 100%); }
.head .ph img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); mix-blend-mode: luminosity; opacity: 0.92; transition: filter 400ms var(--ease), opacity 400ms var(--ease), transform 600ms var(--ease); }
.head:hover .ph img, .head:focus-visible .ph img { filter: none; mix-blend-mode: normal; opacity: 1; transform: scale(1.04); }
.head strong { display: block; margin-top: var(--space-3); color: var(--navy); font-family: var(--font-label); font-size: var(--text-sm); line-height: 1.2; }
.head span { display: block; font-size: var(--text-xs); color: var(--muted); }
@media (max-width: 960px) { .people { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .heads { grid-template-columns: repeat(2, 1fr); } }

/* ---------- three doors ---------- */
.doors { display: grid; grid-template-columns: 1.15fr 1fr 1fr; gap: var(--space-4); margin-top: var(--space-12); }
.door { position: relative; overflow: hidden; isolation: isolate; padding: clamp(1.75rem, 3vw, 2.75rem); min-height: 470px; display: flex; flex-direction: column; gap: var(--space-4); text-decoration: none; }
.door .bug { position: absolute; z-index: -1; right: -12%; top: -8%; width: 52%; opacity: 0.16; transition: transform 600ms var(--ease), opacity 400ms var(--ease); }
.door:hover .bug { transform: translateX(14px); opacity: 0.28; }
.door .kind { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; }
.door h3 { font-size: clamp(1.9rem, 1.2rem + 2vw, 3rem); }
.door p { font-size: var(--text-sm); }
.door .go { margin-top: auto; display: inline-flex; align-items: center; gap: 0.7rem; font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); }
.door .go .ff { --s: 24px; }
.door--blue { background: var(--blue); color: #e3ecff; }
.door--blue h3 { color: var(--white); }
.door--blue .bug { color: var(--white); }
.door--navy { background: var(--navy); color: #c9d6ea; }
.door--navy h3 { color: var(--white); }
.door--navy .kind { color: var(--sky); }
.door--navy .bug { color: var(--blue-ui); opacity: 0.3; }
.door--ice { background: var(--ice); color: var(--slate); }
.door--ice .kind { color: var(--blue); }
.door--ice .bug { color: var(--blue); }
.door--ice .go { color: var(--blue); }
.door .thumb { margin-inline: calc(-1 * clamp(1.75rem, 3vw, 2.75rem)); margin-top: calc(-1 * clamp(1.75rem, 3vw, 2.75rem)); margin-bottom: var(--space-4); height: 170px; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 72%, 0 100%); }
.door .thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 800ms var(--ease); }
.door:hover .thumb img { transform: scale(1.06); }
@media (max-width: 1000px) { .doors { grid-template-columns: 1fr; } .door { min-height: 0; } }

/* ---------- slice collage ---------- */
.slices { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; height: clamp(320px, 38vw, 540px); margin-top: var(--space-12); }
.slice { position: relative; overflow: hidden; margin-inline: -9%; clip-path: polygon(22% 0, 100% 0, 78% 100%, 0 100%); }
.slice:nth-child(odd) { transform: translateY(6%); }
.slice img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.9); transition: transform 900ms var(--ease); }
.slice::after { content: ''; position: absolute; inset: 0; background: var(--blue); mix-blend-mode: multiply; opacity: 0.28; transition: opacity 400ms var(--ease); }
.slice:hover::after { opacity: 0; }
.slice:hover img { transform: scale(1.05); }
.slices-wrap { padding-inline: 4%; }
@media (max-width: 760px) {
  .slices { grid-template-columns: repeat(3, 1fr); height: 300px; }
  .slice:nth-child(n+4) { display: none; }
}
.domains { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: var(--space-16); border-top: 2px solid rgb(255 255 255 / 0.14); }
.domain { padding: var(--space-6) var(--space-6) var(--space-6) 0; }
.domain + .domain { padding-left: var(--space-6); border-left: 2px solid rgb(255 255 255 / 0.14); }
.domain .ff { --s: 24px; color: var(--coral); }
.domain h3 { font-size: var(--text-lg); margin-top: var(--space-4); font-variation-settings: 'wdth' 112; font-stretch: 112%; text-transform: uppercase; letter-spacing: 0.01em; line-height: 1.1; }
.domain p { font-size: var(--text-sm); margin-top: var(--space-2); color: #93a6c4; }
@media (max-width: 960px) { .domains { grid-template-columns: 1fr 1fr; } .domain:nth-child(3) { padding-left: 0; border-left: 0; } .domain:nth-child(n+3) { border-top: 2px solid rgb(255 255 255 / 0.14); } }
@media (max-width: 520px) { .domains { grid-template-columns: 1fr; } .domain, .domain + .domain { padding-left: 0; border-left: 0; border-top: 2px solid rgb(255 255 255 / 0.14); } .domain:first-child { border-top: 0; } }

/* ---------- arrow sequence (true order only) ---------- */
.arrows { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: var(--space-12); counter-reset: s; }
.arrow { --c: var(--ice); --t: var(--navy); position: relative; background: var(--c); color: var(--t); padding: var(--space-8) calc(var(--space-8) + 34px) var(--space-8) calc(var(--space-8) + 26px); clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%, 34px 50%); margin-right: -26px; min-height: 230px; }
.arrow:first-child { clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 50%, calc(100% - 34px) 100%, 0 100%); padding-left: var(--space-8); }
.arrow:nth-child(2) { --c: #c4d8ff; }
.arrow:nth-child(3) { --c: var(--blue-ui); --t: var(--white); }
.arrow:nth-child(4) { --c: var(--blue); --t: var(--white); margin-right: 0; }
.arrow .n { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); line-height: 0.9; opacity: 0.35; font-variation-settings: 'wdth' 120; font-stretch: 120%; }
.arrow h3 { color: inherit; font-size: var(--text-lg); margin-top: var(--space-3); text-transform: uppercase; font-variation-settings: 'wdth' 112; font-stretch: 112%; letter-spacing: 0.01em; line-height: 1.1; }
.arrow p { font-size: var(--text-sm); margin-top: var(--space-2); opacity: 0.88; }
.bg-navy .arrow:nth-child(1) { --c: var(--navy-2); --t: var(--white); }
.bg-navy .arrow:nth-child(2) { --c: #17345f; --t: var(--white); }
@media (max-width: 900px) {
  .arrows { grid-template-columns: 1fr; gap: 0; }
  .arrow, .arrow:first-child { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), 50% 100%, 0 calc(100% - 22px)); margin-right: 0; margin-bottom: -10px; padding: var(--space-6) var(--space-6) calc(var(--space-6) + 22px); min-height: 0; }
  .arrow:last-child { clip-path: none; padding-bottom: var(--space-6); }
}

/* ---------- logo wall ---------- */
.logo-grid { display: grid; gap: 2px; background: rgb(255 255 255 / 0.08); border: 2px solid rgb(255 255 255 / 0.08); }
.logo-cell { background: var(--navy); min-height: 230px; padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); position: relative; transition: background-color 300ms var(--ease); }
.logo-cell:hover { background: var(--blue); }
.logo-cell .lg { height: 64px; display: flex; align-items: center; }
.logo-cell .lg img { max-height: 44px; width: auto; max-width: 100%; }
.logo-cell .lg .word { font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 120; font-stretch: 120%; font-size: 1.5rem; color: var(--white); text-transform: uppercase; }
.logo-cell h4 { font-family: var(--font-label); color: var(--white); font-size: var(--text-sm); }
.logo-cell p { font-size: var(--text-xs); color: #a8b8d2; line-height: 1.5; }
.logo-cell:hover p { color: #e3ecff; }
@media (max-width: 620px) { .logo-cell { min-height: 0; padding: var(--space-5); } }
.fineprint { font-size: var(--text-xs); color: var(--muted); max-width: 90ch; line-height: 1.55; }
.bg-navy .fineprint, .bg-ink .fineprint { color: #8396b3; }
.bg-blue .fineprint { color: #d4e2ff; }

/* ---------- books + research ---------- */
.reading { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.books { display: flex; gap: clamp(2.2rem, 4vw, 3.5rem); align-items: flex-end; padding-right: 18px; }
.book { display: block; text-decoration: none; flex: 1; max-width: 250px; }
.book img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; box-shadow: 18px 22px 0 var(--blue), 0 30px 60px rgb(10 22 40 / 0.25); transition: transform 500ms var(--ease), box-shadow 500ms var(--ease); }
.book:nth-child(2) img { box-shadow: 18px 22px 0 var(--navy), 0 30px 60px rgb(10 22 40 / 0.25); }
.book:nth-child(1) img { transform: rotate(-3deg); }
.book:nth-child(2) { transform: translateY(-26px); } .book:nth-child(2) img { transform: rotate(2deg); }
.book:hover img { transform: translateY(-8px) rotate(0deg); }
.book strong { display: block; margin-top: var(--space-8); font-family: var(--font-label); color: var(--navy); font-size: var(--text-sm); line-height: 1.25; }
.book span { display: inline-flex; align-items: center; gap: 0.4rem; font-size: var(--text-xs); color: var(--blue); font-weight: 600; margin-top: 0.25rem; }
.book span .ff { --s: 16px; }
@media (max-width: 960px) { .reading { grid-template-columns: 1fr; } }

.rs-list { list-style: none; border-top: 2px solid var(--navy); }
.rs-item { border-bottom: 1px solid var(--line); }
.rs-item a { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr) auto; gap: var(--space-6); align-items: center; padding: var(--space-5) var(--space-2); text-decoration: none; position: relative; overflow: hidden; isolation: isolate; }
.rs-item a::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--ice); transform: translateX(-101%); transition: transform 420ms var(--ease); }
.rs-item a:hover::before, .rs-item a:focus-visible::before { transform: none; }
.rs-meta { font-family: var(--font-label); font-size: var(--text-xs); color: var(--muted); line-height: 1.4; }
.rs-title { display: block; font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 106; font-stretch: 106%; color: var(--navy); font-size: var(--text-lg); line-height: 1.12; }
.rs-sub { display: block; color: var(--muted); font-size: var(--text-sm); margin-top: 0.25rem; }
.rs-end { display: flex; align-items: center; gap: var(--space-4); }
.rs-tag { font-family: var(--font-label); font-weight: 600; font-size: var(--text-xs); color: var(--blue); background: var(--ice); padding: 0.2rem 0.6rem; white-space: nowrap; }
.rs-item a:hover .rs-tag { background: var(--white); }
.rs-end .ff { color: var(--blue); --s: 20px; }
@media (max-width: 720px) { .rs-item a { grid-template-columns: 1fr; gap: var(--space-2); } .rs-end { justify-content: space-between; } }
.bg-navy .rs-list { border-color: var(--sky); }
.bg-navy .rs-item { border-color: rgb(255 255 255 / 0.12); }
.bg-navy .rs-title { color: var(--white); }
.bg-navy .rs-meta, .bg-navy .rs-sub { color: #93a6c4; }
.bg-navy .rs-item a::before { background: var(--navy-2); }
.bg-navy .rs-tag { background: var(--navy-2); color: var(--sky); }
.filters { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-8); }
.filters button { min-height: 46px; padding: 0.55rem 1.1rem; font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); color: var(--navy); background: var(--ice); }
.filters button:hover { background: #d3e2ff; }
.filters button[aria-pressed='true'] { background: var(--blue); color: var(--white); }
.filters .count { margin-left: 0.4rem; opacity: 0.7; font-weight: 500; }
.rs-status { font-family: var(--font-label); font-size: var(--text-xs); color: var(--muted); margin-block: var(--space-6) var(--space-3); }

/* ---------- big CTA ---------- */
.cta { position: relative; overflow: hidden; isolation: isolate; background: var(--blue); color: #e3ecff; padding-block: clamp(5rem, 11vw, 10rem); }
.cta .super { position: absolute; z-index: -1; right: -8%; top: 50%; width: min(62vw, 860px); transform: translateY(-50%); color: var(--blue-deep); }
.cta .super .nw-lines path { color: var(--navy); }
.cta h2 { color: var(--white); max-width: 15ch; }
.cta p { margin-top: var(--space-6); }
.cta .btn-row { margin-top: var(--space-10); }

/* ---------- page heroes ---------- */
.phero { position: relative; overflow: hidden; isolation: isolate; }
.phero-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.phero .lede { margin-top: var(--space-8); }
.phero .btn-row { margin-top: var(--space-10); }
.phero h1 { margin-top: var(--space-6); }
.phero .super { position: absolute; z-index: -1; left: -10%; bottom: -45%; width: min(66vw, 900px); opacity: 0.5; pointer-events: none; }
.bg-blue .super { color: var(--blue-deep); }
.bg-navy .super { color: var(--navy-2); opacity: 0.9; }
.phero-visual { position: relative; width: 100%; max-width: 560px; justify-self: end; aspect-ratio: 791 / 814; }
.phero-visual.tri { aspect-ratio: 1.15; }
.tri-photo { position: absolute; inset: 0; clip-path: polygon(0 0, 100% 0, 100% 2%, 0 100%); }
.tri-photo img { width: 100%; height: 100%; object-fit: cover; }
.tri-lines { position: absolute; right: 0; bottom: 0; width: 44%; color: var(--coral); }
@media (max-width: 960px) { .phero-grid { grid-template-columns: 1fr; } .phero-visual { justify-self: start; max-width: 420px; } }

/* notices and panels */
.notice { display: flex; gap: var(--space-4); align-items: flex-start; padding: var(--space-5) var(--space-6); background: var(--ice); color: var(--navy); font-size: var(--text-sm); max-width: 90ch; border-left: 6px solid var(--blue); }
.notice .ff { color: var(--blue); margin-top: 0.25rem; }
.bg-navy .notice { background: var(--navy-2); color: #c9d6ea; border-color: var(--coral); }
.bg-navy .notice .ff { color: var(--coral); }
.split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 4rem); align-items: center; }
.split .s-a { grid-column: 1 / span 6; }
.split .s-b { grid-column: 7 / span 6; }
.split--57 .s-a { grid-column: 1 / span 5; } .split--57 .s-b { grid-column: 6 / span 7; }
.split--75 .s-a { grid-column: 1 / span 7; } .split--75 .s-b { grid-column: 8 / span 5; }
@media (max-width: 960px) { .split .s-a, .split .s-b, .split--57 .s-a, .split--57 .s-b, .split--75 .s-a, .split--75 .s-b { grid-column: 1 / -1; } }

.collage { position: relative; aspect-ratio: 1.05; }
.collage .c1 { position: absolute; left: 0; top: 0; width: 72%; aspect-ratio: 1.3; overflow: hidden; clip-path: polygon(0 0, 100% 0, 100% 80%, 80% 100%, 0 100%); }
.collage .c2 { position: absolute; right: 0; bottom: 0; width: 62%; aspect-ratio: 1.25; overflow: hidden; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%, 0 18%); box-shadow: 0 0 0 10px var(--white); }
.collage img { width: 100%; height: 100%; object-fit: cover; }
.collage .c-bug { position: absolute; left: 6%; bottom: 4%; width: 22%; color: var(--blue); }
.bg-navy .collage .c2 { box-shadow: 0 0 0 10px var(--navy); }
.bg-ice .collage .c2 { box-shadow: 0 0 0 10px var(--ice); }
.duo { position: relative; overflow: hidden; }
.duo::after { content: ''; position: absolute; inset: 0; background: var(--blue); mix-blend-mode: multiply; opacity: 0.22; pointer-events: none; }

/* problem statements */
.statements { margin-top: var(--space-12); border-top: 2px solid rgb(255 255 255 / 0.14); }
.statement { display: grid; grid-template-columns: 5rem minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--space-8); align-items: start; padding-block: var(--space-8); border-bottom: 2px solid rgb(255 255 255 / 0.14); }
.statement .ff { --s: 36px; color: var(--coral); margin-top: 0.4rem; }
.statement h3 { font-size: var(--text-xl); text-transform: uppercase; font-variation-settings: 'wdth' 118; font-stretch: 118%; line-height: 1; }
.statement p { color: #a8b8d2; }
@media (max-width: 860px) { .statement { grid-template-columns: 1fr; gap: var(--space-3); } }

/* role tiles */
.roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); margin-top: var(--space-12); }
.role { position: relative; overflow: hidden; isolation: isolate; padding: var(--space-8); background: var(--ice); min-height: 250px; display: flex; flex-direction: column; gap: var(--space-3); transition: color 300ms var(--ease); }
.role::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--blue); clip-path: polygon(0 0, 0 0, 0 100%, 0 100%); transition: clip-path 500ms var(--ease); }
.role:hover::before { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
.role:hover, .role:hover h3 { color: var(--white); }
.role:hover .tag { color: var(--navy); }
.role .tag { font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 125; font-stretch: 125%; font-size: var(--text-2xl); color: var(--blue); line-height: 0.9; transition: color 300ms var(--ease); }
.role h3 { font-family: var(--font-body); font-size: var(--text-base); font-weight: 700; color: var(--navy); transition: color 300ms var(--ease); }
.role p { font-size: var(--text-sm); }
@media (max-width: 960px) { .roles { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .roles { grid-template-columns: 1fr; } .role { min-height: 0; } }

/* offer panels */
.panels { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-top: var(--space-12); }
.panel { position: relative; overflow: hidden; isolation: isolate; padding: clamp(1.75rem, 3.5vw, 3rem); display: flex; flex-direction: column; gap: var(--space-5); }
.panel .bug { position: absolute; z-index: -1; right: -6%; bottom: -10%; width: 34%; opacity: 0.14; }
.panel h3 { font-size: clamp(1.8rem, 1.1rem + 2.2vw, 3rem); text-transform: uppercase; font-variation-settings: 'wdth' 116; font-stretch: 116%; }
.panel .kind { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; }
.panel ul { list-style: none; }
.panel li { display: flex; gap: 0.75rem; align-items: baseline; padding-block: 0.7rem; border-top: 1px solid currentColor; border-color: rgb(127 145 175 / 0.3); font-size: var(--text-sm); }
.panel li .ff { --s: 18px; flex: none; }
.panel .btn { align-self: flex-start; margin-top: auto; }
.panel--blue { background: var(--blue); color: #e3ecff; } .panel--blue h3 { color: var(--white); } .panel--blue .bug { color: var(--white); } .panel--blue li .ff { color: var(--navy); }
.panel--navy { background: var(--navy); color: #c9d6ea; } .panel--navy h3 { color: var(--white); } .panel--navy .kind { color: var(--sky); } .panel--navy .bug { color: var(--blue-ui); opacity: 0.35; } .panel--navy li .ff { color: var(--coral); }
.panel--ice { background: var(--ice); } .panel--ice .kind { color: var(--blue); } .panel--ice .bug { color: var(--blue); } .panel--ice li .ff { color: var(--blue); }
.panel--white { background: var(--white); color: var(--slate); } .panel--white .kind { color: var(--blue); } .panel--white .bug { color: var(--blue); } .panel--white li .ff { color: var(--blue); }
@media (max-width: 860px) { .panels { grid-template-columns: 1fr; } }

/* fact lists */
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: var(--space-8) var(--space-10); margin-top: var(--space-10); }
.fact .ff { --s: 24px; color: var(--blue); }
.bg-navy .fact .ff { color: var(--coral); }
.fact h3 { font-family: var(--font-body); font-size: var(--text-lg); font-weight: 700; margin-top: var(--space-4); line-height: 1.25; }
.fact p { font-size: var(--text-sm); margin-top: var(--space-2); }
.bg-navy .fact p { color: #a8b8d2; }

/* terms tabs */
.terms { display: grid; grid-template-columns: 19rem minmax(0, 1fr); gap: var(--space-8); margin-top: var(--space-12); }
.terms [role='tablist'] { display: flex; flex-direction: column; gap: 2px; }
.terms [role='tab'] { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); text-align: left; padding: 0.9rem 1.1rem; min-height: 52px; background: var(--ice); font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); color: var(--navy); }
.terms [role='tab'] .ff { opacity: 0; --s: 18px; transition: opacity var(--fast), transform var(--fast); transform: translateX(-6px); }
.terms [role='tab']:hover { background: #d3e2ff; }
.terms [role='tab'][aria-selected='true'] { background: var(--blue); color: var(--white); }
.terms [role='tab'][aria-selected='true'] .ff { opacity: 1; transform: none; }
.term-panel { position: relative; overflow: hidden; background: var(--navy); color: #c9d6ea; padding: clamp(1.75rem, 4vw, 3.25rem); min-height: 340px; isolation: isolate; }
.term-panel .bug { position: absolute; z-index: -1; right: -4%; bottom: -14%; width: 30%; color: var(--blue); opacity: 0.5; }
.term-panel h3 { color: var(--white); font-size: var(--text-xl); text-transform: uppercase; font-variation-settings: 'wdth' 116; font-stretch: 116%; }
.term-panel .range { margin-top: var(--space-6); font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 110; font-stretch: 110%; font-size: var(--text-2xl); color: var(--sky); line-height: 1; }
.term-panel .range small { display: block; font-family: var(--font-label); font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--coral); margin-bottom: var(--space-3); font-weight: 700; }
.term-panel p { margin-top: var(--space-6); max-width: 56ch; }
@media (max-width: 860px) {
  .terms { grid-template-columns: 1fr; gap: var(--space-4); }
  .terms [role='tablist'] { flex-direction: row; overflow-x: auto; scrollbar-width: none; }
  .terms [role='tab'] { white-space: nowrap; flex: none; }
  .terms [role='tab'] .ff { display: none; }
  .term-panel { min-height: 0; }
}

/* compare */
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-top: var(--space-12); }
.compare > div { padding: clamp(1.5rem, 3vw, 2.5rem); }
.compare h3 { font-size: var(--text-xl); text-transform: uppercase; font-variation-settings: 'wdth' 116; font-stretch: 116%; }
.compare ul { list-style: none; margin-top: var(--space-6); }
.compare li { padding-block: var(--space-4); border-top: 1px solid rgb(127 145 175 / 0.35); }
.compare li strong { display: block; font-family: var(--font-label); color: inherit; }
.compare li span { display: block; font-size: var(--text-sm); margin-top: 0.2rem; opacity: 0.85; }
.compare .c-blue { background: var(--blue); color: #e3ecff; } .compare .c-blue h3 { color: var(--white); } .compare .c-blue strong { color: var(--white); }
.compare .c-navy { background: var(--navy); color: #c9d6ea; } .compare .c-navy h3 { color: var(--white); } .compare .c-navy strong { color: var(--white); }
.compare .c-ice { background: var(--ice); } .compare .c-ice strong { color: var(--navy); }
@media (max-width: 760px) { .compare { grid-template-columns: 1fr; } }

/* team */
.team { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); margin-top: var(--space-12); }
.person { background: var(--white); display: flex; flex-direction: column; }
.person .ph { position: relative; aspect-ratio: 1; overflow: hidden; background: var(--blue); clip-path: polygon(0 0, 100% 0, 100% 82%, 82% 100%, 0 100%); }
.person .ph img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); mix-blend-mode: luminosity; transition: filter 500ms var(--ease), transform 700ms var(--ease); }
.person:hover .ph img { filter: none; mix-blend-mode: normal; transform: scale(1.03); }
.person .body { padding: var(--space-5) 0 0; }
.person h3 { font-size: var(--text-lg); text-transform: uppercase; font-variation-settings: 'wdth' 116; font-stretch: 116%; line-height: 1.05; }
.person .role-l { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--blue); margin-top: var(--space-2); }
.person p { font-size: var(--text-sm); margin-top: var(--space-3); }
@media (max-width: 1000px) { .team { grid-template-columns: 1fr 1fr; gap: var(--space-10) var(--space-4); } }
@media (max-width: 480px) { .team { grid-template-columns: 1fr; } }

/* wave chart (thesis hero) */
.wave-chart { margin-top: var(--space-12); }
.wave-scroll { overflow-x: auto; scrollbar-width: none; }
.wave-scroll::-webkit-scrollbar { display: none; }
.wave-chart svg { width: 100%; height: auto; overflow: visible; }
.wave-chart .grid line { stroke: rgb(255 255 255 / 0.1); }
.wave-chart .axis text { font-family: var(--font-label); font-size: 13px; fill: #7f93b3; }
.wave-chart .wave { cursor: pointer; outline: none; }
.wave-chart .wave path { fill: none; stroke: #6f8fc4; stroke-width: 2; vector-effect: non-scaling-stroke; transition: stroke var(--fast), stroke-width var(--fast); }
.wave-chart .wave .fill { fill: #6f8fc4; stroke: none; opacity: 0.08; transition: opacity var(--fast); }
.wave-chart .wave text { font-family: var(--font-label); font-weight: 600; font-size: 13px; fill: #a8b8d2; letter-spacing: 0.04em; }
.wave-chart .wave:hover path, .wave-chart .wave:focus-visible path, .wave-chart .wave.is-active path { stroke: var(--white); stroke-width: 3; }
.wave-chart .wave:hover .fill, .wave-chart .wave.is-active .fill, .wave-chart .wave:focus-visible .fill { opacity: 0.18; }
.wave-chart .wave:focus-visible .hit { stroke: var(--coral); stroke-width: 2; stroke-dasharray: 5 5; }
.wave-chart .hit { fill: transparent; }
.wave-chart .wave--six path { stroke: var(--blue-ui); stroke-width: 3.5; }
.wave-chart .wave--six .fill { fill: var(--blue); opacity: 0.45; }
.wave-chart .wave--six text { fill: var(--white); }
.wave-chart .wave--six:hover path, .wave-chart .wave--six.is-active path, .wave-chart .wave--six:focus-visible path { stroke: var(--sky); stroke-width: 4; }
.wave-chart .wave--six.is-active .fill { opacity: 0.6; }
.wave-chart .now line { stroke: var(--coral); stroke-width: 2; stroke-dasharray: 3 5; }
.wave-chart .now polygon { fill: var(--coral); }
.wave-chart .now text { font-family: var(--font-label); font-weight: 700; font-size: 13px; fill: var(--coral); }
.js .wave-chart .draw { stroke-dasharray: var(--len); stroke-dashoffset: var(--len); animation: draw 1.8s var(--ease) 0.2s forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.wave-caption { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-6); align-items: baseline; border-top: 2px solid rgb(255 255 255 / 0.14); padding-top: var(--space-5); margin-top: var(--space-4); min-height: 100px; }
.wave-caption .era { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); color: var(--coral); letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
.wave-caption .name { font-family: var(--font-display); font-weight: 800; font-variation-settings: 'wdth' 118; font-stretch: 118%; text-transform: uppercase; color: var(--white); font-size: var(--text-lg); }
.wave-caption p { font-size: var(--text-sm); color: #a8b8d2; margin-top: 0.25rem; }
.wave-caption .hint { font-family: var(--font-label); font-size: var(--text-xs); color: #7f93b3; }
@media (max-width: 720px) {
  .wave-caption { grid-template-columns: 1fr; gap: var(--space-2); }
  .wave-caption .hint { display: none; }
  .wave-scroll { margin-inline: calc(-1 * var(--gutter)); padding-inline: var(--gutter); }
  .wave-scroll svg { min-width: 760px; }
  .wave-chart .wave text, .wave-chart .axis text, .wave-chart .now text { font-size: 19px; }
  .wave-chart .wave:not(.wave--six) text .nm { display: none; }
}

/* contact composer */
.composer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.paths { border: 0; display: grid; gap: var(--space-3); }
.paths legend { font-family: var(--font-display); font-weight: 800; text-transform: uppercase; font-variation-settings: 'wdth' 116; font-stretch: 116%; color: var(--navy); font-size: var(--text-lg); margin-bottom: var(--space-4); }
.path-opt { position: relative; }
.path-opt input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; margin: 0; }
.path-opt label { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: var(--space-4); align-items: start; padding: var(--space-5); background: var(--ice); cursor: pointer; transition: background-color var(--fast), color var(--fast); }
.path-opt label .ff { --s: 24px; color: #9fb6dc; margin-top: 0.15rem; transition: color var(--fast), transform var(--fast); }
.path-opt strong { display: block; font-family: var(--font-label); color: var(--navy); }
.path-opt span span { display: block; font-size: var(--text-sm); color: var(--muted); }
.path-opt input:hover + label { background: #d3e2ff; }
.path-opt input:checked + label { background: var(--blue); }
.path-opt input:checked + label strong { color: var(--white); }
.path-opt input:checked + label span span { color: #dbe6fb; }
.path-opt input:checked + label .ff { color: var(--white); transform: translateX(4px); }
.path-opt input:focus-visible + label { outline: 3px solid var(--coral); outline-offset: 3px; }
.field { display: grid; gap: 0.45rem; margin-top: var(--space-5); }
.field:first-child { margin-top: 0; }
.field label { font-family: var(--font-label); font-weight: 700; color: var(--navy); font-size: var(--text-sm); }
.field .help { font-size: var(--text-xs); color: var(--muted); }
.field input, .field textarea { width: 100%; min-height: 52px; padding: 0.8rem 1rem; border: 2px solid var(--line); background: var(--white); border-radius: 0; color: var(--navy); }
.field textarea { min-height: 160px; resize: vertical; line-height: 1.5; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--blue); box-shadow: 4px 4px 0 var(--blue); }
.field [aria-invalid='true'] { border-color: #c4281c; }
.error-msg { color: #b42318; font-size: var(--text-sm); font-weight: 600; }
.compose-out { margin-top: var(--space-6); padding: var(--space-5); background: var(--ice); border-left: 6px solid var(--blue); font-size: var(--text-sm); color: var(--navy); }
.compose-out[hidden] { display: none; }
@media (max-width: 900px) { .composer { grid-template-columns: 1fr; } }

/* reveal, fast-forward style */
.js .ffr { opacity: 0; transform: translateX(-40px); transition: opacity 700ms var(--ease), transform 900ms var(--ease); }
.js .ffr.is-in { opacity: 1; transform: none; }
.js .ffr-d1 { transition-delay: 90ms; } .js .ffr-d2 { transition-delay: 180ms; } .js .ffr-d3 { transition-delay: 270ms; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  .js .ffr { opacity: 1; transform: none; }
  .js .mark-lines path { opacity: 1; transform: none; }
  .marquee-track { animation: none; }
  .js .wave-chart .draw { stroke-dashoffset: 0; animation: none; }
}

/* round 2 fixes */
.hero .h-hero { font-size: clamp(2.2rem, 0.2rem + 4.6vw, 5.6rem); }
@media (max-width: 600px) { .hero .h-hero { font-stretch: 86%; font-variation-settings: 'wdth' 86; font-size: clamp(2.4rem, 11.5vw, 3.3rem); } .h-1.display, .h-2.display { font-stretch: 104%; font-variation-settings: 'wdth' 104; } }
.bg-ice .super, .bg-cloud .super { color: #d3e2ff; opacity: 1; }
.compare .c-ice { color: var(--slate); } .compare .c-ice h3 { color: var(--navy); }
.bg-navy .compare .c-ice h3 { color: var(--navy); }
.bg-navy .compare .c-blue h3 { color: var(--white); }
.duo img { width: 100%; height: auto; display: block; }
.h-fit { font-size: clamp(2.2rem, 0.6rem + 4.4vw, 5rem) !important; }
@media (max-width: 600px) { .h-fit { font-size: 10vw !important; } }
@media (max-width: 600px) { .cta .h-1 { font-size: 9.4vw; } }
@media (max-width: 600px) { .cta .h-1 { font-size: 8.8vw; } }

/* ================= round 3 ================= */
/* footer */
.site-footer { background: var(--ink); color: #a8b8d2; font-size: var(--text-sm); }
.f-sub { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-10); align-items: end; padding-block: clamp(3rem, 6vw, 4.5rem); border-bottom: 1px solid rgb(255 255 255 / 0.1); }
.f-sub .eyebrow { color: var(--sky); } .f-sub .eyebrow .ff { color: var(--blue-ui); }
.f-sub-h { margin-top: var(--space-4); color: var(--white); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem); font-variation-settings: 'wdth' 108; font-stretch: 108%; line-height: 1.08; max-width: 24ch; }
.f-sub-act .btn--line { color: var(--white); }
.f-sub-note { margin-top: var(--space-4); font-size: var(--text-xs); color: #8396b3; }
.footer-top { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: var(--space-10); padding-block: clamp(3rem, 6vw, 4.5rem); }
.f-brand .brand { color: var(--white); }
.f-brand .nw-lockup { height: 52px; }
.f-brand p { margin-top: var(--space-5); max-width: 32ch; }
.f-mail a { color: var(--white); font-family: var(--font-label); font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--blue-ui); padding-bottom: 2px; }
.f-col h2 { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sky); margin-bottom: var(--space-4); }
.f-col ul { list-style: none; display: grid; gap: 0.6rem; }
.f-col a { text-decoration: none; color: #dbe4f3; }
.f-col a:hover, .f-mail a:hover { color: var(--white); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--blue-ui); }
.disclosure { padding-top: var(--space-8); border-top: 1px solid rgb(255 255 255 / 0.1); display: grid; gap: var(--space-3); font-size: 0.78rem; line-height: 1.6; color: #8a9bb6; }
.disclosure p { max-width: 110ch; }
.f-base { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding-block: var(--space-8); font-size: var(--text-xs); color: #8396b3; }
.f-top { display: inline-flex; align-items: center; gap: 0.5rem; color: #dbe4f3; text-decoration: none; font-family: var(--font-label); font-weight: 600; }
.f-top .ff { --s: 16px; color: var(--blue-ui); transform: rotate(-90deg); }
.f-top:hover { color: var(--white); }
@media (max-width: 900px) { .f-sub { grid-template-columns: 1fr; align-items: start; } .footer-top { grid-template-columns: 1fr 1fr; } .f-brand { grid-column: 1 / -1; } }

/* article hero */
.ahero { position: relative; overflow: hidden; isolation: isolate; background: var(--navy); color: #c9d6ea; padding-block: clamp(2.5rem, 5vw, 4.5rem) clamp(3rem, 6vw, 5rem); }
.ahero .super { position: absolute; z-index: -1; right: -12%; bottom: -40%; width: min(60vw, 820px); color: var(--navy-2); pointer-events: none; }
.crumbs a { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-label); font-weight: 600; font-size: var(--text-sm); color: var(--sky); text-decoration: none; }
.crumbs a .ff { --s: 15px; transform: scaleX(-1); }
.crumbs a:hover { color: var(--white); }
.ah-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.9fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-top: var(--space-8); }
.tags { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; }
.tags li { font-family: var(--font-label); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--white); background: var(--blue); padding: 0.3rem 0.7rem; }
.a-title { margin-top: var(--space-5); color: var(--white); font-size: clamp(2rem, 1.2rem + 2.6vw, 3.6rem); font-variation-settings: 'wdth' 100; font-stretch: 100%; line-height: 1.04; letter-spacing: -0.015em; max-width: 24ch; }
.byline { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-8); }
.byline .av { width: 56px; height: 56px; object-fit: cover; clip-path: polygon(0 0, 100% 0, 100% 72%, 72% 100%, 0 100%); background: var(--blue); }
.by { color: var(--white); font-weight: 600; }
.by a { color: inherit; text-decoration: none; border-bottom: 2px solid var(--blue-ui); }
.by-role { font-size: var(--text-sm); color: #93a6c4; }
.ameta { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8); margin-top: var(--space-6); padding-top: var(--space-5); border-top: 1px solid rgb(255 255 255 / 0.12); }
.ameta dt { font-family: var(--font-label); font-size: var(--text-xs); letter-spacing: 0.12em; text-transform: uppercase; color: var(--sky); }
.ameta dd { color: var(--white); font-size: var(--text-sm); font-weight: 500; }
.ah-figure { position: relative; max-width: 600px; justify-self: end; width: 100%; }
.ah-figure .back { position: absolute; inset: 14px -14px -14px 14px; background: var(--blue); }
.ah-figure img { position: relative; width: 100%; height: auto; }
.ah-figure .bug.speed { position: absolute; left: -22px; top: -26px; width: 44px; color: var(--coral); }
@media (max-width: 960px) { .ah-grid { grid-template-columns: 1fr; } .ah-figure { justify-self: start; max-width: 520px; } }

/* long-form layout + toc */
.article-sec { padding-block: clamp(3rem, 6vw, 5.5rem); }
.lf { display: grid; grid-template-columns: 17rem minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.lf-main { min-width: 0; max-width: 72ch; }
.toc { position: sticky; top: 104px; max-height: calc(100vh - 128px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 0.5rem; }
.toc summary { list-style: none; display: flex; align-items: center; gap: var(--space-3); cursor: pointer; }
.toc summary::-webkit-details-marker { display: none; }
.toc .toc-count, .toc .chev { display: none; }
.toc ol { list-style: none; margin-top: var(--space-4); border-left: 2px solid var(--line); }
.toc li a { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.42rem 0 0.42rem 0.9rem; margin-left: -2px; border-left: 2px solid transparent; text-decoration: none; font-size: 0.86rem; line-height: 1.35; color: var(--muted); }
.toc li.l3 a { padding-left: 1.8rem; font-size: 0.8rem; }
.toc li a .ff { --s: 13px; margin-top: 0.12rem; color: var(--blue); opacity: 0; width: 0; transition: opacity var(--fast), width var(--fast); }
.toc li a:hover { color: var(--navy); }
.toc li a.is-current { color: var(--navy); font-weight: 600; border-left-color: var(--blue); }
.toc li a.is-current .ff { opacity: 1; width: calc(var(--s) * 0.5852); }
@media (max-width: 1080px) {
  .lf { grid-template-columns: 1fr; }
  .toc { position: sticky; top: 80px; z-index: 20; max-height: none; overflow: visible; padding: 0; margin-inline: calc(-1 * var(--gutter)); }
  .toc-d { background: var(--white); border-block: 1px solid var(--line); box-shadow: 0 10px 24px -18px rgb(10 22 40 / 0.4); }
  .toc summary { padding: 0.9rem var(--gutter); }
  .toc .toc-count { display: inline; margin-left: auto; font-size: var(--text-xs); color: var(--muted); }
  .toc .chev { display: block; --s: 16px; color: var(--blue); transform: rotate(90deg); transition: transform var(--fast); }
  .toc-d[open] .chev { transform: rotate(-90deg); }
  .toc ol { margin: 0; padding: 0 var(--gutter) 1rem; border: 0; max-height: 60vh; overflow: auto; }
  .toc li a { border-left: 0; padding-left: 0; }
  .toc li.l3 a { padding-left: 1rem; }
}

/* prose */
.prose { color: #2b3445; font-size: clamp(1.04rem, 0.98rem + 0.25vw, 1.15rem); line-height: 1.72; }
.prose > * + * { margin-top: 1.15em; }
.prose p { max-width: none; }
.prose h2, .prose h3, .prose h4 { scroll-margin-top: 110px; color: var(--navy); text-wrap: balance; }
.prose h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem); font-variation-settings: 'wdth' 100; font-stretch: 100%; line-height: 1.12; letter-spacing: -0.01em; margin-top: 2.4em; padding-top: 0.9em; border-top: 2px solid var(--navy); }
.prose h3 { font-size: clamp(1.25rem, 1.08rem + 0.6vw, 1.55rem); font-variation-settings: 'wdth' 100; font-stretch: 100%; font-weight: 750; line-height: 1.22; margin-top: 2em; }
.prose h4 { font-family: var(--font-body); font-size: 1.08rem; font-weight: 700; line-height: 1.35; margin-top: 1.8em; }
.prose > :first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.prose h2 + *, .prose h3 + *, .prose h4 + * { margin-top: 0.7em; }
.prose a { color: var(--blue); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; font-weight: 500; }
.prose a:hover { color: var(--blue-deep); text-decoration-thickness: 2.5px; }
.prose strong { color: var(--navy); font-weight: 650; }
.prose ul, .prose ol { padding-left: 1.6em; }
.prose li + li { margin-top: 0.45em; }
.prose li > ul, .prose li > ol { margin-top: 0.45em; }
.prose ul { list-style: none; }
.prose ul > li { position: relative; }
.prose ul > li::before { content: ''; position: absolute; left: -1.25em; top: 0.38em; width: 0.5em; height: 0.86em; background: var(--blue); -webkit-mask: url(../brand/bug-white.svg) center / contain no-repeat; mask: url(../brand/bug-white.svg) center / contain no-repeat; }
.prose ol > li::marker { color: var(--blue); font-family: var(--font-label); font-weight: 700; }
.prose blockquote { margin-block: 1.8em; padding: 1.2em 1.4em 1.2em 1.6em; background: var(--ice); border-left: 6px solid var(--blue); color: var(--navy); font-size: 1.06em; }
.prose blockquote > * + * { margin-top: 0.8em; }
.prose hr { border: 0; height: 2px; width: 40%; margin: 2.6em auto; background: var(--line); }
.prose figure { margin-block: 2em; }
.prose figure img, .prose p > img, .prose > img { display: block; margin-inline: auto; max-width: 100%; height: auto; border: 1px solid var(--line); background: var(--white); }
.prose figure a { display: block; }
.prose pre { white-space: pre-wrap; font-family: var(--font-label); font-size: 0.82rem; line-height: 1.5; color: var(--muted); text-align: center; margin-top: 0.6em; }
.prose .embed { position: relative; aspect-ratio: 16 / 9; width: 100%; background: var(--navy); }
.prose .embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); margin-block: 1.8em; }
.table-wrap:focus-visible { outline: 3px solid var(--coral); outline-offset: 2px; }
.prose table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 0.92rem; line-height: 1.45; }
.prose th, .prose td { padding: 0.65rem 0.85rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.prose thead th { color: var(--white); }
.prose thead th { background: var(--navy); font-family: var(--font-label); font-weight: 600; }
.prose tbody tr:nth-child(even) td { background: var(--cloud); }
.prose td p, .prose th p { margin: 0; max-width: none; }

/* article end matter */
.a-end { margin-top: var(--space-16); padding-top: var(--space-10); border-top: 2px solid var(--navy); }
.share .eyebrow { font-size: var(--text-xs); }
.share ul { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.share li a { display: inline-flex; align-items: center; gap: 0.55rem; padding: 0.6rem 1rem; background: var(--ice); color: var(--navy); text-decoration: none; font-family: var(--font-label); font-weight: 600; font-size: var(--text-sm); }
.share li a .ff { --s: 17px; color: var(--blue); }
.share li a:hover { background: var(--blue); color: var(--white); }
.share li a:hover .ff { color: var(--white); }
.share-url { margin-top: var(--space-4); font-size: var(--text-xs); color: var(--muted); }
.share-url a { color: var(--blue); word-break: break-all; }
.author-box { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: var(--space-6); margin-top: var(--space-12); padding: var(--space-8); background: var(--navy); color: #c9d6ea; }
.author-box img { width: 112px; height: 112px; object-fit: cover; clip-path: polygon(0 0, 100% 0, 100% 74%, 74% 100%, 0 100%); }
.author-box .eyebrow { color: var(--sky); } .author-box .eyebrow .ff { color: var(--coral); }
.author-box h2 { margin-top: var(--space-3); color: var(--white); font-size: var(--text-xl); font-variation-settings: 'wdth' 112; font-stretch: 112%; text-transform: uppercase; }
.author-box p { font-size: var(--text-sm); margin-top: var(--space-2); }
.author-box .link-ff { color: var(--sky); }
@media (max-width: 560px) { .author-box { grid-template-columns: 1fr; } }
.prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); margin-top: var(--space-12); }
.pn { display: block; padding: var(--space-6); background: var(--cloud); text-decoration: none; transition: background var(--fast); }
.pn:hover { background: var(--ice); }
.pn--next { text-align: right; grid-column: 2; }
.pn-k { display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-label); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blue); }
.pn-k .ff { --s: 15px; }
.pn-t { display: block; margin-top: var(--space-2); color: var(--navy); font-family: var(--font-display); font-weight: 750; font-variation-settings: 'wdth' 100; font-stretch: 100%; line-height: 1.2; }
@media (max-width: 640px) { .prevnext { grid-template-columns: 1fr; } .pn--next { grid-column: auto; text-align: left; } }
.pcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-6); margin-top: var(--space-10); }
.pcard { display: flex; flex-direction: column; background: var(--white); text-decoration: none; transition: transform var(--fast), box-shadow var(--fast); }
.pcard:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -24px rgb(10 22 40 / 0.45); }
.pc-img { display: block; aspect-ratio: 600 / 350; overflow: hidden; background: var(--navy); }
.pc-img img { width: 100%; height: 100%; object-fit: cover; }
.pc-meta { padding: var(--space-5) var(--space-5) 0; font-family: var(--font-label); font-size: var(--text-xs); color: var(--muted); }
.pc-title { padding: var(--space-2) var(--space-5) 0; font-family: var(--font-display); font-weight: 750; font-variation-settings: 'wdth' 100; font-stretch: 100%; color: var(--navy); font-size: var(--text-lg); line-height: 1.2; }
.pc-go { margin-top: auto; padding: var(--space-5); display: inline-flex; align-items: center; gap: 0.5rem; font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); color: var(--blue); }
.pc-go .ff { --s: 18px; }
@media (max-width: 900px) { .pcards { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .toc { top: 68px; } }
@media (max-width: 960px) { .ah-figure .bug.speed { left: -8px; top: -20px; width: 34px; } }

/* ---------- Round 4. Investor Network page ---------- */
.panel .btn-row { margin-top: auto; }
.panel .btn-row .btn { margin-top: 0; }
.nb-head { max-width: 62ch; }
.nbs { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin-top: var(--space-12); }
.nb { position: relative; background: var(--ice); padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-3); min-height: 260px; }
.nb .ff { --s: 24px; color: var(--blue); }
.nb h3 { font-size: var(--text-lg); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; line-height: 1.1; margin-top: var(--space-2); }
.nb p { font-size: var(--text-sm); }
.nb--lead { background: var(--blue); color: #e3ecff; grid-row: span 2; justify-content: flex-end; }
.nb--lead .ff { --s: 56px; color: var(--white); margin-bottom: auto; }
.nb--lead h3 { color: var(--white); font-size: var(--text-xl); }
.nb--lead p { font-size: var(--text-base); }
.nb-books { display: flex; gap: var(--space-3); margin-top: auto; padding-top: var(--space-4); }
.nb-books img { width: 64px; height: auto; box-shadow: 0 6px 18px rgb(3 23 66 / 0.22); }
.byd { display: grid; gap: var(--space-4); }
.byd-p { border-left: 4px solid var(--blue); padding: var(--space-2) 0 var(--space-2) var(--space-6); }
.byd-p .kind { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); }
.byd-p h3 { font-size: var(--text-lg); margin-top: var(--space-2); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; }
.byd-p p { font-size: var(--text-sm); margin-top: var(--space-2); }
.byd-p + .byd-p { border-left-color: var(--coral); }
ul.statements { list-style: none; }
.org-fig { margin: 0; clip-path: polygon(0 0, 100% 0, 100% 84%, 86% 100%, 0 100%); }
.org-fig img { width: 100%; height: auto; display: block; }
.nw-fine-h { font-size: var(--text-xl); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; }
.nw-fine { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-8); border-top: 2px solid var(--navy); padding-top: var(--space-6); }
.nw-fine p { font-size: var(--text-sm); color: var(--slate); }
@media (max-width: 960px) {
  .nbs { grid-template-columns: 1fr 1fr; }
  .nb--lead { grid-column: span 2; grid-row: auto; min-height: 0; }
  .nw-fine { grid-template-columns: 1fr; gap: var(--space-4); }
}
@media (max-width: 600px) {
  .nbs { grid-template-columns: 1fr; }
  .nb--lead { grid-column: auto; }
  .nb { min-height: 0; }
}
.nav a { white-space: nowrap; }
@media (max-width: 1240px) { .nav a { padding-inline: 0.55rem; } .nav a::after { left: 0.55rem; right: 0.55rem; } }
.collage .c1 img, .collage .c2 img { height: 100%; width: 100%; object-fit: cover; }
.nbs { grid-template-rows: auto auto auto; }
.nb--lead { grid-row: 1 / span 3; }
.nb--wide { grid-column: span 2; flex-direction: row; align-items: center; gap: var(--space-8); min-height: 0; }
.nb--wide .nb-txt { display: flex; flex-direction: column; gap: var(--space-3); }
.nb--wide .nb-books { margin-top: 0; padding-top: 0; flex: none; }
.nb--wide .nb-books img { width: 84px; }
@media (max-width: 960px) {
  .nb--lead { grid-row: auto; }
  .nb--wide { grid-column: span 2; }
}
@media (max-width: 600px) {
  .nb--wide { grid-column: auto; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
}

/* ---------- Round 5. Work with us nav group ---------- */
.nav-group { position: relative; }
.nav-btn { position: relative; display: inline-flex; align-items: center; gap: 0.4rem; background: none; border: 0; cursor: pointer; font-family: var(--font-label); font-weight: 600; font-size: var(--text-sm); color: var(--navy); padding: 0.55rem 0.8rem; white-space: nowrap; }
.nav-btn::after { content: ''; position: absolute; left: 0.8rem; right: 0.8rem; bottom: 0.25rem; height: 3px; background: var(--blue); transform: scaleX(0); transform-origin: 0 50%; transition: transform 260ms var(--ease); }
.nav-btn:hover::after, .nav-group.is-current .nav-btn::after { transform: scaleX(1); }
.nav-group.is-current .nav-btn { color: var(--blue); }
.nav-btn:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.nav-caret { width: 12px; height: 12px; transition: transform var(--fast); }
.nav-group.is-open .nav-caret { transform: rotate(180deg); }
.nav-panel { position: absolute; left: 50%; top: calc(100% + 14px); width: 340px; translate: -50% 0; background: var(--white); box-shadow: 0 18px 50px rgb(3 23 66 / 0.18), 0 0 0 1px var(--line); padding: var(--space-2); display: none; }
.nav-panel::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.nav-group.is-open .nav-panel { display: block; animation: menuIn 200ms var(--ease); }
html:not(.js) .nav-group:hover .nav-panel, html:not(.js) .nav-group:focus-within .nav-panel { display: block; }
.nav-panel ul { list-style: none; }
.nav-panel a { display: flex; gap: 0.85rem; align-items: flex-start; padding: 0.8rem 0.9rem; text-decoration: none; color: var(--navy); }
.nav-panel a::after { display: none; }
.nav-panel a .ff { --s: 18px; color: var(--blue); margin-top: 0.15rem; flex: none; }
.nav-panel a strong { display: block; font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); }
.nav-panel a span span { display: block; font-family: var(--font-body); font-weight: 400; font-size: var(--text-xs); color: var(--slate); margin-top: 0.1rem; }
.nav-panel a:hover, .nav-panel a:focus-visible { background: var(--ice); }
.nav-panel a[aria-current='page'] { background: var(--ice); }
.nav-panel a[aria-current='page'] strong { color: var(--blue); }
.nav-panel li + li { border-top: 1px solid var(--line); }
@media (max-width: 1240px) { .nav-btn { padding-inline: 0.55rem; } .nav-btn::after { left: 0.55rem; right: 0.55rem; } }
.mobile-menu .mm-group { padding: var(--space-4) 0 0; }
.mobile-menu .mm-label { display: block; font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: rgb(255 255 255 / 0.75); }
.mobile-menu .mm-group ul { border-top: 0; margin-top: var(--space-2); }
.mobile-menu .mm-group li:last-child { border-bottom: 0; }
.mobile-menu .mm-group li a { padding-left: var(--space-4); font-size: clamp(1.25rem, 5vw, 1.8rem); }

/* ---------- Round 5. Advisory ---------- */
.doors--two { grid-template-columns: 1fr 1fr; }
.door--wide { min-height: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--space-6) var(--space-10); margin-top: var(--space-4); }
.door--wide h3 { font-size: clamp(1.6rem, 1rem + 1.6vw, 2.4rem); }
.door--wide .go { margin-top: 0; }
.door--wide .dw-head { display: flex; flex-direction: column; gap: var(--space-2); }
.door--wide .bug { top: -30%; width: 22%; right: -4%; }
.adv-who { background: var(--white); padding: var(--space-8); border-top: 4px solid var(--blue); }
.adv-who .kind, .adv-sides .kind, .ar .kind { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); }
.adv-who ul { list-style: none; margin-top: var(--space-4); }
.adv-who li { display: flex; gap: 0.75rem; align-items: baseline; padding-block: 0.75rem; border-top: 1px solid var(--line); font-size: var(--text-sm); color: var(--navy); }
.adv-who li .ff { --s: 18px; color: var(--blue); flex: none; }
.adv-services { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); margin-top: var(--space-12); }
.as { background: var(--white); padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-3); border-bottom: 4px solid var(--blue); }
.as-n { font-family: var(--font-display); font-weight: 800; font-size: var(--text-2xl); line-height: 0.9; color: var(--blue); opacity: 0.45; font-variation-settings: 'wdth' 120; font-stretch: 120%; }
.as h3 { font-size: var(--text-lg); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; line-height: 1.1; }
.as p { font-size: var(--text-sm); }
.as .link-ff { margin-top: auto; }
.adv-bd { display: flex; gap: var(--space-6); align-items: flex-start; margin-top: var(--space-10); padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--coral); color: var(--ink); max-width: 980px; }
.adv-bd .ff { --s: 40px; color: var(--ink); flex: none; margin-top: 0.2rem; }
.adv-bd-h { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.5rem, 1rem + 1.8vw, 2.4rem); line-height: 1.05; text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; color: var(--ink); }
.adv-bd p + p { margin-top: var(--space-3); font-size: var(--text-base); max-width: 70ch; }
.adv-sides { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.adv-sides > div { border-top: 2px solid rgb(255 255 255 / 0.18); padding-top: var(--space-4); }
.adv-sides .kind { color: var(--sky); }
.adv-sides p { color: #c9d6ea; font-size: var(--text-sm); margin-top: var(--space-2); }
.adv-routes-h { font-family: var(--font-display); color: var(--white); font-size: var(--text-xl); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; }
.adv-routes { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); margin-top: var(--space-6); }
.ar { background: var(--white); color: var(--slate); padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-3); }
.ar .ff { --s: 24px; color: var(--blue); }
.ar h3 { font-size: var(--text-lg); color: var(--navy); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; line-height: 1.1; }
.ar p { font-size: var(--text-sm); }
.ar:nth-child(2) { border-top: 4px solid var(--coral); }
.ar:nth-child(1) { border-top: 4px solid var(--blue); }
.ar:nth-child(3) { border-top: 4px solid var(--navy); }
.adv-fine { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.adv-fine strong { color: var(--navy); }
.lines4 { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-3); margin-top: var(--space-12); }
.lines4 a { display: flex; flex-direction: column; gap: var(--space-2); height: 100%; padding: var(--space-6); background: rgb(255 255 255 / 0.06); color: #c9d6ea; text-decoration: none; border-top: 3px solid var(--blue-ui); transition: background var(--fast); }
.lines4 a:hover, .lines4 a:focus-visible { background: rgb(255 255 255 / 0.12); }
.lines4 .kind { font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--sky); }
.lines4 strong { font-family: var(--font-display); color: var(--white); font-size: var(--text-lg); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; }
.lines4 span.d { font-size: var(--text-sm); }
.lines4 .ff { --s: 20px; color: var(--sky); margin-top: auto; }
@media (max-width: 1100px) {
  .adv-services { grid-template-columns: 1fr 1fr; }
  .adv-fine { grid-template-columns: 1fr 1fr; }
  .lines4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .adv-routes { grid-template-columns: 1fr; }
  .doors--two { grid-template-columns: 1fr; }
  .door--wide { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .adv-services, .adv-fine, .lines4, .adv-sides { grid-template-columns: 1fr; }
  .adv-bd { flex-direction: column; gap: var(--space-3); }
  .adv-bd .ff { --s: 30px; }
}
.split > .lines4 { grid-column: 1 / -1; }
.door .thumb--faces img { object-position: 50% 22%; }
.adv-fine { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-10); }
.adv-fine p:first-child { grid-column: 1 / -1; font-size: var(--text-lg); color: var(--navy); }
.adv-fine p:first-child strong { font-family: var(--font-display); text-transform: uppercase; font-variation-settings: 'wdth' 114; font-stretch: 114%; }
@media (max-width: 600px) { .adv-fine { grid-template-columns: 1fr; } }
@keyframes navIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.nav-group.is-open .nav-panel { animation: navIn 180ms var(--ease); }
@media (prefers-reduced-motion: reduce) { .nav-group.is-open .nav-panel { animation: none; } .nav-caret { transition: none; } }

/* ---------- Hero H1 fit. The longest word never runs past its column ---------- */
.phero-grid > div:first-child, .hero-copy { container-type: inline-size; }
.fit-h.h-1 { font-size: min(var(--text-3xl), calc(100cqi / var(--wem))); }
@media (min-width: 601px) {
  .fit-h.h-fit { font-size: min(clamp(2.2rem, 0.6rem + 4.4vw, 5rem), calc(100cqi / var(--wem))) !important; }
  .hero .fit-h.h-hero { font-size: min(clamp(2.2rem, 0.2rem + 4.6vw, 5.6rem), calc(100cqi / var(--wem))); }
}

/* ---------- Round 6 ---------- */
.adv-fine p:first-child { grid-column: auto; font-size: var(--text-sm); color: var(--slate); }
.nb--books .nb-books { margin-top: auto; padding-top: var(--space-4); }
.nb--books .nb-books a { display: block; transition: transform var(--fast); }
.nb--books .nb-books a:hover, .nb--books .nb-books a:focus-visible { transform: translateY(-3px); }
.nb--books .nb-books img { width: 58px; }
.adv-track .notice { max-width: 980px; }
.door .thumb--faces img { object-position: 50% 30%; }
/* Network lead tile composition. The logo bug fills the tall tile above the copy */
.nb--lead { position: relative; overflow: hidden; isolation: isolate; justify-content: flex-start; }
.nb--lead .nb-mark { display: block; width: min(78%, 220px); height: auto; margin: var(--space-2) 0 auto; flex: none; }
.nb--lead .nb-mark .b1, .nb--lead .nb-mark .b2, .nb--lead .nb-mark .b3 { color: var(--coral); fill: var(--coral); }
.nb--lead .nb-mark .bt { fill: var(--navy); }
.nb--lead::after { content: ''; position: absolute; z-index: -1; right: -30%; bottom: -12%; width: 90%; aspect-ratio: 1; background: rgb(255 255 255 / 0.06); clip-path: polygon(0 0, 55% 0, 100% 50%, 55% 100%, 0 100%, 45% 50%); }
.nb--lead h3 { margin-top: var(--space-8); }
@media (max-width: 960px) {
  .nb--lead { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-8); align-items: end; }
  .nb--lead .nb-mark { grid-column: 2; grid-row: 1 / span 2; width: 96px; margin: 0; align-self: center; }
  .nb--lead h3 { grid-column: 1; grid-row: 1; margin-top: 0; }
  .nb--lead p { grid-column: 1; grid-row: 2; }
}
@media (max-width: 600px) {
  .nb--lead { grid-template-columns: minmax(0, 1fr) 64px; column-gap: var(--space-4); }
  .nb--lead .nb-mark { width: 64px; align-self: start; }
}
.nb--lead .nb-mark { width: min(86%, 300px); }
@media (max-width: 1180px) {
  .nbs { grid-template-columns: 1fr 1fr; }
  .nb--lead { grid-column: span 2; grid-row: auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-8); align-items: end; }
  .nb--lead .nb-mark { grid-column: 2; grid-row: 1 / span 2; width: 110px; margin: 0; align-self: center; }
  .nb--lead h3 { grid-column: 1; grid-row: 1; margin-top: 0; }
  .nb--lead p { grid-column: 1; grid-row: 2; max-width: 60ch; }
}
@media (max-width: 600px) {
  .nbs { grid-template-columns: 1fr; }
  .nb--lead { grid-column: auto; grid-template-columns: minmax(0, 1fr) 64px; column-gap: var(--space-4); }
  .nb--lead .nb-mark { width: 64px; align-self: start; }
}
@media (min-width: 1181px) {
  .nb--lead .nb-mark { flex: 1 1 0; width: 100%; height: auto; min-height: 180px; max-height: 560px; margin: var(--space-2) 0 0; }
}
/* Advisory hero. Taller chevron frame for the portrait corridor image */
.chev-frame--tall img { aspect-ratio: 5 / 6; object-position: 50% 32%; }
@media (max-width: 960px) { .chev-frame--tall img { aspect-ratio: 4 / 3; object-position: 50% 28%; } }
.chev-frame--tall .speed { left: -9%; top: -7%; width: 24%; }
/* Round 8 */
.facts--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1180px) { .facts--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .facts--5 { grid-template-columns: 1fr; } }
.portfolio-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: var(--space-12); }
@media (max-width: 1100px) { .portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .portfolio-grid { grid-template-columns: 1fr; } }
.logo-cell--more { background: var(--blue); overflow: hidden; }
.logo-cell--more .bug { position: absolute; right: -14px; bottom: -14px; width: 92px; height: auto; color: rgb(255 255 255 / 0.16); }
.logo-cell--more p { color: #dbe6fb; }
.logo-cell--more .mt-auto { margin-top: auto; }
.logo-cell--more a, .logo-cell--more a .ff { color: var(--white); }
.mark-photo img[src*="gen-nw-roundtable"] { object-position: 42% 30%; }

/* Round 11 M&A reflow */
.adv-ma { align-items: end; }
.adv-ma-note { color: #a8b8d2; max-width: 52ch; }
.adv-ma .adv-sides > div { padding-top: var(--space-5); }
.adv-ma .adv-sides p { font-size: var(--text-base); }
/* Round 13 Safer resources */
.panels--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panels--3 .panel h3 { font-size: clamp(1.5rem, 1rem + 1.2vw, 2.1rem); }
@media (max-width: 1080px) { .panels--3 { grid-template-columns: 1fr; } }
.bg-navy .panel--white h3, .bg-navy .panel--ice h3 { color: var(--navy); }
.bg-navy .panel--white p, .bg-navy .panel--ice p { color: var(--slate); }
/* Round 15 corporate venture */
.doors--row2 { margin-top: var(--space-4); }
.doors--row2 .door { min-height: 420px; }
.cv-frame .speed { left: auto; right: -7%; top: auto; bottom: -8%; width: 22%; transform: rotate(180deg); }
.cv-arrows .gate { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: var(--space-4); font-family: var(--font-label); font-weight: 700; font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; }
.cv-arrows .gate .ff { --s: 14px; color: var(--coral); }
.cv-routes { list-style: none; display: grid; gap: var(--space-6); }
.cv-routes li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-4); align-items: start; border-top: 2px solid var(--line); padding-top: var(--space-5); }
.cv-routes li > .ff { --s: 26px; color: var(--blue); margin-top: 0.2rem; }
.cv-routes h3 { font-size: var(--text-lg); color: var(--navy); }
.cv-routes p { font-size: var(--text-sm); margin-top: var(--space-1); }
.faq { display: grid; gap: 2px; }
.faq-i { background: var(--white); border-left: 4px solid var(--blue); }
.faq-i summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding: var(--space-5) var(--space-6); font-family: var(--font-label); font-weight: 700; color: var(--navy); }
.faq-i summary::-webkit-details-marker { display: none; }
.faq-i summary .ff { --s: 18px; color: var(--blue); flex: none; transform: rotate(90deg); transition: transform 240ms var(--ease); }
.faq-i[open] summary .ff { transform: rotate(-90deg); color: var(--coral); }
.faq-i summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
.faq-i p { padding: 0 var(--space-6) var(--space-6); font-size: var(--text-sm); max-width: 62ch; }
@media (prefers-reduced-motion: reduce) { .faq-i summary .ff { transition: none; } }

/* ===== Round 17 thesis visual essay (scoped to .tv). One language, the Long Line ===== */
.prose .tv { --paper: #f4efe6; --ink: #0a1628; --cob: #035dff; --cor: #ff5b3a; --sky2: #8db8ff; --hair: rgb(10 22 40 / 0.55);
  margin: 3.4em 0 3.6em; container-type: inline-size; font-size: 1rem; line-height: 1.5; color: var(--slate); position: relative; }
.prose .tv * + * { margin-top: 0; }
.tv-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.tv-in { position: relative; background: var(--paper) url(../img/tv-grain.webp) repeat; background-size: 160px; padding: clamp(1.25rem, 3.2cqi, 2.6rem); }
.tv--night .tv-in { background-color: var(--ink); color: #c9d6ea; }
.tv--night .tv-in { background-image: url(../img/tv-grain.webp); background-blend-mode: soft-light; }
.tv-head { display: grid; gap: 0.55rem; margin-bottom: clamp(1rem, 2.6cqi, 2rem); max-width: 46rem; }
.tv-k { display: inline-flex; align-items: center; gap: 0.6rem; font-family: var(--font-label); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cob); }
.tv-k .ff { --s: 13px; color: var(--cor); }
.tv-kk { color: var(--muted); font-weight: 600; }
.tv-kk::before { content: ''; display: inline-block; width: 1.6rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: 0.6rem; opacity: 0.6; }
.tv--night .tv-k { color: var(--sky2); }
.tv--night .tv-kk { color: #93a6c4; }
.prose .tv-t { font-family: var(--font-display); font-weight: 800; font-stretch: 92%; font-variation-settings: 'wdth' 92; font-size: clamp(1.45rem, 1.05rem + 1.6vw, 2.15rem); line-height: 1.04; letter-spacing: -0.02em; color: var(--ink); text-wrap: balance; max-width: 24ch; }
.prose .tv--wide .tv-t, .prose .tv--full .tv-t { font-size: clamp(1.7rem, 1rem + 2.6vw, 3.2rem); max-width: 22ch; }
.tv--night .tv-t { color: #fff; }
.tv-art { position: relative; }
.tv-svg { display: block; width: 100%; height: auto; overflow: visible; fill: none; stroke: var(--ink); stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.tv-svg text { font-family: var(--font-label); fill: var(--ink); stroke: none; font-size: 14px; }
.tv-m { display: none; }
.prose .tv-cap { margin-top: clamp(1rem, 2.4cqi, 1.6rem); padding-top: 0.8rem; border-top: 1px solid rgb(10 22 40 / 0.18); font-size: 0.9rem; line-height: 1.55; color: var(--slate); max-width: 62ch; }
.tv--night .tv-cap { border-top-color: rgb(255 255 255 / 0.16); color: #a9bad3; }
.tv-key { list-style: none; padding: 0 !important; display: grid; gap: 0.7rem; margin-top: 1.1rem; position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.prose .tv-key li::before { display: none; }
.tv-key li { display: grid; grid-template-columns: 1.9rem 1fr; gap: 0.6rem; align-items: start; font-size: 0.92rem; line-height: 1.45; margin: 0 !important; }
.tv-key strong { color: var(--ink); font-weight: 650; margin-right: 0.25rem; }
.tv-kn { display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; border: 1.3px solid var(--ink); font-family: var(--font-label); font-weight: 700; font-size: 0.78rem; color: var(--ink); background: var(--paper); }
.tv--night .tv-key li { color: #c9d6ea; }
.tv--night .tv-key strong { color: #fff; }
.tv--night .tv-kn { background: var(--ink); color: #fff; border-color: var(--sky2); }

/* shared marks */
.tv-ld { stroke: var(--ink); stroke-width: 0.9; }
.tv-ldot { fill: var(--ink); stroke: none; }
.tv-pin circle { fill: var(--paper); stroke: var(--ink); stroke-width: 1.3; }
.tv-svg .tv-pin text { font-weight: 700; font-size: 14px; }
.tv-pin--hot circle { fill: var(--cor); stroke: var(--cor); }
.tv-svg .tv-pin--hot text { fill: #fff; }
.tv-pin--night circle { fill: var(--ink); stroke: var(--sky2); stroke-width: 1.4; }
.tv-svg .tv-pin--night text { fill: #fff; }
.tv-ah { stroke: var(--cob); stroke-width: 2; }
.tv-chev { fill: var(--cor); stroke: none; }
.tv-svg .tl { font-size: 14px; }
.tv-svg .tl-b { font-weight: 700; }
.tv-svg .tl-s { font-family: var(--font-body); fill: var(--slate); font-size: 14px; }
.tva-lab, .tvg-lab { paint-order: stroke; stroke: var(--paper); stroke-width: 6px; stroke-linejoin: round; }
.tv-svg .tva-tt { font-weight: 700; font-size: 16px; letter-spacing: 0.06em; text-transform: uppercase; }
.tv-svg .tva-nt { font-family: var(--font-body); font-size: 18px; fill: #2b3445; }
.tva-hot .tva-tt { fill: var(--cor); }
.tva-hot .tv-ld { stroke: var(--cor); }
.tva-hot .tv-ldot { fill: var(--cor); }

/* plate, long waves */
.tv--waves .tvw-e { stroke: var(--sky2); stroke-width: 1; }
.tv--waves .tvw-e6 { stroke: var(--cor); }
.tv--waves .tvw-line { stroke: #fff; stroke-width: 2.6; }
.tv--waves .tvw-six { stroke: var(--cor); stroke-width: 3.2; }
.tv--waves .tvw-ax { stroke: rgb(141 184 255 / 0.45); }
.tv--waves .tvw-tick { stroke: rgb(141 184 255 / 0.5); }
.tv--waves .tvw-yr { fill: var(--sky2); font-size: 15px; letter-spacing: 0.06em; }
.tv--waves .tvw-ld { stroke: rgb(141 184 255 / 0.5); stroke-dasharray: 1 4; }
.tv--waves .tvw-ico { stroke: #fff; stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.tv--waves .tvw-ico6 { stroke: var(--cor); stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.tv--waves .tvw-n { font-family: var(--font-display); font-weight: 800; font-size: 26px; fill: none; stroke: var(--sky2); stroke-width: 0.8px; letter-spacing: 0.04em; }
.tv--waves .tvw-nm { fill: #fff; font-weight: 600; font-size: 16px; }
.tv--waves .tvw-era { fill: var(--sky2); font-size: 15px; }
.tv--waves .tvw-lab6 .tvw-n { stroke: var(--cor); }
.tv--waves .tvw-lab6 .tvw-nm { fill: var(--cor); font-size: 18px; font-weight: 700; }
.tv--waves .tvw-now path { stroke: var(--cor); stroke-dasharray: 2 5; }
.tv--waves .tvw-now circle { fill: var(--cor); stroke: var(--ink); stroke-width: 3; }
.tv--waves .tvw-today { fill: var(--cor); font-weight: 700; font-size: 15px; letter-spacing: 0.1em; text-transform: uppercase; }
.tv--waves .tv-m .tvw-nm { font-size: 16px; }
.tv--waves .tv-m .tvw-era, .tv--waves .tv-m .tvw-today { font-size: 15px; }
.tv--waves .tv-m .tvw-n { font-size: 22px; }

/* plate, braid */
.tv--forces .tvb-u { stroke: var(--paper); stroke-width: 24; stroke-linecap: butt; }
.tv--forces .tvb-s { stroke-width: 1.4; stroke-linecap: butt; }
.tv--forces .tvb-m { stroke-width: 1.3; }
.tv--forces .tvb-tip { fill: var(--cor); stroke: none; }
.tv--forces .tvb-in { stroke: var(--hair); stroke-dasharray: 1 4; }
.tv-svg .tvb-v { font-family: var(--font-display); font-weight: 800; font-size: 30px; letter-spacing: -0.01em; }
.tv-svg .tvb-v1 { fill: var(--cob); }
.tv-svg .tvb-v2 { fill: var(--cor); }
.tv-svg .tvb-e { font-family: var(--font-display); font-weight: 800; font-size: 22px; }
.tv--forces .tv-m .tvb-v { font-size: 26px; }
.tv--forces .tv-m .tl { font-size: 15px; }

/* plate, arc */
.tv--arc .tva-h { stroke: var(--ink); stroke-width: 0.7; opacity: 0.5; }
.tv--arc .tva-base { stroke: var(--ink); stroke-width: 1.4; }
.tv--arc .tva-b { stroke: var(--ink); opacity: 0.5; stroke-dasharray: 2 5; }
.tv--arc .tva-curve { stroke: var(--cob); stroke-width: 3.2; }
.tv--arc .tva-next { stroke: var(--cor); stroke-width: 2.4; }
.tv-svg .tva-ph { font-family: var(--font-display); font-weight: 800; font-size: 46px; letter-spacing: -0.01em; fill: none; stroke: var(--ink); stroke-width: 1px; }
.tv-svg .tva-phm { font-family: var(--font-display); font-weight: 800; font-size: 17px; fill: var(--ink); }
.tv--arc .tv-m .tva-h { stroke-width: 0.6; }

/* plate, rings */
.tv--rings .tvr-r { stroke-width: 0.8; }
.tv--rings .tvr-past { stroke: var(--ink); }
.tv--rings .tvr-next { stroke: var(--cob); }
.tv--rings .tvr-future { stroke: var(--cor); stroke-dasharray: 3 5; }
.tv--rings .tvr-ax { stroke: var(--ink); stroke-width: 1.4; }
.tv--rings .tvr-core { fill: url(#tvdots); stroke: var(--ink); }
.tv--rings .tvr-tp { stroke: none; }
.tv-svg .tvr-l { font-family: var(--font-body); font-size: 14.5px; }
.tv-svg .tvr-ln { fill: var(--cob); font-weight: 600; }
.tv-svg .tvr-lp { fill: var(--ink); }
.tv-svg .tvr-seq { font-size: 12.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; paint-order: stroke; stroke: var(--paper); stroke-width: 5px; }
.tv-svg .tvr-rom { font-family: var(--font-display); font-size: 14px; }
.tv-svg .tvr-core-l { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; paint-order: stroke; stroke: var(--paper); stroke-width: 5px; }
.tv-svg .tvr-h { font-family: var(--font-display); font-weight: 800; font-size: 18px; }
.tv-svg .tvr-hs { font-size: 14px; fill: var(--muted); }
.tv--rings .tv-m .tvr-h { font-size: 16px; }
.tv--rings .tv-m .tvr-rom { font-size: 15px; }

/* plate, warehouse */
.tv--warehouse .tvx-m { stroke: var(--ink); stroke-width: 1.4; }
.tv--warehouse .tvx-fill { fill: url(#tvh45); }
.tv--warehouse .tvx-box { fill: var(--paper); }
.tv--warehouse .tvx-tote { stroke: var(--ink); stroke-width: 1; }
.tv--warehouse .tvx-rail { stroke-width: 2.4; }
.tv--warehouse .tvx-shuttle .tvx-fill { fill: url(#tvh45b); stroke: var(--cob); }
.tv--warehouse .tvx-sensor { fill: var(--cob); stroke: none; }
.tv--warehouse .tvx-cut { fill: url(#tvh45); stroke: var(--ink); stroke-width: 1.4; }
.tv--warehouse .tvx-slab { fill: url(#tvx); stroke: var(--ink); stroke-width: 1.4; }
.tv--warehouse .tvx-wall { stroke: var(--ink); stroke-width: 1.4; }
.tv--warehouse .tvx-truss { stroke: var(--ink); stroke-width: 0.8; opacity: 0.7; }
.tv--warehouse .tvx-gnd { stroke: var(--ink); stroke-width: 1.4; }
.tv--warehouse .tvx-ghost { stroke: var(--muted); stroke-dasharray: 3 4; stroke-width: 1.1; }
.tv--warehouse .tvx-link { stroke: var(--cob); stroke-width: 1.8; stroke-dasharray: 0.5 6; }
.tv-svg .tvx-gt { font-weight: 700; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; fill: var(--muted); }
.tv-svg .tvx-gn { font-family: var(--font-body); font-size: 16px; fill: var(--muted); }

/* plate, gravity well */
.tvg-stage { position: relative; }
.tvg-cv { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.tv--gravity .tvg-r { stroke: var(--sky2); stroke-width: 0.9; }
.tv--gravity .tvg-s { stroke: var(--sky2); stroke-width: 0.6; opacity: 0.28; }
.tv--gravity .tvg-sp { stroke: #fff; stroke-width: 2.4; }
.tv--gravity .tvg-ah { stroke: #fff; }
.tv--gravity .tvg-core { fill: var(--cor); stroke: var(--ink); stroke-width: 3; }
.tv--gravity .tvg-ld { stroke: var(--sky2); stroke-width: 1; }
.tv--gravity .tvg-lab { stroke: var(--ink); }
.tv-svg .tvg-tt { fill: #fff; font-weight: 700; font-size: 19px; letter-spacing: 0.04em; }
.tv-svg .tvg-nt { fill: var(--sky2); font-family: var(--font-body); font-size: 17px; }
.tvg-aside { position: absolute; left: 0; bottom: 0; max-width: 21rem; padding-left: 1rem; border-left: 2px solid var(--cor); }
.prose .tvg-ah { font-family: var(--font-label); font-weight: 700; font-size: 0.76rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--cor); }
.prose .tvg-aside ul { padding: 0; margin-top: 0.6rem; display: grid; gap: 0.45rem; }
.prose .tvg-aside li { color: #dfe8f6; font-size: 0.95rem; line-height: 1.4; }
.prose .tvg-aside li::before { background: var(--sky2); }
.tvg-aside ul { padding-left: 1.3em !important; }

/* motion. draw-on once in view, scroll scrub for the long waves */
.js .tv .tv-draw { stroke-dasharray: 1 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.4s cubic-bezier(0.45, 0, 0.2, 1) var(--dl, 0.1s); }
.js .tv.is-in .tv-draw { stroke-dashoffset: 0; }
.js .tv .tv-scrub { stroke-dasharray: 1 1; stroke-dashoffset: calc(1 - var(--tvp, 0)); }
.js .tv[data-tv-scrub] .tvw-c { opacity: clamp(0, calc((var(--tvp, 0) - var(--at)) * 9 + 0.05), 1); transition: opacity 0.4s ease; }
.js .tv[data-tv-scrub] .tvw-echo { opacity: clamp(0.15, calc(var(--tvp, 0) * 1.4), 1); }
@media (prefers-reduced-motion: reduce) {
  .js .tv .tv-draw, .js .tv .tv-scrub { stroke-dasharray: none; stroke-dashoffset: 0; transition: none; }
  .js .tv[data-tv-scrub] .tvw-c, .js .tv[data-tv-scrub] .tvw-echo { opacity: 1; }
}

/* scale. set pieces bleed beyond the reading column once script has measured it */
.js .prose .tv--full { width: var(--tv-cw, 100%); margin-left: calc(-1 * var(--tv-l, 0px)); z-index: 3; }
.js .prose .tv--full > .tv-in { padding-inline: max(var(--gutter), calc((var(--tv-cw, 100%) - 1440px) / 2)); }
@media (min-width: 1081px) {
  .js .prose .tv--wide { width: calc(var(--tv-cw, 100%) - var(--tv-l, 0px)); z-index: 2; }
  .js .prose .tv--wide > .tv-in { padding-right: max(var(--gutter), calc(var(--tv-cw, 100%) - var(--tv-l, 0px) - 1180px)); }
}
@media (max-width: 1080px) {
  .js .prose .tv { width: var(--tv-cw, 100%); margin-left: calc(-1 * var(--tv-l, 0px)); }
  .js .prose .tv > .tv-in { padding-inline: var(--gutter); }
}
@container (max-width: 640px) {
  .tv-d { display: none; }
  .tv-m { display: block; }
  .tv-key { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
  .tvg-aside { position: static; margin-top: 1.4rem; }
}
.tv--warehouse .tvx-frame { stroke: var(--ink); stroke-width: 1.6; }
.tv--warehouse .tvx-frame2 { stroke: var(--ink); stroke-width: 0.6; }
.prose .tv--wide .tv-t, .prose .tv--full .tv-t { max-width: 26ch; }
.tv--wide .tv-d .tv-pin text, .tv--full .tv-d .tv-pin text { font-size: 17px; }
.tv--wide .tv-d .tv-pin circle, .tv--full .tv-d .tv-pin circle { transform-box: fill-box; transform-origin: center; transform: scale(1.18); }
.tv-m .tv-pin text { font-size: 15px; }
/* plate, frontier */
.tv--frontier .tvf-land { fill: rgb(10 22 40 / 0.035); stroke: none; }
.tv--frontier .tvf-ct { stroke: var(--ink); stroke-width: 0.8; }
.tv--frontier .tvf-sea { stroke: var(--cob); stroke-width: 0.8; stroke-dasharray: 5 6; }
.tv--frontier .tvf-coast { stroke: var(--cob); stroke-width: 3; }
.tv--frontier .tvf-coast2 { stroke: var(--cob); stroke-width: 0.8; }
.tv--frontier .tvf-pt { fill: var(--cor); stroke: var(--paper); stroke-width: 2.5; }
.tv-svg .tvf-reg { font-family: var(--font-label); font-weight: 700; font-size: 17px; letter-spacing: 0.06em; fill: var(--ink); opacity: 0.75; }
.tv-svg .tvf-reg--sea { fill: var(--cob); }
.tv-svg .tvf-regm { font-size: 14px; }
.tv-svg .tvf-tt { font-weight: 700; font-size: 18px; }
.tv-svg .tvf-nt { font-family: var(--font-body); font-size: 17px; fill: #2b3445; }
.tv--frontier .tvf-cb { fill: var(--paper); stroke: var(--ink); stroke-width: 1.4; }
.tv--frontier .tvf-cb2 { stroke: var(--ink); stroke-width: 0.6; }
.tv-svg .tvf-ch { font-family: var(--font-display); font-weight: 800; font-size: 20px; }
.tv-svg .tvf-ci { font-family: var(--font-body); font-size: 16px; fill: #2b3445; }
.tv--frontier .tvf-bul { stroke: var(--cor); stroke-width: 1.6; }
.tv--frontier .tvf-comp circle, .tv--frontier .tvf-comp path { stroke: var(--ink); stroke-width: 0.8; }
.tv--frontier .tvf-comp .tv-chev path { stroke: none; }
.tvf-conds .tv-kn { border: 0; background: none; }
.tvf-conds .tv-kn .ff { --s: 14px; color: var(--cor); }
.prose .tvf-conds { margin-top: 1.2rem; }

/* plate, machine economy */
.tv--m2m .tvm-loop { stroke: var(--cob); stroke-width: 2.2; }
.tv--m2m .tvm-loop2 { stroke: var(--cob); stroke-width: 9; opacity: 0.08; }
.tv--m2m .tvm-mach, .tv--m2m .tvm-ico { stroke: var(--ink); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.tv--m2m .tvm-led { fill: var(--cor); stroke: none; }
.tv--m2m .tvm-dot--a { fill: var(--cob); stroke: var(--paper); stroke-width: 2; }
.tv--m2m .tvm-dot--b { fill: var(--cor); stroke: var(--paper); stroke-width: 2; }
.tv-svg .tvm-tt { font-weight: 700; font-size: 15px; letter-spacing: 0.08em; text-transform: uppercase; }
.tv-svg .tvm-nt { font-family: var(--font-body); font-size: 15px; fill: #2b3445; }
.tv-svg .tvm-who { font-size: 14px; fill: var(--muted); letter-spacing: 0.04em; }
.tv--m2m .tv-m .tvm-tt { font-size: 15.5px; }
.tv--m2m .tv-m .tvm-who { font-size: 15px; }
@media (prefers-reduced-motion: reduce) { .tv--m2m .tvm-dot { display: none; } }

/* plate, simulation (small, text beside the drawing) */
@container (min-width: 641px) {
  .tv--small > .tv-in { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); grid-template-rows: auto 1fr; column-gap: 2rem; }
  .tv--small .tv-head { grid-column: 1; grid-row: 1; }
  .tv--small .tv-art { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .tv--small .tv-cap { grid-column: 1; grid-row: 2; align-self: end; margin-top: 0; }
  .prose .tv--small .tv-t { font-size: clamp(1.3rem, 1rem + 1vw, 1.7rem); }
}
.tv--sim .tvs-row { stroke: var(--ink); stroke-width: 0.7; opacity: 0.7; }
.tv--sim .tvs-col { stroke: var(--ink); stroke-width: 0.5; opacity: 0.45; }
.tv--sim .tvs-fp { stroke: var(--cob); stroke-width: 1.8; stroke-dasharray: 1 6; }
.tv--sim .tvs-gp { stroke: var(--cor); stroke-width: 2; stroke-dasharray: 1 6; }
.tv--sim .tvs-ico, .tv--sim .tvs-bot { stroke: var(--ink); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.tv--sim .tvs-botb { fill: var(--paper); }
.tv--sim .tvs-eye { fill: var(--cor); stroke: none; }
.tv-svg .tvs-tt { font-weight: 700; font-size: 19px; letter-spacing: 0.02em; }

/* plate, transit map */
.tv--transit .tvt-line { stroke-width: 9; stroke-linecap: round; }
.tv--transit .tvt-l0 { stroke: var(--ink); }
.tv--transit .tvt-l1 { stroke: var(--cob); }
.tv--transit .tvt-l2 { stroke: var(--cob); }
.tv--transit .tvt-l2i { stroke: var(--paper); stroke-width: 4; }
.tv--transit .tvt-team { stroke: var(--cor); stroke-width: 5; }
.tv--transit .tvt-tick { stroke: var(--ink); stroke-width: 3; stroke-linecap: butt; }
.tv-svg .tvt-st { font-size: 17px; font-weight: 500; }
.tv-svg .tvt-st--team { fill: #b63a1f; }
.tv--transit .tvt-rd circle { stroke: none; }
.tv--transit .tvt-rd.tvt-l0 circle { fill: var(--ink); }
.tv--transit .tvt-rd.tvt-l1 circle, .tv--transit .tvt-rd.tvt-l2 circle { fill: var(--cob); }
.tv-svg .tvt-rd text { fill: #fff; font-family: var(--font-display); font-weight: 800; font-size: 15px; }
.tv--transit .tvt-gate circle { fill: var(--paper); stroke: var(--ink); stroke-width: 3; }
.tv--transit .tvt-gate circle + circle { fill: var(--ink); stroke: none; }
.tv--transit .tvt-ts { fill: var(--paper); stroke: var(--cor); stroke-width: 3; }
.tv-svg .tvt-lgt { font-size: 17px; font-weight: 600; }
.tv-svg .tvt-mh { font-family: var(--font-display); font-weight: 800; font-size: 17px; }
.tv-svg .tvt-ms { font-size: 15.5px; }
.tv-svg .tvt-ms--team { fill: #b63a1f; font-weight: 600; }
.tv--transit .tv-m .tvt-line { stroke-width: 8; }

/* plate, commons */
.tv--commons .tvc-gnd { stroke: var(--ink); stroke-width: 2; }
.tv--commons .tvc-soil { fill: url(#tvh135); stroke: none; }
.tv--commons .tvc-band { stroke: none; }
.tv--commons .tvc-band0, .tv--commons .tvc-band2 { fill: rgb(10 22 40 / 0.035); }
.tv--commons .tvc-bl { stroke: var(--ink); stroke-width: 0.6; stroke-dasharray: 2 5; }
.tv--commons .tvc-pipe { stroke: var(--ink); stroke-width: 1.6; }
.tv--commons .tvc-j { stroke: var(--ink); stroke-width: 3; }
.tv--commons .tvc-tray { stroke: var(--cob); stroke-width: 1.2; stroke-dasharray: 10 5; }
.tv--commons .tvc-mesh { stroke: var(--cob); stroke-width: 0.9; }
.tv--commons .tvc-node { fill: var(--cob); stroke: none; }
.tv--commons .tvc-root { stroke: var(--ink); stroke-width: 1; }
.tv--commons .tvc-riser { stroke: var(--ink); stroke-width: 1.4; }
.tv--commons .tvc-tap { fill: var(--cor); stroke: var(--paper); stroke-width: 2; }
.tv--commons .tvc-bg { stroke: var(--ink); stroke-width: 1.4; }
.tv--commons .tvc-b { fill: var(--paper); }
.tv--commons .tvc-h { fill: url(#tvh45); }
.tv--commons .tvc-g { stroke-width: 0.7; }
.tv--commons .tvc-bg .tv-ico { stroke: var(--ink); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.tv--commons .tvc-lbg { fill: var(--paper); stroke: none; }
.tv-svg .tvc-tt { font-family: var(--font-display); font-weight: 800; font-size: 19px; }
.tv-svg .tvc-nt { font-family: var(--font-body); font-size: 16px; fill: #2b3445; }
.tv-svg .tvc-h1 { font-family: var(--font-display); font-weight: 800; font-size: 22px; }
.tv-svg .tvc-h2 { font-family: var(--font-body); font-size: 17px; fill: var(--slate); }

/* plate, clocks */
.tv--clocks .tvk-after { fill: url(#tvh45b); stroke: none; opacity: 0.55; }
.tv--clocks .tvk-base { stroke: var(--ink); stroke-width: 1.4; }
.tv--clocks .tvk-curve { stroke: var(--ink); stroke-width: 3; }
.tv--clocks .tvk-rev { stroke: var(--cob); stroke-width: 2.2; stroke-dasharray: 1 6; }
.tv--clocks .tvk-fund { stroke: var(--ink); stroke-width: 1.4; }
.tv--clocks .tvk-exit { stroke: var(--cor); stroke-width: 1.4; stroke-dasharray: 3 4; }
.tv--clocks .tvk-ex { fill: var(--cor); stroke: var(--paper); stroke-width: 2.5; }
.tv-svg .tvk-tt { font-weight: 700; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; }
.tv-svg .tvk-tt--hot { fill: var(--cor); }
.tv-svg .tvk-tt--blue { fill: var(--cob); }
.tv-svg .tvk-nt { font-family: var(--font-body); font-size: 15.5px; fill: #2b3445; }
.tv--clocks .tv-m .tvk-tt { font-size: 15px; }

/* plate, Safer */
.tvs-lg { display: flex; flex-wrap: wrap; gap: 0.6rem 1.4rem; font-family: var(--font-label); font-size: 0.8rem; font-weight: 600; color: #c9d6ea; margin-bottom: 1.4rem; }
.tvs-lg span { display: inline-flex; align-items: center; gap: 0.5rem; }
.tvs-sw { display: inline-block; width: 1rem; height: 0.8rem; }
.tvs-sw--rep { background: repeating-linear-gradient(45deg, var(--sky2) 0 1.5px, transparent 1.5px 5px); outline: 1.4px solid var(--sky2); }
.tvs-sw--eq { background: var(--cor); }
.tvs-sw--cash { outline: 1.4px solid #fff; background: repeating-linear-gradient(0deg, rgb(255 255 255 / 0.5) 0 1px, transparent 1px 4px); }
.tvs-sw--t { height: 0; border-top: 2px dashed var(--cor); width: 1.4rem; }
.tvs-frames { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.tvs-f { transition: opacity 300ms ease; }
.tvs-f .tv-svg { stroke: #fff; }
.tvs-ghost { stroke: rgb(141 184 255 / 0.55); stroke-dasharray: 3 4; }
.tvs-rep { fill: url(#tvh45w); stroke: var(--sky2); stroke-width: 1.4; }
.tvs-eq { fill: var(--cor); stroke: none; }
.tvs-cbase, .tvs-floor { stroke: rgb(141 184 255 / 0.5); }
.tvs-cash { fill: rgb(255 255 255 / 0.08); stroke: #fff; stroke-width: 1.4; }
.tvs-target { stroke: var(--cor); stroke-width: 2; stroke-dasharray: 4 3; }
.tvs-wait { stroke: var(--sky2); stroke-width: 1.4; }
.tvs-conv { stroke: var(--cor); stroke-width: 2; }
.prose .tvs-fl { display: flex; align-items: baseline; gap: 0.5rem; margin-top: 0.6rem; font-family: var(--font-label); font-weight: 700; font-size: 0.9rem; color: #fff; }
.tvs-n { font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; color: var(--cor); }
.prose .tvs-fn { margin-top: 0.3rem; font-size: 0.86rem; line-height: 1.4; color: #a9bad3; }
.tvs-track { display: grid; grid-template-columns: 1fr 1fr 3fr 1fr; gap: 1rem; margin-top: 1rem; font-family: var(--font-label); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sky2); }
.tvs-tk { border-top: 2px solid var(--sky2); padding-top: 0.5rem; }
.tvs-tk3 { border-top: 2px dotted var(--sky2); }
.tvs-tk4 { border-top-color: var(--cor); color: var(--cor); }
.tvs-ctl, .tvs-read { display: none; }
.js .tvs-ctl { display: grid; gap: 0.6rem; margin-top: 1.8rem; max-width: 34rem; }
.js .tvs-read { display: block; margin-top: 1rem; min-height: 7.5rem; max-width: 46rem; }
.tvs-ctl label { font-family: var(--font-label); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--sky2); }
.tvs-ctl input[type="range"] { width: 100%; accent-color: var(--cor); height: 44px; cursor: pointer; }
.tvs-ctl input[type="range"]:focus-visible { outline: 3px solid var(--cor); outline-offset: 4px; }
.prose .tvs-read p { color: #dfe8f6; font-size: 0.95rem; }
.prose .tvs-read p + p { margin-top: 0.35rem; }
.prose .tvs-read .tvs-rn { font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; color: #fff; margin-bottom: 0.4rem; }
.prose .tvs-read strong { color: var(--cor); font-family: var(--font-label); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase; margin-right: 0.45rem; }
.js .tv--safer[data-step="1"] .tvs-f:not([data-i="1"]), .js .tv--safer[data-step="2"] .tvs-f:not([data-i="2"]), .js .tv--safer[data-step="3"] .tvs-f:not([data-i="3"]),
.js .tv--safer[data-step="4"] .tvs-f:not([data-i="4"]), .js .tv--safer[data-step="5"] .tvs-f:not([data-i="5"]), .js .tv--safer[data-step="6"] .tvs-f:not([data-i="6"]) { opacity: 0.38; }
.tv--safer .tv-cap a { color: #fff; }
.prose .tv-cap a { display: inline; }
@container (max-width: 760px) { .tvs-frames { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 1.6rem; } .tvs-track { display: none; } }
@container (max-width: 460px) { .tvs-frames { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* plate, alignment */
.tv--align .tvl-p { stroke: none; }
.tv--align .tvl-p0 { fill: var(--ink); }
.tv--align .tvl-p1 { fill: var(--cob); }
.tv--align .tvl-p2 { fill: #197dff; }
.tv--align .tvl-tri { fill: var(--cor); stroke: none; }
.tv-svg .tvl-tt { font-family: var(--font-display); font-weight: 800; font-size: 21px; }
.tv-svg .tvl-nt { font-family: var(--font-body); font-size: 15.5px; fill: #2b3445; }
.tv-svg .tvl-e { font-family: var(--font-display); font-weight: 800; font-size: 19px; fill: var(--cor); }

/* plate, strata */
.tv--strata .tvq-l { stroke: none; opacity: 0.7; }
.tv--strata .tvq-bd { stroke: var(--ink); stroke-width: 1.2; }
.tv--strata .tvq-ico, .tv--strata .tvq-arm { stroke: var(--ink); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.tv--strata .tvq-bore { stroke: var(--ink); stroke-width: 1.4; }
.tv--strata .tvq-core { fill: var(--paper); stroke: none; opacity: 0.85; }
.tv--strata .tvq-br { stroke: var(--cob); stroke-width: 1.4; }
.tv-svg .tvq-tt { font-family: var(--font-display); font-weight: 800; font-size: 19px; }
.tv-svg .tvq-tt--s { fill: var(--muted); }
.tv-svg .tvq-nt { font-family: var(--font-body); font-size: 16.5px; fill: #2b3445; }
.tv-svg .tvq-grp { font-weight: 700; font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; fill: var(--cob); }

/* plate, city small multiples */
.tvc2-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 3cqi, 2rem); }
.prose .tvc2-t { font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; color: var(--ink); }
.prose .tvc2-t--edge { color: var(--cob); }
.prose .tvc2-s { font-size: 0.9rem; line-height: 1.4; color: var(--slate); margin-top: 0.25rem; min-height: 2.6em; }
.tvc2-svg { margin-top: 0.4rem; }
.tvc2-blk { fill: url(#tvh45); stroke: var(--ink); stroke-width: 1; opacity: 0.55; }
.tvc2-up { stroke: var(--ink); stroke-width: 1; opacity: 0.8; }
.tvc2-cloud { stroke: var(--ink); stroke-width: 1.4; fill: var(--paper); }
.tvc2-hop { stroke: var(--cob); stroke-width: 2; }
.tvc2-mesh { stroke: var(--cob); stroke-width: 1; stroke-dasharray: 3 4; }
.tvc2-v2v { stroke: var(--cor); stroke-width: 1.4; stroke-dasharray: 1 4; }
.tvc2-node { fill: var(--paper); stroke: var(--cob); stroke-width: 2; }
.tvc2-nd { fill: var(--cob); stroke: none; }
.tvc2-car path { fill: var(--cor); }
@container (max-width: 520px) { .tvc2-pair { grid-template-columns: 1fr; } }

/* plate, power */
.tv--power .tvp-earth { fill: url(#tvh135); stroke: none; opacity: 0.6; }
.tv--power .tvp-gl { stroke: var(--ink); stroke-width: 1.8; }
.tv--power .tvp-sun circle { stroke: var(--cor); stroke-width: 1; }
.tv--power .tvp-sun circle:first-child { fill: rgb(255 91 58 / 0.12); stroke-width: 1.6; }
.tv--power .tvp-m { stroke: var(--ink); stroke-width: 1.4; }
.tv--power .tvp-panel { fill: url(#tvh45b); }
.tv--power .tvp-cont, .tv--power .tvp-sub, .tv--power .tvp-cab { fill: var(--paper); }
.tv--power .tvp-wire { stroke: var(--ink); stroke-width: 1; }
.tv--power .tvp-led { fill: var(--cor); stroke: none; }
.tv--power .tvp-ico { stroke: var(--ink); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.tv--power .tvp-flow { stroke: var(--cob); stroke-width: 2.6; }
.tv--power .tvp-ah { stroke: var(--cob); }

/* plate, threads */
.tv--threads .tvh-u { stroke: var(--paper); stroke-width: 14; }
.tv--threads .tvh-t { stroke: var(--ink); stroke-width: 5; }
.tv--threads .tvh-core { stroke: var(--paper); stroke-width: 1.6; }
.tv--threads .tvh-ai { stroke: var(--cob); stroke-width: 6; }
.tv--threads .tvh-k circle { stroke: var(--cor); stroke-width: 1.6; }
.tv--threads .tvh-k circle + circle { stroke-width: 0.8; stroke-dasharray: 2 4; }
.tv-svg .tvh-dl { font-weight: 700; font-size: 18px; }
.tv-svg .tvh-dl--ai { fill: var(--cob); }
.tv-svg .tvh-dlm { font-size: 15px; }
.tv-svg .tvh-kt { font-family: var(--font-display); font-weight: 800; font-size: 19px; }
.tv-svg .tvh-ks { font-family: var(--font-body); font-size: 16px; fill: #2b3445; }
.tv--threads .tv-m .tvh-kt { font-size: 15.5px; }

/* closing quote */
.tv--quote > .tv-in { position: relative; overflow: hidden; min-height: clamp(22rem, 40vw, 34rem); display: grid; align-items: center; }
.tvq2-bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.tv--quote .tvq2-e { stroke: var(--cor); stroke-width: 1.1; }
.tvq2-q { position: relative; max-width: 40rem; display: grid; gap: 1rem; }
.prose .tvq2-l1 { font-family: var(--font-display); font-weight: 800; font-stretch: 92%; font-size: clamp(1.9rem, 1rem + 3.4vw, 3.9rem); line-height: 1.02; letter-spacing: -0.025em; color: #fff; text-wrap: balance; }
.prose .tvq2-l2 { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.4rem, 0.9rem + 2vw, 2.4rem); color: var(--cor); }
.tv-svg .tvf-reg { text-transform: uppercase; letter-spacing: 0.32em; }
.tv-m .tv-pin text { font-size: 16px; }
.tv-svg.tv-m .tvf-regm, .tv-m .tvf-regm { font-size: 16px; letter-spacing: 0.2em; }
.tv-m .tvm-who { font-size: 16px; }
.tv-m .tvh-dl, .tv-m .tvh-dlm { font-size: 16px; }
.tv-svg .tvt-rd text { font-size: 17px; }
.tv--rings .tv-m .tvr-rom { font-size: 16.5px; }
.tv-svg .tvq-grp { font-size: 16px; }
.tv-svg .tvx-gt { font-size: 16px; }
.tv-m .tvm-who { font-size: 17px; }
.tv--m2m .tv-m .tvm-who { font-size: 16.5px; }
@media (min-width: 1081px) and (max-width: 1399px) {
  .js .prose .tv--wide { width: var(--tv-cw, 100%); margin-left: calc(-1 * var(--tv-l, 0px)); z-index: 3; }
  .js .prose .tv--wide > .tv-in { padding-inline: var(--gutter); }
}
.tv--waves .tv-m .tvw-era, .tv--waves .tv-m .tvw-today { font-size: 16px; }
.tv--forces .tv-m .tl { font-size: 16px; }
.tv--clocks .tv-m .tvk-tt { font-size: 16px; }
@container (max-width: 640px) { .tv--sim .tvs-tt { font-size: 21px; } }
.tv--forces .tv-key li { grid-template-columns: 4.4rem 1fr; }
.tv--forces .tv-kn { width: auto; justify-self: start; padding: 0 0.55rem; border-radius: 999px; }

/* Round 18 contact intake */
.phero--short .phero-grid { padding-block: clamp(2.25rem, 4.5vw, 4rem); grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr); }
.phero--short h1 { margin-top: var(--space-4); }
.phero--short .lede { margin-top: var(--space-5); max-width: 34ch; }
.chev-frame--contact { width: 100%; max-width: 540px; justify-self: end; }
.chev-frame--contact img { aspect-ratio: 16 / 9; object-position: 46% 42%; }
.chev-frame--contact .speed { left: -6%; top: -12%; width: 26%; }
@media (max-width: 960px) { .chev-frame--contact { justify-self: start; max-width: 460px; } }
@media (max-width: 640px) { .phero--short .phero-grid { gap: 1.75rem; padding-block: 2rem 2.5rem; } .chev-frame--contact { max-width: none; width: 80%; } }

.section--intake { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.intake { display: grid; grid-template-columns: minmax(0, 0.62fr) minmax(0, 1.38fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.intake-aside { position: sticky; top: 7rem; color: var(--slate); max-width: 30ch; }
.intake-aside h2 { color: var(--navy); }
.intake-mail { font-size: var(--text-sm); }
@media (max-width: 960px) { .intake { grid-template-columns: 1fr; gap: 1.75rem; } .intake-aside { position: static; max-width: 46ch; } }

.intake-form { position: relative; display: grid; gap: 0; }
.intake-body { display: grid; gap: 1.15rem; }
.intake-body[hidden] { display: none; }
.intake-form .field { margin-top: 0; gap: 0.35rem; }
.intake-form .field input, .intake-form .field textarea { min-height: 48px; padding: 0.7rem 0.9rem; }
.intake-form .field textarea { min-height: 112px; }
.field-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 560px) { .field-pair { grid-template-columns: 1fr; gap: 1.15rem; } }
.flabel { font-family: var(--font-label); font-weight: 700; color: var(--navy); font-size: var(--text-sm); }
.intake-form .muted { color: var(--muted); font-weight: 500; }

.reasons { border: 0; margin: 0; padding: 0; min-width: 0; }
.reasons legend { font-family: var(--font-label); font-weight: 700; color: var(--navy); font-size: var(--text-sm); margin-bottom: 0.55rem; padding: 0; }
.rs-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
@media (max-width: 560px) { .rs-grid { grid-template-columns: 1fr; } }
.rs-opt { position: relative; }
.rs-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.rs-opt label { position: relative; display: grid; gap: 0.1rem; min-height: 100%; padding: 0.65rem 0.9rem 0.7rem 2.6rem; background: var(--ice); border: 2px solid transparent; cursor: pointer; transition: background-color var(--fast), border-color var(--fast); }
.rs-opt label::before { content: ''; position: absolute; left: 0.9rem; top: 0.85rem; width: 1rem; height: 1rem; border-radius: 50%; border: 2px solid #8fa6cf; background: var(--white); transition: border-color var(--fast), box-shadow var(--fast); }
.rs-opt strong { font-family: var(--font-label); font-weight: 700; color: var(--navy); font-size: 0.95rem; line-height: 1.3; }
.rs-opt label span { font-size: var(--text-xs); line-height: 1.4; color: var(--muted); }
.rs-opt label:hover { border-color: #b9cdf2; }
.rs-opt input:checked + label { background: var(--white); border-color: var(--blue); }
.rs-opt input:checked + label::before { border-color: var(--blue); box-shadow: inset 0 0 0 3px var(--white); background: var(--blue); }
.rs-opt input:focus-visible + label { outline: 3px solid var(--coral); outline-offset: 2px; }
.reasons.is-invalid .rs-opt label { border-color: #f1b8b0; }

.drop { position: relative; display: flex; align-items: center; gap: 0.9rem; flex-wrap: wrap; padding: 0.55rem; border: 2px dashed var(--line); background: var(--white); }
.drop input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.drop-btn { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.55rem 0.9rem; background: var(--ice); font-family: var(--font-label); font-weight: 700; font-size: var(--text-sm); color: var(--navy); }
.drop-btn .ff { --s: 14px; color: var(--blue); }
.drop-list { font-size: var(--text-sm); color: var(--muted); min-width: 0; overflow-wrap: anywhere; }
.drop:focus-within { border-color: var(--blue); border-style: solid; outline: 3px solid var(--coral); outline-offset: 2px; }
.drop:has(input[aria-invalid='true']) { border-color: #c4281c; }

.hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.intake-submit { display: flex; align-items: center; gap: 1rem 1.25rem; flex-wrap: wrap; margin-top: 0.25rem; }
.intake-submit .help { font-size: var(--text-xs); color: var(--muted); margin: 0; }
.intake-submit .btn[disabled] { opacity: 0.75; cursor: progress; }

.intake-status:empty { display: none; }
.intake-status { margin-top: 1rem; outline: none; }
.intake-status:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.ist { font-size: var(--text-sm); color: var(--navy); }
.ist p + p { margin-top: 0.5rem; }
.ist-h { display: flex; align-items: center; gap: 0.6rem; font-family: var(--font-display); font-weight: 800; font-size: var(--text-lg); line-height: 1.15; }
.ist-h svg { width: 1.6rem; height: 1.6rem; flex: none; color: var(--white); background: var(--blue); border-radius: 50%; padding: 0.2rem; }
.ist--ok, .ist--mail { padding: 1.25rem 1.4rem; background: var(--ice); border-left: 6px solid var(--blue); }
.form[data-state='success'] .intake-status, .intake-form[data-state='success'] .intake-status { margin-top: 0; }
.ist--ok { padding: clamp(1.5rem, 3vw, 2.25rem); }
.ist--ok .ist-h { font-size: var(--text-xl); }
.ist--err { padding: 1.25rem 1.4rem; background: #fff3f1; border-left: 6px solid var(--coral); }
.ist--err .ist-h { color: #9c2a14; }
.ist--invalid { color: #b42318; font-weight: 600; }
.ist--sending { display: flex; align-items: center; gap: 0.6rem; color: var(--slate); }
.ist-dot { width: 0.9rem; height: 0.9rem; border-radius: 50%; border: 2px solid var(--blue); border-right-color: transparent; animation: ist-spin 0.8s linear infinite; }
@keyframes ist-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ist-dot { animation: none; border-right-color: var(--blue); opacity: 0.6; } }
.btn--sm { padding-block: 0.55rem; font-size: var(--text-sm); color: var(--navy); }

.section--follow { padding-block: clamp(2rem, 4vw, 3rem); background: var(--ice); }
.follow-h { font-family: var(--font-label); font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; font-size: var(--text-xs); color: var(--blue); }
.follow { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 2rem; }
.follow li { display: grid; gap: 0.25rem; }
.follow li > span { font-size: var(--text-sm); color: var(--muted); }
@media (max-width: 760px) { .follow { grid-template-columns: 1fr; } }
.rs-opt label { align-content: start; }
@media (max-width: 960px) { .phero--short .phero-grid { grid-template-columns: 1fr; } }

/* Round 19 live intake. drop zone, file list, upload progress */
.field--files { gap: 0.4rem; }
.field--files .help { font-size: var(--text-xs); color: var(--muted); line-height: 1.45; }
.dz { position: relative; display: grid; justify-items: center; gap: 0.35rem; padding: 1.15rem 1rem 1.05rem; border: 2px dashed #b9c8de; background: var(--white); text-align: center; transition: border-color var(--fast), background-color var(--fast); }
.dz.has-files { padding-block: 0.8rem 0.75rem; }
.dz.is-over { border-color: var(--blue); border-style: solid; background: var(--ice); }
.dz:focus-within { border-color: var(--blue); }
.dz-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.dz-ico { width: 30px; height: 30px; color: var(--blue); }
.dz.has-files .dz-ico { display: none; }
.dz-t { margin: 0; font-size: var(--text-sm); color: var(--slate); }
.dz-btn { font: inherit; font-family: var(--font-label); font-weight: 700; color: var(--blue); background: none; border: 0; padding: 0.35rem 0.1rem; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; cursor: pointer; }
.dz-btn:hover { color: var(--navy); }
.dz-btn[aria-invalid='true'] { color: #b42318; }
.dz-btn[disabled] { color: var(--muted); cursor: default; }
.dz-hint { margin: 0; font-size: var(--text-xs); color: var(--muted); }
@media (hover: none), (pointer: coarse) { .dz-drag { display: none; } .dz-btn { text-transform: none; } }
.flist { list-style: none; margin: 0.35rem 0 0; padding: 0; display: grid; gap: 0.35rem; }
.flist[hidden] { display: none; }
.fi { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; grid-template-areas: 'i n s x' 'p p p p'; align-items: center; column-gap: 0.65rem; row-gap: 0.4rem; padding: 0.5rem 0.4rem 0.5rem 0.75rem; background: var(--ice); }
.fi-ico { grid-area: i; width: 18px; height: 18px; color: var(--blue); }
.fi-n { grid-area: n; font-size: var(--text-sm); font-weight: 600; color: var(--navy); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fi-s { grid-area: s; font-size: var(--text-xs); color: var(--muted); font-variant-numeric: tabular-nums; }
.fi-x { grid-area: x; display: grid; place-items: center; width: 40px; height: 40px; border: 0; background: none; color: var(--slate); cursor: pointer; }
.fi-x svg { width: 16px; height: 16px; }
.fi-x:hover { color: var(--coral); }
.fi-x[disabled] { opacity: 0.35; cursor: default; }
.fi-p { grid-area: p; display: block; height: 4px; background: #c9d8f1; overflow: hidden; margin-right: 0.35rem; }
.fi-p[hidden] { display: none; }
.fi-p > span { display: block; height: 100%; background: var(--blue); transition: width 0.2s linear; }
.fi--done .fi-p > span { background: #1f8a4c; }
.fi--done .fi-ico { color: #1f8a4c; }
.fi--fail { background: #fff3f1; }
.fi--fail .fi-p > span { background: var(--coral); }
.intake-progress { display: grid; gap: 0.4rem; }
.intake-progress[hidden] { display: none; }
.ip-bar { height: 6px; background: var(--ice); overflow: hidden; }
.ip-bar > span { display: block; height: 100%; width: 0; background: var(--blue); transition: width 0.2s linear; }
.ip-t { margin: 0; font-size: var(--text-xs); color: var(--slate); }
.intake-notice { margin: 0 0 1rem; padding: 0.7rem 0.9rem; font-size: var(--text-sm); color: var(--slate); background: #fff8e8; border-left: 4px solid #e0a43a; }
.intake-notice[hidden] { display: none; }
.ist-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; }
.ist-alt { font-size: var(--text-xs); color: var(--slate); }
.intake-form.is-busy .rs-opt label { cursor: default; opacity: 0.7; }
@media (prefers-reduced-motion: reduce) { .fi-p > span, .ip-bar > span { transition: none; } }

/* Ghost brand settings. Custom fonts chosen in Design override the theme fonts */
:root { --font-display: var(--gh-font-heading, 'Archivo', 'Arial Black', sans-serif); --font-body: var(--gh-font-body, 'Inter', 'Helvetica Neue', Arial, sans-serif); }
/* ---------------------------------------------------------------- Ghost additions */
/* editor cards. Ghost requires the width classes. HTML cards render raw, so they need no styles. */
.kg-width-wide { position: relative; width: min(100vw - 2.5rem, 1100px); max-width: none; margin-inline: calc(50% - min(100vw - 2.5rem, 1100px) / 2); }
.kg-width-full { position: relative; width: 100vw; max-width: none; margin-inline: calc(50% - 50vw); }
.kg-width-full img, .kg-width-wide img { width: 100%; }
.prose .kg-card { margin-block: 1.6em; }
.prose .kg-image-card img { display: block; height: auto; max-width: 100%; margin-inline: auto; }
.prose .kg-card figcaption { margin-top: .6rem; font-size: var(--text-sm, .875rem); color: var(--muted, #5b6573); text-align: center; }
.prose .kg-embed-card { display: flex; flex-direction: column; align-items: center; }
.prose .kg-embed-card iframe { max-width: 100%; }
.prose blockquote:not(:has(p)) { white-space: normal; }
/* HTML cards that carry whole page sections sit directly in main, so the Ghost wrapper adds nothing */
main > .kg-card, main > .kg-html-card { margin: 0; }
/* the thesis plates load into their slots */
.tv-slot:empty { min-height: 16rem; }
.tv-slot:empty::after { content: ""; display: block; height: 16rem; border-radius: 4px; background: linear-gradient(90deg, rgba(3, 93, 255, .05), rgba(3, 93, 255, .1), rgba(3, 93, 255, .05)); }
@media (prefers-reduced-motion: no-preference) { .tv-slot:empty::after { animation: nw-pulse 1.6s ease-in-out infinite; } }
@keyframes nw-pulse { 50% { opacity: .5; } }
/* slot fills wait for nw-ghost.js. Without JavaScript they still show, at the end of main */
.js .nw-fill { display: none; }
/* members signup form */
.nw-sub { display: grid; gap: .65rem; max-width: 34rem; }
.nw-sub-row { display: flex; flex-wrap: wrap; gap: .6rem; }
.nw-sub-input { flex: 1 1 15rem; min-height: 3rem; padding: .75rem 1rem; border-radius: 999px; border: 1.5px solid currentColor; background: transparent; color: inherit; font: inherit; }
.nw-sub--dark .nw-sub-input { border-color: rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .06); color: #fff; }
.nw-sub--dark .nw-sub-input::placeholder { color: rgba(255, 255, 255, .7); }
.nw-sub--light .nw-sub-input { border-color: var(--line, #c9d3e3); background: #fff; color: var(--ink, #0b1a33); }
.nw-sub-input:focus-visible { outline: 3px solid var(--focus, #ffbf47); outline-offset: 2px; }
.nw-sub-btn { flex: 0 0 auto; }
.nw-sub-busy, .nw-sub-ok, .nw-sub-err:empty { display: none; }
.nw-sub-note, .nw-sub-ok, .nw-sub-err { margin: 0; font-size: .9rem; opacity: .9; }
.nw-sub.loading .nw-sub-label { display: none; }
.nw-sub.loading .nw-sub-busy { display: inline; }
.nw-sub.success .nw-sub-row, .nw-sub.success .nw-sub-note { display: none; }
.nw-sub.success .nw-sub-ok { display: block; font-weight: 600; }
.nw-sub.error .nw-sub-err { display: block; }
.f-sub-follow { margin-top: 1rem; }
/* related research. same topic first, padded with other research, three cards */
.pcards--related > .pcard:nth-child(n+4) { display: none; }
/* legal pages */
.legal-body { max-width: 46rem; }
