/* «Who pays for European solidarity?» — tool styles. Tokens only; every selector scoped under the tool mount.
   The chat/question/fact/seal/gate rules mirror tools/babies (proposed for the library as .mb-game-*). */
@layer marta.tools {
  .mb-tool[data-mb-tool="tpd"] {
    --tp-col: min(100% - 2 * var(--mb-gutter), 820px);
    --tp-nav-h: 4.6rem;
    display: block; background: #FBF8FF; color: var(--mb-plum); overflow-x: clip;
  }
  .mb-tool[data-mb-tool="tpd"] .tp-mono-fb { font: 900 1.4rem/1 var(--mb-font-display); color: var(--mb-thread); }

/* ---------- nav ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-knots { gap: 4px; }
  .mb-tool[data-mb-tool="tpd"] .tp-knots li { width: 26px; height: 20px; }
  .mb-tool[data-mb-tool="tpd"] .tp-knots .is-active path { stroke-width: 3; }

  
/* ---------- steps ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-step { padding-block: clamp(3rem, 8vw, 6rem); scroll-margin-top: var(--tp-nav-h); }
  .mb-tool[data-mb-tool="tpd"] .tp-step__in { width: var(--tp-col); margin-inline: auto; }
  .mb-tool[data-mb-tool="tpd"] .tp-step__head { display: grid; gap: .2rem; margin-bottom: 1.5rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-step__n { font: 900 var(--mb-step-5)/.8 var(--mb-font-display); letter-spacing: var(--mb-track-poster); color: transparent; -webkit-text-stroke: 2px var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-step__title { font-size: var(--mb-step-4); margin: 0; outline: none; }
  .mb-tool[data-mb-tool="tpd"] .tp-chat > * + * { margin-top: 1rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-chat > .mb-bubble { margin-block: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-chat > .mb-bubble + .mb-bubble { margin-top: .6rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-say .mb-bubble__text { animation: tp-in var(--mb-dur-3) var(--mb-ease-out); }
  @keyframes tp-in { from { opacity: 0; transform: translateY(8px); } }
  .mb-tool[data-mb-tool="tpd"] .tp-say .mb-voice { font-size: var(--mb-step-1); line-height: 1.3; }

  /* question */
  .mb-tool[data-mb-tool="tpd"] .tp-q { background: var(--mb-surface); border-radius: var(--mb-radius-lg); padding: 1.1rem 1.1rem 1.25rem; box-shadow: var(--mb-shadow); border: 2px solid var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-q.is-done { border-color: var(--mb-line); box-shadow: none; }
  .mb-tool[data-mb-tool="tpd"] .tp-q__label { display: block; font: 800 var(--mb-step-1)/1.25 var(--mb-font-display); letter-spacing: -.015em; margin: 0 0 .9rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-opts { gap: .55rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-opt { min-height: 48px; padding: .6em 1.15em; font-size: 1rem; text-align: left; line-height: 1.25; }
  .mb-tool[data-mb-tool="tpd"] .tp-opt[aria-disabled="true"] { cursor: default; transform: none; }
  .mb-tool[data-mb-tool="tpd"] .tp-q.is-done .tp-opt[aria-pressed="false"] { opacity: .55; }
  .mb-tool[data-mb-tool="tpd"] .tp-opt.is-right { box-shadow: inset 0 0 0 3px var(--mb-thread); opacity: 1 !important; position: relative; }
  .mb-tool[data-mb-tool="tpd"] .tp-opt.is-right::after { content: "what happened"; position: absolute; top: -.7rem; right: .7rem; padding: .2em .5em; border-radius: .35em; background: var(--mb-acid); color: var(--mb-plum); font: 800 .7rem/1 var(--mb-font-display); transform: rotate(-3deg); }

  /* reveal: plum fact with a red thread edge */
  .mb-tool[data-mb-tool="tpd"] .tp-fact { background: var(--mb-plum); color: #FFF1F6; border-radius: 6px var(--mb-radius-lg) var(--mb-radius-lg) var(--mb-radius-lg); padding: 1.2rem 1.3rem 1.2rem 1.6rem; position: relative; font: 600 var(--mb-step-0)/1.45 var(--mb-font-text); animation: tp-in var(--mb-dur-3) var(--mb-ease-out); }
  .mb-tool[data-mb-tool="tpd"] .tp-fact::before { content: ""; position: absolute; left: .7rem; top: 1.1rem; bottom: 1.1rem; width: 3px; border-radius: 3px; background: var(--mb-pink); }
  .mb-tool[data-mb-tool="tpd"] .tp-fact p { margin: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-fact--note { background: transparent; color: var(--mb-plum); padding-block: .2rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-fact--note::before { background: var(--mb-thread); top: .2rem; bottom: .2rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-fact--note small { color: var(--mb-plum); font-size: var(--mb-step--1); }

  /* principle seal (rosette) */
  .mb-tool[data-mb-tool="tpd"] .tp-seal { display: flex; align-items: center; gap: 1rem; animation: tp-in var(--mb-dur-3) var(--mb-ease-out); }
  .mb-tool[data-mb-tool="tpd"] .tp-seal__r { --size: 4.4rem; --rosette-bg: var(--mb-thread); flex: none; padding: 1.1rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-seal__r svg { width: 100%; height: auto; overflow: visible; }
  .mb-tool[data-mb-tool="tpd"] .tp-seal__r path { fill: none; stroke: #fff; stroke-width: 2.4; stroke-linecap: round; }
  .mb-tool[data-mb-tool="tpd"] .tp-seal p { margin: 0; display: grid; }
  .mb-tool[data-mb-tool="tpd"] .tp-seal__k { font-size: var(--mb-step--1); font-weight: 600; color: var(--mb-ink-soft); }
  .mb-tool[data-mb-tool="tpd"] .tp-seal b { font: 900 var(--mb-step-2)/1 var(--mb-font-display); letter-spacing: -.03em; }

  /* gate */
  .mb-tool[data-mb-tool="tpd"] .tp-gate { display: grid; justify-items: center; gap: .5rem; padding-top: 2rem; text-align: center; }
  .mb-tool[data-mb-tool="tpd"] .tp-gate__knot { width: 120px; height: 56px; overflow: visible; }
  .mb-tool[data-mb-tool="tpd"] .tp-gate__knot path { fill: none; stroke: var(--mb-thread); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 340; stroke-dashoffset: 170; transition: stroke-dashoffset var(--mb-dur-4) var(--mb-ease-silk); }
  .mb-tool[data-mb-tool="tpd"] .tp-gate.is-tied .tp-gate__knot path { stroke-dashoffset: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-gate__done { display: none; margin: 0; font-weight: 700; color: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-gate.is-tied .tp-gate__done { display: block; }

  
/* ---------- end ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-end { display: grid; gap: 1.5rem; align-items: start; }
  @media (min-width: 760px) { .mb-tool[data-mb-tool="tpd"] .tp-end { grid-template-columns: minmax(0, 24rem) 1fr; } }
  .mb-tool[data-mb-tool="tpd"] .tp-end__card { margin: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-end__card canvas { display: block; width: 100%; height: auto; border-radius: var(--mb-radius); box-shadow: var(--mb-shadow-lift); rotate: -1.5deg; }
  .mb-tool[data-mb-tool="tpd"] .tp-end__acts { display: grid; gap: .7rem; justify-items: start; }
  .mb-tool[data-mb-tool="tpd"] .tp-end__full { margin: .3rem 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-sources { background: var(--mb-surface); border-radius: var(--mb-radius-lg); padding: 1.3rem 1.4rem; margin-top: 2rem !important; }
  .mb-tool[data-mb-tool="tpd"] .tp-sources h3 { font-size: var(--mb-step-2); }
  .mb-tool[data-mb-tool="tpd"] .tp-sources ul { padding-left: 1.1rem; margin: 0 0 1rem; display: grid; gap: .45rem; font-size: .95rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-cite { font-size: .95rem; }

  .mb-tool[data-mb-tool="tpd"] .tp-foot { width: var(--tp-col); margin: 0 auto; padding: 2.5rem 0 3rem; font-size: var(--mb-step--1); color: var(--mb-muted); }
  .mb-tool[data-mb-tool="tpd"] .tp-foot .mb-toggle { color: var(--mb-plum); font-size: .95rem; }

  
  /* ---------- hero: lavender field, poster type ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-hero { background: var(--mb-lavender); padding: clamp(2rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 5.5rem); position: relative; overflow: hidden; }
  .mb-tool[data-mb-tool="tpd"] .tp-hero::before { content: ""; position: absolute; right: -14vw; top: 8%; width: 46vw; aspect-ratio: 1; border-radius: 50%; background: var(--mb-lilac); }
  .mb-tool[data-mb-tool="tpd"] .tp-hero::after { content: ""; position: absolute; right: 6vw; top: 12%; width: 12vw; min-width: 5rem; aspect-ratio: 1 / 2.2; border-radius: var(--mb-radius-pill); background: var(--mb-thread); rotate: 18deg; }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__in { width: min(100% - 2 * var(--mb-gutter), 1240px); margin-inline: auto; position: relative; z-index: 1; }
  .mb-tool[data-mb-tool="tpd"] .tp-kicker { color: var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__title { font-size: clamp(3rem, 14.5vw, 8rem); margin: .4em 0 .45em; color: var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__title span { display: block; }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__title span:nth-child(2) { padding-left: .6em; }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__grid { display: grid; gap: 1.6rem; }
  @media (min-width: 900px) { .mb-tool[data-mb-tool="tpd"] .tp-hero__grid { grid-template-columns: 1.1fr .9fr; align-items: end; } }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__lines { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; font: 700 var(--mb-step-1)/1.3 var(--mb-font-display); letter-spacing: -.015em; max-width: 32ch; }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__lines li:nth-child(2) { color: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__voice { font-size: var(--mb-step-2); line-height: 1.2; max-width: 22ch; margin: 0 0 1.2rem; color: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__side { background: var(--mb-paper); border-radius: var(--mb-radius-lg); padding: 1.4rem; box-shadow: var(--mb-shadow); }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__meta { margin: 1rem 0 0; font-size: var(--mb-step--1); font-weight: 600; }
  .mb-tool[data-mb-tool="tpd"] .tp-hero__about { margin: 2rem 0 0; font-size: var(--mb-step--1); max-width: 70ch; }
  .mb-tool[data-mb-tool="tpd"] .tp-band { margin-block: -1rem 1rem; z-index: 2; }

  .mb-tool[data-mb-tool="tpd"] .tp-step--weights, .mb-tool[data-mb-tool="tpd"] .tp-step--eu { background: var(--mb-lilac); }
  .mb-tool[data-mb-tool="tpd"] .tp-step--carries { background: var(--mb-paper); }
  .mb-tool[data-mb-tool="tpd"] .tp-step--recs { background: var(--mb-paper); }
  .mb-tool[data-mb-tool="tpd"] .tp-step--end { background: var(--mb-lavender); }
  .mb-tool[data-mb-tool="tpd"] .tp-step--cliff { background: var(--mb-bg); color: var(--mb-ink); overflow: hidden; }
  .mb-tool[data-mb-tool="tpd"] .tp-step--cliff .tp-step__n { -webkit-text-stroke-color: var(--mb-pink); }
  .mb-tool[data-mb-tool="tpd"] .tp-step--cliff .mb-bubble__text { color: var(--mb-ink); }

  /* ---------- weights ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-pool { display: flex; flex-wrap: wrap; gap: 6px; min-height: 34px; margin-bottom: .3rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-pool i, .mb-tool[data-mb-tool="tpd"] .tp-bearer__pills i, .mb-tool[data-mb-tool="tpd"] .tp-chart__pills i {
    display: block; width: 22px; height: 34px; border-radius: var(--mb-radius-pill); background: var(--pill, var(--mb-plum)); }
  .mb-tool[data-mb-tool="tpd"] .tp-pool i { background: transparent; box-shadow: inset 0 0 0 2px var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-left { margin: 0 0 .8rem; font: 700 var(--mb-step--1)/1.2 var(--mb-font-text); color: var(--mb-muted); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearers { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .5rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "name ctrl" "pills pills"; gap: .4rem .8rem; align-items: center; padding: .7rem .8rem; border-radius: var(--mb-radius); background: #FBF8FF; }
  @media (min-width: 700px) { .mb-tool[data-mb-tool="tpd"] .tp-bearer { grid-template-columns: 12rem 1fr auto; grid-template-areas: "name pills ctrl"; } }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer__name { grid-area: name; font: 700 1rem/1.2 var(--mb-font-display); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer__pills { grid-area: pills; display: flex; gap: 5px; min-height: 34px; }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer__pills i.is-new { animation: tp-drop var(--mb-dur-3) var(--mb-ease-spring); }
  @keyframes tp-drop { from { transform: translateY(-14px) scale(.6); opacity: 0; } }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer__ctrl { grid-area: ctrl; display: inline-flex; align-items: center; gap: .3rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer__ctrl output { min-width: 1.6em; text-align: center; font: 900 var(--mb-step-1)/1 var(--mb-font-display); }
  .mb-tool[data-mb-tool="tpd"] .tp-step-btn { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--mb-plum); background: var(--mb-surface); color: var(--mb-plum); font: 800 1.4rem/1 var(--mb-font-display); cursor: pointer; transition: transform var(--mb-dur-2) var(--mb-ease-spring), background var(--mb-dur-2); }
  .mb-tool[data-mb-tool="tpd"] .tp-step-btn[data-d="1"] { background: var(--mb-plum); color: #fff; }
  .mb-tool[data-mb-tool="tpd"] .tp-step-btn:active { transform: scale(.9); }
  .mb-tool[data-mb-tool="tpd"] .tp-step-btn[aria-disabled="true"] { opacity: .3; cursor: default; }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer:nth-child(1), .mb-tool[data-mb-tool="tpd"] .tp-chart__row:nth-child(1) { --pill: var(--mb-violet); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer:nth-child(2), .mb-tool[data-mb-tool="tpd"] .tp-chart__row:nth-child(2) { --pill: var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer:nth-child(3), .mb-tool[data-mb-tool="tpd"] .tp-chart__row:nth-child(3) { --pill: var(--mb-hot); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer:nth-child(4), .mb-tool[data-mb-tool="tpd"] .tp-chart__row:nth-child(4) { --pill: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer:nth-child(5), .mb-tool[data-mb-tool="tpd"] .tp-chart__row:nth-child(5) { --pill: var(--mb-paper); }
  .mb-tool[data-mb-tool="tpd"] .tp-bearer:nth-child(5) .tp-bearer__pills i, .mb-tool[data-mb-tool="tpd"] .tp-chart__row:nth-child(5) .tp-chart__pills i { box-shadow: inset 0 0 0 2px var(--mb-plum); }

  /* chart (your weights / Belgium illustration) */
  .mb-tool[data-mb-tool="tpd"] .tp-chart { margin: 0; background: var(--mb-surface); border-radius: var(--mb-radius-lg); padding: 1.1rem 1.2rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart figcaption { font: 800 var(--mb-step-1)/1.2 var(--mb-font-display); margin-bottom: .6rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart--be { background: var(--mb-plum); color: #FFF1F6; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart--be .tp-chart__row:nth-child(2) { --pill: var(--mb-lavender); }
  .mb-tool[data-mb-tool="tpd"] .tp-chart--be .tp-chart__row:nth-child(5) .tp-chart__pills i { box-shadow: none; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__row { display: grid; grid-template-columns: minmax(7rem, 38%) 1fr 2ch; gap: .6rem; align-items: center; font-size: var(--mb-step--1); font-weight: 600; transition: background var(--mb-dur-3); border-radius: var(--mb-radius); padding: .1rem .3rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__pills { display: flex; flex-wrap: wrap; gap: 4px; min-height: 28px; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__pills i { width: 16px; height: 28px; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__n { font: 900 var(--mb-step-1)/1 var(--mb-font-display); text-align: right; }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__pills i.is-leaving { animation: tp-leave var(--mb-dur-3) var(--mb-ease-in) forwards; }
  @keyframes tp-leave { to { transform: translateY(40px); opacity: 0; } }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__pills i.is-moved { --pill: var(--mb-acid); animation: tp-arrive var(--mb-dur-4) var(--mb-ease-spring) both; animation-delay: calc(var(--j) * 70ms); }
  @keyframes tp-arrive { from { transform: translateY(-60px) rotate(-30deg); opacity: 0; } }
  .mb-tool[data-mb-tool="tpd"] .tp-chart__row.is-heavy { background: rgba(255, 255, 255, .1); }
  .mb-tool[data-mb-tool="tpd"] .tp-illus { margin: .4rem 0 0 !important; font-size: var(--mb-step--1); color: var(--mb-muted); }

  /* morph pill: individual right turns into family support */
  .mb-tool[data-mb-tool="tpd"] .tp-morph { display: grid; justify-items: start; gap: .3rem; margin: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-morph s, .mb-tool[data-mb-tool="tpd"] .tp-morph span { display: inline-block; padding: .35em .8em; border-radius: var(--mb-radius-pill); font: 900 clamp(1.5rem, 6.4vw, 3.2rem)/1 var(--mb-font-display); letter-spacing: -.04em; }
  .mb-tool[data-mb-tool="tpd"] .tp-morph s { background: var(--mb-violet); color: #fff; text-decoration: none; position: relative; transition: opacity var(--mb-dur-4); }
  .mb-tool[data-mb-tool="tpd"] .tp-morph s::after { content: ""; position: absolute; left: .4em; right: .4em; top: 50%; height: .09em; background: var(--mb-thread); transform: scaleX(0); transform-origin: left; transition: transform var(--mb-dur-4) var(--mb-ease-silk); }
  .mb-tool[data-mb-tool="tpd"] .tp-morph span { background: var(--mb-thread); color: #fff; margin-left: 1.2em; opacity: 0; transform: translateY(-12px); transition: opacity var(--mb-dur-3) var(--mb-dur-3), transform var(--mb-dur-3) var(--mb-ease-spring) var(--mb-dur-3); }
  .mb-tool[data-mb-tool="tpd"] .tp-morph.is-on s { opacity: .55; }
  .mb-tool[data-mb-tool="tpd"] .tp-morph.is-on s::after { transform: scaleX(1); }
  .mb-tool[data-mb-tool="tpd"] .tp-morph.is-on span { opacity: 1; transform: none; }

  /* ---------- four realities ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-practice { margin: 0 0 .9rem; padding: 1rem 1.1rem; border-radius: var(--mb-radius); background: var(--mb-lilac); font: 600 var(--mb-step-0)/1.4 var(--mb-font-text); }
  .mb-tool[data-mb-tool="tpd"] .tp-countries { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); gap: .8rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-country { min-width: 0; border-radius: var(--mb-radius-lg); padding: 1.3rem 1.3rem 1.5rem; background: var(--mb-surface); }
  .mb-tool[data-mb-tool="tpd"] .tp-country h3 { font-size: clamp(1.5rem, 2.3vw, 2.1rem); line-height: 1; letter-spacing: -.035em; margin: 0 0 .6rem; overflow-wrap: anywhere; hyphens: auto; }
  .mb-tool[data-mb-tool="tpd"] .tp-country p { margin: 0; font-size: .95rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-country--0 { background: var(--mb-lilac); }
  .mb-tool[data-mb-tool="tpd"] .tp-country--1 { background: var(--mb-pink); }
  .mb-tool[data-mb-tool="tpd"] .tp-country--2 { background: var(--mb-butter); }
  .mb-tool[data-mb-tool="tpd"] .tp-country--3 { background: var(--mb-thread); color: #fff; border-radius: var(--mb-arch); padding: 3.4rem 1.6rem 1.5rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-fact--score { background: var(--mb-violet); }

  /* contest + search */
  .mb-tool[data-mb-tool="tpd"] .tp-contest, .mb-tool[data-mb-tool="tpd"] .tp-search { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1rem; padding: 1.1rem; border-radius: var(--mb-radius-lg); background: var(--mb-surface); border: 2px solid var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-contest__no, .mb-tool[data-mb-tool="tpd"] .tp-search__res { margin: 0; font: 800 var(--mb-step-0)/1.2 var(--mb-font-display); color: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-contest.is-blocked { border-color: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-contest.is-blocked .mb-btn { animation: tp-shake 420ms var(--mb-ease-out); opacity: .45; cursor: not-allowed; }
  @keyframes tp-shake { 20%, 60% { transform: translateX(-8px); } 40%, 80% { transform: translateX(8px); } }
  .mb-tool[data-mb-tool="tpd"] .tp-search__field { flex: 1 1 10rem; padding: .7rem 1rem; border-radius: var(--mb-radius-pill); background: var(--mb-lilac); font: 700 1rem/1 var(--mb-font-text); }
  .mb-tool[data-mb-tool="tpd"] .tp-search.is-done .tp-search__field { text-decoration: line-through var(--mb-thread) 3px; }
  .mb-tool[data-mb-tool="tpd"] .tp-search.is-done .mb-btn { opacity: .45; }
  .mb-tool[data-mb-tool="tpd"] .tp-search__res { flex-basis: 100%; }
  .mb-tool[data-mb-tool="tpd"] .tp-poster { border-radius: var(--mb-radius-lg); padding: clamp(1.4rem, 5vw, 2.6rem); color: var(--mb-plum); }
  .mb-tool[data-mb-tool="tpd"] .tp-poster__lead { margin: 0 0 .4rem; font-weight: 700; }
  .mb-tool[data-mb-tool="tpd"] .tp-poster__big { margin: 0; font: 900 clamp(2.6rem, 11vw, 6rem)/.88 var(--mb-font-display); letter-spacing: var(--mb-track-poster); }

  /* ---------- cliff edge (stage register) ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-cliff { padding-block: 1rem 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__stage { position: relative; height: 17rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__ground { position: absolute; left: 0; top: 5.2rem; height: 7rem; width: calc(100% * var(--end-n, .714)); background: var(--mb-pink);
    border-radius: 6px 0 0 0; transition: width 1.4s var(--mb-ease-silk); }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__ground::after { content: ""; position: absolute; right: -10px; top: 0; bottom: 0; width: 12px; background: inherit;
    -webkit-mask: linear-gradient(135deg, #000 50%, transparent 0) 0 0 / 12px 14px repeat-y; mask: linear-gradient(135deg, #000 50%, transparent 0) 0 0 / 12px 14px repeat-y; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__walker { position: absolute; top: calc(5.2rem - 30px); left: 0; width: 26px; height: 26px; transition: opacity var(--mb-dur-3); border-radius: 50% 50% 50% 4px; rotate: -45deg; background: var(--mb-thread); box-shadow: 0 0 0 4px var(--mb-bg); transform: translateX(-50%); }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__marks { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__marks li { position: absolute; left: var(--x); top: 6rem; display: grid; gap: .2rem; max-width: 9.5rem; padding-left: .5rem; border-left: 2px solid var(--mb-plum); color: var(--mb-plum); font-size: .78rem; line-height: 1.25; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__marks time { font: 900 var(--mb-step-0)/1 var(--mb-font-display); }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__old { top: 12.8rem !important; color: var(--mb-ink) !important; transform: translateX(-100%); border-left: 0 !important; border-right: 2px solid var(--mb-ink); padding: 0 .5rem 0 0 !important; text-align: right; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__now { top: 0 !important; max-width: 8rem !important; color: var(--mb-ink) !important; border-color: var(--mb-ink) !important; opacity: .35; transform: translateX(-100%); border-left: 0 !important; border-right: 2px solid; padding: 0 .5rem 0 0 !important; text-align: right; transition: opacity var(--mb-dur-4); }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff.is-extended .tp-cliff__now { opacity: 1; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff.is-extended .tp-cliff__old { opacity: .55; text-decoration: line-through; }
  .mb-tool[data-mb-tool="tpd"]   .mb-tool[data-mb-tool="tpd"] .tp-cliff__extend { margin-top: 1.5rem; }

  .mb-tool[data-mb-tool="tpd"] .tp-fall { display: grid; gap: 1rem; justify-items: start; padding-bottom: 1rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-fall__blocks { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-fall__blocks li { padding: .7em 1.2em; border-radius: var(--mb-radius-pill); background: var(--mb-pink); color: var(--mb-plum); font: 900 var(--mb-step-2)/1 var(--mb-font-display); letter-spacing: -.03em;
    transition: transform 1s var(--mb-ease-in) calc(var(--k) * 160ms), opacity 1s calc(var(--k) * 160ms); }
  .mb-tool[data-mb-tool="tpd"] .tp-fall__blocks li:nth-child(2) { background: var(--mb-lavender); }
  .mb-tool[data-mb-tool="tpd"] .tp-fall__blocks li:nth-child(3) { background: var(--mb-gold-soft); }
  .mb-tool[data-mb-tool="tpd"] .tp-fall.is-fallen li { transform: translateY(14rem) rotate(calc(12deg - var(--k) * 14deg)); opacity: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-fall.is-gone li { transition: none; transform: none; opacity: .4; text-decoration: line-through 3px; font-size: var(--mb-step-0); padding: .5em 1em; }
  .mb-tool[data-mb-tool="tpd"] .tp-cliff__walker.is-falling { opacity: .7; }
  .mb-tool[data-mb-tool="tpd"] .tp-shock { padding-block: 1rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-shock__lead { margin: 0 0 .3rem; font-weight: 700; color: var(--mb-ink-soft); }
  .mb-tool[data-mb-tool="tpd"] .tp-shock__big { margin: 0; font: 900 clamp(2.8rem, 12vw, 7rem)/.86 var(--mb-font-display); letter-spacing: var(--mb-track-poster); color: var(--mb-pink); }

  /* ---------- recommendations ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-recs__who { font-size: var(--mb-step-1); margin: 1.4rem 0 .6rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-recs__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec { display: grid; grid-template-columns: auto 1fr; gap: .5rem .9rem; padding: 1rem; border-radius: var(--mb-radius); background: var(--mb-surface); border: 2px solid transparent; transition: background var(--mb-dur-2), border-color var(--mb-dur-2); }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__n { grid-row: span 2; font: 900 var(--mb-step-3)/.8 var(--mb-font-display); color: var(--mb-violet); min-width: 1.2em; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__t { margin: 0; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg { display: flex; flex-wrap: wrap; gap: .4rem; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg button { display: inline-flex; align-items: center; gap: .4em; min-height: 44px; padding: .4em 1em; border-radius: var(--mb-radius-pill); border: 2px solid var(--mb-plum); background: transparent; color: var(--mb-plum); font: 700 .9rem/1 var(--mb-font-display); cursor: pointer; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg svg { display: none; width: 1.2em; height: 1em; overflow: visible; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg path { fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg [data-v="yes"][aria-pressed="true"] { background: var(--mb-thread); border-color: var(--mb-thread); color: #fff; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg [data-v="yes"][aria-pressed="true"] svg { display: block; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec__seg [data-v="unsure"][aria-pressed="true"] { background: var(--mb-plum); color: #fff; }
  .mb-tool[data-mb-tool="tpd"] .tp-rec[data-v="yes"] { border-color: var(--mb-thread); }
  .mb-tool[data-mb-tool="tpd"] .tp-recs__count { margin: 1rem 0 0; font: 900 var(--mb-step-2)/1 var(--mb-font-display); }

  /* ---------- end ---------- */
  .mb-tool[data-mb-tool="tpd"] .tp-original { background: var(--mb-paper); border-radius: var(--mb-radius-lg); padding: 1.5rem; margin-top: 2rem !important; }
  .mb-tool[data-mb-tool="tpd"] .tp-original h3 { font-size: var(--mb-step-3); margin: .5rem 0; }

  @media (prefers-reduced-motion: reduce) {
    .mb-tool[data-mb-tool="tpd"] .tp-cliff__ground { transition: none; }
    .mb-tool[data-mb-tool="tpd"] .tp-fall.is-fallen li { transform: none; opacity: .3; text-decoration: line-through; }
  }
}
