/* Value Map: an executive investment decision, not a product dashboard. */
.map-card-section {
  position: relative;
  width: 100%;
  margin-top: clamp(28px, 4vh, 48px);
  padding-bottom: clamp(22px, 4vh, 48px);
}
.map-card-section::before {
  content: "";
  position: absolute;
  width: 70%;
  height: 58%;
  left: 15%;
  bottom: 0;
  background: rgba(255,255,255,.22);
  filter: blur(70px);
  border-radius: 50%;
  pointer-events: none;
}
.mc-editorial-note {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  box-sizing: border-box;
  width: min(1120px, 100%);
  height: 52px;
  margin: 0;
  padding-left: clamp(24px, 4vw, 48px);
  display: flex;
  align-items: flex-start;
  gap: 0;
  color: rgba(255,255,255,.96);
  font-family: 'Caveat', cursive;
  line-height: 1;
  text-align: left;
  transform: translateX(-50%);
}
.mc-editorial-note strong { font-size: 27px; font-weight: 700; }
.mc-editorial-note span {
  display: inline-block;
  font-size: 26px;
  font-weight: 700;
  opacity: .96;
  transform: rotate(-1deg);
  transform-origin: left bottom;
}
.mc-note-arrow {
  width: 72px;
  height: 52px;
  margin-left: 2px;
  overflow: visible;
  align-self: center;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .78;
  transform: translateY(7px);
}
.mc-note-arrow-line { stroke-dasharray: 88; stroke-dashoffset: 88; animation: mc-note-draw 700ms ease-out 520ms forwards; }
.mc-note-arrow-tip { stroke-dasharray: 24; stroke-dashoffset: 24; animation: mc-note-draw 260ms ease-out 1080ms forwards; }
@keyframes mc-note-draw { to { stroke-dashoffset: 0; } }
.map-card {
  --mc-ink: #071829;
  --mc-copy: #5c7485;
  --mc-line: rgba(7,24,41,.11);
  --mc-blue: #00bfff;
  --mc-sans: 'IBM Plex Sans', var(--font-body);
  --mc-mono: 'IBM Plex Mono', var(--font-mono);
  position: relative;
  padding-top: 52px;
  color: var(--mc-ink);
  text-align: left;
}
.map-card-shell {
  position: relative;
  width: min(1120px, 100%);
  margin: 0 auto;
  overflow: hidden;
  background: #f7f8f7;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(4,23,48,.16), 0 2px 6px rgba(4,23,48,.06);
  opacity: 0;
  transform: translateY(22px) scale(.985);
  transition: opacity 420ms ease, transform 620ms cubic-bezier(.2,.75,.25,1);
}
.map-card.is-in .map-card-shell { opacity: 1; transform: translateY(0) scale(1); }
.map-card-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.40), rgba(228,238,243,.20));
  pointer-events: none;
}
.mc-map-body { position: relative; z-index: 1; padding: clamp(28px,4vw,48px); }
.mc-prompt {
  padding: 18px 18px 17px;
  display: grid;
  grid-template-columns: 34px minmax(0,1fr) 32px;
  align-items: end;
  gap: 14px;
  color: #183247;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(7,24,41,.12);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(7,24,41,.05);
}
.mc-prompt-avatar { width: 34px; height: 34px; display: grid; place-items: center; color: #fff; background: #071829; border-radius: 50%; font-family: var(--mc-sans); font-size: 13px; font-weight: 700; }
.mc-prompt-copy { min-width: 0; display: grid; gap: 6px; }
.mc-prompt-label { color: #2877a0; font-family: var(--mc-mono); font-size: 8px; letter-spacing: .09em; }
.mc-prompt-copy p { min-height: 2.8em; margin: 0; color: #183247; font-family: var(--mc-sans); font-size: 14px; line-height: 1.4; }
.mc-prompt-copy p.is-typing::after { content: ""; width: 1.5px; height: 1em; margin-left: 2px; display: inline-block; vertical-align: -.12em; background: #1684b5; animation: mc-caret 720ms steps(1,end) infinite; }
.mc-prompt-send { width: 32px; height: 32px; display: grid; place-items: center; color: #fff; background: #1684b5; border-radius: 50%; font-family: var(--mc-sans); font-size: 17px; transition: transform 260ms ease, background 260ms ease; }
.map-card.is-prompted .mc-prompt-send { background: #071829; transform: translateY(-1px); }
@keyframes mc-caret { 50% { opacity: 0; } }
.mc-response-head { min-height: 48px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; opacity: 0; transform: translateY(4px); transition: opacity 300ms ease, transform 360ms ease; }
.mc-response-head.is-in { opacity: 1; transform: translateY(0); }
.mc-response-head span { color: #2877a0; font-family: var(--mc-mono); font-size: 9px; letter-spacing: .08em; }
.mc-response-head p { margin: 0; color: #6f8492; font-family: var(--mc-sans); font-size: 11px; }
.mc-head {
  padding: 30px 32px 28px;
  display: block;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(7,24,41,.10);
  border-radius: 16px;
}
.mc-head-left {
  display: grid;
  align-content: center;
  justify-items: start;
}
.mc-eyebrow {
  margin-bottom: 12px;
  color: #2877a0;
  font-family: var(--mc-mono);
  font-size: 10px;
  letter-spacing: .09em;
}
.mc-head-left strong {
  color: var(--mc-ink);
  font-family: var(--mc-sans);
  font-size: clamp(28px,3.2vw,42px);
  font-weight: 600;
  line-height: 1.02;
  letter-spacing: -.035em;
}
.mc-company {
  margin-top: 12px;
  color: var(--mc-copy);
  font-family: var(--mc-mono);
  font-size: 10px;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.mc-context {
  max-width: 660px;
  margin: 16px 0 0;
  color: #496879;
  font-family: var(--mc-sans);
  font-size: 14px;
  line-height: 1.45;
}
.mc-head-right {
  min-width: 0;
  margin-top: 20px;
  padding: 24px 28px 23px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: end;
  column-gap: 0;
  background: #071829;
  border: 1px solid rgba(7,24,41,.12);
  border-radius: 14px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 420ms ease, transform 520ms cubic-bezier(.2,.75,.25,1), background 300ms ease;
}
.mc-total-label {
  grid-column: 1 / -1;
  margin-bottom: 18px;
  padding-bottom: 13px;
  color: #7ddcff;
  font-family: var(--mc-mono);
  font-size: 9px;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.mc-total {
  color: #fff;
  font-family: var(--mc-sans);
  font-size: clamp(52px,5.4vw,68px);
  font-weight: 700;
  line-height: .86;
  letter-spacing: -.055em;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
.mc-total-period { margin-left: 10px; padding-bottom: 5px; justify-self: start; color: rgba(255,255,255,.66); font-family: var(--mc-sans); font-size: 11px; font-weight: 500; }
.mc-total-context {
  grid-column: 1 / -1;
  margin-top: 18px;
  color: rgba(255,255,255,.72);
  font-family: var(--mc-sans);
  font-size: 12px;
  line-height: 1.35;
}
.mc-head-right.is-complete {
  opacity: 1;
  transform: translateY(0);
}
.mc-head-right.is-complete .mc-total { animation: mc-total-settle 320ms cubic-bezier(.2,.85,.3,1); }
@keyframes mc-total-settle {
  0% { transform: translateY(0) scale(1); }
  48% { transform: translateY(-2px) scale(1.018); }
  100% { transform: translateY(0) scale(1); }
}
.mc-columns {
  min-height: 48px;
  padding: 0 16px;
  display: grid;
  grid-template-columns: minmax(0,1fr) 120px 142px;
  align-items: center;
  gap: 18px;
  color: #7a8f9d;
  font-family: var(--mc-mono);
  font-size: 9px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.mc-columns span:nth-child(2) { text-align: right; }
.mc-columns span:nth-child(3) { text-align: right; }
.mc-rows {
  display: grid;
  gap: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(7,24,41,.10);
  border-radius: 14px;
}
.mc-row {
  position: relative;
  min-height: 72px;
  padding: 12px 14px 12px 16px;
  display: grid;
  grid-template-columns: minmax(0,1fr) 120px 142px;
  align-items: center;
  gap: 18px;
  background: #fff;
  border: 0;
  border-bottom: 1px solid rgba(7,24,41,.085);
  border-radius: 0;
  box-shadow: none;
  opacity: 0;
  transform: translateX(-12px);
  transition: opacity 360ms ease, transform 420ms cubic-bezier(.2,.75,.25,1), background 420ms ease, border-color 420ms ease, box-shadow 420ms ease;
}
.mc-row:last-child { border-bottom: 0; }
.mc-row.is-in { opacity: 1; transform: translateX(0); }
.mc-row-phrase {
  min-width: 0;
  display: grid;
  gap: 4px;
  color: #183247;
  font-family: var(--mc-sans);
}
.mc-row-phrase strong {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.mc-row-phrase small {
  color: #6f8492;
  font-size: 11px;
  font-weight: 450;
  line-height: 1.3;
}
.mc-row-value {
  color: var(--mc-ink);
  text-align: right;
  font-family: var(--mc-sans);
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums lining-nums;
}
.mc-row-value::after {
  content: " / yr";
  color: #78909f;
  font-size: .43em;
  font-weight: 500;
  letter-spacing: 0;
  white-space: nowrap;
}
.mc-row-status {
  justify-self: end;
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  padding: 6px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  color: #6f818c;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--mc-mono);
  font-size: 9px;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(5px);
  transition: opacity 220ms ease, transform 260ms ease, color 180ms ease, background-color 220ms ease, border-color 220ms ease;
}
.mc-row-status i {
  position: relative;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 1.5px solid #c8d1d6;
  border-right-color: #2b7897;
  border-radius: 50%;
  animation: mc-status-spin 720ms linear infinite;
  transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.mc-row-status i::after {
  content: "";
  position: absolute;
  display: block;
}
.mc-row-status.is-in { opacity: 1; transform: translateY(0); }
.mc-row-status.is-resolved i { animation: none; transform: scale(1.02); }
.mc-status-live.is-resolved { color: #176f9d; }
.mc-status-live i::before {
  content: "";
  position: absolute;
  inset: -4px;
  border: 1px solid rgba(22,132,181,.38);
  border-radius: 50%;
  opacity: 0;
  transform: scale(.72);
}
.mc-status-live.is-resolved i {
  background: #1684b5;
  border-color: #1684b5;
  animation: mc-live-confirm 560ms cubic-bezier(.2,.78,.25,1.12);
}
.mc-status-live i svg {
  position: absolute;
  inset: 0;
  width: 11px;
  height: 11px;
  margin: auto;
  fill: none;
  stroke: #fff;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 1;
  transform: scale(1);
}
.mc-status-live i svg path {
  stroke-dasharray: 18;
  stroke-dashoffset: 18;
  transition: stroke-dashoffset 440ms cubic-bezier(.25,.75,.3,1) 130ms;
}
.mc-status-live.is-resolved i svg path { stroke-dashoffset: 0; }
.mc-status-live.is-resolved i::before { animation: mc-live-ring 820ms ease-out 170ms both; }
.mc-status-live.is-resolved > span { animation: mc-live-label 440ms cubic-bezier(.2,.75,.3,1) 130ms both; }
@keyframes mc-live-confirm {
  0% { transform: scale(.82); box-shadow: 0 0 0 0 rgba(22,132,181,.20); }
  62% { transform: scale(1.12); box-shadow: 0 0 0 5px rgba(22,132,181,.08); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(22,132,181,0); }
}
@keyframes mc-live-ring {
  0% { opacity: .72; transform: scale(.72); }
  100% { opacity: 0; transform: scale(1.55); }
}
@keyframes mc-live-label {
  0% { opacity: 0; transform: translateY(3px); }
  100% { opacity: 1; transform: translateY(0); }
}
.mc-status-building.is-resolved { color: #2b7897; }
.mc-status-building.is-resolved i {
  border-color: rgba(43,120,151,.22);
  border-top-color: #2b7897;
  border-right-color: #2b7897;
}
.mc-status-opportunity.is-resolved {
  color: #7e6028;
  background: #fffaf0;
  border-color: #e2c991;
}
.mc-status-opportunity.is-resolved i {
  border-color: #c29548;
  background: transparent;
}
.mc-status-opportunity.is-resolved i::after {
  left: 5px;
  top: 5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c29548;
}
.mc-status-newbusiness.is-resolved {
  color: #176f9d;
  background: #eef7fb;
  border-color: #b9dbe8;
}
.mc-status-newbusiness.is-resolved i {
  border-color: #1684b5;
  border-radius: 50%;
  background: #1684b5;
  transform: none;
}
.mc-status-newbusiness i svg {
  position: absolute;
  inset: 0;
  width: 11px;
  height: 11px;
  margin: auto;
  fill: none;
  stroke: #fff;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0;
  transform: scale(.55);
  transition: opacity 180ms ease, transform 240ms cubic-bezier(.2,.9,.3,1.25);
}
.mc-status-newbusiness.is-resolved i svg {
  opacity: 1;
  transform: scale(1);
}
.mc-status-notworth.is-resolved { color: #aa4949; }
.mc-status-notworth.is-resolved i { background: #fff1f1; border-color: #d56b6b; }
.mc-status-notworth.is-resolved i::before,
.mc-status-notworth.is-resolved i::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 7px;
  width: 8px;
  height: 1.5px;
  border-radius: 1px;
  background: #c95353;
}
.mc-status-notworth.is-resolved i::before { transform: rotate(45deg); }
.mc-status-notworth.is-resolved i::after { transform: rotate(-45deg); }
@keyframes mc-status-spin { to { transform: rotate(360deg); } }
.mc-row.is-highlighted {
  background: rgba(224,241,247,.56);
  box-shadow: none;
  transform: translateX(0);
}
.mc-row.is-highlighted .mc-row-phrase, .mc-row.is-highlighted .mc-row-value { color: var(--mc-ink); }
.mc-row.is-highlighted .mc-status-newbusiness { color: #176f9d; }
.mc-row-phrase-strike > strong { position: relative; width: fit-content; }
.mc-row-phrase-strike > strong::after {
  content: "";
  position: absolute;
  left: 0;
  top: 56%;
  width: 0;
  height: 1px;
  background: #748894;
  transition: width 380ms ease;
}
.mc-row.is-struck { opacity: .56; background: rgba(240,244,246,.78); }
.mc-row.is-struck .mc-row-phrase-strike > strong::after { width: 100%; }
.mc-row.is-struck .mc-row-value { text-decoration: line-through; }
.mc-footer {
  margin-top: 20px;
  padding: 18px 3px 1px;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(300px,.82fr);
  align-items: end;
  gap: 42px;
  border-top: 1px solid var(--mc-line);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 420ms ease, transform 420ms ease;
}
.mc-footer.is-in { opacity: 1; transform: translateY(0); }
.mc-footer-summary { display: grid; gap: 5px; }
.mc-footer strong { color: var(--mc-ink); font-family: var(--mc-sans); font-size: 13px; }
.mc-footer p { margin: 0; color: #496879; font-family: var(--mc-sans); font-size: 11px; line-height: 1.45; }
.mc-fee-note { max-width: 390px; justify-self: end; text-align: right; font-weight: 500; }

@media (max-width: 760px) {
  .mc-editorial-note {
    height: 52px;
    margin: 0;
    padding-left: 16px;
    display: flex;
    align-items: flex-start;
    gap: 0;
  }
  .mc-editorial-note strong { font-size: 23px; }
  .mc-editorial-note span { font-size: 22px; }
  .mc-note-arrow {
    position: static;
    width: 58px;
    height: 52px;
    margin-left: 2px;
    transform: translateY(5px);
  }
  .map-card { padding-top: 52px; }
  .mc-map-body { padding: 28px 16px 22px; }
  .mc-prompt { grid-template-columns: 30px minmax(0,1fr) 30px; gap: 11px; padding: 15px; align-items: start; }
  .mc-prompt-avatar, .mc-prompt-send { width: 30px; height: 30px; }
  .mc-prompt-copy p { min-height: 4.2em; font-size: 13px; }
  .mc-response-head { min-height: 45px; padding: 0 8px; }
  .mc-head { padding: 25px 22px 22px; grid-template-columns: 1fr; align-items: start; gap: 22px; }
  .mc-head-left { padding-right: 0; }
  .mc-head-left strong { font-size: 34px; }
  .mc-head-right {
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
    margin-top: 16px;
    padding: 22px 20px 20px;
  }
  .mc-columns {
    min-height: 34px;
    padding: 0 10px;
    grid-template-columns: minmax(0,1fr) 92px 128px;
    gap: 10px;
    font-size: 8px;
  }
  .mc-row {
    min-height: 74px;
    grid-template-columns: minmax(0,1fr) 92px 128px;
    gap: 10px;
  }
  .mc-row-value { font-size: 20px; }
  .mc-row-status { grid-column: 3; justify-self: end; min-width: 0; width: auto; }
  .mc-footer { grid-template-columns: 1fr; align-items: start; gap: 13px; }
  .mc-fee-note { max-width: none; justify-self: start; text-align: left; }
}
@media (max-width: 480px) {
  .map-card-shell { border-radius: 17px; }
  .mc-head { padding: 23px 18px 20px; }
  .mc-prompt { grid-template-columns: 28px minmax(0,1fr); }
  .mc-prompt-avatar { width: 28px; height: 28px; }
  .mc-prompt-send { display: none; }
  .mc-prompt-copy p { min-height: 6.8em; font-size: 12.5px; }
  .mc-response-head { align-items: flex-start; flex-direction: column; justify-content: center; gap: 2px; }
  .mc-head-right { padding: 20px 18px 18px; }
  .mc-total-label { margin-bottom: 17px; padding-bottom: 13px; }
  .mc-total { font-size: 54px; }
  .mc-columns {
    grid-template-columns: minmax(0,1fr) 64px 100px;
    gap: 6px;
    font-size: 7px;
    letter-spacing: .045em;
  }
  .mc-row {
    min-height: 72px;
    padding: 10px;
    grid-template-columns: minmax(0,1fr) 64px 100px;
    gap: 6px;
  }
  .mc-row-phrase { gap: 3px; }
  .mc-row-phrase strong { font-size: 12px; line-height: 1.25; }
  .mc-row-phrase small { font-size: 8.5px; line-height: 1.22; }
  .mc-row-value { font-size: 17px; }
  .mc-row-status {
    width: auto;
    padding: 4px 5px;
    gap: 4px;
    font-size: 6.5px;
    letter-spacing: .04em;
  }
  .mc-row-status i { width: 14px; height: 14px; flex-basis: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .map-card *, .map-card-shell { animation: none !important; transition: none !important; }
}
