/* Keep every entry point inside the device viewport, including public landings. */
html {
  width: 100%;
  min-width: 0;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  width: 100%;
  min-width: 0;
  padding-left: max(24px, env(safe-area-inset-left, 0px));
  padding-right: max(24px, env(safe-area-inset-right, 0px));
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
body > header, body > main, body > footer {
  width: 100%;
  max-width: 1080px;
  min-width: 0;
  margin-inline: auto;
}
header, footer { flex-wrap: wrap; gap: 12px; }
h1, h2, h3, h4, p, .button, .fine { overflow-wrap: anywhere; }
.layout { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.layout > *, .view, .story-hero > *, .story-columns > *, .story-stats > *,
.peer-heading > *, .peer-facts > *, .shared-study-top > * { min-width: 0; }
input, select, textarea, .button, .table-wrap { max-width: 100%; }
.textinput, .table-wrap { min-width: 0; }
.textinput, .share-url, .option-row textarea { font-size: 16px !important; }
.table-wrap { width: 100%; }
.tracking { max-width: calc(100% - 24px); white-space: normal; text-align: center; }
.journey-head { flex-wrap: wrap; }
.landing main { padding-top: clamp(32px, 6vw, 64px); }
.landing .intro { max-width: 40ch; }
.landing .button { max-width: 440px; }
.landing .textbutton { display: inline-flex; align-items: center; }

@media (max-width: 680px) {
  body {
    padding-left: max(18px, env(safe-area-inset-left, 0px));
    padding-right: max(18px, env(safe-area-inset-right, 0px));
  }
  body > main { padding-top: 28px; }
  h1, .participant #welcome h1 {
    font-size: clamp(34px, 9vw, 52px);
    line-height: 1.08;
    letter-spacing: -1.5px;
  }
  .layout { grid-template-columns: minmax(0, 1fr); }
  .stephead { flex-wrap: wrap; }
  .participant #welcome { padding-top: 0; }
  .participant .intro { line-height: 1.55; }
  .participant .welcome-explainer { margin: 16px 0; }
  .story-hero { grid-template-columns: minmax(0, 1fr) 72px; }
  .story-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .resultactions .button { min-width: 0; }
  .testtop { gap: 12px; align-items: flex-start; }
  #countdown { flex-shrink: 0; }
  body.running #stimulus {
    height: calc(100svh - 160px - env(safe-area-inset-bottom, 0px));
    min-height: 160px;
  }
}

@media (max-width: 420px) {
  .story-stats { grid-template-columns: minmax(0, 1fr); }
  .story-stat { padding: 18px; }
  .story-stat > span, .story-stat p { font-size: 12px; }
  .story-hero { grid-template-columns: minmax(0, 1fr); }
  .story-hero img { width: 100%; height: 120px; margin-top: 0; }
  .peer-chart-row { grid-template-columns: 46px minmax(0, 1fr) 58px; gap: 6px; }
  .report-bar-head { flex-wrap: wrap; gap: 4px 12px; }
  .payoff-stages { grid-template-columns: minmax(0, 1fr); }
}
