/* Council 16 text position: ?txt=A|B|C (see txt.js). Sizes in rem so they follow text size (16 px root = the spec's pt). */
/* ---- every variant: one 18 pt left margin, one title token, rem type ---- */
html[data-txt] body[data-mk-side=updated] .feed-card .feed-card-head{padding-left:18px} /* C21 lc: tickets share the 18 pt byline inset with every card (one card system) */
html[data-txt] body[data-mk-side=updated] .feed-card:not(.event-card) .feed-note-copy{padding-left:18px;padding-right:18px}
html[data-txt] body[data-mk-side=updated] .feed-card:not(.event-card) .vm-more{margin-left:18px;margin-right:18px}
html[data-txt] body[data-mk-side=updated] .feed-card.tx-text .feed-copy h2{font:500 1.5rem/1.8125rem var(--u-f-d);letter-spacing:0}
html[data-txt] body[data-mk-side=updated] .feed-card.tx-text .feed-copy p{font-size:.875rem;line-height:1.3125rem}
html[data-txt] body[data-mk-side=updated] .feed-card.tx-text .feed-note-copy p{font-size:1rem;line-height:1.5rem}
html[data-txt] body[data-mk-side=updated] .feed-card.tx-text.vm-emoji .feed-note-copy p{font-size:2.5rem;line-height:1.15}
html[data-txt] body[data-mk-side=updated] .feed-card.tx-media .feed-structured-summary{padding-left:18px;padding-right:18px}
html[data-txt] body[data-mk-side=updated] .feed-card.tx-media .feed-structured-summary p{font-size:.875rem;line-height:1.3125rem}

/* ---- the block above the media (A and B) ---- */
.tx-top{display:block;color:var(--u-ink);text-decoration:none;padding:10px 18px 12px}
.tx-hed{margin:0;font:500 1.5rem/1.8125rem var(--u-f-d);color:var(--u-ink);letter-spacing:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
.tx-hed.tx-lede{font:400 1rem/1.5rem var(--u-f-b)}
.tx-hed.tx-emo{font-size:2rem;line-height:2.4rem;letter-spacing:.04em}
.tx-body{margin:4px 0 0;font:400 1rem/1.5rem var(--u-f-b);color:var(--u-ink);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.tx-top>.tx-hed+.tx-body{margin-top:4px}
.tx-more{display:block;font:500 .875rem/1.3125rem var(--u-f-b);color:var(--u-mut);margin-top:2px}
.tx-gone{display:none!important}
/* clean media in A and B: no fade, no title on the picture */
.tx-A .editorial-title-card-fade,.tx-A .editorial-title-card-title,.tx-B .editorial-title-card-fade,.tx-B .editorial-title-card-title{display:none!important}
.tx-B .mp-dots{margin-top:8px}
.tx-B .feed-structured-summary{padding-top:10px!important;padding-bottom:6px!important}
.tx-B .feed-structured-summary p{color:var(--u-mut)!important;-webkit-line-clamp:2}
.tx-A .tx-top{padding-bottom:12px}
html[data-txt] .tx-media.vm-has-video .editorial-title-card-title{padding-right:52px}

/* ---- C: the overlay, hardened ---- */
html[data-txt=C] body[data-mk-side=updated] .tx-ovl .editorial-title-card-fade{top:0!important;bottom:0!important;height:100%!important;opacity:1;background-image:linear-gradient(rgba(11,14,12,0) 25%,rgba(11,14,12,.22) 45%,rgba(11,14,12,.52) 62%,rgba(11,14,12,.7) 80%,rgba(11,14,12,.88) 100%)!important}
html[data-txt=C] body[data-mk-side=updated] .tx-ovl .editorial-title-card-title{left:18px!important;right:18px!important;bottom:18px!important;top:auto!important;font:600 1.5rem/1.8125rem var(--u-f-d)!important;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.45);display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;letter-spacing:0;transition:opacity .3s ease}
html[data-txt=C] body[data-mk-side=updated] .tx-ovl.vm-vcard .editorial-title-card-title{padding-right:52px}
html[data-txt=C] body[data-mk-side=updated] .tx-measure{-webkit-line-clamp:unset!important;display:block!important}
html[data-txt=C] .tx-ovl .mp-moving .editorial-title-card-title{opacity:1!important;transform:none!important}
html[data-txt=C] .tx-ovl .mp-moving .editorial-title-card-fade{opacity:1!important}
html[data-txt=C] .tx-ovl.tx-quiet .editorial-title-card-title{opacity:0!important}
html[data-txt=C] .tx-ovl.tx-quiet .editorial-title-card-fade{opacity:.45!important;transition:opacity .3s ease}
html[data-txt=C] .tx-ovl .feed-structured-summary p{color:var(--u-mut)}

/* ---- repost card ---- */
.tx-repost .tx-rpc{padding-bottom:10px}
.tx-rpbox{display:block;margin:0 18px 6px;border:1px solid var(--u-line);border-radius:14px;overflow:hidden;color:var(--u-ink);text-decoration:none;background:var(--u-bg)}
.tx-rphead{display:flex;align-items:center;gap:8px;padding:10px 12px 0;font:600 .875rem/1.25rem var(--u-f-b)}
.tx-rpav{width:24px;height:24px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--u-card2);font-size:.625rem;flex:none}
.tx-rpav img{width:100%;height:100%;object-fit:cover}
.tx-rphed{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;padding:6px 12px 8px;font:500 1.125rem/1.375rem var(--u-f-d)}
.tx-rpimg{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.tx-rpcut{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:8px 12px 10px;padding:0;font:400 .875rem/1.3125rem var(--u-f-b);color:var(--u-mut)}
@media (prefers-reduced-motion:reduce){html[data-txt=C] .tx-ovl .editorial-title-card-title,html[data-txt=C] .tx-ovl .editorial-title-card-fade{transition:none!important}}

/* C39 V2 (Gino, Oct 27 2026): in the FEED the title now sits UNDER a 16:9 photo, see app/c39.css (overrides the M rules below; ?c39=off = C25). */
/* ======== C25 (Gino, Oct 24 5:58 PM, LOCKED): ?txt=M magazine cards, the default. Title on the media over a soft bottom scrim (≥4.5:1 on any photo:
   the scrim is ≥ .55 black behind every title line), clear of the sound button; no header above the media; body below, 3 lines, "more" only on overflow.
   No fades, slides or title hiding on play. ======== */
html[data-txt=M] body[data-mk-side=updated] .tx-M .editorial-title-card-fade{top:auto!important;bottom:0!important;height:max(46%,15rem)!important;opacity:1!important;transition:none!important;background-image:linear-gradient(rgba(11,14,12,0),rgba(11,14,12,.28) 30%,rgba(11,14,12,.58) 50%,rgba(11,14,12,.80) 100%)!important} /* soft: the top 30% of the fade stays light; ≥ .56 from the middle down, so a 3-line title (≤ 109 px from the bottom) sits on ≥ 4.5:1 even over white (review r1: height max(46%,15rem) keeps a 3-line title's top line at ≥ .56 at 16 px AND 20 px roots) */
html[data-txt=M] body[data-mk-side=updated] .tx-M.tx-notitle .editorial-title-card-fade,html[data-txt=M] body[data-mk-side=updated] .tx-M.tx-notitle .editorial-title-card-title{display:none!important}
html[data-txt=M] body[data-mk-side=updated] .tx-M .editorial-title-card-title{left:18px!important;right:18px!important;bottom:16px!important;top:auto!important;font:600 1.625rem/1.9375rem var(--u-f-d)!important;letter-spacing:-.01em;color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.5);display:-webkit-box!important;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;opacity:1!important;transform:none!important;transition:none!important;max-width:none!important}
html[data-txt=M] body[data-mk-side=updated] .tx-M.vm-vcard .editorial-title-card-title,html[data-txt=M] body[data-mk-side=updated] .tx-M:has(.vm-snd,.u-snd,[data-vm-sound]) .editorial-title-card-title{right:64px!important}
html[data-txt=M] body[data-mk-side=updated] .tx-M .feed-structured-summary{padding-top:10px!important;padding-bottom:4px!important}
html[data-txt=M] body[data-mk-side=updated] .tx-M .feed-structured-summary p:not(.lg-clamp){display:-webkit-box!important;-webkit-line-clamp:var(--lg-lines,3);-webkit-box-orient:vertical;overflow:hidden}
html[data-txt=M] body[data-mk-side=updated] .tx-M .feed-structured-summary p{color:var(--u-ink)!important;opacity:.86} /* review: one body colour, clamped or not */
html[data-txt=M] body[data-mk-side=updated] .tx-M .feed-structured-summary h2,html[data-txt=M] body[data-mk-side=updated] .tx-M > .tx-top{display:none!important}
html[data-txt=M] .tx-M .mp-moving .editorial-title-card-title,html[data-txt=M] .tx-M .mp-moving .editorial-title-card-fade{opacity:1!important;transform:none!important;transition:none!important}

/* C25 review (Grok + Claude, Oct 25): the quoted post inside a repost follows M too (title on its photo, same scrim rule), and the opened post (detail) shows its whole body */
.tx-rpmedia{display:block}
html[data-txt=M] .tx-rpmedia{position:relative}
html[data-txt=M] .tx-rpmedia .tx-rphed{position:absolute;left:0;right:0;bottom:0;margin:0;padding:30px 12px 10px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.5);background:linear-gradient(rgba(11,14,12,0),rgba(11,14,12,.66) 30%,rgba(11,14,12,.86) 100%)}
html[data-txt=M] body[data-mk-side=updated] .u-opened .feed-structured-summary p{display:block!important;-webkit-line-clamp:unset!important;max-height:none!important;overflow:visible!important}
html[data-txt=M] body[data-mk-side=updated] .tx-M .lg-more{margin-top:-14px} /* review: "more" sits right under the text (44 pt target kept) */
html[data-txt=M] body[data-mk-side=updated] .tx-M .lg-cont + .lg-more{margin-top:0} /* review r2: never steal the "Continue in post" target */
