{"id":37788,"date":"2026-06-15T11:00:21","date_gmt":"2026-06-15T18:00:21","guid":{"rendered":"https:\/\/www.ispot.tv\/hub\/?page_id=37788"},"modified":"2026-07-22T07:17:49","modified_gmt":"2026-07-22T14:17:49","slug":"outcomes","status":"publish","type":"page","link":"https:\/\/www.ispot.tv\/hub\/outcomes\/","title":{"rendered":"Control Your Outcomes"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n@keyframes sageTyping {\n  0%,\n  60%,\n  to {\n    opacity: .3\n  }\n\n  30% {\n    opacity: 1\n  }\n}\n\n@keyframes spin {\n  to {\n    transform: rotate(360deg)\n  }\n}\n\n:root {\n  --paper: #FFFFFF;\n  --paper-2: #F6F7F8;\n  --paper-3: #EEF0F2;\n  --ink: #1A1D1F;\n  --ink-2: #3B4042;\n  --ink-dark: #292D2F;\n  --muted: #6B7378;\n  --line: #E3E6E8;\n  --line-soft: #EEF0F2;\n  --accent: #4AC500;\n  --accent-2: #6FA000;\n  --accent-3: #00574e;\n  --accent-4: #00B79A;\n  --accent-soft: #EDF5D6;\n  --warn: #D43F2A;\n  --warn-2: #EC5A45;\n  --warn-soft: #FCE4DF;\n  --highlight: #00846B;\n  --sub-highlight: #00A219;\n  --teal: #235569;\n  --teal-dark: #294F69;\n  --teal-deep: #1b4554;\n  --mint: #A3FEE6;\n  --mint-soft: rgba(149, 241, 221, 0.18);\n  --shadow: 0 1px 0 rgba(26, 29, 31, .04), 0 12px 32px -16px rgba(26, 29, 31, .10);\n  --sans: \"Poppins\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  --mono: \"Poppins\", ui-monospace, Menlo, monospace\n}\n\n* {\n  box-sizing: border-box\n}\n\nhtml {\n  scroll-behavior: smooth\n}\n\nbody {\n  margin: 0;\n  background: var(--paper);\n  color: var(--ink);\n  font-family: var(--sans);\n  font-size: 17px;\n  line-height: 1.6;\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n  overflow-x: hidden\n}\n\n.outcomes-container {\n  max-width: 1180px;\n  margin: 0 auto;\n  padding: 0 32px;\n  position: relative;\n  z-index: 2\n}\n\n.outcomes-narrow {\n  max-width: 720px;\n  margin: 0 auto\n}\n\n.hero,\nsection.story {\n  border-bottom: 1px solid var(--line);\n  background: var(--paper)\n}\n\n.hero {\n  padding: 90px 0 110px;\n  position: relative\n}\n\n.bombshell-text h2,\n.kicker {\n  font-family: var(--sans);\n  font-weight: 700\n}\n\n.kicker {\n  font-size: 12px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  color: var(--accent-3);\n  margin-bottom: 28px;\n  display: flex;\n  align-items: center;\n  gap: 14px\n}\n\n.hero-headline {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: clamp(44px, 6.8vw, 88px);\n  line-height: 1.02;\n  letter-spacing: -.035em;\n  margin: 0 0 32px;\n  max-width: 18ch;\n  color: var(--ink)\n}\n\n.hero-headline .big {\n  color: var(--highlight);\n  font-weight: 800\n}\n\n.hero-headline .strike {\n  text-decoration: line-through;\n  text-decoration-thickness: 4px;\n  text-decoration-color: var(--warn);\n  color: var(--muted)\n}\n\n.hero-deck {\n  font-family: var(--sans);\n  font-weight: 400;\n  font-size: clamp(19px, 1.9vw, 23px);\n  line-height: 1.5;\n  max-width: 56ch;\n  color: var(--ink-2);\n  margin: 0 0 48px\n}\n\n.hero-deck em,\np em {\n  font-style: normal\n}\n\n.hero-byline {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 28px;\n  font-family: var(--sans);\n  font-size: 13px;\n  letter-spacing: .02em;\n  color: var(--muted);\n  padding-top: 28px;\n  border-top: 1px solid var(--line);\n  max-width: 720px;\n  font-weight: 500\n}\n\n.hero-byline strong,\n.hero-deck em,\np em {\n  color: var(--ink);\n  font-weight: 700\n}\n\n.bombshell {\n  padding: 100px 0;\n  background: var(--teal);\n  color: var(--paper);\n  position: relative;\n  overflow: hidden\n}\n\n.bombshell-grid {\n  display: grid;\n  grid-template-columns: 1.1fr 1fr;\n  gap: 80px;\n  align-items: center\n}\n\n@media (max-width:860px) {\n  .bombshell-grid {\n    grid-template-columns: 1fr;\n    gap: 40px\n  }\n}\n\n.bombshell-num {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: clamp(140px, 22vw, 300px);\n  line-height: .88;\n  letter-spacing: -.06em;\n  color: var(--mint);\n  position: relative\n}\n\n.bombshell-num .lt,\n.bombshell-num .pct {\n  font-weight: 400;\n  color: var(--paper);\n  letter-spacing: 0\n}\n\n.bombshell-num .lt {\n  font-size: .45em;\n  vertical-align: .6em;\n  margin-right: .06em\n}\n\n.bombshell-num .pct {\n  font-size: .4em;\n  vertical-align: .55em;\n  margin-left: .08em\n}\n\n.bombshell-text h2 {\n  font-size: clamp(26px, 3.3vw, 38px);\n  line-height: 1.2;\n  margin: 0 0 24px;\n  color: var(--paper);\n  letter-spacing: -.02em\n}\n\n.bombshell-text h2 em {\n  font-style: normal;\n  color: var(--mint);\n  font-weight: 800\n}\n\n.bombshell-text p {\n  font-family: var(--sans);\n  font-size: 17px;\n  line-height: 1.65;\n  color: rgba(255, 255, 255, .72);\n  margin: 0 0 16px;\n  max-width: 48ch\n}\n\n.bombshell-label {\n  margin-top: 32px;\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  color: rgba(255, 255, 255, .48)\n}\n\nsection.story {\n  padding: 100px 0\n}\n\nsection.story:last-child {\n  border-bottom: none\n}\n\nsection.closing.alt,\nsection.story.alt {\n  background: var(--paper-2)\n}\n\n.section-num {\n  font-size: 12px;\n  letter-spacing: .14em;\n  color: var(--accent-3);\n  text-transform: uppercase;\n  margin-bottom: 28px;\n  display: flex;\n  align-items: center;\n  gap: 0;\n  font-weight: 700\n}\n\nh2.section-title {\n  font-weight: 800;\n  font-size: clamp(32px, 4.6vw, 52px);\n  line-height: 1.1;\n  letter-spacing: -.03em;\n  margin: 0 0 32px;\n  max-width: 22ch;\n  color: var(--ink)\n}\n\nh2.section-title em {\n  font-style: normal;\n  font-weight: 800;\n  color: var(--highlight)\n}\n\n.section-num,\nh2.section-title,\nh3,\np.lede {\n  font-family: var(--sans)\n}\n\nh3 {\n  font-weight: 700;\n  font-size: clamp(22px, 2.4vw, 28px);\n  line-height: 1.25;\n  letter-spacing: -.02em;\n  margin: 0 0 16px;\n  color: var(--ink)\n}\n\np.lede {\n  font-weight: 500;\n  font-size: clamp(19px, 1.9vw, 22px);\n  line-height: 1.5;\n  margin: 0 0 24px;\n  max-width: 56ch\n}\n\n.pillar p,\np,\np.lede {\n  color: var(--ink-2)\n}\n\np {\n  margin: 0 0 18px;\n  max-width: 62ch\n}\n\n.dropcap::first-letter {\n  font-family: var(--sans);\n  font-weight: 800;\n  float: left;\n  font-size: 3.6em;\n  line-height: .9;\n  padding-right: 14px;\n  padding-top: 10px;\n  color: var(--accent);\n  letter-spacing: -.04em\n}\n\n.pillars {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 20px;\n  margin: 48px 0 0\n}\n\n@media (max-width:860px) {\n  .pillars {\n    grid-template-columns: 1fr\n  }\n}\n\n.pillar {\n  background: var(--paper);\n  border: 1px solid var(--line);\n  padding: 32px;\n  position: relative;\n  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;\n  border-radius: 4px\n}\n\n.pillar:hover {\n  transform: translateY(-2px);\n  box-shadow: var(--shadow);\n  border-color: var(--accent)\n}\n\n.pillar-num {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 56px;\n  line-height: 1;\n  color: var(--accent);\n  margin-bottom: 12px;\n  letter-spacing: -.04em\n}\n\n.pillar-tag {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  color: var(--muted);\n  margin-bottom: 10px;\n  font-weight: 500\n}\n\n.pillar h4,\n.pillar p em,\np strong {\n  font-weight: 700;\n  color: var(--ink)\n}\n\n.pillar h4 {\n  font-family: var(--sans);\n  font-size: 20px;\n  line-height: 1.25;\n  margin: 0 0 12px;\n  letter-spacing: -.02em\n}\n\n.pillar p {\n  font-size: 15px;\n  line-height: 1.55;\n  margin: 0\n}\n\n.pillar p em {\n  font-style: normal\n}\n\nsection.story.accel-section {\n  background: var(--paper-2);\n  border-top: 1px solid var(--line);\n  border-bottom: 1px solid var(--line)\n}\n\n.accel-stage {\n  display: grid;\n  grid-template-columns: 1.05fr 1fr;\n  gap: 24px;\n  margin: 48px 0 12px\n}\n\n@media (max-width:860px) {\n  .accel-stage {\n    grid-template-columns: 1fr;\n    gap: 18px\n  }\n}\n\n.sage-panel {\n  background: var(--teal-dark);\n  border-radius: 6px;\n  overflow: hidden;\n  border: 1px solid var(--teal-deep);\n  box-shadow: 0 12px 32px -16px rgba(27, 69, 84, .4);\n  display: flex;\n  flex-direction: column\n}\n\n.sage-header {\n  display: flex;\n  align-items: center;\n  gap: 10px;\n  padding: 13px 18px;\n  border-bottom: 1px solid rgba(149, 241, 221, .18);\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  background: rgba(0, 0, 0, .18)\n}\n\n.sage-dot {\n  width: 8px;\n  height: 8px;\n  border-radius: 50%;\n  background: var(--mint);\n  box-shadow: 0 0 10px var(--mint)\n}\n\n.sage-a strong,\n.sage-name {\n  color: var(--mint);\n  font-weight: 700\n}\n\n.sage-status {\n  color: rgba(149, 241, 221, .55);\n  margin-left: auto;\n  font-weight: 500;\n  letter-spacing: .08em\n}\n\n.sage-body {\n  padding: 22px 20px 18px;\n  display: flex;\n  flex-direction: column;\n  gap: 14px;\n  flex: 1;\n  min-height: 340px\n}\n\n.sage-msg {\n  font-size: 14px;\n  line-height: 1.55\n}\n\n.sage-q {\n  color: var(--mint);\n  font-family: var(--mono);\n  font-size: 13px;\n  letter-spacing: .01em\n}\n\n.sage-prompt {\n  color: var(--accent);\n  margin-right: 8px;\n  font-weight: 700\n}\n\n.sage-a {\n  color: var(--paper);\n  background: rgba(149, 241, 221, .06);\n  padding: 14px 16px;\n  border-left: 2px solid var(--mint);\n  border-radius: 0 4px 4px 0;\n  font-family: var(--sans);\n  font-size: 14px\n}\n\n.sage-a .sage-line {\n  margin-bottom: 8px;\n  line-height: 1.55\n}\n\n.sage-a .sage-line:last-child {\n  margin-bottom: 0\n}\n\n.sage-meta {\n  font-family: var(--mono);\n  font-size: 10.5px;\n  letter-spacing: .08em;\n  color: rgba(255, 255, 255, .5);\n  margin-top: 6px;\n  text-transform: uppercase\n}\n\n.sage-typing {\n  display: flex;\n  gap: 6px;\n  padding: 14px 16px;\n  align-items: center\n}\n\n.sage-dot-typing {\n  width: 6px;\n  height: 6px;\n  border-radius: 50%;\n  background: var(--mint);\n  opacity: .35;\n  animation: sageTyping 1.4s infinite\n}\n\n.sage-dot-typing:nth-child(2) {\n  animation-delay: .18s\n}\n\n.sage-dot-typing:nth-child(3) {\n  animation-delay: .36s\n}\n\n.velocity-panel {\n  background: var(--paper);\n  border: 1px solid var(--line);\n  border-radius: 6px;\n  padding: 22px 24px 18px;\n  display: flex;\n  flex-direction: column\n}\n\n.velocity-header {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  color: var(--muted);\n  font-weight: 600;\n  padding-bottom: 14px;\n  border-bottom: 1px solid var(--line);\n  display: flex;\n  align-items: center;\n  justify-content: space-between\n}\n\n.velocity-header .v-tag {\n  color: var(--accent-3);\n  font-weight: 700\n}\n\n.velocity-row {\n  display: grid;\n  grid-template-columns: 1fr auto 1fr;\n  align-items: center;\n  gap: 14px;\n  padding: 18px 0;\n  border-bottom: 1px dashed var(--line-soft)\n}\n\n.velocity-row:last-child {\n  border-bottom: none\n}\n\n.velocity-from .velocity-num {\n  color: var(--muted);\n  text-decoration: line-through;\n  text-decoration-color: rgba(212, 63, 42, .55);\n  text-decoration-thickness: 2px\n}\n\n.velocity-to .velocity-num {\n  color: var(--ink)\n}\n\n.velocity-num {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 22px;\n  line-height: 1.1;\n  letter-spacing: -.02em;\n  margin-bottom: 4px\n}\n\n.velocity-label {\n  font-family: var(--mono);\n  font-size: 10.5px;\n  letter-spacing: .08em;\n  color: var(--muted);\n  text-transform: uppercase;\n  font-weight: 500\n}\n\n.velocity-arrow {\n  color: var(--accent-3);\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 20px\n}\n\n@media (max-width:600px) {\n  .velocity-row {\n    grid-template-columns: 1fr;\n    gap: 6px;\n    padding: 14px 0\n  }\n\n  .velocity-arrow {\n    display: none\n  }\n\n  .velocity-to {\n    padding-top: 10px;\n    border-top: 1px dashed var(--line)\n  }\n\n  .sage-body {\n    min-height: auto;\n    padding: 18px 14px 14px\n  }\n}\n\n.accel-flow {\n  margin-top: 24px;\n  background: var(--paper);\n  border: 1px solid var(--line);\n  border-radius: 6px;\n  padding: 22px 28px;\n  display: grid;\n  grid-template-columns: 1fr auto 1fr auto 1fr;\n  align-items: center;\n  gap: 18px\n}\n\n@media (max-width:860px) {\n  .accel-flow {\n    grid-template-columns: 1fr;\n    gap: 16px;\n    padding: 20px 22px\n  }\n\n  .flow-arrow {\n    display: none\n  }\n}\n\n.flow-step {\n  display: flex;\n  flex-direction: column;\n  gap: 6px\n}\n\n.flow-tag {\n  font-family: var(--mono);\n  font-size: 10.5px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  color: var(--accent-3);\n  font-weight: 700\n}\n\n.flow-sub,\n.flow-title {\n  font-family: var(--sans)\n}\n\n.flow-title {\n  font-weight: 700;\n  font-size: 17px;\n  color: var(--ink);\n  letter-spacing: -.02em\n}\n\n.flow-sub {\n  font-size: 13px;\n  color: var(--ink-2);\n  line-height: 1.4\n}\n\n.flow-arrow,\n.spine-controls button {\n  color: var(--accent);\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 22px\n}\n\n.spine-stage {\n  background: var(--paper-2);\n  border: 1px solid var(--line);\n  padding: 32px;\n  margin: 48px 0;\n  position: relative;\n  border-radius: 4px\n}\n\n.spine-controls {\n  display: flex;\n  gap: 0;\n  margin-bottom: 24px;\n  border: 1px solid var(--ink);\n  width: fit-content;\n  border-radius: 4px;\n  overflow: hidden\n}\n\n.spine-controls button {\n  font-size: 13px;\n  font-weight: 600;\n  letter-spacing: .02em;\n  padding: 10px 22px;\n  background: 0 0;\n  border: 0;\n  border-right: 1px solid var(--ink);\n  cursor: pointer;\n  color: var(--ink);\n  transition: all .2s\n}\n\n.spine-controls button:last-child {\n  border-right: none\n}\n\n.spine-controls button.active {\n  background: var(--ink);\n  color: var(--paper)\n}\n\n.spine-canvas {\n  width: 100%;\n  height: 380px;\n  background: var(--paper);\n  border: 1px solid var(--line);\n  position: relative;\n  overflow: hidden;\n  border-radius: 4px\n}\n\n.industry-tabs button,\n.spine-legend {\n  font-family: var(--sans);\n  font-size: 13px;\n  color: var(--ink-2)\n}\n\n.spine-legend {\n  display: flex;\n  gap: 28px;\n  flex-wrap: wrap;\n  margin-top: 20px;\n  font-weight: 500\n}\n\n.legend-dot {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  margin-right: 8px;\n  vertical-align: middle\n}\n\n.explorer {\n  background: var(--paper-2);\n  border: 1px solid var(--line);\n  padding: 32px;\n  margin: 48px 0;\n  border-radius: 4px\n}\n\n.explorer-header {\n  display: flex;\n  justify-content: space-between;\n  align-items: flex-end;\n  flex-wrap: wrap;\n  gap: 20px;\n  margin-bottom: 28px\n}\n\n.explorer-title {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 22px;\n  margin: 0;\n  color: var(--ink);\n  letter-spacing: -.02em\n}\n\n.explorer-title em {\n  font-style: normal\n}\n\n.industry-tabs {\n  display: flex;\n  gap: 0;\n  background: var(--paper);\n  padding: 4px;\n  border: 1px solid var(--line);\n  flex-wrap: wrap;\n  border-radius: 4px\n}\n\n.industry-tabs button {\n  font-weight: 600;\n  padding: 8px 16px;\n  background: 0 0;\n  border: 0;\n  cursor: pointer;\n  transition: all .15s;\n  letter-spacing: 0;\n  border-radius: 3px\n}\n\n.industry-tabs button:hover {\n  color: var(--ink)\n}\n\n.industry-tabs button.active,\n.tw-controls button:hover {\n  background: var(--accent);\n  color: var(--ink)\n}\n\n.explorer-body {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 32px\n}\n\n@media (max-width:860px) {\n  .explorer-body {\n    grid-template-columns: 1fr\n  }\n}\n\n.chart-block h5 {\n  font-size: 12px;\n  font-weight: 700;\n  letter-spacing: .06em;\n  text-transform: uppercase;\n  margin: 0 0 6px\n}\n\n.chart-block .chart-sub {\n  font-family: var(--sans);\n  font-weight: 400;\n  font-size: 14px;\n  color: var(--muted);\n  margin: 0 0 18px\n}\n\n.chart-svg {\n  width: 100%;\n  height: 260px;\n  background: var(--paper);\n  border: 1px solid var(--line);\n  border-radius: 4px\n}\n\n.chart-block h5,\n.chart-callouts {\n  font-family: var(--sans);\n  color: var(--ink-2)\n}\n\n.chart-callouts {\n  margin-top: 14px;\n  display: flex;\n  gap: 24px;\n  flex-wrap: wrap;\n  font-size: 13px;\n  font-weight: 500\n}\n\n.callout-num,\n.relay h4,\n.world h4 {\n  font-family: var(--sans);\n  font-size: 22px;\n  letter-spacing: -.02em\n}\n\n.callout-num {\n  font-weight: 800;\n  color: var(--warn);\n  margin-right: 6px;\n  vertical-align: -2px\n}\n\n.two-worlds {\n  margin: 48px 0\n}\n\n.tw-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 20px\n}\n\n@media (max-width:860px) {\n  .tw-grid {\n    grid-template-columns: 1fr\n  }\n}\n\n.world {\n  background: var(--paper-2);\n  border: 1px solid var(--line);\n  padding: 28px;\n  position: relative;\n  overflow: hidden;\n  border-radius: 4px\n}\n\n.world.spike {\n  border-top: 4px solid var(--warn)\n}\n\n.world.full {\n  border-top: 4px solid var(--accent)\n}\n\n.world-label {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  color: var(--muted);\n  margin-bottom: 8px;\n  font-weight: 500\n}\n\n.relay h4,\n.world h4 {\n  font-weight: 700;\n  margin: 0 0 6px;\n  color: var(--ink)\n}\n\n.world .world-sub {\n  font-family: var(--sans);\n  font-weight: 400;\n  font-size: 14px;\n  color: var(--muted);\n  margin-bottom: 20px\n}\n\n.world-stage {\n  width: 100%;\n  height: 220px;\n  background: var(--paper);\n  border: 1px solid var(--line);\n  margin-bottom: 18px;\n  border-radius: 4px\n}\n\n.world-stat {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 40px;\n  line-height: 1;\n  margin-bottom: 4px;\n  letter-spacing: -.03em\n}\n\n.world.spike .world-stat {\n  color: var(--warn)\n}\n\n.outcomes-modal-consent a,\n.world.full .world-stat {\n  color: var(--accent-3)\n}\n\n.relay .relay-sub,\n.world-stat-label {\n  font-family: var(--sans);\n  font-size: 13px;\n  color: var(--ink-2);\n  font-weight: 500\n}\n\n.tw-controls {\n  margin-top: 24px;\n  text-align: center\n}\n\n.relay-toggle button,\n.tw-controls button {\n  font-family: var(--sans);\n  cursor: pointer;\n  border-radius: 4px\n}\n\n.tw-controls button {\n  font-size: 14px;\n  font-weight: 700;\n  letter-spacing: 0;\n  padding: 12px 28px;\n  background: var(--ink);\n  color: var(--paper);\n  border: 0;\n  transition: background .2s\n}\n\n.relay,\n.relay-stage {\n  border: 1px solid var(--line);\n  border-radius: 4px\n}\n\n.relay {\n  background: var(--paper-2);\n  padding: 32px;\n  margin: 48px 0\n}\n\n.relay .relay-sub {\n  font-weight: 400;\n  color: var(--muted);\n  margin-bottom: 28px;\n  font-size: 14px\n}\n\n.relay-stage {\n  background: var(--paper);\n  padding: 32px 24px;\n  position: relative;\n  overflow: hidden\n}\n\n.relay-toggle {\n  margin-top: 24px;\n  display: flex;\n  gap: 12px;\n  align-items: center;\n  flex-wrap: wrap\n}\n\n.relay-toggle .toggle-label {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  color: var(--muted);\n  margin-right: 8px;\n  font-weight: 500\n}\n\n.relay-toggle button {\n  font-size: 13px;\n  font-weight: 600;\n  padding: 9px 18px;\n  background: 0 0;\n  border: 1px solid var(--ink);\n  color: var(--ink);\n  transition: all .15s\n}\n\n.relay-toggle button.active.spike {\n  background: var(--warn);\n  border-color: var(--warn);\n  color: var(--paper)\n}\n\n.relay-toggle button.active.full {\n  background: var(--accent);\n  border-color: var(--accent);\n  color: var(--ink)\n}\n\n.myth-banner {\n  background: var(--ink-dark);\n  color: var(--paper);\n  padding: 110px 0 90px;\n  position: relative;\n  overflow: hidden;\n  border-top: 6px solid var(--warn)\n}\n\n.myth-banner .kicker,\n.myth-banner h2 em {\n  color: var(--warn-2)\n}\n\n.myth-banner .kicker::before {\n  background: var(--warn-2)\n}\n\n.myth-banner h2,\n.myth-content h3 {\n  font-family: var(--sans);\n  color: var(--paper)\n}\n\n.myth-banner h2 {\n  font-weight: 800;\n  font-size: clamp(44px, 7vw, 88px);\n  line-height: 1.02;\n  letter-spacing: -.04em;\n  margin: 0 0 28px\n}\n\n.myth-banner h2 em {\n  font-style: normal;\n  font-weight: 800\n}\n\n.myth-banner .deck {\n  font-family: var(--sans);\n  font-weight: 400;\n  font-size: clamp(19px, 2vw, 23px);\n  line-height: 1.5;\n  color: rgba(255, 255, 255, .75);\n  max-width: 56ch\n}\n\n.myth-list {\n  margin-top: 60px;\n  display: grid;\n  gap: 0;\n  border-top: 1px solid rgba(255, 255, 255, .15)\n}\n\n.myth-item {\n  padding: 36px 0;\n  border-bottom: 1px solid rgba(255, 255, 255, .15);\n  display: grid;\n  grid-template-columns: 110px 1fr;\n  gap: 32px;\n  align-items: start\n}\n\n@media (max-width:700px) {\n  .myth-item {\n    grid-template-columns: 1fr;\n    gap: 12px\n  }\n}\n\n.myth-mark {\n  font-family: var(--mono);\n  font-weight: 500;\n  font-size: 18px;\n  line-height: 1;\n  color: var(--warn-2);\n  padding-top: 8px;\n  letter-spacing: .04em\n}\n\n.myth-content h3 {\n  font-weight: 700;\n  font-size: clamp(22px, 2.4vw, 28px);\n  margin: 0 0 10px;\n  letter-spacing: -.02em\n}\n\n.myth-content p {\n  color: rgba(255, 255, 255, .72);\n  margin: 0;\n  max-width: 56ch\n}\n\n.myth-content p em {\n  font-style: normal;\n  font-weight: 700;\n  color: var(--paper)\n}\n\n.calc-input label,\n.myth-content .verdict {\n  font-family: var(--mono);\n  letter-spacing: .12em;\n  text-transform: uppercase;\n  font-weight: 600\n}\n\n.myth-content .verdict {\n  margin-top: 16px;\n  font-size: 12px;\n  color: var(--warn-2)\n}\n\n.calc {\n  background: var(--accent);\n  padding: 100px 0;\n  position: relative;\n  overflow: hidden\n}\n\n.calc,\n.calc .kicker,\n.calc h2 em {\n  color: var(--ink)\n}\n\n.calc .kicker::before {\n  background: var(--ink)\n}\n\n.calc .deck,\n.calc h2 {\n  font-family: var(--sans)\n}\n\n.calc h2 {\n  font-weight: 800;\n  font-size: clamp(34px, 5vw, 56px);\n  line-height: 1.05;\n  letter-spacing: -.03em;\n  margin: 0 0 28px;\n  color: var(--ink);\n  max-width: 22ch\n}\n\n.calc h2 em {\n  font-style: normal\n}\n\n.calc .deck {\n  font-weight: 500;\n  font-size: 19px;\n  line-height: 1.5;\n  color: rgba(26, 29, 31, .78);\n  max-width: 52ch;\n  margin-bottom: 56px\n}\n\n.calc-grid {\n  display: grid;\n  grid-template-columns: 1fr 1.4fr;\n  gap: 48px;\n  align-items: center\n}\n\n@media (max-width:860px) {\n  .calc-grid {\n    grid-template-columns: 1fr\n  }\n}\n\n.calc-input label {\n  font-size: 11px;\n  color: rgba(26, 29, 31, .65);\n  display: block;\n  margin-bottom: 14px\n}\n\n.spend-display {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: clamp(48px, 7vw, 88px);\n  line-height: 1;\n  letter-spacing: -.04em;\n  color: var(--ink);\n  margin-bottom: 20px\n}\n\ninput[type=range] {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 100%;\n  height: 4px;\n  background: rgba(26, 29, 31, .2);\n  outline: 0;\n  border-radius: 2px\n}\n\ninput[type=range]::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 22px;\n  height: 22px;\n  background: var(--ink);\n  cursor: grab;\n  border: 2px solid var(--ink);\n  border-radius: 50%\n}\n\ninput[type=range]::-moz-range-thumb {\n  width: 22px;\n  height: 22px;\n  background: var(--ink);\n  cursor: grab;\n  border: 2px solid var(--ink);\n  border-radius: 50%\n}\n\n.range-marks {\n  display: flex;\n  justify-content: space-between;\n  margin-top: 10px;\n  font-family: var(--mono);\n  font-size: 11px;\n  color: rgba(26, 29, 31, .55);\n  font-weight: 500\n}\n\n.output-block {\n  padding: 24px 0;\n  border-bottom: 1px solid rgba(26, 29, 31, .18)\n}\n\n.output-block:last-child {\n  border-bottom: none\n}\n\n.output-block:first-child {\n  padding-top: 0\n}\n\n.output-label {\n  font-family: var(--sans);\n  font-size: 13px;\n  color: rgba(26, 29, 31, .7);\n  margin-bottom: 6px;\n  letter-spacing: 0;\n  font-weight: 500\n}\n\n.output-value {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 42px;\n  line-height: 1;\n  color: var(--ink);\n  letter-spacing: -.03em\n}\n\n.output-value.warn {\n  color: var(--ink);\n  opacity: .65;\n  text-decoration: line-through;\n  text-decoration-thickness: 4px;\n  text-decoration-color: var(--ink)\n}\n\n.output-detail {\n  font-family: var(--sans);\n  font-size: 13px;\n  color: rgba(26, 29, 31, .65);\n  margin-top: 6px;\n  max-width: 40ch;\n  line-height: 1.5\n}\n\n.metrics {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 1px;\n  background: var(--line);\n  border: 1px solid var(--line);\n  margin: 28px 0;\n  border-radius: 4px;\n  overflow: hidden\n}\n\n@media (max-width:700px) {\n  .metrics {\n    grid-template-columns: 1fr\n  }\n}\n\n.metric {\n  background: var(--paper);\n  padding: 24px\n}\n\n.metric-label {\n  font-family: var(--mono);\n  font-size: 10px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  color: var(--muted);\n  margin-bottom: 10px;\n  font-weight: 600\n}\n\n.metric-value {\n  font-family: var(--sans);\n  font-weight: 600;\n  font-size: 22px;\n  line-height: 1.2;\n  color: var(--ink);\n  letter-spacing: -.02em\n}\n\n.metric-value strong,\n.pullquote q {\n  font-weight: 700\n}\n\n.pullquote {\n  margin: 60px 0;\n  padding: 40px 0;\n  border-top: 1px solid var(--ink);\n  border-bottom: 1px solid var(--ink)\n}\n\n.pullquote q {\n  font-family: var(--sans);\n  font-size: clamp(26px, 3.6vw, 40px);\n  line-height: 1.2;\n  color: var(--ink);\n  letter-spacing: -.025em;\n  quotes: none;\n  display: block;\n  max-width: 22ch\n}\n\n.closing h2,\n.pullquote q em {\n  font-weight: 800\n}\n\n.pullquote q::before {\n  content: \"\"\n}\n\n.pullquote-cite {\n  text-transform: uppercase;\n  font-weight: 500\n}\n\n.pullquote-cite {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .12em;\n  color: var(--muted);\n  margin-top: 24px\n}\n\n.closing {\n  padding: 100px 0;\n  text-align: left;\n  background: var(--paper)\n}\n\n.closing h2 {\n  font-size: clamp(38px, 5.8vw, 68px);\n  line-height: 1.02;\n  letter-spacing: -.035em;\n  margin: 0 0 32px;\n  max-width: 18ch;\n  color: var(--ink)\n}\n\n.closing h2 em,\n.pullquote q em,\n.recall-card .rt em {\n  font-style: normal;\n  color: var(--sub-highlight)\n}\n\n.closing p {\n  font-size: 18px;\n  max-width: 56ch\n}\n\n.closing h2 {\n  font-family: var(--sans)\n}\n\n.cta-section {\n  background: var(--teal);\n  color: var(--paper);\n  padding: 110px 0;\n  position: relative;\n  border-top: 6px solid var(--accent)\n}\n\n.cta-grid {\n  display: grid;\n  grid-template-columns: 1.3fr 1fr;\n  gap: 64px;\n  align-items: center\n}\n\n@media (max-width:860px) {\n  .cta-grid {\n    grid-template-columns: 1fr;\n    gap: 32px\n  }\n}\n\n.cta-content .kicker {\n  color: var(--accent)\n}\n\n.cta-content .kicker::before {\n  background: var(--accent)\n}\n\n.cta-content h2 {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: clamp(36px, 5.2vw, 60px);\n  line-height: 1.05;\n  letter-spacing: -.035em;\n  margin: 0 0 24px;\n  color: var(--paper);\n  max-width: 18ch\n}\n\n.cta-content h2 em,\nsection.crisis h2 em {\n  font-style: normal;\n  color: var(--mint)\n}\n\n.cta-content p {\n  font-family: var(--sans);\n  font-weight: 400;\n  font-size: 18px;\n  line-height: 1.55;\n  color: rgba(255, 255, 255, .78);\n  max-width: 52ch;\n  margin: 0 0 32px\n}\n\n.cta-buttons {\n  display: flex;\n  gap: 14px;\n  flex-wrap: wrap\n}\n\n.outcomes-btn-primary {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 15px;\n  letter-spacing: 0;\n  padding: 16px 32px;\n  background: var(--accent);\n  color: var(--ink);\n  border: 0;\n  cursor: pointer;\n  transition: transform .15s ease, background .2s ease;\n  border-radius: 4px;\n  text-decoration: none;\n  display: inline-flex;\n  align-items: center;\n  gap: 10px\n}\n\n.outcomes-btn-primary:hover {\n  background: #99d40d;\n  transform: translateY(-1px)\n}\n\n.outcomes-btn-primary:focus-visible {\n  outline: 2px solid var(--paper);\n  outline-offset: 3px\n}\n\n.outcomes-btn-primary .outcomes-arrow {\n  font-size: 18px;\n  transition: transform .2s ease\n}\n\n.outcomes-btn-primary:hover .outcomes-arrow {\n  transform: translateX(3px)\n}\n\n.outcomes-btn-secondary {\n  font-family: var(--sans);\n  font-weight: 600;\n  font-size: 15px;\n  padding: 16px 28px;\n  background: 0 0;\n  color: var(--paper);\n  border: 1px solid rgba(255, 255, 255, .3);\n  cursor: pointer;\n  transition: border-color .2s ease, background .2s ease;\n  border-radius: 4px;\n  text-decoration: none;\n  display: inline-flex;\n  align-items: center\n}\n\n.outcomes-btn-secondary:hover {\n  border-color: var(--paper);\n  background: rgba(255, 255, 255, .06)\n}\n\n.cta-stats {\n  display: grid;\n  gap: 24px\n}\n\n.cta-stat {\n  padding: 24px 0;\n  border-top: 1px solid rgba(255, 255, 255, .18)\n}\n\n.cta-stat:last-child {\n  border-bottom: 1px solid rgba(255, 255, 255, .18)\n}\n\n.cta-stat-num {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 42px;\n  line-height: 1;\n  color: var(--mint);\n  letter-spacing: -.03em;\n  margin-bottom: 6px\n}\n\n.cta-stat-label {\n  font-family: var(--sans);\n  font-size: 14px;\n  color: rgba(255, 255, 255, .7);\n  font-weight: 500\n}\n\n.outcomes-modal-overlay {\n  position: fixed;\n  inset: 0;\n  background: rgba(20, 22, 24, .78);\n  backdrop-filter: blur(6px);\n  -webkit-backdrop-filter: blur(6px);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  z-index: 1000;\n  padding: 24px;\n  opacity: 0;\n  pointer-events: none;\n  transition: opacity .25s ease\n}\n\n.outcomes-modal-overlay.open {\n  opacity: 1;\n  pointer-events: auto\n}\n\n.outcomes-modal-card {\n  background: var(--paper);\n  border-radius: 6px;\n  max-width: 540px;\n  width: 100%;\n  max-height: calc(100vh - 48px);\n  overflow-y: auto;\n  position: relative;\n  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .4), 0 8px 16px -8px rgba(0, 0, 0, .2);\n  transform: translateY(16px) scale(.98);\n  transition: transform .3s ease\n}\n\n.outcomes-modal-overlay.open .outcomes-modal-card {\n  transform: translateY(0) scale(1)\n}\n\n.outcomes-modal-header {\n  padding: 36px 40px 0;\n  position: relative\n}\n\n.outcomes-modal-close {\n  position: absolute;\n  top: 16px;\n  right: 16px;\n  width: 36px;\n  height: 36px;\n  background: 0 0;\n  border: 0;\n  cursor: pointer;\n  border-radius: 50%;\n  color: var(--ink-2);\n  font-size: 22px;\n  line-height: 1;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  transition: background .15s ease\n}\n\n.outcomes-modal-close:hover {\n  background: var(--paper-2);\n  color: var(--ink)\n}\n\n.outcomes-modal-eyebrow {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  color: var(--accent-3);\n  font-weight: 700;\n  margin-bottom: 12px\n}\n\n.outcomes-modal-card h3 {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 26px;\n  line-height: 1.2;\n  letter-spacing: -.025em;\n  margin: 0 0 10px;\n  color: var(--ink)\n}\n\n.field label,\n.outcomes-modal-card .outcomes-modal-deck {\n  font-family: var(--sans);\n  color: var(--ink-2)\n}\n\n.outcomes-modal-card .outcomes-modal-deck {\n  font-size: 15px;\n  margin: 0 0 28px;\n  line-height: 1.5\n}\n\n.outcomes-modal-body {\n  padding: 0 40px 36px\n}\n\n@media (max-width:520px) {\n  .outcomes-modal-header {\n    padding: 28px 24px 0\n  }\n\n  .outcomes-modal-body {\n    padding: 0 24px 28px\n  }\n}\n\n.form-grid {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 14px\n}\n\n.field {\n  display: flex;\n  flex-direction: column;\n  gap: 6px\n}\n\n.field.full {\n  grid-column: 1\/-1\n}\n\n.field label {\n  font-size: 12px;\n  font-weight: 600;\n  letter-spacing: .01em\n}\n\n.field label .req {\n  color: var(--warn);\n  margin-left: 2px\n}\n\n.field input,\n.field select {\n  font-family: var(--sans);\n  font-size: 14px;\n  padding: 11px 14px;\n  border: 1px solid var(--line);\n  border-radius: 4px;\n  background: var(--paper);\n  color: var(--ink);\n  transition: border-color .15s ease, box-shadow .15s ease;\n  width: 100%\n}\n\n.field input:focus,\n.field select:focus {\n  outline: 0;\n  border-color: var(--accent);\n  box-shadow: 0 0 0 3px var(--accent-soft)\n}\n\n.field input.error {\n  border-color: var(--warn)\n}\n\n.field .error-msg,\n.outcomes-modal-consent {\n  font-family: var(--sans);\n  font-size: 12px\n}\n\n.field .error-msg {\n  color: var(--warn);\n  min-height: 16px\n}\n\n.outcomes-modal-consent {\n  color: var(--muted);\n  line-height: 1.5;\n  margin: 20px 0 0;\n  max-width: 50ch\n}\n\n.outcomes-modal-actions {\n  display: flex;\n  gap: 12px;\n  margin-top: 24px;\n  align-items: center\n}\n\n.outcomes-btn-submit {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 15px;\n  padding: 14px 28px;\n  background: var(--ink);\n  color: var(--paper);\n  border: 0;\n  cursor: pointer;\n  border-radius: 4px;\n  transition: background .2s ease;\n  display: inline-flex;\n  align-items: center;\n  gap: 10px\n}\n\n.outcomes-btn-submit:hover {\n  background: var(--accent-3)\n}\n\n.outcomes-btn-submit:disabled {\n  background: var(--muted);\n  cursor: not-allowed\n}\n\n.outcomes-btn-submit .outcomes-spinner {\n  display: none;\n  width: 14px;\n  height: 14px;\n  border: 2px solid rgba(255, 255, 255, .25);\n  border-top-color: var(--paper);\n  border-radius: 50%;\n  animation: spin .6s linear infinite\n}\n\n.outcomes-btn-submit.loading .outcomes-spinner {\n  display: inline-block\n}\n\n.outcomes-btn-submit.loading .outcomes-label {\n  opacity: .7\n}\n\n.outcomes-modal-success {\n  display: none;\n  padding: 56px 40px;\n  text-align: center\n}\n\n.outcomes-modal-card.success .outcomes-modal-success,\n.outcomes-modal-error.show {\n  display: block\n}\n\n.outcomes-modal-card.success .outcomes-modal-body,\n.outcomes-modal-card.success .outcomes-modal-header {\n  display: none\n}\n\n.success-mark {\n  width: 64px;\n  height: 64px;\n  border-radius: 50%;\n  background: var(--accent);\n  margin: 0 auto 24px;\n  display: flex;\n  align-items: center;\n  justify-content: center\n}\n\n.success-mark svg {\n  width: 32px;\n  height: 32px;\n  stroke: var(--ink);\n  stroke-width: 3;\n  fill: none\n}\n\n.outcomes-modal-success h3 {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 24px;\n  margin: 0 0 10px;\n  color: var(--ink);\n  letter-spacing: -.02em\n}\n\n.outcomes-modal-success p {\n  font-family: var(--sans);\n  font-size: 15px;\n  color: var(--ink-2);\n  margin: 0 auto;\n  max-width: 34ch\n}\n\n.outcomes-modal-error {\n  display: none;\n  padding: 12px 14px;\n  background: var(--warn-soft);\n  color: var(--warn);\n  border-radius: 4px;\n  font-family: var(--sans);\n  font-size: 13px;\n  margin-top: 12px\n}\n\n@media (max-width:768px) {\n  .outcomes-container {\n    padding: 0 20px\n  }\n\n  .hero {\n    padding: 56px 0 64px\n  }\n\n  .hero-headline {\n    line-height: 1.05\n  }\n\n  .calc .deck,\n  .hero-deck {\n    margin-bottom: 36px\n  }\n\n  .hero-byline {\n    gap: 12px 22px;\n    font-size: 12px;\n    padding-top: 22px\n  }\n\n  .bombshell,\n  section.story {\n    padding: 64px 0\n  }\n\n  .bombshell-grid {\n    gap: 32px\n  }\n\n  .bombshell-text h2 {\n    font-size: clamp(22px, 4.6vw, 30px)\n  }\n\n  .bombshell-text p {\n    font-size: 15px\n  }\n\n  .bombshell-label {\n    margin-top: 24px\n  }\n\n  section.story[style*=\"padding-top: 60px\"] {\n    padding-top: 48px !important\n  }\n\n  .myth-banner {\n    padding: 70px 0 56px;\n    border-top-width: 4px\n  }\n\n  .myth-list {\n    margin-top: 40px\n  }\n\n  .myth-item {\n    padding: 28px 0;\n    grid-template-columns: 90px 1fr;\n    gap: 20px\n  }\n\n  .myth-mark {\n    font-size: 14px;\n    padding-top: 6px\n  }\n\n  .calc {\n    padding: 64px 0\n  }\n\n  .calc .deck {\n    font-size: 17px\n  }\n\n  .calc-grid {\n    gap: 36px\n  }\n\n  .cta-section {\n    padding: 70px 0;\n    border-top-width: 4px\n  }\n\n  .cta-content p {\n    font-size: 16px;\n    margin-bottom: 24px\n  }\n\n  .closing {\n    padding: 64px 0\n  }\n\n  .metric {\n    padding: 18px 20px\n  }\n\n  .metric-value {\n    font-size: 18px\n  }\n\n  .metric-label {\n    margin-bottom: 8px\n  }\n\n  .explorer {\n    padding: 24px\n  }\n\n  .explorer-header {\n    flex-direction: column;\n    align-items: stretch;\n    gap: 16px\n  }\n\n  .explorer-title,\n  .relay h4 {\n    font-size: 19px\n  }\n\n  .industry-tabs {\n    width: 100%;\n    padding: 3px\n  }\n\n  .industry-tabs button,\n  .relay-toggle button {\n    flex: 1;\n    padding: 8px 10px;\n    font-size: 12px;\n    min-width: 0\n  }\n\n  .spine-stage {\n    padding: 22px\n  }\n\n  .spine-canvas {\n    height: 300px\n  }\n\n  .relay {\n    padding: 22px\n  }\n\n  .relay-stage {\n    padding: 22px 14px\n  }\n\n  .relay-toggle {\n    gap: 8px\n  }\n\n  .relay-toggle button {\n    padding: 9px 14px\n  }\n\n  .relay-toggle .toggle-label {\n    width: 100%;\n    margin-bottom: 4px;\n    margin-right: 0\n  }\n\n  .two-worlds {\n    margin: 36px 0\n  }\n\n  .world {\n    padding: 22px\n  }\n\n  .world h4 {\n    font-size: 20px\n  }\n\n  .world-stage {\n    height: 180px;\n    margin-bottom: 14px\n  }\n\n  .world-stat {\n    font-size: 34px\n  }\n\n  .tw-controls button {\n    padding: 12px 24px;\n    font-size: 13px\n  }\n\n  .pillars {\n    margin-top: 36px\n  }\n\n  .pillar {\n    padding: 24px\n  }\n\n  .pillar-num {\n    font-size: 48px;\n    margin-bottom: 8px\n  }\n\n  .pillar h4 {\n    font-size: 18px\n  }\n\n  .calc-input label {\n    margin-bottom: 10px\n  }\n\n  .outcomes-btn-primary,\n  .outcomes-btn-secondary {\n    padding: 14px 22px;\n    font-size: 14px\n  }\n\n  .cta-buttons {\n    gap: 10px\n  }\n\n  .pullquote {\n    margin: 40px 0;\n    padding: 28px 0\n  }\n\n  .pullquote-cite {\n    margin-top: 18px\n  }\n\n  .spine-legend {\n    gap: 18px 22px;\n    font-size: 12px\n  }\n}\n\n@media (max-width:600px) {\n  .form-grid {\n    grid-template-columns: 1fr;\n    gap: 12px\n  }\n\n  .relay-stage {\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch;\n    position: relative;\n    padding-bottom: 28px\n  }\n\n  .relay-stage::after {\n    content: \"swipe to see all 8 \u2192\";\n    position: absolute;\n    bottom: 8px;\n    right: 14px;\n    font-family: var(--mono);\n    font-size: 10px;\n    letter-spacing: .08em;\n    color: var(--muted);\n    pointer-events: none\n  }\n\n  #relay-svg {\n    min-width: 620px;\n    width: 620px\n  }\n}\n\n@media (max-width:480px) {\n  .outcomes-container {\n    padding: 0 16px\n  }\n\n  .world h4 {\n    font-size: 18px\n  }\n\n  .hero {\n    padding: 40px 0 52px\n  }\n\n  .hero-headline {\n    font-size: clamp(34px, 9vw, 48px);\n    margin-bottom: 24px\n  }\n\n  .hero-deck {\n    font-size: 16px;\n    margin-bottom: 32px\n  }\n\n  .kicker {\n    font-size: 11px;\n    letter-spacing: .12em;\n    margin-bottom: 22px\n  }\n\n  .bombshell {\n    padding: 56px 0\n  }\n\n  .bombshell-num {\n    font-size: clamp(120px, 36vw, 200px)\n  }\n\n  .bombshell-text h2,\n  .myth-content h3 {\n    font-size: 21px\n  }\n\n  h2.section-title {\n    font-size: clamp(26px, 7vw, 38px);\n    margin-bottom: 24px\n  }\n\n  p.lede {\n    font-size: 17px\n  }\n\n  .myth-banner {\n    padding: 56px 0 44px\n  }\n\n  .myth-item {\n    grid-template-columns: 1fr;\n    gap: 8px;\n    padding: 24px 0\n  }\n\n  .myth-mark {\n    padding-top: 0;\n    font-size: 12px\n  }\n\n  .myth-banner h2 {\n    font-size: clamp(36px, 10vw, 56px)\n  }\n\n  .closing,\n  section.story {\n    padding: 52px 0\n  }\n\n  .cta-section {\n    padding: 56px 0\n  }\n\n  .cta-content h2 {\n    font-size: clamp(26px, 8vw, 38px)\n  }\n\n  .cta-content p {\n    font-size: 15px\n  }\n\n  .outcomes-btn-primary,\n  .outcomes-btn-secondary {\n    padding: 13px 20px;\n    font-size: 13.5px;\n    width: 100%;\n    justify-content: center\n  }\n\n  .cta-buttons {\n    flex-direction: column\n  }\n\n  .cta-stat-num {\n    font-size: 32px\n  }\n\n  .cta-stat {\n    padding: 18px 0\n  }\n\n  .calc {\n    padding: 56px 0\n  }\n\n  .calc h2 {\n    font-size: clamp(28px, 8vw, 38px)\n  }\n\n  .spend-display {\n    font-size: clamp(44px, 12vw, 60px)\n  }\n\n  .output-value {\n    font-size: 32px\n  }\n\n  .output-block {\n    padding: 18px 0\n  }\n\n  .chart-svg {\n    height: 220px\n  }\n\n  .world-stage {\n    height: 150px\n  }\n\n  .spine-canvas {\n    height: 260px\n  }\n\n  .metric {\n    padding: 14px 16px\n  }\n\n  .metric-value {\n    font-size: 17px\n  }\n\n  .explorer {\n    padding: 20px\n  }\n\n  .industry-tabs button {\n    padding: 8px 6px;\n    font-size: 11.5px;\n    letter-spacing: -.01em\n  }\n\n  .relay,\n  .spine-stage {\n    padding: 18px\n  }\n\n  .spine-controls button {\n    padding: 9px 16px;\n    font-size: 12px\n  }\n\n  .relay-stage {\n    padding: 18px 10px\n  }\n\n  .relay-toggle {\n    flex-direction: column;\n    align-items: stretch\n  }\n\n  .relay-toggle button {\n    width: 100%\n  }\n\n  .world {\n    padding: 20px\n  }\n\n  .world-stat {\n    font-size: 30px\n  }\n\n  .pillar {\n    padding: 22px\n  }\n\n  .pillar-num {\n    font-size: 42px\n  }\n\n  .outcomes-modal-overlay {\n    padding: 12px\n  }\n\n  .outcomes-modal-card {\n    border-radius: 4px\n  }\n\n  .outcomes-modal-header {\n    padding: 24px 20px 0\n  }\n\n  .outcomes-modal-body {\n    padding: 0 20px 24px\n  }\n\n  .outcomes-modal-card h3 {\n    font-size: 22px\n  }\n\n  .outcomes-modal-card .outcomes-modal-deck {\n    font-size: 14px;\n    margin-bottom: 22px\n  }\n\n  .outcomes-modal-eyebrow {\n    margin-bottom: 10px\n  }\n\n  .outcomes-modal-success {\n    padding: 40px 24px\n  }\n\n  .outcomes-btn-submit {\n    width: 100%;\n    justify-content: center\n  }\n\n  .outcomes-modal-actions {\n    width: 100%\n  }\n\n  .pullquote q {\n    font-size: clamp(22px, 6.5vw, 30px)\n  }\n}\n\n@media print {\n  @page {\n    size: Letter;\n    margin: 0\n  }\n\n  *,\n  ::after,\n  ::before {\n    -webkit-print-color-adjust: exact !important;\n    print-color-adjust: exact !important;\n    transition: none !important;\n    animation: none !important\n  }\n\n  .reveal {\n    opacity: 1 !important;\n    transform: none !important\n  }\n\n  .outcomes-modal-overlay,\n  .relay-stage::after,\n  .tw-controls {\n    display: none !important\n  }\n\n  .relay-stage {\n    overflow: visible !important;\n    padding-bottom: 0 !important\n  }\n\n  #relay-svg {\n    min-width: 0 !important;\n    width: 100% !important\n  }\n\n  .bombshell,\n  .calc,\n  .cta-section,\n  .myth-banner {\n    page-break-before: always;\n    break-before: page\n  }\n\n  .cta-content,\n  .cta-stat,\n  .explorer,\n  .myth-item,\n  .output-block,\n  .pillar,\n  .pullquote,\n  .relay,\n  .spine-stage,\n  .two-worlds,\n  .world,\n  h2.section-title,\n  p.lede {\n    page-break-inside: avoid;\n    break-inside: avoid\n  }\n\n  a {\n    color: inherit;\n    text-decoration: none\n  }\n\n  section.story {\n    padding: 44px 0 !important\n  }\n\n  .hero {\n    padding: 56px 0 72px !important\n  }\n\n  .bombshell,\n  .calc,\n  .cta-section {\n    padding: 60px 0 !important\n  }\n\n  h2.section-title {\n    margin-bottom: 22px !important\n  }\n\n  .calc h2,\n  p.lede {\n    margin-bottom: 18px !important\n  }\n\n  .section-num {\n    margin-bottom: 14px !important\n  }\n\n  .pillars {\n    margin-top: 28px !important\n  }\n\n  .pillar {\n    padding: 22px !important\n  }\n\n  .pillar-num {\n    font-size: 44px !important;\n    margin-bottom: 6px !important\n  }\n\n  .explorer,\n  .relay,\n  .spine-stage,\n  .two-worlds {\n    padding: 24px !important;\n    margin: 28px 0 !important\n  }\n\n  .spine-canvas {\n    height: 320px !important\n  }\n\n  .chart-svg {\n    height: 240px !important\n  }\n\n  .world-stage {\n    height: 200px !important\n  }\n\n  .metric {\n    padding: 18px 20px !important\n  }\n\n  .metrics {\n    margin: 22px 0 !important\n  }\n\n  .pullquote {\n    margin: 36px 0 !important;\n    padding: 28px 0 !important\n  }\n\n  .closing .pullquote,\n  .closing div.pullquote {\n    margin: 28px 0 0 !important;\n    padding: 24px 0 !important\n  }\n\n  .calc h2 {\n    font-size: 38px !important\n  }\n\n  .calc .deck {\n    margin-bottom: 28px !important\n  }\n\n  .calc-grid {\n    gap: 32px !important\n  }\n\n  .output-block {\n    padding: 14px 0 !important\n  }\n\n  .output-value {\n    font-size: 36px !important\n  }\n\n  .spend-display {\n    font-size: 64px !important;\n    margin-bottom: 14px !important\n  }\n\n  .cta-content h2 {\n    margin-bottom: 16px !important;\n    font-size: 42px !important\n  }\n\n  .closing h2,\n  .cta-content p {\n    margin-bottom: 22px !important;\n    font-size: 16px !important\n  }\n\n  .cta-stat {\n    padding: 16px 0 !important\n  }\n\n  .cta-stat-num {\n    font-size: 36px !important\n  }\n\n  .closing {\n    padding: 44px 0 !important\n  }\n\n  .closing h2 {\n    font-size: 50px !important\n  }\n\n  .closing p {\n    margin-bottom: 14px !important\n  }\n\n  .myth-banner {\n    padding: 48px 0 !important\n  }\n\n  .bombshell-text h2,\n  .myth-banner h2 {\n    margin-bottom: 18px !important;\n    font-size: 60px !important\n  }\n\n  .calc .deck,\n  .myth-banner .deck {\n    font-size: 16px !important\n  }\n\n  .myth-list {\n    margin-top: 26px !important\n  }\n\n  .myth-item {\n    padding: 18px 0 !important\n  }\n\n  .myth-content h3 {\n    font-size: 22px !important;\n    margin-bottom: 8px !important\n  }\n\n  .myth-content .verdict {\n    margin-top: 12px !important\n  }\n\n  .bombshell-grid {\n    gap: 56px !important\n  }\n\n  .bombshell-text h2 {\n    font-size: 30px !important\n  }\n\n  .bombshell-text p {\n    font-size: 15px !important;\n    margin-bottom: 12px !important\n  }\n\n  .hero-deck {\n    margin-bottom: 36px !important\n  }\n}\n\n.reveal {\n  opacity: 0;\n  transform: translateY(20px);\n  transition: opacity .9s ease, transform .9s ease\n}\n\n.reveal.in {\n  opacity: 1;\n  transform: translateY(0)\n}\n\n@media (prefers-reduced-motion:reduce) {\n  .reveal {\n    opacity: 1;\n    transform: none\n  }\n\n  * {\n    animation: none !important;\n    transition: none !important\n  }\n}\n\n.relay-stage {\n  transition: background-color .3s ease\n}\n\n.relay-stage.mode-spike .relay-imp:not(.last) {\n  opacity: .18;\n  transition: opacity .4s ease\n}\n\n.relay-stage.mode-full .relay-imp,\n.relay-stage.mode-spike .relay-credit {\n  opacity: 1;\n  transition: opacity .4s ease\n}\n\n.relay-stage.mode-spike .relay-imp.last circle {\n  fill: #d43f2a;\n  stroke: #d43f2a\n}\n\n.relay-stage.mode-spike .relay-imp.last text:first-of-type {\n  fill: #fff\n}\n\n.relay-credit {\n  opacity: 0\n}\n\n.relay-chain,\n.relay-credit {\n  transition: opacity .4s ease\n}\n\n.relay-stage.mode-spike .relay-chain {\n  opacity: .15\n}\n\n.stat-inline,\nsection.crisis h2 {\n  font-family: var(--sans);\n  font-weight: 800;\n  color: var(--warn)\n}\n\n.hero-question {\n  font-family: var(--sans);\n  font-size: clamp(22px, 2.8vw, 32px);\n  line-height: 1.25;\n  letter-spacing: -.02em;\n  margin: 0 0 24px;\n  max-width: 30ch\n}\n\n.hero-question em {\n  font-style: italic;\n  font-weight: 700;\n  color: var(--sub-highlight)\n}\n\n.hero-deck .signal-run,\n.hero-question {\n  font-weight: 700;\n  color: var(--ink)\n}\n\nsection.crisis {\n  position: relative;\n  background: var(--teal);\n  color: var(--paper);\n  padding: 104px 0;\n  overflow: hidden;\n  border-bottom: 1px solid var(--teal-deep)\n}\n\n.crisis-inner {\n  display: flex;\n  align-items: stretch;\n  justify-content: space-between;\n  gap: clamp(40px, 6vw, 100px)\n}\n\n.crisis-words {\n  position: relative;\n  flex: 1 1 auto;\n  min-width: 0;\n  align-self: stretch;\n  min-height: 400px;\n  pointer-events: none;\n  z-index: 1\n}\n\n.crisis-word {\n  position: absolute;\n  font-family: var(--sans);\n  font-weight: 700;\n  color: var(--mint);\n  white-space: nowrap;\n  letter-spacing: -.02em;\n  opacity: .16;\n  transform: translateY(-50%);\n  transition: opacity .45s ease\n}\n\n.crisis-stamp {\n  flex: 0 0 auto;\n  width: min(540px, 50%);\n  position: relative;\n  z-index: 2\n}\n\n@media (max-width:860px) {\n  .crisis-inner {\n    display: block;\n    position: relative\n  }\n\n  .crisis-words {\n    position: absolute;\n    inset: 0;\n    min-height: 0;\n    opacity: .4\n  }\n\n  .crisis-stamp {\n    width: 100%\n  }\n}\n\n.crisis-foot em,\n.crisis-kicker {\n  font-weight: 700;\n  color: var(--mint)\n}\n\n.crisis-kicker {\n  font-family: var(--sans);\n  font-size: 12px;\n  letter-spacing: .14em;\n  text-transform: uppercase;\n  margin-bottom: 28px;\n  display: flex;\n  align-items: center;\n  gap: 14px\n}\n\nsection.crisis h2 {\n  font-size: clamp(32px, 4.4vw, 56px);\n  line-height: 1.06;\n  letter-spacing: -.03em;\n  margin: 0;\n  color: var(--paper)\n}\n\n.crisis-foot {\n  margin-top: 24px;\n  font-family: var(--sans);\n  font-weight: 500;\n  font-size: clamp(19px, 1.9vw, 22px);\n  line-height: 1.5;\n  color: rgba(255, 255, 255, .78);\n  max-width: 42ch\n}\n\n.crisis-foot em {\n  font-style: normal\n}\n\n.sig-cols {\n  display: grid;\n  grid-template-columns: 1fr 1fr;\n  gap: 20px;\n  margin: 44px 0 8px\n}\n\n@media (max-width:760px) {\n  .sig-cols {\n    grid-template-columns: 1fr\n  }\n}\n\n.sig-card {\n  position: relative;\n  background: var(--paper);\n  border: 1px solid var(--line);\n  border-radius: 6px;\n  padding: 30px 28px 26px;\n  opacity: 0;\n  transform: translateY(16px);\n  transition: opacity .4s ease, transform .4s ease\n}\n\n.sig-card.show {\n  opacity: 1;\n  transform: translateY(0)\n}\n\n.sig-card::before {\n  content: \"\";\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 8px;\n  border-radius: 6px 6px 0 0\n}\n\n.sig-card.short::before {\n  background: var(--accent)\n}\n\n.sig-card.long::before {\n  background: var(--accent-4)\n}\n\n.sig-card .hd {\n  font-family: var(--mono);\n  font-size: 12px;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  color: var(--ink-2);\n  font-weight: 600;\n  margin-bottom: 16px;\n  padding-bottom: 14px;\n  border-bottom: 1px solid var(--line)\n}\n\n.sig-row {\n  display: flex;\n  justify-content: space-between;\n  align-items: baseline;\n  gap: 16px;\n  padding: 12px 0;\n  border-bottom: 1px dashed var(--line-soft)\n}\n\n.sig-row:last-child {\n  border-bottom: none\n}\n\n.sig-row .t {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 17px;\n  color: var(--ink);\n  letter-spacing: -.01em\n}\n\n.sig-row .d {\n  font-family: var(--sans);\n  font-size: 13px;\n  color: var(--muted);\n  text-align: right\n}\n\n.sig-take {\n  margin-top: 36px;\n  opacity: 0;\n  transform: translateY(10px);\n  transition: opacity .45s ease, transform .45s ease\n}\n\n.sig-take.show {\n  opacity: 1;\n  transform: translateY(0)\n}\n\n.recall-card {\n  background: var(--paper-2);\n  border: 1px solid var(--line);\n  border-radius: 8px;\n  padding: 30px 32px 26px;\n  margin: 48px 0 8px\n}\n\n@media (max-width:600px) {\n  .recall-card {\n    padding: 22px 20px\n  }\n}\n\n.recall-card .rh {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n  color: var(--muted);\n  font-weight: 600;\n  margin-bottom: 6px\n}\n\n.recall-card .rt {\n  font-family: var(--sans);\n  font-weight: 700;\n  font-size: 20px;\n  color: var(--ink);\n  letter-spacing: -.01em;\n  margin-bottom: 26px\n}\n\n.recall-bars {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 22px;\n  align-items: stretch\n}\n\n@media (max-width:600px) {\n  .recall-bars {\n    gap: 10px\n  }\n}\n\n.rb-col {\n  display: flex;\n  flex-direction: column;\n  text-align: center;\n  cursor: pointer;\n  opacity: .5;\n  transition: opacity .25s ease;\n  border: 0;\n  background: 0 0;\n  padding: 0;\n  margin: 0;\n  font: inherit;\n  -webkit-appearance: none\n}\n\n.rb-col:hover {\n  opacity: .82\n}\n\n.rb-col.sel {\n  opacity: 1\n}\n\n.rb-col:focus-visible {\n  outline: 2px solid var(--teal);\n  outline-offset: 4px;\n  border-radius: 4px\n}\n\n.rb-thumb {\n  position: relative;\n  aspect-ratio: 16\/9;\n  border-radius: 6px;\n  overflow: hidden;\n  border: 1px solid var(--line);\n  background: var(--paper-3);\n  margin-bottom: 14px\n}\n\n.rb-thumb img {\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  display: block;\n  filter: saturate(.6) brightness(.97);\n  transition: filter .25s ease\n}\n\n.rb-col.sel .rb-thumb {\n  border-color: var(--accent);\n  box-shadow: 0 0 0 2px var(--accent)\n}\n\n.rb-col.sel .rb-thumb img {\n  filter: saturate(1) brightness(1)\n}\n\n.rb-val {\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: 26px;\n  letter-spacing: -.02em;\n  color: var(--ink);\n  margin-bottom: 10px\n}\n\n@media (max-width:600px) {\n  .rb-val {\n    font-size: 20px\n  }\n}\n\n.rb-val .u {\n  font-weight: 500;\n  font-size: .5em;\n  color: var(--muted);\n  margin-left: 3px\n}\n\n.rb-track {\n  height: 130px;\n  display: flex;\n  align-items: flex-end\n}\n\n.rb-bar {\n  width: 100%;\n  background: var(--teal);\n  border-radius: 4px 4px 0 0;\n  height: 0;\n  transition: height .9s cubic-bezier(.2, .7, .2, 1)\n}\n\n.recall-bars.go .rb-bar {\n  height: var(--h)\n}\n\n.rb-col.hot .rb-bar {\n  background: var(--accent)\n}\n\n.rb-lab {\n  font-family: var(--sans);\n  font-weight: 600;\n  font-size: 15px;\n  color: var(--ink);\n  margin-top: 14px\n}\n\n.rb-sub,\n.recall-read {\n  font-family: var(--sans);\n  font-size: 12.5px;\n  color: var(--muted);\n  margin-top: 2px\n}\n\n.recall-read {\n  margin-top: 24px;\n  font-size: 15px;\n  line-height: 1.55;\n  color: var(--ink-2);\n  border-top: 1px solid var(--line);\n  padding-top: 18px\n}\n\n.recall-read b,\n.recall-read em {\n  font-style: normal;\n  font-weight: 700;\n  color: var(--ink)\n}\n\n.cat-grid {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 1px;\n  background: var(--line);\n  border: 1px solid var(--line);\n  border-radius: 6px;\n  overflow: hidden;\n  margin: 44px 0 8px\n}\n\n@media (max-width:760px) {\n  .cat-grid {\n    grid-template-columns: 1fr 1fr\n  }\n}\n\n@media (max-width:480px) {\n  .cat-grid {\n    grid-template-columns: 1fr\n  }\n}\n\n.cat {\n  background: var(--paper);\n  padding: 26px 24px;\n  transition: background .2s\n}\n\n.cat:hover,\n.results-box {\n  background: var(--paper-2)\n}\n\n.cat .c,\n.cat .o {\n  font-family: var(--sans)\n}\n\n.cat .c {\n  font-weight: 800;\n  font-size: 20px;\n  letter-spacing: -.02em;\n  color: var(--ink);\n  margin-bottom: 8px\n}\n\n.cat .o {\n  font-size: 14px;\n  line-height: 1.45;\n  color: var(--ink-2)\n}\n\n.results-box {\n  border: 1px solid var(--line);\n  border-radius: 8px;\n  padding: 22px 28px;\n  margin: 44px 0 8px\n}\n\n@media (max-width:600px) {\n  .results-box {\n    padding: 18px\n  }\n}\n\n.res-head {\n  margin-bottom: 16px;\n  padding-bottom: 16px;\n  border-bottom: 1px solid var(--line)\n}\n\n.res-note,\n.res-title {\n  font-family: var(--sans)\n}\n\n.res-title {\n  font-weight: 800;\n  font-size: 19px;\n  letter-spacing: -.02em;\n  color: var(--ink);\n  margin-bottom: 5px\n}\n\n.res-note {\n  font-size: 14px;\n  line-height: 1.5;\n  color: var(--muted)\n}\n\n.res-tabs {\n  display: flex;\n  gap: 4px;\n  background: var(--paper);\n  padding: 4px;\n  border: 1px solid var(--line);\n  border-radius: 4px;\n  flex-wrap: wrap;\n  width: fit-content;\n  margin-bottom: 20px\n}\n\n.res-tab {\n  font-family: var(--sans);\n  font-size: 13px;\n  font-weight: 600;\n  padding: 8px 16px;\n  background: 0 0;\n  border: 0;\n  cursor: pointer;\n  color: var(--ink-2);\n  border-radius: 3px;\n  transition: all .15s\n}\n\n.res-tab:hover:not(.active) {\n  background: var(--accent-soft);\n  color: var(--ink)\n}\n\n.res-tab.active {\n  background: var(--accent);\n  color: var(--ink)\n}\n\n.res-focus {\n  font-family: var(--mono);\n  font-size: 12px;\n  letter-spacing: .08em;\n  text-transform: uppercase;\n  color: var(--muted);\n  font-weight: 600;\n  margin-bottom: 16px\n}\n\n.res-row {\n  display: grid;\n  gap: 36px\n}\n\n.res-row.two {\n  grid-template-columns: 1fr 1fr\n}\n\n.res-row.one {\n  grid-template-columns: 1fr\n}\n\n@media (max-width:600px) {\n  .res-row.two {\n    grid-template-columns: 1fr;\n    gap: 28px\n  }\n}\n\n.res-metric .num {\n  display: flex;\n  align-items: baseline;\n  gap: 8px;\n  font-family: var(--sans);\n  font-weight: 800;\n  font-size: clamp(48px, 8vw, 72px);\n  line-height: 1;\n  letter-spacing: -.04em;\n  color: var(--teal);\n  white-space: nowrap\n}\n\n.res-metric .num .ar {\n  font-size: .32em;\n  color: var(--accent-3);\n  font-weight: 700\n}\n\n.res-metric .num .unit {\n  font-size: .3em;\n  font-weight: 700;\n  color: var(--muted);\n  letter-spacing: 0\n}\n\n.res-metric .cv.is-ph {\n  color: var(--muted);\n  opacity: .55\n}\n\n.res-metric .cv.is-ph+.ml,\n.res-metric .num:has(.cv.is-ph) .ar {\n  opacity: .5\n}\n\n.res-metric .ml {\n  font-family: var(--sans);\n  font-weight: 600;\n  font-size: 16px;\n  color: var(--ink);\n  margin-top: 12px\n}\n\n.res-metric .dir {\n  font-family: var(--mono);\n  font-size: 11px;\n  letter-spacing: .06em;\n  text-transform: uppercase;\n  color: var(--muted);\n  margin-top: 4px\n}\n<\/style>\n\n<script data-wp-block-html=\"js\">\n<!--\n(function () {\n  'use strict';\n \n  \/* ==================================================================\n     FILTER-SAFE STYLE RULES (keep these when editing):\n     - always put spaces around comparison operators: i < 10, a && b\n     - never leave a truly blank line (use a single space)\n     - use entities for display text: &lt; &#9650; &#9660; &times; &#8594;\n     - HTML in strings must be well-formed with explicit closing tags\n     - keep the comment wrappers on the first and last lines\n     ================================================================== *\/\n \n  \/* ==================================================================\n     REVEAL ON SCROLL\n     ================================================================== *\/\n  function initReveal() {\n    var els = document.querySelectorAll('.reveal');\n    if (!els.length) return;\n    if (!('IntersectionObserver' in window)) {\n      els.forEach(function (el) { el.classList.add('in'); });\n      return;\n    }\n    var io = new IntersectionObserver(function (entries, obs) {\n      entries.forEach(function (e) {\n        if (e.isIntersecting) {\n          e.target.classList.add('in');\n          obs.unobserve(e.target);\n        }\n      });\n    }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' });\n    els.forEach(function (el) { io.observe(el); });\n  }\n \n  \/* ==================================================================\n     ID SPINE VISUALIZATION\n     ================================================================== *\/\n  function buildSpine() {\n    var svg = document.getElementById('spine-svg');\n    if (!svg) return;\n \n    var W = 900, H = 380;\n    var cols = 24, rows = 10;\n    var padX = 30, padY = 30;\n    var gx = (W - padX * 2) \/ (cols - 1);\n    var gy = (H - padY * 2) \/ (rows - 1);\n \n    var households = [];\n    for (var r = 0; r < rows; r++) {\n      for (var c = 0; c < cols; c++) {\n        households.push({ x: padX + c * gx, y: padY + r * gy });\n      }\n    }\n \n    var seed = function (n, max) {\n      return Math.floor((Math.sin(n * 12.9898) * 43758.5453) % 1 * max + max) % max;\n    };\n    var exposedSet = new Set();\n    var convertedSet = new Set();\n    var pairs = [];\n    for (var i = 0; i < 60; i++) {\n      var a = seed(i + 1, households.length);\n      exposedSet.add(a);\n      if (i < 22) {\n        var b = seed(i + 101, households.length);\n        convertedSet.add(b);\n        pairs.push([a, b]);\n      }\n    }\n \n    var adX = W \/ 2, adY = -10;\n    var html = '';\n \n    html += '<g id=\"spine-lines\">';\n    pairs.forEach(function (p) {\n      var pa = households[p[0]], pb = households[p[1]];\n      html += '<path d=\"M ' + pa.x + ' ' + pa.y + ' Q ' + ((pa.x + pb.x) \/ 2) + ' ' +\n              ((pa.y + pb.y) \/ 2 - 14) + ' ' + pb.x + ' ' + pb.y +\n              '\" stroke=\"#1A1D1F\" stroke-width=\"0.8\" fill=\"none\" opacity=\"0.32\"><\/path>';\n    });\n    html += '<\/g>';\n \n    html += '<g id=\"spine-ad-lines\" opacity=\"0.6\">';\n    Array.from(exposedSet).forEach(function (idx) {\n      var h = households[idx];\n      html += '<line x1=\"' + adX + '\" y1=\"' + adY + '\" x2=\"' + h.x + '\" y2=\"' + h.y +\n              '\" stroke=\"#84BD00\" stroke-width=\"0.4\" opacity=\"0.35\"><\/line>';\n    });\n    html += '<\/g>';\n \n    html += '<g id=\"spine-households\">';\n    households.forEach(function (h, idx) {\n      var fill = '#D1D5D8', rad = 3;\n      if (convertedSet.has(idx)) { fill = '#D43F2A'; rad = 4.5; }\n      else if (exposedSet.has(idx)) { fill = '#84BD00'; rad = 4; }\n      html += '<circle cx=\"' + h.x + '\" cy=\"' + h.y + '\" r=\"' + rad + '\" fill=\"' + fill + '\"><\/circle>';\n    });\n    html += '<\/g>';\n \n    html += '<g id=\"ad-source\"><rect x=\"' + (adX - 22) + '\" y=\"-2\" width=\"44\" height=\"22\" fill=\"#1A1D1F\"><\/rect>' +\n            '<text x=\"' + adX + '\" y=\"13\" text-anchor=\"middle\" fill=\"#FFFFFF\" ' +\n            'font-family=\"JetBrains Mono, monospace\" font-size=\"12\">AD<\/text><\/g>';\n \n    svg.innerHTML = html;\n \n    document.querySelectorAll('.spine-controls button').forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        document.querySelectorAll('.spine-controls button').forEach(function (bb) {\n          bb.classList.remove('active');\n        });\n        btn.classList.add('active');\n        var on = btn.dataset.spine === 'on';\n        var lines = document.getElementById('spine-lines');\n        var adLines = document.getElementById('spine-ad-lines');\n        if (!lines || !adLines) return;\n        lines.style.transition = 'opacity .5s ease';\n        adLines.style.transition = 'opacity .5s ease';\n        lines.style.opacity = on ? '1' : '0';\n        adLines.style.opacity = on ? '0.6' : '0';\n      });\n    });\n  }\n \n  \/* ==================================================================\n     IDENTITY CRISIS word field\n     ================================================================== *\/\n  function initCrisisWords() {\n    var wrap = document.getElementById('crisis-words');\n    if (!wrap) return;\n \n    var SIGNALS = [\n      { t: 'Sales?',           x: 2,  y: 9,  s: 76 },\n      { t: 'Visits?',          x: 48, y: 20, s: 52 },\n      { t: 'Lift?',            x: 8,  y: 31, s: 86 },\n      { t: 'Attention?',       x: 44, y: 41, s: 48 },\n      { t: 'Conversion?',      x: 0,  y: 53, s: 64 },\n      { t: 'ROAS?',            x: 50, y: 62, s: 92 },\n      { t: 'AI \/ Search?',     x: 6,  y: 75, s: 50 },\n      { t: 'Purchase intent?', x: 26, y: 88, s: 56 }\n    ];\n \n    var els = SIGNALS.map(function (w) {\n      var el = document.createElement('span');\n      el.className = 'crisis-word';\n      el.textContent = w.t;\n      el.style.left = w.x + '%';\n      el.style.top = w.y + '%';\n      el.style.fontSize = Math.round(w.s * 0.6) + 'px';\n      el.style.opacity = '0';\n      wrap.appendChild(el);\n      return el;\n    });\n \n    var focus = 0, iv = null, started = false;\n \n    function step() {\n      els.forEach(function (el, idx) {\n        var dist = Math.abs(idx - focus);\n        el.style.opacity = dist === 0 ? '1' : (dist === 1 ? '0.5' : '0.16');\n      });\n      focus = (focus + 1) % els.length;\n    }\n \n    function start() {\n      if (started) return;\n      started = true;\n      step();\n      iv = setInterval(step, 620);\n    }\n \n    var sec = document.querySelector('section.crisis');\n    var reduce = false;\n    if (window.matchMedia) {\n      reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    }\n    if (reduce || !('IntersectionObserver' in window) || !sec) {\n      els.forEach(function (el) { el.style.opacity = '0.16'; });\n      return;\n    }\n \n    var io = new IntersectionObserver(function (ents) {\n      ents.forEach(function (e) {\n        if (e.isIntersecting) {\n          if (!started) { setTimeout(start, 1000); }\n          else if (!iv) { iv = setInterval(step, 620); }\n        } else if (iv) {\n          clearInterval(iv);\n          iv = null;\n        }\n      });\n    }, { threshold: 0.25 });\n    io.observe(sec);\n  }\n \n  \/* ==================================================================\n     SIGNALS table sequenced fade\n     ================================================================== *\/\n  function initSignalsFade() {\n    var cols = document.getElementById('sig-cols');\n    var take = document.getElementById('sig-take');\n    if (!cols) return;\n    var cards = cols.querySelectorAll('.sig-card');\n    if (!('IntersectionObserver' in window)) {\n      cards.forEach(function (cc) { cc.classList.add('show'); });\n      if (take) take.classList.add('show');\n      return;\n    }\n    var played = false;\n    var obs = new IntersectionObserver(function (entries) {\n      entries.forEach(function (e) {\n        if (e.isIntersecting && !played) {\n          played = true;\n          if (cards[0]) cards[0].classList.add('show');\n          setTimeout(function () { if (cards[1]) cards[1].classList.add('show'); }, 1000);\n          setTimeout(function () { if (take) take.classList.add('show'); }, 2000);\n          obs.disconnect();\n        }\n      });\n    }, { threshold: 0.35 });\n    obs.observe(cols);\n  }\n \n  \/* ==================================================================\n     CREATIVE PERFORMANCE recall bars\n     ================================================================== *\/\n  function initRecallBars() {\n    var bars = document.getElementById('recall-bars');\n    var read = document.getElementById('recall-read');\n    if (!bars) return;\n \n    var cols = [].slice.call(bars.querySelectorAll('.rb-col'));\n    var EXPLAIN = {\n      0: '<b>Brand mascot: +2 ppts.<\/b> Your own character. Your baseline for recall lift.',\n      1: '<b>One celebrity: +2 ppts.<\/b> A single star moves recall no more than a mascot.',\n      2: '<b>Multiple celebrities: +5 ppts.<\/b> Stack signals and the lift is <em>2.5&times; a single star.<\/em>'\n    };\n \n    function select(idx) {\n      cols.forEach(function (cc) { cc.classList.toggle('sel', Number(cc.dataset.i) === idx); });\n      if (read) read.innerHTML = EXPLAIN[idx];\n    }\n \n    cols.forEach(function (cc) {\n      var idx = Number(cc.dataset.i);\n      cc.addEventListener('click', function () { select(idx); });\n      cc.addEventListener('mouseenter', function () { select(idx); });\n    });\n \n    if (!('IntersectionObserver' in window)) {\n      bars.classList.add('go');\n      select(2);\n      return;\n    }\n    var done = false;\n    var obs = new IntersectionObserver(function (entries) {\n      entries.forEach(function (e) {\n        if (e.isIntersecting && !done) {\n          done = true;\n          bars.classList.add('go');\n          select(2);\n          obs.disconnect();\n        }\n      });\n    }, { threshold: 0.35 });\n    obs.observe(bars);\n  }\n \n  \/* ==================================================================\n     RESULTS tabs + count-up\n     (arrows are HTML entities: &#9650; up, &#9660; down)\n     ================================================================== *\/\n  function initResults() {\n    var tabs = document.getElementById('res-tabs');\n    var panel = document.getElementById('res-panel');\n    if (!tabs || !panel) return;\n \n    var RESULTS = [\n      { focus: 'Purchase intent &amp; likeability',\n        metrics: [{ v: 33, suf: '%', up: true, l: 'increase in Purchase Intent', dir: '&#9650; as compared to norm' },\n                  { v: 92, suf: '', unit: 'pts', up: true, l: 'above norm for Likeability', dir: '&#9650; top performing video creative from the campaign' }] },\n      { focus: 'Site visitation &amp; product detail page views',\n        metrics: [{ v: 29, suf: '%', up: true, l: 'increase in site visitation', dir: '&#9650; compared to prior period' },\n                  { v: 21, suf: '%', up: true, l: 'increase in PDP views', dir: '&#9650; from top performing campaign' }] },\n      { focus: 'Incremental reach &amp; CPA efficiency',\n        metrics: [{ v: 5, suf: '%', up: true, l: 'increase in incremental reach', dir: '&#9650; over linear in target audience' },\n                  { v: 16, suf: '%', up: false, l: 'decrease in cost per acquisition', dir: '&#9660; compared to previous quarter' }] },\n      { focus: 'ROAS &amp; leads',\n        metrics: [{ v: 26, suf: '%', up: true, l: 'boost in ROAS', dir: '&#9650; compared to the prior year' },\n                  { v: 90, suf: '%', up: true, l: 'increase in leads', dir: '&#9650; with only a 34% increase in spend' }] }\n    ];\n \n    function countUp(el, to, suf, dur) {\n      var start = performance.now();\n      function frame(now) {\n        var t = Math.min(1, (now - start) \/ dur);\n        var eased = 1 - Math.pow(1 - t, 3);\n        el.textContent = Math.round(eased * to) + suf;\n        if (t < 1) requestAnimationFrame(frame);\n      }\n      requestAnimationFrame(frame);\n    }\n \n    function render(idx) {\n      var rr = RESULTS[idx];\n      var blocks = rr.metrics.map(function (m) {\n        var ar = m.up ? '&#9650;' : '&#9660;';\n        var unit = m.unit ? '<span class=\"unit\">' + m.unit + '<\/span>' : '';\n        return '<div class=\"res-metric\"><div class=\"num\"><span class=\"ar\">' + ar + '<\/span>' +\n               '<span class=\"cv\" data-to=\"' + m.v + '\" data-suf=\"' + m.suf + '\">0' + m.suf + '<\/span>' +\n               unit + '<\/div><div class=\"ml\">' + m.l + '<\/div><div class=\"dir\">' + m.dir + '<\/div><\/div>';\n      });\n      var rowCls = rr.metrics.length > 1 ? 'two' : 'one';\n      panel.innerHTML = '<div class=\"res-focus\">' + rr.focus + '<\/div>' +\n                        '<div class=\"res-row ' + rowCls + '\">' + blocks.join('') + '<\/div>';\n      panel.querySelectorAll('.cv').forEach(function (el) {\n        countUp(el, parseInt(el.getAttribute('data-to'), 10), el.getAttribute('data-suf'), 1100);\n      });\n    }\n \n    tabs.querySelectorAll('.res-tab').forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        tabs.querySelectorAll('.res-tab').forEach(function (bb) { bb.classList.remove('active'); });\n        btn.classList.add('active');\n        render(parseInt(btn.getAttribute('data-i'), 10));\n      });\n    });\n \n    render(0);\n \n    if ('IntersectionObserver' in window) {\n      var done = false;\n      var obs = new IntersectionObserver(function (entries) {\n        entries.forEach(function (e) {\n          if (e.isIntersecting && !done) {\n            done = true;\n            render(0);\n            obs.disconnect();\n          }\n        });\n      }, { threshold: 0.3 });\n      obs.observe(panel);\n    }\n  }\n \n  \/* ==================================================================\n     LEAD CAPTURE MODAL  (submits to a Pardot form handler)\n     ------------------------------------------------------------------\n     SETUP:\n     1. In Pardot: Marketing, then Forms, then Form Handlers. Create a\n        handler whose external field names match the values in\n        PARDOT_FIELDS below, or edit the map to match your handler.\n        Set the handler's data format for email to Email; leave\n        completion actions as your team prefers. Success and error\n        locations are not used because this posts in the background.\n     2. Paste the handler's endpoint URL into PARDOT_FORM_HANDLER_URL.\n     Until configured, submissions log to the console so the modal\n     still works end to end.\n     ================================================================== *\/\n  var PARDOT_FORM_HANDLER_URL = 'https:\/\/www2.ispot.tv\/l\/797423\/2026-06-11\/5hb1kc';\n  \/* payload key on the left, Pardot external field name on the right.\n     Keys with no mapping are not sent. *\/\n  var PARDOT_FIELDS = {\n    firstName: 'firstName',\n    lastName: 'lastName',\n    email: 'email',\n    company: 'company',\n    title: 'title',\n    spend: 'adspend',\n    pageUrl: 'url'\n  };\n \n  function initLeadModal() {\n    var modal = document.getElementById('lead-modal');\n    var card = document.getElementById('modal-card');\n    var openBtn = document.getElementById('open-modal-btn');\n    var closeBtn = document.getElementById('modal-close-btn');\n    var form = document.getElementById('lead-form');\n    var submitBtn = document.getElementById('submit-btn');\n    var errorBox = document.getElementById('modal-error');\n    var emailInput = document.getElementById('lf-email');\n    var emailErr = document.getElementById('email-err');\n    if (!modal || !form) return;\n \n    var lastFocused = null;\n \n    function openModal() {\n      lastFocused = document.activeElement;\n      modal.classList.add('open');\n      modal.setAttribute('aria-hidden', 'false');\n      document.body.style.overflow = 'hidden';\n      setTimeout(function () {\n        var f = document.getElementById('lf-first');\n        if (f) f.focus();\n      }, 150);\n    }\n \n    function closeModal() {\n      modal.classList.remove('open');\n      modal.setAttribute('aria-hidden', 'true');\n      document.body.style.overflow = '';\n      setTimeout(function () {\n        if (card) card.classList.remove('success');\n        if (errorBox) errorBox.classList.remove('show');\n        if (submitBtn) { submitBtn.classList.remove('loading'); submitBtn.disabled = false; }\n      }, 300);\n      if (lastFocused) lastFocused.focus();\n    }\n \n    if (openBtn) openBtn.addEventListener('click', openModal);\n    if (closeBtn) closeBtn.addEventListener('click', closeModal);\n    modal.addEventListener('click', function (e) {\n      if (e.target === modal) closeModal();\n    });\n    document.addEventListener('keydown', function (e) {\n      if (e.key === 'Escape' && modal.classList.contains('open')) closeModal();\n    });\n \n    function isValidEmail(v) {\n      return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v);\n    }\n \n    if (emailInput) {\n      emailInput.addEventListener('blur', function () {\n        if (emailInput.value && !isValidEmail(emailInput.value)) {\n          emailInput.classList.add('error');\n          if (emailErr) emailErr.textContent = 'Please enter a valid work email.';\n        } else {\n          emailInput.classList.remove('error');\n          if (emailErr) emailErr.textContent = '';\n        }\n      });\n    }\n \n    form.addEventListener('submit', function (e) {\n      e.preventDefault();\n      if (errorBox) errorBox.classList.remove('show');\n \n      function val(id) {\n        var el = document.getElementById(id);\n        return el ? el.value.trim() : '';\n      }\n      var firstName = val('lf-first');\n      var lastName = val('lf-last');\n      var email = emailInput ? emailInput.value.trim() : '';\n      var company = val('lf-company');\n      var title = val('lf-title');\n      var spend = val('lf-spend');\n \n      if (!firstName || !lastName || !email || !company) {\n        if (errorBox) {\n          errorBox.textContent = 'Please fill in all required fields.';\n          errorBox.classList.add('show');\n        }\n        return;\n      }\n      if (!isValidEmail(email)) {\n        if (emailInput) emailInput.classList.add('error');\n        if (emailErr) emailErr.textContent = 'Please enter a valid work email.';\n        return;\n      }\n \n      if (submitBtn) { submitBtn.classList.add('loading'); submitBtn.disabled = true; }\n \n      var payload = {\n        firstName: firstName, lastName: lastName, email: email,\n        company: company, title: title, spend: spend,\n        source: 'POV: Control Your Outcomes (June 2026)',\n        timestamp: new Date().toISOString(),\n        pageUrl: window.location.href\n      };\n \n      function finish() {\n        if (submitBtn) { submitBtn.classList.remove('loading'); submitBtn.disabled = false; }\n      }\n      function succeed() {\n        if (card) card.classList.add('success');\n        form.reset();\n        finish();\n      }\n      function fail(err) {\n        console.error('Lead submit failed:', err);\n        if (errorBox) {\n          errorBox.textContent = 'Something went wrong submitting your request. Please try again or email info@ispot.tv.';\n          errorBox.classList.add('show');\n        }\n        finish();\n      }\n \n      if (PARDOT_FORM_HANDLER_URL && PARDOT_FORM_HANDLER_URL.indexOf('http') === 0) {\n        var body = new URLSearchParams();\n        Object.keys(payload).forEach(function (key) {\n          var mapped = PARDOT_FIELDS[key];\n          if (mapped) body.append(mapped, payload[key]);\n        });\n        \/* Pardot form handlers do not send CORS headers, so post in\n           no-cors mode: the response is opaque, and a fulfilled promise\n           means the request reached the server. Network failure is the\n           only detectable error, which mirrors how the handler behaves\n           for a normal form post. *\/\n        fetch(PARDOT_FORM_HANDLER_URL, { method: 'POST', mode: 'no-cors', body: body })\n          .then(succeed)\n          .catch(fail);\n      } else {\n        console.log('[Lead capture] (dev) Would submit payload:', payload);\n        setTimeout(succeed, 600);\n      }\n    });\n  }\n \n  \/* ==================================================================\n     DATE STAMPS\n     ================================================================== *\/\n  function initDates() {\n    var s = new Date().toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' });\n    var nodes = document.querySelectorAll('.js-date');\n    for (var i = 0; i < nodes.length; i++) nodes[i].textContent = s;\n  }\n \n  \/* ==================================================================\n     BOOT: each module guarded so one failure cannot stop the rest\n     ================================================================== *\/\n  function run(label, fn) {\n    try { fn(); }\n    catch (err) { console.warn('[init] ' + label + ' failed:', err); }\n  }\n \n  function init() {\n    run('reveal', initReveal);\n    run('spine', buildSpine);\n    run('crisisWords', initCrisisWords);\n    run('signalsFade', initSignalsFade);\n    run('recallBars', initRecallBars);\n    run('results', initResults);\n    run('leadModal', initLeadModal);\n    run('dates', initDates);\n  }\n \n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n\/\/-->\n<\/script>\n\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=JetBrains+Mono:wght@400;500&amp;family=Poppins:wght@300;400;500;600;700;800&amp;display=swap\" rel=\"stylesheet\"\/>\n<!-- ============== HERO ============== -->\n<section class=\"hero\">\n  <div class=\"outcomes-container\">\n    <div class=\"kicker reveal\">Control Your Outcomes<\/div>\n    <h1 class=\"hero-headline reveal\" style=\"font-size:clamp(38px,5.4vw,68px); max-width:20ch;\">\n      You Don&#8217;t Have Outcomes. You Have <span class=\"big\">Signals Dressed up as Proof.<\/span>\n    <\/h1>\n    <p class=\"hero-question reveal\">What does outcome measurement <em>really<\/em> mean?<\/p>\n    <p class=\"hero-deck reveal\">\n      <span class=\"signal-run\">Sales. Visits. Lift. Attention. Conversion. ROAS. Search. Purchase intent.<\/span> The market has more outcome signals than ever, but less agreement on what they actually prove. After 10+ years measuring TV and video performance for hundreds of advertisers, iSpot&#8217;s view is simple: signals matter. But outcome measurement is the <em>verified framework<\/em> that connects them to audience truth, incrementality, brand impact, and business growth.\n    <\/p>\n    <div class=\"hero-byline reveal\">\n      <span><strong>Editorial<\/strong><\/span>\n      <span class=\"js-date\">June 4, 2026<\/span>\n      <span>\u2248 6 min read<\/span>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== BLADE 2 \u00b7 IDENTITY CRISIS ============== -->\n<section class=\"crisis\" data-screen-label=\"02 Identity crisis\">\n  <div class=\"outcomes-container crisis-inner\">\n    <div class=\"crisis-words\" id=\"crisis-words\" aria-hidden=\"true\"><\/div>\n    <div class=\"crisis-stamp\">\n      <div class=\"crisis-kicker reveal\">Outcome measurement today<\/div>\n      <h2 class=\"reveal\">Outcome Measurement is Having an <em>Identity Crisis.<\/em><\/h2>\n      <p class=\"crisis-foot reveal\">Everyone is selling an outcome. Almost no one agrees on what one <em>is<\/em>, and that confusion is costing advertisers real growth.<\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== BLADE 3 \u00b7 SIGNALS ARE NOT MEASUREMENT ============== -->\n<section class=\"story alt\" data-screen-label=\"03 Signals vs measurement\">\n  <div class=\"outcomes-container outcomes-narrow\">\n    <div class=\"section-num reveal\"><span class=\"bar\"><\/span>Signals vs. outcome measurement<\/div>\n    <h2 class=\"section-title reveal\">iSpot&#8217;s POV: Signals Are Not Outcomes Until They&#8217;re <em>Verified<\/em><\/h2>\n    <p class=\"lede reveal\">Today&#8217;s TV and video ecosystem looks like an archipelago of linear, streaming, social, mobile, and CTV. Each has its own walled gardens, its own ID, its own definition of an impression. A household sees an ad on five platforms; five systems each claim sole credit. In that chaos, every vendor sells you a confident-looking number. Almost none of them sell you a verified one.<\/p>\n\n    <div class=\"sig-cols\" id=\"sig-cols\">\n      <div class=\"sig-card short\" data-sig=\"0\">\n        <div class=\"hd\">Short-term signals<\/div>\n        <div class=\"sig-row\"><div class=\"t\">Sales<\/div><div class=\"d\">In-store \u00b7 Online \u00b7 3rd party<\/div><\/div>\n        <div class=\"sig-row\"><div class=\"t\">Visits<\/div><div class=\"d\">Web \u00b7 App \u00b7 Foot traffic<\/div><\/div>\n        <div class=\"sig-row\"><div class=\"t\">Intent<\/div><div class=\"d\">AI queries \u00b7 Search \u00b7 Attention<\/div><\/div>\n      <\/div>\n      <div class=\"sig-card long\" data-sig=\"1\">\n        <div class=\"hd\">Long-term signals \u00b7 Brand<\/div>\n        <div class=\"sig-row\"><div class=\"t\">Purchase intent<\/div><div class=\"d\">Consideration \u00b7 Future demand<\/div><\/div>\n        <div class=\"sig-row\"><div class=\"t\">Brand recall<\/div><div class=\"d\">Aided \u00b7 Unaided awareness<\/div><\/div>\n        <div class=\"sig-row\"><div class=\"t\">Likeability &amp; favorability<\/div><div class=\"d\">Affinity \u00b7 Trust \u00b7 Sentiment<\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== BLADE 4 \u00b7 AUDIENCE TRUTH ============== -->\n<section class=\"story\" data-screen-label=\"04 Audience truth\" style=\"padding-top: 60px;\">\n  <div class=\"outcomes-container outcomes-narrow\">\n    <div class=\"section-num reveal\"><span class=\"bar\"><\/span>Audience Truth<\/div>\n    <h2 class=\"section-title reveal\">Measurement Starts with <em>Audience Truth.<\/em><\/h2>\n    <p class=\"lede reveal\">Before you can measure an outcome, you have to know who actually saw the ad, counted once, not five times. A single universal ID spine, covering all 132 million U.S. households, is the connective tissue between exposure and outcome. Without it, signals live in silos that can&#8217;t be de-duplicated, can&#8217;t be compared, and can&#8217;t be verified.<\/p>\n\n    <div class=\"spine-stage reveal\">\n      <div class=\"spine-controls\">\n        <button class=\"active\" data-spine=\"on\">ID Spine ON<\/button>\n        <button data-spine=\"off\">ID Spine OFF<\/button>\n      <\/div>\n      <div class=\"spine-canvas\">\n        <svg id=\"spine-svg\" viewBox=\"0 0 900 380\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"xMidYMid meet\"><\/svg>\n      <\/div>\n      <noscript>\n        <p style=\"font-size:15px;color:var(--muted);\">Interactive diagram: when the ID spine is connected, ad exposures and later conversions across different screens resolve to the same household, forming one verifiable journey. With the spine disconnected, the same events scatter across separate systems and cannot be de-duplicated, compared, or verified.<\/p>\n      <\/noscript>\n      <div class=\"spine-legend\">\n        <span><span class=\"legend-dot\" style=\"background:#D1D5D8;\"><\/span> Household<\/span>\n        <span><span class=\"legend-dot\" style=\"background:var(--accent);\"><\/span> Exposed to ad<\/span>\n        <span><span class=\"legend-dot\" style=\"background:var(--warn);\"><\/span> Converted<\/span>\n        <span><span class=\"legend-dot\" style=\"background:var(--ink); border-radius: 0; width: 14px; height: 2px; transform: translateY(-3px);\"><\/span> Identity match<\/span>\n      <\/div>\n    <\/div>\n\n    <p class=\"reveal\">With the spine connected, an exposure on Tuesday&#8217;s CTV and a checkout on Friday&#8217;s mobile site resolve to the same household. One journey, one verified outcome. Disconnect it and they collapse into two events in two systems, indistinguishable from random co-occurrence. That is the gap between a signal and an outcome. <strong>Toggle the switch above.<\/strong><\/p>\n\n    <div class=\"metrics reveal\">\n      <div class=\"metric\">\n        <div class=\"metric-label\">On the spine<\/div>\n        <div class=\"metric-value\"><strong>Deduplicated reach<\/strong><\/div>\n      <\/div>\n      <div class=\"metric\">\n        <div class=\"metric-label\">On the spine<\/div>\n        <div class=\"metric-value\"><strong>Incrementality &amp; lift<\/strong><\/div>\n      <\/div>\n      <div class=\"metric\">\n        <div class=\"metric-label\">On the spine<\/div>\n        <div class=\"metric-value\"><strong>Benchmarks<\/strong><\/div>\n      <\/div>\n    <\/div>\n    <p class=\"reveal\" style=\"font-size: 15px; color: var(--muted); margin-top: 24px;\">Resolved across campaign, audience segment, creative, publisher, and content type, then measured for incrementality and benchmarked against category norms. Without a trusted cross-platform foundation, every outcome metric downstream is corrupted on arrival.<\/p>\n  <\/div>\n<\/section>\n\n<!-- ============== BLADE 5 \u00b7 CREATIVE PERFORMANCE ============== -->\n<section class=\"story alt\" data-screen-label=\"05 Creative performance\" style=\"padding-top: 60px;\">\n  <div class=\"outcomes-container outcomes-narrow\">\n    <div class=\"section-num reveal\"><span class=\"bar\"><\/span>Creative Performance<\/div>\n    <h2 class=\"section-title reveal\">Media Tells You <em>Where.<\/em> Creative Explains <em>Why.<\/em><\/h2>\n    <p class=\"lede reveal\">Audience truth tells you who was reached. Creative intelligence tells you what actually moved them, and which signals, stacked together, drove the lift. The same ad, measured for both, is where outcome measurement earns its name.<\/p>\n\n    <div class=\"recall-card reveal\">\n      <div class=\"rh\">Impact of celebrity casts on brand recall<\/div>\n      <div class=\"rt\">One signal is <em>not enough.<\/em><\/div>\n      <div class=\"recall-bars\" id=\"recall-bars\">\n        <button type=\"button\" class=\"rb-col\" data-i=\"0\" data-val=\"2\">\n          <span class=\"rb-thumb\"><img decoding=\"async\" src=\"https:\/\/hub-cdn.ispot.tv\/blog\/wp-content\/uploads\/2026\/06\/10085409\/creative-mascot.jpg\" alt=\"Brand mascot, animated gecko character\" loading=\"lazy\"\/><\/span>\n          <span class=\"rb-val\">+2<span class=\"u\">ppts<\/span><\/span>\n          <span class=\"rb-track\"><span class=\"rb-bar\" style=\"--h: 40%;\"><\/span><\/span>\n          <span class=\"rb-lab\">Brand mascot<\/span>\n          <span class=\"rb-sub\">Owned character<\/span>\n        <\/button>\n        <button type=\"button\" class=\"rb-col\" data-i=\"1\" data-val=\"2\">\n          <span class=\"rb-thumb\"><img decoding=\"async\" src=\"https:\/\/hub-cdn.ispot.tv\/blog\/wp-content\/uploads\/2026\/06\/10085409\/creative-celebrity.jpg\" alt=\"Single celebrity spokesperson\" loading=\"lazy\"\/><\/span>\n          <span class=\"rb-val\">+2<span class=\"u\">ppts<\/span><\/span>\n          <span class=\"rb-track\"><span class=\"rb-bar\" style=\"--h: 40%;\"><\/span><\/span>\n          <span class=\"rb-lab\">1 celebrity<\/span>\n          <span class=\"rb-sub\">Single star<\/span>\n        <\/button>\n        <button type=\"button\" class=\"rb-col hot\" data-i=\"2\" data-val=\"5\">\n          <span class=\"rb-thumb\"><img decoding=\"async\" src=\"https:\/\/hub-cdn.ispot.tv\/blog\/wp-content\/uploads\/2026\/06\/10085409\/creative-cast.jpg\" alt=\"Multiple celebrities, combined cast\" loading=\"lazy\"\/><\/span>\n          <span class=\"rb-val\">+5<span class=\"u\">ppts<\/span><\/span>\n          <span class=\"rb-track\"><span class=\"rb-bar\" style=\"--h: 100%;\"><\/span><\/span>\n          <span class=\"rb-lab\">Multiple celebrities<\/span>\n          <span class=\"rb-sub\">Combined cast<\/span>\n        <\/button>\n      <\/div>\n      <div class=\"recall-read\" id=\"recall-read\">Brand-recall lift, in percentage points. <b>Tap a creative to compare.<\/b> A single star moves recall no more than a mascot, but a combined cast delivers 2.5\u00d7 the lift.<\/div>\n    <\/div>\n    <p class=\"reveal\" style=\"font-size: 15px; color: var(--muted); margin-top: 24px;\">Brand-recall lift measured against exposed, deduplicated audiences. Source: iSpot creative measurement.<\/p>\n  <\/div>\n<\/section>\n\n<!-- ============== BLADE 6 \u00b7 ONE FRAMEWORK, MANY DEFINITIONS ============== -->\n<section class=\"story\" data-screen-label=\"06 One framework\" style=\"padding-top: 60px;\">\n  <div class=\"outcomes-container outcomes-narrow\">\n    <div class=\"section-num reveal\"><span class=\"bar\"><\/span>One framework \u00b7 many definitions of success<\/div>\n    <h2 class=\"section-title reveal\">Every Category Defines the <em>Win<\/em> Differently.<\/h2>\n    <p class=\"lede reveal\">Outcome measurement isn&#8217;t one metric. It&#8217;s one framework that resolves to whatever growth means for your category. The signals on top change. The verified spine underneath them doesn&#8217;t.<\/p>\n\n    <div class=\"cat-grid reveal\">\n      <div class=\"cat\"><div class=\"c\">CPG<\/div><div class=\"o\">Sales &amp; purchase data<\/div><\/div>\n      <div class=\"cat\"><div class=\"c\">Pharma<\/div><div class=\"o\">Site visits &amp; form fills<\/div><\/div>\n      <div class=\"cat\"><div class=\"c\">Auto<\/div><div class=\"o\">Purchase intent &amp; leads<\/div><\/div>\n      <div class=\"cat\"><div class=\"c\">Telecom<\/div><div class=\"o\">Incremental reach &amp; CPA<\/div><\/div>\n      <div class=\"cat\"><div class=\"c\">Retail<\/div><div class=\"o\">Site visits, PDP views &amp; sales<\/div><\/div>\n      <div class=\"cat\"><div class=\"c\">QSR<\/div><div class=\"o\">Sales &amp; purchase data<\/div><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== BLADE 7 \u00b7 RESULTS ============== -->\n<section class=\"story alt\" data-screen-label=\"07 Results\" style=\"padding-top: 60px;\">\n  <div class=\"outcomes-container outcomes-narrow\">\n    <div class=\"section-num reveal\"><span class=\"bar\"><\/span>Proof \u00b7 the framework still applies<\/div>\n    <h2 class=\"section-title reveal\">Same Framework. <em>Real Results.<\/em><\/h2>\n    <p class=\"lede reveal\">Outcomes look different in every category. The measurement framework stays the same: verified delivery, audience truth, incrementality, creative. Here is what it surfaces across four real engagements.<\/p>\n\n    <div class=\"results-box reveal\">\n      <div class=\"res-head\">\n        <div class=\"res-title\">Outcome explorer: results by category<\/div>\n        <div class=\"res-note\">Select a category to see the verified outcomes iSpot&#8217;s framework surfaced for it.<\/div>\n      <\/div>\n      <div class=\"res-tabs\" id=\"res-tabs\">\n        <button class=\"res-tab active\" data-i=\"0\">Auto Services<\/button>\n        <button class=\"res-tab\" data-i=\"1\">Beauty Retail<\/button>\n        <button class=\"res-tab\" data-i=\"2\">Telecom<\/button>\n        <button class=\"res-tab\" data-i=\"3\">Auto<\/button>\n      <\/div>\n      <div class=\"res-panel\" id=\"res-panel\"><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== PRE-FOOTER CTA ============== -->\n<section class=\"cta-section\">\n  <div class=\"outcomes-container\">\n    <div class=\"cta-grid\">\n      <div class=\"cta-content\">\n        <div class=\"kicker reveal\">Take control \u00b7 See it on your campaigns<\/div>\n        <h2 class=\"reveal\">Ready to <em>Control<\/em> Your Outcomes?<\/h2>\n        <p class=\"reveal\">Get a walkthrough of how iSpot&#8217;s outcome measurement connects your TV and streaming exposures to verified conversions, at the household level, across the full 30-day window, accelerated by causal AI. Built on the same ID spine and methodology described in this POV.<\/p>\n        <div class=\"cta-buttons reveal\">\n          <button class=\"outcomes-btn-primary\" id=\"open-modal-btn\" type=\"button\">Request a Demo <span class=\"outcomes-arrow\">\u2192<\/span><\/button>\n          <a class=\"outcomes-btn-secondary\" href=\"https:\/\/www.ispot.tv\" target=\"_blank\" rel=\"noopener noreferrer\">Explore iSpot.tv<\/a>\n        <\/div>\n      <\/div>\n      <div class=\"cta-stats reveal\">\n        <div class=\"cta-stat\">\n          <div class=\"cta-stat-num\">132M+<\/div>\n          <div class=\"cta-stat-label\">U.S. households on the iSpot ID spine<\/div>\n        <\/div>\n        <div class=\"cta-stat\">\n          <div class=\"cta-stat-num\">1,800+<\/div>\n          <div class=\"cta-stat-label\">Integrations across linear, streaming &amp; DSPs<\/div>\n        <\/div>\n        <div class=\"cta-stat\">\n          <div class=\"cta-stat-num\">85 of 100<\/div>\n          <div class=\"cta-stat-label\">Top U.S. advertisers measure with iSpot<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- ============== LEAD CAPTURE MODAL ============== -->\n<div class=\"outcomes-modal-overlay\" id=\"lead-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"modal-title\" aria-hidden=\"true\">\n  <div class=\"outcomes-modal-card\" id=\"modal-card\">\n    <div class=\"outcomes-modal-header\">\n      <button class=\"outcomes-modal-close\" id=\"modal-close-btn\" type=\"button\" aria-label=\"Close dialog\">\u00d7<\/button>\n      <div class=\"outcomes-modal-eyebrow\">Request a Demo<\/div>\n      <h3 id=\"modal-title\">Tell us a bit about you<\/h3>\n      <p class=\"outcomes-modal-deck\">A member of the iSpot team will reach out to set up your walkthrough. We respond to most requests within one business day.<\/p>\n    <\/div>\n    <div class=\"outcomes-modal-body\">\n      <form id=\"lead-form\" novalidate=\"\">\n        <input name=\"url\" type=\"hidden\" value=\"https:\/\/www.ispot.tv\/hub\/outcomes\"\/>\n        <input type=\"hidden\" id=\"csrfToken\" class=\"csrfToken\" name=\"csrfToken\"\/>\n        <div class=\"form-grid\">\n          <div class=\"field\">\n            <label for=\"lf-first\">First name<span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"lf-first\" name=\"firstName\" required=\"\" autocomplete=\"given-name\"\/>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"lf-last\">Last name<span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"lf-last\" name=\"lastName\" required=\"\" autocomplete=\"family-name\"\/>\n          <\/div>\n          <div class=\"field full\">\n            <label for=\"lf-email\">Work email<span class=\"req\">*<\/span><\/label>\n            <input type=\"email\" id=\"lf-email\" name=\"email\" required=\"\" autocomplete=\"email\" placeholder=\"you@company.com\"\/>\n            <div class=\"error-msg\" id=\"email-err\"><\/div>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"lf-company\">Company<span class=\"req\">*<\/span><\/label>\n            <input type=\"text\" id=\"lf-company\" name=\"company\" required=\"\" autocomplete=\"organization\"\/>\n          <\/div>\n          <div class=\"field\">\n            <label for=\"lf-title\">Job title<\/label>\n<select name=\"title\" id=\"lf-title\" required=\"\" autocomplete=\"organization-title\">\n                <option value=\"\">Please Select<\/option>\n                <option value=\"C-Level Other\">C-Suite<\/option>\n                <option value=\"VP\/SVP\">VP \/ SVP<\/option>\n                <option value=\"Director\">Director<\/option>\n                <option value=\"Manager\">Manager<\/option>\n                <option value=\"Non-Manager\">Analyst \/ Associate<\/option>\n                <option value=\"Teacher\/Student\/Intern\">Professor \/ Teacher<\/option>\n                <option value=\"Teacher\/Student\/Intern\">Student \/ Intern<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"field full\">\n            <label for=\"lf-spend\">Annual TV &amp; video ad spend<\/label>\n<select name=\"adspend\" id=\"lf-spend\" required=\"\">\n                <option value=\"\">Please Select<\/option>\n                <option value=\"$100m+\">$100m+<\/option>\n                <option value=\"$50-100m\">$50-100m<\/option>\n                <option value=\"$15-50m\">$15-50m<\/option>\n                <option value=\"&lt;$15m\">&lt;$15m<\/option>\n                <option value=\"$0\">Not Currently Advertising<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n        <p class=\"outcomes-modal-consent\">By submitting, you agree to be contacted by iSpot about this request. See <a href=\"https:\/\/www.ispot.tv\/privacy\" target=\"_blank\" rel=\"noopener noreferrer\">privacy practices<\/a>.<\/p>\n        <div class=\"outcomes-modal-error\" id=\"modal-error\">Something went wrong submitting your request. Please try again or email <strong>info@ispot.tv<\/strong>.<\/div>\n        <div class=\"outcomes-modal-actions\">\n          <button class=\"outcomes-btn-submit\" type=\"submit\" id=\"submit-btn\">\n            <span class=\"outcomes-label\">Request Demo<\/span>\n            <span class=\"outcomes-spinner\" aria-hidden=\"true\"><\/span>\n          <\/button>\n        <\/div>\n      <\/form>\n    <\/div>\n    <div class=\"outcomes-modal-success\">\n      <div class=\"success-mark\">\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><polyline points=\"4 12 10 18 20 6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/polyline><\/svg>\n      <\/div>\n      <h3>Thanks, we&#8217;re on it.<\/h3>\n      <p>A member of the iSpot team will be in touch within one business day to schedule your walkthrough.<\/p>\n    <\/div>\n  <\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Control Your Outcomes You Don&#8217;t Have Outcomes. You Have Signals Dressed up as Proof. What does outcome measurement really mean? Sales. Visits. Lift. Attention. Conversion. ROAS. Search. Purchase intent. The market has more outcome signals than ever, but less agreement on what they actually prove. After 10+ years measuring TV and video performance for hundreds&#8230; Read More<\/p>\n","protected":false},"author":30,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-blank-no-header.php","meta":{"_acf_changed":false,"footnotes":""},"categories":[],"ispot_product_categories":[],"class_list":["post-37788","page","type-page","status-publish","hentry"],"acf":{"expiration_date":""},"_links":{"self":[{"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/pages\/37788","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/comments?post=37788"}],"version-history":[{"count":39,"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/pages\/37788\/revisions"}],"predecessor-version":[{"id":38245,"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/pages\/37788\/revisions\/38245"}],"wp:attachment":[{"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/media?parent=37788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/categories?post=37788"},{"taxonomy":"ispot_product_categories","embeddable":true,"href":"https:\/\/www.ispot.tv\/hub\/wp-json\/wp\/v2\/ispot_product_categories?post=37788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}