.fapg-tool[data-fapg-tool="choking-adult"] {
  --choke-ink: #123b48;
  --choke-coral: #e85d4a;
  --choke-coral-dark: #b74135;
  --choke-mint: #dff1e8;
  --choke-sand: #f6efe4;
  --choke-line: rgba(18, 59, 72, .14);
  overflow: hidden;
}

.fapg-tool[data-fapg-tool="choking-adult"] .fapg-tool__stage {
  display: grid;
  gap: 1rem;
}

.fapg-choke-progress {
  display: grid;
  gap: .55rem;
  color: var(--choke-ink);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.fapg-choke-progress > span:first-child { color: var(--choke-coral-dark); }
.fapg-choke-progress > span:nth-child(2) { color: rgba(18, 59, 72, .62); font-weight: 700; justify-self: end; margin-top: -1.5rem; }

.fapg-choke-progress__bar {
  background: rgba(18, 59, 72, .10);
  border-radius: 999px;
  height: .55rem;
  overflow: hidden;
}

.fapg-choke-progress__bar span {
  background: linear-gradient(90deg, var(--choke-coral), #f3a24a);
  border-radius: inherit;
  display: block;
  height: 100%;
  transition: width .35s ease;
}

.fapg-choke-rail {
  display: grid;
  gap: .45rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.fapg-choke-rail li {
  align-items: center;
  background: rgba(255,255,255,.62);
  border: 1px solid var(--choke-line);
  border-radius: 1rem;
  color: rgba(18, 59, 72, .65);
  display: flex;
  gap: .45rem;
  min-height: 3.25rem;
  padding: .5rem .6rem;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.fapg-choke-rail li span {
  align-items: center;
  background: var(--choke-ink);
  border-radius: 50%;
  color: white;
  display: inline-flex;
  flex: 0 0 1.65rem;
  font-size: .66rem;
  font-weight: 900;
  height: 1.65rem;
  justify-content: center;
}

.fapg-choke-rail li small { font-size: .68rem; font-weight: 800; line-height: 1.15; }
.fapg-choke-rail li.is-current { background: #fff; border-color: var(--choke-coral); box-shadow: 0 0 0 3px rgba(232,93,74,.13); color: var(--choke-ink); transform: translateY(-2px); }
.fapg-choke-rail li.is-current span { background: var(--choke-coral); }
.fapg-choke-rail li.is-complete { background: var(--choke-mint); border-color: #76c6a4; color: var(--choke-ink); }
.fapg-choke-rail li.is-complete span { background: #2b8a65; }

.fapg-choke-scene {
  background: var(--choke-sand);
  border: 1px solid rgba(18,59,72,.11);
  border-radius: 1.5rem;
  box-shadow: 0 1.25rem 2.8rem rgba(18,59,72,.12);
  margin: 0;
  overflow: hidden;
}

.fapg-choke-scene__visual { aspect-ratio: 3 / 2; background: #d5c2a2; position: relative; }
.fapg-choke-scene__image { display: block; height: 100%; object-fit: cover; width: 100%; }
.fapg-choke-scene__tag, .fapg-choke-scene__marker { position: absolute; top: 1rem; }
.fapg-choke-scene__tag { background: rgba(255,255,255,.88); border-radius: 999px; color: var(--choke-ink); font-size: .7rem; font-weight: 900; left: 1rem; letter-spacing: .07em; padding: .45rem .7rem; text-transform: uppercase; }
.fapg-choke-scene__marker { background: var(--choke-coral); border-radius: 999px; color: white; font-size: .7rem; font-weight: 900; padding: .45rem .7rem; right: 1rem; letter-spacing: .07em; }
.fapg-choke-scene--unresponsive .fapg-choke-scene__marker { background: var(--choke-ink); }

.fapg-choke-scene__caption { display: grid; gap: .25rem; padding: 1rem 1.1rem 1.15rem; }
.fapg-choke-scene__caption > span { color: var(--choke-coral-dark); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.fapg-choke-scene__caption strong { color: var(--choke-ink); font-size: 1.05rem; }
.fapg-choke-scene__caption p { color: rgba(18,59,72,.76); font-size: .92rem; line-height: 1.5; margin: 0; }

.fapg-choke-question { border: 0; margin: 0; padding: 0; }
.fapg-choke-question legend { color: var(--choke-ink); font-size: clamp(1.3rem, 3vw, 1.8rem); font-weight: 900; line-height: 1.08; max-width: 38rem; padding: 0; }
.fapg-choke-question__hint { color: rgba(18,59,72,.64); font-size: .88rem; margin: .55rem 0 0; }
.fapg-choke-choices { display: grid; gap: .7rem; margin-top: 1rem; }
.fapg-choke-choice, .fapg-choke-next, .fapg-choke-replay { border: 0; border-radius: 1rem; cursor: pointer; font: inherit; font-weight: 800; min-height: 3.7rem; padding: .9rem 1rem; text-align: left; transition: background-color .2s ease, border-color .2s ease, opacity .2s ease, transform .2s ease; }
.fapg-choke-choice { background: #fff; border: 2px solid var(--choke-line); color: var(--choke-ink); }
.fapg-choke-choice:hover:not(:disabled), .fapg-choke-choice:focus-visible { border-color: var(--choke-coral); box-shadow: 0 0 0 4px rgba(232,93,74,.13); outline: 0; transform: translateY(-1px); }
.fapg-choke-choice.is-wrong { background: #fff0ed; border-color: var(--choke-coral); color: #8d2c23; }
.fapg-choke-choice.is-correct { background: var(--choke-mint); border-color: #55ad88; color: #155a40; }
.fapg-choke-choice:disabled { cursor: default; opacity: .78; }

.fapg-choke-feedback { border-radius: 1rem; padding: .95rem 1rem; }
.fapg-choke-feedback strong { display: block; font-size: .93rem; }
.fapg-choke-feedback p { font-size: .88rem; line-height: 1.48; margin: .25rem 0 0; }
.fapg-choke-feedback.is-wrong { background: #fff0ed; border: 1px solid #ef9a8c; color: #7f2d24; }
.fapg-choke-feedback.is-correct { background: var(--choke-mint); border: 1px solid #76c6a4; color: #155a40; }

.fapg-choke-next, .fapg-choke-replay { background: var(--choke-ink); color: white; justify-self: start; text-align: center; }
.fapg-choke-next:hover, .fapg-choke-next:focus-visible, .fapg-choke-replay:hover, .fapg-choke-replay:focus-visible { background: #0c2c36; box-shadow: 0 0 0 4px rgba(18,59,72,.15); outline: 0; transform: translateY(-1px); }

.fapg-choke-complete__eyebrow { color: var(--choke-coral-dark); font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.fapg-choke-complete { background: linear-gradient(135deg, #edf7f1, #fff9f0); border: 1px solid #a3d7bb; border-radius: 1.5rem; display: grid; gap: .9rem; padding: clamp(1.2rem, 4vw, 2rem); text-align: center; }
.fapg-choke-complete__mark { align-items: center; background: #2b8a65; border-radius: 50%; color: white; display: inline-flex; font-size: 1.45rem; font-weight: 900; height: 3rem; justify-content: center; justify-self: center; width: 3rem; }
.fapg-choke-complete h3 { color: var(--choke-ink); font-size: clamp(1.55rem, 4vw, 2.2rem); line-height: 1.05; margin: 0; }
.fapg-choke-complete p { color: rgba(18,59,72,.73); line-height: 1.5; margin: 0 auto; max-width: 34rem; }
.fapg-choke-recap { display: grid; gap: .45rem; grid-template-columns: repeat(5, 1fr); margin: .4rem auto; max-width: 42rem; width: 100%; }
.fapg-choke-recap span { background: rgba(255,255,255,.82); border: 1px solid rgba(18,59,72,.12); border-radius: .75rem; color: var(--choke-ink); font-size: .68rem; font-weight: 800; padding: .65rem .4rem; }

@media (max-width: 640px) {
  .fapg-choke-rail { gap: .25rem; }
  .fapg-choke-rail li { border-radius: .7rem; display: block; min-height: 0; padding: .45rem .25rem; text-align: center; }
  .fapg-choke-rail li span { display: inline-flex; margin-bottom: .25rem; }
  .fapg-choke-rail li small { display: block; font-size: .58rem; }
  .fapg-choke-scene { border-radius: 1rem; }
  .fapg-choke-scene__tag, .fapg-choke-scene__marker { font-size: .58rem; top: .65rem; }
  .fapg-choke-scene__tag { left: .65rem; }
  .fapg-choke-scene__marker { right: .65rem; }
  .fapg-choke-recap { grid-template-columns: repeat(2, 1fr); }
  .fapg-choke-recap span:last-child { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  .fapg-choke-progress__bar span, .fapg-choke-rail li, .fapg-choke-choice, .fapg-choke-next, .fapg-choke-replay { transition: none; }
}

@media (forced-colors: active) {
  .fapg-choke-choice, .fapg-choke-next, .fapg-choke-replay, .fapg-choke-rail li, .fapg-choke-feedback, .fapg-choke-complete { border: 2px solid CanvasText; }
  .fapg-choke-choice:focus-visible, .fapg-choke-next:focus-visible, .fapg-choke-replay:focus-visible { outline: 3px solid Highlight; }
}
