/* Incremental readability/layout repair: keep the approved composition. */
/* The headline already explains the action; omit redundant stage labels. */
.copy #kicker { display: none; }
.market {
  display: grid;
  grid-template-rows: minmax(58px, auto) minmax(0, 1fr);
}
.chart-label {
  position: static;
  z-index: auto;
  min-width: 0;
  padding: 14px 0 7px;
  align-self: start;
  flex-wrap: wrap;
  row-gap: 3px;
}
#chart {
  min-height: 0;
  overflow: hidden;
}

/* Strong normal-zoom repair: supporting type is ~33% larger. */
.stage{padding-left:3vw;padding-right:3vw;grid-template-rows:56px 104px minmax(250px,1fr) 282px 54px;gap:6px}
header{gap:20px}.brand{flex:0 0 auto}.scenario-tabs{display:flex;justify-content:center;gap:8px;flex:1}.scenario-tabs button{font:700 17px Roboto,Arial,sans-serif;color:#b9c6d3;background:rgba(255,255,255,.025);border:1px solid #33404e;border-radius:8px;padding:10px 14px;white-space:nowrap;cursor:pointer}.scenario-tabs button:hover{border-color:#0DCAB1;color:#fff}.scenario-tabs button.selected{color:#051710;background:#0DCAB1;border-color:#0DCAB1}.scene{flex:0 0 auto}
.copy h1 { font-size: clamp(36px, 3.2vw, 52px); }
.copy #sentence { font-size: 32px; line-height:1.18; }
.copy #kicker { font-size: 21px; }
.scene { font-size: 19px; }
.story button, .controls button { font-size: 22px; }
.chart-label span, .lane-scale, .lane-scale span:last-child { font-size: 24px; }
.chart-label strong { font-size: 46px; }
.lane{grid-template-columns:230px minmax(0,1fr) 185px;height:86px;gap:18px}
.lane-name b { font-size: 30px; }
.lane-value b { font-size: 40px; }
.lane-value small { font-size: 22px; }
.money-labels { font-size: 24px; }
.bar-track{height:25px;margin-bottom:32px}.lane-scale{margin-bottom:8px}.portfolios{padding-top:5px}

@media (max-width: 1100px) and (min-width: 601px) {
  .stage{padding-left:2vw;padding-right:2vw;grid-template-rows:52px 104px minmax(220px,1fr) 250px 52px}
  header{gap:9px}header img{width:120px}.scenario-tabs{gap:4px}.scenario-tabs button{font-size:13px;padding:8px 7px}.scene{font-size:13px}.scene span{padding:5px 7px}
  .market { grid-template-rows: minmax(52px, auto) minmax(0, 1fr); }
  .chart-label { padding-top: 10px; gap: 11px; }
  .chart-label span, .lane-scale, .lane-scale span:last-child { font-size: 18px; }
  .chart-label strong { font-size: 36px; }
  .copy h1 { font-size: 38px; }
  .copy #sentence { font-size: 25px; }
  .copy #kicker { font-size: 17px; }
  .story button, .controls button { font-size: 19px; }
  .lane{grid-template-columns:155px minmax(0,1fr) 130px;height:78px}
  .lane-name b { font-size: 23px; }
  .lane-value b { font-size: 29px; }
  .lane-value small { font-size: 17px; }
  .money-labels { font-size: 18px; }
}

/* Browser-zoom equivalent/short recording viewport: reclaim space before shrinking type. */
@media (min-width: 601px) and (max-height: 780px) {
  .stage {
    min-height: 650px;
    padding-top: 14px;
    padding-bottom: 12px;
    grid-template-rows: 48px 98px minmax(190px, 1fr) 244px 48px;
    gap: 6px;
  }
  header img { width: 144px; height: 38px; }
  .portfolios { padding-top: 8px; }
  .lane-scale { margin-bottom: 7px; }
  .lane { height: 76px; }
  .bar-track { margin-bottom: 24px; }
  .controls { padding-top: 6px; }
}

@media (max-width: 600px) {
  .stage{grid-template-rows:auto auto 300px auto 60px;padding:12px;gap:10px}
  header{display:grid;grid-template-columns:1fr auto;gap:10px}.brand{grid-column:1}.scene{grid-column:2}.scenario-tabs{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}.scenario-tabs button{font-size:15px;padding:10px 6px}
  .market {
    grid-template-rows: minmax(52px, auto) minmax(188px, 1fr);
  }
  .chart-label {
    position: static;
    padding: 8px 0 5px;
    gap: 9px;
    row-gap: 2px;
  }
  .chart-label span { font-size: 12px; }
  .chart-label strong { font-size: 24px; }
  .copy h1 { font-size: 32px; }
  .copy #sentence { font-size: 22px; }
  .copy #kicker { font-size: 16px; }
  .scene { font-size: 11px; }
  .story button, .controls button { font-size: 15px; }
  .lane{grid-template-columns:86px minmax(0,1fr) 96px;height:94px;gap:7px}
  .lane-name b { font-size: 19px; }
  .lane-value b { font-size: 24px; }
  .lane-value small { font-size: 15px; }
  .money-labels { font-size: 14px; flex-direction:column;gap:2px;white-space:normal }
  .bar-track{margin-bottom:42px}
}
