
:root {
  --ink:#202323;
  --muted:#636969;
  --paper:#ffffff;
  --wash:#f2f0ed;
  --line:#d9d6d2;
  --red:#cf302d;
  --deep-red:#862d2a;
  --green:#2f725a;
  --olive:#6c7853;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  color:var(--ink);
  background:#e9e7e3;
  font-family:"Aptos","Helvetica Neue",system-ui,sans-serif;
  line-height:1.48;
}
a { color:var(--deep-red); text-decoration-thickness:1px; text-underline-offset:2px; }
.report-shell {
  width:min(1180px,100%);
  margin:0 auto;
  background:var(--paper);
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.screen-nav {
  position:sticky;
  top:0;
  z-index:10;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:52px;
  padding:0 24px;
  color:#fff;
  background:#242626;
  border-bottom:3px solid var(--red);
}
.screen-nav strong { font-size:15px; letter-spacing:0; }
.screen-nav div { display:flex; gap:18px; align-items:center; font-size:13px; }
.screen-nav a { color:#fff; text-decoration:none; }
.cover {
  position:relative;
  min-height:900px;
  color:#fff;
  background:#1f2222;
  overflow:hidden;
}
.cover img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.42;
  filter:grayscale(1) contrast(1.05);
}
.cover::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(25,27,27,.96) 0%,rgba(25,27,27,.82) 48%,rgba(25,27,27,.28) 100%);
}
.cover-content {
  position:relative;
  z-index:2;
  width:min(760px,82%);
  padding:92px 72px 70px;
}
.cover-mark {
  display:block;
  width:74px;
  height:7px;
  margin-bottom:48px;
  background:var(--red);
}
.cover h1 { margin:0 0 14px; font-size:55px; line-height:1.02; letter-spacing:0; }
.cover h2 { margin:0 0 42px; font-size:25px; font-weight:500; color:#e6e4df; letter-spacing:0; }
.cover-thesis { max-width:690px; font-size:20px; line-height:1.45; }
.cover-meta {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  margin:52px 0 36px;
  border-top:1px solid rgba(255,255,255,.45);
  border-bottom:1px solid rgba(255,255,255,.45);
}
.cover-meta div { padding:18px 16px 18px 0; }
.cover-meta span { display:block; color:#c8cbc8; font-size:12px; }
.cover-meta strong { display:block; margin-top:4px; font-size:23px; }
.cover-rating {
  display:inline-block;
  padding:9px 14px;
  color:#fff;
  background:var(--red);
  border-radius:4px;
  font-weight:700;
}
.cover-disclosure { margin-top:40px; max-width:660px; color:#d1d3d1; font-size:11px; }
main { padding:0 72px 80px; }
.editorial-section {
  padding:68px 0 34px;
  border-top:5px solid var(--ink);
  break-before:page;
  page-break-before:always;
}
.first-report-section { border-top:0; }
.section-header {
  display:grid;
  grid-template-columns:56px 1fr;
  gap:18px;
  margin-bottom:32px;
}
.section-header > span {
  color:var(--red);
  font-size:34px;
  font-weight:800;
  line-height:1;
}
.section-header h2 { margin:0 0 8px; font-size:34px; line-height:1.05; letter-spacing:0; }
.section-header p { margin:0; max-width:780px; color:var(--muted); font-size:16px; }
.report-block {
  margin:0 0 36px;
  break-inside:avoid;
  page-break-inside:avoid;
}
.report-block h3 {
  margin:0 0 14px;
  padding-bottom:8px;
  font-size:21px;
  line-height:1.2;
  letter-spacing:0;
  border-bottom:1px solid var(--line);
}
.report-block p { margin:0 0 13px; font-size:14px; }
.report-block > p:first-of-type:not(.source-note) { font-size:15px; }
.source-note { margin-top:12px !important; color:var(--muted); font-size:10.5px !important; }
.table-wrap { width:100%; margin:16px 0 18px; overflow-x:auto; }
table { width:100%; border-collapse:collapse; font-size:11.5px; line-height:1.32; }
th {
  padding:9px 8px;
  color:#fff;
  background:#2a2d2d;
  border:1px solid #2a2d2d;
  text-align:left;
  vertical-align:bottom;
}
td { padding:8px; border:1px solid var(--line); vertical-align:top; }
tbody tr:hover { background:#faf8f5; }
.scorecard-table th { background:var(--red); }
.scorecard-table td { font-size:15px; font-weight:650; }
.contents-table td:first-child { color:var(--red); font-weight:800; }
.valuation-table tr:nth-last-child(-n+2) td { font-weight:750; background:#f4eee9; }
.sensitivity-table td:not(:first-child) { text-align:center; }
.risk-table td:nth-child(4) { color:#9a302d; font-weight:700; }
.forecast-table td:not(:first-child) { text-align:right; }
.chart {
  margin:18px 0 24px;
  padding:14px 12px 8px;
  border:1px solid var(--line);
  background:#fff;
  break-inside:avoid;
}
.chart h4 { margin:0 0 6px; font-size:13px; }
.chart figcaption,
.editorial-image figcaption { margin-top:7px; color:var(--muted); font-size:10.5px; }
.chart-svg { display:block; width:100%; height:auto; }
.chart-svg .grid { stroke:#ddd9d5; stroke-width:1; }
.chart-svg .axis { fill:#626868; font-size:11px; }
.chart-svg .axis.small { font-size:9px; }
.chart-svg .legend { fill:#313434; font-size:11px; font-weight:650; }
.chart-svg .value { fill:#303333; font-size:10px; font-weight:700; }
.editorial-image {
  margin:18px 0 24px;
  break-inside:avoid;
}
.editorial-image img {
  display:block;
  width:100%;
  max-height:630px;
  object-fit:cover;
  border:1px solid var(--line);
}
.formula-stack {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:16px 0;
}
.formula-stack p {
  margin:0;
  padding:14px;
  background:var(--wash);
  border-left:4px solid var(--red);
  font-family:"IBM Plex Mono","SFMono-Regular",monospace;
  font-size:12px !important;
}
.report-footer {
  display:flex;
  justify-content:space-between;
  padding:18px 72px 26px;
  color:#737878;
  border-top:1px solid var(--line);
  font-size:11px;
}
@media (max-width:760px) {
  .screen-nav { position:static; align-items:flex-start; padding:14px 16px; }
  .screen-nav div { flex-wrap:wrap; justify-content:flex-end; }
  .cover { min-height:720px; }
  .cover-content { width:100%; padding:58px 24px; }
  .cover h1 { font-size:39px; }
  .cover-meta { grid-template-columns:1fr 1fr; }
  main { padding:0 20px 60px; }
  .editorial-section { padding-top:42px; }
  .section-header { grid-template-columns:42px 1fr; }
  .section-header h2 { font-size:27px; }
  .formula-stack { grid-template-columns:1fr; }
  table { min-width:700px; }
}
@media print {
  @page { size:A4; margin:13mm 12mm 15mm; }
  body { background:#fff; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .report-shell { width:100%; box-shadow:none; }
  .screen-nav { display:none; }
  .cover { height:268mm; min-height:0; break-after:page; page-break-after:always; }
  .cover-content { padding:28mm 17mm; }
  .cover h1 { font-size:42px; }
  main { padding:0; }
  .editorial-section { padding:12mm 0 4mm; }
  .first-report-section {
    break-before:auto !important;
    page-break-before:auto !important;
    border-top:0 !important;
  }
  .section-header h2 { font-size:27px; }
  .report-block { margin-bottom:9mm; }
  .report-block h3 { font-size:17px; }
  .report-block p { font-size:10.3px; line-height:1.42; }
  .report-block > p:first-of-type:not(.source-note) { font-size:10.7px; }
  table { font-size:8.4px; }
  th,td { padding:5px 5px; }
  .chart { padding:6px; }
  .chart-svg { max-height:70mm; }
  .editorial-image img { max-height:150mm; }
  .source-note,.chart figcaption,.editorial-image figcaption { font-size:7.5px !important; }
  .report-footer { display:none; }
}


.report-download {
  margin-left:6px;
  padding:6px 9px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:4px;
  font-weight:700;
}
.report-download:hover { color:#242626; background:#fff; }
@media print { .report-download { display:none; } }
