/* Prediction Solver — public landing page.
 *
 * Loads AFTER brand.css and uses its tokens for every colour, font, radius and
 * easing. Nothing here redefines the palette: the site has one visual system,
 * and a marketing page that drifts from the product is how a brand starts
 * looking cheap. All selectors are namespaced .ps- so they cannot collide with
 * the app's .gi- components.
 */

.ps {
  margin: 0;
  background: var(--gi-bg);
  color: var(--gi-text);
  font-family: var(--gi-font);
  line-height: var(--gi-lh);
  -webkit-font-smoothing: antialiased;
}
.ps a { color: inherit; }

/* ------------------------------------------------------------------- nav */
.ps-nav {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  gap: var(--gi-sp-5);
  padding: var(--gi-sp-3) var(--gi-sp-6);
  background: rgba(6, 9, 11, .82);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--gi-line);
}
.ps-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
/* The mark: a chevron cut from the accent. Geometric, so it scales to a
   favicon without an illustrator. */
.ps-brand__mark {
  width: 22px; height: 22px; flex: 0 0 auto;
  background: linear-gradient(135deg, var(--gi-accent), var(--gi-accent-2));
  clip-path: polygon(0 0, 62% 0, 100% 50%, 62% 100%, 0 100%, 38% 50%);
  box-shadow: var(--gi-glow-accent);
}
.ps-brand__text {
  font: 800 var(--gi-fs-md)/1 var(--gi-font-cond);
  letter-spacing: .1em;
  color: var(--gi-chalk);
}
.ps-brand__text em { font-style: normal; color: var(--gi-accent); }
.ps-brand__text--sm { font-size: var(--gi-fs-sm); }

.ps-nav__links { display: flex; gap: var(--gi-sp-5); margin-left: var(--gi-sp-4); }
.ps-nav__links a {
  text-decoration: none;
  color: var(--gi-text-dim);
  font-size: var(--gi-fs-sm);
  font-weight: 600;
  transition: color var(--gi-dur-1) var(--gi-ease);
}
.ps-nav__links a:hover { color: var(--gi-text); }
.ps-nav__cta { margin-left: auto; display: flex; gap: var(--gi-sp-2); }

/* ------------------------------------------------------------------ hero */
.ps-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: var(--gi-sp-8);
  align-items: center;
  max-width: 1280px;
  margin: 0 auto;
  padding: var(--gi-sp-8) var(--gi-sp-6) var(--gi-sp-8);
}
/* Accent bloom behind the headline. */
.ps-hero__glow {
  position: absolute;
  left: -14%; top: -46%;
  width: 780px; height: 780px;
  border-radius: 50%;
  background: radial-gradient(closest-side,
    rgba(255, 90, 31, .20), rgba(255, 90, 31, .06) 58%, transparent 72%);
  pointer-events: none;
}
/* Faint field lines — the product is a field, so the page should hint at one. */
.ps-hero__grid {
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(90deg,
    transparent 0 78px, rgba(234, 242, 238, .035) 78px 79px);
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 22%, #000 68%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 22%, #000 68%, transparent);
  pointer-events: none;
}
.ps-hero__in { position: relative; z-index: 1; min-width: 0; }

.ps-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 11px;
  border: 1px solid var(--gi-line-strong);
  border-radius: var(--gi-r-pill);
  background: var(--gi-surface);
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  color: var(--gi-text-dim);
}
.ps-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--gi-good);
  box-shadow: 0 0 0 3px rgba(47, 208, 122, .16);
  animation: ps-pulse 2.4s var(--gi-ease) infinite;
}
@keyframes ps-pulse { 0%, 100% { opacity: 1 } 50% { opacity: .35 } }

.ps-h1 {
  margin: var(--gi-sp-4) 0 0;
  font: 800 clamp(52px, 8.2vw, 104px)/.92 var(--gi-font-cond);
  letter-spacing: -.015em;
  text-transform: uppercase;
  color: var(--gi-chalk);
  text-wrap: balance;
}
.ps-sub {
  margin: var(--gi-sp-3) 0 0;
  font: 700 var(--gi-fs-xl)/1.2 var(--gi-font-cond);
  letter-spacing: .02em;
  color: var(--gi-accent);
}
.ps-lede {
  margin: var(--gi-sp-4) 0 0;
  max-width: 58ch;
  color: var(--gi-text-dim);
  font-size: var(--gi-fs-md);
}

.ps-cta { display: flex; flex-wrap: wrap; gap: var(--gi-sp-3); margin-top: var(--gi-sp-6); }

.ps-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: var(--gi-sp-7) 0 0;
  background: var(--gi-line);
  border: 1px solid var(--gi-line);
  border-radius: var(--gi-r-md);
  overflow: hidden;
}
.ps-stats > div { padding: var(--gi-sp-3) var(--gi-sp-4); background: var(--gi-bg-2); }
.ps-stats dt {
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  text-transform: uppercase;
  color: var(--gi-text-mute);
}
.ps-stats dd {
  margin: 7px 0 0;
  font: 700 var(--gi-fs-lg)/1 var(--gi-font-mono);
  color: var(--gi-chalk);
}

/* -------------------------------------------------- product illustration */
.ps-term {
  position: relative;
  z-index: 1;
  border: 1px solid var(--gi-line-strong);
  border-radius: var(--gi-r-lg);
  background: linear-gradient(180deg, var(--gi-surface), var(--gi-bg-2));
  box-shadow: var(--gi-shadow-3);
  overflow: hidden;
}
.ps-term__bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--gi-sp-3) var(--gi-sp-4);
  border-bottom: 1px solid var(--gi-line);
  background: rgba(0, 0, 0, .28);
}
.ps-term__live {
  display: inline-flex; align-items: center; gap: 7px;
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  color: var(--gi-text-dim);
}
.ps-term__live i {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--gi-bad);
  animation: ps-pulse 1.8s var(--gi-ease) infinite;
}
.ps-term__ttl {
  font: 600 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  color: var(--gi-text-mute);
}

.ps-term__score {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--gi-sp-4);
  padding: var(--gi-sp-5) var(--gi-sp-4);
  border-bottom: 1px solid var(--gi-line);
}
.ps-term__score > div { text-align: center; }
.ps-term__score span {
  display: block;
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  color: var(--gi-text-mute);
}
.ps-term__score strong {
  display: block; margin-top: 6px;
  font: 700 var(--gi-fs-3xl)/1 var(--gi-font-mono);
  color: var(--gi-chalk);
}
.ps-term__vs {
  font: 800 var(--gi-fs-3xs)/1.3 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  text-align: center;
  color: var(--gi-text-mute);
  max-width: 78px;
}

.ps-term__rows { padding: var(--gi-sp-4); display: grid; gap: var(--gi-sp-3); }
.ps-term__row {
  display: grid;
  grid-template-columns: 116px 1fr 54px;
  align-items: center;
  gap: var(--gi-sp-3);
}
.ps-term__k { font-size: var(--gi-fs-xs); color: var(--gi-text-dim); }
.ps-term__meter {
  position: relative;
  height: 8px;
  border-radius: var(--gi-r-pill);
  background: rgba(0, 0, 0, .45);
  overflow: hidden;
}
.ps-term__meter i {
  position: absolute; inset: 0 auto 0 0;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gi-accent), var(--gi-accent-2));
}
.ps-term__meter--mkt i { background: linear-gradient(90deg, #3a4750, var(--gi-line-strong)); }
.ps-term__v {
  text-align: right;
  font: 700 var(--gi-fs-sm)/1 var(--gi-font-mono);
  color: var(--gi-chalk);
}

.ps-term__foot {
  display: flex; align-items: center; gap: var(--gi-sp-2);
  padding: var(--gi-sp-3) var(--gi-sp-4);
  border-top: 1px solid var(--gi-line);
  background: rgba(0, 0, 0, .22);
}
.ps-tag {
  padding: 3px 8px;
  border-radius: var(--gi-r-xs);
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: .1em;
}
.ps-tag--model { color: var(--gi-accent); border: 1px solid rgba(255, 90, 31, .45); background: rgba(255, 90, 31, .12); }
.ps-tag--mkt { color: var(--gi-text-dim); border: 1px solid var(--gi-line-strong); background: rgba(255, 255, 255, .04); }
.ps-term__note { margin-left: auto; font-size: var(--gi-fs-2xs); color: var(--gi-text-mute); }

/* ----------------------------------------------------------------- bands */
.ps-band { border-top: 1px solid var(--gi-line); }
.ps-band--alt { background: var(--gi-bg-2); }
.ps-band__in { max-width: 1280px; margin: 0 auto; padding: var(--gi-sp-8) var(--gi-sp-6); }

.ps-kicker {
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  text-transform: uppercase;
  color: var(--gi-accent);
}
.ps-h2 {
  margin: var(--gi-sp-3) 0 0;
  font: 800 clamp(30px, 4vw, 46px)/1.05 var(--gi-font-cond);
  letter-spacing: -.01em;
  text-transform: uppercase;
  color: var(--gi-chalk);
}
.ps-band__lede { margin: var(--gi-sp-3) 0 0; max-width: 62ch; color: var(--gi-text-dim); }

.ps-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
  gap: var(--gi-sp-5);
  margin: var(--gi-sp-6) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: none;
}
.ps-steps li {
  padding: var(--gi-sp-5);
  border: 1px solid var(--gi-line);
  border-top: 2px solid var(--gi-accent);
  border-radius: var(--gi-r-md);
  background: var(--gi-surface);
  box-shadow: var(--gi-shadow-2);
}
.ps-step__n {
  font: 700 var(--gi-fs-2xl)/1 var(--gi-font-mono);
  color: rgba(255, 90, 31, .35);
}
.ps-steps h3 {
  margin: var(--gi-sp-2) 0 var(--gi-sp-2);
  font: 700 var(--gi-fs-lg)/1.2 var(--gi-font-cond);
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--gi-chalk);
}
.ps-steps p { margin: 0; color: var(--gi-text-dim); font-size: var(--gi-fs-sm); }

.ps-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(276px, 1fr));
  gap: var(--gi-sp-4);
  margin-top: var(--gi-sp-6);
}
.ps-card {
  padding: var(--gi-sp-5);
  border: 1px solid var(--gi-line);
  border-radius: var(--gi-r-md);
  background: var(--gi-surface);
  transition: border-color var(--gi-dur-2) var(--gi-ease),
              transform var(--gi-dur-2) var(--gi-ease-out);
}
.ps-card:hover { border-color: var(--gi-line-strong); transform: translateY(-2px); }
.ps-card h3 {
  margin: 0 0 var(--gi-sp-2);
  font: 700 var(--gi-fs-md)/1.2 var(--gi-font-cond);
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--gi-chalk);
}
.ps-card p { margin: 0; color: var(--gi-text-dim); font-size: var(--gi-fs-sm); }

/* ---------------------------------------------------------------- tiers */
.ps-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(292px, 1fr));
  gap: var(--gi-sp-4);
  margin-top: var(--gi-sp-6);
  max-width: 820px;
}
.ps-tier {
  position: relative;
  padding: var(--gi-sp-6);
  border: 1px solid var(--gi-line);
  border-radius: var(--gi-r-lg);
  background: var(--gi-surface);
}
.ps-tier--feature {
  border-color: rgba(255, 90, 31, .5);
  box-shadow: var(--gi-glow-accent), var(--gi-shadow-2);
}
.ps-tier__flag {
  position: absolute; top: -10px; left: var(--gi-sp-6);
  padding: 3px 9px;
  border-radius: var(--gi-r-pill);
  background: var(--gi-accent);
  color: var(--gi-accent-ink);
  font: 800 var(--gi-fs-3xs)/1.6 var(--gi-font-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.ps-tier h3 {
  margin: 0;
  font: 700 var(--gi-fs-lg)/1 var(--gi-font-cond);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--gi-chalk);
}
.ps-tier__price {
  margin: var(--gi-sp-2) 0 var(--gi-sp-4);
  font: 700 var(--gi-fs-4xl)/1 var(--gi-font-mono);
  color: var(--gi-chalk);
}
.ps-tier__price span { font-size: var(--gi-fs-xl); color: var(--gi-text-mute); vertical-align: super; }
.ps-tier__price--tbd { font-size: var(--gi-fs-xl); color: var(--gi-text-dim); }
.ps-tier ul { margin: 0 0 var(--gi-sp-5); padding: 0; list-style: none; display: grid; gap: 9px; }
.ps-tier li {
  position: relative;
  padding-left: 22px;
  color: var(--gi-text-dim);
  font-size: var(--gi-fs-sm);
}
.ps-tier li:before {
  content: "";
  position: absolute; left: 4px; top: 7px;
  width: 7px; height: 7px;
  border-right: 2px solid var(--gi-accent);
  border-bottom: 2px solid var(--gi-accent);
  transform: rotate(45deg);
}

/* ------------------------------------------------------------- legal bar */
.ps-legal {
  border-top: 1px solid var(--gi-line);
  background: rgba(255, 197, 61, .05);
}
.ps-legal__in {
  max-width: 1280px;
  margin: 0 auto;
  padding: var(--gi-sp-5) var(--gi-sp-6);
  font-size: var(--gi-fs-xs);
  line-height: 1.65;
  color: var(--gi-text-dim);
}
.ps-legal strong { color: var(--gi-warn); }
.ps-legal__age { color: var(--gi-text-mute); }

/* ---------------------------------------------------------------- footer */
.ps-foot { border-top: 1px solid var(--gi-line); background: var(--gi-bg); }
.ps-foot__in {
  max-width: 1280px;
  margin: 0 auto;
  padding: var(--gi-sp-5) var(--gi-sp-6);
  display: flex;
  align-items: center;
  gap: var(--gi-sp-5);
  flex-wrap: wrap;
}
.ps-foot nav { display: flex; gap: var(--gi-sp-4); }
.ps-foot a {
  text-decoration: none;
  color: var(--gi-text-dim);
  font-size: var(--gi-fs-xs);
}
.ps-foot a:hover { color: var(--gi-text); }
.ps-foot__c { margin-left: auto; color: var(--gi-text-mute); font-size: var(--gi-fs-2xs); }

/* ------------------------------------------------------------ responsive */
@media (max-width: 1040px) {
  .ps-hero { grid-template-columns: 1fr; gap: var(--gi-sp-6); padding-top: var(--gi-sp-7); }
  .ps-nav__links { display: none; }
}
@media (max-width: 720px) {
  .ps-nav { padding: var(--gi-sp-3) var(--gi-sp-4); }
  .ps-hero, .ps-band__in, .ps-foot__in, .ps-legal__in { padding-inline: var(--gi-sp-4); }
  .ps-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ps-term__row { grid-template-columns: 96px 1fr 48px; }
  .ps-foot__c { margin-left: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ps-dot, .ps-term__live i { animation: none; }
  .ps-card { transition: none; }
}

/* ---- model vs market, the gap ---------------------------------------------
   The one row on the page that states the product outright: two numbers and
   the distance between them. The gap is centred and coloured because it is
   the thing being sold; the two inputs are deliberately quieter. */
.ps-term__split {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--gi-sp-3);
  padding: var(--gi-sp-4);
  border-top: 1px solid var(--gi-line);
  background: rgba(0, 0, 0, .18);
}
.ps-term__split > div { text-align: center; }
.ps-term__split span {
  display: block;
  font: 800 var(--gi-fs-3xs)/1 var(--gi-font-mono);
  letter-spacing: var(--gi-tracking-caps);
  color: var(--gi-text-mute);
}
.ps-term__split strong {
  display: block; margin-top: 5px;
  font: 700 var(--gi-fs-xl)/1 var(--gi-font-mono);
  color: var(--gi-accent);
}
.ps-term__split strong.is-mkt { color: var(--gi-text-dim); }
.ps-term__gap {
  min-width: 74px;
  padding: 6px 10px;
  border: 1px solid rgba(255, 90, 31, .4);
  border-radius: var(--gi-r-sm);
  background: rgba(255, 90, 31, .1);
}
.ps-term__gap em {
  display: block;
  font: 700 var(--gi-fs-md)/1 var(--gi-font-mono);
  font-style: normal;
  color: var(--gi-accent);
}
.ps-term__gap span { margin-top: 4px; }
@media (max-width: 560px) {
  .ps-term__split { grid-template-columns: 1fr auto 1fr; gap: var(--gi-sp-2); padding: var(--gi-sp-3); }
  .ps-term__split strong { font-size: var(--gi-fs-lg); }
}
