/* Grade-reconstruction reports. Every content rule is rooted at .grr; the one
 * page-level declaration uses the body class selected by this renderer. */
body.grade-reconstruction-shell { overflow-x: hidden; background: #171613; }
.grr { --grr-bg:#171613; --grr-panel:#1d2025; --grr-ink:#ece9e1; --grr-muted:#a9adb4; --grr-line:#343840; --grr-gold:#dcb34a; --grr-warm:#c86e45; --grr-max:1360px; min-height:100vh; margin:0; background:var(--grr-bg); color:var(--grr-ink); font:17px/1.62 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif; }
.grr *, .grr *::before, .grr *::after { box-sizing:border-box; }
.grr .grr-wrap { width:min(var(--grr-max),calc(100% - 72px)); margin-inline:auto; }
.grr .grr-hero { padding:84px 0 58px; }
.grr .grr-eyebrow { margin:0 0 12px; color:var(--grr-gold); font:700 12px/1.3 ui-monospace,SFMono-Regular,monospace; letter-spacing:.12em; text-transform:uppercase; }
.grr .grr-hero h1 { max-width:1000px; margin:0; font:500 clamp(52px,7vw,108px)/.95 Georgia,serif; letter-spacing:-.045em; }
.grr .grr-standfirst { max-width:1050px; margin:32px 0 42px; color:#d3d1cb; font:clamp(22px,2.5vw,36px)/1.35 Georgia,serif; }
.grr .grr-hero-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.8fr); gap:72px; align-items:start; max-width:1180px; }
.grr .grr-hero-grid p { max-width:76ch; }
.grr .grr-caveat { border-left:2px solid var(--grr-warm); padding:4px 0 4px 24px; color:var(--grr-muted); }
.grr .grr-caveat strong { color:var(--grr-ink); }
.grr .grr-provenance { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:52px 0 0; background:var(--grr-line); border:1px solid var(--grr-line); }
.grr .grr-provenance div { background:var(--grr-panel); padding:18px 20px; }
.grr .grr-provenance dt { color:var(--grr-muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.grr .grr-provenance dd { margin:4px 0 0; }
.grr .grr-section { padding:72px 0; }
.grr .grr-section-heading { max-width:950px; }
.grr .grr-section-heading h2, .grr .grr-study-head h2 { margin:0 0 25px; font:500 clamp(36px,4.4vw,66px)/1.02 Georgia,serif; letter-spacing:-.025em; }
.grr .grr-fingerprint { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:38px; }
.grr .grr-fingerprint article { padding:28px; border:1px solid var(--grr-line); background:var(--grr-panel); }
.grr h3 { font:500 27px/1.2 Georgia,serif; }
.grr h4 { margin:24px 0 8px; font-size:13px; text-transform:uppercase; letter-spacing:.07em; }
.grr .grr-node-section { background:#121419; border-block:1px solid #292d34; }
.grr .grr-node-strip { display:flex; gap:8px; overflow:auto; padding-block:26px; }
.grr .grr-node-strip a { min-width:128px; padding:12px; border:1px solid var(--grr-line); color:var(--grr-ink); text-decoration:none; background:var(--grr-panel); font-size:13px; }
.grr .grr-node-strip span { display:block; color:var(--grr-gold); font-family:ui-monospace,monospace; }
.grr .grr-nodes { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.grr .grr-node { padding:25px; background:var(--grr-panel); border:1px solid var(--grr-line); scroll-margin-top:16px; }
.grr .grr-node-head span { float:right; color:var(--grr-muted); font-size:11px; text-transform:uppercase; }
.grr .grr-node-head b { color:var(--grr-gold); font-family:ui-monospace,monospace; }
.grr .grr-node-head h3 { margin:8px 0; }
.grr .grr-node-purpose { color:#d3d1cb; }
.grr .grr-node ul, .grr .grr-watchouts ul, .grr .grr-callout ul { padding-left:20px; }
.grr .grr-node li, .grr .grr-watchouts li, .grr .grr-callout li { margin:7px 0; }
.grr .grr-frame-intro p { max-width:80ch; }
.grr .grr-study { padding:90px 0; border-top:1px solid var(--grr-line); }
.grr .grr-study-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:end; margin-bottom:32px; }
.grr .grr-study-head h2 { max-width:900px; }
.grr .grr-deck { max-width:820px; color:#c9c8c3; font-size:20px; }
.grr .grr-badges { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.grr .grr-badge { display:inline-block; padding:7px 10px; border:1px solid var(--grr-line); border-radius:100px; font-size:11px; text-transform:uppercase; letter-spacing:.06em; background:var(--grr-panel); }
.grr .grr-feasibility-high { border-color:#477c69!important; }
.grr .grr-feasibility-conditional { border-color:#a07635!important; }
.grr .grr-feasibility-low { border-color:#9b514b!important; }
.grr .grr-comp-none, .grr .grr-comp-low { border-color:#536271!important; }
.grr .grr-comp-medium { border-color:#9a7838!important; }
.grr .grr-comp-high { border-color:#a14f4f!important; }
.grr .grr-hero-frame { width:min(1600px,calc(100% - 32px)); margin:0 auto; background:#0a0a0a; }
.grr .grr-hero-frame img { display:block; width:100%; height:auto; }
.grr .grr-hero-frame figcaption { padding:12px 16px; color:var(--grr-muted); font-size:14px; }
.grr .grr-frame-body { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr); gap:72px; padding-top:48px; }
.grr .grr-prose p { max-width:80ch; }
.grr .grr-facts { align-self:start; background:var(--grr-panel); border:1px solid var(--grr-line); padding:20px; }
.grr .grr-palette { display:flex; height:72px; }
.grr .grr-palette span { display:flex; flex:var(--grr-share); min-width:28px; position:relative; }
.grr .grr-palette i { display:block; width:100%; background:var(--grr-colour); }
.grr .grr-palette small { display:none; }
.grr .grr-metrics { display:grid; grid-template-columns:1fr 1fr; margin-top:18px; }
.grr .grr-metric { padding:12px 0; border-bottom:1px solid var(--grr-line); }
.grr .grr-metric span { display:block; color:var(--grr-muted); font-size:12px; }
.grr .grr-metric strong { font:500 24px Georgia,serif; }
.grr .grr-source-note { color:var(--grr-muted); font-size:13px; }
.grr .grr-scopes { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:50px; }
.grr .grr-scopes>div { padding:16px; background:var(--grr-panel); border:1px solid var(--grr-line); }
.grr .grr-scopes h3 { margin:0 0 8px; font:600 13px ui-monospace,monospace; text-transform:uppercase; letter-spacing:.08em; }
.grr .grr-scopes svg { display:block; width:100%; height:auto; }
.grr .grr-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding-top:52px; }
.grr .grr-callout { padding:28px; border:1px solid var(--grr-line); background:var(--grr-panel); }
.grr .grr-callout h3 { margin:0 0 18px; }
.grr .grr-caveat-line { padding-top:15px; border-top:1px solid var(--grr-line); color:var(--grr-muted); font-size:14px; }
.grr .grr-recipe { padding-top:56px; }
.grr .grr-recipe>h3 { margin:0 0 24px; font-size:36px; }
.grr .grr-recipe-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.grr .grr-recipe-grid article { padding:22px; background:var(--grr-panel); border:1px solid var(--grr-line); }
.grr .grr-recipe-grid article>div { display:flex; gap:14px; align-items:baseline; }
.grr .grr-recipe-grid b { color:var(--grr-gold); font-family:ui-monospace,monospace; }
.grr .grr-recipe-grid h4 { margin:0; color:var(--grr-ink); }
.grr .grr-why, .grr .grr-watch { color:var(--grr-muted); font-size:14px; }
.grr .grr-watchouts { margin-top:24px; padding:24px; border-left:3px solid var(--grr-warm); background:#1b1917; }
.grr .grr-watchouts h3 { margin-top:0; }
.grr .grr-footer { padding:72px 0 100px; color:var(--grr-muted); border-top:1px solid var(--grr-line); }
@media(max-width:980px) {
  .grr .grr-hero-grid, .grr .grr-frame-body, .grr .grr-study-head { grid-template-columns:1fr; }
  .grr .grr-badges { align-items:flex-start; }
  .grr .grr-provenance, .grr .grr-nodes { grid-template-columns:repeat(2,1fr); }
  .grr .grr-scopes { grid-template-columns:1fr; }
  .grr .grr-analysis-grid, .grr .grr-recipe-grid { grid-template-columns:1fr; }
}
@media(max-width:620px) {
  .grr { font-size:16px; }
  .grr .grr-wrap { width:min(calc(100% - 32px),var(--grr-max)); }
  .grr .grr-hero { padding-top:48px; }
  .grr .grr-hero h1 { font-size:48px; }
  .grr .grr-hero-grid { gap:28px; }
  .grr .grr-provenance, .grr .grr-fingerprint, .grr .grr-nodes { grid-template-columns:1fr; }
  .grr .grr-study { padding:64px 0; }
  .grr .grr-hero-frame { width:100%; }
  .grr .grr-scopes { width:100%; padding-inline:16px; }
  .grr .grr-palette { height:54px; }
}
