/* A visible model comparison, with a finite trace over unchanged geometry. */
.landing-study .prediction-section {
  --prediction-accent:var(--chart-primary); --prediction-soft:var(--chart-primary-soft); --prediction-measured:var(--ink);
  --prediction-baseline:var(--chart-secondary); --prediction-surface:var(--paper);
  display:block; padding-block:56px 48px; border-top:1px solid var(--line); border-image:var(--chapter-rule) 1;
  scroll-margin-top:24px;
}

.prediction-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:end; margin-bottom:32px; }
.prediction-heading .eyebrow { margin-bottom:18px; }
.prediction-heading > p { max-width:370px; font-size:14px; line-height:1.85; color:var(--muted); }
.prediction-study { margin:0; }
.prediction-stage { display:grid; grid-template-columns:minmax(0,1fr) 238px; gap:64px; align-items:center; padding:20px 0 40px; }
.prediction-chart { min-width:0; }
.prediction-chart-title { display:flex; justify-content:space-between; gap:16px; align-items:baseline; font-size:12px; }
.prediction-chart-title > span:last-child { color:var(--muted); font-size:10px; }
.prediction-comparison { display:block; width:100%; height:auto; margin-top:28px; overflow:visible; font-family:inherit; }
.prediction-comparison text { fill:var(--muted); font-size:10px; }
.prediction-comparison line,.prediction-comparison circle { vector-effect:non-scaling-stroke; }
.prediction-comparison-reference line { stroke:var(--ink); stroke-width:1; stroke-opacity:.35; stroke-dasharray:2 4; }
.prediction-comparison-reference text { fill:var(--ink); font-size:10px; }
.prediction-comparison-row { --estimate-color:var(--prediction-accent); }
.prediction-comparison-linear { --estimate-color:var(--prediction-baseline); }
.prediction-comparison .prediction-comparison-label { fill:var(--ink); font-size:12px; }
.prediction-comparison-track { stroke:var(--line); stroke-width:1; }
.prediction-comparison-distance { stroke:var(--estimate-color); stroke-width:2; stroke-opacity:.7; }
.prediction-comparison-estimate { fill:var(--prediction-surface); stroke:var(--estimate-color); stroke-width:2.2; transform-box:fill-box; transform-origin:center; }
.prediction-comparison-cap { stroke:var(--estimate-color); stroke-width:1.3; }
.prediction-comparison .prediction-comparison-difference { font-size:10px; }
.prediction-comparison-axis line { stroke:var(--line); }
.prediction-detail-curve { max-width:880px; margin:24px auto 32px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.prediction-detail-curve h3 { font-size:17px; font-weight:400; letter-spacing:-.02em; margin-bottom:24px; }
.prediction-plot { display:block; width:100%; height:auto; overflow:visible; margin-top:24px; font-family:inherit; }
.prediction-plot text { fill:var(--muted); font-size:11px; }
.prediction-plot path,.prediction-plot line,.prediction-plot circle { vector-effect:non-scaling-stroke; }
.prediction-grid line { stroke:var(--line); stroke-width:.6; opacity:.75; }
.prediction-grid text { font-variant-numeric:tabular-nums; }
.prediction-plot .prediction-target-label { fill:var(--ink); font-size:11px; }
.prediction-target-guide { stroke:var(--prediction-accent); stroke-opacity:.26; stroke-dasharray:2 5; }
.prediction-curve-field { fill:var(--prediction-soft); stroke:none; opacity:.45; }
.prediction-curve { fill:none; stroke:var(--prediction-accent); stroke-width:2.4; stroke-linecap:round; }
.prediction-linear { fill:none; stroke:var(--prediction-baseline); stroke-width:1.6; stroke-dasharray:4 5; }
.prediction-observations { fill:var(--prediction-surface); stroke:var(--prediction-measured); stroke-width:1.35; }
.prediction-estimates circle { fill:var(--prediction-surface); stroke-width:2; }
.prediction-estimate-curve { stroke:var(--prediction-accent); }
.prediction-estimate-linear { stroke:var(--prediction-baseline); }
.prediction-revealed-point { fill:var(--prediction-measured); stroke:var(--prediction-measured); stroke-width:1; }
.prediction-revealed-point .prediction-measured-halo { fill:var(--prediction-soft); stroke:var(--prediction-accent); stroke-opacity:.24; stroke-width:.8; transform-box:fill-box; transform-origin:center; }
.prediction-revealed-point text { fill:var(--prediction-measured); stroke:none; font-weight:500; }
.prediction-ticks line { stroke:var(--line); }
.prediction-legend { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 20px; list-style:none; padding:0; margin:20px 0 0; font-size:10px; color:var(--muted); }
.prediction-legend li { display:flex; align-items:center; gap:7px; }
.prediction-legend i { display:block; width:20px; }
.prediction-legend .prediction-key-point { width:6px; height:6px; border:1px solid var(--prediction-measured); border-radius:50%; margin-inline:7px 8px; }
.prediction-key-curve { border-top:2px solid var(--prediction-accent); }
.prediction-key-linear { border-top:1.5px dashed var(--prediction-baseline); }
.prediction-reading { padding-left:0; }
.prediction-reading-label { font-size:18px; letter-spacing:-.025em; }
.prediction-reading-intro { font-size:11px; line-height:1.75; color:var(--muted); margin-top:8px; }
.prediction-values { margin:24px 0 20px; color:var(--ink); }
.prediction-values > div { display:flex; gap:14px; align-items:baseline; justify-content:space-between; min-width:0; }
.prediction-values dt { font-size:11px; line-height:1.5; color:var(--muted); }
.prediction-values dt::before { content:''; display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--prediction-measured); margin-right:7px; vertical-align:1px; }
.prediction-value-curve dt::before { background:var(--prediction-accent); }
.prediction-value-linear dt::before { background:var(--prediction-baseline); }
.prediction-values dd { position:relative; margin:0; font-size:28px; line-height:1.15; letter-spacing:-.045em; font-variant-numeric:tabular-nums; }
.prediction-values :is(.prediction-value-curve,.prediction-value-measured) { display:block; margin:0; }
.prediction-values .prediction-value-measured { margin-top:22px; }
.prediction-values :is(.prediction-value-curve,.prediction-value-measured) dd { font-size:52px; margin-top:7px; letter-spacing:-.06em; }
.prediction-values .prediction-value-linear { border-top:1px solid var(--line); margin-top:22px; padding-top:18px; }
.prediction-measured-value { display:inline-block; }
/* One closing block keeps the result, its scope and source together. */
.prediction-conclusion { display:grid; grid-template-columns:minmax(0,1fr) 238px; column-gap:64px; row-gap:8px; border-top:1px solid var(--line); padding-top:26px; }
.prediction-takeaway { grid-column:1; grid-row:1 / span 2; display:flex; align-items:center; gap:25px; align-self:center; }
.prediction-takeaway strong { font-size:64px; line-height:1; letter-spacing:-.055em; font-weight:400; font-variant-numeric:tabular-nums; white-space:nowrap; }
.prediction-takeaway strong span { font-size:31px; margin-left:2px; color:var(--muted); }
.prediction-takeaway div > p:first-child { font-size:17px; letter-spacing:-.025em; }
.prediction-takeaway div > p:last-child { margin-top:7px; font-size:11px; line-height:1.75; color:var(--muted); max-width:290px; }
.prediction-caption { grid-column:2; grid-row:1; font-size:11px; line-height:1.8; color:var(--muted); }
.prediction-caption a { color:var(--ink); text-underline-offset:3px; }
.prediction-caption > span { display:block; margin-top:5px; }
.prediction-methods { grid-column:2; grid-row:2; margin:0; padding-top:0; }
.prediction-methods summary { min-height:32px; display:flex; align-items:center; font-size:11px; }
.prediction-conclusion .prediction-methods[open] { grid-column:1/-1; grid-row:3; margin-top:12px; }
.landing-study .prediction-mobile { display:none; }
@media (max-width:1100px) {
  .prediction-stage { gap:40px; grid-template-columns:minmax(0,1fr) 215px; }
  .prediction-heading { gap:40px; }
  .prediction-conclusion { grid-template-columns:minmax(0,1fr) 215px; column-gap:40px; }
}
@media (max-width:850px) {
  .prediction-stage { grid-template-columns:1fr; gap:30px; }
  .prediction-reading { padding:25px 0 0; border-top:1px solid var(--line); }
  .prediction-reading-intro { margin-top:5px; }
  .prediction-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 24px; margin:22px 0 0; }
  .prediction-values :is(.prediction-value-curve,.prediction-value-measured) { margin:0; }
  .prediction-values :is(.prediction-value-curve,.prediction-value-measured) dt { min-height:1.5em; }
  .prediction-values :is(.prediction-value-curve,.prediction-value-measured) dd { font-size:38px; margin-top:8px; }
  .prediction-values .prediction-value-linear { grid-column:1/-1; margin:0; padding-top:15px; }
  .prediction-values .prediction-value-linear dd { font-size:26px; }
}
@media (max-width:600px) {
  .landing-study .prediction-section { padding-block:44px; }
  .prediction-heading { grid-template-columns:1fr; gap:18px; margin-bottom:28px; }
  .prediction-heading > p { max-width:400px; font-size:13px; }
  .prediction-heading > p br { display:none; }
  .prediction-stage { padding:8px 0 20px; gap:25px; }
  .prediction-chart-title { font-size:11px; gap:10px; }
  .prediction-chart-title > span:last-child { font-size:9px; }
  .prediction-plot { margin-top:24px; }
  .prediction-comparison { margin-top:24px; }
  .prediction-comparison .prediction-comparison-label { font-size:11px; }
  .landing-study .prediction-desktop { display:none; }
  .landing-study .prediction-mobile { display:block; }
  .prediction-plot text { font-size:10px; }
  .prediction-plot .prediction-target-label { font-size:10px; }
  .prediction-plot .prediction-axis-label { font-size:10px; }
  .prediction-revealed-point text { font-size:10px; }
  .prediction-legend { gap:10px 12px; justify-content:flex-start; font-size:9px; margin-top:18px; }
  .prediction-reading-label { font-size:15px; }
  .prediction-values { gap:18px 20px; }
  .prediction-values dt { font-size:10px; }
  .prediction-values :is(.prediction-value-curve,.prediction-value-measured) dt { min-height:3em; }
  .prediction-values :is(.prediction-value-curve,.prediction-value-measured) dd { font-size:38px; margin-top:4px; }
  .prediction-values .prediction-value-linear { padding-top:13px; }
  .prediction-values .prediction-value-linear dd { font-size:25px; }
  .prediction-conclusion { grid-template-columns:88px minmax(0,1fr); column-gap:20px; row-gap:0; padding-top:24px; }
  .prediction-takeaway { display:contents; }
  .prediction-takeaway > div { grid-column:2; grid-row:1; }
  .prediction-takeaway div > p:first-child { font-size:15px; }
  .prediction-takeaway strong { grid-column:1; grid-row:1; font-size:54px; align-self:start; }
  .prediction-takeaway strong span { font-size:26px; }
  .prediction-takeaway div > p:last-child { font-size:10px; margin-top:6px; }
  .prediction-takeaway div > p:last-child br { display:none; }
  .prediction-caption { grid-column:2; grid-row:2; margin-top:14px; }
  .prediction-methods { grid-column:2; grid-row:3; margin-top:6px; }
  .prediction-conclusion .prediction-methods[open] { grid-column:1/-1; grid-row:3; margin-top:10px; }
}
@media (forced-colors:active) { .prediction-section { --prediction-accent:CanvasText!important; --prediction-measured:CanvasText!important; --prediction-baseline:CanvasText!important; --prediction-surface:Canvas!important; } }
