.tapdecode-story {
  --sc-canvas: #0b1212;
  --sc-surface: #14201e;
  --sc-ink: #f8f5ef;
  --sc-ink-soft: #b9c2bd;
  --sc-accent: #64d7ff;
  --sc-accent-ink: #071112;
  position: relative;
  isolation: isolate;
  overflow: clip;
  border-inline: 1px solid rgba(223, 239, 232, 0.1);
  color: var(--sc-ink);
  background: var(--sc-canvas);
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    sans-serif;
}

.tapdecode-story h1,
.tapdecode-story h2,
.tapdecode-story p,
.tapdecode-story figure {
  margin-top: 0;
}

.tapdecode-story h1,
.tapdecode-story h2 {
  margin-bottom: 1.25rem;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.tapdecode-story h1 {
  max-width: 8ch;
  font-size: clamp(4.3rem, 7.5vw, 8rem);
  line-height: 0.84;
}

.tapdecode-story h2 {
  max-width: 13ch;
  font-size: clamp(2.7rem, 6.5vw, 6.6rem);
  line-height: 0.94;
}

.tapdecode-story p {
  max-width: 43rem;
  color: var(--sc-ink-soft);
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  line-height: 1.65;
  text-wrap: pretty;
}

.tapdecode-story figure {
  margin-bottom: 0;
}

.tapdecode-story figcaption {
  margin-top: 0.7rem;
  color: color-mix(in oklab, currentColor 58%, transparent);
  font:
    0.64rem/1.45 ui-monospace,
    SFMono-Regular,
    Menlo,
    monospace;
  letter-spacing: 0.045em;
}

.tapdecode-story img,
.tapdecode-story video {
  border-radius: clamp(1.1rem, 2vw, 2rem);
}

.tapdecode-story img {
  height: auto;
}

.tapdecode-kicker {
  margin-bottom: 1.2rem;
  color: var(--sc-accent) !important;
  font:
    700 0.68rem/1.4 ui-monospace,
    SFMono-Regular,
    Menlo,
    monospace !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.tapdecode-progress {
  position: fixed;
  z-index: 90;
  top: 0;
  left: 0;
  width: calc(var(--sc-progress, 0) * 100%);
  height: 3px;
  background: linear-gradient(90deg, #64d7ff, #f6d28a);
  box-shadow: 0 0 1rem rgba(100, 215, 255, 0.5);
  pointer-events: none;
}

.tapdecode-chapters {
  position: fixed;
  z-index: 72;
  top: 50%;
  right: max(1.2rem, env(safe-area-inset-right));
  transform: translateY(-50%);
}

.tapdecode-chapters ol {
  display: grid;
  gap: 0.22rem;
  margin: 0;
  padding: 0.45rem;
  border: 1px solid rgba(232, 239, 235, 0.14);
  border-radius: 0.8rem;
  background: rgba(7, 13, 13, 0.82);
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.3);
  list-style: none;
  backdrop-filter: blur(14px);
}

.tapdecode-chapters a {
  min-height: 2.75rem;
  display: grid;
  grid-template-columns: 1.7rem auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.35rem 0.7rem;
  border-radius: 0.45rem;
  color: #9daaa5;
  font-size: 0.7rem;
  text-decoration: none;
}

.tapdecode-chapters a > span:first-child {
  color: #68756f;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}

.tapdecode-chapters a:hover,
.tapdecode-chapters a[aria-current='location'] {
  color: #ffffff;
  background: rgba(100, 215, 255, 0.12);
}

.tapdecode-chapters a[aria-current='location'] > span:first-child {
  color: #64d7ff;
}

.tapdecode-hero,
.tapdecode-message-layout,
.tapdecode-private-layout,
.tapdecode-finale-layout {
  width: min(100%, 86rem);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 6vw, 6rem);
}

.tapdecode-hero {
  min-height: max(48rem, calc(100svh - 5.5rem));
  display: grid;
  grid-template-columns: minmax(18rem, 0.88fr) minmax(19rem, 0.72fr);
  gap: clamp(2rem, 8vw, 8rem);
  align-items: center;
  padding-block: clamp(4rem, 8vw, 8rem);
  background:
    radial-gradient(
      circle at 78% 24%,
      rgba(100, 215, 255, 0.15),
      transparent 28rem
    ),
    linear-gradient(145deg, #0b1212 0%, #0e1817 70%, #101e1d 100%);
}

.tapdecode-product-lockup {
  display: flex;
  gap: 0.9rem;
  align-items: center;
  margin-bottom: clamp(2.2rem, 5vw, 5rem);
}

.tapdecode-product-lockup img {
  width: 3.7rem;
  height: 3.7rem;
  border-radius: 1rem;
  box-shadow: 0 0.8rem 2rem rgba(44, 125, 130, 0.28);
}

.tapdecode-product-lockup p {
  margin: 0;
  color: #eef7f3;
  font-weight: 650;
  letter-spacing: -0.02em;
}

.tapdecode-lede {
  color: #c2cec8 !important;
  font-size: clamp(1.08rem, 1.7vw, 1.4rem) !important;
}

.tapdecode-scroll-note {
  margin-top: 2.4rem;
  color: #7e918a !important;
  font:
    0.68rem/1.4 ui-monospace,
    SFMono-Regular,
    Menlo,
    monospace !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.tapdecode-hero-screen {
  position: relative;
  left: calc(-1 * clamp(2.5rem, 4vw, 4.5rem));
  width: min(100%, 29rem);
  justify-self: center;
  transform: rotate(1.2deg);
}

.tapdecode-hero-screen img {
  width: 100%;
  box-shadow: 0 2.2rem 6rem rgba(0, 0, 0, 0.42);
}

.tapdecode-scrub {
  color: #f8f5ef;
  background: #111a19;
}

.tapdecode-scrub-stage {
  padding-inline: clamp(1.25rem, 6vw, 6rem);
  background:
    linear-gradient(
      90deg,
      rgba(7, 14, 14, 0.98) 0 42%,
      rgba(7, 14, 14, 0.2) 68%,
      rgba(7, 14, 14, 0.72)
    ),
    radial-gradient(
      circle at 70% 42%,
      rgba(100, 215, 255, 0.12),
      transparent 28rem
    ),
    #101817;
}

.tapdecode-scrub-copy {
  top: 50%;
  bottom: auto;
  left: clamp(1.25rem, 6vw, 6rem);
  max-width: min(34rem, 42vw);
  transform: translateY(-50%);
}

.tapdecode-scrub-copy h2 {
  font-size: clamp(2.8rem, 5.7vw, 6rem);
}

.tapdecode-scrub-media {
  position: absolute;
  top: 50%;
  right: clamp(5rem, 11vw, 10rem);
  width: min(31rem, 40vw);
  height: min(88svh, 58rem);
  transform: translateY(-50%);
}

.tapdecode-scrub-media > img,
.tapdecode-scrub-media > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.42);
}

.tapdecode-scrub-media > img {
  opacity: 1;
  transition: opacity 380ms var(--sc-ease-out);
}

.tapdecode-scrub.sc-has-clip .tapdecode-scrub-media > img {
  opacity: 0;
}

.tapdecode-scrub-media figcaption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 3;
  margin: 0;
  padding: 1.5rem 1rem 0.9rem;
  color: #c7d4cf;
  background: linear-gradient(transparent, rgba(6, 11, 11, 0.86));
  border-radius: 0 0 1.6rem 1.6rem;
  text-align: center;
}

.tapdecode-pinned {
  color: #f8f5ef;
  background: #17201e;
}

.tapdecode-pin-stage {
  display: grid;
  grid-template-columns: minmax(17rem, 0.72fr) minmax(22rem, 1.1fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: center;
  padding: clamp(2.2rem, 6vw, 6rem);
}

.tapdecode-pinned-light {
  color: #171b19;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.5), transparent 58%), #e9dfd1;
}

.tapdecode-pinned-light .tapdecode-pin-copy p:not(.tapdecode-kicker) {
  color: #505b55;
}

.tapdecode-pinned-light .tapdecode-kicker {
  color: #246e78 !important;
}

.tapdecode-pin-copy,
.tapdecode-risk-copy {
  position: relative;
  z-index: 3;
}

.tapdecode-pin-copy h2,
.tapdecode-risk-copy h2 {
  font-size: clamp(2.65rem, 5.7vw, 5.8rem);
}

.tapdecode-screen-pair {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(0.75rem, 2vw, 1.5rem);
  align-items: center;
}

.tapdecode-screen-pair img {
  width: 100%;
  max-height: 82svh;
  object-fit: contain;
  box-shadow: 0 1.5rem 4rem rgba(32, 27, 22, 0.2);
}

.tapdecode-message {
  min-height: 110svh;
  display: grid;
  align-items: center;
  padding-block: clamp(5rem, 11vw, 11rem);
  background:
    radial-gradient(
      circle at 18% 40%,
      rgba(255, 122, 82, 0.11),
      transparent 30rem
    ),
    #171412;
}

.tapdecode-message-layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.86fr) minmax(18rem, 0.65fr);
  gap: clamp(2.5rem, 9vw, 9rem);
  align-items: center;
}

.tapdecode-message-copy h2 {
  max-width: 11ch;
}

.tapdecode-message figure {
  width: min(100%, 29rem);
  justify-self: center;
}

.tapdecode-message figure img {
  width: 100%;
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.44);
}

.tapdecode-risk {
  color: #fff7ef;
  background:
    linear-gradient(120deg, rgba(112, 35, 23, 0.24), transparent 55%), #211613;
}

.tapdecode-risk .tapdecode-pin-stage {
  grid-template-columns: minmax(18rem, 0.72fr) minmax(18rem, 0.8fr);
}

.tapdecode-risk-screen {
  height: 86svh;
  display: grid;
  place-items: center;
}

.tapdecode-risk-screen img {
  width: auto;
  max-width: min(100%, 27rem);
  max-height: 82svh;
  object-fit: contain;
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.46);
}

.tapdecode-risk-copy {
  grid-column: 2;
  grid-row: 1;
}

.tapdecode-private {
  min-height: 115svh;
  display: grid;
  align-items: center;
  padding-block: clamp(5rem, 11vw, 11rem);
  color: #151917;
  background:
    radial-gradient(
      circle at 78% 28%,
      rgba(45, 136, 144, 0.12),
      transparent 27rem
    ),
    #f1eadf;
}

.tapdecode-private-layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.68fr) minmax(18rem, 0.88fr);
  gap: clamp(2.5rem, 9vw, 9rem);
  align-items: center;
}

.tapdecode-private figure {
  width: min(100%, 29rem);
  justify-self: center;
}

.tapdecode-private figure img {
  width: 100%;
  box-shadow: 0 2rem 5rem rgba(46, 38, 29, 0.18);
}

.tapdecode-private p:not(.tapdecode-kicker) {
  color: #4b5751;
}

.tapdecode-private .tapdecode-kicker {
  color: #246e78 !important;
}

.tapdecode-inline-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem 1.4rem;
  margin-top: 2rem;
}

.tapdecode-inline-links a {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  color: inherit;
  font-size: 0.8rem;
  text-underline-offset: 0.32rem;
}

.tapdecode-finale {
  min-height: 115svh;
  display: grid;
  align-items: center;
  padding-block: clamp(5rem, 11vw, 11rem);
  background:
    radial-gradient(
      circle at 72% 38%,
      rgba(100, 215, 255, 0.14),
      transparent 30rem
    ),
    linear-gradient(150deg, #0a1111, #0e1918);
}

.tapdecode-finale-layout {
  display: grid;
  grid-template-columns: minmax(18rem, 0.92fr) minmax(18rem, 0.62fr);
  gap: clamp(2.5rem, 9vw, 9rem);
  align-items: center;
}

.tapdecode-finale figure {
  width: min(100%, 28rem);
  justify-self: center;
}

.tapdecode-finale figure img {
  width: 100%;
  box-shadow: 0 2rem 5rem rgba(0, 0, 0, 0.44);
}

.tapdecode-app-store-cta {
  min-height: 3.4rem;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.4rem;
  padding: 0.85rem 1.15rem;
  border: 1px solid rgba(100, 215, 255, 0.62);
  border-radius: 0.5rem;
  color: #f3fbf8;
  background: rgba(100, 215, 255, 0.09);
  font-size: 0.86rem;
  text-decoration: none;
}

.tapdecode-app-store-cta:hover {
  background: rgba(100, 215, 255, 0.16);
}

.tapdecode-noscript {
  margin: 0;
  padding: 1rem clamp(1.25rem, 6vw, 6rem);
  color: #d7dfdb !important;
  background: #0b1212;
}

@media (min-width: 761px) {
  .tapdecode-scrub-copy {
    translate: 0 -50%;
  }
}

@media (min-width: 1700px) and (max-width: 1800px) {
  .tapdecode-chapters {
    right: max(0.375rem, env(safe-area-inset-right));
  }

  .tapdecode-chapters ol {
    padding: 0.25rem;
  }

  .tapdecode-chapters a {
    grid-template-columns: 1.45rem minmax(0, auto);
    gap: 0.3rem;
    padding-inline: 0.35rem;
  }
}

@media (min-width: 761px) and (max-width: 1699px) {
  .tapdecode-story {
    border-right-color: transparent;
  }

  body:has(.tapdecode-story) {
    border-right: 1px solid rgba(223, 239, 232, 0.1);
  }
}

@media (max-width: 1699px) {
  .tapdecode-chapters a {
    grid-template-columns: 1.7rem;
  }

  .tapdecode-chapters a > span:last-child {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

@media (max-width: 1100px) {
  .tapdecode-scrub-copy {
    max-width: 45vw;
  }

  .tapdecode-scrub-media {
    right: clamp(4rem, 8vw, 6rem);
    width: min(30rem, 43vw);
  }
}

@media (max-width: 760px) {
  .tapdecode-story {
    border-inline: 0;
  }

  .tapdecode-story h1 {
    font-size: clamp(3.5rem, 17vw, 5rem);
  }

  .tapdecode-story h2 {
    font-size: clamp(2.55rem, 13vw, 4.5rem);
  }

  .tapdecode-chapters {
    top: auto;
    right: max(0.75rem, env(safe-area-inset-right));
    bottom: max(0.75rem, env(safe-area-inset-bottom));
    transform: none;
  }

  .tapdecode-chapters ol {
    grid-auto-flow: column;
    gap: 0;
    padding: 0.28rem;
  }

  .tapdecode-chapters a {
    min-width: 2.7rem;
    padding-inline: 0.5rem;
  }

  .tapdecode-hero,
  .tapdecode-message-layout,
  .tapdecode-private-layout,
  .tapdecode-finale-layout {
    grid-template-columns: 1fr;
  }

  .tapdecode-hero {
    min-height: auto;
    gap: 3rem;
    padding-top: 4rem;
  }

  .tapdecode-hero-screen,
  .tapdecode-message figure,
  .tapdecode-private figure,
  .tapdecode-finale figure {
    width: min(92%, 26rem);
  }

  .tapdecode-hero-screen {
    left: 0;
  }

  .tapdecode-scrub-stage {
    padding: 0;
    background:
      linear-gradient(to top, rgba(6, 12, 12, 0.96) 0 40%, transparent 70%),
      #101817;
  }

  .tapdecode-scrub-copy {
    top: auto;
    right: 1.25rem;
    bottom: max(3.8rem, env(safe-area-inset-bottom));
    left: 1.25rem;
    max-width: none;
    padding: 1rem;
    border: 1px solid rgba(232, 239, 235, 0.12);
    border-radius: 0.9rem;
    background: rgba(6, 12, 12, 0.9);
    box-shadow: 0 1.2rem 3rem rgba(0, 0, 0, 0.3);
    transform: none;
    backdrop-filter: blur(12px);
  }

  .tapdecode-scrub-copy h2 {
    max-width: 10ch;
    font-size: clamp(2.35rem, 10vw, 3.5rem);
  }

  .tapdecode-scrub-copy p:not(.tapdecode-kicker) {
    max-width: 34rem;
    font-size: 0.96rem;
  }

  .tapdecode-scrub-media {
    top: 2.5svh;
    right: 50%;
    width: min(86vw, 25rem);
    height: 68svh;
    transform: translateX(50%);
  }

  .tapdecode-scrub-media figcaption {
    display: none;
  }

  .tapdecode-pin-stage,
  .tapdecode-risk .tapdecode-pin-stage {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    align-content: center;
    padding: 2.5rem 1.25rem 4.8rem;
  }

  .tapdecode-pin-copy h2,
  .tapdecode-risk-copy h2 {
    max-width: 11ch;
    font-size: clamp(2.5rem, 12vw, 4.2rem);
  }

  .tapdecode-screen-pair {
    gap: 0.5rem;
  }

  .tapdecode-screen-pair img {
    max-height: 47svh;
  }

  .tapdecode-message,
  .tapdecode-private,
  .tapdecode-finale {
    min-height: auto;
    padding-block: 5rem;
  }

  .tapdecode-message-layout,
  .tapdecode-private-layout,
  .tapdecode-finale-layout {
    gap: 3rem;
  }

  .tapdecode-risk-screen {
    height: 48svh;
    grid-row: 2;
  }

  .tapdecode-risk-screen img {
    max-height: 48svh;
  }

  .tapdecode-risk-copy {
    grid-column: 1;
    grid-row: 1;
  }

  .tapdecode-private figure {
    order: 2;
  }

  .tapdecode-inline-links {
    display: grid;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tapdecode-story *,
  .tapdecode-story *::before,
  .tapdecode-story *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .tapdecode-story [data-sc-in],
  .tapdecode-story [data-sc-cue] {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  .tapdecode-hero-screen {
    transform: none;
  }
}
