/* Revive, crafted direction: the services pages (2026-11-03; tools/crafted/make-services.cjs). The header, footer, desk,
   buttons, questions and type come from crafted.css + crafted-pages.css; this file draws each page's own piece:
   - /services          her private room's wall: each service a picture of hers in a thin oak frame (like her tree-ring
                        prints), a brass plaque under it; Jaime's own reason for it on a printed card
   - weight management  a scale seen from above, its dial reading her "Wellness Beyond the Scale" words; her program; her
                        steps from labs to maintenance on one brass line
   - peptide therapy    a peptide drawn as a short chain of amino acids on her charcoal wall; her "How do they work?" as
                        three panels (education only: no price, no product)
   - wellness labs      her "before your lab draw" tips on a slip, on a black clipboard with a brass clamp, on her quartz
   - red light therapy  her private room: the red light comes on and the whole first screen takes its glow; red and
                        near-infrared on the spectrum
   Every piece keeps the house's language: her paper, her black, her champagne beige, brass hairlines, Marcellus + Tenor.
   Fresh review fixes (2026-11-03): the wall fills Ian's 2140 window (wider hang, bigger frames, the IV menu's three
   brick-set under the four); weight's program as a bento; peptide's three steps as three different drawings and its
   consultation as a card over her lounge; labs' interpretation as a statement round her photo; the spectrum in her palette. */

/* ── the shared bits of these five pages ── */
.k-svh { --avail: calc(100vw - 2 * var(--gutter) - 6px); margin: 0; font: 400 min(14vw, calc(var(--avail) / var(--w, 6)), 104px)/1.18 var(--disp); letter-spacing: -.015em; color: var(--ink); text-wrap: balance; }
.k-svh em { font-weight: 400; padding: 0 .16em .04em; margin: 0 .03em; border-radius: 4px; background: var(--ink); color: var(--sand); -webkit-box-decoration-break: clone; box-decoration-break: clone; transition: background .9s ease, color .9s ease; }
html[data-font="playfair"] .k-svh em { padding: 0; margin: 0; background: none; color: var(--brass); }
@media (min-width: 1100px) { .k-svh { --avail: calc(min(100vw - 2 * var(--gutter), 1240px) / 2 - 30px); font-size: min(100px, calc(var(--avail) / var(--w, 6))); } }
.k-svline { max-width: 32ch; margin-top: 22px !important; font: var(--it) 400 clamp(21px, 2vw, 27px)/1.45 var(--disp); color: var(--ink-3); }
.k-sv__p { max-width: 46ch; margin-top: 20px !important; font-size: 16.5px; line-height: 1.8; color: var(--mute); }
.k-svf { display: flex; flex-wrap: wrap; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.k-svf div { padding: 14px 24px 12px 0; margin-right: 24px; border-right: 1px solid var(--line); }
.k-svf div:last-child { border-right: 0; margin-right: 0; }
.k-svf dt { font: 400 9.5px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--mute); }
.k-svf dd { margin: 6px 0 0; font: 400 clamp(19px, 1.7vw, 24px)/1.2 var(--disp); }
@media (max-width: 599px) {
  .k-svf { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .k-svf div { margin-right: 0; padding: 13px 14px 11px 0; border-right: 0; }
  .k-svf div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
  .k-svf div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .k-svf dd { font-size: 18px; }
}
@media (min-width: 1100px) { .k-rl .k-svf dd, .k-wh .k-svf dd { font-size: min(22px, 1.6vw); } }
.k-wh .k-cta, .k-ph .k-cta, .k-lb .k-cta, .k-rl .k-cta, .k-sv .k-cta { margin-top: 30px; }
.k-wh .k-note, .k-ph .k-note, .k-lb .k-note { margin-top: 18px !important; }
/* the openings: words on the left, her piece on the right (a computer); the piece under the words (a phone) */
.k-sv, .k-wh, .k-ph, .k-lb { padding: clamp(18px, 3vw, 44px) 0 clamp(70px, 8vw, 120px); }
.k-sv__in, .k-wh__in, .k-ph__in, .k-lb__in, .k-rl__in { display: grid; gap: clamp(44px, 5vw, 70px); align-items: center; }
@media (min-width: 1100px) {
  .k-sv__in, .k-wh__in, .k-ph__in, .k-lb__in, .k-rl__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; }
  .k-sv__words, .k-wh__words, .k-ph__words, .k-lb__words, .k-rl__words { grid-column: 1 / span 6; }
}
/* her own answers, folding open (the house's question style) */
.k-svq .k-faq__cols { margin-top: 0; }
.k-svq .k-q p a { display: inline; padding: 0; margin: 0; text-decoration: underline; text-underline-offset: 3px; }
.k-svq__foot { max-width: 70ch; margin-top: 30px !important; font-size: 14px; line-height: 1.7; color: var(--mute); }
.k-svq__foot a { color: var(--ink); }
/* small cards that lead on: a shot, a service, a post */
.k-pair__row { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 700px) { .k-pair__row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1100px) { .k-pair__row { grid-template-columns: repeat(4, minmax(0, 1fr)); } .k-pair__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.k-pair__c { display: grid; align-content: start; height: 100%; padding: 26px 24px 24px; border: 1px solid var(--line); border-radius: 3px; background: var(--card); color: var(--ink); text-decoration: none; transition: border-color .35s ease, transform .5s cubic-bezier(.2, .7, .2, 1); }
.k-pair__c:hover { border-color: var(--ink); transform: translateY(-3px); }
.k-pair__k { font: 400 9.5px/1.4 var(--sans); letter-spacing: .26em; text-transform: uppercase; color: var(--brass); }
.k-pair__n { margin-top: 14px; font: 400 24px/1.2 var(--disp); }
.k-pair__p { margin-top: 6px; font: 400 11px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--ink-3); }
.k-pair__l { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line-2); font-size: 14.5px; line-height: 1.65; color: var(--mute); }

/* ════════ /services ════════ */
.k-sv__card { padding: 44px 40px 36px; text-align: center; }
.k-sv__kick { margin-top: 22px !important; font: 400 10.5px/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--brass); }
.k-sv__card blockquote { margin: 14px 0 0; font: 400 clamp(23px, 2vw, 29px)/1.38 var(--disp); color: var(--ink); text-wrap: balance; }
.k-sv__more { margin-top: 18px !important; font-size: 15px; line-height: 1.75; color: var(--mute); }
.k-sv__card figcaption { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); font: 400 10.5px/1.4 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--brass); }
.k-sv__card figcaption span { display: block; }
.k-sv__card figcaption span + span { margin-top: 6px; color: var(--mute); letter-spacing: .3em; }
.k-nw { white-space: nowrap; }
@media (min-width: 1100px) { .k-sv__card { grid-column: 8 / span 5; transform: rotate(1deg); } }

/* the wall: her private room's warm grey, two brass sconces, her black baseboard */
.k-gw { padding-bottom: 0; }
.k-gw .k-head { margin-bottom: clamp(30px, 3.4vw, 50px); }
.k-gw__wall { position: relative; overflow: hidden; padding: clamp(56px, 6vw, 96px) 0 clamp(70px, 7vw, 110px);
  background: radial-gradient(28% 46% at 6% 0%, rgba(255, 226, 176, .55), transparent 70%), radial-gradient(28% 46% at 94% 0%, rgba(255, 226, 176, .55), transparent 70%), linear-gradient(180deg, #e9e2da, #ddd5cb); }
.k-gw__base { position: absolute; left: 0; right: 0; bottom: 0; height: 16px; background: linear-gradient(180deg, #2a2724, #141312); }
.k-sc--gw1 { --s: .8; left: 3%; top: 18px; }
.k-sc--gw2 { --s: .8; right: 3%; top: 18px; }
@media (max-width: 1099px) { .k-sc--gw1, .k-sc--gw2 { display: none; } }
.k-gw__row { position: relative; z-index: 1; display: grid; gap: 44px; margin: 0; padding: 0; list-style: none; }
.k-gw__t { position: relative; z-index: 1; display: flex; align-items: center; gap: 18px; margin: clamp(56px, 6vw, 90px) 0 clamp(30px, 3vw, 46px) !important; font: 400 10.5px/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: #755c34; }
.k-gw__t::before, .k-gw__t::after { content: ''; flex: 1; height: 1px; background: rgba(18, 17, 15, .16); }
.k-fr__a { display: grid; justify-items: center; color: var(--ink); text-decoration: none; text-align: center; }
/* the thin oak frame, the way her tree-ring prints are framed */
.k-fr__frame { display: block; width: 100%; padding: clamp(6px, .6vw, 9px); border-radius: 1px; overflow: hidden;
  background: linear-gradient(135deg, #d7b07a 0%, #a97c47 38%, #cfa56d 58%, #8f663a 100%);
  box-shadow: inset 0 0 0 1px rgba(60, 38, 16, .35), 0 2px 3px rgba(18, 17, 15, .18), 0 26px 34px -20px rgba(18, 17, 15, .5);
  transition: transform .6s cubic-bezier(.2, .7, .2, 1), box-shadow .6s ease; }
.k-fr__frame img { width: 100%; height: 100% !important; object-fit: cover; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2); }
.k-fr__a:hover .k-fr__frame, .k-fr__a:focus-visible .k-fr__frame { transform: translateY(-5px) rotate(-.6deg); box-shadow: inset 0 0 0 1px rgba(60, 38, 16, .35), 0 2px 3px rgba(18, 17, 15, .18), 0 40px 46px -24px rgba(18, 17, 15, .55); }
.k-fr__a:focus-visible { outline: 2px solid var(--brass); outline-offset: 8px; }
/* the brass plaque under each picture */
.k-fr__plate { position: relative; display: grid; justify-items: center; gap: 5px; margin-top: 24px; padding: 11px 26px 10px; border-radius: 2px;
  background: linear-gradient(135deg, #efdcae 0%, #c9a86f 40%, #e7d09f 58%, #a9864f 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), inset 0 -1px 0 rgba(0, 0, 0, .18), 0 6px 10px -6px rgba(18, 17, 15, .45); }
.k-fr__plate::before, .k-fr__plate::after { content: ''; position: absolute; top: 50%; width: 5px; height: 5px; margin-top: -2.5px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #f6e8c8, #7e5f30); }
.k-fr__plate::before { left: 9px; }
.k-fr__plate::after { right: 9px; }
.k-fr__n { font: 400 19px/1.15 var(--disp); color: var(--ink); }
.k-fr__p { font: 400 9.5px/1.2 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: #3a2c17; }
.k-fr__l { max-width: 27ch; margin-top: 14px; font-size: 14px; line-height: 1.6; color: #5b5249; }
.k-fr__a:hover .k-fr__n { color: #000; }
/* phones: each picture beside its plaque, alternating sides */
@media (max-width: 699px) {
  .k-gw__row { gap: 40px; }
  .k-fr__a { grid-template-columns: 44% minmax(0, 1fr); column-gap: 18px; align-items: center; justify-items: start; text-align: left; }
  .k-fr__frame { grid-row: 1 / span 2; }
  .k-fr__plate { align-self: end; justify-items: start; margin-top: 0; padding: 10px 18px 9px; }
  .k-fr__plate::before, .k-fr__plate::after { display: none; }
  .k-fr__n { font-size: 18px; }
  .k-fr__l { align-self: start; margin-top: 12px; font-size: 14px; }
  .k-gw__row > li:nth-child(even) .k-fr__a { grid-template-columns: minmax(0, 1fr) 44%; }
  .k-gw__row > li:nth-child(even) .k-fr__frame { grid-column: 2; }
  .k-gw__row > li:nth-child(even) .k-fr__plate, .k-gw__row > li:nth-child(even) .k-fr__l { grid-column: 1; grid-row: auto; }
  .k-gw__row > li:nth-child(even) .k-fr__plate { grid-row: 1; }
  .k-gw__row > li:nth-child(even) .k-fr__l { grid-row: 2; }
}
@media (min-width: 700px) {
  .k-gw__row { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; column-gap: 40px; row-gap: 56px; }
  .k-gw__row--sm { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* a computer: the wall is wider than the page's column (up to 1720px, so Ian's 2140 window isn't a strip of small frames
   on a big wall); four big frames hung on one centre line at slightly different sizes, then the IV menu's three set
   between them like bricks, nearly as big */
@media (min-width: 1100px) {
  .k-gw__hang { --gwg: clamp(40px, 3.6vw, 84px); max-width: calc(1720px + 2 * var(--gutter)); }
  .k-gw__row { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: var(--gwg); }
  .k-gw__row--sm { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: calc((100% - 3 * var(--gwg)) * .75 + 2 * var(--gwg)); margin-inline: auto; }
  .k-fr--weight .k-fr__frame { width: 100%; }
  .k-fr--peptide .k-fr__frame { width: 88%; }
  .k-fr--labs .k-fr__frame { width: 94%; }
  .k-fr--red .k-fr__frame { width: 100%; }
  .k-fr--sm .k-fr__frame { width: 84%; }
  .k-fr__n { font-size: clamp(19px, 1.25vw, 24px); }
  .k-fr__l { max-width: 30ch; font-size: clamp(14px, .82vw, 16px); }
}
/* the two drawings on the wall: the weight page's dial on a cream mount, the peptide page's chain on her charcoal */
.k-fr__art { position: relative; display: grid; place-items: center; width: 100%; height: 100%; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2); }
.k-fr__art--dial { background: radial-gradient(75% 60% at 50% 38%, #fffdf8, #ece2d3); }
.k-fr__art--dial .k-dl { width: 80%; border-radius: 50%; box-shadow: 0 0 0 6px #191715, 0 18px 26px -10px rgba(18, 17, 15, .45); }
.k-fr__art--chain { align-content: center; gap: 8%; background: radial-gradient(60% 45% at 70% 20%, rgba(226, 186, 120, .2), transparent 70%), linear-gradient(180deg, #2b2724, #1b1917); }
.k-fr__art--chain svg { width: 94%; height: auto; overflow: visible; }
.k-fr__cap { max-width: 26ch; text-align: center; font: 400 9.5px/1.5 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--brass-l); }
@media (max-width: 699px) { .k-fr__cap { display: none; } }
.k-fr--red .k-fr__frame { background: linear-gradient(135deg, #d7b07a 0%, #a97c47 38%, #cfa56d 58%, #8f663a 100%); }
.k-fr--red .k-fr__a:hover .k-fr__frame { box-shadow: inset 0 0 0 1px rgba(60, 38, 16, .35), 0 0 60px -6px rgba(200, 38, 27, .45), 0 40px 46px -24px rgba(18, 17, 15, .55); }

/* three ways in */
.k-ways__row { display: grid; gap: 36px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.k-ways__row li { position: relative; padding-top: 26px; border-top: 1px solid var(--line); }
.k-ways__n { display: block; font: 400 64px/1 var(--disp); color: var(--brass-m); }
.k-ways__row h3 { margin: 18px 0 0; font: 400 27px/1.2 var(--disp); }
.k-ways__row p { max-width: 36ch; margin: 12px 0 10px !important; font-size: 15.5px; line-height: 1.75; color: var(--mute); }
.k-ways__row p a { color: var(--ink); text-underline-offset: 3px; }
.k-ways__go { display: grid; justify-items: start; }
.k-ways__go .k-link { min-height: 40px; }
.k-ways__go .k-link svg { width: 15px; height: 15px; }
@media (min-width: 900px) { .k-ways__row { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 48px; } }

/* ════════ weight management: a scale seen from above ════════ */
.k-scale { display: grid; justify-items: center; margin: 0; }
.k-scale__body { position: relative; width: min(100%, 470px); aspect-ratio: 1 / 1.1; border-radius: 15% / 13.6%;
  background: radial-gradient(90% 60% at 30% 8%, rgba(255, 255, 255, .1), transparent 60%), linear-gradient(165deg, #2f2c29 0%, #171614 55%, #211f1c 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), inset 0 0 0 1px rgba(255, 255, 255, .04), 0 8px 0 #0b0a09, 0 60px 70px -36px rgba(18, 17, 15, .55); }
.k-scale__body::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(118deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0) 70%, rgba(255, 255, 255, .05)); pointer-events: none; }
.k-scale__mat { position: absolute; left: 7%; right: 7%; bottom: 6%; height: 30%; border-radius: 10% / 22%; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .045) 0 2px, transparent 2px 7px), rgba(0, 0, 0, .18); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .6); }
.k-scale__foot { position: absolute; bottom: 9.5%; width: 26%; height: 22%; border-radius: 50%; background: radial-gradient(circle at 50% 40%, rgba(255, 255, 255, .06), transparent 70%); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07); }
.k-scale__foot--l { left: 18%; transform: rotate(-8deg); }
.k-scale__foot--r { right: 18%; transform: rotate(8deg); }
.k-scale__win { position: absolute; left: 50%; top: 6.5%; width: 76%; aspect-ratio: 1; transform: translateX(-50%); border-radius: 50%; padding: 2.4%; background: #0b0a09; box-shadow: inset 0 3px 8px rgba(0, 0, 0, .8), 0 1px 0 rgba(255, 255, 255, .1); }
.k-dl { display: block; width: 100%; height: auto; border-radius: 50%; }
.k-dl__mn { stroke: rgba(18, 17, 15, .28); stroke-width: 1.2; }
.k-dl__mj { stroke: var(--brass); stroke-width: 2.6; }
.k-dl__w { font: 400 17px var(--disp); letter-spacing: .01em; fill: #a39686; animation: k-dlw 18s linear infinite; animation-delay: calc(var(--i) * 3s); }
.k-dl__s { font: 400 9.5px var(--sans); letter-spacing: .3em; text-transform: uppercase; fill: var(--brass); }
.k-dl__nd { fill: #9e2a1f; }
.k-dl__hub { fill: #1b1917; stroke: var(--brass-m); stroke-width: 2; }
.k-dl__pin { fill: var(--brass-l); }
.k-dl__needle { transform-box: view-box; transform-origin: 200px 200px; transform: rotate(-125deg); animation: k-dln 18s cubic-bezier(.3, 1.45, .45, 1) infinite; }
@keyframes k-dln {
  0%, 13% { transform: rotate(-125deg); } 16.7%, 29.7% { transform: rotate(-75deg); } 33.3%, 46.3% { transform: rotate(-25deg); }
  50%, 63% { transform: rotate(25deg); } 66.7%, 79.7% { transform: rotate(75deg); } 83.3%, 96.3% { transform: rotate(125deg); } 100% { transform: rotate(-125deg); }
}
@keyframes k-dlw { 0%, 14.5% { fill: var(--ink); } 16.6%, 100% { fill: #a39686; } }
@media (prefers-reduced-motion: reduce) { .k-dl__needle { animation-timing-function: ease-in-out; } }
.k-scale__cap { max-width: 46ch; margin-top: 34px; text-align: center; font-size: 15px; line-height: 1.75; color: var(--mute); }
.k-scale__cap b { display: block; margin-bottom: 6px; font: 400 22px/1.3 var(--disp); color: var(--ink); }
@media (min-width: 1100px) { .k-scale { grid-column: 8 / span 5; } }

/* the program: her five as tiles round one tall picture (labs come first), her line on a black tile to close it */
.k-wp__grid { display: grid; gap: 14px; }
.k-wp__pic { position: relative; margin: 0; overflow: hidden; aspect-ratio: 4 / 3.6; border-radius: var(--r); background: var(--ink); }
.k-wp__pic img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 42%; }
.k-wp__pic figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: grid; gap: 6px; padding: 80px 24px 22px; background: linear-gradient(rgba(12, 10, 9, 0), rgba(12, 10, 9, .86) 62%); color: rgba(250, 245, 242, .86); font-size: 14.5px; line-height: 1.6; }
.k-wp__pic figcaption b { font: 400 25px/1.2 var(--disp); color: #fff; }
/* on a phone the wide crop showed only the nurse's hair: taller, and framed on her gloved hands at the arm */
@media (max-width: 699px) { .k-wp__pic { aspect-ratio: 4 / 4.6; } .k-wp__pic img { object-position: 50% 75%; } }
.k-wp__t { display: grid; align-content: start; justify-items: start; padding: 26px 24px 24px; border: 1px solid var(--line); border-radius: var(--r); background: var(--card); }
.k-wp__ic { display: grid; place-items: center; width: 50px; height: 50px; border: 1px solid var(--brass-m); border-radius: 50%; color: var(--brass); }
.k-wp__ic svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.k-wp__t h3 { margin: 18px 0 0; font: 400 23px/1.25 var(--disp); }
.k-wp__t p { margin-top: 8px !important; font-size: 15px; line-height: 1.7; color: var(--mute); }
.k-wp__t .k-wp__tag { margin-top: 14px !important; padding: 7px 13px 6px; border: 1px solid var(--brass-m); border-radius: 2px; font: 400 10px/1.4 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--brass); }
.k-wp__t--tag { border-color: var(--brass-m); }
.k-wp__say { display: grid; align-content: end; padding: 30px 26px 28px; border-radius: var(--r); background: var(--ink); }
.k-wp__say p { max-width: 22ch; font: 400 clamp(23px, 1.9vw, 29px)/1.35 var(--disp); color: var(--sand); }
@media (min-width: 700px) {
  .k-wp__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .k-wp__pic { grid-row: span 2; aspect-ratio: auto; min-height: 440px; }
}
@media (min-width: 1100px) {
  .k-wp__grid { grid-template-columns: 1.12fr 1fr 1fr; gap: 18px; }
  .k-wp__pic { grid-row: 1 / span 3; }
  .k-wp__t { padding: 30px 28px 28px; }
}

/* how it goes: one brass line, a stop for each step */
.k-path__ol { position: relative; display: grid; gap: 30px; margin: 0; padding: 0 0 0 64px; list-style: none; }
.k-path__ol::before { content: ''; position: absolute; left: 21px; top: 10px; bottom: 10px; width: 1px; background: linear-gradient(var(--brass-m), var(--brass-l)); }
.k-path__ol li { position: relative; }
.k-path__dot { position: absolute; left: -64px; top: -4px; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--brass-m); border-radius: 50%; background: var(--paper-2); font: 400 17px/1 var(--disp); color: var(--brass); }
.k-on-p1 .k-path__dot { background: var(--paper); }
.k-path__ol h3 { margin: 4px 0 0; font: 400 23px/1.25 var(--disp); }
.k-path__ol p { max-width: 44ch; margin-top: 8px !important; font-size: 15px; line-height: 1.7; color: var(--mute); }
.k-path__ol p a { color: var(--ink); }
@media (min-width: 1100px) {
  .k-path__ol { grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 26px; padding: 0; }
  .k-path__ol::before { left: 22px; right: 0; top: 22px; bottom: auto; width: auto; height: 1px; background: linear-gradient(90deg, var(--brass-m), var(--brass-l)); }
  .k-path__dot { position: relative; left: 0; top: 0; margin-bottom: 24px; }
  .k-path__ol h3 { margin-top: 0; font-size: 22px; }
  .k-path__ol p { font-size: 14.5px; }
}

/* ════════ peptide therapy: a short chain of amino acids ════════ */
.k-chain { position: relative; margin: 0; padding: clamp(26px, 4vw, 54px) clamp(18px, 3vw, 44px) clamp(28px, 3vw, 40px); border-radius: 6px; overflow: hidden;
  background: radial-gradient(45% 40% at 78% 12%, rgba(226, 186, 120, .2), transparent 70%), radial-gradient(55% 50% at 20% 60%, rgba(226, 186, 120, .1), transparent 70%), linear-gradient(180deg, #2b2724, #1b1917);
  box-shadow: inset 0 -60px 80px -40px rgba(0, 0, 0, .5); color: var(--paper); }
.k-chain__art { position: relative; aspect-ratio: 520 / 290; margin-block: clamp(30px, 4vw, 56px) clamp(26px, 3vw, 44px); }
.k-chain__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.k-pc__bond { fill: none; stroke: #d9bd86; stroke-width: 2; stroke-linejoin: round; opacity: .8; }
.k-pc__b { stroke-width: 1.2; transform-box: fill-box; transform-origin: center; }
.k-pc__b--brass { fill: url(#k-bd-brass); stroke: rgba(0, 0, 0, .25); }
.k-pc__b--sand { fill: url(#k-bd-sand); stroke: rgba(0, 0, 0, .2); }
.k-pc__b--ink { fill: url(#k-bd-ink); stroke: #b6955f; }
.k-pc__b--cream { fill: url(#k-bd-cream); stroke: rgba(0, 0, 0, .18); }
.k-pc--hero .k-pc__b { animation: k-bob 4.2s ease-in-out infinite, k-lit 4.2s ease-in-out infinite; animation-delay: calc(var(--i) * -.32s), calc(var(--i) * .22s); filter: drop-shadow(0 8px 6px rgba(0, 0, 0, .45)); }
@keyframes k-bob { 0%, 100% { transform: translateY(-4px); } 50% { transform: translateY(4px); } }
@keyframes k-lit { 0%, 70%, 100% { filter: drop-shadow(0 8px 6px rgba(0, 0, 0, .45)); } 80% { filter: drop-shadow(0 0 10px rgba(255, 214, 150, .9)) drop-shadow(0 8px 6px rgba(0, 0, 0, .45)); } }
@media (prefers-reduced-motion: reduce) { .k-pc--hero .k-pc__b { animation-duration: 7s, 7s; } @keyframes k-bob { 0%, 100% { transform: translateY(-2px); } 50% { transform: translateY(2px); } } }
.k-chain__l { position: absolute; z-index: 1; display: grid; justify-items: center; width: max-content; max-width: 17ch; transform: translateX(-50%); font: 400 10px/1.45 var(--sans); letter-spacing: .22em; text-transform: uppercase; text-align: center; color: var(--brass-l); }
.k-chain__l::before { content: ''; width: 1px; height: 26px; background: rgba(219, 194, 147, .55); }
.k-chain__l--a { left: 26.9%; top: 72.8%; }
.k-chain__l--b { left: 54.6%; bottom: 74.8%; }
.k-chain__l--b::before { order: 2; }
.k-chain__l span { padding-block: 6px; }
.k-chain__cap { max-width: 40ch; margin: 18px auto 0; text-align: center; font: var(--it) 400 clamp(17px, 1.5vw, 20px)/1.5 var(--disp); color: rgba(250, 245, 242, .82); }
@media (max-width: 599px) { .k-chain__l { font-size: 9px; letter-spacing: .16em; max-width: 14ch; } .k-chain__l::before { height: 16px; } }
@media (min-width: 1100px) { .k-chain { grid-column: 7 / span 6; } }

/* her "How do they work?": three different drawings, each on its own ground, so the steps read at a glance
   1 paper: a cell, its receptor empty, sending out its call   2 charcoal: the chain slides into the receptor
   3 brass: the cell lit up, her four outcomes at the corners   (an arrow between them on a computer) */
.k-pw__row { display: grid; gap: 44px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 900px) { .k-pw__row { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 56px; } }
.k-pw__fig { position: relative; }
.k-pw__svg { display: block; width: 100%; height: auto; border-radius: 6px; }
.k-pw__p--1 .k-pw__svg { background: radial-gradient(70% 75% at 64% 50%, #fffdf9, #efe6da); box-shadow: inset 0 0 0 1px var(--line); }
.k-pw__p--2 .k-pw__svg { background: radial-gradient(65% 80% at 66% 45%, #3b3530, #1b1917 78%); box-shadow: 0 30px 50px -34px rgba(18, 17, 15, .6); }
.k-pw__p--3 .k-pw__svg { background: radial-gradient(62% 80% at 50% 50%, #fbf0d8, #e3c993 72%, #c9a46a); box-shadow: 0 30px 50px -34px rgba(126, 95, 48, .55); }
@media (min-width: 900px) {
  .k-pw__p:not(:last-child) .k-pw__fig::after { content: ''; position: absolute; top: 50%; right: -35px; width: 13px; height: 13px; margin-top: -7px; border-top: 1.5px solid var(--brass); border-right: 1.5px solid var(--brass); transform: rotate(45deg); }
}
.k-pw__hd { display: flex; align-items: baseline; gap: 14px; margin-top: 22px; }
.k-pw__num { flex: none; font: 400 38px/1 var(--disp); color: #a18250; } /* a step darker than the mid brass so the big numbers reach 3:1 (2026-11-06 launch checks) */
.k-pw__row h3 { margin: 0; font: 400 25px/1.2 var(--disp); }
.k-pw__d { max-width: 38ch; margin-top: 12px !important; font-size: 15px; line-height: 1.7; color: var(--mute); }
/* the cell (1 and 2), its receptor, the call it sends out, the chain docking */
.k-pw__wall { fill: none; stroke: var(--ink); stroke-width: 1.6; }
.k-pw__in { fill: #efe5d6; }
.k-pw__nuc { fill: var(--sand); stroke: rgba(18, 17, 15, .25); }
.k-pw__rec { fill: none; stroke: var(--brass); stroke-width: 3.4; stroke-linejoin: round; stroke-linecap: round; }
.k-pw__cell--b .k-pw__wall { stroke: #d9bd86; }
.k-pw__cell--b .k-pw__in { fill: #2e2a26; }
.k-pw__cell--b .k-pw__nuc { fill: #4a443d; stroke: rgba(217, 189, 134, .35); }
.k-pw__p--2 .k-pw__rec { stroke: var(--brass-l); }
.k-pw__ping path { fill: none; stroke: var(--brass); stroke-width: 2.2; stroke-linecap: round; transform-box: view-box; transform-origin: 176px 170px; animation: k-ping 2.8s ease-out infinite; }
.k-pw__ping path:nth-child(2) { animation-delay: .45s; } .k-pw__ping path:nth-child(3) { animation-delay: .9s; }
@keyframes k-ping { 0% { opacity: 1; transform: scale(.55); } 100% { opacity: .1; transform: scale(1.12); } }
.k-pw__lead { fill: none; stroke: rgba(18, 17, 15, .4); stroke-width: 1; }
.k-pw__l { font: 400 14px var(--sans); letter-spacing: .2em; text-transform: uppercase; fill: var(--mute); }
.k-pw__p--2 .k-pw__l { fill: var(--brass-l); }
.k-pw__speed line { stroke: rgba(219, 194, 147, .6); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 8 9; animation: k-speed 1.1s linear infinite; }
@keyframes k-speed { to { stroke-dashoffset: -34; } }
.k-pw__dock { animation: k-dock 4.2s cubic-bezier(.3, .7, .2, 1) infinite; }
@keyframes k-dock { 0% { transform: translateX(-48px); opacity: 0; } 12% { opacity: 1; } 40%, 100% { transform: translateX(0); opacity: 1; } }
.k-pw__dock .k-pc__b { stroke-width: 1.2; filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .45)); }
/* the cell lit up (3) */
.k-pw__lit { fill: url(#k-pw-lit); stroke: var(--ink); stroke-width: 1.6; }
.k-pw__core { fill: #a9864f; stroke: rgba(18, 17, 15, .3); }
.k-pw__glow circle { fill: none; stroke: #fffaf0; stroke-width: 2; transform-box: view-box; transform-origin: 230px 172px; animation: k-glow 3s ease-in-out infinite; }
.k-pw__glow circle:nth-child(2) { animation-delay: .7s; }
@keyframes k-glow { 0%, 100% { transform: scale(.98); opacity: .35; } 50% { transform: scale(1.03); opacity: .95; } }
.k-pw__rays line { stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; }
.k-pw__t { font: 400 19px var(--disp); fill: var(--ink); }
@media (prefers-reduced-motion: reduce) { .k-pw__ping path, .k-pw__dock, .k-pw__glow circle, .k-pw__speed line { animation: none; } }

/* your consultation: a card laid over her lounge (the picture on the right, the card over its left edge; on a phone the
   card rises over the picture's foot) */
.k-pv__in { display: grid; }
.k-pv__pic { margin: 0; overflow: hidden; border-radius: var(--r); }
.k-pv__pic img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 38%; }
.k-pv__card { position: relative; z-index: 1; margin: -70px 10px 0; padding: 32px 22px 22px; border-radius: var(--r); background: var(--card); box-shadow: 0 0 0 1px var(--line-2), 0 34px 60px -30px rgba(18, 17, 15, .45); }
.k-pv__p { margin-top: 20px !important; font-size: 16px; color: var(--mute); }
.k-pv__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.k-pv__chips li { padding: 9px 15px 8px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); font: 400 15.5px/1.25 var(--disp); }
.k-pv__tl { position: relative; margin: 32px 0 0; padding: 0 0 0 32px; list-style: none; }
.k-pv__tl::before { content: ''; position: absolute; left: 6px; top: 10px; bottom: 30px; width: 1px; background: var(--brass-m); }
.k-pv__tl li { position: relative; padding-bottom: 20px; }
.k-pv__tl li::before { content: ''; position: absolute; left: -32px; top: 7px; width: 13px; height: 13px; border: 1px solid var(--brass-m); border-radius: 50%; background: var(--card); }
.k-pv__tl li:first-child::before { background: var(--brass-m); }
.k-pv__tl h3 { margin: 0; font: 400 22px/1.3 var(--disp); }
.k-pv__tl p { max-width: 52ch; margin-top: 5px !important; font-size: 15px; line-height: 1.7; color: var(--mute); }
.k-pv__tag { display: inline-block; margin: 0 0 0 8px; padding: 6px 10px 5px; border: 1px solid var(--brass-m); border-radius: 2px; vertical-align: 3px; font: 400 9.5px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--brass); }
@media (min-width: 700px) { .k-pv__card { margin: -110px 40px 0; padding: 42px 40px 30px; } }
@media (min-width: 1100px) {
  .k-pv__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: center; }
  .k-pv__pic { grid-column: 6 / span 7; grid-row: 1; }
  .k-pv__pic img { aspect-ratio: 1 / 1.08; }
  .k-pv__card { grid-column: 1 / span 6; grid-row: 1; margin: 0; padding: 50px 48px 32px; }
}

/* ════════ wellness labs: her tips on a clipboard, on her quartz ════════ */
.k-clip { position: relative; display: grid; place-items: center; padding: clamp(34px, 5vw, 70px) clamp(16px, 4vw, 56px); border-radius: 6px;
  background: radial-gradient(60% 50% at 70% 20%, rgba(255, 255, 255, .55), transparent 70%), #ece8e2 url(/assets/img/crafted/quartz.webp) 0 0 / 300px;
  box-shadow: inset 0 0 0 1px rgba(18, 17, 15, .05); }
.k-clip__board { position: relative; width: min(100%, 520px); padding: 44px 16px 18px; border-radius: 14px; background: linear-gradient(160deg, #2c2926, #141312 70%); transform: rotate(-1.2deg);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 3px 0 #0b0a09, 0 40px 50px -26px rgba(18, 17, 15, .6); }
.k-clip__clamp { position: absolute; left: 50%; top: -12px; width: 40%; height: 44px; transform: translateX(-50%); border-radius: 8px 8px 12px 12px;
  background: linear-gradient(135deg, #efdcae 0%, #b8955c 42%, #e6cd99 58%, #9c7a44 100%); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), inset 0 -2px 0 rgba(0, 0, 0, .2), 0 8px 12px -6px rgba(0, 0, 0, .55); }
.k-clip__clamp i { position: absolute; left: 50%; top: 9px; width: 26px; height: 10px; margin-left: -13px; border-radius: 6px; background: #2a2724; box-shadow: inset 0 2px 3px rgba(0, 0, 0, .7); }
.k-slip { padding: 24px 24px 20px; border-radius: 2px; background: #fffefc; color: var(--ink); box-shadow: 0 1px 2px rgba(0, 0, 0, .3); }
.k-slip__top { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; border-bottom: 1px solid var(--ink); }
.k-slip__top .k-badge { flex: none; }
.k-slip__h { margin: 0; font: 400 22px/1.2 var(--disp); }
.k-slip__s { margin-top: 4px !important; font: 400 8.5px/1.3 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--mute); }
.k-slip__ol { margin: 0; padding: 0; list-style: none; }
.k-slip__ol li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; padding: 15px 0 13px; border-bottom: 1px solid var(--line); }
.k-slip__box { display: grid; place-items: center; width: 22px; height: 22px; margin-top: 2px; border: 1px solid rgba(18, 17, 15, .55); border-radius: 2px; }
.k-slip__box svg { width: 18px; height: 18px; fill: none; stroke: var(--brass); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 0; }
.k-clip.rv-wait .k-slip__box svg { stroke-dashoffset: 24; }
.k-clip.rv-in .k-slip__box svg { animation: k-tick .5s ease both; animation-delay: calc(.9s + var(--i, 0) * .45s); }
.k-slip__ol li:nth-child(1) .k-slip__box svg { --i: 0; } .k-slip__ol li:nth-child(2) .k-slip__box svg { --i: 1; } .k-slip__ol li:nth-child(3) .k-slip__box svg { --i: 2; } .k-slip__ol li:nth-child(4) .k-slip__box svg { --i: 3; }
@keyframes k-tick { from { stroke-dashoffset: 24; } to { stroke-dashoffset: 0; } }
.k-slip__t { margin: 0; font: 400 19px/1.25 var(--disp); }
.k-slip__ol p { margin-top: 5px !important; font-size: 14px; line-height: 1.6; color: var(--mute); }
.k-slip__note { margin-top: 16px !important; text-align: center; font: var(--it) 400 18px/1.4 var(--disp); color: var(--brass); }
@media (max-width: 599px) { .k-slip { padding: 20px 16px 16px; } .k-slip__h { font-size: 20px; } .k-slip__t { font-size: 18px; } }
@media (min-width: 1100px) { .k-clip { grid-column: 7 / span 6; } }

/* the two ways to book under the opening's buttons: the full draw (her weight-management list), single labs (the lounge's) */
.k-lb__one { max-width: 50ch; margin-top: 20px !important; font-size: 14.5px; line-height: 1.75; color: var(--mute); }
/* "Book a wellness lab draw" is wider than a 320px phone on one line: let it take two there */
@media (max-width: 400px) { .k-lb .k-cta .k-btn { white-space: normal; text-align: center; line-height: 1.5; padding: 10px 22px; } }
.k-lb__a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--brass-m); text-underline-offset: 4px; }
.k-lb__nw { white-space: nowrap; }
.k-lb__a:hover { text-decoration-color: var(--ink); }
.k-lb__a svg { display: inline-block; width: 14px; height: 14px; margin-left: 2px; vertical-align: -2px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.k-lb .k-svf dd { font-size: clamp(18px, 1.5vw, 22px); }
/* three facts on one row from 600px: the last one takes what is left and may wrap, instead of dropping to a row of its own */
@media (min-width: 600px) { .k-lb .k-svf { display: grid; grid-template-columns: auto auto minmax(0, 1fr); } }
/* her single lab draws at her Square's prices (2026-11-05): the IV menu's add-on list, narrower, under the buttons */
.k-lb__pl { max-width: 440px; margin-top: 36px; }
.k-lb__pl .k-pl__h { font-size: 21px; }
.k-lb__pl .k-lb__one { margin-top: 14px !important; }

/* real interpretation: her photo in a round brass-ringed frame, her sentence centred and large, the three things you
   leave with across the page, each with its own small drawn sign */
.k-rd__top { display: grid; justify-items: center; text-align: center; }
.k-rd__pic { width: clamp(190px, 19vw, 290px); aspect-ratio: 1; margin: 0 0 34px; padding: 7px; border-radius: 50%; background: linear-gradient(135deg, #efdcae 0%, #b8955c 42%, #e6cd99 60%, #8a6a38 100%); box-shadow: 0 34px 50px -30px rgba(18, 17, 15, .55); }
.k-rd__pic img { display: block; width: 100%; height: 100% !important; border-radius: 50%; object-fit: cover; object-position: 52% 40%; }
.k-rd__big { max-width: 27ch; margin-top: 24px !important; font: 400 clamp(23px, 2.3vw, 34px)/1.38 var(--disp); color: var(--ink-3); text-wrap: balance; }
.k-rd__row { display: grid; gap: 30px; max-width: 1100px; margin: clamp(48px, 5vw, 76px) auto 0; padding: 0; list-style: none; }
@media (min-width: 900px) { .k-rd__row { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 44px; } }
.k-rd__row li { display: grid; justify-items: center; text-align: center; padding-top: 30px; border-top: 1px solid var(--line); }
.k-rd__ic svg { display: block; width: 50px; height: 50px; fill: none; stroke: var(--brass); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.k-rd__row h3 { margin: 16px 0 0; font: 400 23px/1.25 var(--disp); }
.k-rd__row p { max-width: 30ch; margin-top: 8px !important; font-size: 15px; line-height: 1.7; color: var(--mute); }
.k-rd__foot { max-width: 60ch; margin: clamp(40px, 4vw, 56px) auto 0 !important; text-align: center; font: var(--it) 400 clamp(18px, 1.5vw, 21px)/1.5 var(--disp); color: var(--brass); }
/* her line, large, on her black */
.k-idq { background: var(--ink) !important; color: var(--paper); }
.k-idq__fig { max-width: 980px; margin: 0 auto; text-align: center; }
.k-idq__fig::before { content: '“'; display: block; font: 400 110px/.6 var(--disp); color: var(--brass-m); }
.k-idq__fig blockquote { margin: 18px 0 0; font: 400 clamp(28px, 3.4vw, 50px)/1.3 var(--disp); text-wrap: balance; }
.k-idq__fig figcaption { margin-top: 30px; font: 400 10.5px/1.4 var(--sans); letter-spacing: .28em; text-transform: uppercase; color: var(--brass-l); }

/* ════════ red light: the room lights up ════════ */
.k-rl { position: relative; overflow: hidden; padding: 0 0 clamp(70px, 8vw, 120px); transition: background-color 1.4s ease, color 1.4s ease; }
.k-rl__glow { position: absolute; inset: 0; z-index: 0; opacity: 0; pointer-events: none; transition: opacity 1.6s ease;
  background: radial-gradient(48% 62% at 74% 46%, rgba(226, 42, 28, .62), transparent 72%), radial-gradient(40% 50% at 8% 100%, rgba(150, 20, 14, .45), transparent 70%), radial-gradient(30% 40% at 96% 0%, rgba(255, 80, 60, .25), transparent 70%); }
.k-rl > .k-crumbs, .k-rl__in { position: relative; z-index: 1; }
.k-rl__in { padding-top: clamp(18px, 3vw, 44px); }
.k-rl .k-crumbs a, .k-rl .k-crumbs span, .k-rl .k-k, .k-rl .k-svh, .k-rl .k-svline, .k-rl .k-sv__p, .k-rl .k-svf dt, .k-rl .k-svf dd, .k-rl .k-link, .k-rl .k-switch, .k-rl__hint { transition: color 1.2s ease; }
.k-rl .k-svf, .k-rl .k-svf div { transition: border-color 1.2s ease; }
.k-rl__room { display: grid; justify-items: center; }
.k-rl__frame { position: relative; width: min(100%, 440px); aspect-ratio: 720 / 1010; margin: 0; overflow: hidden; border-radius: var(--r); background: #2a2420; box-shadow: 0 50px 80px -40px rgba(18, 17, 15, .6); transition: box-shadow 1.6s ease; }
.k-rl__img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.k-rl__img--on { opacity: 0; transition: opacity .35s ease; }
.k-rl__say { position: absolute; left: 0; right: 0; bottom: 0; display: grid; padding: 80px 26px 24px; background: linear-gradient(transparent, rgba(12, 10, 9, .74)); }
.k-rl__q { grid-area: 1 / 1; font: var(--it) 400 clamp(21px, 2vw, 26px)/1.3 var(--disp); color: #fff; text-wrap: balance; transition: opacity .25s ease .3s; }
.k-rl__q--on { opacity: 0; }
.k-rl__bar { display: flex; align-items: center; gap: 16px; margin-top: 22px; }
.k-rl__hint { font: 400 10px/1.4 var(--sans); letter-spacing: .24em; text-transform: uppercase; color: var(--mute); }
.k-rl__watch { border: 0; background: none; padding: 0; cursor: pointer; }
.k-rl__watch svg { width: 12px; height: 12px; fill: currentColor; stroke: none; }
/* on: the room's red spills over the whole opening */
.k-rl:has(.k-rl__room.is-on) { background-color: #170b0a !important; color: #fbeeea; }
.k-rl:has(.k-rl__room.is-on) .k-rl__glow { opacity: 1; }
.k-rl:has(.k-rl__room.is-on) .k-rl__img--on { opacity: 1; }
.k-rl:has(.k-rl__room.is-on) .k-rl__q--off { opacity: 0; transition-delay: 0s; }
.k-rl:has(.k-rl__room.is-on) .k-rl__q--on { opacity: 1; transition: opacity .5s ease .3s; }
.k-rl:has(.k-rl__room.is-on) .k-rl__frame { box-shadow: 0 0 120px -10px rgba(226, 42, 28, .55), 0 50px 80px -40px rgba(0, 0, 0, .7); }
.k-rl:has(.k-rl__room.is-on) .k-crumbs a, .k-rl:has(.k-rl__room.is-on) .k-svh, .k-rl:has(.k-rl__room.is-on) .k-svf dd, .k-rl:has(.k-rl__room.is-on) .k-link, .k-rl:has(.k-rl__room.is-on) .k-switch { color: #fbeeea; }
.k-rl:has(.k-rl__room.is-on) .k-crumbs span[aria-current], .k-rl:has(.k-rl__room.is-on) .k-k { color: #f2a48f; }
.k-rl:has(.k-rl__room.is-on) .k-crumbs__s { color: rgba(251, 238, 234, .4); }
.k-rl:has(.k-rl__room.is-on) .k-svline { color: rgba(251, 238, 234, .92); }
.k-rl:has(.k-rl__room.is-on) .k-sv__p, .k-rl:has(.k-rl__room.is-on) .k-svf dt, .k-rl:has(.k-rl__room.is-on) .k-rl__hint { color: rgba(251, 238, 234, .74); }
.k-rl:has(.k-rl__room.is-on) .k-svf, .k-rl:has(.k-rl__room.is-on) .k-svf div { border-color: rgba(251, 238, 234, .2); }
.k-rl:has(.k-rl__room.is-on) .k-svh em { background: #c42a1d; color: #fff6f2; }
.k-rl:has(.k-rl__room.is-on) .k-btn--ink { background: #fbeeea; color: var(--ink); }
/* the red light bed's "coming soon" frame (2026-11-05), in the room's light once it comes on */
.k-rl__bed { transition: background-color 1.2s ease, border-color 1.2s ease; }
.k-rl__bed .k-offer__k, .k-rl__bed .k-offer__t { transition: color 1.2s ease; }
.k-rl:has(.k-rl__room.is-on) .k-rl__bed { background: rgba(251, 238, 234, .06); border-color: rgba(242, 164, 143, .55); }
.k-rl:has(.k-rl__room.is-on) .k-rl__bed .k-offer__k { color: #f2a48f; }
.k-rl:has(.k-rl__room.is-on) .k-rl__bed .k-offer__t { color: #fbeeea; }
.k-rl:has(.k-rl__room.is-on) .k-btn--ink:hover { background: #fff; }
.k-rl .k-switch__plate i { transform: perspective(60px) rotateX(32deg) translateY(4px); transition: transform .32s cubic-bezier(.3, 1.4, .5, 1); }
.k-rl:has(.k-rl__room.is-on) .k-switch__plate i { transform: perspective(60px) rotateX(-32deg) translateY(-4px); }
.k-rl:has(.k-rl__room.is-on) .k-switch__s { color: #ff8a78; }
@media (min-width: 1100px) {
  .k-rl__room { grid-column: 8 / span 5; }
  .k-rl__bar { width: min(100%, 440px); }
}

/* red and near-infrared, on the spectrum */
.k-spec__fig { margin: 0; }
.k-spec__marks, .k-spec__axis { display: grid; grid-template-columns: 3fr 1.25fr; }
.k-spec__m { position: relative; padding-bottom: 16px; font: 400 clamp(17px, 1.6vw, 22px)/1.25 var(--disp); }
.k-spec__m::after { content: ''; position: absolute; bottom: 6px; height: 8px; border: 1px solid var(--ink); border-bottom: 0; }
.k-spec__m--red { justify-self: end; width: 26%; text-align: center; color: #9e2a1f; }
.k-spec__m--red::after { left: 0; right: 0; border-color: #9e2a1f; }
.k-spec__m--nir { text-align: center; color: var(--ink); }
.k-spec__m--nir::after { left: 0; right: 0; }
/* the band in her palette (2026-11-03: the rainbow was the only thing on the site outside it): the light you can see as
   her cream, warming through champagne into deep red where red light sits, then near-infrared in red-black past it; a
   brass hairline scale over all of it */
.k-spec__band { position: relative; display: grid; grid-template-columns: 3fr 1.25fr; height: clamp(54px, 6vw, 84px); border-radius: 4px; overflow: hidden; box-shadow: inset 0 0 0 1px var(--line), 0 30px 50px -30px rgba(18, 17, 15, .5); }
.k-spec__band::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(90deg, rgba(18, 17, 15, .1) 0 1px, transparent 1px 2.5%); -webkit-mask: linear-gradient(transparent 62%, #000 62%); mask: linear-gradient(transparent 62%, #000 62%); }
.k-spec__vis { background: linear-gradient(90deg, #fbf7f1 0%, #f1e9dd 30%, #e2d3bc 52%, #cdb48c 64%, #b98a62 70%, #a9493a 75%, #9e2a1f 83%, #7c1b14 100%); }
.k-spec__ir { position: relative; background: repeating-linear-gradient(135deg, rgba(219, 194, 147, .1) 0 2px, transparent 2px 10px), linear-gradient(90deg, #5a140f, #2c100d 55%, #161210); }
.k-spec__ir::after { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 90% at 16% 50%, rgba(158, 42, 31, .55), transparent 70%); animation: k-ir 4s ease-in-out infinite; }
@keyframes k-ir { 0%, 100% { opacity: .35; } 50% { opacity: .9; } }
/* Reduce Motion (on Ian's iPhone): the glow keeps breathing, slower; it is a fade, nothing moves (2026-11-06 launch checks: the page had frozen) */
@media (prefers-reduced-motion: reduce) { .k-spec__ir::after { animation-duration: 7s; } }
.k-spec__axis { margin-top: 14px; font: 400 10px/1.4 var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--mute); }
.k-spec__axis span { padding-right: 12px; text-align: center; }
.k-spec__cap { max-width: 52ch; margin: 38px auto 0; text-align: center; font: var(--it) 400 clamp(20px, 1.9vw, 26px)/1.5 var(--disp); color: var(--ink-3); }
@media (max-width: 599px) { .k-spec__m--red { width: 42%; } .k-spec__axis { font-size: 8.5px; letter-spacing: .14em; } }

/* how it goes with your drip, in three of her pictures */
.k-steps3__ol { display: grid; gap: 44px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 700px) { .k-steps3__ol { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; } }
.k-steps3__ol figure { margin: 0; }
.k-steps3__ol img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r); box-shadow: 0 30px 50px -36px rgba(18, 17, 15, .5); }
@media (max-width: 699px) { .k-steps3__ol img { aspect-ratio: 4 / 3; } }
.k-steps3__n { margin-top: 22px !important; font: 400 11px/1 var(--sans); letter-spacing: .26em; color: var(--brass); }
.k-steps3__ol h3 { margin: 10px 0 0; font: 400 25px/1.2 var(--disp); }
.k-steps3__ol p:last-child { max-width: 34ch; margin-top: 8px !important; font-size: 15px; line-height: 1.7; color: var(--mute); }
.k-steps3__ol p a { color: var(--ink); }

/* the private rooms, for working through it */
.k-work__in { display: grid; gap: 44px; }
.k-work__pic { margin: 0; }
.k-work__pic img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--r); box-shadow: 0 40px 60px -40px rgba(18, 17, 15, .5); }
.k-work__p { max-width: 46ch; margin-top: 22px !important; font-size: 16.5px; line-height: 1.8; color: var(--mute); }
.k-work__ul { margin: 22px 0 30px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.k-work__ul li { display: flex; align-items: baseline; gap: 14px; padding: 13px 2px; border-bottom: 1px solid var(--line); font: 400 20px/1.35 var(--disp); }
.k-work__ul li::before { content: ''; flex: none; width: 5px; height: 5px; background: var(--brass-m); transform: translateY(-3px) rotate(45deg); }
@media (min-width: 1100px) {
  .k-work__in { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 32px; align-items: center; }
  .k-work__pic { grid-column: 1 / span 5; }
  .k-work__txt { grid-column: 7 / span 6; }
}
