/* Revive, crafted direction: the blog (2026-11-03, builder C; made by tools/crafted/make-blog.cjs). Loaded after
   crafted.css + crafted-pages.css on /blog and the five posts only. Classes start with kb-.
   - the list:  "Read it in the chair": her bag under the sconce, and a card with her logo's ring as one drip's time (45
                minutes round), each post an arc as long as it takes to read; then the posts, newest first, each with its
                short answer beside her picture
   - a post:    its cover (boxed headline, the date her site gives it, reading time, her picture or reel); the short answer
                in a framed card; her words in one comfortable column with a contents list beside it on a computer; one
                piece made for that post (the price line, the two ways in, the four steps, the dictionary entry, one number
                beside her six wins); her other posts; her front desk
   2026-11-03 review: the chain drawing and the scale dial came out (the service pages carry them); every tappable drip
   name in the price line is 44px tall on a phone */

/* grounds: a post's cover and its words share her paper, "keep reading" takes the darker paper, the desk is paper again */
body[data-page="crafted-post"] .kb-read { background: var(--paper); }
body[data-page="crafted-post"] .kb-more { background: var(--paper-2); }
body[data-page="crafted-post"] .k-where { background: var(--paper); }

/* the boxed key word, as on every page type */
.kb-bh__h em, .kb-ph__h em { font-weight: 400; padding: 0 .16em .04em; margin: 0 .03em; border-radius: 4px; background: var(--ink); color: var(--sand); white-space: nowrap; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
html[data-font="playfair"] .kb-bh__h em, html[data-font="playfair"] .kb-ph__h em { padding: 0; margin: 0; background: none; color: var(--brass); }

/* ════════ the list: /blog ════════ */
.kb-bh { padding: clamp(18px, 3vw, 44px) 0 clamp(64px, 8vw, 120px); }
.kb-bh__in { display: grid; gap: clamp(40px, 5vw, 64px); }
.kb-bh__h { margin: 0; font: 400 clamp(52px, 12vw, 112px)/1.16 var(--disp); letter-spacing: -.015em; color: var(--ink); }
.kb-bh__p { max-width: 42ch; margin-top: 24px !important; font-size: 17px; line-height: 1.8; color: var(--mute); }
.kb-bh .k-cta { margin-top: 30px; }

/* her bag under the sconce, the dial card laid over its corner */
.kb-bh__stage { position: relative; }
.kb-bh__pic { margin: 0; overflow: hidden; border-radius: var(--r); background: var(--ink-2); aspect-ratio: 5 / 4; }
.kb-bh__pic img { width: 100%; height: 100%; object-fit: cover; }
.kb-dial { position: relative; z-index: 1; display: grid; justify-items: center; margin: -64px 12px 0; padding: 30px 28px 26px; box-shadow: 0 30px 60px -36px rgba(18, 17, 15, .45); }
.kb-dial__svg { grid-area: 1 / 1; width: min(100%, 240px); height: auto; overflow: visible; }
.kb-dial__mid { grid-area: 1 / 1; place-self: center; display: grid; justify-items: center; gap: 6px; text-align: center; }
.kb-dial__mid b { font: 400 52px/1 var(--disp); font-variant-numeric: lining-nums; color: var(--ink); }
.kb-dial__mid span { font: 400 9.5px/1.45 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--mute); }
.kb-dial__key { grid-area: 2 / 1; max-width: 30ch; margin: 18px 0 6px !important; font-size: 14px; line-height: 1.55; color: var(--ink-3); text-align: center; }
.kb-dial__key i { display: inline-block; width: 22px; height: 4px; margin-right: 10px; border-radius: 2px; background: var(--ink); vertical-align: middle; }
.kb-dial__legend { grid-area: 3 / 1; width: 100%; }
.kb-dial__legend li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-2); }
.kb-dial__legend li:last-child { border-bottom: 0; }
.kb-dial__legend a { display: block; padding: 11px 0; font: 400 16px/1.3 var(--disp); color: var(--ink); text-decoration: none; }
.kb-dial__legend a:hover { color: var(--brass); }
@media (max-width: 699px), (pointer: coarse) { .kb-dial__legend a { display: flex; align-items: center; min-height: 44px; padding: 0; } }
.kb-dial__legend span { font: 400 10px/1 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--mute); white-space: nowrap; }
.kb-dial__sw { width: 12px; height: 12px; border-radius: 50%; }
.kb-dial__track { fill: none; stroke: rgba(18, 17, 15, .07); stroke-width: 18; }
.kb-dial__seg { fill: none; stroke-width: 18; }
.kb-dial__seg--0, .kb-dial__sw--0 { stroke: var(--brass); background: var(--brass); }
.kb-dial__seg--1, .kb-dial__sw--1 { stroke: var(--sand-d); background: var(--sand-d); }
.kb-dial__seg--2, .kb-dial__sw--2 { stroke: var(--mute); background: var(--mute); }
.kb-dial__seg--3, .kb-dial__sw--3 { stroke: var(--brass-l); background: var(--brass-l); }
.kb-dial__seg--4, .kb-dial__sw--4 { stroke: var(--ink-3); background: var(--ink-3); }
.kb-dial__drip { fill: none; stroke: var(--ink); stroke-width: 4; stroke-linecap: round; }
.kb-dial__tick { stroke: rgba(18, 17, 15, .32); stroke-width: 1; }
.kb-dial__tick.is-five { stroke: var(--ink); stroke-width: 1.6; }
.kb-dial__lab { font: 400 13px var(--sans); letter-spacing: .06em; fill: var(--mute); text-anchor: middle; }
@media (min-width: 700px) {
  .kb-bh__stage { padding-bottom: 150px; }
  .kb-bh__pic { width: 72%; margin-left: auto; aspect-ratio: 4 / 5; }
  .kb-dial { position: absolute; left: 0; bottom: 0; width: min(560px, 94%); margin: 0; grid-template-columns: minmax(0, 210px) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 28px; justify-items: stretch; align-items: start; padding: 32px; }
  .kb-dial__svg { grid-area: 1 / 1 / 3 / 2; align-self: center; width: 100%; }
  .kb-dial__mid { grid-area: 1 / 1 / 3 / 2; }
  .kb-dial__mid b { font-size: 46px; }
  .kb-dial__key { grid-area: 1 / 2; margin: 0 0 8px !important; text-align: left; }
  .kb-dial__legend { grid-area: 2 / 2; }
  .kb-dial__legend a { padding: 8px 0; font-size: 15px; }
}
@media (min-width: 1100px) {
  .kb-bh__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: center; }
  .kb-bh__words { grid-column: 1 / span 6; }
  .kb-bh__stage { grid-column: 7 / span 6; }
}

/* the posts, newest first: her picture on one side, the short answer on the other, the sides trading down the page */
.kb-items { border-top: 1px solid var(--line); }
.kb-item { display: grid; gap: 22px; padding: clamp(32px, 4.4vw, 60px) 0; border-bottom: 1px solid var(--line); }
.kb-item__pic { display: block; overflow: hidden; border-radius: var(--r); aspect-ratio: 3 / 2; background: var(--sand); }
.kb-item__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.kb-item:hover .kb-item__pic img { transform: scale(1.035); }
.kb-item__m { display: flex; flex-wrap: wrap; margin-bottom: 14px !important; font: 400 10.5px/1.6 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--mute); }
.kb-item__m > :not(:last-child)::after { content: '·'; padding: 0 10px; color: var(--sand-d); }
.kb-item__no { color: var(--brass); }
.kb-item__h { margin: 0 0 16px; font: 400 clamp(27px, 2.7vw, 40px)/1.2 var(--disp); letter-spacing: -.005em; text-wrap: balance; }
.kb-item__h a { display: block; padding: 6px 0; margin: -6px 0; color: var(--ink); text-decoration: none; }
.kb-item__h a:hover { color: var(--brass); }
.kb-item__a { max-width: 56ch; font-size: 16px; line-height: 1.8; color: var(--mute); }
.kb-item__a b { font-weight: 400; color: var(--ink); }
.kb-item .k-link { margin-top: 14px; }
@media (min-width: 900px) {
  .kb-item { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: center; }
  .kb-item__pic { grid-column: 1 / span 5; aspect-ratio: 5 / 4; }
  .kb-item__txt { grid-column: 7 / span 6; }
  .kb-item:nth-child(even) .kb-item__pic { grid-column: 8 / span 5; grid-row: 1; }
  .kb-item:nth-child(even) .kb-item__txt { grid-column: 1 / span 6; grid-row: 1; }
}

/* the iron drip's own bag on her charcoal wall, wherever the iron post shows its picture */
.kb-item__pic.kb-bagpic img, .kb-card__pic.kb-bagpic img, .kb-ph__pic.kb-bagpic img { box-sizing: border-box; object-fit: contain; object-position: 50% 0; padding: 7% 0 0;
  background: radial-gradient(42% 30% at 50% 0%, rgba(226, 186, 120, .26), transparent 70%), linear-gradient(180deg, #2b2724, #1b1917); }
.kb-item__pic.kb-bagpic img, .kb-card__pic.kb-bagpic img { padding-top: 9%; }
.kb-ph__pic.kb-bagpic img { padding: 9% 0 0; }

/* ════════ a post ════════ */
.kb-ph { padding: clamp(18px, 3vw, 44px) 0 clamp(44px, 5.6vw, 84px); }
.kb-ph__in { display: grid; gap: clamp(36px, 5vw, 64px); }
.kb-ph__h { max-width: 17ch; margin: 0; font: 400 clamp(36px, 3.6vw + 16px, 80px)/1.17 var(--disp); letter-spacing: -.012em; color: var(--ink); text-wrap: balance; }
.kb-ph__deck { max-width: 34ch; margin-top: 22px !important; font: var(--it) 400 clamp(20px, 1.9vw, 26px)/1.45 var(--disp); color: var(--ink-3); }
.kb-ph__facts { display: flex; flex-wrap: wrap; margin: 30px 0 0; padding: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.kb-ph__facts div { padding: 14px 22px 12px 0; margin-right: 22px; border-right: 1px solid var(--line); }
.kb-ph__facts div:last-child { border-right: 0; margin-right: 0; }
.kb-ph__facts dt { font: 400 9.5px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--mute); }
.kb-ph__facts dd { margin: 6px 0 0; font: 400 clamp(17px, 1.5vw, 21px)/1.2 var(--disp); white-space: nowrap; }
.kb-ph__pic { position: relative; isolation: isolate; margin: 0 8px 0 0; }
.kb-ph__pic::before { content: ''; position: absolute; inset: 10px -8px 34px 10px; z-index: -1; border: 1px solid var(--brass-l); border-radius: 6px; }
.kb-ph__pic img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r); }
.kb-ph__pic figcaption, .kb-ph__reel figcaption { margin-top: 14px; font: 400 10.5px/1.5 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--mute); }
.kb-ph__reel .kb-reel { width: min(60%, 300px); margin: 0 auto; }
.kb-ph__reel .kb-reel figcaption span { display: none; }
@media (max-width: 459px) { .kb-ph__facts div:nth-child(2) { border-right: 0; margin-right: 0; } .kb-ph__facts div:nth-child(3) { display: none; } }
@media (min-width: 1100px) {
  .kb-ph__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: center; }
  .kb-ph__words { grid-column: 1 / span 7; }
  .kb-ph__pic, .kb-ph__reel { grid-column: 9 / span 4; }
  .kb-ph__pic img { aspect-ratio: 4 / 5; }
  .kb-ph__pic::before { inset: -16px 16px 40px -16px; }
  .kb-ph__reel .kb-reel { width: min(100%, 300px); }
}

/* the reading: contents beside the words on a computer, folded above them on a phone */
.kb-read { padding: clamp(8px, 2vw, 24px) 0 clamp(84px, 9vw, 140px); }
.kb-read__in { display: grid; gap: 30px; }
.kb-toc__d summary { display: flex; align-items: center; gap: 12px; min-height: 54px; list-style: none; cursor: pointer; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); font: 400 11px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--brass); }
.kb-toc__d summary::-webkit-details-marker { display: none; }
.kb-toc__d summary small { margin-left: auto; font-size: 10px; letter-spacing: .18em; color: var(--mute); }
.kb-toc__d summary svg { flex: none; width: 16px; height: 16px; fill: none; stroke: var(--brass); stroke-width: 1.4; transition: transform .35s ease; }
.kb-toc__d[open] summary svg { transform: rotate(180deg); }
.kb-toc ol { counter-reset: toc; }
.kb-toc li { counter-increment: toc; }
.kb-toc li a { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: baseline; min-height: 44px; padding: 11px 0 10px; border-bottom: 1px solid var(--line-2); font: 400 15px/1.45 var(--sans); color: var(--ink-3); text-decoration: none; }
.kb-toc li a::before { content: counter(toc, decimal-leading-zero); font: 400 10.5px/1 var(--sans); letter-spacing: .12em; color: var(--brass); }
.kb-toc li a:hover { color: var(--brass); }
.kb-toc__go { margin-top: 16px; }
@media (min-width: 1100px) {
  .kb-read__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: start; }
  .kb-toc { grid-column: 1 / span 3; position: sticky; top: calc(var(--hd) + 28px); }
  .kb-toc__d summary { cursor: default; pointer-events: none; }
  .kb-toc__d summary svg { display: none; }
  .kb-prose { grid-column: 5 / span 7; }
}

/* her words: one comfortable column */
.kb-prose { min-width: 0; max-width: 720px; counter-reset: sec; font-size: 17px; line-height: 1.8; color: var(--ink-3); }
@media (min-width: 700px) { .kb-prose { font-size: 18px; } }
.kb-prose p { margin: 0 0 1.05em; }
.kb-prose a:not([class]) { color: var(--ink); text-decoration: underline; text-decoration-color: var(--brass-m); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.kb-prose a:not([class]):hover { color: var(--brass); }
.kb-intro { margin-top: clamp(30px, 3.6vw, 44px); }
.kb-intro p:first-child { font: 400 clamp(20px, 1.7vw, 23px)/1.6 var(--disp); color: var(--ink); }
.kb-s { display: flow-root; counter-increment: sec; padding-top: clamp(36px, 4.4vw, 60px); }
.kb-h2 { margin: 0 0 22px; font: 400 clamp(28px, 2.5vw, 38px)/1.2 var(--disp); letter-spacing: -.005em; color: var(--ink); text-wrap: balance; }
.kb-h2::before { content: counter(sec, decimal-leading-zero); display: block; margin-bottom: 14px; font: 400 11px/1 var(--sans); letter-spacing: .3em; color: var(--brass); }
.kb-h3 { margin: 1.5em 0 .5em; font: 400 clamp(21px, 1.7vw, 24px)/1.3 var(--disp); color: var(--ink); }

/* the short answer, first */
.kb-ans { padding: clamp(32px, 3.4vw, 44px) clamp(30px, 3.4vw, 46px); }
.kb-ans__k { display: flex; align-items: center; gap: 12px; margin: 0 0 14px !important; font: 400 11px/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--brass); }
.kb-ans__k .k-badge { flex: none; }
.kb-prose .kb-ans__p { margin: 0; font: 400 clamp(19px, 1.6vw, 22px)/1.6 var(--disp); color: var(--ink); }
.kb-prose .kb-ans__note { margin: 14px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--mute); }

/* lists with her brass diamonds */
.kb-ul { display: grid; margin: 0 0 1.3em; }
.kb-ul li { position: relative; padding: 7px 0 7px 26px; border-bottom: 1px solid var(--line-2); }
.kb-ul li::before { content: ''; position: absolute; left: 4px; top: calc(7px + .9em - 3.5px); width: 7px; height: 7px; background: var(--brass-m); transform: rotate(45deg); }
@media (min-width: 600px) { .kb-ul--2 { grid-template-columns: 1fr 1fr; column-gap: 32px; } }

.kb-pull { margin: clamp(30px, 4vw, 48px) 0; padding: 24px 0 26px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.kb-prose .kb-pull p { margin: 0; font: 400 clamp(24px, 2.3vw, 31px)/1.38 var(--disp); color: var(--ink); text-wrap: balance; }
.kb-pull p::before { content: '“'; display: block; height: .5em; margin-bottom: 4px; font-size: 2.1em; line-height: 1; color: var(--brass); }

/* her reels and pictures in the text */
.kb-reel { width: min(62%, 250px); margin: 34px auto; }
.kb-reel figcaption { margin-top: 12px; font: 400 14px/1.5 var(--sans); color: var(--mute); }
.kb-reel figcaption span { display: block; margin-bottom: 4px; font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: var(--brass); }
.kb-fig { width: min(78%, 330px); margin: 30px auto; }
.kb-fig img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--r); }
.kb-fig figcaption { margin-top: 10px; font-size: 13.5px; line-height: 1.5; color: var(--mute); }
@media (min-width: 900px) {
  .kb-reel--r { float: right; width: 228px; margin: 8px 0 28px 40px; }
  .kb-fig--l { float: left; width: 240px; margin: 8px 40px 24px 0; }
}

/* drips and services as chips */
.kb-prose .kb-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 22px; }
.kb-chip { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 18px; border: 1px solid var(--line); border-radius: 999px; background: var(--card); font: 400 14.5px/1.2 var(--sans); color: var(--ink); text-decoration: none; transition: background .3s, color .3s, border-color .3s; }
.kb-chip::before { content: ''; width: 6px; height: 6px; background: var(--brass-m); transform: rotate(45deg); }
.kb-chip:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.kb-chip--plain { border-style: dashed; background: none; color: var(--mute); }
.kb-chip--plain::before { display: none; }
.kb-cta { margin: 30px 0 6px; }
.kb-prose .kb-small { margin-top: 22px; font-size: 13.5px; line-height: 1.6; color: var(--mute); }

/* the post's end */
.kb-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; margin-top: clamp(48px, 5vw, 68px); padding-top: 20px; border-top: 1px solid var(--ink); }
.kb-prose .kb-foot p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--mute); }

/* ── the cost post: every drip on one price line ── */
.kb-pr { margin: 30px 0 34px; padding: clamp(24px, 3vw, 34px) clamp(18px, 3vw, 34px) clamp(14px, 2vw, 20px); border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.kb-pr__cap { display: grid; gap: 6px; margin-bottom: 14px; }
.kb-pr__cap .k-mini { margin: 0; }
.kb-pr__cap span:last-child { font-size: 14.5px; line-height: 1.55; color: var(--mute); }
.kb-pr__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: 'n p' 't t'; gap: 4px 16px; padding: 12px 0; border-top: 1px solid var(--line-2); }
/* each drip name is its own tap target: 24px tall with a mouse, 44px on a touch screen or phone (2026-11-03 review) */
.kb-pr__n { grid-area: n; display: flex; flex-wrap: wrap; align-items: center; column-gap: .85em; font-size: 15.5px; line-height: 1.6; color: var(--ink); }
.kb-pr__n a { display: inline-flex; align-items: center; min-height: 24px; color: var(--ink); white-space: nowrap; text-decoration: underline; text-decoration-color: var(--brass-l); text-underline-offset: 3px; }
.kb-pr__n a:hover { color: var(--brass); }
@media (max-width: 699px), (pointer: coarse) {
  .kb-pr__row { padding: 2px 0 8px; }
  .kb-pr__n { column-gap: 1.1em; }
  .kb-pr__n a { min-height: 44px; }
  .kb-pr__p { padding-top: 11px; }
}
.kb-pr__p { grid-area: p; text-align: right; font: 400 19px/1.2 var(--disp); font-variant-numeric: lining-nums; color: var(--ink); white-space: nowrap; }
.kb-pr__p small { display: block; margin-top: 4px; font: 400 9.5px/1.3 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--mute); }
.kb-pr__track { grid-area: t; position: relative; height: 26px; }
.kb-pr__track::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: var(--line); }
.kb-pr__dot { position: absolute; top: 50%; left: var(--x); width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 4px var(--card); transition: opacity .8s ease .3s; }
.kb-pr__bar { position: absolute; top: 50%; left: var(--x); width: var(--w); height: 10px; margin-top: -5px; border-radius: 5px; background: linear-gradient(90deg, var(--brass), var(--brass-l)); transform-origin: left center; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1) .3s; }
.kb-pr__none { position: absolute; left: 0; right: 0; top: 50%; border-top: 1px dashed var(--sand-d); }
.kb-pr.rv-wait .kb-pr__bar { transform: scaleX(0); }
.kb-pr.rv-wait .kb-pr__dot { opacity: 0; }
@media (min-width: 700px) {
  .kb-pr__row { grid-template-columns: minmax(0, 17em) minmax(0, 1fr) 7em; grid-template-areas: 'n t p'; align-items: center; column-gap: 22px; }
}
.kb-extras { margin-top: 26px; }
.k-pl__n small.kb-pl__d { display: block; margin: 3px 0 0; font: 400 13px/1.45 var(--sans); letter-spacing: 0; text-transform: none; }
.kb-punch { position: relative; max-width: 470px; margin: 30px 0; padding: 28px 30px 26px; border: 1px solid var(--line); border-radius: 10px; background: var(--card); box-shadow: 0 20px 44px -28px rgba(18, 17, 15, .4); }
.kb-prose .kb-punch__t { margin: 0 0 10px; font: 400 11px/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--brass); }
.kb-prose .kb-punch p:not(.kb-punch__t) { margin: 0 0 4px; font: 400 19px/1.45 var(--disp); color: var(--ink); }
.kb-punch__holes { display: flex; gap: 12px; margin-top: 18px; }
.kb-punch__holes i { width: 26px; height: 26px; border-radius: 50%; background: var(--paper-2); box-shadow: inset 0 2px 4px rgba(18, 17, 15, .25); }
.kb-punch__holes i:last-child { background: none; box-shadow: none; border: 1.5px solid var(--brass); }

/* ── the oral-vitamins post: a pill's way in beside a drip's ── */
.kb-ways { margin: 32px 0; padding: 26px clamp(18px, 3vw, 34px) 30px; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.kb-ways > .k-mini { margin-bottom: 18px; }
.kb-ways__cols { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 3vw, 40px); }
.kb-prose .kb-way__t { margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid var(--line); font: 400 clamp(19px, 1.8vw, 24px)/1.2 var(--disp); color: var(--ink); }
.kb-way ol { position: relative; }
.kb-way ol::before { content: ''; position: absolute; left: 7px; top: 12px; bottom: 30px; width: 2px; background: var(--sand); }
.kb-way li { position: relative; padding: 0 0 22px 30px; font-size: 15.5px; line-height: 1.45; color: var(--ink); }
.kb-way li::before { content: ''; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; box-sizing: border-box; border: 2px solid var(--mute); border-radius: 50%; background: var(--card); }
.kb-way li small { display: block; margin-top: 4px; font-size: 13px; line-height: 1.45; color: var(--mute); }
.kb-way li.is-end { padding-bottom: 0; font: 400 18px/1.35 var(--disp); }
.kb-way li.is-end::before { border-color: var(--ink); background: var(--ink); }
.kb-way--iv ol::before { background: var(--brass-l); }
.kb-way--iv li::before { border-color: var(--brass); }
.kb-way__skip { color: var(--brass) !important; }
.kb-way__skip::before { border-style: dashed !important; }
.kb-four { counter-reset: f; margin: 6px 0 26px; }
.kb-four > li { counter-increment: f; padding: 24px 0 6px; border-top: 1px solid var(--line); }
.kb-four > li::before { content: counter(f, decimal-leading-zero); display: block; margin-bottom: 8px; font: 400 11px/1 var(--sans); letter-spacing: .26em; color: var(--brass); }
.kb-four .kb-h3 { margin-top: 0; }
@media (min-width: 700px) {
  .kb-four > li { display: grid; grid-template-columns: 70px minmax(0, 1fr); }
  .kb-four > li::before { grid-row: 1 / span 6; margin: 0; font: 400 36px/1 var(--disp); letter-spacing: 0; }
  .kb-four > li > * { grid-column: 2; }
}

/* ── the iron post: who it's for, and the four steps ── */
.kb-for { margin: 6px 0 26px; padding: 34px clamp(30px, 3.6vw, 46px) 30px; }
.kb-prose .kb-for__t { margin: 0 0 12px; font: 400 clamp(23px, 2.1vw, 29px)/1.25 var(--disp); color: var(--ink); }
.kb-for li { position: relative; padding: 12px 0 12px 40px; border-top: 1px solid var(--line-2); color: var(--ink); }
.kb-for li::before { content: ''; position: absolute; left: 3px; top: calc(12px + .9em - 7px); width: 15px; height: 7px; border-left: 2px solid var(--brass); border-bottom: 2px solid var(--brass); transform: rotate(-45deg); }
.kb-prose .kb-for__src { margin: 6px 0 0; padding-top: 4px; border-top: 1px solid var(--line-2); font-size: 13.5px; line-height: 1.5; color: var(--mute); }
.kb-prose .kb-for__src a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ink); }
.kb-path { counter-reset: pa; margin: 8px 0 26px; }
.kb-path li { counter-increment: pa; position: relative; padding: 0 0 28px 64px; }
.kb-path li::before { content: counter(pa); position: absolute; z-index: 1; left: 0; top: -2px; display: grid; place-items: center; width: 44px; height: 44px; box-sizing: border-box; border: 1px solid var(--brass-m); border-radius: 50%; background: var(--paper); font: 400 18px/1 var(--disp); color: var(--brass); }
.kb-path li::after { content: ''; position: absolute; left: 22px; top: 42px; bottom: 0; width: 1px; background: var(--brass-l); }
.kb-path li:last-child { padding-bottom: 0; }
.kb-path li:last-child::after { display: none; }
.kb-path li:last-child::before { border-color: var(--ink); background: var(--ink); color: var(--sand); }
.kb-path b { display: block; margin-bottom: 4px; font: 400 21px/1.3 var(--disp); color: var(--ink); }
.kb-path span { display: block; font-size: 16px; line-height: 1.65; color: var(--mute); }

/* ── the peptide post: her definition as a dictionary entry (a black index tab with its letter), and the consultation ── */
.kb-def { position: relative; margin: 30px 0 34px; padding: clamp(26px, 3vw, 38px) clamp(24px, 3.4vw, 44px) clamp(24px, 3vw, 34px); border: 1px solid var(--line); border-radius: var(--r); background: var(--card); box-shadow: 0 26px 50px -36px rgba(18, 17, 15, .45); }
.kb-prose .kb-def__k, .kb-prose .kb-def__w { margin-right: 48px; }
.kb-def__tab { position: absolute; top: clamp(24px, 3vw, 34px); right: -1px; display: grid; place-items: center; width: 42px; height: 62px; border-radius: 6px 0 0 6px; background: var(--ink); font: 400 24px/1 var(--disp); color: var(--sand); }
.kb-prose .kb-def__k { margin: 0 0 12px; font: 400 10.5px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--brass); }
.kb-prose .kb-def__w { margin: 0 0 20px; padding-bottom: 18px; border-bottom: 1px solid var(--ink); font: 400 clamp(44px, 4.6vw, 64px)/1 var(--disp); letter-spacing: -.012em; color: var(--ink); }
.kb-def__w i { margin-left: .35em; font: italic 400 .3em/1 var(--sans); letter-spacing: .08em; color: var(--mute); vertical-align: .4em; }
.kb-def__s { counter-reset: d; display: grid; gap: 14px; }
.kb-def__s li { counter-increment: d; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: baseline; font: 400 clamp(19px, 1.6vw, 22px)/1.5 var(--disp); color: var(--ink); }
.kb-def__s li::before { content: counter(d) '.'; font: 400 13px/1 var(--sans); letter-spacing: .08em; color: var(--brass); }
.kb-def.rv-wait .kb-def__s li { opacity: 0; transform: translateY(8px); }
.kb-def__s li { transition: opacity .7s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.kb-def__s li + li { transition-delay: .25s; }
.kb-steps { counter-reset: st; display: grid; gap: 14px; margin: 24px 0 28px; }
.kb-steps li { counter-increment: st; padding: 22px 22px 20px; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.kb-steps li::before { content: counter(st); display: grid; place-items: center; width: 36px; height: 36px; margin-bottom: 14px; box-sizing: border-box; border: 1px solid var(--brass-m); border-radius: 50%; font: 400 16px/1 var(--disp); color: var(--brass); }
.kb-steps b { display: block; margin-bottom: 6px; font: 400 20px/1.25 var(--disp); color: var(--ink); }
.kb-steps span { display: block; font-size: 15px; line-height: 1.6; color: var(--mute); }
@media (min-width: 700px) { .kb-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }

/* ── the weight post: the SlimDown card, and one number on the scale set beside her six wins ── */
.kb-plan { margin: 30px 0; padding: clamp(28px, 3.4vw, 44px); border-radius: var(--r); color: var(--paper);
  background: radial-gradient(60% 55% at 88% 0%, rgba(226, 186, 120, .18), transparent 70%), linear-gradient(180deg, #25211e, #151311); }
.kb-prose .kb-plan__t { display: flex; align-items: center; gap: 16px; margin: 0 0 20px; font: 400 clamp(21px, 2vw, 26px)/1.3 var(--disp); color: var(--paper); }
.kb-plan__badge { flex: none; margin: 0; width: 46px; height: 46px; border: 1px solid var(--brass-m); }
.kb-plan__badge .mark { width: 26px; background: var(--brass-l); }
.kb-plan ol { counter-reset: pl; display: grid; column-gap: 30px; }
.kb-plan li { counter-increment: pl; display: flex; align-items: baseline; gap: 14px; padding: 13px 0; border-top: 1px solid var(--line-d); font-size: 16.5px; line-height: 1.45; color: var(--paper); }
.kb-plan li::before { content: counter(pl, decimal-leading-zero); flex: none; font: 400 11px/1 var(--sans); letter-spacing: .16em; color: var(--brass-l); }
@media (min-width: 600px) { .kb-plan ol { grid-template-columns: 1fr 1fr; } }
.kb-wins { display: grid; margin: 30px 0 34px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.kb-prose .kb-wins__k { margin: 0; font: 400 10.5px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--mute); }
.kb-wins__num { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 16px 24px 15px; border-bottom: 1px solid var(--line); background: var(--paper-2); }
.kb-wins__num b { font: var(--it) 400 21px/1.2 var(--disp); color: var(--mute); }
.kb-wins__more { padding: 26px 24px 6px; }
.kb-prose .kb-wins__more .kb-wins__k { margin-bottom: 14px; color: var(--brass); }
/* the six wins run on like a sentence, told apart by colour (ink, then brass), so no separator ever hangs at a line's end */
.kb-wins__w { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: .5em; }
.kb-wins__w li { font: 400 clamp(29px, 2.9vw, 41px)/1.38 var(--disp); letter-spacing: -.01em; color: var(--ink); white-space: nowrap; transition: opacity .7s ease calc(var(--i) * .12s), transform .9s cubic-bezier(.2, .7, .2, 1) calc(var(--i) * .12s); }
.kb-wins__w li:nth-child(even) { color: var(--brass); }
.kb-wins.rv-wait .kb-wins__w li { opacity: 0; transform: translateY(10px); }
.kb-prose .kb-wins__end { margin: 22px 24px 0; padding: 18px 0 22px; border-top: 1px solid var(--line); font: var(--it) 400 clamp(18px, 1.5vw, 20px)/1.5 var(--disp); color: var(--ink-3); }
@media (min-width: 700px) {
  .kb-wins { grid-template-columns: minmax(0, 170px) minmax(0, 1fr); }
  .kb-wins__num { grid-row: 1 / span 2; flex-direction: column; justify-content: space-between; padding: 28px 22px 26px; border-bottom: 0; border-right: 1px solid var(--line); }
  .kb-wins__num b { font-size: 24px; line-height: 1.15; }
  .kb-wins__more { padding: 30px 34px 4px; }
  .kb-prose .kb-wins__end { margin: 20px 34px 0; }
}

/* ── keep reading: her other four posts ── */
.kb-more__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; margin-bottom: clamp(32px, 4vw, 52px); }
.kb-more__row { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 16px; }
.kb-card { display: grid; align-content: start; gap: 10px; color: var(--ink); text-decoration: none; }
.kb-card__pic { display: block; overflow: hidden; border-radius: var(--r); aspect-ratio: 4 / 5; background: var(--sand); }
.kb-card__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.kb-card:hover .kb-card__pic img { transform: scale(1.04); }
.kb-card__m { margin-top: 4px; font: 400 9.5px/1.5 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--brass); }
.kb-card__t { font: 400 clamp(18px, 1.6vw, 22px)/1.3 var(--disp); text-wrap: balance; }
.kb-card:hover .kb-card__t { color: var(--brass); }
/* a card whose picture is a drip's bag: the picture opens the drip, the words open the post; it looks the same */
.kb-card__go { display: block; color: inherit; text-decoration: none; }
.kb-card__words { display: grid; align-content: start; gap: 10px; }
.kb-ph__go { display: block; color: inherit; }
@media (min-width: 900px) { .kb-more__row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; } }

@media (prefers-reduced-motion: reduce) {
  .kb-wins__w li, .kb-def__s li, .kb-pr__bar, .kb-pr__dot, .kb-item__pic img, .kb-card__pic img { transition: none; }
  .kb-wins.rv-wait .kb-wins__w li, .kb-def.rv-wait .kb-def__s li, .kb-pr.rv-wait .kb-pr__bar { opacity: 1; transform: none; }
  .kb-pr.rv-wait .kb-pr__dot { opacity: 1; }
}
