
:root{
  --bg:#f6f8fc;--surface:#ffffff;--surface-2:#eef4ff;--surface-3:#eef9fd;
  --ink:#10213a;--muted:#60708a;--line:#dfe7f2;--primary:#246bfe;--primary-2:#168dc8;
  --acid:#8dd7f3;--acid-ink:#0a3450;--coral:#ff6b6b;--cyan:#19a6d1;--good:#0b9d70;--warn:#b86500;--bad:#c53e50;
  --nav:rgba(246,248,252,.88);--shadow:0 24px 70px rgba(33,63,115,.11);--shadow-sm:0 10px 30px rgba(33,63,115,.07);
  --radius:24px;--radius-sm:14px;--max:1180px;
}
html[data-theme="dark"]{
  --bg:#08111f;--surface:#0f1b2d;--surface-2:#132541;--surface-3:#10293a;
  --ink:#ecf4ff;--muted:#a3b4ca;--line:#223552;--primary:#69a1ff;--primary-2:#4fc1e8;
  --acid:#74d4f4;--acid-ink:#082a3d;--coral:#ff8181;--cyan:#57dbe2;--good:#55d9ae;--warn:#ffc06a;--bad:#ff8995;
  --nav:rgba(8,13,22,.88);--shadow:0 24px 70px rgba(0,0,0,.34);--shadow-sm:0 10px 30px rgba(0,0,0,.22);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:
radial-gradient(circle at 12% 2%,rgba(36,107,254,.11),transparent 28rem),radial-gradient(circle at 88% 10%,rgba(25,166,209,.08),transparent 24rem),var(--bg);color:var(--ink);line-height:1.65}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}img,svg{max-width:100%}button,input,select{font:inherit}button{cursor:pointer}.container{width:min(calc(100% - 2rem),var(--max));margin-inline:auto}.narrow{width:min(calc(100% - 2rem),850px);margin-inline:auto}.skip-link{position:absolute;left:-9999px;top:.6rem;background:var(--surface);color:var(--ink);padding:.7rem 1rem;border-radius:10px;z-index:999}.skip-link:focus{left:.6rem}
.site-header{position:sticky;top:0;z-index:80;background:var(--nav);backdrop-filter:blur(18px);border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.nav-wrap{min-height:76px;display:flex;align-items:center;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--ink);font-weight:900;letter-spacing:-.04em}.brand:hover{text-decoration:none}.brand-mark{position:relative;width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--primary),var(--primary-2));box-shadow:0 10px 28px rgba(36,107,254,.26);display:grid;place-items:center;color:white;overflow:hidden}.brand-mark::before{content:"";position:absolute;width:29px;height:14px;border:3px solid rgba(255,255,255,.82);border-bottom:0;border-radius:22px 22px 0 0;bottom:8px}.brand-mark::after{content:"";position:absolute;width:3px;height:14px;background:var(--acid);border-radius:3px;transform:rotate(42deg);transform-origin:bottom;bottom:9px}.brand-name{font-size:1.14rem}.brand-name b{color:var(--primary)}.site-nav{margin-left:auto;display:flex;align-items:center;gap:.15rem}.site-nav>a,.nav-drop>a{color:var(--muted);padding:.58rem .68rem;border-radius:11px;font-size:.92rem;font-weight:750}.site-nav a:hover,.site-nav a[aria-current="page"]{text-decoration:none;color:var(--ink);background:var(--surface-2)}.nav-drop{position:relative}.nav-drop>a{display:inline-flex;gap:.3rem;align-items:center}.nav-menu{position:absolute;top:100%;left:0;min-width:280px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:.55rem;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(7px);transition:.17s}.nav-drop:hover .nav-menu,.nav-drop:focus-within .nav-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav-menu span{display:block;padding:.5rem .65rem .25rem;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.nav-menu a{display:block;color:var(--muted);padding:.55rem .65rem;border-radius:10px;font-size:.9rem}.nav-menu a:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}.nav-actions{display:flex;gap:.45rem}.icon-btn,.menu-btn{width:42px;height:42px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;display:grid;place-items:center}.menu-btn{display:none}
.hero{padding:78px 0 48px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:2.2rem;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;color:var(--primary);font-size:.8rem;letter-spacing:.11em;text-transform:uppercase;font-weight:900;margin-bottom:1rem}.eyebrow::before{content:"";width:26px;height:3px;background:var(--acid);border-radius:3px}.hero h1,.article-hero h1,h2,h3{line-height:1.08;letter-spacing:-.045em;margin:0 0 .65em}.hero h1{font-size:clamp(2.65rem,6vw,5.2rem);max-width:12ch}.hero h1 .accent{position:relative;white-space:nowrap}.hero h1 .accent::after{content:"";position:absolute;height:.24em;left:0;right:0;bottom:.02em;background:var(--acid);z-index:-1;transform:skewX(-12deg)}h2{font-size:clamp(1.75rem,3.8vw,2.75rem)}h3{font-size:1.18rem}.lead{font-size:clamp(1.05rem,2vw,1.23rem);color:var(--muted);max-width:62ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.btn{border:0;border-radius:13px;padding:.82rem 1.08rem;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:.48rem;transition:transform .17s ease,box-shadow .17s ease}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--primary);color:white;box-shadow:0 12px 28px rgba(36,107,254,.22)}.btn-acid{background:var(--acid);color:var(--acid-ink);box-shadow:0 12px 28px rgba(141,215,243,.22)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.speed-card{position:relative;background:linear-gradient(145deg,#10284a,#155aa8 56%,#168db8);color:white;border-radius:32px;padding:1.55rem;box-shadow:0 30px 80px rgba(28,84,145,.26);overflow:hidden;min-height:430px}.speed-card::before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;border:1px solid rgba(255,255,255,.14);right:-125px;top:-105px}.speed-card::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:rgba(116,212,244,.09);left:-60px;bottom:-55px}.speed-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;font-weight:850;opacity:.75}.gauge{--p:0;position:relative;width:min(280px,78vw);aspect-ratio:1;margin:1.2rem auto .6rem;border-radius:50%;background:conic-gradient(from 225deg,var(--acid) calc(var(--p)*2.7deg),rgba(255,255,255,.13) 0 270deg,transparent 0);transform:rotate(0)}.gauge::before{content:"";position:absolute;inset:20px;background:#16345c;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.gauge-inner{position:absolute;inset:38px;border-radius:50%;display:grid;place-items:center;text-align:center;z-index:2;background:radial-gradient(circle,rgba(255,255,255,.05),transparent 70%)}.gauge-value{font-size:clamp(2.2rem,7vw,4.4rem);line-height:1;font-weight:950;letter-spacing:-.06em}.gauge-unit{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;opacity:.7}.speed-mini-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.speed-mini{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.13);border-radius:15px;padding:.78rem}.speed-mini span{display:block;font-size:.72rem;opacity:.7;text-transform:uppercase;letter-spacing:.08em}.speed-mini strong{display:block;margin-top:.2rem;font-size:1.05rem}.speed-actions{position:relative;z-index:2;display:flex;justify-content:center;margin-top:1rem}.speed-note{position:relative;z-index:2;font-size:.78rem;opacity:.7;text-align:center;margin:.7rem 0 0}
.section{padding:66px 0}.section-sm{padding:38px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.5rem}.section-head p{max-width:58ch;color:var(--muted);margin:0}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.card{background:color-mix(in srgb,var(--surface) 95%,transparent);border:1px solid var(--line);border-radius:var(--radius);padding:1.35rem;box-shadow:var(--shadow-sm)}.card p{color:var(--muted)}.card-link{color:var(--ink);transition:transform .17s,border-color .17s}.card-link:hover{text-decoration:none;transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}.icon-box{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:var(--surface-2);color:var(--primary);font-weight:950;margin-bottom:1rem}.icon-acid{background:var(--surface-3);color:#0b678a}.big-number{font-size:clamp(2.3rem,5vw,4.4rem);font-weight:950;letter-spacing:-.06em;line-height:1}.stat-label{color:var(--muted);font-size:.86rem}.badge{display:inline-flex;align-items:center;padding:.28rem .58rem;border-radius:999px;font-size:.76rem;font-weight:900;background:var(--surface-2);color:var(--primary)}.badge-acid{background:var(--acid);color:var(--acid-ink)}.muted{color:var(--muted)}.center{text-align:center}.strip{border-block:1px solid var(--line);background:color-mix(in srgb,var(--surface) 75%,transparent)}
.timeline{position:relative;display:grid;gap:1rem}.timeline::before{content:"";position:absolute;left:78px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--primary),var(--acid))}.timeline-item{display:grid;grid-template-columns:62px 1fr;gap:2rem;position:relative}.timeline-year{font-weight:950;color:var(--primary);padding-top:.9rem}.timeline-body{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem 1.2rem;box-shadow:var(--shadow-sm)}.timeline-body::before{content:"";position:absolute;left:72px;top:24px;width:14px;height:14px;border-radius:50%;background:var(--acid);box-shadow:0 0 0 5px var(--bg)}
.article-hero{padding:62px 0 26px}.article-hero h1{font-size:clamp(2.25rem,5vw,4.3rem);max-width:19ch}.breadcrumbs{font-size:.88rem;color:var(--muted);margin-bottom:1.1rem}.breadcrumbs a{color:var(--muted)}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:2rem;align-items:start}.prose{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.2rem,4vw,2.25rem);box-shadow:var(--shadow)}.prose h2{font-size:clamp(1.5rem,3vw,2.05rem);margin-top:1.55em}.prose h3{margin-top:1.35em}.prose p,.prose li{color:color-mix(in srgb,var(--ink) 84%,var(--muted));text-align:justify;hyphens:auto}.prose table{width:100%;border-collapse:collapse;display:block;overflow:auto}.prose th,.prose td{padding:.72rem .75rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose th{color:var(--ink);background:var(--surface-2)}.toc{position:sticky;top:96px;background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:1rem}.toc strong{display:block;margin-bottom:.6rem}.toc a{display:block;color:var(--muted);padding:.28rem 0;font-size:.9rem}.callout{padding:1rem 1.1rem;border-left:4px solid var(--primary);background:var(--surface-2);border-radius:0 13px 13px 0;margin:1.25rem 0}.callout.acid{border-color:#168dc8;background:var(--surface-3)}.formula{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;padding:1rem;background:#111827;color:#f7fafc;border-radius:14px;overflow:auto}.source-list{font-size:.9rem}.source-list a{word-break:break-word}
.tool-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.35rem;box-shadow:var(--shadow-sm)}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}.field label{display:block;font-weight:800;font-size:.88rem;margin-bottom:.35rem}.input,.select{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:.82rem .9rem;border-radius:12px;outline:0}.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 15%,transparent)}.result{margin-top:1rem;padding:1rem;border-radius:14px;background:var(--surface-2);min-height:58px}.result strong{font-size:1.2rem}.result[data-state="success"]{color:var(--good)}.result[data-state="error"]{color:var(--bad)}
.test-console{display:grid;grid-template-columns:.95fr 1.05fr;gap:1.1rem}.test-main{background:linear-gradient(145deg,#10284a,#155aa8 55%,#168db8);color:white;border-radius:28px;padding:1.35rem;min-height:510px;box-shadow:0 28px 70px rgba(28,84,145,.24)}.test-side{display:grid;gap:1rem}.test-results{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.metric{padding:1rem;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.metric span{display:block;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.metric strong{display:block;font-size:1.55rem;letter-spacing:-.04em;margin-top:.15rem}.progress-line{height:7px;background:rgba(255,255,255,.15);border-radius:99px;overflow:hidden;margin:.8rem 0}.progress-line span{display:block;height:100%;width:0;background:var(--acid);transition:width .3s}.test-status{font-size:.9rem;opacity:.8;min-height:1.6em}.test-privacy{font-size:.8rem;color:var(--muted)}
.ad-slot{display:none}.ad-slot.is-active{display:grid;min-height:110px;border:1px dashed color-mix(in srgb,var(--muted) 35%,transparent);border-radius:16px;place-items:center;background:color-mix(in srgb,var(--surface) 76%,transparent);color:var(--muted);font-size:.73rem;letter-spacing:.08em;text-transform:uppercase;margin:1.5rem 0}.ad-slot.is-active ins.adsbygoogle{width:100%;min-height:100px}
.faq{display:grid;gap:.7rem}details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:.95rem 1rem}summary{cursor:pointer;font-weight:850}details p{color:var(--muted)}
.site-footer{margin-top:72px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 78%,transparent)}.footer-grid{display:grid;grid-template-columns:1.25fr .8fr .9fr 1fr;gap:2rem;padding:44px 0 28px}.footer-grid p{color:var(--muted)}.footer-links{display:grid;gap:.42rem}.footer-links a{color:var(--muted)}.footer-bottom{border-top:1px solid var(--line);padding:1rem 0 1.4rem;display:flex;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.87rem}.footer-credit{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.footer-credit a{display:inline-flex;align-items:center;gap:.42rem;color:var(--ink);font-weight:800}.footer-credit-logo{width:54px;height:auto;max-height:40px;object-fit:contain}.footer-credit-picture{display:inline-flex;align-items:center;line-height:0}.consent-actions{margin:1rem 0}
@media(max-width:1020px){.site-nav{display:none;position:absolute;top:76px;left:1rem;right:1rem;flex-direction:column;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:17px;padding:.6rem;box-shadow:var(--shadow)}.site-nav.open{display:flex}.nav-drop{display:block}.nav-menu{position:static;display:none;opacity:1;visibility:visible;pointer-events:auto;transform:none;box-shadow:none;margin:.2rem 0 .4rem}.nav-drop.open .nav-menu{display:block}.menu-btn{display:grid}.hero-grid,.article-layout,.test-console{grid-template-columns:1fr}.toc{position:static;order:-1}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.nav-wrap{min-height:66px}.site-nav{top:66px}.hero{padding-top:48px}.hero h1{font-size:clamp(2.5rem,13vw,4rem)}.article-hero h1{font-size:clamp(2.05rem,10vw,3rem)}.grid-2,.grid-3,.grid-4,.footer-grid,.field-grid{grid-template-columns:1fr}.section-head{align-items:start;flex-direction:column}.footer-bottom{flex-direction:column}.speed-mini-grid{grid-template-columns:1fr}.test-results{grid-template-columns:1fr 1fr}.timeline::before{left:54px}.timeline-item{grid-template-columns:42px 1fr;gap:1.5rem}.timeline-body::before{left:48px}.prose p,.prose li{text-align:left}.brand-name{font-size:1.02rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* ===== TestMaCo v1.3 — bleu + vert électrique, rouge ponctuel ===== */
:root{
  --bg:#f5f8ff;--surface:#ffffff;--surface-2:#eaf2ff;--surface-3:#eefcff;
  --ink:#0a1a33;--muted:#5c6f8d;--line:#d9e5f5;
  --primary:#1769ff;--primary-2:#00a8ff;--blue-deep:#0c2f66;
  --acid:#a8ff24;--acid-ink:#153100;--coral:#ff4658;--cyan:#18c4f4;
  --good:#10b981;--warn:#f59e0b;--bad:#e43d52;
  --nav:rgba(245,248,255,.88);
  --font-body:"Segoe UI Variable Text","Aptos","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-display:"Trebuchet MS","Avenir Next","Segoe UI",sans-serif;
}
html[data-theme="dark"]{
  --bg:#061124;--surface:#0b1a31;--surface-2:#10294d;--surface-3:#0a3242;
  --ink:#f1f7ff;--muted:#a9bad2;--line:#203b60;
  --primary:#65a0ff;--primary-2:#29c5ff;--blue-deep:#081c3d;
  --acid:#b7ff3d;--acid-ink:#153000;--coral:#ff6675;--cyan:#4bd7ff;
  --good:#50dfb3;--warn:#ffc363;--bad:#ff7d8a;
  --nav:rgba(6,17,36,.88);
}
body{
  font-family:var(--font-body);
  background:
    radial-gradient(circle at 8% 0%,rgba(23,105,255,.15),transparent 27rem),
    radial-gradient(circle at 93% 8%,rgba(0,168,255,.10),transparent 24rem),
    radial-gradient(circle at 78% 48%,rgba(168,255,36,.055),transparent 20rem),
    var(--bg);
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.16;
  background-image:linear-gradient(rgba(23,105,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(23,105,255,.09) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 72%);
}
h1,h2,h3,.brand-name,.big-number,.gauge-value,.metric strong{font-family:var(--font-display)}
.hero h1,.article-hero h1,h2,h3{letter-spacing:-.035em}
.site-header::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--primary)}
.brand{letter-spacing:-.035em}
.brand-mark{background:var(--primary);box-shadow:0 10px 28px rgba(23,105,255,.31)}
.brand-mark::after{background:var(--acid)}
.brand-name b{color:#66b800}
html[data-theme="dark"] .brand-name b{color:var(--acid)}
.hero{position:relative;padding-top:88px}
.hero::before{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:4%;top:28px;border:1px solid rgba(23,105,255,.10);box-shadow:0 0 0 34px rgba(0,168,255,.025),0 0 0 68px rgba(168,255,36,.018);pointer-events:none}
.eyebrow{color:var(--primary);font-family:var(--font-display);letter-spacing:.095em}
.eyebrow::before{height:4px;width:32px;background:var(--acid);box-shadow:10px 0 0 -1px var(--primary-2)}
.hero h1 .accent::after{height:.28em;background:var(--acid);border-radius:4px;transform:skewX(-9deg) rotate(-1deg)}
.btn{font-family:var(--font-display);letter-spacing:-.01em}
.btn-primary{background:var(--primary);color:white;box-shadow:0 13px 28px rgba(23,105,255,.24)}
.btn-primary:hover{background:#0d5ce7;box-shadow:0 16px 34px rgba(23,105,255,.30)}
.btn-acid{background:var(--acid);color:var(--acid-ink);box-shadow:0 13px 28px rgba(137,214,22,.22)}
.btn-acid:hover{background:#98ed16;box-shadow:0 16px 34px rgba(137,214,22,.28)}
.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn-secondary:hover{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));box-shadow:0 10px 24px rgba(23,105,255,.08)}
.speed-card{background:linear-gradient(145deg,#091f43 0%,#124d9f 48%,#087cba 100%);box-shadow:0 34px 84px rgba(12,57,124,.31);border:1px solid rgba(255,255,255,.13)}
.speed-card::before{width:370px;height:370px;border:1px dashed rgba(255,255,255,.21);box-shadow:0 0 0 22px rgba(255,255,255,.025)}
.speed-card::after{width:190px;height:190px;background:radial-gradient(circle,rgba(168,255,36,.18),rgba(168,255,36,0) 70%);left:-48px;bottom:-48px}
.speed-card .speed-label::after{content:" LIVE";display:inline-flex;margin-left:.6rem;padding:.13rem .42rem;border-radius:999px;background:var(--coral);color:white;font-size:.62rem;letter-spacing:.08em;vertical-align:1px;box-shadow:0 0 0 4px rgba(255,70,88,.13)}
.gauge{background:conic-gradient(from 225deg,var(--acid) calc(var(--p)*2.7deg),rgba(255,255,255,.13) 0 270deg,transparent 0);filter:drop-shadow(0 12px 24px rgba(0,0,0,.12))}
.speed-mini{background:rgba(4,22,49,.26);backdrop-filter:blur(8px)}
.speed-mini:nth-child(1){border-top:3px solid var(--acid)}
.speed-mini:nth-child(2){border-top:3px solid var(--cyan)}
.speed-mini:nth-child(3){border-top:3px solid var(--coral)}
.card{position:relative;overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.card::before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--primary);opacity:.18}
.card:nth-child(3n+2)::before{background:var(--primary-2)}
.card:nth-child(3n+3)::before{background:var(--acid)}
.card-link:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(27,68,129,.13);border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}
.card-link:hover::before{opacity:.92}
.icon-box{background:var(--surface-2);box-shadow:inset 0 0 0 1px rgba(23,105,255,.06)}
.icon-acid{background:color-mix(in srgb,var(--acid) 32%,var(--surface));color:#4f7900}
html[data-theme="dark"] .icon-acid{background:color-mix(in srgb,var(--acid) 18%,var(--surface));color:var(--acid)}
.badge{border:1px solid color-mix(in srgb,var(--primary) 16%,transparent)}
.badge-acid{background:var(--acid);color:var(--acid-ink);border:0}
.strip{position:relative;background:color-mix(in srgb,var(--surface) 78%,var(--surface-2));overflow:hidden}
.strip::after{content:"0100101  •  PING  •  56K  •  ADSL  •  FTTH  •  5G  •  10G";position:absolute;right:-1rem;bottom:-.8rem;color:color-mix(in srgb,var(--primary) 9%,transparent);font-family:var(--font-display);font-weight:900;font-size:clamp(2rem,5vw,5rem);letter-spacing:.08em;white-space:nowrap;pointer-events:none;line-height:1}
.timeline::before{background:linear-gradient(var(--primary),var(--primary-2),var(--acid))}
.timeline-body::before{background:var(--acid);box-shadow:0 0 0 5px var(--bg),0 0 18px rgba(168,255,36,.34)}
.article-hero{position:relative;overflow:hidden}
.article-hero::after{content:"";position:absolute;width:330px;height:330px;right:-110px;top:-150px;border-radius:50%;border:36px solid rgba(23,105,255,.05);box-shadow:0 0 0 34px rgba(0,168,255,.025);pointer-events:none}
.tool-panel,.test-console{border-top:4px solid var(--primary)}
.progress-line span{background:var(--acid)}
.ad-slot{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--surface) 94%,transparent) 10px,color-mix(in srgb,var(--surface-2) 82%,transparent) 10px,color-mix(in srgb,var(--surface-2) 82%,transparent) 20px)}
.site-footer{position:relative}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--primary)}
.site-footer::after{content:"";position:absolute;left:0;top:0;width:22%;height:4px;background:var(--acid)}
@media (prefers-reduced-motion:no-preference){
  .brand-mark{animation:tmGlow 5s ease-in-out infinite}
  @keyframes tmGlow{0%,100%{box-shadow:0 10px 28px rgba(23,105,255,.26)}50%{box-shadow:0 12px 34px rgba(0,168,255,.34)}}
}

/* ===== TestMaCo Speed 2.0 ===== */
.speed-pro-shell{display:grid;gap:1.15rem}
.speed-pro-top{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:1rem;align-items:stretch}
.speed-pro-panel{background:var(--surface);border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow-sm);overflow:hidden}
.speed-pro-main{position:relative;background:#0b2857;color:white;padding:1.4rem;min-height:520px;border:1px solid rgba(255,255,255,.08)}
.speed-pro-main::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,black,transparent 88%)}
.speed-pro-main::after{content:"";position:absolute;right:-90px;top:-120px;width:330px;height:330px;border:1px dashed rgba(168,255,36,.2);border-radius:50%;box-shadow:0 0 0 28px rgba(24,196,244,.04),0 0 0 56px rgba(23,105,255,.04);pointer-events:none}
.speed-pro-head,.speed-pro-gauge-wrap,.speed-pro-live,.speed-pro-actions,.pro-progress-wrap{position:relative;z-index:2}
.speed-pro-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.speed-pro-brand{display:flex;gap:.75rem;align-items:center}.live-pill{display:inline-flex;align-items:center;gap:.38rem;padding:.24rem .52rem;border-radius:999px;background:var(--coral);color:white;font-family:var(--font-display);font-size:.68rem;font-weight:900;letter-spacing:.08em}.live-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:white;box-shadow:0 0 0 5px rgba(255,255,255,.12)}
.speed-pro-sub{font-size:.78rem;color:rgba(255,255,255,.68);margin-top:.2rem}.speed-pro-mode-name{font-family:var(--font-display);font-weight:900;font-size:.82rem;color:var(--acid);text-align:right}
.speed-pro-gauge-wrap{display:grid;place-items:center;padding:.2rem 0}
.pro-gauge{--p:0;width:min(300px,78vw);aspect-ratio:1;border-radius:50%;position:relative;background:conic-gradient(from 225deg,var(--acid) calc(var(--p)*2.7deg),rgba(255,255,255,.13) 0 270deg,transparent 0);filter:drop-shadow(0 18px 30px rgba(0,0,0,.22))}
.pro-gauge::before{content:"";position:absolute;inset:20px;border-radius:50%;background:#0a2147;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),inset 0 0 46px rgba(23,105,255,.12)}
.pro-gauge-inner{position:absolute;inset:42px;border-radius:50%;display:grid;place-items:center;text-align:center;z-index:2}
.pro-gauge-value{font-family:var(--font-display);font-size:clamp(3rem,8vw,5.2rem);line-height:.9;font-weight:950;letter-spacing:-.07em}.pro-gauge-unit{font-weight:850;letter-spacing:.08em;font-size:.8rem;text-transform:uppercase;color:rgba(255,255,255,.68);margin-top:.4rem}.pro-phase{margin-top:.6rem;color:rgba(255,255,255,.78);font-size:.85rem;min-height:1.4rem}
.speed-pro-live{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin-top:.2rem}.pro-live-item{padding:.65rem .7rem;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.12);border-radius:14px}.pro-live-item span{display:block;text-transform:uppercase;font-size:.62rem;letter-spacing:.08em;color:rgba(255,255,255,.56)}.pro-live-item strong{display:block;margin-top:.1rem;font-family:var(--font-display);font-size:1rem}.pro-live-item:nth-child(1){border-top:3px solid var(--acid)}.pro-live-item:nth-child(2){border-top:3px solid var(--cyan)}.pro-live-item:nth-child(3){border-top:3px solid var(--coral)}.pro-live-item:nth-child(4){border-top:3px solid #fff}
.pro-progress-wrap{margin-top:.85rem}.pro-progress{height:8px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}.pro-progress>span{display:block;width:0;height:100%;background:var(--acid);border-radius:inherit;transition:width .25s ease}.pro-status{font-size:.79rem;color:rgba(255,255,255,.72);margin:.48rem 0 0;min-height:1.3rem}
.speed-pro-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1rem}.speed-pro-actions .btn{min-width:190px}.btn-stop{background:var(--coral);color:white}.btn-stop:hover{background:#e83749}
.speed-pro-controls{padding:1.2rem;display:grid;gap:1rem}.speed-pro-controls h2{font-size:1.35rem;margin:0}.control-group{display:grid;gap:.5rem}.control-label{font-family:var(--font-display);font-weight:900;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.segmented label,.unit-toggle label{position:relative}.segmented input,.unit-toggle input{position:absolute;opacity:0;pointer-events:none}.segmented span,.unit-toggle span{display:flex;justify-content:center;align-items:center;min-height:42px;padding:.55rem .7rem;border:1px solid var(--line);border-radius:11px;background:var(--surface);font-weight:850;font-size:.84rem;cursor:pointer;transition:.16s}.segmented input:checked+span,.unit-toggle input:checked+span{background:var(--primary);color:white;border-color:var(--primary);box-shadow:0 8px 20px rgba(23,105,255,.18)}.mode-hint{font-size:.76rem;color:var(--muted);margin:0}.unit-toggle{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.control-select{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.7rem .75rem;border-radius:11px}.toggle-row{display:flex;gap:.8rem;flex-wrap:wrap}.check-chip{display:inline-flex;align-items:center;gap:.42rem;font-size:.86rem;color:var(--muted)}.check-chip input{accent-color:var(--primary)}.data-warning{font-size:.78rem;border-left:4px solid var(--acid);background:color-mix(in srgb,var(--acid) 10%,var(--surface));padding:.7rem .8rem;border-radius:10px;color:var(--muted)}
.result-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.hero-metric{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1rem 1.05rem;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.hero-metric::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--primary)}.hero-metric:nth-child(2)::before{background:var(--coral)}.hero-metric:nth-child(3)::before{background:var(--acid)}.hero-metric:nth-child(4)::before{background:var(--cyan)}.hero-metric span{display:block;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850}.hero-metric strong{display:block;font-family:var(--font-display);font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.04em;margin-top:.18rem}.hero-metric small{color:var(--muted)}
.pro-verdict{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:1rem 1.15rem;font-size:1rem;box-shadow:var(--shadow-sm)}
.pro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.advanced-metric{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:.9rem}.advanced-metric span{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:850}.advanced-metric strong{display:block;font-family:var(--font-display);font-size:1.35rem;margin-top:.14rem}.advanced-metric small{color:var(--muted)}
.pro-chart-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:1rem;box-shadow:var(--shadow-sm)}.pro-chart-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.65rem}.pro-chart-head h2{font-size:1.3rem;margin:0}.chart-legend{display:flex;gap:.8rem;font-size:.74rem;color:var(--muted);flex-wrap:wrap}.chart-legend span::before{content:"";display:inline-block;width:18px;height:3px;border-radius:3px;margin-right:.35rem;vertical-align:middle;background:var(--primary)}.chart-legend .up::before{background:var(--coral)}.chart-legend .latency::before{background:var(--acid)}.pro-chart{display:block;width:100%;height:220px}
.quality-wrap{display:grid;grid-template-columns:240px 1fr;gap:1rem}.overall-score{background:#0b2857;color:white;border-radius:24px;padding:1.2rem;display:grid;place-items:center;text-align:center;min-height:220px;border:1px solid rgba(255,255,255,.1)}.overall-score .number{font-family:var(--font-display);font-weight:950;font-size:4.4rem;letter-spacing:-.07em;line-height:.9}.overall-score .out-of{color:rgba(255,255,255,.56);font-size:.78rem}.overall-score .label{margin-top:.55rem;font-family:var(--font-display);font-weight:900;color:var(--acid)}.overall-score[data-state="bad"] .label{color:#ff8490}.overall-score[data-state="mid"] .label{color:#ffd166}
.quality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.quality-item{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:.85rem}.quality-item b{display:block;font-size:.82rem;margin-bottom:.25rem}.quality-item strong{font-family:var(--font-display);font-size:1.25rem}.quality-item span{display:block;color:var(--muted);font-size:.75rem}.quality-item[data-state="excellent"]{border-color:color-mix(in srgb,var(--acid) 65%,var(--line))}.quality-item[data-state="bad"]{border-color:color-mix(in srgb,var(--coral) 55%,var(--line))}
.context-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.context-item{padding:.78rem .85rem;background:var(--surface-2);border-radius:14px}.context-item span{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;font-weight:850}.context-item strong{display:block;margin-top:.14rem;font-size:.9rem;word-break:break-word}
.pro-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.pro-section-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:1.1rem;box-shadow:var(--shadow-sm)}.pro-section-card h2{font-size:1.35rem}.plan-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.plan-inputs label{display:grid;gap:.3rem;font-size:.78rem;color:var(--muted)}.plan-inputs input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:11px;padding:.7rem}.plan-result{margin-top:.8rem}.plan-score{display:flex;align-items:baseline;gap:.55rem;padding:.55rem 0}.plan-score strong{font-family:var(--font-display);font-size:1.8rem}.plan-score span{color:var(--muted);font-size:.82rem}.plan-score[data-state="good"] strong{color:var(--good)}.plan-score[data-state="mid"] strong{color:var(--warn)}.plan-score[data-state="bad"] strong{color:var(--bad)}
.report-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-mini{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:10px;padding:.58rem .72rem;font-weight:850;font-size:.8rem}.btn-mini:hover{background:var(--surface);border-color:var(--primary)}.btn-mini.danger{color:var(--bad)}
.history-wrap{overflow:auto}.history-table{width:100%;border-collapse:collapse;min-width:760px}.history-table th,.history-table td{padding:.68rem .6rem;border-bottom:1px solid var(--line);text-align:left;font-size:.78rem}.history-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem}.history-table tr:hover td{background:var(--surface-2)}
.method-badges{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1rem}.method-badges span{display:inline-flex;align-items:center;padding:.35rem .55rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.75rem;color:var(--muted);font-weight:750}.method-badges span::before{content:"✓";color:#67a800;font-weight:950;margin-right:.32rem}
.print-only{display:none}
@media(max-width:1020px){.speed-pro-top,.quality-wrap{grid-template-columns:1fr}.result-strip,.pro-grid{grid-template-columns:repeat(2,1fr)}.quality-grid,.context-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.speed-pro-main{min-height:auto}.speed-pro-live,.result-strip,.pro-grid,.quality-grid,.context-grid,.pro-two-col,.plan-inputs{grid-template-columns:1fr 1fr}.segmented{grid-template-columns:1fr}.speed-pro-head{align-items:center}.speed-pro-mode-name{display:none}.pro-chart{height:180px}.quality-wrap{grid-template-columns:1fr}.overall-score{min-height:180px}.report-actions{display:grid;grid-template-columns:1fr 1fr}.report-actions .btn-mini{width:100%}}
@media(max-width:480px){.speed-pro-live,.result-strip,.pro-grid,.quality-grid,.context-grid,.pro-two-col,.plan-inputs{grid-template-columns:1fr}.report-actions{grid-template-columns:1fr}}
@media print{.site-header,.site-footer,.ad-slot,.speed-pro-controls,.speed-pro-actions,.report-actions,.toc,.breadcrumbs,.data-warning{display:none!important}.article-hero{padding:0 0 1rem}.article-hero::after{display:none}.speed-pro-main{background:white!important;color:black!important;min-height:auto;box-shadow:none}.speed-pro-main::before,.speed-pro-main::after{display:none}.pro-gauge{display:none}.speed-pro-live{color:black}.pro-live-item{border:1px solid #ccc;background:white}.pro-live-item span,.pro-status,.speed-pro-sub{color:#555}.speed-pro-shell,.speed-pro-top,.quality-wrap,.pro-two-col{display:block}.speed-pro-panel,.hero-metric,.pro-chart-card,.pro-section-card,.advanced-metric,.quality-item{break-inside:avoid;box-shadow:none;margin-bottom:.6rem}.print-only{display:block}.section-sm{padding:10px 0}.site-footer{display:none}.container{width:100%}}
