:root{--bg:#f5f2ea;--surface:#fffdf8;--surface2:#efeadf;--ink:#1a1f1c;--muted:#55605a;--line:#ddd6c7;
--accent:#1f5c4f;--accent-ink:#fff;--accent-soft:#dcebe4;--sun:#c9762b;--sun-soft:#f7e6d3;
--ad:#7a4100;--adbg:#fff1dc;--adline:#ecc790;--yes:#1d6b3a;--yes-bg:#ddf1e3;--no:#9b2226;--no-bg:#fbe3e1;
--maybe:#7a5800;--maybe-bg:#fbefc7;--shadow:0 1px 2px rgba(30,30,20,.06),0 6px 20px rgba(30,30,20,.06);
--serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--r:14px}
@media (prefers-color-scheme:dark){:root{--bg:#121614;--surface:#1a201d;--surface2:#222a26;--ink:#ebe7de;--muted:#a9b2ac;--line:#33403a;
--accent:#86cdb8;--accent-ink:#0d1a16;--accent-soft:#1f3a32;--sun:#e8a466;--sun-soft:#3a2a1b;--ad:#ffcf8f;--adbg:#33270f;--adline:#6b4f1c;
--yes:#8fe0a8;--yes-bg:#163322;--no:#ffaaa5;--no-bg:#3b1a1a;--maybe:#f2d47a;--maybe-bg:#3a3014;--shadow:0 1px 2px rgba(0,0,0,.4)}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 var(--sans);color:var(--ink);background:var(--bg)}
img,svg{max-width:100%;height:auto}
a{color:var(--accent);text-underline-offset:.15em}a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:8px 14px;z-index:9}.skip:focus{left:8px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px;margin:0 auto}
.site-head{border-bottom:1px solid var(--line);background:var(--bg)}
.site-head .wrap{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:center;padding-top:14px;padding-bottom:14px}
.logo{display:flex;align-items:center;gap:10px;font:700 1.15rem/1 var(--serif);color:var(--ink);text-decoration:none}
.logo svg{width:28px;height:28px}.logo b{color:var(--accent)}
nav ul{display:flex;flex-wrap:wrap;gap:4px 18px;list-style:none;margin:0;padding:0}nav a{text-decoration:none;font-size:.95rem;color:var(--ink)}nav a:hover{color:var(--accent);text-decoration:underline}
h1,h2,h3{font-family:var(--serif);line-height:1.15;letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.5vw,3.1rem);margin:.4em 0 .3em}
h2{font-size:clamp(1.4rem,2.6vw,1.8rem);margin:2.2rem 0 .6rem}
h3{font-size:1.2rem;margin:0 0 .3rem}
.kicker{display:inline-block;font:700 .75rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:6px 10px;border-radius:99px}
.meta{color:var(--muted);font-size:.9rem}
/* hero */
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:center;padding:48px 0 28px}
.hero h1{font-size:clamp(2.4rem,6vw,4.2rem);line-height:1.02;margin:.25em 0 .35em}
.hero h1 em{font-style:italic;color:var(--accent)}
.hero p.lede{font-size:1.2rem;color:var(--muted);max-width:34em}
.hero .art{background:var(--surface2);border-radius:28px;padding:18px}
.hero .art figcaption{font-size:.78rem;color:var(--muted);text-align:center;margin-top:4px}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.btn{display:inline-block;padding:11px 18px;border-radius:99px;font-weight:600;text-decoration:none;border:2px solid var(--accent)}
.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.ghost{color:var(--accent)}
@media (max-width:820px){.hero{grid-template-columns:1fr;padding-top:28px}.hero .art{order:-1;max-width:420px}}
/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:8px 0 10px;padding:0;list-style:none}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.stat b{display:block;font:700 2.4rem/1 var(--serif);color:var(--accent)}.stat span{display:block;font-size:.92rem;margin-top:6px}.stat a{font-size:.8rem}
/* article cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin:18px 0}
.acard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;position:relative;transition:transform .15s}
.acard:hover{transform:translateY(-3px)}
.acard img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--surface2)}
.acard .body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.acard h3 a{color:var(--ink);text-decoration:none}.acard h3 a::after{content:"";position:absolute;inset:0}
.acard p{margin:0;color:var(--muted);font-size:.93rem}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font:700 .7rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:6px;background:var(--surface2);color:var(--muted)}
.tag.ad-t{background:var(--adbg);color:var(--ad);border:1px solid var(--adline)}
/* article */
.art-hero{display:grid;grid-template-columns:1fr;gap:10px;padding-top:18px}
.cover{border-radius:var(--r);overflow:hidden;margin:16px 0 4px}.cover img{display:block;width:100%}
.cover figcaption,figure figcaption{font-size:.78rem;color:var(--muted);margin-top:6px}
.disclosure{background:var(--adbg);border:1px solid var(--adline);border-left:6px solid var(--ad);border-radius:10px;padding:14px 16px;margin:18px 0;font-size:.95rem}
.disclosure strong{color:var(--ad)}
.ad{display:inline-block;background:var(--adbg);color:var(--ad);border:1px solid var(--adline);border-radius:5px;font-size:.72rem;font-weight:700;padding:1px 7px;margin-left:6px;vertical-align:middle}
.placeholder{color:var(--muted);font-size:.8rem}
.callout{display:grid;grid-template-columns:28px 1fr;gap:12px;border-radius:12px;padding:14px 16px;margin:18px 0;background:var(--accent-soft);border:1px solid transparent}
.callout svg{width:24px;height:24px;color:var(--accent);margin-top:2px}.callout p{margin:0}.callout p+p{margin-top:.5em}
.callout.warn{background:var(--sun-soft)}.callout.warn svg{color:var(--sun)}
.pull p{margin:0}.pull{margin:28px 0;padding:6px 0 6px 22px;border-left:5px solid var(--sun);font:italic 1.45rem/1.35 var(--serif)}
.pull cite,.pull figcaption{display:block;margin-top:8px;font:normal .85rem var(--sans);color:var(--muted)}
.unv{background:var(--no-bg);color:var(--no);font-size:.72rem;padding:1px 6px;border-radius:4px;font-weight:700}
/* tables */
.table-wrap{overflow:auto;max-height:75vh;margin:16px 0;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
table{border-collapse:separate;border-spacing:0;min-width:680px;width:100%;font-size:.92rem}
th,td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
thead th{position:sticky;top:0;z-index:2;background:var(--surface2);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
tbody th{position:sticky;left:0;z-index:1;background:var(--surface);font-weight:700}
thead th:first-child{left:0;z-index:3}
tbody tr:nth-child(even) td,tbody tr:nth-child(even) th{background:color-mix(in srgb,var(--surface2) 45%,var(--surface))}
td.win{background:var(--yes-bg)!important;box-shadow:inset 4px 0 0 var(--yes)}
.wintag{display:inline-block;font-size:.68rem;font-weight:700;color:var(--yes);margin-left:4px;text-transform:uppercase}
.b{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:.8rem;padding:2px 8px;border-radius:99px;white-space:nowrap}
.b svg{width:13px;height:13px}
.b.yes{background:var(--yes-bg);color:var(--yes)}.b.no{background:var(--no-bg);color:var(--no)}.b.maybe{background:var(--maybe-bg);color:var(--maybe)}
.chip{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--surface2);border:1px solid var(--line);margin:1px 2px 1px 0;white-space:nowrap}
.legend{font-size:.82rem;color:var(--muted)}
/* products */
.product{display:grid;grid-template-columns:170px 1fr;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:16px 0;box-shadow:var(--shadow)}
.product figure{margin:0;background:var(--surface2);border-radius:12px;padding:12px;text-align:center}
.product figure img{width:120px}
.product figcaption{font-size:.7rem!important;line-height:1.3}
.badge{display:inline-block;font:700 .72rem/1 var(--sans);text-transform:uppercase;letter-spacing:.08em;padding:6px 9px;border-radius:6px;background:var(--accent);color:var(--accent-ink);margin-bottom:8px}
.price{font:700 1.6rem/1.1 var(--serif);margin:.2em 0 .5em}.price small{display:block;font:400 .8rem var(--sans);color:var(--muted);margin-top:3px}
.glance{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0 12px;padding:0;list-style:none}
.glance li{background:var(--surface2);border-radius:10px;padding:8px 10px;font-size:.85rem;line-height:1.35}.glance li b{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
@media (max-width:560px){.product{grid-template-columns:1fr}.product figure{max-width:200px}}
/* at a glance panels */
.panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:18px 0}
.panel{background:var(--surface);border:1px solid var(--line);border-top:6px solid var(--accent);border-radius:var(--r);padding:16px 18px}
.panel.alt{border-top-color:var(--sun)}
.panel .row{display:flex;align-items:center;gap:14px}.panel .row img{width:64px;flex:none}
.panel dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 0;font-size:.9rem}.panel dt{color:var(--muted)}.panel dd{margin:0;font-weight:600}
/* charts */
.chart{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:20px 0}
.chart h3{margin-bottom:4px}.chart svg{display:block;width:100%;height:auto}
.chart .bar{fill:var(--accent)}.chart .bar.alt{fill:var(--sun)}.chart text{fill:var(--ink);font:13px var(--sans)}.chart text.v{font-weight:700}.chart .grid-l{stroke:var(--line)}
details{margin-top:8px;font-size:.85rem}summary{cursor:pointer;color:var(--accent)}
details table{min-width:0;font-size:.85rem}
/* timeline */
.timeline{list-style:none;margin:18px 0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:3px;background:var(--line)}
.timeline li{position:relative;padding:0 0 18px 40px}.timeline li::before{content:"";position:absolute;left:3px;top:5px;width:19px;height:19px;border-radius:50%;background:var(--surface);border:4px solid var(--accent)}
.timeline li.done::before{background:var(--accent)}.timeline b{display:block;font-family:var(--serif);font-size:1.1rem}
.steps{counter-reset:s;list-style:none;padding:0}.steps li{counter-increment:s;position:relative;padding:10px 0 10px 50px;border-bottom:1px dashed var(--line)}
.steps li::before{content:counter(s);position:absolute;left:0;top:8px;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:700;display:grid;place-items:center}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:18px 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}.card img{width:56px;float:right;margin:0 0 6px 10px}.card p{margin:0;color:var(--muted);font-size:.92rem}
.sources{font-size:.86rem}.sources li{margin-bottom:6px;word-break:break-word}
.legalbox{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px}.legalbox dl{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:6px 16px;margin:0}.legalbox dt{color:var(--muted)}.legalbox dd{margin:0}
.site-foot{margin-top:64px;border-top:1px solid var(--line);background:var(--surface2);padding:28px 0;font-size:.88rem;color:var(--muted)}
.site-foot ul{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:6px 18px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
