:root{--bg:#0a0a12;--bg-elev:#12121d;--border:#26263a;--chip-border:#37345f;--text:#ededf4;--text-muted:#9d9bb8;--accent:#ee5aa0;--accent-2:#8d7bf0;--live:#a8e04a;--glow:rgba(124,93,250,0.16);--ok:#8fd14f;--warn:#e7a14a;--fail:#e5626e;--font:system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:ui-monospace,Menlo,monospace;--fs-micro:0.65rem;--fs-mono:0.78rem;--fs-xs:0.8125rem;--fs-sm:0.845rem;--fs-base:0.875rem;--fs-md:0.9375rem;--fs-lg:1.125rem;--fs-xl:1.4rem;--fs-h2:1.6rem;--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-6:1.5rem;--sp-8:2rem;--radius:10px;--radius-sm:7px;--radius-lg:14px;--maxw:1200px;color-scheme:dark} @media (prefers-color-scheme:light){:root{--bg:#f7f6fb;--bg-elev:#ffffff;--border:#e3e1f0;--chip-border:#d7d2f2;--text:#191831;--text-muted:#5f5d7d;--accent:#d1257f;--accent-2:#6a58d6;--live:#4d7c0f;--glow:rgba(124,93,250,0.10);--ok:#3f7d17;--warn:#a85b10;--fail:#c22432;color-scheme:light}} *{box-sizing:border-box} html{font-family:var(--font)} body{margin:0;padding:0 var(--sp-4);background-color:var(--bg);background-image:radial-gradient(52rem 28rem at 78% -8rem,var(--glow),transparent 70%);background-repeat:no-repeat;color:var(--text);font-size:var(--fs-base);line-height:1.6} main{max-width:var(--maxw);margin:0 auto;padding-block:var(--sp-8)} h1{font-size:clamp(2rem,4.6vw,3.1rem);font-weight:700;line-height:1.06;letter-spacing:-0.035em;margin:0 0 var(--sp-4);text-wrap:pretty} h2{font-size:var(--fs-xl);font-weight:650;line-height:1.15;letter-spacing:-0.02em;margin:var(--sp-8) 0 var(--sp-3)} h3{font-size:var(--fs-base);font-weight:600;margin:var(--sp-4) 0 var(--sp-2)} p,ul,ol{margin:0 0 var(--sp-3)} a{color:var(--text);text-decoration-color:var(--accent);text-underline-offset:2px} a:hover{color:var(--accent)} :focus-visible{outline:2px solid var(--accent);outline-offset:2px} code{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 var(--sp-1);font-size:var(--fs-xs)} .intro{color:var(--text-muted);max-width:62ch;font-size:1.02rem;line-height:1.7;text-wrap:pretty} .microlabel,.method,.tag-sponsored,.nav-rta,thead tr th,.cat-count{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:0.09em;font-weight:600} .site-head{border-bottom:1px solid var(--border);margin:0 calc(-1 * var(--sp-4));padding:0 var(--sp-4)} .site-head nav{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4) 1.5rem;padding-block:0.9375rem} .site-head .brand{font-weight:700;font-size:1rem;letter-spacing:-0.01em;text-decoration:none;display:inline-flex;align-items:center;gap:9px} .site-head .brand::before{content:"";width:24px;height:24px;border-radius:7px;background:url("/favicon.svg") center / cover no-repeat} .site-head ul{display:flex;flex-wrap:wrap;gap:0.875rem 1.4rem;list-style:none;margin:0;padding:0;margin-left:auto} .site-head ul a{font-family:var(--font-mono);font-size:0.8rem;letter-spacing:0.02em;color:var(--text-muted);text-decoration:none} .site-head ul a:hover{color:var(--accent)} .nav-rta{font-size:var(--fs-micro);color:var(--text-muted);border:1px solid var(--chip-border);border-radius:var(--radius-sm);padding:6px 8px;white-space:nowrap} .nav-cta{background:var(--accent);color:#fff;font-family:var(--font-mono);font-size:0.78rem;font-weight:700;text-decoration:none;white-space:nowrap;border-radius:var(--radius);padding:10px 14px;line-height:1} .nav-cta:hover{color:#fff;filter:brightness(1.08)} .site-foot{border-top:1px solid var(--border);margin:var(--sp-8) calc(-1 * var(--sp-4)) 0;padding:var(--sp-6) var(--sp-4) var(--sp-8);color:var(--text-muted);font-size:var(--fs-xs);line-height:1.6} .site-foot a{color:var(--text-muted)} .site-foot ul{display:flex;flex-wrap:wrap;gap:1.125rem;list-style:none;margin:var(--sp-3) 0 0;padding:0} .site-foot ul a{color:var(--text);text-decoration:none} .site-foot ul a:hover{color:var(--accent)} .site-foot p,.site-foot ul{max-width:var(--maxw);margin-inline:auto} .site-foot > p:first-child{max-width:98ch} .foot-18{margin-top:var(--sp-3);font-size:0.72rem} table{width:100%;border-collapse:separate;border-spacing:0;margin:0 0 var(--sp-6);font-size:var(--fs-sm);line-height:1.5;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden} caption{text-align:left;color:var(--text-muted);padding:12px 14px 10px;font:600 var(--fs-micro)/1 var(--font-mono);letter-spacing:0.1em;text-transform:uppercase;border-bottom:1px solid var(--border)} th,td{border:0;border-bottom:1px solid var(--border);padding:11px 14px;text-align:left;vertical-align:top} thead tr th{color:var(--text-muted);font-size:var(--fs-micro);line-height:1;padding:12px 14px} tbody tr:last-child th,tbody tr:last-child td{border-bottom:0} tbody th[scope="row"]{font-weight:550;white-space:nowrap} td.num,.num{font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--text-muted)} td.num time{color:var(--live)} td.num time::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--live);margin-right:7px;vertical-align:1px} th.col-score,td.col-score{text-align:right} td.rank{text-align:right;font:700 1.25rem/1.1 var(--font-mono);color:var(--text-muted);letter-spacing:-0.03em} .table-wrap{overflow-x:auto} .table-wrap table{min-width:520px} table a{text-decoration:none} table a:hover{color:var(--accent)} td .cell-id a,th .cell-id a{color:var(--text)} td .cell-id a:hover,th .cell-id a:hover{color:var(--accent)} .cell-id{display:flex;align-items:center;gap:10px} .platform-table th[scope="row"]{white-space:normal} .platform-table td{color:var(--text-muted)} .platform-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);padding:var(--sp-3) 0.9375rem;margin-bottom:var(--sp-3)} .platform-card h3{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:0.92rem;line-height:1.3} .platform-card h3 a{text-decoration:none} .platform-card .card-facts{margin:var(--sp-1) 0 0;color:var(--text-muted);font-size:var(--fs-xs)} .platform-card.sponsored{border-color:var(--accent)} .tag-sponsored{font-size:var(--fs-micro);letter-spacing:0.07em;color:#fff;background:var(--accent);border-radius:var(--radius-sm);padding:4px 8px} .score-badge{display:inline-block;min-width:3em;text-align:center;font:700 0.8125rem/1.35 var(--font-mono);border-radius:var(--radius-sm);padding:3px 8px;border:1px solid var(--border)} .score-ok{color:var(--ok);border-color:var(--ok)} .score-warn{color:var(--warn);border-color:var(--warn)} .score-fail{color:var(--fail);border-color:var(--fail)} .score-na{color:var(--text-muted)} .fiche-head{padding-bottom:var(--sp-6);border-bottom:1px solid var(--border)} .fiche-head h1{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);font-size:clamp(1.7rem,3.4vw,2.4rem)} .fiche-head .score-badge{font-size:1.25rem;padding:6px 11px;border-radius:var(--radius)} .fiche-head .fiche-meta{color:var(--text-muted);line-height:1.7} .fiche-head .fiche-meta a{color:var(--text-muted)} .fiche-head .fiche-meta > a:first-of-type{color:var(--text)} .fiche-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3) 1.25rem;margin-top:0.9375rem} .visit{display:inline-block;font-weight:700;color:#fff;background:var(--accent);text-decoration:none;border:0;border-radius:var(--radius);padding:12px 18px;line-height:1} .visit:hover{color:#fff;filter:brightness(1.08)} .freshness{font-size:var(--fs-xs);color:var(--text-muted);margin:0} .freshness time{color:var(--live);font-family:var(--font-mono);font-size:var(--fs-mono)} .freshness time::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--live);margin-right:7px;vertical-align:1px} .freshness.warn{color:var(--warn)} .freshness.warn time{color:var(--warn)} .freshness.warn time::before{background:var(--warn)} .attr-table th[scope="row"]{width:15rem} @media (max-width:719px){.attr-table th[scope="row"]{width:auto;white-space:normal}} .attr-table caption{color:var(--text)} .feature-list{margin:0;padding-left:1.15em} @media (min-width:720px){.feature-list{columns:2;column-gap:2rem}} .feature-list li{margin-bottom:3px;break-inside:avoid} .favicon img{width:22px;height:22px;border-radius:6px;vertical-align:-5px} .favicon-fallback{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--bg-elev);border:1px solid var(--chip-border);font:700 var(--fs-micro)/1 var(--font-mono);color:var(--text-muted)} .favicon-lg img,.favicon-lg .favicon-fallback{width:34px;height:34px;font-size:0.875rem;border-radius:9px} .favicon-lg img{vertical-align:-7px} .score-detail .axis{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elev);padding:var(--sp-4) 1.25rem;margin-bottom:var(--sp-3)} @media (min-width:720px){.score-detail .axis{display:grid;grid-template-columns:minmax(260px,1fr) minmax(260px,1.4fr);gap:10px 1.75rem;align-items:start}} .score-detail .axis h3{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 var(--sp-2);font-size:1rem;line-height:1.25} .score-detail .justification{margin:0;max-width:74ch;line-height:1.65;text-wrap:pretty} .score-meta{color:var(--text-muted);font-size:var(--fs-xs);margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3)} .score-meta time{color:var(--live);font-family:var(--font-mono);font-size:var(--fs-mono)} .score-meta a{color:var(--text-muted)} .method{display:inline-block;font-size:var(--fs-micro);border:1px solid;border-radius:var(--radius-sm);padding:4px 8px;line-height:1} .method-observed{color:var(--ok)} .method-declared{color:var(--text);border-color:var(--chip-border)} .method-inferred{color:var(--warn)} .pros-cons{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp-4) var(--sp-8)} .pros h2,.cons h2{font-size:var(--fs-lg);margin-top:var(--sp-6)} .pros h2{color:var(--ok)} .cons h2{color:var(--fail)} .pros ul,.cons ul{list-style:none;margin:0;padding:0} .pros li,.cons li{border-top:1px solid var(--border);padding:10px 0 0 1.5rem;margin-bottom:10px;position:relative;font-size:var(--fs-sm);line-height:1.6;max-width:70ch;text-wrap:pretty} .pros li::before,.cons li::before{position:absolute;left:0.25rem;font-weight:700} .pros li::before{content:"+";color:var(--ok)} .cons li::before{content:"−";color:var(--fail)} .prose p{max-width:70ch;font-size:var(--fs-md);line-height:1.75;text-wrap:pretty} .verdict{border-left:3px solid var(--accent);padding-left:0.9375rem} .related-vs ul,.alternatives-liens ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 var(--sp-6)} .related-vs li{border-top:1px solid var(--border)} .related-vs li a{display:block;padding:10px 0;font-size:var(--fs-sm);text-decoration:none} .home-hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--sp-8) 3rem;padding:var(--sp-6) 0 var(--sp-8);border-bottom:1px solid var(--border);align-items:start} .home-hero h1{max-width:22ch} .axes-weights{max-width:440px;width:100%} .axes-weights table{margin:0;font-size:var(--fs-sm)} .axes-weights caption{font:650 1.05rem/1.3 var(--font);letter-spacing:-0.015em;text-transform:none;color:var(--text);padding:16px 18px 12px} .axes-weights th[scope="row"]{font-weight:450;color:var(--text);padding:12px 18px;white-space:normal} .axes-weights td{text-align:right;padding:12px 18px;font-weight:650;color:var(--text)} .cat-block{border-bottom:1px solid var(--border);padding:var(--sp-8) 0} .cat-block h2{margin:0;font-size:var(--fs-h2)} .cat-block h2 a{text-decoration:none} .cat-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp-3);margin-bottom:0.9375rem} .cat-count{font-size:var(--fs-mono);font-weight:400;letter-spacing:0.03em;text-transform:none;color:var(--text-muted)} .subcats{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0;margin:0 0 1rem} .subcats a{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1;color:var(--text);font-weight:500;text-decoration:none;border:1px solid var(--chip-border);border-radius:var(--radius);padding:9px 11px;background:var(--bg-elev)} .subcats a::after{content:"→";color:#fff;background:var(--accent);border-radius:6px;padding:3px 6px;margin-left:9px;font-size:0.68rem;font-weight:700;line-height:1} .subcats a:hover{border-color:var(--accent);color:var(--accent)} .more{display:inline-block;background:var(--accent);color:#fff;font-family:var(--font-mono);font-size:0.8rem;font-weight:700;text-decoration:none;border-radius:var(--radius);padding:13px 18px;line-height:1.3} .more:hover{color:#fff;filter:brightness(1.08)} .home-articles{border-top:1px solid var(--border);padding-top:var(--sp-8)} .articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-4)} .article-card{display:flex;flex-direction:column;gap:0.55rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elev);padding:var(--sp-4) 1.125rem;text-decoration:none;color:var(--text)} .article-card time{font-family:var(--font-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:0.09em;color:var(--text-muted)} .article-card h3{margin:0;font-size:var(--fs-md);line-height:1.35} .article-card p{margin:0;font-size:var(--fs-xs);line-height:1.55;color:var(--text-muted)} .article-cta{margin-top:auto;padding-top:0.35rem;font-family:var(--font-mono);font-size:0.72rem;font-weight:700;color:var(--accent)} .article-card:hover{border-color:var(--accent)} .article-card:hover h3{color:var(--accent)} .cat-nav ul{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0;margin:var(--sp-6) 0} .cat-nav a{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1;color:var(--text);font-weight:500;text-decoration:none;border:1px solid var(--chip-border);border-radius:var(--radius);padding:9px 11px;background:var(--bg-elev)} .cat-nav a .cat-count{color:#fff;background:var(--accent);border-radius:6px;padding:3px 6px;margin-left:9px;font-size:0.68rem;font-weight:700;line-height:1} .cat-nav a:hover{border-color:var(--accent);color:var(--accent)} .cat-block{scroll-margin-top:var(--sp-6)} .table-scroll{max-height:34rem;overflow-y:auto;margin-bottom:var(--sp-4)} .table-scroll .table-wrap table{margin-bottom:0} .table-scroll thead tr th{position:sticky;top:0;z-index:1;background:var(--bg-elev)} .cat-intro p{max-width:70ch} .std-form{max-width:40rem} .std-form .hp{position:absolute;left:-9999px;height:0;overflow:hidden} .std-form label{display:block;font-weight:600;margin-bottom:6px;font-size:var(--fs-xs)} .std-form input,.std-form select,.std-form textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;font:inherit;font-size:0.92rem} .std-form button{background:var(--accent);color:#fff;border:0;border-radius:var(--radius);padding:13px 24px;font:inherit;font-size:var(--fs-base);font-weight:700;cursor:pointer} .std-form button:hover{filter:brightness(1.08)} .search label{display:block;font-weight:600;margin-bottom:7px;font-size:0.75rem} .search input{width:100%;max-width:32rem;background:var(--bg-elev);color:var(--text);border:1px solid var(--chip-border);border-radius:var(--radius);padding:12px 15px;font:inherit;font-size:0.92rem} .age-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(7,7,14,0.92);padding:var(--sp-4)} .age-gate-carte{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-8);max-width:28rem} .age-gate-carte h2{margin:0 0 var(--sp-3);color:var(--accent);font-size:var(--fs-xl)} .age-gate-carte p{color:var(--text-muted);line-height:1.6} .age-gate-boutons{display:flex;gap:var(--sp-4);align-items:center;margin:var(--sp-4) 0 0} .age-gate-boutons button{background:var(--accent);color:#fff;border:0;border-radius:var(--radius);padding:13px 24px;font:inherit;font-size:var(--fs-base);font-weight:700;cursor:pointer} .age-gate-boutons a{color:var(--text-muted)} .blog-list{list-style:none;margin:0;padding:0} .blog-list li{border-top:1px solid var(--border);padding:var(--sp-3) 0} .blog-list li > a{font-weight:600;font-size:var(--fs-md);text-decoration:none} .blog-list li > a:hover{color:var(--accent)} .blog-facts{margin:var(--sp-1) 0 0;color:var(--text-muted);font-size:var(--fs-xs)} .blog-facts time{font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--live)} .blog-extrait{margin:var(--sp-1) 0 0;color:var(--text-muted);font-size:var(--fs-sm);max-width:80ch} .cat-articles{margin-top:var(--sp-6)} .blog-article .byline{color:var(--text-muted);font-size:var(--fs-xs)} .blog-article .byline time{font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--live)} .article-note{border-left:3px solid var(--accent-2);padding-left:0.9375rem;color:var(--text-muted);font-size:var(--fs-xs);max-width:70ch} .article-note time{font-family:var(--font-mono);color:var(--live)} .faq{border-top:1px solid var(--border);padding-top:var(--sp-6);margin-top:var(--sp-6)} .faq h2{margin-top:0;font-size:var(--fs-h2)} .faq-item{border-top:1px solid var(--border);padding:var(--sp-4) 0} .faq-item h3{margin:0 0 var(--sp-2);font-size:var(--fs-md)} .faq-item p{margin:0;max-width:80ch;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.65} .policy-version{color:var(--text-muted);font-size:var(--fs-xs)} .glossary-date{color:var(--text-muted);font-size:var(--fs-xs)} .static-page p,.static-page li{max-width:75ch} .static-page p{font-size:var(--fs-md);line-height:1.7}