:root{
  --bg:#ffffff;
  --surface:#fbfbfa;
  --surface-2:#f6f5f3;
  --border:#ececea;
  --border-strong:#e1e0dd;
  --text:#23211e;
  --text-2:#5b5955;
  --text-3:#928f8a;
  --red:#ce1f2d;
  --red-dark:#a3141f;
  --red-tint:#fceced;
  --red-tint-2:#f6d8db;
  --radius:4px;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  background:var(--bg);
  color:var(--text);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
}

.topbar{height:3px;background:var(--red)}
.wrap{max-width:960px;margin:0 auto;padding:0 28px 96px}

/* ---------- header ---------- */
.page-header{padding:56px 0 8px}
.eyebrow{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--red);font-weight:600;display:flex;align-items:center;gap:9px;margin-bottom:18px
}
.eyebrow .sep{color:var(--text-3)}
.eyebrow .muted{color:var(--text-3);font-weight:500}
.page-header h1{font-size:clamp(30px,5vw,42px);font-weight:800;letter-spacing:-.02em;line-height:1.08}
.page-header h1 .accent{color:var(--red)}
.subtitle{color:var(--text-2);font-size:16px;margin-top:12px;max-width:560px}

.rule{height:1px;background:var(--border);margin:36px 0}

/* ---------- reports grid ---------- */
.grid-head{display:flex;align-items:baseline;gap:12px;margin-bottom:22px}
.grid-head .sec-num{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--red)}
.grid-head h2{font-size:21px;font-weight:700;letter-spacing:-.01em}
.grid-head .count{font-size:13px;color:var(--text-3);margin-left:auto;font-family:var(--mono)}

.report-grid{
  list-style:none;display:grid;gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr))
}

.report-card{
  position:relative;display:flex;flex-direction:column;height:100%;
  background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--red);
  border-radius:var(--radius);padding:22px 24px;text-decoration:none;color:inherit;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease
}
.report-card:hover{
  border-color:var(--border-strong);border-left-color:var(--red);
  box-shadow:0 6px 20px rgba(35,33,30,.08);transform:translateY(-2px)
}

.report-card .rc-period{
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;
  color:var(--red);text-transform:uppercase;margin-bottom:10px
}
.report-card h3{font-size:18px;font-weight:700;letter-spacing:-.01em}
.report-card .rc-desc{color:var(--text-2);font-size:14px;margin-top:8px;flex:1}

.report-card .rc-foot{
  display:flex;align-items:center;gap:8px;margin-top:18px;
  font-family:var(--mono);font-size:11.5px;color:var(--text-3)
}
.report-card .status{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--red-tint);border:1px solid var(--red-tint-2);color:var(--red-dark);
  border-radius:3px;padding:4px 9px;font-weight:600
}
.report-card .status .dot{width:6px;height:6px;border-radius:50%;background:var(--red)}
.report-card .arrow{margin-left:auto;color:var(--text-3);font-size:14px;transition:transform .15s ease,color .15s ease}
.report-card:hover .arrow{color:var(--red);transform:translateX(3px)}

/* placeholder card for upcoming reports */
.report-card.soon{
  border-left-color:var(--border-strong);background:var(--bg);
  border-style:dashed;cursor:default;color:var(--text-3)
}
.report-card.soon:hover{transform:none;box-shadow:none;border-color:var(--border-strong)}
.report-card.soon h3{color:var(--text-3);font-weight:600}

/* ---------- footer ---------- */
.page-footer{
  margin-top:64px;padding-top:28px;border-top:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px
}
.fwordmark{font-size:22px;font-weight:800;letter-spacing:.02em;color:var(--text)}
.fwordmark .accent{color:var(--red)}
.contact{font-family:var(--mono);font-size:12.5px;color:var(--text-2);line-height:1.9;text-align:right}
.contact .muted{color:var(--text-3)}

/* ---------- entrance ---------- */
.reveal{opacity:0;transform:translateY(14px);animation:rise .6s cubic-bezier(.22,.61,.36,1) forwards}
@keyframes rise{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.reveal{animation:none;opacity:1;transform:none}}
