:root{--bg:#0a0c14;--bg-band:#0d1019;--surface:#10131f;--surface-2:#151a2a;--line:#242b3e;--line-soft:#a0afd72e;--ink:#e9ecf3;--mute:#959db0;--faint:#808a9e;--paper:#101421c7;--paper-solid:#0f1320;--paper-line:#262e44;--ink-body:#c9cfdc;--leading:1.75;--accent:#b4512a;--accent-hover:#a84b27;--accent-ink:#fff;--c1:#b9603b;--c2:#8da2c0;--c3:#66739a;--redis:#5f6b8a;--code-bg:#080a12;--code-ink:#dfe4ee;--code-dim:#dce4f0a3;--sky-0:#0a0c14;--sky-1:#11162e;--sky-2:#20152a;--sky-3:#35160f;--dusk:176, 76, 36;--ground-glow-a:#8da2c017;--ground-glow-b:rgba(var(--dusk), .09);--ground-dot:#a0afd713;--ground:radial-gradient(70vw 60vh at 8% -8%, var(--ground-glow-a), transparent 70%), radial-gradient(60vw 55vh at 100% 105%, var(--ground-glow-b), transparent 70%), radial-gradient(circle, var(--ground-dot) 1px, transparent 1.4px) 0 0 / 24px 24px, var(--bg);--f-sans:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;--radius:8px;--radius-s:6px;--max:1160px;--gutter:max(16px, env(safe-area-inset-left,0px));--section-y:clamp(56px, 8vw, 96px);color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--ground);color:var(--ink);font-family:var(--f-sans);background-attachment:fixed;margin:0;font-size:16px;line-height:1.6}img,svg{max-width:100%}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--c2);outline-offset:2px}code,kbd,pre{font-family:var(--f-mono)}:not(pre)>code{font-size:.9em}h1,h2,h3,h4{text-wrap:balance;letter-spacing:-.02em;font-weight:600}p{text-wrap:pretty}[hidden]{display:none!important}.wrap{max-width:var(--max);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.section{padding-block:var(--section-y)}.section+.section{border-top:1px solid var(--line)}.band{background:color-mix(in srgb, var(--bg-band) 72%, transparent);border-block:1px solid var(--line)}.band+.section,.section+.band{border-top:0}.kicker{color:var(--mute);margin:0 0 12px;font-size:14px;font-weight:600}.title{max-width:22ch;margin:0 0 12px;font-size:clamp(28px,3.6vw,42px);line-height:1.1}.lede{color:var(--mute);max-width:60ch;margin:0;font-size:17px}.head-row{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 32px;margin-bottom:32px;display:flex}.head-row>*{min-width:0}.source{font-family:var(--f-mono);color:var(--faint);overflow-wrap:anywhere;margin:20px 0 0;font-size:12px}.source a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}.source a:hover{color:var(--mute)}.btn{border-radius:var(--radius-s);background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;align-items:center;gap:8px;padding:11px 20px;font-size:15px;font-weight:600;line-height:1.3;transition:background-color .15s;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn.ghost{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-soft);background:0 0}.btn.ghost:hover{background:#ffffff0a}.btn.small{padding:8px 14px;font-size:14px}.grid{gap:18px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:12px;min-width:0;padding:26px;transition:border-color .15s;display:flex}a.card:hover{border-color:color-mix(in srgb, var(--ink) 30%, var(--line))}.card h3{margin:0;font-size:20px}.card p{color:var(--mute);margin:0;font-size:15px}.card .more{color:var(--ink);margin-top:auto;padding-top:4px;font-size:14px;font-weight:600}.card .more:after{content:" →";color:var(--mute)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips span,.chip{font-family:var(--f-mono);border:1px solid var(--line);color:var(--ink);border-radius:4px;padding:4px 9px;font-size:12px}.chips span.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.seg{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);gap:2px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--mute);border-radius:var(--radius-s);cursor:pointer;background:0 0;border:0;padding:6px 14px;font-size:13.5px}.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg);font-weight:600}.legend{color:var(--mute);flex-wrap:wrap;gap:6px 18px;font-size:13px;display:flex}.legend i{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:7px;display:inline-block}.term{background:var(--code-bg);color:var(--code-ink);border:1px solid var(--line-soft);border-radius:var(--radius);min-width:0;font-size:13.5px;line-height:1.75;overflow:hidden}.term-bar{color:var(--code-dim);border-bottom:1px solid #ffffff12;justify-content:space-between;padding:11px 16px;font-size:12px;display:flex}.term pre{font:inherit;font-family:var(--f-mono);margin:0;padding:18px 20px 22px;overflow-x:auto}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:14px}.table-wrap th{text-align:left;color:var(--mute);background:var(--surface-2);white-space:nowrap;padding:10px 14px;font-size:12.5px;font-weight:600}.table-wrap td{border-top:1px solid var(--line);vertical-align:top;padding:10px 14px}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.page-intro{isolation:isolate;border-bottom:1px solid var(--line);padding-block:clamp(48px,7vw,88px) clamp(40px,6vw,72px);position:relative;overflow:hidden}.page-intro:before{content:"";z-index:-1;background:radial-gradient(60% 70% at 30% 130%, rgba(var(--dusk), .3), rgba(var(--dusk), 0) 70%), linear-gradient(180deg, var(--sky-0) 0%, var(--sky-1) 60%, var(--sky-2) 100%);position:absolute;inset:0}.page-intro:after{content:"";background:linear-gradient(90deg, transparent, rgba(var(--dusk), .6), transparent);height:1px;position:absolute;inset:auto 0 0}.page-intro h1{max-width:22ch;margin:0 0 16px;font-size:clamp(32px,4.4vw,52px);line-height:1.08}.page-intro .lede{color:color-mix(in srgb, var(--ink-body) 85%, var(--mute));font-size:18px}.page-intro .lede code{color:var(--ink)}.reading{padding-block:clamp(32px, 5vw, 56px) var(--section-y);background:linear-gradient(180deg, color-mix(in srgb, var(--sky-1) 45%, transparent) 0, transparent 360px)}.panel{background:var(--paper);border:1px solid var(--paper-line);border-radius:var(--radius);min-width:0;padding:clamp(20px,3vw,34px)}.prose{color:var(--ink-body);font-size:16.5px;line-height:var(--leading)}.prose>*{margin:0}.prose>*+*{margin-top:14px}.prose p,.prose li{max-width:68ch}.prose strong,.prose b{color:var(--ink);font-weight:600}.prose a:not(.btn,.card){color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent)}.prose a:not(.btn,.card):hover{text-decoration-color:var(--ink)}.prose :not(pre)>code{color:var(--ink);background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.88em}.callout{border-radius:var(--radius-s);background:color-mix(in srgb, var(--c2) 7%, var(--paper));border:1px solid color-mix(in srgb, var(--c2) 22%, var(--paper-line));border-left:3px solid var(--c2);padding:12px 16px;font-size:15.5px}.callout b:first-child{margin-right:6px}.chart-tip{z-index:5;pointer-events:none;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-s);max-width:260px;padding:9px 12px;font-size:13px;line-height:1.45;position:absolute;box-shadow:0 12px 30px -10px #00000080}.chart-tip b{font-size:13.5px;display:block}.chart-tip span{font-family:var(--f-mono);color:var(--mute);font-size:12px}@media (width<=900px){.grid-3,.grid-2{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.kpis{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.kpis>div{background:var(--surface);align-content:start;gap:6px;padding:22px;display:grid}.kpis b{letter-spacing:-.03em;font-size:clamp(30px,3.4vw,42px);font-weight:600;line-height:1}.kpis em{color:var(--mute);font-style:normal}.kpis span{color:var(--mute);font-size:14px;line-height:1.4}@media (width<=900px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.site-header:where(.astro-nen7h5rs){z-index:50;background:color-mix(in srgb, var(--bg) 84%, transparent);backdrop-filter:saturate(140%)blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0}.bar:where(.astro-nen7h5rs){align-items:center;gap:28px;height:64px;display:flex}.nav:where(.astro-nen7h5rs){gap:24px;margin-right:auto;font-size:15px;display:flex}.nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs){color:var(--mute)}.nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs):hover,.nav:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs)[aria-current=page]{color:var(--ink)}.actions:where(.astro-nen7h5rs){align-items:center;gap:14px;display:flex}.gh:where(.astro-nen7h5rs){color:var(--mute);align-items:center;gap:7px;font-size:14px;display:inline-flex}.gh:where(.astro-nen7h5rs):hover{color:var(--ink)}.gh:where(.astro-nen7h5rs) svg:where(.astro-nen7h5rs){fill:currentColor;width:17px;height:17px}.menu:where(.astro-nen7h5rs){display:none;position:relative}.menu:where(.astro-nen7h5rs) summary:where(.astro-nen7h5rs){cursor:pointer;border-radius:var(--radius-s);border:1px solid var(--line);place-content:center;gap:4px;width:40px;height:40px;list-style:none;display:grid}.menu:where(.astro-nen7h5rs) summary:where(.astro-nen7h5rs)::-webkit-details-marker{display:none}.menu:where(.astro-nen7h5rs) summary:where(.astro-nen7h5rs) span:where(.astro-nen7h5rs){background:var(--ink);width:16px;height:1.5px;display:block}.menu-panel:where(.astro-nen7h5rs){background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:210px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 20px 40px -20px #0009}.menu-panel:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs){border-radius:var(--radius-s);color:var(--ink);padding:9px 12px}.menu-panel:where(.astro-nen7h5rs) a:where(.astro-nen7h5rs):hover{background:var(--surface-2)}@media (width<=900px){.nav:where(.astro-nen7h5rs),.gh:where(.astro-nen7h5rs){display:none}.bar:where(.astro-nen7h5rs){justify-content:space-between}.menu:where(.astro-nen7h5rs){display:block}}.site-footer:where(.astro-jo6i4kqk){border-top:1px solid var(--line);background:var(--bg);padding-block:56px 28px}.cols:where(.astro-jo6i4kqk){grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:32px;display:grid}.about:where(.astro-jo6i4kqk) p:where(.astro-jo6i4kqk){color:var(--mute);max-width:38ch;margin:14px 0 0;font-size:14.5px}h2:where(.astro-jo6i4kqk){color:var(--mute);letter-spacing:0;margin:6px 0 14px;font-size:13px;font-weight:600}ul:where(.astro-jo6i4kqk){gap:9px;margin:0;padding:0;font-size:14.5px;list-style:none;display:grid}ul:where(.astro-jo6i4kqk) a:where(.astro-jo6i4kqk):hover{color:var(--c2)}.legal:where(.astro-jo6i4kqk){border-top:1px solid var(--line);color:var(--faint);flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:44px;padding-top:20px;font-size:13px;display:flex}@media (width<=900px){.cols:where(.astro-jo6i4kqk){grid-template-columns:repeat(2,minmax(0,1fr))}.about:where(.astro-jo6i4kqk){grid-column:1/-1}}
