#trajectory { background: #2C5E44; padding: clamp(4rem, 8vw, 7rem) 0; }
#trajectory > *:not(.tj) { display: none !important; }

.tj {
  --ink: #FBF8F2; --sec: rgba(251,248,242,.72); --ter: rgba(251,248,242,.5);
  --hair: rgba(255,255,255,.12); --card: rgba(255,255,255,.045); --green: #3AB648;
  max-width: 1240px; margin-inline: auto; padding-inline: clamp(1.5rem, 4vw, 2.5rem);
  color: var(--ink); font-variant-numeric: tabular-nums;
}

.tj-eyebrow { margin: 0 0 1.5rem; }
.tj-eyebrow span {
  display: inline-block; padding: .55rem 1.1rem; border-radius: 999px;
  background: rgba(58,182,72,.14); font-size: .75rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--green);
}
.tj-head {
  margin: 0; max-width: 20ch; font-size: clamp(2rem, 3.8vw, 3.4rem); font-weight: 600;
  letter-spacing: -.04em; line-height: 1.05; text-wrap: balance;
}
.tj-lede { margin: 1.25rem 0 0; max-width: 68ch; font-size: clamp(1rem, 1.25vw, 1.15rem); line-height: 1.55; color: var(--sec); }
.tj-asof { margin: .6rem 0 0; font-size: .8125rem; color: var(--ter); }

.cards {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(.75rem, 1.5vw, 1.1rem); margin-top: clamp(2rem, 4vw, 3rem);
}
.cards-3 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.cards-4 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.mx {
  display: flex; flex-direction: column; gap: .35rem;
  padding: 1.25rem 1.25rem 1.1rem; border: 1px solid var(--hair); border-radius: 4px; background: var(--card);
}
.mx-v { font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 600; letter-spacing: -.045em; line-height: 1; color: var(--green); }
.mx-k { font-size: .95rem; font-weight: 600; letter-spacing: -.01em; }
.mx-m { margin: .15rem 0 0; font-size: .8125rem; line-height: 1.45; color: var(--sec); }
.mx-s { display: flex; flex-wrap: wrap; gap: .35rem; margin: .5rem 0 0; }

.tag {
  display: inline-block; padding: .2rem .55rem; border-radius: 3px;
  font-size: .6875rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
  border: 1px solid var(--hair); color: var(--ter);
}
.tag-prod { border-color: rgba(58,182,72,.5); color: var(--green); }
.tag-model, .tag-company { border-color: rgba(255,255,255,.28); color: var(--sec); }
.tag-placeholder { border-color: #E0B054; color: #E0B054; }
.tag-strong { border-color: rgba(58,182,72,.5); color: var(--green); }
.tag-early { border-color: rgba(255,255,255,.28); color: var(--sec); }
.tag-unproven { border-color: rgba(255,255,255,.2); color: var(--ter); }
.tag-risk { border-color: #E0B054; color: #E0B054; }

.fns { display: grid; gap: clamp(1.5rem, 3vw, 2.25rem); margin-top: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 1000px) { .fns { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fn { border-top: 2px solid var(--green); padding-top: 1.1rem; }
.fn-h { margin: 0; font-size: 1.05rem; font-weight: 600; letter-spacing: -.015em; }
.fn-n { margin: .4rem 0 1.1rem; font-size: .8125rem; line-height: 1.5; color: var(--sec); max-width: 44ch; }
.fn-l { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.fn-s { padding: .8rem .95rem; border: 1px solid var(--hair); border-radius: 4px; background: var(--card); }
.fn-v { font-size: 1.5rem; font-weight: 600; letter-spacing: -.03em; line-height: 1.1; color: var(--green); }
.fn-k { font-size: .875rem; font-weight: 600; }
.fn-m { margin: .2rem 0 0; font-size: .78125rem; line-height: 1.45; color: var(--sec); }
.fn-r { display: inline-block; margin-top: .4rem; font-size: .6875rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--ter); }
.fn-gap { margin: .5rem 0 0; padding-left: .7rem; border-left: 2px solid #E0B054; font-size: .78125rem; line-height: 1.45; color: var(--sec); }

.sec-h { margin: clamp(2.75rem, 5vw, 4rem) 0 .5rem; font-size: clamp(1.3rem, 2vw, 1.7rem); font-weight: 600; letter-spacing: -.025em; }
.sec-p { margin: 0; max-width: 66ch; font-size: .9375rem; line-height: 1.55; color: var(--sec); }
.sec-warn { margin-top: 1.25rem; padding-left: .8rem; border-left: 2px solid #E0B054; }

.tj-cases { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.tj-case {
  font: inherit; font-size: .95rem; font-weight: 600; letter-spacing: -.01em; color: var(--ink);
  background: transparent; border: 1px solid rgba(255,255,255,.3); border-radius: 999px;
  padding: .6rem 1.3rem; cursor: pointer; transition: background .2s ease, border-color .2s ease;
}
.tj-case:hover { border-color: rgba(255,255,255,.6); }
.tj-case[aria-selected="true"] { background: var(--green); border-color: var(--green); color: #FBF8F2; }
.tj-case:focus-visible, .au-b:focus-visible { outline: 2px solid #FBF8F2; outline-offset: 2px; }
.tj-casenote { margin: .9rem 0 0; max-width: 60ch; font-size: .875rem; line-height: 1.5; color: var(--sec); }

.tj-chart { position: relative; margin-top: 1.5rem; padding: 1.25rem; border: 1px solid var(--hair); border-radius: 4px; background: var(--card); }
.tj-chart .tag { position: absolute; top: 1.25rem; right: 1.25rem; }
.tj-svg { display: block; width: 100%; height: auto; }
.tj-grid { stroke: rgba(255,255,255,.09); stroke-width: 1; }
.tj-hz { stroke: rgba(255,255,255,.3); stroke-width: 1; stroke-dasharray: 4 5; }
.tj-ax { fill: rgba(251,248,242,.5); font-size: 17px; font-weight: 500; }
.tj-line { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.tj-sel { stroke: var(--green); stroke-width: 4.5; }
.tj-dim { stroke: rgba(251,248,242,.3); stroke-width: 2; }
.tj-area { fill: rgba(58,182,72,.16); }

.au { margin-top: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid var(--hair); padding-top: 1.5rem; }
.au-b {
  font: inherit; font-size: .875rem; font-weight: 600; letter-spacing: .02em; color: var(--sec);
  background: transparent; border: 1px solid var(--hair); border-radius: 999px; padding: .6rem 1.2rem; cursor: pointer;
}
.au-b:hover { color: var(--ink); border-color: rgba(255,255,255,.4); }
.au-body { margin-top: 1.5rem; }
.au-p { margin: 0 0 1.1rem; max-width: 72ch; font-size: .8125rem; line-height: 1.55; color: var(--ter); }
.au-h { margin: 1.75rem 0 .6rem; font-size: .95rem; font-weight: 600; }
.au-l { margin: 0; padding-left: 1.1rem; font-size: .8125rem; line-height: 1.6; color: var(--sec); }
.au-tw { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.au-t { width: 100%; min-width: 700px; border-collapse: collapse; font-size: .8125rem; }
.au-t th, .au-t td { padding: .5rem .7rem; border-bottom: 1px solid var(--hair); text-align: right; white-space: nowrap; }
.au-t thead th { color: var(--ter); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: .6875rem; }
.au-t th[scope="row"] { text-align: left; font-weight: 500; color: var(--sec); }
.au-t tbody tr:first-child th, .au-t tbody tr:first-child td { font-weight: 600; color: var(--ink); }

@media (prefers-reduced-motion: reduce) { .tj * { transition: none !important; animation: none !important; } }

.tj-figs { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:clamp(1rem,3vw,2.5rem); margin-top:clamp(2rem,4vw,3rem); }
.tj-fig-v { font-size:clamp(2rem,3.6vw,3rem); font-weight:600; letter-spacing:-.045em; line-height:1; color:var(--green); font-variant-numeric:tabular-nums; }
.tj-fig-k { margin-top:.4rem; font-size:.9375rem; color:var(--sec); }
.tj-cta { margin-top:clamp(1.75rem,3vw,2.5rem); }
