/* 1AP — 1st Avenue Power
   Values taken directly from the approved Figma frames (1440 desktop).
   Fonts DM Sans 300/400/500 + DM Mono 500. One accent. One soft corner (top-right). */

:root {
  --paper: #F5F6F4; --white: #FFFFFF; --ink: #0F151B; --black: #000000;
  --grey: #6E7278;            /* body text on light */
  --line: #C9CAC6;            /* rules, input borders */
  --grey-card: #D9DAD6;       /* image placeholders */
  --facet-a: #E4E4E1; --facet-b: #D6D7D3;
  --blue: #001CFF; --bp-tint: #E3E7FF; --bp-line: #B9C2FF;

  --font-sans: 'DM Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-mono: 'DM Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  --r: 20px;                  /* the corner */
  --pad-x: clamp(24px, 5.555vw, 80px);
  --pad-y: clamp(64px, 8.333vw, 120px);
  --max: 1440px;
  --ease-out: cubic-bezier(.2, .7, .2, 1); --ease-snap: cubic-bezier(.16, 1, .3, 1); --ease-draw: cubic-bezier(.4, 0, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; background: var(--ink); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: clip; }
img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
::selection { background: var(--blue); color: #fff; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--ink); color: #fff; padding: 10px 14px; font-family: var(--font-mono); font-size: 12px; }
.skip:focus { top: 16px; }
[hidden] { display: none !important; }

/* ---------- type (Figma text styles) ---------- */
.t-display { font-size: clamp(38px, 3.9vw, 56px); line-height: 1.06; letter-spacing: -0.02em; font-weight: 300; }
.t-heading { font-size: clamp(30px, 3.05vw, 44px); line-height: 1.12; letter-spacing: -0.015em; font-weight: 300; }   /* H1 */
.t-h2 { font-size: clamp(26px, 2.36vw, 34px); line-height: 1.16; letter-spacing: -0.01em; font-weight: 300; }
.t-h3 { font-size: 22px; line-height: 1.3; letter-spacing: -0.005em; font-weight: 400; }
.t-stat { font-size: clamp(28px, 2.36vw, 34px); line-height: 1.05; letter-spacing: -0.01em; font-weight: 300; color: var(--blue); }
.t-body-l { font-size: 20px; line-height: 1.45; color: var(--grey); }
.t-body { font-size: 16px; line-height: 1.5; color: var(--grey); }
.t-small { font-size: 14px; line-height: 1.5; color: var(--grey); }
.label, .t-mono { font-family: var(--font-mono); font-size: 11px; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--blue); }
.label--grey { color: var(--grey); }
.t-annot { font-family: var(--font-mono); font-size: 11px; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--blue); }
.t-ui { font-size: 15px; line-height: 18px; font-weight: 500; }
.h-pair .lead { color: var(--blue); display: block; }
.h-pair .rest { color: var(--ink); display: block; }
.t-sub { font-size: 22px; line-height: 1.3; letter-spacing: -0.005em; font-weight: 400; }

/* ---------- layout ---------- */
.wrap { max-width: var(--max); margin-inline: auto; padding-inline: var(--pad-x); }
.section { padding-block: var(--pad-y); }
.section--white { background: var(--white); }
.section--paper { background: var(--paper); }
.section-head { max-width: 1100px; margin-bottom: 40px; }
.section-head .t-heading { text-wrap: balance; }
.grid { display: grid; gap: 24px; }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1024px) { .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) { .grid-3, .grid-2 { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .grid-4 { grid-template-columns: 1fr; } }
.stack { display: grid; gap: 64px; }

/* ---------- buttons (168x52, radius top-right 20) ---------- */
.btn { --bg: var(--blue); --fg: #fff; --bd: var(--blue);
  position: relative; isolation: isolate; display: inline-flex; align-items: center; gap: 10px;
  padding: 0 28px; height: 52px; background: var(--bg); color: var(--fg); border: 1px solid var(--bd);
  border-radius: 0 var(--r) 0 0; font-size: 15px; line-height: 18px; font-weight: 500; white-space: nowrap; overflow: hidden;
  transition: color .35s var(--ease-out), border-color .35s var(--ease-out), transform .35s var(--ease-out); }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--ink); transform: translateY(101%); transition: transform .45s var(--ease-out); }
.btn:hover::before, .btn:focus-visible::before { transform: translateY(0); }
.btn:hover { border-color: var(--ink); color: #fff; }
.btn:active { transform: translateY(1px); }
.btn .arrow { width: 14px; height: 14px; transition: transform .35s var(--ease-out); }
.btn:hover .arrow { transform: translateX(4px); }
.btn--ghost { --bg: var(--paper); --fg: var(--ink); --bd: var(--ink); }
.btn--ghost:hover { color: #fff; }
.btn--white { --bg: #fff; --fg: var(--blue); --bd: #fff; }
.btn--white:hover { border-color: var(--ink); }
.btn--sm { height: 44px; padding: 0 26px; }
.btn--row { height: 48px; padding: 0 28px; border-radius: 0 22px 0 0; }
.textlink { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; line-height: 18px; font-weight: 500; color: var(--blue); }
.textlink .arrow { width: 14px; height: 14px; transition: transform .35s var(--ease-out); }
.textlink:hover .arrow { transform: translateX(4px); }
.textlink--ink { color: var(--ink); }

/* ---------- nav (84 tall, rule under) ---------- */
.nav { position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--paper) 88%, transparent); -webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px); border-bottom: 1px solid var(--line); }
.nav__in { display: flex; align-items: center; height: 84px; }
.nav__logo { display: flex; align-items: center; height: 100%; }
.nav__logo svg { height: 24px; width: 60px; color: var(--ink); }
.nav__links { display: flex; margin-left: auto; margin-right: clamp(24px, 4vw, 110px); }
.nav__links a { position: relative; width: 130px; font-size: 15px; line-height: 18px; font-weight: 500; color: var(--ink); padding: 6px 0; }
.nav__links a::after { content: ""; position: absolute; left: 0; width: 120px; bottom: 0; height: 1px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--ease-out); }
.nav__links a:hover::after { transform: scaleX(1); }
.nav__links a[aria-current="page"] { color: var(--blue); }
.nav__burger { display: none; width: 44px; height: 44px; margin-left: auto; position: relative; }
.nav__burger span { position: absolute; left: 10px; right: 10px; height: 1.5px; background: var(--ink); transition: transform .4s var(--ease-out), opacity .3s; }
.nav__burger span:nth-child(1) { top: 16px; } .nav__burger span:nth-child(2) { top: 22px; } .nav__burger span:nth-child(3) { top: 28px; }
.nav.is-open .nav__burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav.is-open .nav__burger span:nth-child(2) { opacity: 0; }
.nav.is-open .nav__burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.nav__cta { flex: none; }
@media (max-width: 1100px) { .nav__links a { width: auto; margin-right: 32px; } .nav__links a::after { width: 100%; } }
@media (max-width: 900px) {
  .nav { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--paper); }
  .nav__in { height: 68px; }
  .nav__links { position: fixed; top: 68px; left: 0; right: 0; bottom: 0; height: auto; background: var(--paper); display: flex; flex-direction: column; margin: 0; padding: 8px var(--pad-x) 120px; transform: translateY(-8px); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s, transform .4s var(--ease-out), visibility 0s .4s; border-top: 1px solid var(--line); z-index: 60; overflow-y: auto; }
  .nav.is-open .nav__links { opacity: 1; visibility: visible; transform: none; pointer-events: auto; transition: opacity .3s, transform .4s var(--ease-out), visibility 0s; }
  .nav__links a { width: auto; margin: 0; font-size: 32px; line-height: 1.1; font-weight: 300; letter-spacing: -0.02em; padding: 20px 0; border-bottom: 1px solid var(--line); }
  .nav__links a::after { display: none; }
  .nav__burger { display: block; }
  .nav__cta { display: none; }
  .nav.is-open .nav__cta { display: inline-flex; position: fixed; left: var(--pad-x); right: var(--pad-x); bottom: 28px; justify-content: center; z-index: 61; }
}

/* ---------- blueprint field ---------- */
.bp { position: relative; overflow: hidden; background-color: var(--bp-tint); border: 1px solid var(--blue);
  background-image: linear-gradient(var(--bp-line) 1px, transparent 1px), linear-gradient(90deg, var(--bp-line) 1px, transparent 1px);
  background-size: var(--cell, 90px) var(--cell, 90px); background-position: var(--off, 0 0); }
.bp__flares { position: absolute; inset: 0; pointer-events: none; }
.flare { position: absolute; width: 14px; height: 14px; color: var(--blue); opacity: 0; transform: translate(-50%, -50%) scale(.4); }
.flare svg { width: 100%; height: 100%; display: block; }
.bp.is-in .flare { animation: flare-in .9s var(--ease-out) forwards; animation-delay: var(--d, 0s); }
@keyframes flare-in { to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
.mega-flare { position: absolute; pointer-events: none; }
.mega-flare path { fill: none; stroke: var(--blue); stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.mega-flare--white path { stroke: #fff; }
.glyph { width: 14px; height: 14px; }
.glyph--outline { fill: none; stroke: currentColor; stroke-width: 1.25; }

/* ---------- hero (760 tall, field = right half) ---------- */
.hero { position: relative; }
.hero__in { display: grid; grid-template-columns: 1fr 1fr; min-height: 760px; }
.hero__copy { padding: 176px var(--pad-x) var(--pad-x) var(--pad-x); display: flex; flex-direction: column; justify-content: space-between; gap: 48px; }
.hero__copy .t-display { max-width: 660px; }
.hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
.hero__field { position: relative; min-height: 420px; border: 0; border-left: 1px solid var(--blue); }
.hero__field svg.plant { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__annot { position: absolute; left: 16px; top: 16px; max-width: 78%; }
.hero--short .hero__in { min-height: 640px; }
.hero--short .hero__copy { padding-top: 150px; }
.hero--short .hero__copy .t-display { max-width: 680px; }
@media (max-width: 1100px) { .hero__copy { padding-top: 96px; } .hero--short .hero__copy { padding-top: 80px; } }
@media (max-width: 800px) {
  .hero__in, .hero--short .hero__in { grid-template-columns: 1fr; min-height: 0; }
  .hero__copy, .hero--short .hero__copy { padding-top: 48px; padding-bottom: 40px; gap: 36px; }
  .hero__field { border-left: 0; border-top: 1px solid var(--blue); min-height: 340px; }
}
.page-hero { padding: var(--pad-y) 0 80px; }
.page-hero .t-display { max-width: 1100px; text-wrap: balance; }

/* ---------- reveals ---------- */
.rv { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease-out), transform .9s var(--ease-out); transition-delay: var(--d, 0s); will-change: opacity, transform; }
.rv.is-in { opacity: 1; transform: none; }
.rv-line { display: block; overflow: hidden; }
.rv-line > span { display: block; transform: translateY(110%); transition: transform 1s var(--ease-out); transition-delay: var(--d, 0s); }
.is-in .rv-line > span, .rv-line.is-in > span { transform: none; }
@media (prefers-reduced-motion: reduce) { .rv, .rv-line > span { opacity: 1; transform: none; transition: none; } .flare { opacity: 1; transform: translate(-50%, -50%); animation: none !important; } }

/* ---------- folded plane (accordion). Zig-zag facets exactly like the frame:
   alternating edges are tall/short; --fold (0..1) drives how deep the fold is.
   1 = tightly folded (as it enters), 0.22 = the frame's resting fold. ---------- */
.fold { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); gap: 0; --fold: .22; --depth: 26px; }
.fold__panel { transform-origin: left center; backface-visibility: hidden; }
[data-accordion] .fold__panel:not(:first-child) { transform: perspective(1400px) rotateY(88deg); }
@media (max-width: 800px) { .fold__panel { transform-origin: 50% 0; } [data-accordion] .fold__panel:not(:first-child) { transform: perspective(1400px) rotateX(88deg); } }
.fold__panel { --fd: calc(var(--depth) * var(--fold) * 4);
  position: relative; padding: 66px 32px 32px; min-height: 330px; background: var(--facet-a); color: var(--ink);
  display: flex; flex-direction: column; will-change: clip-path, transform;
  clip-path: polygon(0 var(--tl), 100% var(--tr), 100% calc(100% - var(--br)), 0 calc(100% - var(--bl))); }
/* odd panels: left edge tall, right edge short. even: left short, right tall */
.fold__panel:nth-child(odd)  { --tl: 0px; --bl: 0px; --tr: var(--fd); --br: var(--fd); }
.fold__panel:nth-child(even) { --tl: var(--fd); --bl: var(--fd); --tr: 0px; --br: 0px; }
.fold__panel:nth-child(even) { background: var(--facet-b); }
/* light: receding facets read a touch darker, like the frame */
.fold__panel::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(15,21,27,0), rgba(15,21,27, calc(.10 * var(--fold)))); }
.fold__panel:nth-child(even)::after { background: linear-gradient(270deg, rgba(15,21,27,0), rgba(15,21,27, calc(.10 * var(--fold)))); }
.fold__panel > * { position: relative; z-index: 1; }
.fold__panel .glyph { width: 22px; height: 22px; color: var(--blue); margin-bottom: 36px; }
.fold__panel .t-stat { margin-bottom: 12px; }
.fold__panel .t-h3 { margin-bottom: 21px; }
.fold__panel p { font-size: 14px; line-height: 1.5; color: var(--grey); max-width: 363px; }
.fold--4 .fold__panel { min-height: 380px; padding: 72px 32px 32px; }
.fold--4 .fold__panel .ring { width: 52px; height: 52px; border: 1.25px solid currentColor; border-radius: 50%; display: grid; place-items: center; margin-bottom: 26px; }
.fold--4 .fold__panel .ring .glyph { width: 28px; height: 28px; margin: 0; color: inherit; }
.fold--4 .fold__panel .t-h2 { margin-bottom: 47px; }
.fold--4 .fold__panel p { font-size: 16px; color: inherit; max-width: 252px; }
.fold__panel--blue { background: var(--blue) !important; color: #fff; }
.fold__panel--grey { background: var(--facet-a) !important; }
.fold__panel--white { background: #fff !important; box-shadow: inset 0 0 0 .75px var(--line); }
.fold__panel--ink { background: var(--black) !important; color: #fff; }
.fold__panel--blue::after, .fold__panel--ink::after { background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255, calc(.08 * var(--fold)))); }
@media (max-width: 800px) {
  /* stacked: the fold runs vertically. odd panels: top edge full, bottom edge inset; even: the reverse */
  .fold { grid-template-columns: 1fr; --depth: 18px; }
  .fold__panel { min-height: 0; padding: 40px 28px 32px; margin-top: calc(-1 * var(--fd)); }
  .fold__panel:first-child { margin-top: 0; }
  .fold__panel:nth-child(odd)  { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - var(--fd))); --tl: 0px; --tr: 0px; }
  .fold__panel:nth-child(even) { clip-path: polygon(0 0, 100% var(--fd), 100% 100%, 0 100%); }
  .fold__panel::after { background: linear-gradient(180deg, rgba(15,21,27,0), rgba(15,21,27, calc(.08 * var(--fold)))); }
  .fold--4 .fold__panel { min-height: 0; padding-top: 44px; }
}
@media (prefers-reduced-motion: reduce) { .fold { --fold: .22 !important; } }

/* ---------- image cards (410x448, radius TR 20) ---------- */
.card { background: var(--paper); border-radius: 0 var(--r) 0 0; overflow: hidden; display: flex; flex-direction: column; }
.card__img { height: 220px; background: var(--grey-card); position: relative; overflow: hidden; }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.card:hover .card__img img { transform: scale(1.04); }
.card__img .t-annot { position: absolute; left: 16px; top: 16px; color: var(--grey); opacity: .8; }
.card__body { padding: 36px 32px 32px; display: flex; flex-direction: column; }
.card__body .glyph { width: 20px; height: 20px; color: var(--blue); margin-bottom: 16px; }
.card__body h3 { font-size: 22px; line-height: 1.3; font-weight: 400; margin-bottom: 39px; min-height: calc(22px * 1.3 * 2); text-wrap: balance; } /* two-line slot so body copy aligns across cards regardless of how the title wraps */
.card__body p { font-size: 16px; line-height: 1.5; color: var(--grey); }

/* ---------- proof card ---------- */
.proof { background: #fff; border-radius: 0 var(--r) 0 0; overflow: hidden; }
.proof__img { height: 420px; background: var(--grey-card); position: relative; overflow: hidden; }
.proof__img img { width: 100%; height: 100%; object-fit: cover; }
.proof__body { padding: 36px 36px 32px; }
.tag { display: inline-flex; align-items: center; height: 28px; padding: 0 20px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; background: var(--black); color: #fff; border-radius: 0 14px 0 0; }
.proof__title { font-size: 34px; line-height: 1.16; letter-spacing: -0.01em; font-weight: 300; margin-top: 16px; }
.proof__meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; color: var(--grey); text-transform: uppercase; font-weight: 500; margin-top: 9px; }
.proof__text { margin-top: 16px; display: grid; gap: 12px; }
.proof__text p { font-size: 16px; line-height: 1.5; color: var(--grey); max-width: 1208px; }
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 44px; }
.stats .t-stat { font-size: 22px; line-height: 1.3; font-weight: 400; color: var(--blue); }
.stats .t-small { margin-top: 3px; }
.proof__foot { margin-top: 36px; padding-top: 14px; border-top: 1px solid var(--line); display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--grey); }
.proof__foot .glyph { color: var(--blue); width: 14px; height: 14px; flex: none; margin-top: 3px; }
@media (max-width: 640px) { .stats { grid-template-columns: 1fr 1fr; } .proof__img { height: 240px; } }

/* ---------- founders / operators ---------- */
.op { position: relative; background: var(--blue); color: #fff; border-radius: 0 var(--r) 0 0; padding: 36px; min-height: 392px; display: grid; grid-template-columns: 1fr 260px; gap: 28px; align-items: start; }
.op__img { width: 260px; height: 200px; background: var(--grey-card); border-radius: 0 16px 0 0; overflow: hidden; }
.op__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.op__head h3 { font-size: 22px; line-height: 1.3; font-weight: 400; }
.op__head .op__role { display: block; font-size: 16px; line-height: 1.5; margin-top: 7px; }
.op__bio { grid-column: 1 / -1; font-size: 16px; line-height: 1.5; max-width: 544px; margin-top: 28px; }
@media (max-width: 640px) { .op { grid-template-columns: 1fr; padding: 28px; } .op__img { width: 100%; height: 220px; } }

.founder { background: var(--blue); color: #fff; border-radius: 0 var(--r) 0 0; overflow: hidden; display: flex; flex-direction: column; }
.founder__img { height: 280px; background: var(--grey-card); overflow: hidden; }
.founder__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; transition: transform .8s var(--ease-out); }
.founder:hover .founder__img img { transform: scale(1.03); }
.founder__body { padding: 36px 36px 36px; display: grid; gap: 0; }
.founder__body h3 { font-size: 34px; line-height: 1.16; letter-spacing: -0.01em; font-weight: 300; }
.founder__body .label { color: #fff; margin-top: 9px; }
.founder__body p { font-size: 16px; line-height: 1.5; margin-top: 22px; max-width: 544px; }
.founder__body .li { margin-top: 32px; }
.li { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; background: var(--blue); color: #fff; font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0; transition: transform .3s var(--ease-out); }
.li:hover { transform: translateY(-2px); }
.founder .li { background: #fff; color: var(--blue); }

.person { display: grid; gap: 0; }
.person__img { aspect-ratio: 296 / 340; background: var(--grey-card); overflow: hidden; }
.person__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; transition: transform 1.2s var(--ease-out); }
.person:hover .person__img img { transform: scale(1.03); }
.person h3 { font-size: 22px; line-height: 1.3; font-weight: 400; margin-top: 12px; }
.person .person__role { font-size: 14px; line-height: 1.5; color: var(--grey); margin-top: 12px; }
.person .cred { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; color: var(--blue); margin-top: 12px; }
.person .li { margin-top: 12px; }

/* ---------- bands ---------- */
.band { position: relative; overflow: hidden; background: var(--blue); color: #fff; }
.band__in { display: grid; grid-template-columns: 1fr 560px; min-height: 480px; }
.band__copy { padding: 150px var(--pad-x) 68px; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; position: relative; }
.band__copy .t-heading { color: #fff; max-width: 700px; }
.band__img { position: relative; background: var(--grey-card); overflow: hidden; }
.band__img[data-reveal] { clip-path: inset(0 0 0 var(--rv, 0%)); }
.band__img[data-reveal] img { transform: scale(calc(1 + .12 * var(--rvs, 0))); transform-origin: 30% 50%; }
.band__img img { width: 100%; height: 100%; object-fit: cover; }
.band--full .band__in { grid-template-columns: 1fr; min-height: 420px; }
.band--full .band__copy { padding: 146px var(--pad-x) 68px; }
.band--full .band__copy .t-heading { max-width: 760px; }
@media (max-width: 900px) { .band__in { grid-template-columns: 1fr; min-height: 0; } .band__copy, .band--full .band__copy { padding: 64px var(--pad-x) 56px; } .band__img { min-height: 260px; } }

/* ---------- forms ---------- */
.form { display: grid; gap: 12px; }
.form--contact { gap: 16px; }
.field input, .field select, .field textarea { width: 100%; font: inherit; font-size: 16px; line-height: 24px; color: var(--ink); background: #fff; border: 1px solid var(--line); padding: 14px 20px; height: 52px; border-radius: 0; appearance: none; -webkit-appearance: none; transition: border-color .3s, box-shadow .3s; }
.form--contact .field input, .form--contact .field select { height: 56px; padding: 16px 20px; }
.field textarea { min-height: 180px; height: auto; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: var(--grey); }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px var(--bp-tint); }
.field select { color: var(--grey); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230F151B' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 20px center; padding-right: 44px; }
.field select.has-value { color: var(--ink); }
.form__msg { font-size: 14px; color: var(--grey); min-height: 1.4em; }
.form__msg.is-error { color: #B21717; }
.form__msg.is-ok { color: var(--blue); }
.hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; }
.subscribe { display: grid; grid-template-columns: 520px 1fr; gap: 80px; align-items: start; }
.subscribe .form { max-width: 680px; }
@media (max-width: 900px) { .subscribe { grid-template-columns: 1fr; gap: 32px; } }
.contact-split { display: grid; grid-template-columns: minmax(0, 760px) minmax(0, 440px); gap: 80px; align-items: start; margin-top: 48px; }
.direct { display: grid; gap: 32px; }
.direct .label { display: block; margin-bottom: 8px; }
.direct a, .direct span { font-size: 20px; line-height: 1.45; color: var(--ink); display: inline-flex; align-items: center; gap: 10px; }
.direct .arrow { width: 16px; height: 16px; }
@media (max-width: 900px) { .contact-split { grid-template-columns: 1fr; gap: 48px; } }

/* ---------- footer (300 tall) ---------- */
.footer { background: var(--ink); color: #fff; }
.footer__in { display: grid; grid-template-columns: 1fr 240px 240px 240px; padding-block: 68px 60px; min-height: 300px; }
.footer__brand svg { height: 44px; width: 110px; margin-top: 2px; }
.footer__tag { font-size: 34px; line-height: 1.16; letter-spacing: -0.01em; font-weight: 300; margin-top: 12px; }
.footer__mono { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 500; margin-top: 12px; }
.footer__glyph { width: 24px; height: 24px; margin-top: 29px; color: #fff; }
.footer .label { color: #fff; display: block; margin-bottom: 14px; }
.footer__col a, .footer__col span { display: block; font-size: 16px; line-height: 24px; color: #fff; }
.footer__col a { transition: opacity .3s; } .footer__col a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer__col .muted { color: #fff; }
@media (max-width: 900px) {
  .footer__in { grid-template-columns: 1fr 1fr; gap: 28px 24px; padding-block: 44px 36px; min-height: 0; }
  .footer__brand { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 4px 16px; }
  .footer__brand svg { height: 28px; width: 70px; grid-row: 1 / 3; }
  .footer__tag { font-size: 22px; margin-top: 0; }
  .footer__mono { margin-top: 0; font-size: 10px; }
  .footer__glyph { display: none; }
  .footer .label { margin-bottom: 8px; }
  .footer__col a, .footer__col span { font-size: 15px; line-height: 22px; }
  .footer__col--legal { grid-column: 1 / -1; display: flex; gap: 18px; align-items: baseline; flex-wrap: wrap; }
  .footer__col--legal .label { width: 100%; margin-bottom: 4px; }
  .footer__col--legal .muted { width: 100%; margin-top: 2px; opacity: .7; font-size: 13px; }
}

/* ---------- misc ---------- */
.rule { height: 1px; background: var(--line); }
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
@media (max-width: 860px) { .two-col { grid-template-columns: 1fr; } }

/* compare: three columns with left rule, then table with blue 1AP column */
.fbc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 48px; }
.fbc > div { border-left: 1px solid var(--blue); padding: 4px 0 0 24px; }
.fbc h3 { font-size: 34px; line-height: 1.16; font-weight: 300; letter-spacing: -0.01em; }
.fbc p { font-size: 16px; line-height: 1.5; color: var(--grey); margin-top: 12px; }
@media (max-width: 800px) { .fbc { grid-template-columns: 1fr; } }
.tbl { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 24px; }
.tbl th, .tbl td { text-align: left; padding: 26px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; color: var(--grey); }
.tbl th { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--grey); font-weight: 500; padding: 26px 16px; }
.tbl td:first-child { color: var(--ink); }
.tbl .hl { background: var(--blue); color: #fff; font-size: 22px; line-height: 1.3; font-weight: 400; border-bottom-color: var(--blue); }
.tbl th.hl { font-family: var(--font-sans); font-size: 22px; letter-spacing: 0; text-transform: none; color: #fff; font-weight: 400; }
.tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tbl-wrap .tbl { min-width: 860px; }

/* delta table (Three ways) */
.delta { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 24px; }
.delta th { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--grey); font-weight: 500; text-align: left; height: 40px; padding: 0; border-bottom: 1px solid var(--line); }
.delta td { height: 52px; padding: 0; border-bottom: 1px solid var(--line); color: var(--ink); }
.delta td:nth-child(2), .delta td:nth-child(3) { color: var(--grey); }
.delta td:last-child { color: var(--blue); font-size: 22px; font-weight: 400; }
.delta th:not(:first-child), .delta td:not(:first-child) { padding-left: 12px; }

/* accordion (FAQ) */
.acc { display: grid; }
.acc__item { border-bottom: 1px solid var(--line); }
.acc__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0 13px; text-align: left; font-size: 22px; line-height: 1.3; font-weight: 400; }
.acc__btn .pm { position: relative; width: 16px; height: 16px; flex: none; color: var(--blue); }
.acc__btn .pm::before, .acc__btn .pm::after { content: ""; position: absolute; background: currentColor; left: 0; top: 7px; width: 16px; height: 1.5px; transition: transform .4s var(--ease-out); }
.acc__btn .pm::after { transform: rotate(90deg); }
.acc__item.is-open .acc__btn .pm::after { transform: rotate(0); }
.acc__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease-out); }
.acc__item.is-open .acc__panel { grid-template-rows: 1fr; }
.acc__panel > div { overflow: hidden; }
.acc__panel p { max-width: 900px; color: var(--grey); padding-bottom: 32px; font-size: 16px; line-height: 25px; }

/* list stagger: rows fade up one after another when their container reveals */
.roles .role, .news-grid .news-card, .grid-4 .person, .tbl tbody tr, .acc__item { opacity: 0; transform: translateY(14px); transition: opacity .7s var(--ease-out), transform .7s var(--ease-out); transition-delay: calc(var(--i, 0) * 60ms); }
.is-in .roles .role, .roles.is-in .role, .news-grid.is-in .news-card, .grid-4.is-in .person, .tbl-wrap.is-in .tbl tbody tr, .acc.is-in .acc__item, .is-in.news-card, .is-in.person { opacity: 1; transform: none; }
.role.is-filtering { animation: row-in .5s var(--ease-out) both; }
@keyframes row-in { from { opacity: 0; transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) { .roles .role, .news-grid .news-card, .grid-4 .person, .tbl tbody tr, .acc__item { opacity: 1; transform: none; transition: none; } }
/* roles list + chips (40 tall, radius TR 20) */
.chips { display: flex; flex-wrap: wrap; gap: 12px; }
.chip { height: 40px; padding: 0 22px; font-size: 14px; line-height: 21px; border: 1px solid var(--line); background: var(--paper); border-radius: 0 var(--r) 0 0; transition: background .3s, color .3s, border-color .3s; }
.chip.is-on, .chip:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
.roles { border-top: 1px solid var(--line); margin-top: 32px; }
.role { display: grid; grid-template-columns: 1.6fr 1fr 1fr 28px; gap: 16px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--line); color: var(--ink); transition: padding-left .4s var(--ease-out); }
.role:hover { padding-left: 8px; }
.role h3 { font-size: 22px; line-height: 1.3; font-weight: 400; }
.role span { font-size: 14px; line-height: 1.5; color: var(--grey); }
.role .arrow { color: var(--blue); width: 16px; height: 16px; justify-self: end; transition: transform .4s var(--ease-out); }
.role:hover .arrow { transform: translateX(4px); }
@media (max-width: 640px) { .role { grid-template-columns: 1fr 28px; } .role span { display: none; } }

/* news (approved NEWS frame) */
.featured { display: grid; grid-template-columns: 1fr 600px; background: var(--blue); color: #fff; border-radius: 0 var(--r) 0 0; overflow: hidden; min-height: 480px; }
.featured__copy { padding: 64px 48px 56px; display: flex; flex-direction: column; }
.featured__copy .label { color: #fff; }
.featured__copy .t-heading { color: #fff; margin-top: 26px; max-width: 560px; }
.featured__copy .textlink { color: #fff; margin-top: auto; padding-top: 40px; }
.featured__img { background: var(--grey-card); overflow: hidden; }
.featured__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .featured { grid-template-columns: 1fr; } .featured__img { min-height: 260px; order: -1; } }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; margin-top: 32px; }
@media (max-width: 900px) { .news-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .news-grid { grid-template-columns: 1fr; } }
.news-card { display: grid; gap: 16px; align-content: start; color: var(--ink); }
.news-card__img { height: 240px; background: var(--grey-card); border-radius: 0 16px 0 0; overflow: hidden; }
.news-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.news-card:hover .news-card__img img { transform: scale(1.04); }
.news-card h3 { font-size: 22px; line-height: 1.3; font-weight: 400; }
.news-card .read { font-size: 16px; line-height: 1.5; color: var(--grey); display: inline-flex; gap: 10px; align-items: center; }
.news-card .read .arrow { width: 14px; height: 14px; }

/* three-layer feature rows (copy 480 + fig 760) */
.layer { display: grid; grid-template-columns: 480px minmax(0, 1fr); gap: 40px; align-items: center; }
.layer--rev { grid-template-columns: minmax(0, 1fr) 480px; }
.layer--rev > :first-child { order: 2; }
.layer__copy { display: grid; gap: 16px; max-width: 440px; }
.layer__copy .glyph { width: 24px; height: 24px; color: var(--blue); }
.layer__copy .t-h2 { margin-top: -2px; }
.layer__copy p { font-size: 16px; line-height: 1.5; color: var(--grey); }
.layer__fig { position: relative; height: 320px; --cell: 70px; }
.layer__fig svg { width: 100%; height: 100%; }
.layer__fig .t-annot { position: absolute; left: 16px; top: 16px; }
@media (max-width: 1000px) { .layer, .layer--rev { grid-template-columns: 1fr; } .layer--rev > :first-child { order: 0; } .layer__copy { max-width: none; } }

/* way rows (img 520 + copy 720) */
.way { display: grid; grid-template-columns: 520px minmax(0, 1fr); gap: 40px; align-items: start; }
.way__img { height: 484px; background: var(--grey-card); position: relative; overflow: hidden; }
.way__img img { width: 100%; height: 100%; object-fit: cover; }
.way__body { display: grid; gap: 20px; max-width: 720px; }
.way__body h3 { font-size: 34px; line-height: 1.16; letter-spacing: -0.01em; font-weight: 300; }
.way__body .t-body-l { font-size: 20px; line-height: 1.45; color: var(--grey); }
.way__note { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--blue); }
.way__note .glyph { flex: none; margin-top: 4px; width: 14px; height: 14px; }
@media (max-width: 1000px) { .way { grid-template-columns: 1fr; } .way__img { height: 320px; } }

/* map */
.usmap { width: 100%; height: auto; }
.usmap path { fill: var(--facet-a); stroke: var(--paper); stroke-width: 1; transition: fill .6s var(--ease-out); }
.usmap path.on { fill: var(--blue); }
.map-wrap { position: absolute; inset: 10% 6% 8% 6%; display: flex; align-items: center; }
.map-wrap .usmap { width: 100%; height: 100%; }
.map-wrap .usmap path.on { animation: state-in 1.2s var(--ease-out) both; animation-delay: calc(var(--i, 0) * .12s + .4s); }
@keyframes state-in { from { fill: var(--facet-a); } to { fill: var(--blue); } }

/* svg figure states */
.svg-label { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; fill: var(--blue); font-weight: 500; }
svg .node { transition: transform .4s, fill .4s; transform-box: fill-box; transform-origin: center; }
svg.is-drawn .node { animation: node-pulse 2.6s ease-in-out infinite; }
svg.is-drawn .node:nth-child(odd) { animation-delay: -1.3s; }
@keyframes node-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.45); } }
svg .node.is-fault { fill: #B21717 !important; stroke: #B21717; animation: none; transform: scale(1.5); }
svg .fault-seg { transition: opacity .3s; } svg .fault-seg.is-fault { opacity: .15; }
svg .reroute { opacity: 0; }
svg.is-simplified .nL, svg.is-simplified .lL { opacity: .22; transition: opacity 1.2s var(--ease-out); }
svg .busline { stroke-width: 2.2; }
svg.plant .panel, svg.plant .hall polygon, svg.plant .batt polygon, svg.plant .sub polygon { fill: currentColor; fill-opacity: 0; transition: fill-opacity 1.2s var(--ease-out) 1.2s; }
svg.plant.is-drawn .panel { fill-opacity: .10; }
svg.plant.is-drawn .hall polygon:first-child { fill-opacity: .16; }
svg.plant.is-drawn .hall polygon { fill-opacity: .08; }
svg.plant.is-drawn .batt polygon { fill-opacity: .12; }
svg.plant.is-drawn .sub polygon { fill-opacity: .06; }

/* post body + preview bar */
.post-body { font-size: 18px; line-height: 1.6; color: var(--grey); display: grid; gap: 18px; max-width: 780px; }
.post-body h2 { font-size: 34px; letter-spacing: -0.01em; font-weight: 300; margin-top: 16px; color: var(--ink); }
.post-body h3 { font-size: 22px; font-weight: 400; margin-top: 8px; color: var(--ink); }
.post-body p { margin: 0; } .post-body a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.post-body img { max-width: 100%; height: auto; } .post-body blockquote { border-left: 1px solid var(--blue); padding-left: 20px; margin: 0; }
.post-body ul, .post-body ol { padding-left: 22px; list-style: revert; display: grid; gap: 6px; }
.post-body strong { font-weight: 500; color: var(--ink); }
.preview-bar { background: var(--ink); color: #fff; font-family: var(--font-mono); font-size: 12px; padding: 10px var(--pad-x); } .preview-bar a { color: #fff; text-decoration: underline; margin-left: 8px; }

.mt-1 { margin-top: 8px; } .mt-2 { margin-top: 16px; } .mt-3 { margin-top: 24px; } .mt-4 { margin-top: 40px; } .mt-5 { margin-top: 64px; }
.max-p { max-width: 62ch; }

/* MOTION: "blueprint field drawing itself in on load" — grid wipes in, then flares pop */
.bp[data-draw-grid], .hero__field.bp { background-image: none; }
.bp[data-draw-grid]::before, .hero__field.bp::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(var(--bp-line) 1px, transparent 1px), linear-gradient(90deg, var(--bp-line) 1px, transparent 1px);
  background-size: var(--cell, 90px) var(--cell, 90px); background-position: var(--off, 0 0);
  clip-path: inset(0 100% 100% 0); }
.bp.is-in[data-draw-grid]::before, .hero__field.bp.is-in::before { animation: grid-wipe 1.6s var(--ease-out) forwards; }
@keyframes grid-wipe { 40% { clip-path: inset(0 0 100% 0); } 100% { clip-path: inset(0 0 0 0); } }
.bp .bp__flares { z-index: 1; }
/* MOTION: "rotating slowly" (mounts) */
.rotor { transform-box: fill-box; transform-origin: center; }
svg.is-drawn .rotor-a { animation: rotor 14s ease-in-out infinite; }
svg.is-drawn .rotor-b { animation: rotor 16s ease-in-out infinite reverse; }
@keyframes rotor { 0%, 100% { transform: rotate(-1.5deg) translateY(0); } 50% { transform: rotate(1.5deg) translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { .rotor { animation: none !important; } .bp::before { animation: none !important; clip-path: none !important; } }

/* ===== HERO SCENE (isometric plant, scroll-built) ===== */
.hero--pin { height: 170vh; }   /* 18 Sep #10: shorter pin, easier to scroll out of */
.hero--pin .hero__in { position: sticky; top: 84px; height: min(calc(100vh - 84px), 900px); min-height: 0; }
.hero--pin .hero__copy { padding-top: clamp(120px, 23vh, 200px); padding-bottom: var(--pad-x); }
.hero--pin .hero__field { min-height: 0; height: 100%; }
.hero__cue { display: flex; align-items: center; gap: 12px; margin-top: 40px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--grey); transition: opacity .5s var(--ease-out); }
.hero__cue i { display: block; width: 1px; height: 36px; background: var(--line); position: relative; overflow: hidden; }
.hero__cue i::after { content: ""; position: absolute; left: 0; top: -36px; width: 1px; height: 36px; background: var(--blue); animation: cue 1.8s var(--ease-out) infinite; }
@keyframes cue { to { top: 36px; } }
@media (max-height: 720px) { .hero--pin .hero__copy .t-display { font-size: clamp(34px, 3.2vw, 46px); } }
@media (max-width: 900px) {
  .hero--pin { height: auto; }
  .hero--pin .hero__in { top: auto; height: auto; position: relative; }
  .hero--pin .hero__field { height: clamp(320px, 52vh, 480px); }
  .hero__cue { display: none; }
}
.bp--hero { background-image: none; }
.bp--hero::before { background-size: 90px 90px; }
.scene-wrap { position: absolute; inset: 6% 5% 4% 5%; display: flex; align-items: center; justify-content: center; z-index: 2; }
.scene { width: 100%; height: 100%; overflow: visible; }
@media (max-width: 800px) { .scene-wrap { inset: -4% -6%; } }
.scene .layer { will-change: transform; }
/* blueprint = lines only; built = opaque light fills so decks occlude what sits beneath */
.scene .f-top, .scene .f-right, .scene .f-left { fill-opacity: 0; transition: fill-opacity .6s var(--ease-out); }
.scene .f-top { fill: #F8F9FF; } .scene .f-right { fill: #D9DEFF; } .scene .f-left { fill: #EAEDFF; }
.scene .built .f-top, .scene .built .f-right, .scene .built .f-left { fill-opacity: 1; }
.scene .plate .f-top { fill: #F4F5FF; fill-opacity: .96; }
.scene .layer-2 .plate .f-top { fill-opacity: .9; } .scene .plate .f-right { fill: #C9CFFF; fill-opacity: 1; } .scene .plate .f-left { fill: #DDE1FF; fill-opacity: 1; }
.scene .pe-body .f-top { fill: #EEF0FF; } .scene .pe .built .f-top, .scene .built.pe .f-top { fill: #EEF0FF; }
.scene .led { opacity: 0; }
.scene .lit .led { animation: led 2.4s steps(1) infinite; animation-delay: calc(var(--i, 0) * -.37s); }
@keyframes led { 0%, 55% { opacity: 1; } 56%, 100% { opacity: .25; } }
.scene .node { transform-box: fill-box; transform-origin: center; }
.scene .lit .risers .node { animation: node-pulse 2.2s ease-in-out infinite; }
.scene .risers line { stroke-dashoffset: 0; }
.scene .lit .risers line { animation: dash-up 1.6s linear infinite; }
@keyframes dash-up { to { stroke-dashoffset: -14; } }
.hero__field .mega-flare { z-index: 1; }
@media (prefers-reduced-motion: reduce) { .scene .led, .scene .risers line, .scene .risers .node { animation: none !important; } }
/* Projects: a single, full-height section. Map fills the field; copy sits with the frame's hero proportions. */
.hero--projects .hero__in { min-height: calc(100vh - 84px); }
.hero--projects .hero__copy { padding-top: clamp(120px, 20vh, 220px); }
.hero--projects .map-wrap { inset: 12% 7% 10% 7%; }
.hero--projects .usmap path { fill: #FFFFFF; stroke: var(--bp-line); }
.hero--projects .usmap path.on { fill: var(--blue); stroke: var(--bp-tint); }
@media (max-width: 800px) { .hero--projects .hero__in { min-height: 0; } .hero--projects .hero__copy { padding-top: 48px; } .hero--projects .hero__field { height: 360px; } }

/* Hero headline, desktop: blue statement on two balanced lines, black subhead on one line */
@media (min-width: 901px) {
  .hero .t-display .lead { font-size: clamp(44px, 4.9vw, 72px); line-height: 1.02; letter-spacing: -0.025em; text-wrap: balance; max-width: 14ch; }
  .hero .t-display .rest { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.25; letter-spacing: -0.01em; font-weight: 400; margin-top: 18px; max-width: 22ch; white-space: normal; text-wrap: balance; }
  .hero__copy .t-display { max-width: 720px; }
}

/* ===================== ROUND 4 ===================== */
/* 1) nav: full-bleed, logo on the page gutter, links clustered right and equidistant */
.nav__in { padding-inline: var(--pad-x); max-width: none; }
.nav__links { margin-left: auto; margin-right: 0; gap: clamp(28px, 4.4vw, 64px); }
.nav__links a { width: auto; padding: 6px 0; }
.nav__cta { margin-left: clamp(28px, 4.4vw, 64px); }
/* 7) underline only as wide as the word */
.nav__links a::after { width: 100%; }
@media (max-width: 1100px) { .nav__links a { margin-right: 0; } }

/* 9) hero copy: headline block centered in the section, buttons on the bottom-left corner */
.hero__copy { display: grid; grid-template-rows: 1fr auto; padding-top: 0; }
.hero__mid { display: flex; align-items: center; padding-top: 40px; }
.hero--pin .hero__copy { padding-top: 0; }
@media (max-width: 800px) { .hero__copy, .hero--pin .hero__copy { display: flex; padding-top: 48px; } .hero__mid { padding-top: 0; } }

/* 2) stats plane now four facets, count-ups replay */
.fold--stats .fold__panel { min-height: 330px; padding: 66px 32px 32px; }
.fold--stats .fold__panel p { font-size: 14px; color: var(--grey); max-width: 280px; }
.fold--stats .fold__panel .t-stat { font-size: clamp(26px, 2.1vw, 30px); }

/* 3) who-we-power cards: images develop from blueprint tint, parallax inside the frame, lift on hover */
.cards .card { transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out); }
.cards .card__img { --py: 0px; }
.cards .card__img img { transform: translateY(var(--py)) scale(1.12); filter: grayscale(1) contrast(1.05); transition: filter 1.2s var(--ease-out), transform 1.2s var(--ease-out); }
.cards.is-in .card__img img { filter: grayscale(0); }
.cards .card__img::after { content: ""; position: absolute; inset: 0; background: var(--blue); mix-blend-mode: multiply; opacity: .55; transition: opacity 1.2s var(--ease-out); pointer-events: none; }
.cards.is-in .card__img::after { opacity: 0; }
.cards .card:nth-child(2) .card__img img, .cards .card:nth-child(2) .card__img::after { transition-delay: .15s; }
.cards .card:nth-child(3) .card__img img, .cards .card:nth-child(3) .card__img::after { transition-delay: .3s; }
.cards .card:hover { transform: translateY(-6px); box-shadow: 0 24px 48px -24px rgba(15,21,27,.25); }
.cards .card:hover .card__img img { transform: translateY(var(--py)) scale(1.18); }
.cards .card .glyph { transition: transform .6s var(--ease-out); }
.cards .card:hover .glyph { transform: rotate(90deg) scale(1.15); }
.cards .card h3 { transition: color .4s; }
.cards .card:hover h3 { color: var(--blue); }

/* 4) proof: rises up under the heading like the noblegrowth.co reveal, image settles from a slight zoom */
[data-count] { opacity: 0; transform: translateY(6px); transition: opacity .9s var(--ease-out), transform .9s var(--ease-out); transition-delay: calc(var(--ci, 0) * .18s); }
[data-count].is-in { opacity: 1; transform: none; }
[data-rise] { opacity: 0; transform: translateY(72px) scale(.97); transform-origin: center bottom; transition: opacity 1.4s var(--ease-out), transform 1.4s var(--ease-out); }
[data-rise].is-in { opacity: 1; transform: none; }
[data-rise] .proof__img img { transform: scale(1.08); transition: transform 2.2s var(--ease-out) .2s; }
[data-rise].is-in .proof__img img { transform: scale(1); }

/* 5, 11) caret: a blinking blue bar in the first empty field until you focus; follows the hovered field */
[data-caret] .field { position: relative; }
[data-caret] .field.has-caret::after { content: ""; position: absolute; left: 20px; top: 50%; width: 1.5px; height: 20px; margin-top: -10px; background: var(--blue); animation: caret 1.1s steps(1) infinite; pointer-events: none; }
[data-caret] .field.has-caret input::placeholder, [data-caret] .field.has-caret textarea::placeholder { padding-left: 8px; }
[data-caret] .field.has-caret textarea + *::after { top: 30px; }
[data-caret] .field.has-caret:has(textarea)::after { top: 28px; margin-top: 0; }
[data-caret] .field:has(:focus)::after, [data-caret] .field:has(input:not(:placeholder-shown))::after, [data-caret] .field:has(textarea:not(:placeholder-shown))::after, [data-caret] .field:has(select.has-value)::after { display: none; }
@keyframes caret { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0; } }
.direct a { transition: color .35s var(--ease-out), transform .35s var(--ease-out); transform-origin: left center; }
.direct a:hover { color: var(--blue); transform: scale(1.05); }
.direct a:hover .arrow { transform: translateX(4px); }
.direct .arrow { transition: transform .35s var(--ease-out); }

/* 6) footer glyph: white, and a sparkle on hover */
.glyph { fill: currentColor; }
.footer__glyph { display: inline-block; color: #fff; transition: transform .6s var(--ease-out); transform-origin: center; }
.footer__glyph:hover { transform: rotate(90deg) scale(1.35); animation: sparkle 1.2s var(--ease-out) infinite; }
@keyframes sparkle { 0%, 100% { filter: drop-shadow(0 0 0 rgba(255,255,255,0)); } 50% { filter: drop-shadow(0 0 6px rgba(255,255,255,.9)); } }

/* 8) projects map: states rise on hover and show their abbreviation; flares twinkle */
.map-wrap .usmap { overflow: visible; }
.map-wrap .usmap path { cursor: default; transition: fill .6s var(--ease-out), transform .5s var(--ease-out), filter .5s var(--ease-out); transform-box: fill-box; transform-origin: center; }
.map-wrap .usmap path.on { cursor: pointer; }
.map-wrap .usmap path.on:hover, .map-wrap .usmap path.is-hot { transform: translateY(-6px) scale(1.06); filter: drop-shadow(0 14px 18px rgba(0,28,255,.35)); fill: var(--blue-2, #1A33FF); }
.map-label { position: absolute; transform: translate(-50%, -50%); font-family: var(--font-mono); font-size: 13px; letter-spacing: .1em; font-weight: 500; color: #fff; pointer-events: none; opacity: 0; transition: opacity .25s; text-shadow: 0 1px 2px rgba(0,0,0,.25); }
.map-label.is-on { opacity: 1; }
.bp.is-in .flare { animation: flare-in .9s var(--ease-out) forwards, twinkle 3.2s ease-in-out infinite; animation-delay: var(--d, 0s), calc(var(--d, 0s) * 3 + .9s); }
@keyframes twinkle { 0%, 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 50% { opacity: .35; transform: translate(-50%, -50%) scale(.72); } }
.hero--projects .hero__mid { padding-top: 0; }

/* 10) founders: photo rises and reveals more on hover (tap on touch) */
.founder { overflow: visible; }
.founder__img { border-radius: 0 var(--r) 0 0; overflow: hidden; height: 280px; transition: height .6s var(--ease-out); }
.founder__img img { transition: filter .8s var(--ease-out), object-position .7s var(--ease-out), transform .7s var(--ease-out); }
.founder:hover .founder__img, .founder.is-lift .founder__img { height: 340px; }
.founder:hover .founder__img img, .founder.is-lift .founder__img img { object-position: center 35%; transform: scale(1.04); }
.founder__body { transition: transform .6s var(--ease-out); }

/* 11) decode: mono scramble resolves into the headline */
[data-decode] { display: inline-block; }
[data-decode] .dc { display: inline-block; font-variant-ligatures: none; }
[data-decode] .dc.is-scr { font-family: var(--font-mono); font-weight: 500; opacity: .55; }
@media (prefers-reduced-motion: reduce) { [data-count] { opacity: 1; transform: none; } .cards .card__img img { filter: none; transform: none; } .cards .card__img::after { display: none; } [data-rise] { opacity: 1; transform: none; } .bp.is-in .flare { animation: flare-in .9s var(--ease-out) forwards; } }

.glyph.glyph--outline { fill: none; }

.map-wrap.is-settled .usmap path.on { animation: none; fill: var(--blue); }
.map-wrap.is-settled .usmap path.on:hover, .map-wrap.is-settled .usmap path.is-hot { fill: #1A33FF; }

/* ===================== MOBILE PASS ===================== */
@media (max-width: 800px) {
  /* hero: taller field, plant fully in frame, copy tight */
  .hero--pin .hero__field { height: clamp(420px, 68vh, 560px); }
  .scene-wrap { inset: 2% 0 0 0; }
  .hero__copy, .hero--pin .hero__copy { padding-top: 40px; padding-bottom: 36px; gap: 28px; }
  .hero .t-display .lead { font-size: clamp(34px, 9.6vw, 44px); line-height: 1.04; }
  .hero .t-display .rest { font-size: 19px; margin-top: 12px; max-width: none; }
  .hero__actions { gap: 10px; }
  .hero__actions .btn { flex: 1 1 auto; justify-content: center; padding: 0 18px; }
  /* section rhythm */
  .section { padding-block: 64px; }
  .section-head { margin-bottom: 28px; }
  .t-heading { font-size: clamp(28px, 7.6vw, 34px); }
  /* stats + one-system: two-up grids, no fold on phones */
  .fold, .fold--stats, .fold--4 { grid-template-columns: 1fr 1fr; gap: 10px; --fd: 0px !important; }
  .fold__panel, .fold--stats .fold__panel, .fold--4 .fold__panel { min-height: 0; padding: 24px 18px 22px; margin-top: 0 !important; clip-path: none !important; transform: none !important; opacity: 1 !important; }
  .fold__panel::after { display: none; }
  .fold__panel .glyph { width: 18px; height: 18px; margin-bottom: 18px; }
  .fold--stats .fold__panel .t-stat { font-size: 22px; }
  .fold__panel .t-h3 { font-size: 17px; margin-bottom: 10px; }
  .fold__panel p, .fold--stats .fold__panel p { font-size: 13px; line-height: 1.45; }
  .fold--4 .fold__panel .ring { width: 40px; height: 40px; margin-bottom: 16px; }
  .fold--4 .fold__panel .ring .glyph { width: 20px; height: 20px; }
  .fold--4 .fold__panel .t-h2 { font-size: 22px; margin-bottom: 14px; }
  .fold--4 .fold__panel p { font-size: 13.5px; }
  /* cards: horizontal snap rail instead of a tall stack */
  .cards.grid-3 { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: calc(-1 * var(--pad-x)); padding-inline: var(--pad-x); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .cards.grid-3::-webkit-scrollbar { display: none; }
  .cards .card { flex: 0 0 82%; scroll-snap-align: start; }
  .cards .card__img { height: 190px; }
  .cards .card__body { padding: 24px 22px 26px; }
  .cards .card__body h3 { margin-bottom: 18px; font-size: 20px; }
  /* proof */
  .proof__body { padding: 24px 20px 22px; }
  .proof__title { font-size: 28px; }
  .stats { grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
  .stats > div:last-child { grid-column: 1 / -1; }
  /* operators */
  .op { padding: 24px; min-height: 0; grid-template-columns: 1fr; gap: 18px; }
  .op__img { width: 100%; height: 200px; }
  .op__bio { margin-top: 0; }
  /* join band + subscribe */
  .band__copy, .band--full .band__copy { padding: 56px var(--pad-x) 48px; gap: 28px; }
  .band__img { min-height: 220px; }
  .subscribe { gap: 20px; }
  /* founders / team */
  .founder__img { height: 240px; }
  .founder:hover .founder__img, .founder.is-lift .founder__img { height: 290px; }
  .founder__body { padding: 24px 22px 26px; }
  .founder__body h3 { font-size: 26px; }
  .grid-4 { grid-template-columns: 1fr 1fr; gap: 20px 14px; }
  .person h3 { font-size: 17px; }
  .person .person__role { font-size: 13px; margin-top: 6px; }
  .person .cred { font-size: 10px; margin-top: 8px; }
  /* chips + roles */
  .chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--pad-x)); padding-inline: var(--pad-x); scrollbar-width: none; gap: 8px; }
  .chips::-webkit-scrollbar { display: none; }
  .chip { flex: 0 0 auto; height: 36px; padding: 0 16px; font-size: 13px; }
  .role { grid-template-columns: 1fr 28px; padding: 18px 0; }
  .role h3 { font-size: 17px; }
  .role span:nth-of-type(2) { display: block; grid-column: 1; font-size: 13px; margin-top: 2px; }
  /* map page */
  .hero--projects .hero__field { height: 380px; }
  .hero--projects .map-wrap { inset: 12% 4% 6% 4%; }
  /* contact */
  .contact-split { margin-top: 28px; gap: 36px; }
  .direct { gap: 22px; }
  .direct a, .direct span { font-size: 18px; }
  .form--contact .field input, .form--contact .field select { height: 52px; padding: 14px 18px; }
  /* tables scroll inside */
  .tbl-wrap { margin-inline: calc(-1 * var(--pad-x)); padding-inline: var(--pad-x); }
  /* footer */
  .footer__in { padding-block: 40px 32px; }
}
@media (max-width: 400px) { .cards .card { flex-basis: 86%; } .grid-4 { gap: 18px 12px; } }

/* mobile refinements: balanced subhead, menu that breathes */
@media (max-width: 800px) {
  .hero .t-display .rest { font-size: clamp(22px, 6vw, 26px); line-height: 1.22; margin-top: 14px; text-wrap: balance; max-width: 15ch; }
}
@media (max-width: 900px) {
  .nav__links { padding: 12vh var(--pad-x) 140px; justify-content: flex-start; gap: 0; }
  .nav__links a { font-size: 40px; line-height: 1; font-weight: 300; letter-spacing: -0.025em; padding: 26px 0; border-bottom: 1px solid var(--line); opacity: 0; transform: translateY(14px); transition: opacity .5s var(--ease-out), transform .6s var(--ease-out); }
  .nav.is-open .nav__links a { opacity: 1; transform: none; }
  .nav.is-open .nav__links a:nth-child(1) { transition-delay: .08s; } .nav.is-open .nav__links a:nth-child(2) { transition-delay: .16s; } .nav.is-open .nav__links a:nth-child(3) { transition-delay: .24s; }
  .nav__links a[aria-current="page"] { color: var(--blue); }
  .nav.is-open .nav__cta { bottom: max(28px, env(safe-area-inset-bottom, 28px)); height: 56px; }
}

/* ===== alignment: every page shares the nav's gutter ===== */
.wrap { max-width: none; }
body { background: var(--ink); }
main { background: var(--paper); }
.nav { background: var(--paper); }
/* join band: copy column ends where the subscribe form begins; star centred on that edge; photo zoomed */
@media (min-width: 901px) {
  .band__in { grid-template-columns: minmax(0, 1fr) 46%; }
  .band__copy .mega-flare { left: auto; right: -180px; }
  .band__img img { transform: scale(1.22); transform-origin: 55% 50%; }
  .subscribe { grid-template-columns: minmax(0, 54%) minmax(0, 1fr); gap: 0; }
  .subscribe .form { max-width: none; }
}
/* operator cards are links */
.op { text-decoration: none; transition: transform .6s var(--ease-out), box-shadow .6s var(--ease-out); position: relative; }
.op__img img { transition: transform 1s var(--ease-out); }
.op:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -28px rgba(0,28,255,.55); }
.op:hover .op__img img { transform: scale(1.06); }
.op__cta { position: absolute; right: 36px; bottom: 30px; display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 500; opacity: 0; transform: translateX(-8px); transition: opacity .4s var(--ease-out), transform .5s var(--ease-out); }
.op__cta .arrow { width: 14px; height: 14px; }
.op:hover .op__cta { opacity: 1; transform: none; }
@media (max-width: 640px) { .op__cta { position: static; opacity: 1; transform: none; margin-top: 4px; } }
/* footer: logo link, glyph turns in place and sparkles */
.footer__logo { display: inline-block; transition: opacity .3s; } .footer__logo:hover { opacity: .8; }
.footer__glyph { transition: transform .7s var(--ease-out); transform-origin: center; }
.footer__glyph:hover { transform: rotate(180deg); animation: sparkle 1.1s var(--ease-out) infinite; }
/* map labels: ink pill, white mono, centred on the state */
.map-label { background: var(--ink); color: #fff; padding: 5px 9px 4px; border-radius: 0 8px 0 0; font-size: 12px; letter-spacing: .12em; text-shadow: none; box-shadow: 0 6px 16px rgba(15,21,27,.25); }

/* mobile menu: CTA reads like the links; footer: one clean column stack */
@media (max-width: 900px) {
  .nav.is-open .nav__cta { font-size: 22px; font-weight: 400; height: 60px; border-radius: 0 var(--r) 0 0; }
  .footer__in { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; padding-block: 48px 36px; }
  .footer__brand { grid-column: 1 / -1; display: block; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid rgba(255,255,255,.14); }
  .footer__brand svg { height: 34px; width: 84px; }
  .footer__tag { font-size: 26px; margin-top: 14px; }
  .footer__mono { margin-top: 8px; font-size: 10px; }
  .footer__glyph { display: inline-block; margin-top: 20px; width: 18px; height: 18px; }
  .footer__col { padding-bottom: 28px; }
  .footer__col .label { margin-bottom: 10px; font-size: 10px; }
  .footer__col a, .footer__col span { font-size: 16px; line-height: 26px; }
  .footer__col--legal { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 0; padding: 22px 0 0; border-top: 1px solid rgba(255,255,255,.14); }
  .footer__col--legal .label { display: none; }
  .footer__col--legal a { display: inline-block; margin-right: 22px; font-size: 14px; line-height: 22px; opacity: .8; }
  .footer__col--legal .muted { width: auto; margin-top: 8px; font-size: 12px; opacity: .55; }
}
/* footer glyph: rotate about its own centre, no drift */
.footer__glyph { display: block; width: 24px; height: 24px; line-height: 0; transform-origin: 50% 50%; }
.footer__glyph .glyph { width: 24px; height: 24px; }
@media (max-width: 900px) { .footer__glyph { width: 18px; height: 18px; } .footer__glyph .glyph { width: 18px; height: 18px; } .footer__col--legal { display: block; } .footer__col--legal .muted { display: block; } }

/* contact: balanced split. Form fills the left half to the page midline, aside opens on the right half. */
@media (min-width: 901px) {
  .contact-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 8vw, 140px); margin-top: 40px; align-items: start; }
  .contact-split .form { max-width: none; }
  .direct { gap: 36px; padding-top: 4px; }
  .direct a, .direct span { font-size: clamp(22px, 1.8vw, 26px); line-height: 1.3; letter-spacing: -0.01em; }
  .direct .arrow { width: 18px; height: 18px; }
}

/* ===== PROJECTS: pipeline page to the Figma PROJECTS frame (headline pair over a full-width map, plain paper) ===== */
.pipeline { padding: 120px 0 120px; }
.pipeline__head { max-width: 1100px; margin: 0 0 56px; }
.pipeline__head .lead, .pipeline__head .rest { display: block; font-size: clamp(38px, 3.9vw, 56px); line-height: 1.06; letter-spacing: -0.02em; font-weight: 300; max-width: none; white-space: normal; }
.pipeline__head .lead { color: var(--blue); }
.pipeline__head .rest { color: var(--ink); margin-top: 0; }
.map-wrap--full { position: relative; inset: auto; display: block; width: 100%; }
.map-wrap--full .usmap { width: 100%; height: auto; display: block; }
.map-wrap--full .usmap path { fill: #D9DAD6; stroke: var(--paper); stroke-width: 1.2; }
.map-wrap--full .usmap path.on { fill: var(--blue); }
@keyframes state-in-full { from { fill: #D9DAD6; } to { fill: var(--blue); } }
.map-wrap--full .usmap path.on { animation-name: state-in-full; }
@media (max-width: 800px) {
  .pipeline { padding: 48px 0 64px; }
  .pipeline__head { margin-bottom: 28px; }
  .pipeline__head .lead, .pipeline__head .rest { font-size: clamp(30px, 8.4vw, 38px); }
}

/* ===== MOTION v2 (18 Sep, per AZS/MDRNST): softer ease, play-once reveals, blocks slide in from the left with a fixed
   stagger, headlines wipe in left to right, native smooth scrolling. Mirrors the studio's staging build. ===== */
html { scroll-behavior: smooth; }
.rv { transform: translateY(16px); transition-duration: .8s, .8s; }
.rv-line > span { transition-duration: .8s; }
[data-rise] { transform: translateY(16px) scale(1); transition-duration: .8s, .8s; }
[data-rise] .proof__img img { transform: scale(1.04); transition-duration: 1.6s; }
/* card rows: slide out from the left, one after another */
.cards .card.rv { transform: translateX(-28px); transition-duration: .7s, .7s; }
.cards.is-in .card.rv, .card.rv.is-in { transform: none; }
.grid-3 > .rv, .fbc > .rv, .grid-2 > .founder.rv { transform: translateX(-28px); transition-duration: .7s, .7s; }
.grid-3 > .rv.is-in, .fbc > .rv.is-in, .grid-2 > .founder.rv.is-in { transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .fold--stats .fold__panel, .cards .card.rv, .grid-3 > .rv, .fbc > .rv { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* 18 Sep, Hunter's round: bands align to the page gutter (copy was a centred 750px column) */
.band--full .band__in { justify-items: stretch; }
.band--full .band__copy { width: auto; max-width: none; margin: 0; padding-inline: var(--pad-x); }
/* phones: a tighter field the plant actually fills, stacked and grounded */
@media (max-width: 800px) {
  .hero--pin .hero__field { height: clamp(340px, 50vh, 440px); }
  .scene-wrap { inset: 4% 2% 2% 2%; }
}

/* ===== 18 Sep, AZS in-site comments #2 #3 #5 #6 ===== */
/* #2 headline fades in (no scramble, no mask slide). 1AP decision 18 Sep: AZS is design of record for iteration 1. */
h1.t-display .rv-line { overflow: visible; }
h1.t-display .rv-line > span { transform: none !important; opacity: 0; animation: h1-fade 1.4s ease .1s both; }
h1.t-display .rest.rv-line > span { animation-delay: .35s; }
@keyframes h1-fade { to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { h1.t-display .rv-line > span { animation: none; opacity: 1; } }
/* #3 hero subhead = same size as the headline (Figma display 56/59 w300, both lines) */
.hero .t-display .lead, .hero .t-display .rest { font-size: clamp(40px, 3.9vw, 56px); line-height: 1.06; letter-spacing: -0.02em; font-weight: 300; max-width: 15ch; }
.hero .t-display .rest { margin-top: 0; color: var(--ink); max-width: 18ch; }
@media (max-width: 800px) { .hero .t-display .lead, .hero .t-display .rest { font-size: clamp(32px, 8.6vw, 40px); line-height: 1.06; max-width: none; } .hero .t-display .rest { margin-top: 0; } }
/* #5 section heads run the full content width on desktop */
.section-head { max-width: none; }
/* #6 AZS panel icons inside the ring */
.fold--4 .fold__panel .ring .glyph--azs { width: 30px; height: 30px; }

/* ===== 18 Sep, AZS comments #7-#10 ===== */
/* #9 no hover zoom on imagery, globally (1AP decision 18 Sep) */
.card:hover .card__img img, .founder:hover .founder__img img, .founder.is-lift .founder__img img, .person:hover .person__img img, .news-card:hover .news-card__img img, .op:hover .op__img img { transform: none; }
.cards .card:hover .card__img img { transform: translateY(var(--py)) scale(1.12); }
.direct a:hover { transform: none; }

/* #7 #8 type reads bolder than the studio build: their headings track at about +0.02em (ours were -0.02em),
   which is what makes ours look heavier at the same DM Sans 300. Match their tracking and their 13px small copy. */
.t-display, h1.t-display, .hero .t-display .lead, .hero .t-display .rest, .pipeline__head .lead, .pipeline__head .rest { letter-spacing: 0.02em; }
.t-heading, .t-h2, .t-stat, .proof__title, .founder__body h3, .footer__tag, .fbc h3, .way__body h3, .post-body h2, .fold--stats .fold__panel .t-stat, .nav__links a { letter-spacing: 0.025em; }
.t-h3, .t-sub, .card__body h3, .op__head h3, .person h3, .role h3, .news-card h3 { letter-spacing: 0.01em; }
.fold__panel p, .fold--stats .fold__panel p { font-size: 13px; line-height: 1.6; }

/* #5 section-head lines run to the full width on desktop (no balancing) */
@media (min-width: 801px) { .section-head .t-heading { text-wrap: pretty; } }

/* ===== 18 Sep, AZS comments on /team and /projects (design of record = AZS) ===== */
/* founders: their card. Copy left, photo right (200px, tab corner), bio across both columns. No hover. */
.founder, .founder.rv { display: grid; grid-template-columns: 1fr 260px; gap: 0 24px; padding: 32px; overflow: hidden; border-radius: 0 20px 0 0; align-items: start; }
.founder__img, .founder:hover .founder__img, .founder.is-lift .founder__img { grid-column: 2; grid-row: 1; height: 200px; border-radius: 0 20px 0 0; background: transparent; transition: none; }
.founder__img img, .founder:hover .founder__img img, .founder.is-lift .founder__img img { object-position: center 20%; transform: none; transition: none; }
.founder__body { grid-column: 1 / -1; grid-row: 1 / span 2; display: contents; }
.founder__body h3 { grid-column: 1; grid-row: 1; font-size: 22px; line-height: 1.3; font-weight: 400; letter-spacing: 0.01em; align-self: start; }
.founder__body .label { grid-column: 1; grid-row: 1; margin-top: 40px; font-family: var(--font-sans); font-size: 16px; text-transform: none; letter-spacing: 0; opacity: .85; color: #fff; }
.founder__body p { grid-column: 1 / -1; grid-row: 2; margin-top: 36px; max-width: none; font-size: 16px; line-height: 1.5; }
.founder__body .li { grid-column: 1; grid-row: 3; margin-top: 28px; justify-self: start; }
.founder__body { transition: none; }
@media (max-width: 800px) { .founder, .founder.rv { grid-template-columns: 1fr; padding: 24px; } .founder__img, .founder:hover .founder__img, .founder.is-lift .founder__img { grid-column: 1; grid-row: 1; height: 220px; margin-bottom: 20px; } .founder__body h3 { grid-row: 2; } .founder__body .label { grid-row: 2; } .founder__body p { grid-row: 3; } .founder__body .li { grid-row: 4; } }
/* people: tab corner on the photo, no card background, no hover */
.person__img { background: transparent; border-radius: 0 20px 0 0; }
.person:hover .person__img img { transform: none; }
.person__img img { transition: none; }
.person h3 { font-size: 20px; margin-top: 14px; }
.person .person__role { margin-top: 8px; }
.person .cred { text-transform: none; letter-spacing: .06em; margin-top: 10px; }
/* projects map: their load-in (states fill blue west to east as the map comes into view), no hover, no label */
.map-wrap--full .usmap path { pointer-events: none; }
.map-wrap--full .usmap path.on { animation: none; fill: #D9DAD6; transition: fill .6s cubic-bezier(.4,0,.2,1); transition-delay: var(--d, 0s); }
.map-wrap--full.is-play .usmap path.on { fill: var(--blue); }
.map-wrap--full .map-label { display: none; }
.map-wrap--full .usmap path { stroke: var(--paper); stroke-width: 1.2; stroke-linejoin: round; }

/* ===== 18 Sep, 1AP decision (Trey + Jorg): hero = the PV field photo from the current site, no plant animation ===== */
.hero--photo .hero__in { min-height: min(calc(100vh - 84px), 760px); }
.hero--photo .hero__copy { padding-top: clamp(120px, 20vh, 200px); }
.hero__field--photo { border-left: 0; overflow: hidden; background: #D9DAD6; }
.hero__field--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; }
@media (max-width: 800px) { .hero--photo .hero__in { min-height: 0; } .hero--photo .hero__copy { padding-top: 40px; } .hero__field--photo { height: clamp(300px, 46vh, 420px); min-height: 0; border-top: 0; } }
