:root{--q0:#cde2fb;--q1:#86b6ef;--q2:#3987e5;--q3:#1c5cab;--q4:#0d366b;--qi0:#15202b;--qi1:#15202b;--qi2:#15202b;--qi3:#fff;--qi4:#fff;--bg:#f6f7f9;--fg:#15202b;--fg2:#3a4756;--mut:#5d6b7a;--card:#fff;--hdr:#fff;--bd:#dde2e8;--bd2:#c9d1da;--link:#1f6fb2;--c1:#1f6fb2;--c2:#e8952b;--c3:#2e9e7a;--c4:#b23a52;--c5:#8466d1;--c6:#6b7682;--c7:#c2b186;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--q0:#d6e6f8;--q1:#a6c7ee;--q2:#77a7e2;--q3:#4f88d4;--q4:#3570c6;--qi0:#10151b;--qi1:#10151b;--qi2:#10151b;--qi3:#10151b;--qi4:#fff;--bg:#10151b;--fg:#e8edf2;--fg2:#c5cfda;--mut:#98a5b3;--card:#161d26;--hdr:#121820;--bd:#222b35;--bd2:#2c3642;--link:#8fb8ee;--c1:#3b73b9;--c2:#e39a3b;--c3:#4fa37a;--c4:#bd4f63;--c5:#9277dd;--c6:#6e7884;--c7:#d9c9a3}}:root[data-theme=dark]{--q0:#d6e6f8;--q1:#a6c7ee;--q2:#77a7e2;--q3:#4f88d4;--q4:#3570c6;--qi0:#10151b;--qi1:#10151b;--qi2:#10151b;--qi3:#10151b;--qi4:#fff;--bg:#10151b;--fg:#e8edf2;--fg2:#c5cfda;--mut:#98a5b3;--card:#161d26;--hdr:#121820;--bd:#222b35;--bd2:#2c3642;--link:#8fb8ee;--c1:#3b73b9;--c2:#e39a3b;--c3:#4fa37a;--c4:#bd4f63;--c5:#9277dd;--c6:#6e7884;--c7:#d9c9a3}html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + var(--hdr-h,0px))}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.55 IBM Plex Sans,system-ui,sans-serif}main{max-width:960px;margin:0 auto;padding:8px 16px 48px}h1{font-size:clamp(2rem,1.2rem + 3.6vw,3rem);line-height:1.1;letter-spacing:-.01em;margin:0 0 14px;font-weight:700}h2{font-size:clamp(1.3rem,1.1rem + 1vw,1.5rem);line-height:1.25;margin:0 0 6px;font-weight:600}p{margin:0 0 10px;max-width:68ch}.mut{color:var(--mut);font-size:.9rem}.kicker{font:500 .8125rem/1.4 IBM Plex Mono,ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--mut);margin:28px 0 12px;max-width:none}.lead{font-size:1.125rem;line-height:1.6;max-width:760px;color:var(--fg2)}.site{background:var(--hdr);border-bottom:1px solid var(--bd)}.site>div{max-width:960px;margin:0 auto;padding:0 16px;display:flex;align-items:center;gap:0 16px;min-height:64px}@media (min-width:721px){.site{position:sticky;top:0;z-index:5}}.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--fg);text-decoration:none;font-weight:700;font-size:1.05rem;white-space:nowrap}.brand svg{flex:none;width:24px;height:24px}.brand rect:first-child{fill:var(--c1)}.site nav{display:flex;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}.site nav::-webkit-scrollbar{display:none}.site nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 9px;border-radius:6px;color:var(--fg2);text-decoration:none;font-size:.875rem;white-space:nowrap}.site nav a:hover{color:var(--fg);background:var(--bg)}.site nav a[hidden]{display:none}.theme{flex:none;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--bd2);border-radius:8px;background:transparent;color:var(--fg2);cursor:pointer}.theme:hover{border-color:var(--c1);color:var(--fg)}@media (max-width:1023px){.site>div{flex-wrap:wrap;padding-top:6px}.site nav{order:3;box-sizing:border-box;flex:0 0 calc(100% + 32px);margin:0 -16px;padding:0 7px 4px}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--c2);outline-offset:2px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:12px;margin:24px 0}@media (min-width:721px){.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}}.kpi{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:16px}.kpi b{font-size:clamp(1.5rem,1rem + 2vw,2.125rem);line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums}.kpi span{color:var(--fg2);font-size:.95rem;line-height:1.45}.kpi small{margin-top:auto;padding-top:4px;font:500 .75rem/1.4 IBM Plex Mono,ui-monospace,monospace;letter-spacing:.02em;color:var(--mut)}section{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:20px;margin:18px 0}@media (max-width:520px){section{padding:16px}}.ctl{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:10px 0}.seg{display:inline-flex}.seg button{font:inherit;font-size:.9rem;min-height:44px;padding:0 16px;border:1px solid var(--bd2);background:transparent;color:var(--fg);cursor:pointer}.seg button:first-child{border-radius:8px 0 0 8px}.seg button:last-child{border-radius:0 8px 8px 0;border-left:0}.seg button[aria-pressed=true]{background:var(--c1);border-color:var(--c1);color:#fff}input[type=range]{flex:1;min-width:160px;height:44px;margin:0;accent-color:var(--c1)}.cv{position:relative;height:340px}.cv.tall{height:460px}.lgd{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;margin:6px 0 4px}.lgd button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--fg2);font:inherit;font-size:.875rem;cursor:pointer;text-align:left}.lgd button:hover{border-color:var(--bd2)}.lgd i{flex:none;width:12px;height:12px;border-radius:3px}.lgd button[aria-pressed=false]{color:var(--mut);text-decoration:line-through}.lgd button[aria-pressed=false] i{opacity:.3}.lgd small{flex-basis:100%;color:var(--mut);font-size:.8rem;padding:0 10px}.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.notes div{border-top:2px solid var(--bd);padding-top:8px;font-size:.92rem}.notes b{font-size:1.15rem}a{color:var(--link)}.banner{border:1px solid var(--c2);border-left-width:4px;background:var(--card);border-radius:6px;padding:10px 14px;margin:16px 0 0;font-size:.92rem}.banner[hidden]{display:none}.map{position:relative;max-width:480px;margin:6px auto 4px}.map svg{display:block;width:100%;height:auto}.map path{stroke:var(--card);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;cursor:default;outline:none}.map path:hover,.map path:focus-visible{stroke:var(--fg);stroke-width:2px}.map .lbl{pointer-events:none;font-size:17px;font-weight:600;text-anchor:middle;dominant-baseline:central}@media (max-width:520px){.map .lbl{font-size:22px}}.q0{fill:var(--q0)}.q1{fill:var(--q1)}.q2{fill:var(--q2)}.q3{fill:var(--q3)}.q4{fill:var(--q4)}.qn{fill:var(--bd)}.lbl .q0{fill:var(--qi0)}.lbl .q1{fill:var(--qi1)}.lbl .q2{fill:var(--qi2)}.lbl .q3{fill:var(--qi3)}.lbl .q4{fill:var(--qi4)}.lbl .qn{fill:var(--mut)}.tip{position:absolute;pointer-events:none;background:var(--card);color:var(--fg);border:1px solid var(--bd);border-radius:6px;padding:4px 8px;font-size:.85rem;white-space:nowrap;box-shadow:0 2px 8px #0002}.tip[hidden]{display:none}.legend{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:0 0 16px;font-size:.85rem;color:var(--mut)}.legend i{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:5px;vertical-align:-2px}.legend i.q0{background:var(--q0)}.legend i.q1{background:var(--q1)}.legend i.q2{background:var(--q2)}.legend i.q3{background:var(--q3)}.legend i.q4{background:var(--q4)}.legend i.qn{background:var(--bd)}.support{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 16px;margin:18px 0;padding:10px 18px;border:1px dashed var(--c2);border-radius:12px;font-size:.95rem}.support[hidden]{display:none}.support p{margin:0}.coffee{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;background:var(--c2);color:#15202b;font-weight:600;text-decoration:none;white-space:nowrap}.coffee:hover{filter:brightness(1.08)}.coffee:focus-visible{outline:2px solid var(--c1);outline-offset:2px}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--bd);font-size:.8125rem;color:var(--mut)}.foot>span{flex:1 1 260px}.foot div{display:flex;gap:8px}.foot button{font:inherit;font-size:.875rem;min-height:44px;padding:0 14px;border:1px solid var(--bd2);border-radius:8px;background:transparent;color:var(--fg2);cursor:pointer;white-space:nowrap}.foot button:hover{border-color:var(--c1);color:var(--fg)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--bd2);border-radius:999px;text-decoration:none;font-size:.92rem}.chips a:hover{border-color:var(--c1)}.map a{cursor:pointer}.map a:focus{outline:none}.map a:focus-visible path{stroke:var(--fg);stroke-width:2px}.crumbs{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;margin:12px 0 0;font-size:.92rem}.crumbs a{display:inline-flex;align-items:center;min-height:44px}.crumbs select{font:inherit;min-height:44px;padding:0 8px;border:1px solid var(--bd2);border-radius:8px;background:var(--card);color:var(--fg);margin-left:4px}.head{display:flex;gap:16px 28px;align-items:center}.head>div:first-child{flex:1}.head .kicker{margin-top:16px}.locator{width:150px;flex:none}.locator svg{display:block;width:100%;height:auto}.locator path{fill:var(--bd2);stroke:var(--card);stroke-width:1px;vector-effect:non-scaling-stroke}.locator .sel{fill:var(--c1)}.locator a:hover path,.locator a:focus-visible path{fill:var(--c6)}@media (max-width:560px){.head{flex-direction:column-reverse;align-items:flex-start}.locator{width:110px}}.anchor{color:var(--mut);text-decoration:none;font-weight:400;opacity:.45}@media (hover:hover){.anchor{opacity:0}}h2:hover .anchor,.anchor:hover,.anchor:focus-visible{opacity:1;color:var(--link)}section[id]{scroll-margin-top:12px}.consent{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:400px;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--card);border:1px solid var(--bd2);border-radius:12px;padding:12px 14px;box-shadow:0 4px 20px #0003;font-size:.85rem;line-height:1.45}.consent p{margin:0;flex:1 1 100%}.consent div{display:flex;gap:8px}.consent button{font:inherit;min-height:44px;padding:0 14px;border-radius:8px;border:1px solid var(--c1);background:var(--c1);color:#fff;cursor:pointer}.consent button+button{background:transparent;color:var(--fg);border-color:var(--bd2)}.linkish{font:inherit;padding:0;border:0;background:none;color:var(--link);text-decoration:underline;cursor:pointer}.news{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px 22px;margin:12px 0}@media (max-width:420px){.news{grid-template-columns:1fr}}.news article{border-top:2px solid var(--c1);padding-top:8px}.news h3{font-size:1rem;margin:0 0 4px;font-weight:600;line-height:1.35}.news h3 a{color:var(--fg);text-decoration:none}.news h3 a:hover{color:var(--link)}.news p{font-size:.92rem;margin:0 0 6px}h3.more{font-size:.95rem;font-weight:600;margin:16px 0 4px}ul.more{margin:0 0 12px;padding-left:18px;font-size:.92rem}.more li{margin:3px 0}.flag{width:18px;height:12px;vertical-align:-1px;margin-right:6px;border-radius:2px;box-shadow:0 0 0 1px var(--bd)}.flag-code{font-size:.75rem;font-weight:600;border:1px solid var(--bd);border-radius:3px;padding:0 3px;margin-right:6px}:root{--land:#dfe4ea}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--land:#252f3b}}:root[data-theme=dark]{--land:#252f3b}.play{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--c1);color:#fff;cursor:pointer}.play svg{width:20px;height:20px;fill:currentColor}.play .i-pause,.play[aria-pressed=true] .i-play{display:none}.play[aria-pressed=true] .i-pause{display:inline}.flow{position:relative;margin:8px -8px 0;min-height:120px}.flow svg{display:block;width:100%;height:auto}.flow .land path{fill:var(--land);stroke:var(--card);stroke-width:.5}.flow .land path.pl{fill:var(--c2);fill-opacity:.35}.flow .tint path{fill:var(--c1);fill-opacity:0;stroke:var(--card);stroke-width:.5;transition:fill-opacity .9s}.flow .tint path.on{fill-opacity:1!important}.flow.playing .tint path{transition:none}.flow.playing .stream .base{transition-duration:0s,1.5s}.flow.playing .stream .dots,.flow.playing .src{transition-duration:0s,.6s}.flow .s0{stop-color:var(--link);stop-opacity:.4}.flow .s1{stop-color:var(--link);stop-opacity:.95}.stream{transition:opacity .3s}.stream path{fill:none;stroke-linecap:round}.stream .base{stroke-dasharray:var(--len) var(--len);stroke-dashoffset:var(--len);transition:stroke-width .9s ease,stroke-dashoffset 1.5s cubic-bezier(.3,.7,.2,1) var(--delay)}.stream .dots{stroke:#fff;stroke-dasharray:0 var(--gap);opacity:0;animation:flow var(--dur) linear infinite;transition:stroke-width .9s ease,opacity .6s calc(var(--delay) + 1.2s)}.flow.in .stream .base{stroke-dashoffset:0}.flow.in .stream .dots{opacity:.75}@keyframes flow{to{stroke-dashoffset:calc(-1 * var(--gap))}}.flow .src{fill:var(--link);opacity:0;transition:transform .9s ease,opacity .6s}.flow.in .src{opacity:.9}.flow .hit{fill:none;pointer-events:all;cursor:pointer;r:10px}@media (max-width:560px){.flow .hit{r:18px}}.flow .home{fill:var(--c2);stroke:var(--card);stroke-width:1.5}.flow .pulse{fill:none;stroke:var(--c2);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{transform:scale(1);opacity:.9}to{transform:scale(4.5);opacity:0}}.flow.focus .stream:not(.on){opacity:.12}.flow.focus .stream.on .dots{opacity:1}.flow .labels text{font:600 13px IBM Plex Sans,system-ui,sans-serif;fill:var(--fg);text-anchor:middle;paint-order:stroke;stroke:var(--card);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none;opacity:0;transition:opacity .6s 1.4s}.flow.in .labels text{opacity:1}@media (max-width:560px){.flow .labels{display:none}}.flow-total{position:absolute;left:16px;bottom:12px;display:flex;flex-direction:column;pointer-events:none}.flow-total b{font-size:clamp(1.4rem,1rem + 2vw,2.25rem);line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}.flow-total span{font-size:.85rem;color:var(--mut)}@media (max-width:560px){.flow-total{position:static;margin:8px 8px 0}}.flow-top{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:2px 16px;padding:0;margin:14px 0 10px}.flow-top button{position:relative;display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 8px 6px;border:0;border-radius:6px;background:transparent;color:var(--fg);font:inherit;font-size:.875rem;cursor:pointer;text-align:left}.flow-top b{font-weight:600;font-variant-numeric:tabular-nums}.flow-top i{position:absolute;left:8px;bottom:6px;height:3px;max-width:calc(100% - 16px);border-radius:2px;background:var(--link);transition:width .9s ease}.flow-top button:hover,.flow-top button.on{background:var(--bg)}.pie{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:8px 32px;align-items:center;margin-top:12px}.cv.pie-cv{height:320px}.pie-mid{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.pie-mid b{font-size:1.5rem;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums}.pie-mid span{font-size:.85rem;color:var(--mut)}.pie-lgd{list-style:none;padding:0;margin:0;columns:230px 2;column-gap:16px}.pie-lgd li{break-inside:avoid}.pie-lgd button{display:grid;grid-template-columns:12px minmax(0,1fr) auto 3.6em;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:var(--fg);font:inherit;font-size:.875rem;cursor:pointer;text-align:left}.pie-lgd button:hover,.pie-lgd button:focus-visible{background:var(--bg)}.pie-lgd i{width:12px;height:12px;border-radius:3px}.pie-lgd span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-lgd b{font-weight:600;font-variant-numeric:tabular-nums}.pie-lgd small{color:var(--mut);font-size:.8rem;text-align:right;font-variant-numeric:tabular-nums}@media (max-width:640px){.pie{grid-template-columns:minmax(0,1fr)}.cv.pie-cv{height:280px}}@media (prefers-reduced-motion:reduce){.stream .dots{animation:none}.flow .pulse{display:none}.stream .base,.stream .dots,.flow .src,.flow .labels text{transition:none}}
