/* The source stylesheet now owns layout, typography, and color without overrides. */
body {
  font-kerning: normal;
  text-rendering: optimizeLegibility;
}

/* Futuristic instrument language: existing PTGR palette, unchanged copy. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .16;
  background-image:
    linear-gradient(color-mix(in srgb, var(--blue-light) 26%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--blue-light) 26%, transparent) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: radial-gradient(circle at 78% 18%, black, transparent 58%);
  animation: ptgr-grid-drift 9s linear infinite;
}

body > nav,
body > main,
body > footer,
.page-progress {
  position: relative;
  z-index: 1;
}

.site-nav {
  border-bottom-color: color-mix(in srgb, var(--blue-light) 70%, transparent);
  box-shadow: 0 18px 52px color-mix(in srgb, var(--navy) 38%, transparent);
}

.site-nav::before {
  content: "";
  position: absolute;
  right: 4.2vw;
  bottom: -1px;
  width: min(34vw, 540px);
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, var(--blue-light), var(--yellow), transparent);
  box-shadow: 0 0 12px color-mix(in srgb, var(--blue-light) 58%, transparent);
  animation: ptgr-nav-signal 3.2s ease-in-out infinite;
}

.home-hero,
.page-hero,
.closing,
.halftitle,
.closer {
  isolation: isolate;
}

.home-hero {
  background-image:
    radial-gradient(circle at 83% 44%, color-mix(in srgb, var(--blue-light) 62%, transparent), transparent 30%),
    linear-gradient(125deg, var(--navy) 0%, color-mix(in srgb, var(--navy) 82%, var(--blue)) 58%, var(--blue) 100%);
}

.signal-field::before {
  content: "";
  position: absolute;
  top: 48%;
  left: 50%;
  width: min(92%, 650px);
  aspect-ratio: 1;
  z-index: 0;
  pointer-events: none;
  opacity: .82;
  border-radius: 50%;
  background: conic-gradient(
    from 18deg,
    transparent 0 8%,
    color-mix(in srgb, var(--blue-light) 72%, transparent) 8.5% 11%,
    transparent 11.5% 24%,
    color-mix(in srgb, var(--yellow) 52%, transparent) 24.5% 26%,
    transparent 26.5% 47%,
    color-mix(in srgb, var(--blue-light) 52%, transparent) 47.5% 53%,
    transparent 53.5% 68%,
    color-mix(in srgb, var(--red) 48%, transparent) 68.5% 70%,
    transparent 70.5% 89%,
    color-mix(in srgb, var(--blue-light) 68%, transparent) 89.5% 94%,
    transparent 94.5%
  );
  mask-image: radial-gradient(circle, transparent 0 38%, black 38.5% 39.4%, transparent 40% 46%, black 46.5% 47.2%, transparent 48% 55%, black 55.5% 56%, transparent 56.7%);
  filter: drop-shadow(0 0 12px color-mix(in srgb, var(--blue-light) 30%, transparent));
  transform: translate(-50%, -50%) rotate(0deg) scale(.98);
  animation: ptgr-orbit-live 7.5s linear infinite;
}

.signal-field::after {
  content: "";
  position: absolute;
  inset: 10% 1% 9% 5%;
  z-index: 0;
  pointer-events: none;
  opacity: .72;
  background:
    linear-gradient(90deg, transparent 0 12%, color-mix(in srgb, var(--blue-light) 64%, transparent) 12% 12.25%, transparent 12.25% 87%, color-mix(in srgb, var(--yellow) 55%, transparent) 87% 87.25%, transparent 87.25%),
    linear-gradient(transparent 0 18%, color-mix(in srgb, var(--blue-light) 48%, transparent) 18% 18.25%, transparent 18.25% 82%, color-mix(in srgb, var(--blue-light) 48%, transparent) 82% 82.25%, transparent 82.25%);
  clip-path: polygon(0 14%, 7% 14%, 7% 0, 43% 0, 43% 4%, 78% 4%, 78% 12%, 100% 12%, 100% 88%, 91% 88%, 91% 100%, 57% 100%, 57% 96%, 18% 96%, 18% 88%, 0 88%);
  animation: ptgr-frame-breathe 2.7s ease-in-out infinite;
}

.alive-brand > img,
.alive-brand > canvas,
.alive-wordmark,
.signal-status,
.hero-record {
  z-index: 2;
}

.firm-lines,
.offer,
.score-card,
.team-member,
.page-section,
.vital,
.person {
  position: relative;
}

.firm-line,
.offer,
.score-card,
.team-member,
.page-section,
.vital,
.person {
  border-color: color-mix(in srgb, var(--blue-light) 46%, transparent);
  box-shadow:
    inset 0 1px color-mix(in srgb, var(--paper) 7%, transparent),
    0 18px 50px color-mix(in srgb, var(--navy) 14%, transparent);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.firm-line:hover,
.offer:hover,
.score-card:hover,
.team-member:hover,
.page-section:hover,
.vital:hover,
.person:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--blue-light) 78%, transparent);
  box-shadow:
    inset 0 1px color-mix(in srgb, var(--paper) 10%, transparent),
    0 22px 60px color-mix(in srgb, var(--blue-light) 16%, transparent);
}

.firm-line::after,
.offer::after,
.score-card::after,
.team-member::after,
.page-section::after,
.vital::after,
.person::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 38px;
  height: 38px;
  pointer-events: none;
  background:
    linear-gradient(135deg, transparent 47%, color-mix(in srgb, var(--blue-light) 62%, transparent) 48% 50%, transparent 51%);
  opacity: .78;
  animation: ptgr-corner-pulse 2.1s ease-in-out infinite;
}

.call-time,
.story-answer {
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--yellow) 44%, transparent),
    0 0 34px color-mix(in srgb, var(--yellow) 10%, transparent);
}

.call-time::after,
.story-answer::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .28;
  background-image: repeating-linear-gradient(90deg, transparent 0 31px, color-mix(in srgb, var(--yellow) 42%, transparent) 32px);
  mask-image: linear-gradient(90deg, black, transparent 22%, transparent 78%, black);
  animation: ptgr-trace-travel 3.8s linear infinite;
}

.page-hero,
.closing,
.halftitle,
.closer {
  background-image:
    radial-gradient(circle at 84% 46%, transparent 0 108px, color-mix(in srgb, var(--blue-light) 38%, transparent) 109px 110px, transparent 111px 158px, color-mix(in srgb, var(--blue-light) 22%, transparent) 159px 160px, transparent 161px),
    linear-gradient(90deg, transparent 0 78%, color-mix(in srgb, var(--blue-light) 14%, transparent));
}

.signal-status span {
  animation: ptgr-status-live 1.8s ease-out infinite;
}

@keyframes ptgr-grid-drift {
  to { background-position: 72px 36px, 36px 72px; }
}

@keyframes ptgr-nav-signal {
  0%, 100% { opacity: .35; transform: scaleX(.72); transform-origin: right; }
  50% { opacity: 1; transform: scaleX(1); transform-origin: right; }
}

@keyframes ptgr-orbit-live {
  0% { transform: translate(-50%, -50%) rotate(0deg) scale(.98); opacity: .58; }
  45% { opacity: .9; }
  50% { transform: translate(-50%, -50%) rotate(180deg) scale(1.025); opacity: 1; }
  100% { transform: translate(-50%, -50%) rotate(360deg) scale(.98); opacity: .58; }
}

@keyframes ptgr-frame-breathe {
  0%, 100% { opacity: .35; filter: drop-shadow(0 0 0 transparent); }
  50% { opacity: .88; filter: drop-shadow(0 0 8px color-mix(in srgb, var(--blue-light) 34%, transparent)); }
}

@keyframes ptgr-corner-pulse {
  0%, 100% { opacity: .28; }
  50% { opacity: .95; }
}

@keyframes ptgr-trace-travel {
  to { background-position: 320px 0; }
}

@keyframes ptgr-status-live {
  0% { box-shadow: 0 0 0 0 currentColor; }
  70% { box-shadow: 0 0 0 9px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}

@media (max-width: 900px) {
  body::before { background-size: 48px 48px; opacity: .1; }
  .home-hero {
    background-image:
      linear-gradient(145deg, var(--navy), var(--blue));
  }

  .signal-field::before { width: min(96%, 430px); top: 45%; }
}

@media (prefers-reduced-motion: reduce) {
  .alive-brand > canvas { display: block; }
  .alive-brand > img { animation: ptgr-agent-breathe 4s ease-in-out infinite; }
  body::before { animation-duration: 18s; }
  .signal-field::before { animation-duration: 15s; }
  .call-time::after,
  .story-answer::after { animation-duration: 8s; }
}

@keyframes ptgr-agent-breathe {
  0%, 100% { transform: translateX(-50%) scale(.99); opacity: .86; }
  50% { transform: translateX(-50%) scale(1.012); opacity: 1; }
}

/* Homepage middle: an active operational sequence, not a card stack. */
@media (min-width: 901px) {
  .firm {
    display: grid;
    grid-template-columns: minmax(280px, .72fr) minmax(560px, 1.28fr);
    grid-template-rows: auto auto auto;
    column-gap: clamp(56px, 7vw, 132px);
    row-gap: 26px;
    align-items: start;
    padding-top: clamp(92px, 10vw, 160px);
    padding-bottom: clamp(92px, 10vw, 160px);
    overflow: hidden;
  }

  .firm-head {
    grid-column: 1;
    grid-row: 1 / 4;
    display: block;
    position: sticky;
    top: 140px;
    padding-left: 26px;
    border-left: 1px solid var(--blue-light);
  }

  .firm-head > .mono { margin-bottom: 24px; }
  .firm-head > h2 { margin-bottom: 28px; font-size: clamp(64px, 6vw, 108px); line-height: .82; }
  .firm-head > p { max-width: 420px; }

  .firm-lines {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    position: relative;
    border: 0;
    overflow: visible;
  }

  .firm-lines::before {
    content: "";
    position: absolute;
    top: 32px;
    bottom: 32px;
    left: 24px;
    width: 1px;
    background: linear-gradient(var(--blue-light), var(--yellow), var(--red), var(--blue-light));
    box-shadow: 0 0 14px color-mix(in srgb, var(--blue-light) 52%, transparent);
  }

  .firm-lines::after {
    content: "";
    position: absolute;
    left: 19px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--yellow);
    box-shadow: 0 0 18px var(--yellow);
    animation: ptgr-stage-run 6.5s ease-in-out infinite;
  }

  .firm-line {
    min-height: 112px;
    display: grid;
    grid-template-columns: minmax(190px, .6fr) minmax(0, 1.4fr);
    align-items: center;
    gap: 28px;
    padding: 24px 28px 24px 72px;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--blue-light) 28%, transparent);
    border-radius: 0;
    background: linear-gradient(90deg, color-mix(in srgb, var(--blue) 30%, transparent), transparent 76%);
    box-shadow: none;
    animation: ptgr-stage-wake 6.5s ease-in-out infinite;
  }

  .firm-line:nth-child(2) { animation-delay: 1.3s; }
  .firm-line:nth-child(3) { animation-delay: 2.6s; }
  .firm-line:nth-child(4) { animation-delay: 3.9s; }
  .firm-line:nth-child(5) { animation-delay: 5.2s; }
  .firm-line::before { left: 12px; top: 50%; transform: translateY(-50%); }
  .firm-line::after { display: none; }
  .firm-line h3 { margin: 0; font-size: clamp(28px, 2.3vw, 42px); }
  .firm-line p { margin: 0; max-width: 520px; }

  .call-time {
    grid-column: 2;
    grid-row: 2;
    min-height: 96px;
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    align-items: center;
    justify-items: start;
    gap: 26px;
    padding: 24px 30px;
    text-align: left;
  }

  .call-time .mono,
  .call-time p { text-align: left; }
  .firm > .text-link { grid-column: 2; grid-row: 3; justify-self: start; }

  .story {
    display: grid;
    grid-template-columns: minmax(220px, .42fr) minmax(0, 1.58fr);
    gap: clamp(48px, 7vw, 120px);
    align-items: start;
    padding-top: clamp(110px, 12vw, 190px);
    padding-bottom: clamp(110px, 12vw, 190px);
    border-top-width: 1px;
  }

  .story-label {
    position: sticky;
    top: 140px;
    padding: 18px 0 18px 24px;
    border-left: 1px solid var(--blue-light);
  }

  .story-text h2 { max-width: 980px; margin-bottom: clamp(58px, 7vw, 104px); }
  .story-scenes { display: grid; grid-template-columns: 1fr; gap: 0; }
  .scene {
    max-width: 860px;
    margin: 0;
    padding: 30px 0;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--blue-light) 30%, transparent);
    background: transparent;
    font-size: clamp(24px, 2.2vw, 38px);
  }
  .scene:nth-child(2) { margin-left: clamp(44px, 7vw, 120px); }
  .story-answer { margin-top: 58px; min-height: 108px; }

  .time-strip {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding-top: 58px;
    padding-bottom: 82px;
    overflow: hidden;
  }

  .time-strip::before {
    content: "";
    position: absolute;
    top: 35px;
    right: 4.2vw;
    left: 4.2vw;
    height: 1px;
    background: color-mix(in srgb, var(--blue-light) 52%, transparent);
  }

  .time-strip::after {
    content: "";
    position: absolute;
    top: 30px;
    left: 4.2vw;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--yellow);
    box-shadow: 0 0 20px var(--yellow);
    animation: ptgr-time-run 5.2s ease-in-out infinite;
  }

  .moment {
    min-height: 128px;
    padding: 28px clamp(24px, 3vw, 52px);
    border: 0;
    border-left: 1px solid color-mix(in srgb, var(--blue-light) 32%, transparent);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .moment:first-child { border-left: 0; }
  .moment time { display: block; margin-bottom: 16px; }

  .offers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    padding-top: 0;
    padding-bottom: clamp(110px, 12vw, 180px);
  }

  .offer {
    min-height: 470px;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
    border: 1px solid color-mix(in srgb, var(--blue-light) 46%, transparent);
    border-radius: 18px;
    overflow: hidden;
  }
  .offer + .offer { border-left-width: 1px; }
  .offer-name { min-height: 190px; padding: 34px 38px; }
  .offer-name h2 { font-size: clamp(72px, 8vw, 124px); line-height: .78; }
  .offer-copy { display: flex; flex-direction: column; align-items: flex-start; padding: 38px; }
  .offer-copy h3 { max-width: 560px; }
  .offer-copy p { max-width: 560px; }
  .offer-copy .text-link { margin-top: auto; }

  .offer::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(110deg, transparent 38%, color-mix(in srgb, var(--paper) 9%, transparent) 49%, transparent 60%);
    transform: translateX(-120%);
    animation: ptgr-channel-scan 5.8s ease-in-out infinite;
  }
  .offer.ctu::before { animation-delay: 2.9s; }

  .closing {
    display: grid;
    grid-template-columns: minmax(320px, .65fr) minmax(580px, 1.35fr);
    gap: clamp(52px, 8vw, 140px);
    align-items: start;
    padding-top: clamp(110px, 12vw, 180px);
    padding-bottom: clamp(110px, 12vw, 180px);
    text-align: left;
  }
  .closing > div { position: sticky; top: 140px; text-align: left; }
  .closing > div > p { text-align: left; }
  .closing-form { width: 100%; grid-template-columns: 1fr; padding: clamp(30px, 4vw, 58px); }
  .closing-form label,
  .closing-message,
  .closing-form .button,
  .closing-form-status { grid-column: 1; }
}

@keyframes ptgr-stage-run {
  0%, 100% { top: 32px; }
  50% { top: calc(100% - 43px); }
}

@keyframes ptgr-stage-wake {
  0%, 16%, 100% { background-position: -100% 0; opacity: .64; }
  24%, 42% { background-position: 0 0; opacity: 1; }
}

@keyframes ptgr-time-run {
  0%, 8% { left: 4.2vw; }
  30% { left: 29%; }
  56% { left: 54%; }
  82%, 100% { left: calc(95.8vw - 11px); }
}

@keyframes ptgr-channel-scan {
  0%, 22% { transform: translateX(-120%); }
  55%, 100% { transform: translateX(120%); }
}

@media (max-width: 900px) {
  .firm-line,
  .moment,
  .offer { animation: ptgr-mobile-wake 4.8s ease-in-out infinite; }
  .firm-line:nth-child(even),
  .moment:nth-child(even),
  .offer:nth-child(even) { animation-delay: 2.4s; }
}

@keyframes ptgr-mobile-wake {
  0%, 100% { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--blue-light) 22%, transparent); }
  50% { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--blue-light) 74%, transparent), 0 0 28px color-mix(in srgb, var(--blue-light) 12%, transparent); }
}

/* All interior pages share the homepage's living instrument system. */
.page-hero {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.page-hero > * {
  position: relative;
  z-index: 3;
}

.page-hero::after {
  content: "";
  position: absolute;
  top: 50%;
  right: clamp(-150px, -5vw, -40px);
  width: min(54vw, 720px);
  aspect-ratio: 1;
  z-index: 1;
  pointer-events: none;
  border-radius: 50%;
  opacity: .68;
  background: conic-gradient(
    from 12deg,
    transparent 0 7%,
    color-mix(in srgb, var(--blue-light) 72%, transparent) 7.5% 11%,
    transparent 11.5% 25%,
    color-mix(in srgb, var(--yellow) 48%, transparent) 25.5% 27%,
    transparent 27.5% 49%,
    color-mix(in srgb, var(--blue-light) 48%, transparent) 49.5% 55%,
    transparent 55.5% 73%,
    color-mix(in srgb, var(--red) 46%, transparent) 73.5% 75%,
    transparent 75.5% 91%,
    color-mix(in srgb, var(--blue-light) 66%, transparent) 91.5% 96%,
    transparent 96.5%
  );
  mask-image: radial-gradient(circle, transparent 0 37%, black 37.5% 38.4%, transparent 39% 46%, black 46.5% 47.2%, transparent 48% 55%, black 55.5% 56.2%, transparent 57%);
  transform: translateY(-50%) rotate(0deg);
  filter: drop-shadow(0 0 12px color-mix(in srgb, var(--blue-light) 28%, transparent));
  animation: ptgr-page-orbit 10s linear infinite;
}

.page-hero::before {
  animation: ptgr-hero-field 6s ease-in-out infinite;
}

.page-hero h1,
.page-hero p,
.page-hero .kicker {
  animation: ptgr-copy-signal 5.4s ease-in-out infinite;
}

.page-hero p { animation-delay: .35s; }
.page-hero .kicker { animation-delay: .7s; }

.page-body,
.team-list,
.score-suite {
  position: relative;
  overflow: hidden;
}

.page-body::before,
.team-list::before {
  content: "";
  position: absolute;
  top: clamp(70px, 8vw, 130px);
  bottom: clamp(70px, 8vw, 130px);
  left: calc(4.5vw + 18px);
  width: 1px;
  z-index: 1;
  background: linear-gradient(var(--blue-light), var(--yellow), var(--red), var(--blue-light));
  box-shadow: 0 0 16px color-mix(in srgb, var(--blue-light) 44%, transparent);
}

.page-body::after,
.team-list::after {
  content: "";
  position: absolute;
  left: calc(4.5vw + 13px);
  width: 11px;
  height: 11px;
  z-index: 3;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 18px var(--yellow);
  animation: ptgr-page-run 7s ease-in-out infinite;
}

.page-section,
.team-member {
  position: relative;
  z-index: 2;
  animation: ptgr-section-wake 7s ease-in-out infinite;
}

.page-section:nth-child(2),
.team-member:nth-child(2) { animation-delay: 1.4s; }
.page-section:nth-child(3),
.team-member:nth-child(3) { animation-delay: 2.8s; }
.page-section:nth-child(4),
.team-member:nth-child(4) { animation-delay: 4.2s; }
.page-section:nth-child(5),
.team-member:nth-child(5) { animation-delay: 5.6s; }

.page-section::before,
.team-member::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -1px;
  width: 32px;
  height: 1px;
  background: var(--blue-light);
  box-shadow: 0 0 10px color-mix(in srgb, var(--blue-light) 52%, transparent);
}

.page-section h2,
.team-name h2,
.score-card h3 {
  transition: transform .35s ease, text-shadow .35s ease;
}

.page-section:hover h2,
.team-member:hover .team-name h2,
.score-card:hover h3 {
  transform: translateX(7px);
  text-shadow: 0 0 20px color-mix(in srgb, var(--blue-light) 28%, transparent);
}

.team-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}

.team-member {
  min-height: 210px;
  display: grid;
  grid-template-columns: 90px minmax(250px, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(26px, 5vw, 86px);
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--blue-light) 30%, transparent);
  border-radius: 0;
  background: linear-gradient(90deg, color-mix(in srgb, var(--blue) 20%, transparent), transparent 74%);
  box-shadow: none;
}

.team-number {
  position: relative;
  display: grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border: 1px solid var(--blue-light);
  border-radius: 50%;
  animation: ptgr-node-pulse 3s ease-in-out infinite;
}

.team-member:nth-child(even) .team-number { animation-delay: 1.5s; }

.intelligence-engine {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.intelligence-engine::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(110deg, transparent 34%, color-mix(in srgb, var(--blue-light) 12%, transparent) 49%, transparent 64%);
  transform: translateX(-120%);
  animation: ptgr-engine-scan 4.6s ease-in-out infinite;
}

.engine-status span,
.score-state::before {
  animation: ptgr-status-live 1.5s ease-out infinite;
}

.score-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  position: relative;
}

.score-grid::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 4%;
  left: 4%;
  height: 1px;
  z-index: 0;
  background: linear-gradient(90deg, transparent, var(--blue-light), var(--yellow), var(--blue-light), transparent);
  background-size: 220% 100%;
  animation: ptgr-score-line 4s linear infinite;
}

.score-card {
  min-height: 300px;
  z-index: 1;
  animation: ptgr-score-wake 6s ease-in-out infinite;
}
.score-card:nth-child(2) { animation-delay: 1.5s; }
.score-card:nth-child(3) { animation-delay: 3s; }
.score-card:nth-child(4) { animation-delay: 4.5s; }

.contact-form {
  position: relative;
  overflow: hidden;
}

.contact-form::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 2px;
  background: linear-gradient(var(--blue-light), var(--yellow), var(--red), var(--blue-light));
  background-size: 100% 200%;
  animation: ptgr-form-rail 4s linear infinite;
}

.contact-form label {
  transition: transform .25s ease, color .25s ease;
}

.contact-form label:focus-within {
  transform: translateX(6px);
  color: var(--yellow);
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: var(--blue-light);
  box-shadow: 0 0 0 1px var(--blue-light), 0 0 24px color-mix(in srgb, var(--blue-light) 18%, transparent);
}

.confidentiality {
  position: relative;
  overflow: hidden;
  animation: ptgr-corner-pulse 3.2s ease-in-out infinite;
}

@keyframes ptgr-page-orbit {
  to { transform: translateY(-50%) rotate(360deg); }
}

@keyframes ptgr-hero-field {
  0%, 100% { opacity: .42; filter: saturate(.86); }
  50% { opacity: .88; filter: saturate(1.12); }
}

@keyframes ptgr-copy-signal {
  0%, 100% { opacity: .88; }
  50% { opacity: 1; }
}

@keyframes ptgr-page-run {
  0%, 100% { top: clamp(70px, 8vw, 130px); }
  50% { top: calc(100% - clamp(82px, 9vw, 142px)); }
}

@keyframes ptgr-section-wake {
  0%, 18%, 100% { border-color: color-mix(in srgb, var(--blue-light) 24%, transparent); }
  28%, 46% { border-color: color-mix(in srgb, var(--blue-light) 76%, transparent); }
}

@keyframes ptgr-node-pulse {
  0%, 100% { box-shadow: 0 0 0 0 transparent; }
  50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--blue-light) 10%, transparent), 0 0 24px color-mix(in srgb, var(--blue-light) 28%, transparent); }
}

@keyframes ptgr-engine-scan {
  0%, 18% { transform: translateX(-120%); }
  68%, 100% { transform: translateX(120%); }
}

@keyframes ptgr-score-line {
  to { background-position: -220% 0; }
}

@keyframes ptgr-score-wake {
  0%, 18%, 100% { transform: translateY(0); }
  28%, 44% { transform: translateY(-6px); }
}

@keyframes ptgr-form-rail {
  to { background-position: 0 -200%; }
}

@media (max-width: 900px) {
  .page-hero::after { width: 540px; right: -260px; opacity: .42; }
  .page-body::before,
  .page-body::after,
  .team-list::before,
  .team-list::after { display: none; }
  .team-member {
    min-height: auto;
    grid-template-columns: 64px 1fr;
  }
  .team-bio { grid-column: 2; }
  .score-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .page-hero::after { width: 410px; right: -255px; }
  .team-member { grid-template-columns: 1fr; }
  .team-bio { grid-column: 1; }
}

/* Living PTGR brain signature on every interior hero and every footer. */
.agentic-brain {
  position: absolute;
  z-index: 2;
  pointer-events: auto;
  cursor: pointer;
  isolation: isolate;
}

.agentic-brain::before {
  content: "";
  position: absolute;
  inset: -9%;
  z-index: 0;
  border-radius: 50%;
  opacity: .82;
  background: conic-gradient(
    from 24deg,
    transparent 0 8%,
    color-mix(in srgb, var(--blue-light) 72%, transparent) 8.5% 12%,
    transparent 12.5% 27%,
    color-mix(in srgb, var(--yellow) 54%, transparent) 27.5% 30%,
    transparent 30.5% 50%,
    color-mix(in srgb, var(--blue-light) 54%, transparent) 50.5% 56%,
    transparent 56.5% 73%,
    color-mix(in srgb, var(--red) 50%, transparent) 73.5% 76%,
    transparent 76.5% 91%,
    color-mix(in srgb, var(--blue-light) 68%, transparent) 91.5% 96%,
    transparent 96.5%
  );
  mask-image: radial-gradient(circle, transparent 0 39%, black 39.5% 40.4%, transparent 41% 48%, black 48.5% 49.3%, transparent 50% 57%, black 57.5% 58.2%, transparent 59%);
  filter: drop-shadow(0 0 12px color-mix(in srgb, var(--blue-light) 34%, transparent));
  animation: ptgr-brain-orbit 8s linear infinite;
}

.agentic-brain::after {
  content: "";
  position: absolute;
  inset: 8%;
  z-index: 0;
  opacity: .7;
  background:
    linear-gradient(90deg, transparent 0 14%, color-mix(in srgb, var(--blue-light) 70%, transparent) 14% 14.4%, transparent 14.4% 86%, color-mix(in srgb, var(--yellow) 58%, transparent) 86% 86.4%, transparent 86.4%),
    linear-gradient(transparent 0 18%, color-mix(in srgb, var(--blue-light) 52%, transparent) 18% 18.4%, transparent 18.4% 82%, color-mix(in srgb, var(--blue-light) 52%, transparent) 82% 82.4%, transparent 82.4%);
  clip-path: polygon(0 16%, 9% 16%, 9% 0, 42% 0, 42% 5%, 82% 5%, 82% 14%, 100% 14%, 100% 86%, 91% 86%, 91% 100%, 58% 100%, 58% 95%, 17% 95%, 17% 86%, 0 86%);
  animation: ptgr-frame-breathe 2.7s ease-in-out infinite;
}

.agentic-brain img,
.agentic-brain canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.agentic-brain img {
  z-index: 1;
  object-fit: contain;
  opacity: .94;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 18px color-mix(in srgb, var(--blue-light) 28%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--red) 20%, transparent));
  animation: ptgr-node-breathe 4.2s ease-in-out infinite;
}

.agentic-brain canvas {
  z-index: 3;
  mix-blend-mode: screen;
}

.page-brain {
  top: 50%;
  right: clamp(28px, 5vw, 92px);
  width: clamp(300px, 31vw, 520px);
  aspect-ratio: 1;
  transform: translateY(-50%);
}

.page-hero:has(.page-brain) > :not(.page-brain) {
  max-width: min(62%, 920px);
}

.founder-page .page-brain {
  width: clamp(250px, 25vw, 420px);
}

.founder-page .page-hero:has(.page-brain) > :not(.page-brain) {
  max-width: 52%;
}

footer {
  position: relative;
  min-height: 124px;
  padding-left: 5vw;
  padding-right: 5vw;
  overflow: hidden;
}

.footer-brain {
  left: 50%;
  right: auto;
  top: 50%;
  bottom: auto;
  width: clamp(76px, 6vw, 96px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}

.footer-brain::before { animation-duration: 11s; opacity: .54; }
.footer-brain::after { animation-duration: 4s; opacity: .3; }
.footer-brain img { animation-duration: 5.6s; opacity: .74; }

.agentic-brain:focus-visible,
.alive-brand:focus-visible {
  outline: 2px solid var(--yellow);
  outline-offset: 8px;
  border-radius: 50%;
}

.agentic-brain:hover img,
.alive-brand:hover > img {
  filter: drop-shadow(0 0 26px color-mix(in srgb, var(--blue-light) 52%, transparent)) drop-shadow(0 0 20px color-mix(in srgb, var(--red) 32%, transparent));
}

@keyframes ptgr-brain-orbit {
  to { transform: rotate(360deg); }
}

@keyframes ptgr-node-breathe {
  0%, 100% { transform: scale(.985); opacity: .84; }
  50% { transform: scale(1.018); opacity: 1; }
}

@media (max-width: 900px) {
  .page-brain {
    right: -90px;
    width: 380px;
    opacity: .5;
  }
  .page-hero:has(.page-brain) > :not(.page-brain),
  .founder-page .page-hero:has(.page-brain) > :not(.page-brain) {
    max-width: 78%;
  }
  footer { min-height: 118px; padding-left: 5vw; padding-right: 5vw; }
  .footer-brain { left: 50%; right: auto; width: 84px; }
}

@media (max-width: 620px) {
  .page-brain { right: -150px; width: 330px; opacity: .38; }
  .page-hero:has(.page-brain) > :not(.page-brain),
  .founder-page .page-hero:has(.page-brain) > :not(.page-brain) { max-width: 92%; }
  footer { min-height: 108px; padding-left: 5vw; padding-right: 5vw; }
  .footer-brain { left: 50%; right: auto; width: 72px; }
}

.alive-brand {
  cursor: pointer;
}

/* Navigation hierarchy: Strategies / CTU / STAT read as black / yellow / red. */
.nav-links > a[href="#firm"],
.nav-links > a[href="strategies.html"],
.nav-links > a[href="/#firm"] {
  padding: 10px 14px;
  border: 1px solid color-mix(in srgb, var(--paper) 12%, transparent);
  border-radius: 7px;
  background: #020a13;
  color: var(--paper);
}

.nav-links > a[href="ctu.html"],
.nav-links > a[href="/ctu"] {
  padding: 10px 14px;
  border-radius: 7px;
  background: var(--ctu-yellow);
  color: var(--navy);
}

.nav-links > a[href="stat.html"],
.nav-links > a[href="/stat"] {
  padding: 10px 14px;
  border-radius: 7px;
  background: var(--stat-red);
  color: var(--paper);
}

.nav-links > a[href="#firm"]::after,
.nav-links > a[href="strategies.html"]::after,
.nav-links > a[href="/#firm"]::after,
.nav-links > a[href="ctu.html"]::after,
.nav-links > a[href="/ctu"]::after,
.nav-links > a[href="stat.html"]::after,
.nav-links > a[href="/stat"]::after {
  display: none;
}

/* Team page: one composed, full-scale editorial section instead of stacked cards. */
.team-page .team-overview {
  position: relative;
  min-height: calc(100svh - 96px);
  display: grid;
  grid-template-columns: minmax(310px, .7fr) minmax(620px, 1.3fr);
  align-items: center;
  gap: clamp(54px, 7vw, 130px);
  padding: clamp(88px, 10vh, 130px) 4.5vw clamp(54px, 7vh, 90px);
  overflow: hidden;
  background: var(--navy);
}

.team-page .team-overview > .page-hero {
  min-height: 0;
  display: block;
  padding: 0 0 28px 26px;
  overflow: visible;
  background: transparent;
  border-left: 1px solid var(--blue-light);
  border-bottom: 1px solid var(--blue-light);
}

.team-page .team-overview > .page-hero::before,
.team-page .team-overview > .page-hero::after {
  display: none;
}

.team-page .page-hero .kicker {
  margin-bottom: clamp(24px, 3.5vh, 42px);
}

.team-page .page-hero h1 {
  max-width: 660px;
  font-size: clamp(58px, 5.2vw, 96px);
  line-height: .96;
}

.team-page .page-hero .team-intro {
  max-width: 580px;
  margin-top: 28px;
  font-size: clamp(22px, 1.7vw, 31px);
  line-height: 1.35;
}

.team-page .team-list {
  min-width: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--blue-light) 22%, transparent);
  background: color-mix(in srgb, var(--blue) 18%, var(--navy));
  box-shadow: 0 28px 80px color-mix(in srgb, #000 28%, transparent);
}

.team-page .team-list::before {
  top: 28px;
  bottom: 28px;
  left: 28px;
}

.team-page .team-list::after {
  left: 23px;
}

.team-page .team-member {
  box-sizing: border-box;
  min-height: clamp(112px, 13.5vh, 150px);
  margin: 0;
  padding: 14px clamp(24px, 3vw, 48px) 14px 20px;
  grid-template-columns: 62px minmax(220px, .72fr) minmax(280px, 1.28fr);
  gap: clamp(22px, 3vw, 52px);
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--blue-light) 18%, transparent);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  animation-duration: 9s;
}

.team-page .team-member:last-child {
  border-bottom: 0;
}

.team-page .team-member:hover {
  padding-left: 20px;
  transform: none;
  background: color-mix(in srgb, var(--blue-light) 6%, transparent);
}

.team-page .team-number {
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  color: var(--blue-light);
  font-size: clamp(17px, 1.25vw, 22px);
}

.team-page .team-name h2 {
  margin: 0;
  font-size: clamp(29px, 2.1vw, 39px);
}

.team-page .team-name p {
  font-size: clamp(15px, 1vw, 18px);
  line-height: 1.25;
}

.team-page .team-bio {
  font-size: clamp(16px, 1.05vw, 19px);
  line-height: 1.35;
}

.team-page .team-name p {
  margin: 8px 0 0;
}

.team-page .team-bio {
  margin: 0;
}

.team-page .team-overview > .page-brain {
  top: 28px;
  right: 3vw;
  width: clamp(130px, 12vw, 190px);
  transform: none;
  opacity: .38;
}

.team-page .closing {
  min-height: calc(100svh - 96px);
}

@media (max-width: 1100px) {
  .team-page .team-overview {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .team-page .team-overview > .page-hero {
    max-width: 760px;
  }
}

@media (max-width: 700px) {
  .nav-links > a[href="#firm"],
  .nav-links > a[href="strategies.html"],
  .nav-links > a[href="/#firm"],
  .nav-links > a[href="ctu.html"],
  .nav-links > a[href="/ctu"],
  .nav-links > a[href="stat.html"],
  .nav-links > a[href="/stat"] {
    padding: 8px 10px;
  }

  .team-page .team-overview {
    display: block;
    padding: 72px 20px 44px;
  }

  .team-page .team-list {
    margin-top: 44px;
  }

  .team-page .team-member {
    min-height: 0;
    grid-template-columns: 44px 1fr;
    gap: 12px 16px;
    padding: 24px 18px;
  }

  .team-page .team-member:hover { padding-left: 18px; }
  .team-page .team-bio { grid-column: 2; }
  .team-page .team-overview > .page-brain { width: 112px; opacity: .26; }
}
