/* Figma sync — 2026-10-01
   Loaded after the legacy landing styles so the approved design remains the
   single visual source of truth without disturbing the existing scroll logic. */

:root {
  --font-display: "Anton", Impact, sans-serif;
  --font-body: "Manrope", Arial, sans-serif;
  --font-mono: "Space Mono", monospace;
}

/* The refreshed system intentionally uses only Anton, Manrope and Space Mono. */
.new-home :is(p, span, strong, small, em, b, a, button, th, td, dt, dd, blockquote) {
  font-family: var(--font-body) !important;
}

.new-home :is(h1, h2, h3, h4),
.new-home :is(h1, h2, h3, h4) :is(span, strong, em),
.new-home :is(.nh-games h2, .nh-final h2, .nh-product-copy h3, .nh-benefits h3, .nh-moment-card h3) {
  font-family: var(--font-display) !important;
  font-weight: 400;
}

.new-home :is(
  .nh-powered,
  .nh-eyebrow,
  .nh-score-card small,
  .nh-score-card em,
  .nh-product-copy p,
  .nh-market-panel thead,
  .nh-division-row,
  .nh-updated,
  .nh-fancard-identity small,
  .nh-fancard-status small,
  .nh-fancard-metrics small,
  .nh-main-fancard > p,
  .nh-passport-identity small,
  .nh-passport-copy small,
  .nh-passport-meta dt,
  .nh-moment-card > p,
  .nh-moment-card > span,
  .nh-moment-art-badge,
  .nh-final-copy > p,
  .nh-footer-main > p
) {
  font-family: var(--font-mono) !important;
}

body.new-home {
  font-family: var(--font-body);
}

/* Hero */
.nh-hero-content {
  top: 146px;
}

.nh-hero h1 {
  margin-top: 30px;
  font-size: clamp(62px, 4.2vw, 80px);
  line-height: 1.02;
  letter-spacing: 1px;
}

.nh-hero-copy {
  margin-top: 16px;
  color: rgb(244 239 226 / 76%);
  font-size: 17px;
}

.nh-hero-content .nh-download {
  margin-top: 38px;
}

.nh-hero-phone-stage {
  top: clamp(570px, 66.1vh, 714px);
  width: min(1120px, 84vw);
  height: 666px;
}

.nh-hero-phone {
  position: absolute;
  width: 328px;
  height: 666px;
  object-fit: contain;
  opacity: 0;
  transform: translate3d(0, 110px, 0) scale(.97);
}

.nh-hero-phone-market {
  z-index: 1;
  top: 81px;
  left: 0;
  transition-delay: 120ms;
}

.nh-hero-phone-home {
  z-index: 3;
  top: 0;
  left: 50%;
  transform: translate3d(-50%, 110px, 0) scale(.97);
}

.nh-hero-phone-fancard {
  z-index: 2;
  top: 127px;
  right: 0;
  transition-delay: 220ms;
}

.nh-hero-sticky.is-intro-ready .nh-hero-phone {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

.nh-hero-sticky.is-intro-ready .nh-hero-phone-home {
  transform: translate3d(-50%, 0, 0) scale(1);
}

.nh-hero-sticky > .nh-score-card {
  box-sizing: border-box;
  width: 216px;
  height: 216px;
  min-height: 216px;
  padding: 24px;
  border: 0;
  border-radius: 20px;
  background: rgb(0 0 0 / 20%);
  box-shadow: none;
  -webkit-backdrop-filter: blur(42px);
  backdrop-filter: blur(42px);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: space-between;
}

.nh-score-card-a { top: 284px; left: clamp(32px, 11.35vw, 218px); }
.nh-score-card-b { top: 360px; right: clamp(28px, 17.45vw, 335px); }
.nh-score-card-c { top: 621px; left: clamp(60px, 17.15vw, 329px); }
.nh-score-card-d { top: 634px; right: clamp(48px, 13.8vw, 265px); }

.nh-hero-sticky > .nh-score-card .nh-score-teams {
  flex: 0 0 53px;
  height: 53px;
  margin: 0;
}

.nh-hero-sticky > .nh-score-card .nh-score-teams i {
  flex: 0 0 53px;
  width: 53px;
  height: 53px;
  font-family: var(--font-display) !important;
  font-size: 18px;
  font-weight: 400;
}

.nh-hero-sticky > .nh-score-card .nh-score-teams span {
  color: white;
  font-family: var(--font-mono) !important;
  font-size: 11px;
  line-height: 1;
  opacity: .34;
}

.nh-hero-sticky .nh-score-teams .is-team-dp { background: #006bb6; }
.nh-hero-sticky .nh-score-teams .is-team-ah { background: #e03a3e; }
.nh-hero-sticky .nh-score-teams .is-team-bc { background: #008248; }
.nh-hero-sticky .nh-score-teams .is-team-dn { background: #f0b100; }
.nh-hero-sticky .nh-score-teams .is-team-ww { background: #e31837; }
.nh-hero-sticky .nh-score-teams .is-team-ph { background: #1d428a; }
.nh-hero-sticky .nh-score-teams .is-team-ip { background: #f0b100; }
.nh-hero-sticky .nh-score-teams .is-team-tr { background: #cd1141; }

.nh-hero-sticky > .nh-score-card .nh-score-bottom {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.nh-hero-sticky > .nh-score-card .nh-score-board {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: 53px minmax(0, 1fr) 53px;
  align-items: start;
  gap: 0;
}

.nh-hero-sticky > .nh-score-card .nh-score-board > span {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  text-align: center;
}

.nh-hero-sticky > .nh-score-card .nh-score-board > span:last-child {
  align-items: center;
  text-align: center;
}

.nh-hero-sticky > .nh-score-card .nh-score-board strong {
  width: auto;
  margin: 0;
  display: block;
  color: var(--nh-text);
  font-family: var(--font-display) !important;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
}

.nh-hero-sticky > .nh-score-card .nh-score-board > b {
  align-self: start;
  justify-self: center;
  margin: 0;
  padding: 0;
  color: var(--nh-text);
  font-family: var(--font-display) !important;
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
}

.nh-hero-sticky > .nh-score-card .nh-score-board em {
  margin: 0 !important;
  font-family: var(--font-body) !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
}

.nh-hero-sticky > .nh-score-card .nh-score-change.is-positive {
  color: #00d794;
}

.nh-hero-sticky > .nh-score-card .nh-score-change.is-negative {
  color: #ff5b69;
}

.nh-hero-sticky > .nh-score-card .nh-score-period {
  width: 100%;
  margin: 0;
  color: rgb(244 239 226 / 80%);
  font-family: var(--font-mono) !important;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 1px;
  text-align: center;
  text-transform: uppercase;
}

/* Three product cards */
.nh-section-heading h2 {
  font-size: 80px;
  line-height: 1;
}

.nh-identity-cards .nh-three-grid {
  margin-top: 196px;
}

.nh-product-card {
  position: relative;
  padding: 40px;
}

.nh-card-layer-fancard-v2 {
  top: -164px;
  width: 376px;
}

.nh-product-card .nh-widget-entry-left {
  top: -24px;
  left: -108px;
}

.nh-code-widget-founding .nh-code-widget-surface {
  background: rgb(255 255 255 / 5%);
  -webkit-backdrop-filter: blur(17px);
  backdrop-filter: blur(17px);
  box-shadow: none;
}

.nh-code-widget-founding .nh-founding-date {
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.nh-code-widget-founding .nh-founding-date span {
  opacity: .8;
}

.nh-code-widget-founding .nh-founding-date strong {
  color: inherit;
  font: inherit;
  font-weight: 400;
}

.nh-product-copy {
  margin-top: 48px;
}

.nh-product-copy p {
  margin: 0 0 16px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 2px;
}

.nh-product-copy h3 {
  font-size: 34px;
  letter-spacing: 1px;
}

.nh-identity-cards .nh-eyebrow {
  color: #00d794;
}

.nh-product-copy > span {
  margin-top: 16px;
  color: var(--nh-muted);
  font-size: 18px;
  line-height: 1.5;
}

.new-home .nh-code-widget-xp strong,
.new-home .nh-code-widget-xp strong span,
.new-home .nh-pulse-score strong,
.new-home .nh-pulse-score b {
  font-family: var(--font-display) !important;
  font-weight: 400;
}

/* Continuous message between cards and market */
.nh-fans-marquee {
  position: relative;
  z-index: 5;
  width: 100%;
  height: 120px;
  overflow: hidden;
  display: flex;
  align-items: center;
  background: transparent;
  color: white;
  contain: paint;
}

.nh-fans-marquee-track {
  width: max-content;
  display: flex;
  align-items: center;
  gap: 60px;
  padding-left: 60px;
  animation: nh-fans-marquee 34s linear infinite;
  will-change: transform;
}

.nh-fans-marquee-group {
  display: flex;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
}

.nh-fans-marquee-group span,
.nh-fans-marquee-group strong {
  font-family: var(--font-display) !important;
  font-size: 80px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 1px;
  text-transform: uppercase;
  transition: color 360ms ease;
}

.nh-fans-marquee-group strong {
  color: var(--accent);
}

.nh-fans-marquee-group i {
  width: 44px;
  height: 44px;
  border: 2px solid var(--accent);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 23px;
  font-style: normal;
  font-weight: 800;
  transition: color 360ms ease, border-color 360ms ease;
}

.nh-fans-marquee:hover .nh-fans-marquee-group span {
  color: var(--accent);
}

.nh-fans-marquee:hover .nh-fans-marquee-group strong {
  color: white;
}

@keyframes nh-fans-marquee {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(calc(-25% - 15px), 0, 0); }
}

@media (min-width: 1181px) {
  .nh-product-card {
    height: auto;
    min-height: 0;
  }

  .nh-product-copy > span {
    font-size: clamp(12.5px, 1.08vw, 18px);
    white-space: nowrap;
  }

  .nh-product-copy h3 {
    font-size: clamp(30px, 2.4vw, 34px);
  }
}

/* FanCard front — the passport side deliberately keeps its previous design. */
.nh-fancard-section .nh-section-copy {
  color: var(--nh-muted);
}

.nh-fancard-layout,
.nh-fancard-stack,
.nh-fancard-flip,
.nh-fancard-flip-inner {
  height: 620px;
}

.nh-fancard-layout {
  align-items: center;
}

.nh-fancard-front {
  width: 376px;
  height: 620px;
  padding: 0;
  border-color: transparent;
  background: #212123;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nh-fancard-front .nh-fancard-avatar {
  position: absolute;
  top: 57px;
  left: 50%;
  margin: 0;
  transform: translateX(-50%);
}

.nh-fancard-identity {
  position: absolute;
  top: 179px;
  left: 50%;
  width: 160px;
  display: grid;
  gap: 8px;
  transform: translateX(-50%);
  text-align: center;
}

.nh-fancard-identity strong {
  color: white;
  font-family: var(--font-body) !important;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -.25px;
}

.nh-fancard-identity small {
  color: #8f8f98;
  font-size: 11px;
  letter-spacing: .55px;
  text-transform: uppercase;
}

.nh-fancard-status {
  position: absolute;
  top: 272px;
  left: 23px;
  width: 328px;
  min-height: 80px;
  padding: 16px;
  border: 1px solid #ffc700;
  border-radius: 12px;
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 20px;
  background: rgb(255 199 0 / 10%);
  text-align: left;
}

.nh-fancard-status > i {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #ffc700;
  color: #111;
  font-family: var(--font-body);
  font-size: 20px;
  font-style: normal;
}

.nh-fancard-status > span {
  display: grid;
  gap: 8px;
}

.nh-fancard-status > span:last-child {
  justify-items: end;
}

.nh-fancard-status small,
.nh-fancard-metrics small {
  color: rgb(255 255 255 / 50%);
  font-family: var(--font-mono) !important;
  font-size: 11px;
  letter-spacing: .55px;
  text-transform: uppercase;
}

.nh-fancard-status strong {
  color: white;
  font-family: var(--font-display) !important;
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}

.nh-fancard-status strong em {
  color: rgb(255 255 255 / 20%);
  font-family: var(--font-display) !important;
  font-style: normal;
}

/* Explicit value hooks keep the Figma Anton display face from being
   overridden by the global body-type rule above. */
.new-home .nh-fancard-display-value,
.new-home .nh-fancard-display-value em,
.new-home .rally-xp-score-value > strong,
.new-home .rally-xp-score-value > span,
.new-home .rally-xp-pop strong,
.new-home .rally-xp-pop strong em {
  font-family: var(--font-display) !important;
  font-weight: 400;
}

/* One clean card surface: the blurred side previews looked like clipped
   duplicate cards inside the component. */
.nh-fancard-peek-slot {
  display: none !important;
}

.nh-fancard-metrics {
  position: absolute;
  top: 392px;
  left: 39px;
  width: 296px;
  display: flex;
  justify-content: space-between;
}

.nh-fancard-metrics > span {
  display: grid;
  gap: 12px;
  text-align: left;
}

.nh-fancard-metrics > span:last-child {
  text-align: right;
}

.nh-fancard-metrics strong {
  color: white;
  font-family: var(--font-display) !important;
  font-size: 25px;
  font-weight: 400;
  line-height: 1;
}

.nh-fancard-metrics > span:last-child strong {
  color: var(--accent);
}

.nh-fancard-front .nh-level-bar {
  position: absolute;
  top: 477px;
  left: 39px;
  width: 296px;
  margin: 0;
}

.nh-fancard-front > p {
  position: absolute;
  top: 524px;
  left: 0;
  width: 100%;
  margin: 0;
}

.nh-fancard-front .nh-held-coins {
  position: absolute;
  top: 552px;
  left: 0;
  width: 100%;
  gap: 12px;
}

.nh-fancard-front .nh-held-coins i {
  width: 40px;
  height: 40px;
  font-size: 16px;
}

.nh-fancard-passport {
  top: 21px;
}

.nh-fancard-peek-slot {
  z-index: 0;
  top: 32px;
  height: 478px;
  opacity: .34;
  filter: blur(12px);
}

.nh-fancard-peek-slot-left { left: -32px; }
.nh-fancard-peek-slot-right { right: -32px; }

.nh-fancard-stack.is-flipping .nh-fancard-peek-slot {
  opacity: 0;
  filter: blur(24px);
}

/* Moments */
.nh-moment-card > p {
  color: var(--accent);
  font-size: 13px;
  letter-spacing: 2px;
}

.nh-moment-card h3 {
  font-size: 28px;
  letter-spacing: 1px;
}

.nh-moment-card:nth-child(4) .nh-moment-art img {
  object-position: center top;
}

/* Comparison — animate the FanCoins column into one continuous highlighted rail. */
.nh-comparison .nh-section-heading h2 {
  font-size: 72px;
  line-height: 1.05;
}

.nh-comparison-scroll {
  border-radius: 26px;
  overflow: auto;
}

.nh-comparison table {
  border-collapse: separate;
  border-spacing: 0;
}

.nh-comparison th,
.nh-comparison td {
  height: 104px;
  font-size: 17px;
}

.nh-comparison thead th {
  height: 102px;
  font-size: 16px;
  font-weight: 600;
}

.nh-comparison th:first-child {
  width: 32.2%;
  font-weight: 600;
}

.nh-comparison :is(th, td):nth-child(2) {
  position: relative;
  border-right: 1px solid transparent;
  border-left: 1px solid transparent;
  background: transparent;
  transition:
    border-color 800ms cubic-bezier(.16, 1, .3, 1),
    background-color 900ms cubic-bezier(.16, 1, .3, 1),
    box-shadow 900ms cubic-bezier(.16, 1, .3, 1);
}

.nh-comparison-scroll.is-visible :is(th, td):nth-child(2) {
  border-right-color: rgb(255 209 46 / 33%);
  border-left-color: rgb(255 209 46 / 33%);
  background: rgb(255 209 46 / 5.5%);
}

.nh-comparison thead th:nth-child(2) {
  border-top: 1px solid transparent;
  border-radius: 24px 24px 0 0;
}

.nh-comparison-scroll.is-visible thead th:nth-child(2) {
  border-top-color: rgb(255 209 46 / 48%);
  box-shadow: 0 -22px 60px rgb(255 209 46 / 7%);
}

.nh-comparison tbody tr:last-child td:nth-child(2) {
  border-bottom: 1px solid transparent;
  border-radius: 0 0 24px 24px;
}

.nh-comparison-scroll.is-visible tbody tr:last-child td:nth-child(2) {
  border-bottom-color: rgb(255 209 46 / 48%);
  box-shadow: 0 28px 62px rgb(255 209 46 / 7%);
}

.nh-comparison tbody td:nth-child(2) {
  color: #fecf2a;
  font-size: 22px;
  font-weight: 700;
}

.nh-comparison-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: white;
  font-size: 18px;
  font-weight: 700;
}

.nh-comparison-brand i {
  width: 28px;
  height: 28px;
  border: 2px solid var(--accent);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--accent);
  font-family: var(--font-body);
  font-size: 14px;
  font-style: normal;
  font-weight: 800;
}

.nh-fancard-status > i img {
  width: 24px;
  height: 24px;
}

/* Final CTA + footer typography follows the refreshed system. */
.nh-final-copy > p {
  letter-spacing: 1px;
}

.nh-footer-brand,
.nh-footer-main nav,
.nh-footer-legal {
  font-family: var(--font-body);
}

@media (max-width: 1500px) {
  .nh-hero-phone-stage {
    width: min(980px, 78vw);
  }

  .nh-hero-phone {
    width: 300px;
    height: auto;
  }

  .nh-product-card .nh-widget-entry-left {
    left: -32px;
  }
}

@media (max-width: 1180px) {
  .nh-hero-phone-stage {
    width: min(840px, 82vw);
  }

  .nh-hero-phone {
    width: 270px;
  }

  .nh-hero-sticky > .nh-score-card {
    transform-origin: center;
  }

  .nh-card-layer-fancard-v2 {
    width: 376px;
  }
}

@media (max-width: 900px) {
  .nh-hero-content {
    top: 132px;
  }

  .nh-hero-phone-stage {
    bottom: -205px;
    width: min(720px, 94vw);
    height: 570px;
  }

  .nh-hero-phone {
    width: min(270px, 38vw);
  }

  .nh-hero-phone-market { left: 0; }
  .nh-hero-phone-fancard { right: 0; }

  .nh-identity-cards .nh-three-grid {
    margin-top: 120px;
  }

  .nh-fans-marquee {
    height: 92px;
  }

  .nh-fans-marquee-group span,
  .nh-fans-marquee-group strong {
    font-size: 58px;
  }

  .nh-fancard-layout,
  .nh-fancard-stack,
  .nh-fancard-flip,
  .nh-fancard-flip-inner {
    height: 620px;
  }
}

@media (max-width: 620px) {
  .nh-hero-content {
    top: 112px;
  }

  .nh-hero h1 {
    font-size: 52px;
  }

  .nh-hero-copy {
    font-size: 15px;
  }

  .nh-hero-phone-stage {
    bottom: -80px;
    width: 100%;
    height: 470px;
  }

  .nh-hero-phone {
    width: 205px;
  }

  .nh-hero-phone-market {
    top: 82px;
    left: -46px;
  }

  .nh-hero-phone-home {
    top: 16px;
  }

  .nh-hero-phone-fancard {
    top: 98px;
    right: -46px;
  }

  .nh-section-heading h2 {
    font-size: 54px;
  }

  .nh-product-card {
    height: auto;
    min-height: 590px;
  }

  .nh-card-layer-fancard-v2 {
    top: -92px;
    width: 330px;
  }

  .nh-product-card .nh-widget-entry-left {
    top: -8px;
    left: -34px;
    transform: scale(.82) rotate(var(--widget-enter-r));
    transform-origin: top left;
  }

  .nh-product-card.is-visible .nh-widget-entry-left {
    transform: scale(.82) rotate(0deg);
  }

  .nh-fans-marquee {
    height: 76px;
  }

  .nh-fans-marquee-track {
    gap: 34px;
    padding-left: 34px;
  }

  .nh-fans-marquee-group span,
  .nh-fans-marquee-group strong {
    font-size: 44px;
  }

  .nh-fans-marquee-group i {
    width: 34px;
    height: 34px;
    font-size: 18px;
  }

  .nh-fancard-layout,
  .nh-fancard-stack,
  .nh-fancard-flip,
  .nh-fancard-flip-inner {
    width: 344px;
    height: 567px;
  }

  .nh-fancard-face,
  .nh-fancard-front {
    transform-origin: top left;
  }

  .nh-fancard-front {
    transform: scale(.915);
  }

  .nh-fancard-flip.is-flipped .nh-fancard-flip-inner {
    transform: rotateY(180deg);
  }

  .nh-fancard-passport {
    top: 19px;
    transform: rotateY(180deg) scale(.915);
  }

  .nh-fancard-peek-slot {
    display: none;
  }

  .nh-comparison .nh-section-heading h2 {
    font-size: 54px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nh-fans-marquee-track {
    animation: none;
  }

  .nh-comparison :is(th, td):nth-child(2) {
    transition: none;
  }
}
