
/* in-page table of contents */
.sectionrail{ margin:.35rem 0 1.5rem; padding:1rem 1.25rem; border:1px solid hsl(172 85% 20% / 1);
  border-left:3px solid hsl(288 91% 55% / 1); border-radius:10px;
  background:hsl(172 85% 11% / 1); }
.sectionrail .sectionrail__title{ margin:0 0 .6rem; font-size:.95rem; text-transform:uppercase;
  letter-spacing:.07em; color:hsl(288 60% 82% / 1); }
/* Single column at every width (user directive) — a wrapped entry then simply
   takes two lines instead of leaving a blank slot beside it. */
.sectionrail__list{ margin:0; padding:0; list-style:none; }
.sectionrail__list li{ margin:0 0 .45rem; padding-left:1.5rem; position:relative; }
.sectionrail__list li:last-child{ margin-bottom:0; }
.sectionrail__list a{ color:hsl(0 0% 100% / .88); text-decoration:none;
  border-bottom:1px solid transparent; }
.sectionrail__list a:hover, .sectionrail__list a:focus-visible{ color:hsl(288 80% 80% / 1);
  border-bottom-color:currentColor; }
html{ scroll-behavior:smooth; }
main.substance h2{ scroll-margin-top:1rem; }

:root{
  --ink:#0E1116; --ink-2:#151A21; --panel:#1B212B; --line:#2A323E;
  --paper:#F6F3EC; --paper-2:#EDE8DC; --paper-line:#D9D2C2;
  --text:#E8EBF0; --muted:#98A2B3; --ink-text:#1A1D23; --ink-muted:#5A6270;
  --green:#D3E512; --amber:#F2A93B; --pos:#2FA26A; --neg:#D6483F;
  --wrap:1140px; --gut:20px;
  --serif:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
/* NO overflow-x:hidden here. Hiding the scrollbar masks a layout bug instead of
   fixing it, and it also kills position:sticky on some engines. The ONLY element
   allowed to scroll sideways is .tablewrap; everything else must fit. */
body{
  margin:0; background:var(--ink); color:var(--text);
  font:400 17px/1.7 var(--sans);
}
/* long tokens (email addresses, licence numbers) wrap instead of pushing the
   column wider than the viewport */
body,.substance{ overflow-wrap:break-word; }
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--green); }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:700; line-height:1.22; }

.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 var(--gut); }

/* ---------- masthead ---------- */
.masthead{
  position:sticky; top:0; z-index:40; background:rgba(14,17,22,.94);
  border-bottom:1px solid var(--line); backdrop-filter:saturate(1.3) blur(7px);
}
.masthead__bar{ display:flex; align-items:center; gap:14px; min-height:64px; min-width:0; }
/* the logo may shrink rather than force the bar wider than the viewport */
.masthead__logo{ display:block; flex:0 1 auto; min-width:0; }
.masthead__logo img{ width:154px; height:34px; max-width:100%; }
.masthead__kicker{
  font:600 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase;
  color:var(--muted); padding-left:14px; border-left:1px solid var(--line);
}
.masthead__spacer{ flex:1 1 auto; }
.masthead__cta{
  flex:0 1 auto; min-width:0; display:inline-flex; align-items:center;
  justify-content:center; min-height:44px; padding:0 18px; border-radius:999px;
  background:var(--green); color:#141700; font:700 14px/1 var(--sans);
  text-decoration:none; border:1px solid var(--green);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.masthead__cta:hover{ filter:brightness(1.07); }
.masthead__burger{
  flex:0 0 auto; display:none; width:44px; height:44px; border:1px solid var(--line);
  border-radius:10px; background:var(--ink-2); color:var(--text); cursor:pointer;
  align-items:center; justify-content:center;
}
.masthead__burger span{ display:block; width:18px; height:2px; background:currentColor;
  box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor; }
.sitenav{ border-top:1px solid var(--line); }
.sitenav__list{
  display:flex; flex-wrap:wrap; gap:2px; margin:0; padding:6px 0; list-style:none;
}
.sitenav__list a{
  display:inline-flex; align-items:center; min-height:40px; padding:0 12px;
  border-radius:8px; color:var(--muted); font:500 14px/1 var(--sans);
  text-decoration:none;
}
.sitenav__list a:hover{ color:var(--text); background:var(--ink-2); }
.sitenav__list a[aria-current="page"]{ color:var(--green); background:var(--ink-2); }

/* ---------- breadcrumb ---------- */
.crumbs{ padding:14px 0 0; font:400 13px/1.5 var(--sans); color:var(--muted); }
.crumbs ol{ display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.crumbs li+li::before{ content:"›"; margin-right:8px; color:var(--line); }
.crumbs a{ color:var(--muted); text-decoration:none; }
.crumbs a:hover{ color:var(--green); }

/* ---------- hero ---------- */
.hero{ padding:26px 0 4px; }
.hero__tag{
  display:inline-block; margin:0 0 12px; padding:5px 11px; border-radius:6px;
  background:rgba(211,229,18,.12); border:1px solid rgba(211,229,18,.35);
  color:var(--green); font:700 11px/1 var(--sans); letter-spacing:.13em;
  text-transform:uppercase;
}
.hero h1{ margin:0 0 14px; font-size:clamp(28px,4.4vw,44px); letter-spacing:-.015em; }
.hero__standfirst{ margin:0; max-width:62ch; color:var(--muted); font-size:18px; }

/* scorecard rail */
.scorecard{
  display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:22px 0 6px;
}
.scorecard__tile{
  padding:14px; border:1px solid var(--line); border-radius:12px;
  background:linear-gradient(160deg,var(--panel),var(--ink-2));
}
.scorecard__n{
  display:block; font-family:var(--serif); font-size:26px; line-height:1.1;
  color:var(--green);
}
.scorecard__k{
  display:block; margin-top:5px; font:500 12px/1.4 var(--sans); color:var(--muted);
  letter-spacing:.03em;
}

/* ---------- editorial body on paper ---------- */
.substance{
  background:var(--paper); color:var(--ink-text); margin:26px 0 0;
  border-top:3px solid var(--green);
}
.substance > .wrap{ padding-top:30px; padding-bottom:36px; }
.substance h2{
  margin:2.1em 0 .55em; font-size:clamp(22px,3vw,29px); color:#11141A;
  padding-bottom:.32em; border-bottom:1px solid var(--paper-line);
}
.substance h2:first-of-type{ margin-top:.4em; }
.substance h3{ margin:1.7em 0 .45em; font-size:20px; color:#11141A; }
.substance p{ margin:0 0 1.05em; }
.substance a{ color:#1F6F4A; text-underline-offset:2px; }
.substance a:hover{ color:#144B32; }
.substance ul,.substance ol{ margin:0 0 1.2em; padding-left:1.15em; }
.substance li{ margin:0 0 .5em; }
.substance figure{ margin:1.5em 0; }
.substance figure img{ width:100%; border-radius:12px; border:1px solid var(--paper-line); }
.substance figcaption{
  margin-top:.55em; font:400 13px/1.5 var(--sans); color:var(--ink-muted);
}
.summary-line{
  margin:0 0 1.3em; padding:16px 18px; background:var(--paper-2);
  border-left:3px solid var(--green); border-radius:0 10px 10px 0;
  font-size:18px; color:#1A1D23;
}

/* ---------- tables ---------- */
.tablewrap{ overflow-x:auto; margin:1.4em 0; border:1px solid var(--paper-line);
  border-radius:12px; background:#fff; }
/* scoped to the scroller on purpose: the 520px floor is only safe because
   .tablewrap scrolls. Wide data tables are the ONE thing allowed to scroll. */
.tablewrap table{ width:100%; border-collapse:collapse; min-width:520px;
  font:400 15px/1.55 var(--sans); }
.substance thead th{
  background:#11141A; color:var(--paper); text-align:left; padding:11px 14px;
  font:600 13px/1.3 var(--sans); letter-spacing:.04em; text-transform:uppercase;
}
.substance tbody td{ padding:11px 14px; border-top:1px solid var(--paper-line); }
.substance tbody tr:nth-child(even) td{ background:#FAF8F3; }

/* ---------- pro / contro (authorised for this leaf, casino.md line 13) ---------- */
.procon{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:1.5em 0; }
.procon__col{ border-radius:12px; padding:16px 18px; background:#fff;
  border:1px solid var(--paper-line); }
.procon__col--pro{ border-top:3px solid var(--pos); }
.procon__col--con{ border-top:3px solid var(--neg); }
.procon__h{ margin:0 0 .6em; font:700 13px/1 var(--sans); letter-spacing:.11em;
  text-transform:uppercase; }
.procon__col--pro .procon__h{ color:var(--pos); }
.procon__col--con .procon__h{ color:var(--neg); }
.procon ul{ margin:0; padding:0; list-style:none; }
.procon li{ position:relative; padding-left:1.45em; margin:0 0 .55em; }
.procon__col--pro li::before{ content:"+"; position:absolute; left:0; top:-1px;
  color:var(--pos); font-weight:700; }
.procon__col--con li::before{ content:"−"; position:absolute; left:0; top:-1px;
  color:var(--neg); font-weight:700; }

/* ---------- verdict card ---------- */
.quick-verdict{
  display:grid; grid-template-columns:96px 1fr; gap:18px; align-items:start;
  margin:1.6em 0; padding:18px 20px; border-radius:14px;
  background:#11141A; color:var(--paper);
}
.quick-verdict__score{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  aspect-ratio:1; border-radius:12px; background:rgba(211,229,18,.1);
  border:1px solid rgba(211,229,18,.4);
}
.quick-verdict__n{ font-family:var(--serif); font-size:30px; color:var(--green); line-height:1; }
.quick-verdict__d{ font:600 11px/1 var(--sans); color:var(--muted); margin-top:4px; }
.quick-verdict h3{ margin:0 0 .4em; color:var(--paper); font-size:19px; }
.quick-verdict p{ margin:0; color:#C9CFDA; font-size:15.5px; }

/* ---------- numbered testing log ---------- */
.log{ counter-reset:log; margin:1.5em 0; padding:0; list-style:none; }
.log li{
  counter-increment:log; position:relative; padding:0 0 1.1em 3.1rem;
  border-left:1px solid var(--paper-line); margin-left:1.1rem;
}
.log li:last-child{ border-left-color:transparent; padding-bottom:0; }
.log li::before{
  content:counter(log); position:absolute; left:-1.1rem; top:-2px;
  width:2.2rem; height:2.2rem; border-radius:50%; background:#11141A;
  color:var(--green); font:700 13px/2.2rem var(--sans); text-align:center;
}
.log b{ display:block; font-family:var(--serif); font-size:17px; }

/* ---------- callout ---------- */
.callout{
  margin:1.5em 0; padding:15px 18px; border-radius:12px; background:#FFF8E8;
  border:1px solid #EBD9AE;
}
.callout__h{ margin:0 0 .35em; font:700 12px/1 var(--sans); letter-spacing:.11em;
  text-transform:uppercase; color:#8A6A1B; }
.callout p:last-child{ margin-bottom:0; }

/* ---------- CTA ---------- */
.cta{ margin:1.7em 0; padding:20px; border-radius:14px; text-align:center;
  background:linear-gradient(140deg,#11141A,#1E2531); }
.cta__a{
  display:inline-flex; align-items:center; justify-content:center; min-height:52px;
  padding:0 30px; border-radius:999px; background:var(--green); color:#141700;
  font:700 16px/1 var(--sans); text-decoration:none;
}
.cta__a:hover{ filter:brightness(1.07); }
.cta__note{ margin:.7em 0 0; font:400 13px/1.5 var(--sans); color:var(--muted); }

/* ---------- FAQ ---------- */
.queryzone{ margin:1.8em 0 0; }
.queryzone__item{ border-top:1px solid var(--paper-line); }
.queryzone__item:last-child{ border-bottom:1px solid var(--paper-line); }
.queryzone__q{
  width:100%; display:flex; gap:12px; align-items:flex-start; text-align:left;
  padding:15px 0; background:none; border:0; cursor:pointer; color:#11141A;
  font:700 17px/1.4 var(--serif); min-height:44px;
}
.queryzone__q::after{ content:"+"; margin-left:auto; color:var(--ink-muted); font-size:20px; }
.queryzone__q[aria-expanded="true"]::after{ content:"−"; }
.queryzone__a{ padding:0 0 15px; }
.queryzone__a[hidden]{ display:none; }

/* ---------- footer ---------- */
.sitefooter{ background:var(--ink-2); border-top:1px solid var(--line); padding:30px 0 36px; }
.sitefooter__top{ display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.sitefooter__logo img{ width:138px; height:30px; }
.sitefooter__nav{ display:flex; flex-wrap:wrap; gap:6px; margin-left:auto; }
.sitefooter__nav a{
  display:inline-flex; align-items:center; min-height:40px; padding:0 10px;
  color:var(--muted); font:400 14px/1 var(--sans); text-decoration:none;
}
.sitefooter__nav a:hover{ color:var(--green); }
.sitefooter__rule{ height:1px; background:var(--line); margin:20px 0; }
.sitefooter__legal{ display:flex; flex-wrap:wrap; gap:14px; align-items:flex-start; }
.badge18{
  flex:0 0 auto; width:42px; height:42px; border-radius:50%; border:2px solid var(--neg);
  color:var(--neg); font:700 14px/38px var(--sans); text-align:center;
}
.sitefooter__small{ margin:0; font:400 13px/1.65 var(--sans); color:var(--muted); max-width:78ch; }
.sitefooter__small a{ color:var(--muted); }

/* ---------- TOC overrides (toc_core ships its own palette) ---------- */
.substance .sectionrail{
  margin:.2rem 0 1.6rem; padding:14px 16px; border:1px solid var(--paper-line);
  border-left:3px solid #11141A; border-radius:0 12px 12px 0; background:#fff;
}
.substance .sectionrail .sectionrail__title{
  margin:0 0 .55rem; padding:0; border:0; font:700 11px/1 var(--sans);
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink-muted);
}
.substance .sectionrail__list{ display:flex; flex-wrap:wrap; gap:6px; }
.substance .sectionrail__list li{ margin:0; padding:0; }
.substance .sectionrail__list li::before{ content:none; }
.substance .sectionrail__list a{
  display:inline-flex; align-items:center; min-height:34px; padding:0 11px;
  border-radius:999px; background:var(--paper-2); color:#232833;
  font:500 13px/1 var(--sans); text-decoration:none;
}
.substance .sectionrail__list a:hover{ background:#11141A; color:var(--paper); }

/* ---------- responsive ---------- */
@media (max-width:860px){
  .scorecard{ grid-template-columns:repeat(2,1fr); }
  .procon{ grid-template-columns:1fr; }
}
@media (max-width:720px){
  :root{ --gut:16px; }
  body{ font-size:16.5px; }
  .masthead__kicker{ display:none; }
  /* 126 + 10 + CTA + 10 + 44 + 32 gutter stays inside 360 */
  .masthead__bar{ gap:10px; }
  .masthead__logo img{ width:126px; height:28px; }
  .masthead__cta{ padding:0 13px; font-size:13px; }
  .masthead__burger{ display:inline-flex; }
  .sitenav{ display:none; }
  .sitenav.is-open{ display:block; }
  .sitenav__list{ flex-direction:column; padding:8px 0 12px; }
  .sitenav__list a{ width:100%; min-height:44px; }
  .quick-verdict{ grid-template-columns:1fr; }
  .quick-verdict__score{ width:84px; aspect-ratio:1; }
  .sitefooter__nav{ margin-left:0; }
}
@media (max-width:420px){
  .masthead__logo img{ width:104px; height:23px; }
  .masthead__cta{ padding:0 10px; font-size:12px; }
  .scorecard{ gap:8px; }
  .quick-verdict{ padding:16px; }
}
