/*
 * Interactive CV ("Measure me differently"). Uses tokens.css + mb.css; every selector is prefixed .cv-.
 * New shapes proposed for the library are marked "LIBRARY?" below.
 */
@layer marta.tools {
  .cv-root { display: block; width: 100%; overflow-x: clip; background: var(--mb-bg); color: var(--mb-ink); }
  .cv-root :is(section, header)[id] { scroll-margin-top: 72px; }
  .cv-root [tabindex="-1"]:focus { outline: none; }
  .cv-mono-fallback { font: 900 1.4rem/1 var(--mb-font-display); color: var(--mb-thread); }
  .cv-print { display: none; }
  .cv-root [hidden] { display: none !important; }

  /* ---------- nav ---------- */
  .cv-nav .mb-nav__brand svg { width: 3rem; }
  .cv-nav__name { display: none; }
  .cv-nav .mb-nav__links a { min-height: 44px; display: flex; align-items: center; }
  @media (min-width: 640px) { .cv-nav__name { display: inline; } }
  @media (max-width: 400px) { .cv-nav .mb-nav__links a { padding-inline: .55rem; font-size: .9rem; } }

  /* ---------- hero ---------- */
  .cv-hero { position: relative; display: grid; grid-template-areas: "art" "copy";
    padding: var(--mb-space-2) var(--mb-gutter) var(--mb-space-5); }
  .cv-hero__art { grid-area: art; position: relative; height: min(56svh, 520px); min-height: 330px;
    display: flex; justify-content: center; align-items: flex-end; }
  .cv-arch { position: absolute; left: 50%; bottom: 0; translate: -50% 0; width: min(80%, 330px); height: 90%; z-index: 0;
    border-radius: var(--mb-arch); background: linear-gradient(180deg, var(--mb-pink), var(--mb-blush) 72%, var(--mb-paper)); overflow: hidden; }
  .cv-arch::after { content: ""; position: absolute; inset: 0; opacity: .32;
    background-image: radial-gradient(circle, var(--mb-hot) 30%, transparent 33%); background-size: 10px 10px;
    -webkit-mask: linear-gradient(180deg, #000, transparent 60%); mask: linear-gradient(180deg, #000, transparent 60%); }
  .cv-figure { position: relative; z-index: 2; height: 100%; aspect-ratio: 520 / 1243; transform-origin: 50% 100%;
    transform: scale(.9); transition: transform 1.5s var(--mb-ease-silk) .3s; }
  .cv-hero.is-free .cv-figure { transform: scale(1); }
  .cv-figure__img { position: relative; z-index: 1; display: block; width: 100%; height: 100%;
    filter: drop-shadow(0 26px 30px color-mix(in srgb, var(--mb-plum) 28%, transparent)); }
  .cv-coil { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
  .cv-coil--back { z-index: 0; }
  .cv-coil--front { z-index: 2; }
  /* The tape: someone else's measure. */
  .cv-tape { fill: none; stroke: var(--mb-butter); stroke-width: 15; }
  .cv-coil--back .cv-tape { stroke: var(--mb-gold-soft); }
  .cv-ticks { fill: none; stroke: var(--mb-plum); stroke-width: 6; stroke-dasharray: 1.4 6.6; opacity: .6; }
  .cv-mask { fill: none; stroke: white; stroke-width: 40; stroke-linecap: round;
    stroke-dasharray: var(--len, 2000) var(--len, 2000); stroke-dashoffset: 0;
    transition: stroke-dashoffset .55s var(--mb-ease-in) var(--d, 0s); }
  .cv-hero.is-free .cv-mask { stroke-dashoffset: var(--len, 2000); }
  /* The thread: her own. */
  .cv-loose { fill: none; stroke: var(--mb-thread); stroke-width: 9; stroke-linecap: round;
    stroke-dasharray: var(--len, 2000); stroke-dashoffset: var(--len, 2000); transition: stroke-dashoffset 1.4s var(--mb-ease-silk) 1s; }
  .cv-hero.is-free .cv-loose { stroke-dashoffset: 0; }
  .cv-figure__toggle { position: absolute; inset: 22% 6% 4%; z-index: 3; border: 0; background: none; cursor: pointer; border-radius: var(--mb-arch); }
  .cv-sticker { position: absolute; z-index: 3; top: 56%; right: max(0px, calc(50% - 195px)); font-size: var(--mb-step-0);
    transform: rotate(-8deg) scale(0); transition: transform .7s var(--mb-ease-spring) 1.5s; }
  .cv-hero.is-free .cv-sticker { transform: rotate(-8deg) scale(1); }

  .cv-hero__copy { grid-area: copy; position: relative; z-index: 3; display: flex; flex-direction: column; align-items: flex-start; }
  .cv-hero__kicker { order: 1; margin: 0 0 var(--mb-space-2); }
  .cv-hero__role, .cv-hero__line, .cv-hero__actions { order: 2; }
  .cv-name { position: relative; color: var(--mb-plum); margin: calc(var(--mb-step-6) * -.5) 0 .42em; }
  .cv-name > span:first-child { color: var(--mb-thread); }
  .cv-name__thread { position: absolute; left: -3%; bottom: -.3em; width: 106%; height: auto; aspect-ratio: 600 / 160; overflow: visible; pointer-events: none; }
  .cv-name__thread path { fill: none; stroke: var(--mb-thread); stroke-width: 5; stroke-linecap: round;
    stroke-dasharray: var(--len, 1200); stroke-dashoffset: var(--len, 1200); transition: stroke-dashoffset 1.7s var(--mb-ease-silk) 1.7s; }
  .cv-hero.is-free .cv-name__thread path { stroke-dashoffset: 0; }
  .cv-hero__role { font: 800 var(--mb-step-2)/1.06 var(--mb-font-display); letter-spacing: -.025em; max-width: 19ch; margin: 0 0 .6em; }
  .cv-hero__line { color: var(--mb-ink-soft); max-width: 40ch; }
  .cv-hero__actions { margin-top: var(--mb-space-4); }

  @media (min-width: 900px) {
    .cv-hero { grid-template-areas: "copy art"; grid-template-columns: minmax(0, 1fr) minmax(320px, 36%); align-items: center;
      min-height: calc(100svh - 64px); padding-block: var(--mb-space-3) var(--mb-space-5); }
    .cv-hero__art { height: min(84svh, 800px); }
    .cv-arch { width: 92%; height: 92%; }
    .cv-hero__copy { z-index: 1; }
    .cv-hero__kicker { order: 0; }
    .cv-name { margin-top: 0; white-space: nowrap; margin-bottom: .36em; }
    .cv-sticker { right: 2%; font-size: var(--mb-step-1); }
  }

  /* ---------- shared ---------- */
  .cv-band { margin-block: var(--mb-space-3) var(--mb-space-2); }
  .cv-h2 { font-size: var(--mb-step-4); margin-bottom: .2em; }
  .cv-sub { color: var(--mb-ink-soft); font-size: var(--mb-step-1); line-height: 1.4; max-width: 38ch; margin-bottom: var(--mb-space-5); }

  /* ---------- lens ---------- */
  .cv-lens__inner { display: grid; gap: var(--mb-space-2); }
  @media (min-width: 900px) { .cv-lens__inner { grid-template-columns: .85fr 1.15fr; gap: var(--mb-space-6); align-items: start; } }
  .cv-chips { margin-bottom: var(--mb-space-4); }
  .cv-chip { min-height: 48px; font-size: 1rem; padding-inline: 1.15em; }
  .cv-bubble .mb-bubble__text { font-size: var(--mb-step-1); line-height: 1.42; min-height: 6.4em; }
  .cv-bubble .mb-bubble__who svg { width: 86%; }

  /* ---------- game: a ticket with notches (LIBRARY? .mb-ticket) ---------- */
  .cv-game { background: var(--mb-pink); }
  .cv-game__inner { display: grid; gap: var(--mb-space-4); }
  @media (min-width: 900px) { .cv-game__inner { grid-template-columns: 1fr 1fr; align-items: center; gap: var(--mb-space-6); } }
  .cv-game__title { font-size: var(--mb-step-5); line-height: .9; color: var(--mb-plum); margin-bottom: .25em; }
  .cv-game__head .cv-sub { color: var(--mb-plum-2); margin-bottom: 0; }
  .cv-game__card { background: var(--mb-paper); border-radius: var(--mb-radius-lg); padding: clamp(1.25rem, 4vw, 2.5rem);
    -webkit-mask: radial-gradient(circle 16px at 0 50%, transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 50%, transparent 97%, #000) right / 51% 100% no-repeat;
            mask: radial-gradient(circle 16px at 0 50%, transparent 97%, #000) left / 51% 100% no-repeat, radial-gradient(circle 16px at 100% 50%, transparent 97%, #000) right / 51% 100% no-repeat; }
  .cv-game__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: var(--mb-space-3); }
  .cv-game__round { margin: 0; font-size: var(--mb-step--1); font-weight: 600; color: var(--mb-ink-soft); }
  .cv-game__q { font: 800 var(--mb-step-2)/1.12 var(--mb-font-display); letter-spacing: -.02em; min-height: 3.4em; margin: 0; }
  .cv-game__opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin: var(--mb-space-4) 0 var(--mb-space-3); }
  .cv-year { min-height: 64px; border: 2px solid var(--mb-plum); border-radius: var(--mb-radius-pill); background: transparent; color: var(--mb-plum);
    font: 900 var(--mb-step-2)/1 var(--mb-font-display); letter-spacing: -.03em; cursor: pointer;
    transition: transform var(--mb-dur-2) var(--mb-ease-spring), background var(--mb-dur-2), color var(--mb-dur-2), opacity var(--mb-dur-2); }
  .cv-year:hover { transform: translateY(-2px); background: var(--mb-blush); }
  .cv-year:active { transform: scale(.96); }
  .cv-year[aria-disabled="true"] { cursor: default; transform: none; }
  .cv-year[aria-disabled="true"]:not(.is-right) { background: transparent; }
  .cv-year.is-right { background: var(--mb-thread); border-color: var(--mb-thread); color: var(--mb-on-accent); }
  .cv-year.is-wrong { opacity: .55; text-decoration: line-through 3px var(--mb-thread); }
  .cv-game__fb { min-height: 3em; font-weight: 600; margin-bottom: var(--mb-space-3); }

  /* ---------- path: one thread, many knots (LIBRARY? .mb-timeline--knots) ---------- */
  .cv-path-grid { display: grid; gap: 0; }
  @media (min-width: 900px) {
    .cv-path-grid { grid-template-columns: .8fr 1.2fr; gap: var(--mb-space-6); }
    .cv-path-head { position: sticky; top: 104px; align-self: start; }
  }
  .cv-path { --col: 4.4rem; list-style: none; margin: 0; padding: 0; position: relative; }
  .cv-path::before { content: ""; position: absolute; left: calc(var(--col) + .9rem + 11px); top: 1.2rem; bottom: 1.2rem; width: 4px; border-radius: 4px;
    background: linear-gradient(var(--mb-thread) var(--mb-progress, 0%), var(--mb-line) 0); }
  .cv-knot__btn { display: grid; grid-template-columns: var(--col) 26px 1fr; gap: .9rem; align-items: center; width: 100%; min-height: 52px;
    padding: .6rem 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
  .cv-knot__year { font: 800 var(--mb-step-1)/1 var(--mb-font-display); letter-spacing: -.02em; color: var(--mb-thread); text-align: right; }
  .cv-knot__mark { position: relative; z-index: 1; width: 26px; height: 26px; border-radius: 50%; background: var(--mb-bg); display: grid; place-items: center;
    transition: background var(--mb-dur-3) var(--mb-ease-out), transform var(--mb-dur-3) var(--mb-ease-spring); }
  .cv-knot__mark svg { width: 22px; height: 22px; overflow: visible; }
  .cv-knot__mark path { fill: none; stroke: var(--mb-thread); stroke-width: 2.6; stroke-linecap: round; stroke-dasharray: 46; stroke-dashoffset: 0; transition: stroke-dashoffset .9s var(--mb-ease-silk), stroke var(--mb-dur-2); }
  .mb-js .cv-knot:not(.is-in) .cv-knot__mark path { stroke-dashoffset: 46; }
  .cv-knot__title { font: 700 var(--mb-step-0)/1.25 var(--mb-font-display); letter-spacing: -.01em; transition: color var(--mb-dur-2), opacity var(--mb-dur-3); }
  .cv-knot__year { transition: opacity var(--mb-dur-3); }
  .cv-knot__btn:hover .cv-knot__title { color: var(--mb-thread); }
  .cv-knot__btn:hover .cv-knot__mark { transform: scale(1.2) rotate(-12deg); }
  .cv-knot.is-open .cv-knot__mark { background: var(--mb-thread); transform: scale(1.15); }
  .cv-knot.is-open .cv-knot__mark path { stroke: var(--mb-on-accent); }
  .cv-knot__body { padding: 0 0 1.1rem calc(var(--col) + 26px + 1.8rem); }
  .cv-knot__body p { color: var(--mb-ink-soft); margin-bottom: .4rem; }
  .cv-knot__src { font-size: var(--mb-step--1); }
  .cv-knot.is-dim .cv-knot__title, .cv-knot.is-dim .cv-knot__year { opacity: .36; }
  .cv-root:not([data-lens=""]) .cv-knot:not(.is-dim) .cv-knot__mark { background: var(--mb-pink); }

  /* ---------- proof posters ---------- */
  .cv-proof__title { font-size: var(--mb-step-5); margin-bottom: .2em; }
  .cv-posters { display: grid; gap: var(--mb-space-3); grid-template-columns: 1fr; }
  @media (min-width: 700px) { .cv-posters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1080px) { .cv-posters { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cv-poster:first-child { grid-column: span 2; grid-row: span 2; } }
  .cv-poster { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: .5rem; min-height: 16rem;
    padding: clamp(1.25rem, 3vw, 2rem); border-radius: var(--mb-radius-lg); background: var(--mb-surface); }
  .cv-poster__num { position: relative; z-index: 1; margin: 0; font: 900 var(--mb-step-5)/.85 var(--mb-font-display); letter-spacing: var(--mb-track-poster); }
  .cv-poster__text { position: relative; z-index: 1; margin: 0 0 var(--mb-space-3); font: 700 var(--mb-step-1)/1.22 var(--mb-font-display); letter-spacing: -.015em; max-width: 22ch; }
  @media (min-width: 1080px) { .cv-poster:first-child .cv-poster__num { font-size: var(--mb-step-6); } .cv-poster:first-child .cv-poster__text { font-size: var(--mb-step-2); } }

  .cv-poster--hot { background: var(--mb-hot); color: var(--mb-plum); }
  .cv-poster__halo { position: absolute; right: -12%; bottom: -24%; width: 72%; aspect-ratio: 1; border-radius: 50%; --dot: var(--mb-plum); opacity: .2; }
  .cv-poster--outline { background: var(--mb-paper); box-shadow: inset 0 0 0 2px var(--mb-plum); }
  .cv-poster--outline .cv-poster__num { color: transparent; -webkit-text-stroke: 2px var(--mb-plum); }
  .cv-ruler { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-start; height: 2.6rem; padding: 0 .7rem; border-radius: 6px; background: var(--mb-butter); }
  .cv-ruler i { width: 2px; height: 38%; background: var(--mb-plum); }
  .cv-ruler i.is-major { height: 72%; }
  .cv-poster--languages { background: var(--mb-lavender); color: var(--mb-plum); }
  .cv-langs { gap: .4rem; margin-top: auto; }
  .cv-langs .mb-pillbar { --bar: var(--mb-plum); grid-template-columns: minmax(7.5rem, 42%) 1fr; color: var(--mb-plum); }
  .cv-langs .mb-pillbar__label { font-weight: 700; }
  .cv-langs .mb-pillbar__label small { display: block; color: var(--mb-plum-2); font-weight: 500; font-size: .78rem; }
  .cv-langs .mb-pillbar__track { height: 1.1rem; background: color-mix(in srgb, var(--mb-paper) 55%, transparent); }
  .cv-langs .mb-pillbar__fill { min-width: 1.1rem; padding: 0; }
  .mb-js .cv-langs.mb-pillbars:not(.is-in) .mb-pillbar__fill { width: 1.1rem; }
  .cv-poster--dots { background: var(--mb-plum); color: var(--mb-paper); }
  .cv-dots { margin-top: auto; display: grid; grid-template-columns: repeat(8, 1fr); gap: .55rem; max-width: 22rem; }
  .cv-dots i { aspect-ratio: 1; border-radius: 50%; background: color-mix(in srgb, var(--mb-pink) 42%, transparent); }
  .cv-dots i.is-her { background: var(--mb-pink); box-shadow: 0 0 0 3px var(--mb-plum), 0 0 0 6px var(--mb-thread); }
  .cv-poster--red { background: var(--mb-thread); color: var(--mb-on-accent); }
  .cv-spines { margin-top: auto; display: flex; align-items: flex-end; gap: 5px; height: 4.2rem; }
  .cv-spines i { flex: 1; height: 70%; border-radius: 3px 3px 0 0; background: var(--mb-pink); }
  .cv-spines i:nth-child(3n) { height: 88%; } .cv-spines i:nth-child(3n + 1) { height: 62%; background: var(--mb-blush); }
  .cv-poster--lavender { background: var(--mb-lilac); color: var(--mb-plum); }
  .cv-streak { margin-top: auto; display: grid; grid-template-columns: repeat(10, 1fr); gap: 6px; max-width: 20rem; }
  .cv-streak i { aspect-ratio: 1; border-radius: 50%; background: var(--mb-violet); }
  .cv-note { margin-top: var(--mb-space-3); font-size: var(--mb-step--1); color: var(--mb-ink-soft); }

  /* ---------- work and ventures ---------- */
  .cv-works { display: grid; gap: var(--mb-space-3); grid-template-columns: 1fr; grid-auto-flow: dense; }
  @media (min-width: 700px) { .cv-works { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cv-work--arch { grid-row: span 2; } .cv-work--tape, .cv-work--hem { grid-column: span 2; } }
  @media (min-width: 1080px) { .cv-works { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cv-work--tape, .cv-work--hem { grid-column: auto; } }
  .cv-work { display: flex; flex-direction: column; gap: .2rem; }
  .cv-work__meta { margin: 0; font: 600 var(--mb-step--1)/1.3 var(--mb-font-text); color: var(--mb-ink-soft); }
  .cv-work__t { font-size: var(--mb-step-3); margin: 0 0 .25em; }
  .cv-work__d { margin: 0 0 1rem; }
  .cv-work__link { margin-top: auto; align-self: flex-start; }
  .cv-work--arch { background: var(--mb-hot); color: var(--mb-plum); min-height: 27rem; justify-content: flex-end; padding-top: clamp(5rem, 12vw, 8rem); }
  .cv-work--arch .cv-work__meta { color: var(--mb-plum); }
  .cv-work--arch .cv-work__t { font-size: var(--mb-step-4); }
  .cv-work--rosette { background: var(--mb-lilac); box-shadow: none; }
  .cv-work__badge { --size: 7.2rem; --rosette-bg: var(--mb-violet); align-self: flex-end; margin: -.4rem -.4rem -1.6rem 0; font-size: .82rem; line-height: 1.15; }
  .cv-work--tape { background: var(--mb-paper); box-shadow: inset 0 0 0 2px var(--mb-line); }
  .cv-tapeline { list-style: none; margin: 0; padding: 1.5rem .9rem .8rem; display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; border-radius: 6px;
    background: repeating-linear-gradient(90deg, var(--mb-plum) 0 1.5px, transparent 1.5px 12px) 0 0 / 100% 9px no-repeat, var(--mb-butter); }
  .cv-tapeline li { font: 700 var(--mb-step-0)/1.3 var(--mb-font-display); color: var(--mb-plum); }
  .cv-work--stage .cv-work__t { color: var(--mb-gold-soft); }
  .cv-work--stage .cv-work__meta { color: var(--mb-ink-soft); }
  .cv-work__knot { width: 9rem; height: auto; overflow: visible; margin-bottom: .5rem; }
  .cv-work__knot path { fill: none; stroke: var(--mb-accent); stroke-width: 6; stroke-linecap: round; }
  .cv-work--hem { padding-bottom: 3rem; }

  /* ---------- papers: sheets with a folded corner (LIBRARY? .mb-sheet) ---------- */
  .cv-papers { background: var(--mb-bg); }
  .cv-sheets { display: grid; gap: var(--mb-space-3); grid-template-columns: 1fr; }
  @media (min-width: 700px) { .cv-sheets { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 1080px) { .cv-sheets { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  .cv-sheet { --sheet: var(--mb-surface); --fold: 2.4rem; position: relative; display: flex; flex-direction: column; gap: .7rem; min-height: 17rem;
    padding: 1.4rem 1.4rem 1.3rem; border-radius: 6px var(--mb-radius) var(--mb-radius) var(--mb-radius); background: var(--sheet); color: var(--mb-plum); text-decoration: none;
    clip-path: polygon(0 0, calc(100% - var(--fold)) 0, 100% var(--fold), 100% 100%, 0 100%);
    transition: transform var(--mb-dur-3) var(--mb-ease-spring); }
  .cv-sheet::after { content: ""; position: absolute; top: 0; right: 0; width: var(--fold); height: var(--fold);
    background: linear-gradient(225deg, transparent 50%, color-mix(in srgb, var(--mb-plum) 22%, var(--sheet)) 50%); border-radius: 0 0 0 8px; }
  .cv-sheet:hover { transform: translateY(-5px) rotate(-.8deg); color: var(--mb-plum); }
  .cv-sheet--baby { --sheet: var(--mb-blush); }
  .cv-sheet--solidarity { --sheet: var(--mb-lilac); }
  .cv-sheet--book { --sheet: var(--mb-plum); color: var(--mb-paper); }
  .cv-sheet--book:hover { color: var(--mb-paper); }
  .cv-sheet--unbound { --sheet: var(--mb-gold-soft); }
  .cv-sheet__tag { align-self: flex-start; padding: .4em .75em; border-radius: var(--mb-radius-pill); background: color-mix(in srgb, currentColor 12%, transparent); font: 700 var(--mb-step--1)/1 var(--mb-font-text); }
  .cv-sheet__t { font: 900 var(--mb-step-2)/1.02 var(--mb-font-display); letter-spacing: -.03em; text-wrap: balance; }
  .cv-sheet__d { opacity: .86; }
  .cv-sheet__go { margin-top: auto; align-self: flex-start; font-weight: 700; background: linear-gradient(var(--mb-thread), var(--mb-thread)) 0 100% / 0 2px no-repeat; padding-bottom: 2px;
    transition: background-size var(--mb-dur-3) var(--mb-ease-silk); }
  .cv-sheet:hover .cv-sheet__go { background-size: 100% 2px; }
  .cv-sheet--book .cv-sheet__go { background-image: linear-gradient(var(--mb-pink), var(--mb-pink)); }
  .cv-writing__h { margin-top: var(--mb-space-6); }
  .cv-writing { list-style: none; margin: 0; padding: 0; border-top: 1.5px solid var(--mb-line); }
  .cv-writing li { display: grid; grid-template-columns: 3.6rem 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1.5px solid var(--mb-line); }
  .cv-writing small { display: block; margin-top: .3rem; }
  .cv-writing__y { font: 800 var(--mb-step-1)/1.2 var(--mb-font-display); color: var(--mb-violet); }

  /* ---------- invite ---------- */
  .cv-invite { overflow: hidden; }
  .cv-invite .mb-wrap { position: relative; }
  .cv-invite__title { font-size: var(--mb-step-5); margin-bottom: .35em; }
  .cv-invite__mono { display: none; }
  @media (min-width: 900px) {
    .cv-invite__mono { display: block; position: absolute; right: -2%; top: 50%; width: min(44%, 560px); translate: 0 -50%; pointer-events: none; }
    .cv-invite__mono svg { width: 100%; height: auto; display: block; }
  }
  .cv-invite__sub { color: inherit; margin-bottom: var(--mb-space-4); }
  .cv-btn-paper { --b-bg: var(--mb-paper); --b-fg: var(--mb-thread); }
  .cv-btn-paper::after { background: var(--mb-thread); }
  .cv-btn-line { --b-fg: var(--mb-on-accent); box-shadow: inset 0 0 0 2px currentColor; }
  .cv-btn-line:hover { --b-bg: color-mix(in srgb, var(--mb-plum) 30%, transparent); }

  /* ---------- footer ---------- */
  .cv-footer { background: var(--mb-plum); color: var(--mb-paper); padding-block: var(--mb-space-5); }
  .cv-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; }
  .cv-footer__inner p { margin: 0; }
  .cv-footer__mono svg { width: 4.4rem; display: block; }
  .cv-footer a { color: inherit; }
  .cv-invite__mono path, .cv-footer__mono path { stroke: var(--mb-pink); }

  /* ---------- view transitions when the lens re-orders the page ---------- */
  ::view-transition-group(*) { animation-duration: .55s; animation-timing-function: var(--mb-ease-silk); }

  /* ---------- one-page CV (print) ---------- */
  @media print {
    @page { margin: 14mm; }
    .cv-root > :not(.cv-print), .mb-cursor-canvas, .mb-toast, #wpadminbar { display: none !important; }
    .cv-root { background: none; }
    .cv-print { display: block; color: var(--mb-plum); font: 9.5pt/1.4 var(--mb-font-text); }
    .cv-print h1 { font: 900 28pt/1 var(--mb-font-display); letter-spacing: -.03em; margin: 0 0 3pt; }
    .cv-print__role { font: 700 12pt/1.2 var(--mb-font-display); color: var(--mb-thread); margin: 0 0 6pt; }
    .cv-print p { max-width: none; margin: 0 0 4pt; }
    .cv-print h2 { font: 800 10.5pt/1.2 var(--mb-font-display); margin: 9pt 0 3pt; padding-bottom: 2pt; border-bottom: 1.5pt solid var(--mb-thread); }
    .cv-print__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16pt; }
    .cv-print ul { margin: 0; padding-left: 1em; }
    .cv-print li { margin: 0 0 2pt; }
    .cv-print__contact { margin-top: 10pt; font-weight: 700; }
  }
}
