:root { --ink:#172027; --paper:#f4f3ee; --white:#fff; --line:#c8ced0; --blue:#145b70; --coral:#c54e3a; --lime:#cadb78; --soft:#e5eef0; --muted:#59646b; --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:70px; }
body { margin:0; background:var(--paper); color:var(--ink); font:17px/1.62 Georgia,serif; }
a { color:#0c596f; text-underline-offset:3px; }
a:focus-visible, summary:focus-visible { outline:3px solid var(--coral); outline-offset:3px; }
.skip-link { position:fixed; z-index:30; top:-60px; left:12px; background:#fff; padding:10px 14px; }
.skip-link:focus { top:10px; }
.site-head { height:58px; background:var(--ink); color:#fff; display:flex; align-items:center; justify-content:space-between; padding-inline:max(20px,calc((100% - var(--max))/2)); font:700 13px/1 Arial,sans-serif; }
.site-head a { color:#fff; text-decoration:none; font-size:16px; }
.site-head span { color:#d7dfe2; }
main { max-width:var(--max); margin:auto; padding:0 24px 70px; }
.first-screen { display:grid; grid-template-columns:minmax(0,1.03fr) minmax(380px,.97fr); gap:34px; align-items:start; padding:32px 0 26px; }
.first-screen > * { min-width:0; }
.first-screen figure { margin:0; position:sticky; top:78px; }
.first-screen img { display:block; width:100%; height:360px; object-fit:cover; border:1px solid #9aa4a7; }
.first-screen figcaption { margin-top:7px; color:var(--muted); font:13px/1.4 Arial,sans-serif; }
.kicker, .section-label { margin:0 0 7px; color:var(--coral); text-transform:uppercase; font:800 12px/1.25 Arial,sans-serif; letter-spacing:0; }
h1, h2, h3 { font-family:Arial,sans-serif; line-height:1.12; letter-spacing:0; }
h1 { font-size:clamp(38px,4.8vw,67px); margin:0 0 15px; }
h2 { font-size:31px; margin:0 0 18px; }
h3 { font-size:22px; margin:0 0 10px; }
.standfirst { font-size:20px; line-height:1.42; }
.date { color:var(--muted); font:14px/1.4 Arial,sans-serif; }
.limits { background:var(--white); border-left:6px solid var(--lime); padding:13px 15px; }
.quick-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0; }
.quick-grid p { margin:0; background:var(--soft); padding:10px; font-size:14px; }
.warning { color:#7b2b21; }
.jump { display:inline-block; background:var(--blue); color:#fff; text-decoration:none; padding:11px 15px; border-radius:4px; font:700 14px/1 Arial,sans-serif; }
nav { position:sticky; top:0; z-index:20; display:flex; gap:4px; overflow-x:auto; background:#fff; border-block:1px solid var(--line); padding:8px; }
nav a { white-space:nowrap; padding:7px 10px; text-decoration:none; font:700 13px/1 Arial,sans-serif; }
section { padding:43px 0; border-bottom:1px solid var(--line); }
.definitions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.definitions details { background:#fff; border:1px solid var(--line); padding:15px; border-radius:5px; }
.definitions summary { cursor:pointer; font:700 17px/1.3 Arial,sans-serif; }
.definitions p, .recommendation p { margin:8px 0; }
.table-wrap, .details-wrap { overflow-x:auto; background:#fff; border:1px solid var(--line); }
table { width:100%; border-collapse:collapse; min-width:820px; }
caption { text-align:left; padding:12px; font:700 14px/1.3 Arial,sans-serif; }
th, td { padding:11px; text-align:left; vertical-align:top; border-top:1px solid var(--line); }
th { font-family:Arial,sans-serif; }
.recommendations { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.recommendation { background:#fff; border:1px solid var(--line); border-top:6px solid var(--blue); padding:18px; }
.recommendation.offset { transform:translateY(20px); border-top-color:var(--coral); }
.utility { background:var(--ink); color:#fff; margin-inline:-24px; padding-inline:24px; }
.utility .section-label { color:var(--lime); }
.rehearsal { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; padding:0; list-style:none; counter-reset:step; }
.rehearsal li { background:#26343c; padding:13px; counter-increment:step; }
.rehearsal li:before { content:counter(step); display:block; color:var(--lime); font:800 24px/1 Arial,sans-serif; margin-bottom:8px; }
.chain { display:grid; grid-template-columns:repeat(5,1fr); border:1px solid var(--line); background:#fff; }
.chain div { padding:14px; border-right:1px solid var(--line); }
.chain div:last-child { border:0; }
.chain b, .chain span { display:block; }
.chain b { color:var(--blue); font-family:Arial,sans-serif; margin-bottom:7px; }
.details-wrap { overflow:hidden; }
.details-wrap table { min-width:0; }
.checks li, .sources li { margin-bottom:8px; }
.sources { columns:2; }
.sources li { break-inside:avoid; }
footer { background:var(--ink); color:#fff; display:flex; justify-content:center; gap:24px; padding:25px; font:13px/1.4 Arial,sans-serif; }
footer span { color:#ccd5d8; }
@media (max-width:800px) {
  body { font-size:16px; overflow-x:hidden; }
  .site-head span { display:none; }
  main { padding-inline:24px; }
  .first-screen { display:flex; flex-direction:column; padding-top:18px; gap:18px; }
  .first-copy { width:100%; min-width:0; }
  .first-screen figure { position:static; order:-1; margin-inline:-24px; }
  .first-screen img { height:214px; border-inline:0; }
  .first-screen figcaption { padding-inline:24px; }
  h1 { font-size:30px; }
  .quick-grid, .definitions, .recommendations { grid-template-columns:1fr; }
  .recommendation.offset { transform:none; }
  .utility { margin-inline:-24px; padding-inline:24px; }
  .rehearsal { grid-template-columns:1fr 1fr; }
  .chain { grid-template-columns:1fr; }
  .chain div { border-right:0; border-bottom:1px solid var(--line); }
  .details-wrap { background:transparent; border:0; }
  .details-wrap table, .details-wrap tbody, .details-wrap tr, .details-wrap th, .details-wrap td { display:block; width:100%; }
  .details-wrap thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .details-wrap caption { display:block; padding:12px 0; }
  .details-wrap tr { background:#fff; border:1px solid var(--line); margin-bottom:13px; padding:9px; }
  .details-wrap th, .details-wrap td { border:0; padding:8px; overflow-wrap:anywhere; }
  .details-wrap td:before { content:attr(data-label); display:block; color:var(--coral); text-transform:uppercase; font:800 11px/1.25 Arial,sans-serif; margin-bottom:4px; }
  .details-wrap th { font-size:18px; }
  .sources { columns:1; }
  footer { flex-direction:column; gap:4px; text-align:center; }
}
@media (max-width:430px) {
  .rehearsal { grid-template-columns:1fr; }
  nav { margin-inline:-24px; }
  section { padding-block:36px; }
}
