:root{--color-canvas:#0a0f1e;--color-surface:#141e32;--color-type:#edf4fa;--color-muted:#b9c7da;--color-main:#00e0a4;--color-second:#ff5d73;--color-rule:#35445f;--color-corner:4px;--color-max:1200px;--color-font-head:'Titillium Web',system-ui,sans-serif;--color-font-body:'Titillium Web',system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem} body{margin:0;background:var(--color-canvas);color:var(--color-type);font:16px/1.55 var(--color-font-body);color-scheme:dark}
img{max-width:100%;height:auto} a{color:var(--color-main);text-underline-offset:3px}
input,select,textarea{max-width:100%;box-sizing:border-box}
input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{min-width:0;max-width:100%}
@supports (-webkit-touch-callout:none){input[type=date],input[type=time],input[type=datetime-local],input[type=month],input[type=week]{-webkit-appearance:none;appearance:none;min-height:2.75em} input::-webkit-date-and-time-value{text-align:left}}
h1,h2,h3{font-family:var(--color-font-head);line-height:1.2;letter-spacing:-.01em;color:var(--color-type)}
h1{font-size:clamp(1.9rem,4.5vw,2.8rem);margin:.2em 0 .35em} h2{font-size:clamp(1.35rem,3vw,1.8rem);margin:1.76em 0 .6em} h3{font-size:1.15rem;margin:1.6em 0 .4em}
p,ul,ol{margin:0 0 .8em}
.column{max-width:var(--color-max);margin:0 auto;padding:0 1rem} .article-area{max-width:var(--color-max);margin:0 auto;padding:1.2rem 1rem 3rem}
.skip{position:absolute;left:-9999px} .skip:focus{left:1rem;top:1rem;background:var(--color-surface);padding:.5rem;z-index:99}
.hdr-row{max-width:var(--color-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;flex-wrap:wrap}
.site-name{display:flex;align-items:center;gap:.6rem;font:800 1.15rem var(--color-font-head);color:var(--color-type);text-decoration:none}
.primary-nav{display:flex;gap:1rem;flex-wrap:wrap;align-items:center} .primary-nav a{color:var(--color-type);text-decoration:none;font-weight:600;font-size:.95rem}
.topbar{background:var(--color-canvas);border-bottom:1px solid var(--color-rule)} .hdr-row{flex-direction:column;gap:.4rem;padding:.9rem 1rem}  .primary-nav a{border-bottom:2px solid transparent;padding-bottom:2px} .primary-nav a:hover,.primary-nav a[aria-current]{border-color:var(--color-main)}
.page-top{margin:1rem 0 1.4rem} .standfirst{font-size:1.12rem;max-width:46em;color:var(--color-muted)} .page-top{text-align:center} .page-top .standfirst{margin-left:auto;margin-right:auto}
.workbench{margin:1.4rem 0 2rem}
.callout{margin:1.4em 0;padding:.9em 1.1em;background:var(--color-surface);border-left:4px solid var(--color-second);border-radius:0 var(--color-corner) var(--color-corner) 0}
.math-box{margin:1.2em 0;padding:.9em 1.1em;font-family:ui-monospace,Consolas,monospace;background:var(--color-surface);border:1px dashed var(--color-main);border-radius:var(--color-corner);overflow-x:auto}
.data-wrap{margin:1.2em 0;overflow-x:auto;border:1px solid var(--color-rule);border-radius:var(--color-corner);background:var(--color-surface)}
.tbl{width:100%;border-collapse:collapse;font-size:.95em;font-variant-numeric:tabular-nums} .tbl th,.tbl td{padding:.5em .75em;border-bottom:1px solid var(--color-rule);text-align:left}
.tbl thead th{background:color-mix(in srgb,var(--color-rule) 60%,var(--color-surface))}
ol.sequence{padding-left:1.3em} ol.sequence>li{margin:.5em 0}
.visual{margin:1.6em 0;text-align:center} .visual img{width:100%;max-width:720px;border-radius:var(--color-corner);border:1px solid var(--color-rule);background:#fff} .visual figcaption{font-size:.9em;color:var(--color-muted)}
.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:1.2em 0}
.guide-card{display:block;padding:1.1rem;background:var(--color-surface);border-radius:var(--color-corner);background:color-mix(in srgb,var(--color-rule) 45%,var(--color-surface));border:1px solid transparent;color:var(--color-type);text-decoration:none}
.guide-card b{display:block;font-family:var(--color-font-head);margin-bottom:.35rem} .guide-card span{color:var(--color-muted);font-size:.92rem} .guide-card:hover{border-color:var(--color-main)}
.guide-card--img{padding:0;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease} .guide-card--img:hover{transform:translateY(-3px);box-shadow:0 10px 24px color-mix(in srgb,var(--color-type) 14%,transparent)}
.card-img{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover} .card-txt{display:block;padding:1rem 1.1rem 1.1rem} .card-txt>span{display:block}
.blist a,.brow,.post-kicker{background:none!important}
.card-meta{display:block;margin-top:.6rem;font-size:.8rem;font-weight:700;letter-spacing:.04em;color:var(--color-main)}
.guide-grid--feat{grid-template-columns:repeat(2,minmax(0,1fr))} .guide-grid--feat>.guide-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;align-items:center} .guide-grid--feat>.guide-card:first-child b{font-size:1.35rem}
.blist{display:grid;gap:1rem;margin:1.2em 0} .brow{display:grid;grid-template-columns:240px 1fr;gap:1.1rem;align-items:center;background:var(--color-surface);border:1px solid var(--color-rule);border-radius:var(--color-corner);overflow:hidden;color:var(--color-type);text-decoration:none}
.brow .card-img{height:100%;aspect-ratio:auto;min-height:126px} .brow b{display:block;font-family:var(--color-font-head);font-size:1.12rem;margin-bottom:.3rem} .brow .card-txt>span{color:var(--color-muted);font-size:.93rem} .brow:hover{border-color:var(--color-main)}
.blist--min{list-style:none;padding:0;counter-reset:bl;gap:0} .blist--min li{counter-increment:bl;border-top:1px solid var(--color-rule)} .blist--min li:last-child{border-bottom:1px solid var(--color-rule)}
.blist--min a{display:grid;grid-template-columns:4.2rem 1fr;column-gap:1rem;padding:1.1rem .2rem;color:var(--color-type);text-decoration:none} .blist--min a::before{content:counter(bl,decimal-leading-zero);grid-row:1/4;font:800 2.4rem/1 var(--color-font-head);color:var(--color-main)}
.blist--min b{font-family:var(--color-font-head);font-size:1.15rem} .blist--min span{color:var(--color-muted);font-size:.93rem} .blist--min a:hover b{color:var(--color-main)}
.post-head--overlay{position:relative;margin:.6rem 0 1.6rem;border-radius:var(--color-corner);overflow:hidden} .post-head--overlay>img{display:block;width:100%;height:auto;min-height:300px;object-fit:cover}
.post-ov{position:absolute;inset:auto 0 0 0;padding:4rem 1.6rem 1.4rem;background:linear-gradient(transparent,color-mix(in srgb,#000 72%,transparent))} .post-ov h1,.post-ov .post-meta,.post-ov .post-kicker{color:#fff}
.post-head--band{background:var(--color-main);color:#fff;padding:2.2rem 1.6rem;border-radius:var(--color-corner)} .post-head--band h1,.post-head--band .post-meta,.post-head--band .post-kicker{color:#fff}
.post-head--split{display:grid;grid-template-columns:1.1fr 1fr;gap:1.6rem;align-items:center} .post-head--split .post-cover{margin:0}
.jump-list--chips ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.45rem} .jump-list--chips li{margin:0} .jump-list--chips a{display:inline-block;padding:.3rem .75rem;border:1px solid var(--color-rule);border-radius:999px;background:var(--color-canvas);text-decoration:none;font-size:.88rem}
.jump-list--rail{background:none;border:0;border-left:3px solid var(--color-second);border-radius:0;padding:.2rem 0 .2rem 1rem}
.i18n--globe summary{display:flex;align-items:center;gap:.35rem} .langpills{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem} .langpills a{padding:.25rem .7rem;border:1px solid var(--color-rule);border-radius:999px;text-decoration:none} .langpills a[aria-current]{background:var(--color-main);border-color:var(--color-main);color:#fff}
@media (max-width:700px){.guide-grid--feat{grid-template-columns:1fr} .guide-grid--feat>.guide-card:first-child{display:flex} .brow{grid-template-columns:1fr} .brow .card-img{min-height:0;aspect-ratio:1200/630} .post-head--split{grid-template-columns:1fr} .post-ov{position:static;background:var(--color-main);padding:1.2rem} .post-head--overlay>img{min-height:0}}
.post{max-width:48rem;margin:0 auto} .post-head{margin:.6rem 0 1.2rem} .post-head h1{font-size:clamp(2rem,5vw,3rem);line-height:1.12;letter-spacing:-.01em}
.post-kicker{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--color-main);text-decoration:none}
.upd{color:var(--color-muted);font-size:.9rem;margin:2rem 0 0} .sign{font-style:italic;color:var(--color-muted)} .post-meta{color:var(--color-muted);font-size:.92rem;margin:0} .post-cover{margin:0 0 1.6rem} .post-cover img{display:block;width:100%;height:auto;border-radius:var(--color-corner)}
.post .standfirst{font-size:1.2rem;color:var(--color-type)} .post .standfirst::first-letter{font-family:var(--color-font-head);font-size:3.1em;float:left;line-height:.9;margin:.06em .1em 0 0;color:var(--color-main)}
.post .jump-list--post{position:static!important;top:auto!important;z-index:auto;margin:0 0 1.8rem;padding:1rem 1.2rem;background:var(--color-surface);border:1px solid var(--color-rule);border-left:4px solid var(--color-main);border-radius:var(--color-corner);font-size:.95rem}
.jump-list--post ol{margin:.4rem 0 0;padding-left:1.2rem;columns:1} .jump-list--post li{margin:.2rem 0}
.post h3{color:var(--color-main)} .post blockquote{margin:1.4em 0;padding:.4em 1.2em;border-left:4px solid var(--color-second);font-size:1.1em}
.questions h3{font-size:1.05rem;margin-top:1.3em}
.where{font-size:.88rem;color:var(--color-muted);margin:.4rem 0 1rem} .where a{color:var(--color-muted)}
.go-box{margin:2.4rem 0;padding:1.4rem;background:var(--color-surface);border-radius:var(--color-corner);background:color-mix(in srgb,var(--color-rule) 45%,var(--color-surface));border:1px solid transparent;text-align:center}
.cta-link{display:inline-block;padding:.7em 1.4em;background:var(--color-main);color:#fff;border-radius:999px;font-weight:700;text-decoration:none}
.bottom{border-top:1px solid var(--color-rule);margin-top:3rem;padding:1.6rem 0 2.4rem;font-size:.9rem;color:var(--color-muted);background:var(--color-surface)}
.bottom nav{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem} .bottom a{color:var(--color-muted)} .bottom{background:var(--color-type);color:var(--color-canvas)} .bottom a,.bottom p{color:var(--color-canvas);opacity:.85}

.jump-list{margin:1.2rem 0;padding:.8rem 1rem;background:var(--color-surface);border-radius:var(--color-corner);border:1px solid var(--color-rule)} .jump-list ol{margin:.3rem 0 0;padding-left:1.2rem;columns:2;column-gap:2rem} @media(max-width:640px){.jump-list ol{columns:1}}
.i18n{position:relative} .i18n summary{cursor:pointer;list-style:none;padding:.25rem .6rem;border:1px solid var(--color-rule);border-radius:999px;font-size:.85rem}
.lang-options{position:absolute;right:0;top:120%;background:var(--color-surface);border:1px solid var(--color-rule);border-radius:10px;padding:.4rem;display:grid;min-width:9rem;z-index:40}
.lang-options a{padding:.3rem .5rem;text-decoration:none;color:var(--color-type)} .lang-options a[aria-current]{font-weight:700;color:var(--color-main)}
.codes{display:flex;gap:.35rem;font-size:.8rem;font-weight:700} .codes a{text-decoration:none;color:var(--color-muted);padding:.1rem .3rem;border-radius:4px} .codes a[aria-current]{color:var(--color-main);background:color-mix(in srgb,var(--color-main) 12%,transparent)}
[data-unit]{margin:1rem auto;text-align:center;overflow:hidden;max-width:100%} [data-unit]:empty{margin:0}
[data-unit="mobile_sticky"]{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:50;background:var(--color-surface)}
[data-unit="sidebar_left"],[data-unit="sidebar_right"]{position:fixed;top:110px;width:160px;margin:0;z-index:20} [data-unit="sidebar_left"]{left:12px} [data-unit="sidebar_right"]{right:12px}
@media (max-width:1499px){[data-unit="sidebar_left"],[data-unit="sidebar_right"]{display:none}}
.adx{float:right;border:0;background:transparent;font-size:1.2rem;cursor:pointer;color:var(--color-muted)}
.cta-link{border-radius:4px;text-transform:uppercase;letter-spacing:.06em;font-size:.85rem}
.tbl tbody tr:nth-child(even){background:color-mix(in srgb,var(--color-main) 6%,transparent)}
.segment a:not(.cta-link):not(.guide-card){text-decoration-thickness:2px}
:root{--color-font-head:'Titillium Web',system-ui,sans-serif;--color-font-body:'Titillium Web',system-ui,sans-serif} body{font-size:17px;font-kerning:normal;font-optical-sizing:auto;text-rendering:optimizeLegibility} h1,h2,h3{font-weight:700;letter-spacing:0;text-wrap:balance} .site-name{font-weight:700} h1{font-size:clamp(1.85rem,4.6vw,2.24rem);line-height:1.08} h2{font-size:clamp(1.3rem,3vw,1.56rem);line-height:1.18} h3{font-size:1.25rem} .post-head h1{font-size:clamp(1.95rem,5vw,2.38rem)} p,li{text-wrap:pretty} .segment>p,.segment>ul,.segment>ol,.post p,.post li{max-width:68ch} .tbl,.workbench output,.workbench [class*=res],.workbench [class*=val]{font-variant-numeric:tabular-nums lining-nums}  h1,h2,h3,.site-name,.guide-card b,.brow b,.blist--min b{font-synthesis:none}
@media (max-width:640px){.hdr-row{justify-content:center} .primary-nav{justify-content:center}}

.speed-test{font-family:var(--color-font-body);color:var(--color-type);font-size:16px;line-height:1.55;isolation:isolate;min-width:0;margin:0;padding:0;color-scheme:inherit;--speed-soft:color-mix(in srgb,var(--color-main) 10%,var(--color-surface));--speed-sky:color-mix(in srgb,var(--color-second) 14%,var(--color-surface));--speed-shadow:color-mix(in srgb,var(--color-type) 9%,transparent)}
.speed-test *{box-sizing:border-box}.speed-test [hidden]{display:none!important}.speed-test h2,.speed-test h3,.speed-test p{margin:0;color:var(--color-type);text-transform:none;letter-spacing:0}.speed-test h2{font-family:var(--color-font-head);font-size:1.5rem;font-weight:600;line-height:1.25}.speed-test h3{font-family:var(--color-font-body);font-size:1rem;line-height:1.5;font-weight:600}.speed-test button,.speed-test input,.speed-test select,.speed-test textarea{font:inherit;letter-spacing:0;line-height:1.4;max-width:100%;color:var(--color-type);color-scheme:inherit}.speed-test button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.65rem 1rem;background:var(--color-surface);border:1px solid var(--color-rule);border-radius:var(--color-corner);color:var(--color-type);font-weight:600;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease;user-select:none;-webkit-tap-highlight-color:transparent}.speed-test button:hover:not(:disabled){background:var(--speed-soft);border-color:var(--color-main)}.speed-test button:active:not(:disabled){transform:translateY(1px)}.speed-test button:focus-visible,.speed-test input:focus-visible,.speed-test select:focus-visible,.speed-test summary:focus-visible,.speed-test textarea:focus-visible{outline:3px solid var(--color-second);outline-offset:3px;box-shadow:0 0 0 5px color-mix(in srgb,var(--color-second) 12%,transparent)}.speed-test button:disabled{opacity:.52;cursor:default;transform:none;background:var(--color-surface);border-color:var(--color-rule)}.speed-test .speed-primary{font-family:var(--color-font-head);font-weight:700;background:var(--color-main);color:var(--color-canvas);border:2px solid var(--color-main);font-size:1.15rem;min-height:54px;padding:.75rem 1.5rem;box-shadow:0 5px 15px color-mix(in srgb,var(--color-main) 12%,transparent)}.speed-test .speed-primary:hover:not(:disabled){background:color-mix(in srgb,var(--color-main) 86%,var(--color-surface));border-color:var(--color-main);color:var(--color-canvas)}.speed-test .speed-primary:disabled{color:var(--color-muted);background:var(--color-surface);border-color:var(--color-rule);box-shadow:none}
.speed-controls{display:grid;grid-template-columns:minmax(210px,.38fr) minmax(0,1fr);gap:1.75rem;align-items:end;margin:0 0 .65rem}.speed-mode label{display:block;font-size:1rem;font-weight:600;margin:0 0 .5rem}.speed-mode select{display:block;width:100%;min-height:50px;padding:.6rem 2.2rem .6rem .8rem;background:var(--color-surface);border:2px solid var(--color-rule);border-radius:var(--color-corner);transition:border-color .16s ease,background-color .16s ease}.speed-mode select:hover{border-color:var(--color-main)}.speed-mode select:disabled{opacity:.65}.speed-test .speed-hint{color:var(--color-muted);font-size:.95rem;line-height:1.6;margin:.65rem 0 1rem;max-width:92ch}.speed-run{display:flex;align-items:center;gap:.85rem 1.1rem;flex-wrap:wrap;margin:1.15rem 0 .8rem}.speed-run>p{font-size:1rem;line-height:1.5;color:var(--color-type);margin:0;flex:1 1 240px;min-width:0;overflow-wrap:anywhere}.speed-test progress{appearance:none;width:100%;height:8px;display:block;background:var(--color-rule);border:0;border-radius:5px;overflow:hidden;margin:1rem 0 1.75rem;color:var(--color-main)}.speed-test progress::-webkit-progress-bar{background:var(--color-rule);border-radius:5px}.speed-test progress::-webkit-progress-value{background:var(--color-main);border-radius:5px;transition:width .2s ease}.speed-test progress::-moz-progress-bar{background:var(--color-main);border-radius:5px}
.speed-board{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(200px,.65fr);gap:0;background:var(--speed-soft);border:0;border-radius:calc(var(--color-corner) * 2);overflow:hidden;min-width:0;box-shadow:none}.speed-main{padding:1.6rem 1.8rem .7rem;min-width:0}.speed-meter-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.speed-meter-head label{display:block;min-width:90px}.speed-meter-head select{background:var(--color-surface);border:1px solid var(--color-rule);color:var(--color-type);border-radius:var(--color-corner);padding:.6rem .65rem;min-height:44px;font-size:1rem;font-weight:600;min-width:92px}.speed-meter-head h2{margin:0!important;padding:0!important;font-family:var(--color-font-head);font-weight:600;color:var(--color-type);font-size:1.4rem;letter-spacing:0;line-height:1.3}.speed-big{display:flex;gap:.75rem;align-items:baseline;justify-content:center;min-height:105px;margin:.6rem 0 .25rem;min-width:0}.speed-big output{font-family:var(--color-font-head);font-variant-numeric:tabular-nums;font-size:clamp(3.5rem,7.5vw,6.3rem);font-weight:700;color:var(--color-main);line-height:1.1;letter-spacing:0;display:block;max-width:100%;overflow-wrap:anywhere}.speed-big>span{font-size:1rem;font-weight:600;color:var(--color-type);white-space:nowrap}.speed-main svg{display:block;max-width:100%;width:420px;height:auto;margin:0 auto;overflow:visible}.speed-track,.speed-fill{stroke-width:15;fill:none;stroke-linecap:round;stroke:var(--color-rule)}.speed-fill{stroke:var(--color-main);stroke-linecap:butt}.speed-ticks text{font-size:17px;fill:var(--color-type);font-family:var(--color-font-body);text-anchor:middle;line-height:1.2;letter-spacing:0;font-weight:500}.speed-test #cis-needle{stroke:var(--color-type);stroke-width:4;stroke-linecap:round}.speed-pivot{fill:var(--color-main);stroke:var(--color-type);stroke-width:3}.speed-test .speed-scale{font-size:.95rem;color:var(--color-muted);text-align:center;margin:-.5rem 0 .6rem;line-height:1.5}.speed-secondary{display:flex;flex-direction:column;justify-content:space-around;background:var(--speed-sky);padding:1.8rem 1.5rem;gap:1.1rem;min-width:0;border:0}.speed-secondary>div{padding:0;min-width:0}.speed-secondary h3{font-size:1.05rem;font-family:var(--color-font-body);line-height:1.35;font-weight:600;color:var(--color-type);letter-spacing:0;margin-bottom:.45rem}.speed-secondary output{font-family:var(--color-font-head);font-variant-numeric:tabular-nums;font-size:clamp(2.25rem,4vw,3.5rem);font-weight:650;line-height:1.15;color:var(--color-type);letter-spacing:0;overflow-wrap:anywhere;display:inline-block;max-width:100%}.speed-secondary span{font-size:1rem;color:var(--color-type);margin-left:.45rem;line-height:1.3;white-space:nowrap}.speed-test .speed-measured{font-size:1rem;color:var(--color-type);margin:1rem 0 .4rem;font-weight:600;line-height:1.6}.speed-test .speed-scope{font-size:.95rem;color:var(--color-muted);line-height:1.6;margin:.4rem 0 1.5rem;max-width:95ch}.speed-test #cis-short{padding:.6rem 0 .8rem;margin:.8rem 0;color:var(--color-type);border:0;font-size:.95rem;line-height:1.65}
.speed-chart{margin:2rem 0 1.4rem;min-width:0;border:0;padding:0;background:none}.speed-chart h3{font-family:var(--color-font-body);font-size:1.05rem;font-weight:600;line-height:1.4;margin:0 0 .8rem;padding:0;letter-spacing:0;color:var(--color-type)}.speed-chart>svg{display:block;width:100%;height:auto;max-height:280px;overflow:visible;background:var(--color-surface);border:0;border-radius:var(--color-corner);padding:10px 0}.speed-chart-text{font-size:16px;fill:var(--color-type);font-family:var(--color-font-body);font-weight:500;letter-spacing:0}.speed-axis{stroke:var(--color-rule);stroke-width:2}.speed-bar-down{fill:var(--color-main)}.speed-bar-up{fill:var(--color-second)}.speed-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:1.6rem 0 2rem;padding:0}.speed-actions button{font-size:1rem;min-height:46px;padding:.65rem .85rem;background:var(--color-surface);border-radius:var(--color-corner)}.speed-actions #cis-save{border-color:var(--color-main);color:var(--color-type);background:var(--speed-soft)}.speed-test #cis-fallback-label{display:block;font-size:1rem;font-weight:500;line-height:1.6;margin:1.5rem 0 2rem;padding:0}.speed-test #cis-fallback{display:block;width:100%;resize:vertical;min-height:170px;margin:.75rem 0;padding:1rem;font-size:1rem;line-height:1.6;background:var(--color-surface);color:var(--color-type);border:2px solid var(--color-rule);border-radius:var(--color-corner);font-family:var(--color-font-body)}
.speed-details,.speed-history{background:none;border:0;border-top:2px solid var(--color-rule);border-radius:0;box-shadow:none;margin:1.6rem 0 0;padding:0 0 .5rem}.speed-test summary{font-family:var(--color-font-body);font-size:1.05rem;line-height:1.55;font-weight:600;color:var(--color-type);padding:1rem 0;min-height:52px;cursor:pointer;transition:color .15s ease;letter-spacing:0;text-transform:none}.speed-test summary:hover{color:var(--color-main)}.speed-test summary::marker{color:var(--color-main);font-size:1em}.speed-test details[open]>summary{margin-bottom:.65rem}.speed-details>p{max-width:80ch;font-size:1rem;line-height:1.65;margin:0 0 1.4rem;color:var(--color-type)}.speed-details>label{font-size:1rem;font-weight:600;display:block;margin:1.25rem 0 .5rem}.speed-test #cis-file{display:block;min-height:49px;padding:.6rem .8rem;border:2px solid var(--color-rule);border-radius:var(--color-corner);background:var(--color-surface);color:var(--color-type);width:250px;font-size:1rem;font-variant-numeric:tabular-nums;transition:border-color .16s ease}.speed-test #cis-file:hover{border-color:var(--color-main)}.speed-test #cis-filetime{font-size:1rem;color:var(--color-type);line-height:1.65;margin:.75rem 0 1.5rem}.speed-loaded{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2rem;margin:2rem 0;min-width:0}.speed-loaded h3{font-size:1rem;font-weight:600;line-height:1.5;margin:.25rem 0;grid-row:1}.speed-loaded p{font-size:1rem;line-height:1.6;color:var(--color-type);margin:0;overflow-wrap:anywhere}.speed-loaded>p:last-child{grid-column:1/-1;margin:1rem 0 0;font-size:.95rem;color:var(--color-muted)}.speed-loaded #cis-loadedDown{grid-column:1;grid-row:2}.speed-loaded #cis-loadedUp{grid-column:2;grid-row:2}.speed-table{overflow:auto;max-width:100%;border:0;margin:2rem 0;background:var(--color-surface);scrollbar-width:thin;scrollbar-color:var(--color-main) var(--color-surface)}.speed-test table{width:100%;border-collapse:collapse;font-size:1rem;line-height:1.55;text-align:left;font-variant-numeric:tabular-nums;margin:0;min-width:410px;background:var(--color-surface);color:var(--color-type)}.speed-test caption{font-size:1rem;font-weight:600;text-align:left;padding:1rem .9rem;caption-side:top;color:var(--color-type);background:var(--speed-soft)}.speed-test th{font-size:1rem;letter-spacing:0;text-transform:none;font-weight:600;padding:.9rem;line-height:1.45;background:var(--color-surface);border-bottom:2px solid var(--color-rule);vertical-align:bottom;color:var(--color-type)}.speed-test td{padding:.85rem .9rem;border-bottom:1px solid var(--color-rule);line-height:1.55;color:var(--color-type);vertical-align:top}.speed-test tbody tr:nth-child(even){background:color-mix(in srgb,var(--color-canvas) 70%,var(--color-surface))}.speed-test tbody tr:last-child td{border-bottom:0}.speed-test td:not(:first-child),.speed-test th:not(:first-child){text-align:right}.speed-history>p{font-size:1rem;line-height:1.65;color:var(--color-muted);margin:.6rem 0 1rem}.speed-history-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:1.1rem 0;border-bottom:1px solid var(--color-rule);background:none;min-width:0}.speed-history-row>p{font-size:1rem;line-height:1.65;color:var(--color-type);overflow-wrap:anywhere}.speed-history-row button{font-size:1rem;min-height:44px}.speed-test #cis-clear{margin-top:1.25rem;background:var(--color-surface);font-size:1rem}.speed-history-row:last-child{border-bottom:0}.speed-sr{position:absolute;width:1px;height:1px;padding:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap;border:0}.speed-test ::selection{background:var(--color-main);color:var(--color-canvas)}.speed-test output{vertical-align:baseline}.speed-test .speed-reveal{animation:speed-result .4s ease-out both}@keyframes speed-result{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1100px){.speed-board{grid-template-columns:minmax(0,1.65fr) minmax(220px,.65fr)}.speed-main{padding-inline:2rem}.speed-controls{gap:2.25rem}.speed-main svg{width:430px}.speed-secondary{padding-inline:1.85rem}.speed-actions{gap:.8rem}.speed-details>p{max-width:86ch}}
@media(max-width:700px){.speed-controls{grid-template-columns:1fr;gap:1rem}.speed-mode select{min-height:50px;font-size:1rem}.speed-run{gap:.65rem;margin:1rem 0}.speed-run>p{flex-basis:100%;font-size:1rem;margin:.35rem 0 0}.speed-test .speed-primary{flex:1;min-height:52px}.speed-run #cis-stop{min-height:52px}.speed-test progress{margin:1rem 0 1.35rem}.speed-board{grid-template-columns:1fr}.speed-main{padding:1.2rem 1.1rem .5rem}.speed-meter-head h2{font-size:1.35rem}.speed-meter-head select{min-height:44px}.speed-big{min-height:85px;gap:.7rem;margin:.75rem 0 0}.speed-big output{font-size:4rem;letter-spacing:0}.speed-main svg{width:100%;max-width:400px}.speed-test .speed-scale{font-size:.95rem;margin:.25rem 0 .7rem}.speed-secondary{display:grid;grid-template-columns:1fr 1fr;padding:1.25rem;gap:1.35rem 1rem}.speed-secondary>div:first-child{grid-column:1/-1}.speed-secondary h3{font-size:1rem;line-height:1.5;max-width:22ch;margin-bottom:.3rem}.speed-secondary output{font-size:2.65rem;line-height:1.15}.speed-secondary span{font-size:1rem;margin-left:.4rem}.speed-test .speed-measured{font-size:1rem;margin:1rem 0 .6rem}.speed-test .speed-scope{font-size:.95rem;line-height:1.7}.speed-chart{margin:1.5rem 0}.speed-chart>svg{padding:5px 0;min-height:130px}.speed-actions{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:1.3rem 0 1.7rem}.speed-actions button{width:100%;min-height:48px;font-size:1rem;padding:.65rem .4rem}.speed-actions #cis-again{grid-column:1/-1}.speed-loaded{display:block;margin:1.6rem 0}.speed-loaded h3{margin:1rem 0 .35rem;font-size:1rem}.speed-loaded p{font-size:1rem}.speed-loaded>p:last-child{margin-top:1rem}.speed-details,.speed-history{margin-top:1.3rem}.speed-test summary{padding:1rem 0;line-height:1.6;font-size:1rem;min-height:52px}.speed-details>p{font-size:1rem;line-height:1.7}.speed-test #cis-file{width:100%;min-height:50px}.speed-test #cis-filetime{font-size:1rem;line-height:1.7}.speed-history-row{grid-template-columns:1fr 1fr;gap:.6rem;padding:1rem 0}.speed-history-row>p{grid-column:1/-1;line-height:1.7}.speed-history-row button{width:100%;min-height:46px}.speed-test #cis-clear{width:100%;min-height:48px}.speed-test #cis-fallback{min-height:210px;font-size:1rem}.speed-table{margin:1.5rem 0}.speed-test table{font-size:.95rem}.speed-test th,.speed-test td{font-size:.95rem;padding:.75rem .7rem}.speed-test caption{padding:.85rem .7rem;font-size:1rem}}
@media(prefers-reduced-motion:reduce){.speed-test button,.speed-test select,.speed-test input,.speed-test summary,.speed-test progress::-webkit-progress-value{transition:none}.speed-test .speed-reveal{animation:none}.speed-test button:active:not(:disabled){transform:none}}
@media print{.speed-test{font-size:11pt;line-height:1.5}.speed-board{break-inside:avoid;grid-template-columns:1.5fr 1fr}.speed-main{padding:1rem}.speed-big output{font-size:3rem}.speed-secondary output{font-size:2rem}.speed-chart{break-inside:avoid}.speed-test .speed-reveal{animation:none}.speed-test table{font-size:10pt}.speed-test td,.speed-test th{padding:.4rem}.speed-test summary{font-size:12pt}.speed-history-row{break-inside:avoid}}

.speed-mode select,.speed-test #cis-file{border-color:var(--color-muted)}

.speed-empty-down{fill:none;stroke:var(--color-main);stroke-width:4;stroke-linejoin:round}.speed-empty-up{fill:none;stroke:var(--color-second);stroke-width:4;stroke-linejoin:round}

@media(max-width:600px){.speed-ticks text{font-size:22px}.speed-chart-text{font-size:18px}.speed-chart>svg{max-height:none}}
/* Direct instructions and a visible response-time comparison. */
.speed-test .speed-instructions{font-size:1rem;line-height:1.6;margin:0 0 1rem;max-width:88ch}
.speed-test .speed-size-help{font-size:1rem;line-height:1.55;margin:.65rem 0;color:var(--color-muted)}
.speed-test .speed-loaded{display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1.5rem;padding:1.1rem 0;margin:0;background:none;border:0}
.speed-loaded h3:nth-of-type(1){grid-column:1;grid-row:1}.speed-loaded h3:nth-of-type(2){grid-column:2;grid-row:1}
.speed-test #cis-loadedDown{grid-column:1;grid-row:2}.speed-test #cis-loadedUp{grid-column:2;grid-row:2}
.speed-loaded p:not([id]){grid-column:1/-1;font-size:1rem;color:var(--color-muted);margin:.3rem 0 0;line-height:1.6}
.speed-test .speed-summary{padding:1.35rem 1.6rem;background:var(--speed-soft);margin:1rem 0 1.3rem;border:0;border-left:5px solid var(--color-main)}
.speed-summary h3{font-family:var(--color-font-head);font-size:1.35rem}.speed-test .speed-summary p{margin:.65rem 0;line-height:1.65}
.speed-test .speed-summary .speed-reference{font-size:1rem;color:var(--color-muted)}.speed-summary>a{display:inline-block;min-height:44px;padding:.6rem 0}
.speed-test #cis-needle{transition:transform .18s ease}.speed-test.speed-testing .speed-meter-head h2{animation:speed-pulse 1.2s ease-in-out infinite}
.speed-test input[aria-invalid="true"]{outline:2px solid var(--color-second);outline-offset:2px}
@keyframes speed-pulse{0%,100%{opacity:1}50%{opacity:.6}}
@media(max-width:600px){.speed-test .speed-loaded{gap:.5rem 1rem}.speed-test .speed-summary{padding:1.1rem}.speed-test .speed-loaded h3{font-size:1rem}.speed-loaded p[id]{font-size:1rem;overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.speed-test #cis-needle{transition:none}.speed-testing .speed-meter-head h2{animation:none!important}}

/* D / Dashboard: one control row, four peer measurements, full-width chart. */
.speed-controls{grid-template-columns:minmax(210px,.7fr) minmax(280px,1.4fr) auto;gap:1.2rem;align-items:center;padding:1.15rem 1.25rem;background:var(--color-surface);border-radius:var(--color-corner);margin:0}
.speed-controls .speed-run{margin:0;gap:.6rem;flex-wrap:nowrap}
.speed-controls .speed-primary{min-height:50px;padding:.65rem 1.25rem;white-space:nowrap}
.speed-controls #cis-stop{min-height:50px}
.speed-test #cis-status{font-size:1rem;font-weight:600;line-height:1.6;margin:.7rem 0 .25rem;color:var(--color-type)}
.speed-test .speed-size-help{margin:.25rem 0;color:var(--color-muted)}
.speed-test #cis-budget{margin:.25rem 0 .7rem}
.speed-test progress{margin:.7rem 0 1.25rem;height:8px}
.speed-board{grid-template-columns:minmax(0,1.25fr) repeat(3,minmax(0,1fr));gap:12px;background:none;overflow:visible;border-radius:0}
.speed-main{padding:1.25rem 1.1rem .65rem;background:var(--color-surface);border-radius:var(--color-corner);min-width:0}
.speed-secondary{display:contents;padding:0;background:none}
.speed-secondary>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:1.4rem;background:var(--color-surface);border:0;border-radius:var(--color-corner)}
.speed-secondary>div:first-child{background:color-mix(in srgb,var(--color-second) 17%,var(--color-surface))}
.speed-secondary h3{font-size:1.1rem;line-height:1.45;margin:0 0 1.25rem;max-width:16ch;font-weight:600}
.speed-secondary output{font-family:var(--color-font-head);font-size:clamp(2.2rem,3.5vw,3rem);line-height:1.2;letter-spacing:0;color:var(--color-type);font-weight:700;font-variant-numeric:tabular-nums}
.speed-secondary>div:first-child output{color:var(--color-second)}
.speed-secondary span{display:block;margin:.5rem 0 0;font-size:1rem;color:var(--color-muted)}
.speed-meter-head{gap:.5rem}.speed-meter-head h2{font-size:1.15rem}
.speed-meter-head label{min-width:74px}.speed-meter-head select{min-width:74px;padding:.5rem .3rem;font-size:1rem}
.speed-big{min-height:66px;justify-content:flex-start;gap:.5rem;margin:.5rem 0 0}
.speed-big output{font-size:3.6rem;line-height:1.1;letter-spacing:0}
.speed-main svg{width:100%;max-width:300px;margin:0 auto}
.speed-ticks text{font-size:27px}
.speed-test .speed-scale{font-size:1rem;text-align:center;margin:.3rem 0;color:var(--color-muted)}
.speed-chart{margin:1.4rem 0 1.2rem}
.speed-chart h3{font-size:1.15rem;color:var(--color-type);margin:0 0 .65rem}
.speed-chart>svg{width:100%;max-height:235px;background:var(--color-surface);border-radius:var(--color-corner);padding:0}
.speed-test .speed-loaded{padding:.7rem 0;gap:.3rem 2rem}
.speed-test .speed-summary{border:0;background:color-mix(in srgb,var(--color-main) 14%,var(--color-surface));border-radius:var(--color-corner)}
.speed-test .speed-summary h3{font-size:1.35rem;font-weight:600}
.speed-actions button{border:0;min-height:48px}
.speed-actions #cis-save{color:var(--color-main);background:var(--color-surface)}
.speed-test #cis-short{color:var(--color-second)}
@media(max-width:1000px){
 .speed-controls{grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr)}
 .speed-controls .speed-run{grid-column:1/-1}
 .speed-board{grid-template-columns:repeat(2,minmax(0,1fr))}
 .speed-secondary>div{min-height:170px}
 .speed-secondary>div:first-child{grid-column:auto}
 .speed-big output{font-size:3.6rem}
}
@media(max-width:600px){
 .speed-controls{display:flex;flex-direction:column;align-items:stretch;gap:1rem;padding:1rem}
 .speed-controls .speed-run{display:flex;flex-wrap:nowrap;width:100%}
 .speed-controls .speed-primary{flex:1;min-height:52px}
 .speed-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .speed-main{grid-column:1/-1;padding:1.1rem}
 .speed-main svg{max-width:360px}
 .speed-ticks text{font-size:23px}
 .speed-secondary>div{padding:1.1rem;min-height:150px}
 .speed-secondary>div:first-child{grid-column:1/-1;min-height:125px}
 .speed-secondary h3{font-size:1rem;line-height:1.45;margin-bottom:.5rem}
 .speed-secondary output{font-size:2.8rem}
 .speed-secondary span{margin:.25rem 0 0}
 .speed-big{justify-content:center}.speed-big output{font-size:4rem}
 .speed-chart>svg{max-height:none;min-height:130px}
 .speed-test .speed-loaded{gap:.4rem 1rem}
}

/* Keep complete millisecond readings on one line in narrow metric tiles. */
@media(max-width:600px){.speed-secondary>div:not(:first-child) output{font-size:clamp(1.3rem,7vw,1.9rem);white-space:nowrap;overflow-wrap:normal}}
/* One-click toolbar; pale peer tiles distinguish the dashboard from a terminal. */
.speed-controls{grid-template-columns:minmax(210px,1fr) auto;gap:1.25rem;max-width:100%;padding:1rem 0;background:none;border-radius:0}
.speed-test .speed-network{font-size:1rem;line-height:1.55;color:var(--color-muted);margin:0 0 .35rem;max-width:85ch}
.speed-secondary>div{--color-surface:#edf4fa;--color-type:#0a0f1e;--color-muted:#35445f;background:var(--color-surface)}
.speed-secondary>div:first-child{background:var(--color-surface);box-shadow:inset 0 5px var(--color-second)}
.speed-secondary>div:first-child output{color:var(--color-type)}
.speed-test .speed-summary{margin:1.2rem 0 .3rem;padding:1.2rem 1.4rem}
.speed-test .speed-loaded{margin:.35rem 0 .5rem}
@media(max-width:600px){.speed-controls{display:flex;padding:.7rem 0;gap:1rem}.speed-controls .speed-run{width:100%}.speed-test .speed-network{font-size:1rem}.speed-test .speed-summary{padding:1.1rem}}

/* Keep actionable errors next to the affected control. */
.speed-test.speed-error #cis-status,.speed-test #cis-file[aria-invalid="true"]+#cis-filetime{color:var(--color-second);font-size:1rem;font-weight:400}

/* design: sites/<d>/design/site.css */
/* Controller direction D: fixed midnight / mint / coral palette. */
:root{--color-canvas:#0a0f1e;--color-surface:#141e32;--color-type:#edf4fa;--color-muted:#b9c7da;--color-main:#00e0a4;--color-second:#ff5d73;--color-rule:#35445f;--color-corner:6px}
html{background:var(--color-canvas);color:var(--color-type);color-scheme:dark;scroll-padding-top:1.25rem}body{margin:0;background:var(--color-canvas);color:var(--color-type);font-family:var(--color-font-body);font-size:17px;line-height:1.75;letter-spacing:0}::selection{background:var(--color-main);color:var(--color-canvas)}.column{max-width:1180px;margin-inline:auto;padding-inline:32px;min-width:0}.article-area{max-width:1180px;margin:0 auto;padding:1.45rem 32px 4.5rem;background:none;min-width:0}.article-area h1{font-family:var(--color-font-head);font-size:clamp(1.9rem,3vw,2.6rem);font-weight:650;line-height:1.17;letter-spacing:0;color:var(--color-type);margin:0 0 .65rem;max-width:42ch}.article-area h2:not(.speed-test h2){font-family:var(--color-font-head);font-size:clamp(1.45rem,2.5vw,1.9rem);font-weight:650;line-height:1.3;letter-spacing:0;color:var(--color-type);margin:2.5rem 0 1.1rem;padding:0;border:0;max-width:48ch;text-transform:none}.article-area p:not(.speed-test p){font-family:var(--color-font-body);font-size:1rem;line-height:1.8;letter-spacing:0;color:var(--color-type);margin:1rem 0 1.2rem;max-width:72ch}.article-area a{color:var(--color-main);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;text-decoration-skip-ink:auto;transition:color .15s ease,text-decoration-color .15s ease}.article-area a:hover{color:var(--color-second);text-decoration-thickness:2px}.topbar{background:var(--color-canvas);color:var(--color-type);position:relative;border:0;box-shadow:none;z-index:3}.hdr-row{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;flex-wrap:wrap;max-width:1180px;padding:1.05rem 32px;margin:auto;min-height:82px;border:0;background:none}.topbar .site-name{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--color-font-head);font-size:1.15rem;line-height:1.3;font-weight:650;letter-spacing:0;text-decoration:none;color:var(--color-type);min-width:0;max-width:55%;padding:0;border:0}.topbar .site-name span{color:var(--color-type);overflow-wrap:anywhere;min-width:0}.site-name svg{width:38px;height:38px;flex:none;background:var(--color-main);color:var(--color-canvas);border:0;border-radius:var(--color-corner);padding:4px}.primary-nav{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;margin:0;padding:0;font-size:1rem;line-height:1.5;letter-spacing:0;font-weight:500}.topbar .primary-nav a{font-size:1rem;color:var(--color-type);background:none;border:0;border-bottom:2px solid transparent;border-radius:0;min-height:44px;display:inline-flex;align-items:center;padding:.45rem 0;text-decoration:none;text-transform:none;letter-spacing:0;transition:color .15s ease,border-color .15s ease}.topbar .primary-nav a[aria-current]{color:var(--color-main);border-bottom-color:var(--color-main);background:none}.topbar .primary-nav a:hover{color:var(--color-main);border-bottom-color:var(--color-second)}.i18n{font-family:var(--color-font-body);display:flex;align-items:center;gap:.2rem;flex-wrap:wrap;font-size:1rem;line-height:1.5;letter-spacing:0;background:none;border:0;border-radius:0;padding:0;max-width:100%;color:var(--color-type)}.i18n a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:44px;padding:.45rem .6rem;font-size:1rem;line-height:1.4;font-weight:500;color:var(--color-type);background:none;border:0;border-radius:var(--color-corner);text-decoration:none;text-transform:none;letter-spacing:0}.i18n a[aria-current]{background:var(--color-main);color:var(--color-canvas);font-weight:650}.i18n a:hover{background:color-mix(in srgb,var(--color-main) 12%,var(--color-surface));color:var(--color-type)}.i18n summary{font-size:1rem;color:var(--color-type);padding:.55rem .7rem;min-height:44px;background:var(--color-surface);border:1px solid var(--color-rule);border-radius:var(--color-corner);cursor:pointer;letter-spacing:0}.lang-options{background:var(--color-surface);color:var(--color-type);border:1px solid var(--color-rule);border-radius:var(--color-corner);padding:.45rem;max-width:100%}.lang-options a{font-size:1rem;min-height:44px}.topbar .lang-options a{color:var(--color-type)}
.page-top{background:none;color:var(--color-type);border:0;box-shadow:none;border-radius:0;min-height:0;padding:.25rem 0 .9rem;margin:0 0 .5rem;text-align:left;display:block}.page-top>div{max-width:none}.article-area .page-top h1{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.2;letter-spacing:0;margin:0 0 .65rem;max-width:42ch;color:var(--color-type);text-align:left}.article-area .page-top .standfirst{font-size:1rem;color:var(--color-muted);line-height:1.6;font-weight:400;margin:0;max-width:95ch;text-align:left}.page-top::before,.page-top::after{content:none}.workbench{padding:0;margin:0 0 2.8rem;background:none;border:0;border-radius:0;box-shadow:none;min-width:0}.layout{display:block;min-width:0}.segment{max-width:78ch;margin:3.2rem auto 0;padding:0;background:none;color:var(--color-type);border:0;border-radius:0;box-shadow:none;min-width:0;counter-increment:none}.segment::before{content:none}.segment>h2::before{content:none}.segment h2{margin:.5rem 0 1.2rem;border:0;padding:0}.segment ul,.segment ol{padding-left:1.4rem;margin:1.2rem 0 1.6rem;font-size:1rem;line-height:1.8;color:var(--color-type)}.segment li{padding-left:.3rem;margin:.7rem 0;max-width:70ch}.segment li::marker{color:var(--color-main);font-weight:600}.data-wrap{max-width:100%;overflow-x:auto;margin:1.8rem 0 2.4rem;border:0;border-radius:var(--color-corner);background:var(--color-surface);scrollbar-width:thin;scrollbar-color:var(--color-main) var(--color-surface)}.tbl,.article-area table:not(.speed-test table){width:100%;border-collapse:collapse;font-family:var(--color-font-body);font-size:1rem;line-height:1.65;font-variant-numeric:tabular-nums;text-align:left;margin:0;color:var(--color-type);background:var(--color-surface)}.tbl caption{text-align:left;font-size:1rem;font-weight:650;color:var(--color-type);background:color-mix(in srgb,var(--color-main) 9%,var(--color-surface));padding:1rem 1.2rem;line-height:1.6;letter-spacing:0}.tbl th{font-size:1rem;text-transform:none;letter-spacing:0;font-weight:600;color:var(--color-type);background:var(--color-surface);padding:.95rem 1.1rem;border:0;border-bottom:2px solid var(--color-rule);vertical-align:bottom;line-height:1.5}.tbl td{padding:1rem 1.1rem;border:0;border-bottom:1px solid var(--color-rule);font-size:1rem;line-height:1.7;color:var(--color-type);background:var(--color-surface);vertical-align:top;overflow-wrap:break-word}.tbl tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--color-canvas) 70%,var(--color-surface))}.visual{display:block;margin:2rem 0 2.5rem;max-width:100%;padding:0;background:none;border:0;border-radius:0;overflow:hidden;box-shadow:none}.visual img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;border:0;border-radius:var(--color-corner)}.visual figcaption{font-family:var(--color-font-body);font-size:1rem;line-height:1.7;color:var(--color-muted);background:none;border:0;padding:.95rem 0;max-width:80ch;font-style:normal;margin:0}.jump-list{position:static;background:none;color:var(--color-type);border:0;border-radius:0;box-shadow:none;margin:2.7rem 0 3rem;padding:0;max-width:100%;font-family:var(--color-font-body)}.jump-list>strong,.jump-list>h2,.jump-list>h3{font-size:1.1rem;line-height:1.5;letter-spacing:0;text-transform:none;color:var(--color-type);font-weight:600;margin:0 0 .9rem;padding:0;border:0}.jump-list ul,.jump-list ol{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2rem;padding:0 0 0 1.3rem;margin:.9rem 0;font-size:1rem;line-height:1.65;columns:unset;max-width:100%}.jump-list li{padding:0;margin:0;break-inside:avoid}.jump-list a{font-size:1rem;line-height:1.65;color:var(--color-main);background:none;text-transform:none;letter-spacing:0;text-underline-offset:4px}.where{font-size:1rem;line-height:1.6;letter-spacing:0;color:var(--color-muted);max-width:98ch;overflow-wrap:anywhere;margin:.3rem 0 1.7rem}.where a{color:var(--color-muted);text-decoration-thickness:1px;text-underline-offset:4px}.where a:hover{color:var(--color-main)}
.guide-grid,.guide-grid--feat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin:1.7rem 0 2rem;min-width:0}.guide-card,.guide-card--img{display:flex;flex-direction:column;color:var(--color-type);background:none;border:0;border-radius:0;padding:0;min-width:0;overflow:hidden;box-shadow:none;transition:transform .18s ease}.guide-card:hover{transform:translateY(-3px)}.card-img{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;border:0;border-radius:var(--color-corner);background:var(--color-canvas);overflow:hidden}.card-img img{display:block;width:100%;height:auto;object-fit:cover}.card-txt{padding:1.2rem 0 1.5rem;min-width:0;display:block;background:none}.card-txt h3,.article-area .card-txt h3{font-family:var(--color-font-head);font-size:1.3rem;line-height:1.35;font-weight:600;color:var(--color-type);margin:0 0 .7rem;letter-spacing:0}.card-txt a{color:var(--color-type);text-decoration:none}.card-txt a:hover{color:var(--color-main)}.segment:has(.guide-grid){max-width:none}.go-box{background:var(--color-surface);color:var(--color-type);border:0;border-radius:var(--color-corner);box-shadow:none;text-align:center;padding:1.75rem;margin:2.5rem 0;min-width:0}.cta-link{font-family:var(--color-font-head);display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.35rem;font-size:1.05rem;line-height:1.4;font-weight:650;letter-spacing:0;text-transform:none;text-align:center;color:var(--color-canvas)!important;background:var(--color-main);border:2px solid var(--color-main);border-radius:var(--color-corner);text-decoration:none!important;box-shadow:none;max-width:100%;transition:background-color .15s ease,transform .15s ease}.cta-link:hover{background:color-mix(in srgb,var(--color-main) 85%,var(--color-surface));color:var(--color-canvas)!important;transform:translateY(-1px)}
.post{max-width:82ch;margin:0 auto;color:var(--color-type);font-size:1rem;line-height:1.8;min-width:0}.post-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:1.7rem;margin:1rem 0 2.2rem;padding:0;background:none;border:0;border-radius:0;min-width:0}.post-head h1{font-size:clamp(1.75rem,3vw,2.5rem);font-family:var(--color-font-head);line-height:1.2;font-weight:650;letter-spacing:0;color:var(--color-type);max-width:28ch;margin:.55rem 0 1rem;overflow-wrap:break-word}.post-cover{display:block;width:100%;height:auto;aspect-ratio:1200/630;object-fit:contain;margin:0;background:none;border:0;border-radius:0;min-width:0}.post-cover img{display:block;width:100%;height:auto;object-fit:contain}.post-kicker{font-family:var(--color-font-body);font-size:1rem;line-height:1.5;font-weight:600;text-transform:none;letter-spacing:0;color:var(--color-main);text-decoration:underline;text-underline-offset:4px;margin:0}.post-meta{font-family:var(--color-font-body);font-size:1rem;line-height:1.6;font-weight:400;letter-spacing:0;color:var(--color-muted);margin:.75rem 0}.article-area .post>.standfirst{font-size:1.15rem;line-height:1.8;color:var(--color-type);font-weight:400;max-width:75ch;margin:2rem 0 2.3rem;padding:0;background:none;border:0;letter-spacing:0}.post>.standfirst::first-letter{font-size:inherit;float:none;font-family:inherit;line-height:inherit;font-weight:inherit;color:inherit;padding:0;margin:0}.post>.segment{margin:2.5rem 0 0;max-width:none;padding:0;border:0;background:none}.post>.segment h2{font-size:1.65rem;line-height:1.35;font-weight:650;letter-spacing:0;margin:0 0 1.1rem;color:var(--color-type)}.post>.jump-list--post,.jump-list--rail,.jump-list--chips{position:static!important;top:auto;left:auto;float:none;max-width:100%;width:auto;margin:2.2rem 0 2.5rem;background:var(--color-surface);border:0;border-radius:var(--color-corner);padding:1.25rem 1.4rem;box-shadow:none}.jump-list--post a{background:none;border:0;border-radius:0;padding:0;font-size:1rem;line-height:1.65;color:var(--color-main)}.jump-list--post ul,.jump-list--post ol{display:block;columns:unset;font-size:1rem;line-height:1.65;margin:.75rem 0 0}.jump-list--post li{margin:.55rem 0}.sequence{padding:0 0 0 1.5rem;margin:1.5rem 0 2rem;font-size:1rem;line-height:1.8}.sequence li{padding:.2rem 0 .2rem .25rem;margin:.6rem 0}.sequence li::marker{font-weight:600;color:var(--color-main)}.questions{max-width:82ch;margin:3rem auto 0;padding:0;background:none;border:0;border-radius:0;min-width:0}.questions h2{font-size:1.65rem;font-family:var(--color-font-head);line-height:1.35;font-weight:650;margin:0 0 1.5rem;padding:0;border:0;color:var(--color-type);letter-spacing:0}.questions h3{font-size:1.1rem;font-weight:600;line-height:1.5;margin:1.5rem 0 .6rem;color:var(--color-type)}.questions p{font-size:1rem;line-height:1.8;color:var(--color-type);max-width:75ch}.questions details{border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:none;padding:0;margin:.6rem 0;box-shadow:none}.questions summary{font-family:var(--color-font-body);font-size:1.05rem;font-weight:600;line-height:1.6;color:var(--color-type);cursor:pointer;min-height:54px;padding:1rem 0;letter-spacing:0;text-transform:none}.questions summary::marker{color:var(--color-main)}.questions details p{padding:0;margin:.25rem 0 1.25rem;max-width:75ch;line-height:1.8}.faq-grid{gap:1.5rem 2rem}
.bottom{margin:0;background:var(--color-main);color:var(--color-canvas);border:0;box-shadow:none;padding:2.6rem 0;position:relative;min-width:0}.foot-in{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin:auto;max-width:1116px;min-width:0}.foot-in>div{max-width:44ch;min-width:0}.foot-in strong{display:block;font-family:var(--color-font-head);font-size:1.2rem;font-weight:650;line-height:1.4;letter-spacing:0;color:var(--color-canvas);margin-bottom:.55rem}.foot-in p{font-family:var(--color-font-body);font-size:1rem;line-height:1.7;max-width:45ch;color:var(--color-canvas);margin:.5rem 0}.bottom nav{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.85rem 1.5rem;font-size:1rem;line-height:1.6;max-width:50ch;margin:0}.bottom a{font-family:var(--color-font-body);font-size:1rem;line-height:1.65;letter-spacing:0;font-weight:500;color:var(--color-canvas);text-decoration:underline;text-underline-offset:4px}.bottom a:hover{color:var(--color-canvas);text-decoration-thickness:2px}.article-area:has(>.where)>.standfirst{font-size:1.15rem;line-height:1.75;max-width:80ch;color:var(--color-muted);margin:1rem 0 2.5rem}.article-area:has(>.where):not(:has(.post))::after{content:"";display:block;height:150px;width:420px;max-width:100%;background:url(/assets/img/d-router.svg) center/contain no-repeat;margin:1.5rem auto 0}.bottom .column::after{content:"";display:block;width:310px;height:95px;max-width:100%;background:url(/assets/img/d-ethernet.svg) center/contain no-repeat;margin:1.6rem 0 0}
@media(max-width:760px){body{font-size:16px}.article-area,.column{padding-inline:20px}.article-area{padding-top:1.1rem;padding-bottom:3rem}.hdr-row{padding:1rem 20px;gap:.75rem;min-height:76px}.topbar .site-name{max-width:100%;font-size:1.05rem}.site-name svg{width:34px;height:34px}.primary-nav{gap:1.1rem}.article-area .page-top h1{font-size:1.9rem;line-height:1.23}.article-area .page-top .standfirst{font-size:1rem;line-height:1.65}.page-top{margin:0;padding:.1rem 0 .9rem}.workbench{margin-bottom:2.3rem}.segment{margin-top:2.6rem}.article-area h2:not(.speed-test h2){font-size:1.4rem;line-height:1.4;margin:1.8rem 0 1.1rem}.jump-list{margin:2.3rem 0}.jump-list ul,.jump-list ol{grid-template-columns:1fr;gap:.6rem}.tbl th,.tbl td{font-size:.95rem;padding:.8rem .7rem}.tbl caption{padding:.9rem .8rem}.guide-grid,.guide-grid--feat,.blist{grid-template-columns:1fr;gap:1.4rem}.card-txt{padding:1rem 0 1.2rem}.go-box{padding:1.4rem;margin:2rem 0}.where{margin:.2rem 0 1.5rem}.post-head,.post-head--split{display:block;margin:.7rem 0 1.6rem}.post-head h1{font-size:1.9rem;line-height:1.25;max-width:30ch}.post-cover{margin-top:1.2rem}.article-area .post>.standfirst{font-size:1.1rem;line-height:1.85}.post>.segment{margin-top:2.3rem}.post>.segment h2{font-size:1.4rem;line-height:1.4}.jump-list--post{padding:1.1rem 1.2rem}.jump-list--post li{margin:.7rem 0}.questions{margin-top:2.5rem}.questions h2{font-size:1.4rem;line-height:1.4}.bottom{padding:2rem 0 2.3rem}.foot-in{display:block}.bottom nav{margin-top:1.3rem;max-width:100%}.bottom .column::after{width:260px;height:80px}.article-area:has(>.where):not(:has(.post))::after{height:125px}.faq-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.article-area a,.primary-nav a,.guide-card,.brow,.cta-link{transition:none}.guide-card:hover,.brow:hover,.cta-link:hover{transform:none}}

.topbar .hdr-row{flex-direction:row;justify-content:space-between}.post-head{display:block}.post-head--split{display:grid}.article-area .guide-card{text-decoration:none}.guide-card .card-txt>b{display:block;font-family:var(--color-font-head);font-size:1.35rem;line-height:1.4;font-weight:600;color:var(--color-type);letter-spacing:0;margin-bottom:.75rem}.guide-card .card-txt>span{display:block;font-size:1rem;line-height:1.75;color:var(--color-muted)}.guide-card:hover .card-txt>b{color:var(--color-main)}@media(max-width:760px){.post-head--split{display:block}.topbar .hdr-row{justify-content:flex-start}}

/* A compact network dashboard, with readable mint header and language menu. */
.topbar{background:var(--color-main);color:var(--color-canvas)}
.topbar .site-name,.topbar .site-name span,.topbar .primary-nav a{color:var(--color-canvas)}
.topbar .site-name svg{background:var(--color-canvas);color:var(--color-main)}
.topbar .primary-nav a[aria-current],.topbar .primary-nav a:hover{color:var(--color-canvas);border-bottom-color:var(--color-canvas)}
.topbar .i18n{display:block;position:relative;color:var(--color-canvas)}
.topbar .i18n summary{background:var(--color-canvas);color:var(--color-type);border:0;font-weight:600;padding:.6rem 1rem}
.topbar .lang-options{position:absolute;right:0;top:calc(100% + 8px);min-width:185px;padding:.5rem;background:var(--color-surface);border:1px solid var(--color-rule);box-shadow:0 8px 24px color-mix(in srgb,var(--color-canvas) 30%,transparent);z-index:10}
.topbar .lang-options a{display:flex;justify-content:flex-start;color:var(--color-type);font-size:1rem;font-weight:500;background:var(--color-surface);padding:.55rem .8rem}
.topbar .lang-options a[aria-current]{color:var(--color-canvas);background:var(--color-main)}
.topbar .lang-options a:hover{color:var(--color-type);background:color-mix(in srgb,var(--color-main) 16%,var(--color-surface))}
.topbar .lang-options a[aria-current]:hover{color:var(--color-canvas);background:var(--color-main)}
.article-area .page-top h1{font-weight:700;font-size:clamp(1.9rem,3vw,2.6rem)}
.article-area .page-top .standfirst{max-width:none;color:var(--color-muted)}
.article-area:has(>.page-top){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:3rem}
.article-area:has(>.page-top)>*{grid-column:1/-1}
.article-area:has(>.page-top)>.segment:not(.segment--guides):not(.questions){grid-column:auto;max-width:none;margin:1.5rem 0 2rem;align-self:start}
.article-area:has(>.page-top)>.segment h2{margin:0 0 1rem}
.article-area:has(>.page-top)>.segment .visual{margin:1.5rem 0}
.article-area:has(>.page-top)>.segment .data-wrap{margin:1.5rem 0}
.article-area:has(>.page-top)>.segment--guides{width:100%;max-width:none}
.article-area .jump-list ol{list-style:none;padding-left:0}
.article-area .jump-list{margin:1.5rem 0 2rem}
.article-area .jump-list a{font-size:1rem}
.post{max-width:76ch}.post-head--split{gap:2rem}
.post-head h1{font-weight:700}
.card-img{background:var(--color-surface)}
.tbl th{background:color-mix(in srgb,var(--color-main) 12%,var(--color-surface))}
.bottom{background:var(--color-surface);color:var(--color-type);padding:2.5rem 0}
.foot-in strong,.foot-in p,.bottom a,.bottom a:hover{color:var(--color-type)}
.bottom a{color:var(--color-main)}
@media(max-width:760px){
 .article-area:has(>.page-top){display:block}
 .article-area:has(>.page-top)>.segment:not(.segment--guides):not(.questions){margin:2.5rem 0}
 .topbar .hdr-row{justify-content:space-between;gap:.5rem 1rem}
 .topbar .site-name{max-width:100%}.topbar .primary-nav{width:100%;justify-content:space-between;gap:.6rem}
 .topbar .lang-options{right:0;min-width:180px}
 .article-area .page-top h1{font-size:1.9rem}
}
/* D first screen: header, heading and toolbar share the midnight field. */
.topbar{background:var(--color-canvas);color:var(--color-type)}
.topbar .site-name,.topbar .site-name span,.topbar .primary-nav a{color:var(--color-type)}
.topbar .site-name svg{background:var(--color-main);color:var(--color-canvas)}
.topbar .primary-nav a[aria-current],.topbar .primary-nav a:hover{color:var(--color-main);border-bottom-color:var(--color-main)}
.topbar .i18n summary{background:var(--color-surface);color:var(--color-type)}
.hdr-row{min-height:72px;padding-block:.7rem}
/* The navigation's active-link color must not override the language menu. */
.topbar .primary-nav .lang-options a{color:var(--color-type);background:var(--color-surface);border:0}
.topbar .primary-nav .lang-options a[aria-current],.topbar .primary-nav .lang-options a[aria-current]:hover{color:var(--color-canvas);background:var(--color-main)}
.topbar .primary-nav .lang-options a:hover{color:var(--color-type);background:color-mix(in srgb,var(--color-main) 16%,var(--color-surface))}
