@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-ext-500-normal.28wp48yubenc3.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-ext-500-normal.41yczc5zdkwdh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-cyrillic-500-normal.26ox_itp_alxp.woff2)format("woff2"),url(../media/ibm-plex-mono-cyrillic-500-normal.1eaan1mch682e.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-vietnamese-500-normal.0s1z3n-ysad7w.woff2)format("woff2"),url(../media/ibm-plex-mono-vietnamese-500-normal.2g79xp9gzp1kn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-ext-500-normal.1cuq9_67cn48n.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-ext-500-normal.1tdw_l2v4yhc_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(../media/ibm-plex-mono-latin-500-normal.11q3guvgd1r20.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-500-normal.1fgk-kmy-32_a.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--paper:#edf1ef;--surface:#f9fbf9;--ink:#1b211f;--ink-muted:#5c6663;--rule:#d6dcd8;--signal:#5b3df5;--signal-wash:#ede9fe;--up:#c23b22;--down:#1b7f4b;--series-1:#2a78d6;--series-2:#eb6834;--series-3:#4a3aa7;--series-4:#c2457d;--heat-m2:#2f63a8;--heat-m1:#8daed6;--heat-0:#dad4c6;--heat-1:#e3957a;--heat-2:#c23b22;--product:#1f6e8c;--tech:#7a4e9b;--seg:#5f7a1f;--second:#a9aea9;--group-wash:#edf1ef;--font-display:"Iansui", "Noto Sans TC", sans-serif;--font-reading:"Noto Serif TC", serif;--font-ui:"Noto Sans TC", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--size-footnote:13px;--size-label:14px;--size-body-ui:16px;--size-body-reading:18px;--size-meta:20px;--size-entry-headline:28px;--size-masthead-title:40px;--lh-reading:1.75;--lh-ui:1.4;--lh-display:1.12;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius:0;--radius-interactive:3px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#12161a;--surface:#181d21;--ink:#e7ece9;--ink-muted:#8b9490;--rule:#2a3130;--signal:#8f7bff;--signal-wash:#241f3d;--up:#f0735f;--down:#4cc08a;--series-1:#3987e5;--series-2:#d95926;--series-3:#9085e9;--series-4:#d55181;--heat-m2:#6e9be0;--heat-m1:#3f5c86;--heat-0:#454c48;--heat-1:#9a5543;--heat-2:#f0765c;--product:#5aa9c9;--tech:#b48fd6;--seg:#a9c25a;--second:#59625e;--group-wash:#20262a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{background:var(--paper)}.staging-banner{z-index:50;padding:var(--space-2) var(--space-4);background:var(--up);color:var(--surface);font-family:var(--font-ui);font-size:var(--size-label);text-align:center;font-weight:700;position:sticky;top:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--size-body-ui);line-height:var(--lh-ui);margin:0}a{color:inherit}button{font:inherit;color:inherit}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.shell{max-width:720px;padding:var(--space-6) var(--space-4) var(--space-8);margin:0 auto}.masthead{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--rule);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.masthead__title{align-items:baseline;gap:var(--space-3);text-decoration:none;display:flex}.masthead__title h1{font-family:var(--font-display);font-size:var(--size-masthead-title);line-height:var(--lh-display);margin:0;font-weight:400}.masthead__mark{width:24px;height:14px;color:var(--signal);flex:none;display:block}.masthead__updated{gap:var(--space-1);text-align:right;color:var(--ink-muted);font-size:var(--size-footnote);margin-left:auto;display:grid}.masthead__updated time{white-space:nowrap}header.masthead:has(.masthead__tabs){padding-bottom:0}.masthead__tabs{gap:var(--space-5);scrollbar-width:none;flex-basis:100%;order:3;margin-bottom:-1px;display:flex;overflow-x:auto}.masthead__tab{min-height:44px;color:var(--board-muted,var(--ink-muted));white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 2px;font-size:15px;text-decoration:none;display:inline-flex}.masthead__tab:hover{color:var(--board-ink,var(--ink))}.masthead__tabs .masthead__tab:focus-visible{outline-offset:-2px}.masthead__tab[aria-current=page]{color:var(--board-ink,var(--ink));border-bottom-color:var(--board-accent,var(--signal));font-weight:500}.masthead__tab-flag{border-radius:var(--radius-interactive);border:1px dashed;padding:0 5px;font-size:11px;font-weight:400;line-height:1.5}.page-date{color:var(--ink-muted);font-size:var(--size-label);margin:0 0 var(--space-5);font-weight:400}.chip{border:1px solid var(--rule);border-radius:var(--radius-interactive);font-family:var(--font-ui);font-size:var(--size-label);color:var(--ink);flex:none;align-items:baseline;gap:6px;padding:2px 9px;text-decoration:none;display:inline-flex}.chip:hover,.chip:focus-visible{background:var(--signal-wash)}.list{margin:0;padding:0;list-style:none}.list-row{align-items:baseline;gap:var(--space-3);padding:var(--space-4) 0;border-top:1px solid var(--rule);grid-template-columns:max-content max-content minmax(0,1fr);display:grid;position:relative}.list-row--company{grid-template-columns:max-content minmax(0,1fr)}.list-row:first-child{border-top:none}.list-row .chip{z-index:1;position:relative}.list-row__title{overflow-wrap:anywhere;min-width:0;color:var(--ink);font-family:var(--font-ui);font-size:var(--size-body-ui);text-decoration:none}.list-row__title:after{content:"";position:absolute;inset:0}.list-row__date{font-family:var(--font-mono);color:var(--ink-muted);font-size:var(--size-label);white-space:nowrap}.company-heading{align-items:baseline;gap:var(--space-3);font-family:var(--font-display);font-size:var(--size-entry-headline);margin:0 0 var(--space-5);font-weight:400;display:flex}.company-heading .num{font-size:var(--size-label);color:var(--ink-muted)}.entry{padding-block:var(--space-6);border-top:1px solid var(--rule)}.entry:first-of-type{border-top:none;padding-top:0}.entry__title{align-items:baseline;gap:var(--space-1) var(--space-3);margin:0 0 var(--space-3);flex-wrap:wrap;display:flex}.entry__headline{font-family:var(--font-display);font-size:var(--size-entry-headline);line-height:var(--lh-display);border-bottom:2px solid var(--signal);margin:0;padding-bottom:2px;font-weight:400;display:inline-block}.entry__date{font-size:var(--size-footnote);color:var(--ink-muted);white-space:nowrap}.entry__head{align-items:baseline;gap:var(--space-1) var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.entry__head .muted{color:var(--ink-muted)}.quote{display:contents}.quote__lbl{font-size:var(--size-footnote);color:var(--ink-muted);margin-right:var(--space-1)}.quote__lbl--gap{margin-left:var(--space-3)}.quote__px{font-size:var(--size-meta);font-weight:500}.up{color:var(--up)}.down{color:var(--down)}.entry__para{font-family:var(--font-reading);font-size:var(--size-body-reading);line-height:var(--lh-reading);max-width:42em;margin:var(--space-5) 0 0}.signal-hits{position:relative}.signal-hits__list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.signal-hits__body{align-items:flex-start;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.signal-hits__body .signal-hits__list{flex:260px;min-width:0}.signal-hits__legend{gap:var(--space-1);font-size:var(--size-footnote);color:var(--ink-muted);margin:0;padding:0;list-style:none;display:grid}.signal-hits__legend li{white-space:nowrap;align-items:center;gap:6px;display:flex}.signal-hits__swatch{border-radius:var(--radius-interactive);border:2px solid;width:18px;height:12px;display:inline-block}.signal-chip--r0{border-color:var(--series-1)}.signal-chip--r1{border-color:var(--series-2)}.signal-chip--r2{border-color:var(--series-3)}.signal-chip--r3{border-color:var(--series-4)}.signal-chip{cursor:pointer;text-align:left;overflow-wrap:anywhere;-webkit-tap-highlight-color:transparent;background:0 0;border-width:2px;flex:0 auto;align-items:center;min-height:32px;padding:4px 10px}.signal-chip[aria-expanded=true]{background:var(--signal-wash);outline:2px solid var(--ink);outline-offset:1px}.signal-hits__def{top:calc(100% + var(--space-2));z-index:10;max-width:42em;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--rule);font-size:var(--size-label);position:absolute;left:0;right:0}.signal-hits__def[hidden]{display:none}.signal-hits__def p{margin:0}.signal-hits__def p+p{margin-top:var(--space-1)}.signal-hits__def-title{font-weight:500}.signal-hits__def-stat,.signal-hits__def-rule{color:var(--ink-muted)}.signal-hits__def-sib{padding-left:var(--space-2);border-left:2px solid var(--rule)}.facts{gap:var(--space-3) var(--space-4);margin:var(--space-5) 0 0;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.facts div{gap:1px;min-width:0;display:grid}.facts dt{font-size:var(--size-footnote);color:var(--ink-muted)}.facts dd{font-size:var(--size-body-ui);margin:0}.banner-wrap{margin-top:var(--space-5)}.banner{scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;background:var(--surface);display:flex;overflow-x:auto}.banner::-webkit-scrollbar{display:none}.slide{scroll-snap-align:start;scroll-snap-stop:always;min-width:0;padding:var(--space-3);gap:var(--space-2);flex:0 0 100%;align-content:start;display:grid}.slide h3{font-family:var(--font-ui);font-size:var(--size-label);color:var(--ink-muted);margin:0;font-weight:500}.banner-dots{justify-content:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.banner-dots button{appearance:none;cursor:pointer;min-height:32px;font-size:var(--size-footnote);color:var(--ink-muted);-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:6px;padding:6px;display:flex}.banner-dots button i{background:var(--rule);width:12px;height:3px;display:block}.banner-dots button[aria-current=true]{color:var(--ink)}.banner-dots button[aria-current=true] i{background:var(--ink);width:22px}@media (max-width:480px){.banner-dots--many button:not([aria-current=true]) span{display:none}}.banner:focus-visible,.banner-dots button:focus-visible,.chart-legend button:focus-visible,svg.dia:focus-visible,.dia-hit:focus-visible{outline:2px solid var(--ink);outline-offset:2px}svg.dia{touch-action:pan-x pan-y;width:100%;height:auto;display:block}svg.dia text{font-family:var(--font-ui);fill:var(--ink)}svg.dia .halo{paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}svg.dia .axis{font-family:var(--font-mono);fill:var(--ink-muted);font-size:10px}svg.dia .muted{fill:var(--ink-muted)}.dia-hit{cursor:pointer}.swatch{flex:none;display:inline-block}.chart-legend{gap:var(--space-1) 14px;font-size:var(--size-footnote);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chart-legend li,.chart-legend button{align-items:center;gap:6px;min-width:0;display:flex}.chart-legend button{appearance:none;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:2px 0}.chart-legend button[aria-pressed=false]{opacity:.45}.chart-legend__r{color:var(--ink-muted);white-space:nowrap}.chart-legend__ev{color:var(--signal);white-space:nowrap}svg.dia .evt{fill:var(--signal);font-size:10.5px}svg.dia .evtm{fill:var(--ink-muted);font-size:10.5px}.chart-legend button:has(>.chart-legend__ev){flex-wrap:wrap;row-gap:0}svg.dia .axcap{fill:var(--ink-muted);font-size:10.5px}.chart-relations{color:var(--ink);gap:5px;margin:10px 0 0;padding:0;font-size:12.5px;list-style:none;display:grid}.chart-relations li{flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;display:flex}.chart-relations .swatch{flex:none;align-self:center}.chart-relations b{white-space:nowrap;font-weight:500}.chart-tip{gap:0 var(--space-2);font-size:var(--size-footnote);color:var(--ink-muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.chart-tip b{color:var(--ink);font-weight:500}.chart-tip__week{grid-column:1/-1}.chart-tip__v{color:var(--ink);text-align:right}.diagram{gap:var(--space-2);align-items:stretch;display:flex}.diagram svg{flex:auto;min-width:0}.diagram--narrow{justify-content:center}.meter{justify-items:center;gap:var(--space-1);color:var(--ink-muted);flex:none;grid-template-rows:auto 1fr auto;padding-block:18px;font-size:11px;display:grid}.meter i{border-radius:var(--radius-interactive);background:linear-gradient(var(--heat-2), var(--heat-1), var(--heat-0), var(--heat-m1), var(--heat-m2));width:10px;display:block}.map-panel{font-size:var(--size-label);color:var(--ink-muted);margin:0}.map-panel[hidden]{display:none}.att{gap:var(--space-1);display:grid}.att__cap,.att__note{font-size:var(--size-footnote);color:var(--ink-muted);margin:0}.att__cap{margin-top:var(--space-1)}.adv{gap:var(--space-2);display:grid}.adv__cap,.adv__note{font-size:var(--size-footnote);color:var(--ink-muted);margin:0}.adv__cap{margin-top:var(--space-1)}.adv__group{gap:var(--space-1);display:grid}.adv__h{font-family:var(--font-ui);font-size:var(--size-footnote);color:var(--ink);margin:0;font-weight:600}.adv__list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.adv__item{gap:0 var(--space-2);border-left:2px solid var(--rule);font-size:var(--size-footnote);color:var(--ink);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;padding-left:10px;line-height:1.55;display:grid}.adv__item q{quotes:"「" "」"}.adv__page{font-family:var(--font-mono);font-size:var(--size-caption,11px);color:var(--ink-muted);white-space:nowrap}.rot{gap:var(--space-1);display:grid}.rot__cap,.rot__note{font-size:var(--size-footnote);color:var(--ink-muted);margin:0}.rot__cap{margin-top:var(--space-1)}.rot__bars{gap:3px;display:grid}.rot__gap{font-size:var(--size-footnote);color:var(--ink-muted);padding-left:6em;line-height:1}.rot-row{appearance:none;cursor:pointer;gap:var(--space-2);width:100%;font:inherit;font-size:var(--size-footnote);line-height:var(--lh-ui);color:var(--ink);text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;grid-template-columns:minmax(0,7.5em) minmax(0,1fr) 4.4em;align-items:center;margin:0;padding:2px 0;display:grid}.rot-row:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.rot-row__l{text-align:right;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rot-row--pick .rot-row__l{font-weight:700}.rot-row__t{height:12px;position:relative}.rot-row__t i{background:var(--second);position:absolute;top:0;bottom:0}.rot-row__t i.rot-bar--pick{background:var(--signal)}.rot-row__t i.rot-bar--above{background:var(--heat-1)}.rot-row__t i.rot-bar--neg{background:var(--heat-m1)}.rot-row__t i.rot-bar--rest{background:var(--rule)}.rot-row__t s{border-left:1px dashed var(--ink-muted);width:0;position:absolute;top:-4px;bottom:-4px}.rot-row__t s.rot-zero{border-left:1px solid var(--rule);top:-3px;bottom:-3px}.rot-row__t b.rot-tick{background:var(--ink);width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.rot-row__t b.rot-tick--over{border-block:7px solid #0000;border-left:7px solid var(--ink);background:0 0;width:0;margin-left:-6px;top:-1px;bottom:auto}.rot-row__v{color:var(--ink-muted);text-align:right;white-space:nowrap;font-size:12px}.rot-row--axis{cursor:default;padding:0}.rot-row--axis .rot-row__t{height:14px}.rot-row--axis em{font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;font-size:11px;font-style:normal;position:absolute;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.banner{scroll-behavior:auto}}.disclaimer{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--rule);font-size:var(--size-footnote);color:var(--ink-muted)}@media (max-width:480px){.masthead__title h1{font-size:30px}.masthead__tabs{gap:var(--space-4)}.masthead__tab{font-size:14px}.entry__headline{font-size:22px}.entry__title{flex-direction:column;align-items:flex-start}.list-row{gap:var(--space-2) var(--space-3);grid-template-columns:max-content minmax(0,1fr)}.list-row .chip{justify-self:start}.list-row__title{grid-area:2/1/auto/-1}}.entry__byline{color:var(--ink-muted);letter-spacing:.02em;margin:.15rem 0 0;font-size:.82rem}.about{max-width:34rem;line-height:1.85}.about__facts{grid-template-columns:auto 1fr;gap:.35rem 1.2rem;margin:1.4rem 0;display:grid}.about__facts dt{color:var(--ink-muted)}.about__facts dd{margin:0}.about__disclaimer{color:var(--ink-muted);font-size:.88rem}.entry__headline a{text-decoration:none}.company-heading{flex-wrap:wrap}.company-heading__name{align-items:baseline;gap:var(--space-1) var(--space-3);overflow-wrap:anywhere;flex-wrap:wrap;min-width:0;display:inline-flex}.company-heading__facts{font-family:var(--font-ui);font-size:var(--size-label);color:var(--ink-muted)}.company-empty{margin:0 0 var(--space-5);color:var(--ink-muted)}.company-mentions{margin-top:var(--space-6)}.company-mentions h3{font-size:var(--size-label);margin:0;font-weight:500}.company-mentions__note{margin:var(--space-1) 0 0;font-size:var(--size-footnote);color:var(--ink-muted)}svg.dia a.dia-link text{cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--ink-muted);text-decoration-color:var(--ink-muted);text-underline-offset:3px}svg.dia a.dia-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.rot-row--member{cursor:default}a.rot-row__l{text-decoration:underline;-webkit-text-decoration-color:var(--ink-muted);text-decoration-color:var(--ink-muted);text-underline-offset:3px}.rot-row__more{appearance:none;gap:var(--space-2);font:inherit;color:inherit;cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;background:0 0;border:0;grid-column:2/4;grid-template-columns:minmax(0,1fr) 4.4em;align-items:center;margin:0;padding:0;display:grid}.rot-row__more:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.chart-links{color:var(--ink-muted);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:10px 0 0;font-size:12.5px;display:flex}.chart-links a,.chart-relations a{color:var(--ink);text-underline-offset:3px}.kg-section{margin:var(--space-6) 0}.kg-section h3{margin:0 0 var(--space-2);font-size:var(--size-label);font-weight:500}.kg-view__tabs{justify-content:flex-end;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.kg-view__tabs button{appearance:none;border:1px solid var(--rule);border-radius:var(--radius-interactive);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--size-footnote);cursor:pointer;min-height:28px;padding:2px 12px}.kg-view[data-view=auto] [data-tab=graph],.kg-view[data-view=graph] [data-tab=graph],.kg-view[data-view=list] [data-tab=list]{background:var(--ink);color:var(--surface)}.kg-view__list,.kg-view[data-view=list] .kg-view__graph{display:none}.kg-view[data-view=list] .kg-view__list{display:block}@media (max-width:600px){[data-kg-timeline] .kg-view[data-view=auto] .kg-view__graph{display:none}[data-kg-timeline] .kg-view[data-view=auto] .kg-view__list{display:block}[data-kg-timeline] .kg-view[data-view=auto] [data-tab=graph]{background:var(--surface);color:var(--ink)}[data-kg-timeline] .kg-view[data-view=auto] [data-tab=list]{background:var(--ink);color:var(--surface)}}.kg-list h4{margin:var(--space-4) 0 var(--space-1);font-size:var(--size-label);font-weight:500}.kg-list ul,.kg-more ul{margin:0;padding:0;list-style:none}.kg-list li,.kg-more li{padding:var(--space-1) 0;border-bottom:1px solid var(--rule);overflow-wrap:anywhere}.kg-note{margin-left:var(--space-2);font-size:var(--size-footnote);color:var(--ink-muted)}.kg-section>.kg-note,.kg-stat{margin:var(--space-1) 0 0;font-size:var(--size-footnote);color:var(--ink-muted)}.kg-source summary,.kg-more summary{cursor:pointer;font-size:var(--size-footnote);color:var(--ink-muted)}.kg-source blockquote{margin:var(--space-1) 0;font-family:var(--font-reading)}.kg-legend{justify-content:flex-end}:root{--kg-rev:var(--series-2);--kg-rev-soft:color-mix(in srgb, var(--series-2) 18%, var(--surface));--kg-rev-ink:color-mix(in srgb, var(--series-2) 55%, var(--ink));--kg-up:var(--series-1);--kg-down:var(--series-4);--kg-made:var(--tech);--kg-made-soft:color-mix(in srgb, var(--tech) 16%, var(--surface));--kg-classed:var(--ink-muted);--kg-peer:var(--ink-muted);--kg-co:var(--ink);--kg-co-fg:var(--surface)}.kg-wide,.kg-view__tools{display:none}@media (min-width:1136px){.kg-wide,.kg-view__tools{display:block}.kgn{display:none}.kg-section--wide .kg-view__bar,.kg-section--wide .kg-stage,.kg-section--wide .kg-foot{margin-inline:calc(50% + -1*min(620px,50vw - 16px))}}.kg-view__bar{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap-reverse;display:flex}.kg-view__bar .kg-view__tabs{flex:none;margin:0 0 0 auto}.kg-view__tools{flex:auto;min-width:0}.kg-view[data-view=list] .kg-view__tools{display:none}.kg-tools{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.kg-tools button{appearance:none;border:1px solid var(--rule);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--size-footnote);cursor:pointer;border-radius:999px;min-height:28px;padding:2px 12px}.kg-tools button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.kg-tools button:focus-visible,svg.kg-chain:focus-visible,svg.kg-chain .kg-node:focus-visible,svg.kg-chain .kg-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}svg.kg-chain:focus-visible{outline-offset:-3px}svg.kg-chain .kg-node:focus-visible>rect,svg.kg-chain .kg-link:focus-visible rect{stroke:var(--ink);stroke-width:3px}.kg-foot{align-items:flex-start;gap:var(--space-1) var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;display:flex}[data-kg-graph] .kg-legend{grid-template-columns:repeat(var(--kg-legend-columns,3), max-content);justify-content:start;gap:var(--space-1) 18px;display:grid}.kg-tools__hint{font-size:var(--size-footnote);color:var(--ink-muted);margin-left:auto}.kg-tools__hint--touch{display:none}@media (hover:none) and (pointer:coarse){.kg-tools__hint--mouse{display:none}.kg-tools__hint--touch{display:inline}}.kg-stage{border:1px solid var(--rule);border-radius:var(--radius-interactive);background:var(--surface);position:relative;overflow:hidden}svg.kg-chain{touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:auto;min-height:240px;max-height:86vh;display:block}svg.kg-chain[data-engaged]{touch-action:none}svg.kg-chain[data-dragging]{cursor:grabbing}svg.kg-chain text{font-family:var(--font-ui);fill:var(--ink)}svg.kg-chain .kg-label{font-size:13px}svg.kg-chain .kg-strong{font-weight:600}svg.kg-chain .kg-muted,svg.kg-chain .kg-sub{fill:var(--ink-muted)}svg.kg-chain .kg-sub{font-size:11.5px}svg.kg-chain .kg-card{fill:var(--surface);stroke:var(--kg-rev);stroke-width:1.4px}svg.kg-chain .kg-card--note{stroke:var(--kg-classed);stroke-width:1.2px;stroke-dasharray:4 3}svg.kg-chain .kg-num{font-family:var(--font-mono);fill:var(--kg-rev-ink);font-weight:600}svg.kg-chain .kg-num.kg-muted{fill:var(--ink-muted)}svg.kg-chain .kg-bar-track{fill:var(--kg-rev-soft)}svg.kg-chain .kg-bar{fill:var(--kg-rev)}svg.kg-chain .kg-bar--rest{fill:var(--kg-classed)}svg.kg-chain .kg-centre__name{fill:var(--kg-co-fg);font-size:17px;font-weight:700}svg.kg-chain .kg-centre__code{font:12px var(--font-mono);fill:var(--kg-co-fg);opacity:.75}svg.kg-chain .kg-caption rect{fill:var(--surface);stroke:var(--rule)}svg.kg-chain .kg-caption text{letter-spacing:.04em;font-size:13.5px;font-weight:600}svg.kg-chain .kg-arc-label{font:600 11.5px var(--font-mono);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}svg.kg-chain .kg-node,svg.kg-chain .kg-arc,svg.kg-chain .kg-arc-label{transition:opacity .25s}svg.kg-chain .kg-dim{opacity:.12}.kg-tip{z-index:2;background:var(--surface);border:1px solid var(--ink-muted);max-width:300px;font-size:var(--size-footnote);color:var(--ink);pointer-events:none;border-radius:9px;margin:0;padding:8px 11px;position:absolute}.kg-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.kg-list .kg-empty{margin:var(--space-4) 0 0;display:block}[data-kg-graph] .kg-list h4{scroll-margin-top:96px}@media (max-width:1135px),(pointer:coarse){.kg-view__tabs button,.kg-tools button{min-width:44px;min-height:44px}[data-kg-graph] a.kg-name{align-items:center;min-width:44px;min-height:44px;display:inline-flex}[data-kg-graph] .kg-source summary,[data-kg-graph] .kg-more summary{line-height:44px}}@media (prefers-reduced-motion:no-preference){svg.kg-chain[data-intro] .kg-layer{transform-box:fill-box;transform-origin:50%;animation:.8s cubic-bezier(.65,0,.35,1) .1s backwards kg-camera}svg.kg-chain[data-intro] [data-band]{animation:.35s ease-out backwards kg-in}svg.kg-chain[data-intro] [data-band=revenue]{animation-delay:.25s}svg.kg-chain[data-intro] [data-band=upstream]{animation-delay:.35s}svg.kg-chain[data-intro] [data-band=downstream]{animation-delay:.45s}svg.kg-chain[data-intro] [data-band=products]{animation-delay:.55s}svg.kg-chain[data-intro] [data-band=related],svg.kg-chain[data-intro] [data-band=peers]{animation-delay:.65s}}@keyframes kg-camera{0%{transform:scale(1.8)}}@keyframes kg-in{0%{opacity:0}}:root{--kgn-stage:var(--paper);--kgn-rev:color-mix(in srgb, var(--kg-rev) 55%, var(--kgn-stage));--kgn-up:color-mix(in srgb, var(--kg-up) 90%, var(--kgn-stage));--kgn-down:color-mix(in srgb, var(--kg-down) 90%, var(--kgn-stage));--kgn-made:color-mix(in srgb, var(--kg-made) 90%, var(--kgn-stage));--kgn-co:color-mix(in srgb, var(--kg-co) 80%, var(--kgn-stage));--kgn-peer:color-mix(in srgb, var(--kg-peer) 80%, var(--kgn-stage))}.kgn{max-width:360px;margin:0 auto var(--space-3)}.kgn-chips{margin-bottom:var(--space-2);gap:4px;display:flex}.kgn-chips button{appearance:none;border:1px solid var(--rule);background:var(--surface);min-width:44px;max-width:64px;min-height:44px;color:var(--ink);font:inherit;font-size:var(--size-footnote);white-space:nowrap;cursor:pointer;border-radius:999px;flex:44px;padding:0}.kgn-chips button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.kgn-stage{border:1px solid var(--rule);border-radius:var(--radius-interactive);background:var(--kgn-stage);touch-action:manipulation;position:relative;overflow:hidden}svg.kgn-svg{touch-action:manipulation;width:100%;height:auto;display:block}svg.kgn-svg .kgn-layer{visibility:hidden}svg.kgn-svg .kgn-layer[data-on],svg.kgn-svg[data-flying] .kgn-layer{visibility:visible}svg.kgn-svg text{font-family:var(--font-ui);fill:var(--ink)}svg.kgn-svg .kgn-name{font-size:13px}svg.kgn-svg .kgn-small{font-size:11.5px}svg.kgn-svg .kgn-centre__name{fill:var(--kg-co-fg);font-size:17px;font-weight:700}svg.kgn-svg .kgn-centre__code{font:12px var(--font-mono);fill:var(--kg-co-fg);fill-opacity:.75}svg.kgn-svg .kgn-strong{font-weight:600}svg.kgn-svg .kgn-muted,svg.kgn-svg .kgn-text,svg.kgn-svg [data-kind=term][data-dashed]>text.kgn-name,svg.kgn-svg [data-kind=tag][data-dashed]>text.kgn-name{fill:var(--ink-muted)}svg.kgn-svg .kgn-text[data-kind=notice]{fill:var(--ink)}svg.kgn-svg .kgn-code{font-family:var(--font-mono);fill:var(--ink-muted);font-weight:400}svg.kgn-svg .kgn-num,svg.kgn-svg .kgn-count{font-family:var(--font-mono);font-weight:600}svg.kgn-svg .kgn-num{fill:var(--kg-rev-ink)}svg.kgn-svg .kgn-num.kgn-muted{fill:var(--ink-muted)}svg.kgn-svg [data-band=revenue]{--kgn-band:var(--kgn-rev);--kgn-ink:var(--kg-rev-ink)}svg.kgn-svg [data-band=upstream]{--kgn-band:var(--kgn-up);--kgn-ink:color-mix(in srgb, var(--kg-up) 55%, var(--ink))}svg.kgn-svg [data-band=downstream]{--kgn-band:var(--kgn-down);--kgn-ink:color-mix(in srgb, var(--kg-down) 55%, var(--ink))}svg.kgn-svg [data-band=products]{--kgn-band:var(--kgn-made);--kgn-ink:color-mix(in srgb, var(--kg-made) 55%, var(--ink))}svg.kgn-svg [data-band=related]{--kgn-band:var(--kgn-co);--kgn-ink:var(--ink)}svg.kgn-svg [data-band=peers]{--kgn-band:var(--kgn-peer);--kgn-ink:var(--ink-muted)}svg.kgn-svg .kgn-arc{fill:none;stroke:var(--kgn-band)}svg.kgn-svg .kgn-head{fill:var(--kgn-band)}svg.kgn-svg .kgn-arc-label{fill:var(--kgn-ink);font-weight:600}svg.kgn-svg .kgn-count{fill:var(--kgn-ink)}svg.kgn-svg .kgn-box,svg.kgn-svg .kgn-under{fill:var(--surface);stroke:var(--kgn-band,var(--kg-classed));stroke-width:1.4px}svg.kgn-svg .kgn-under{stroke-width:1.2px;stroke-opacity:.55}svg.kgn-svg [data-dashed]>.kgn-box,svg.kgn-svg [data-dashed]>.kgn-under{stroke-dasharray:5 3}svg.kgn-svg [data-kind=centre]>.kgn-box{fill:var(--kg-co);stroke:none}svg.kgn-svg [data-kind=peer] .kgn-box,svg.kgn-svg [data-kind=tag]>.kgn-box{stroke-width:1.3px}svg.kgn-svg [data-kind=peer][data-heavy] .kgn-box{stroke-width:2.2px}svg.kgn-svg [data-kind=tag]>.kgn-box{fill:var(--kg-made-soft);stroke:var(--kg-made)}svg.kgn-svg [data-kind=tag][data-dashed]>.kgn-box,svg.kgn-svg [data-kind=notice]>.kgn-box{fill:var(--surface);stroke:var(--kg-classed);stroke-dasharray:4 3}svg.kgn-svg [data-kind=notice]>.kgn-box{stroke-width:1.2px}svg.kgn-svg .kgn-glyph{fill:var(--kg-made-soft);stroke:var(--kg-made);stroke-width:1.5px}svg.kgn-svg [data-dashed]>.kgn-glyph{fill:var(--surface);stroke:var(--kg-classed);stroke-width:1.3px;stroke-dasharray:4 3}svg.kgn-svg .kgn-mark{fill:var(--kgn-band)}svg.kgn-svg [data-band=products]>.kgn-mark{fill:var(--kg-made-soft);stroke:var(--kg-made);stroke-width:1.5px}svg.kgn-svg [data-band=peers]>.kgn-mark{fill:var(--surface);stroke:var(--kg-peer);stroke-width:1.3px}svg.kgn-svg .kgn-card{fill:var(--surface);stroke:var(--kg-rev);stroke-width:1.4px}svg.kgn-svg .kgn-card--note{stroke:var(--kg-classed);stroke-width:1.2px;stroke-dasharray:4 3}svg.kgn-svg .kgn-track{fill:var(--kg-rev-soft)}svg.kgn-svg .kgn-fill{fill:var(--kg-rev)}svg.kgn-svg .kgn-fill--rest{fill:var(--kg-classed)}svg.kgn-svg [role=button],svg.kgn-svg .kgn-link{cursor:pointer}svg.kgn-svg .kgn-hit{fill:#0000;pointer-events:all}svg.kgn-svg .kgn-button>.kgn-hit{fill:var(--surface);stroke:var(--ink-muted);stroke-width:1px}svg.kgn-svg .kgn-link{text-decoration:none}svg.kgn-svg .kgn-link__name{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.kgn-chips button:focus-visible,.kgn-back:focus-visible,svg.kgn-svg [role=button]:focus-visible,svg.kgn-svg .kgn-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px}svg.kgn-svg .kgn-node:focus-visible>.kgn-box,svg.kgn-svg .kgn-node:focus-visible>.kgn-card,svg.kgn-svg .kgn-link:focus-visible .kgn-box,svg.kgn-svg .kgn-button:focus-visible>.kgn-hit{stroke:var(--ink);stroke-width:3px}.kgn-bar{z-index:1;pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute;top:8px;left:8px;right:8px}.kgn-bar[hidden]{display:none}.kgn-stage:has(svg[data-flying]) .kgn-bar{opacity:0}.kgn-back{appearance:none;border:1px solid var(--rule);background:var(--surface);min-width:44px;min-height:44px;color:var(--ink);font:inherit;font-size:var(--size-footnote);white-space:nowrap;cursor:pointer;pointer-events:auto;border-radius:999px;flex:none;padding:0 14px 0 11px;font-weight:600}.kgn-where{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--size-label);font-weight:700;overflow:hidden}.kgn-where small{font:500 12px var(--font-mono);color:var(--ink-muted);margin-left:6px}.kgn-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.kgn-hint{margin:var(--space-2) 0 0;font-size:var(--size-footnote);color:var(--ink-muted);line-height:1.55}.kgn-open{color:var(--ink);align-items:center;gap:6px;margin-top:2px;display:flex}.kgn-open:before{content:"";border:1.3px solid var(--ink-muted);background:linear-gradient(var(--ink), var(--ink)) 3px 6px / 8px 1.2px no-repeat var(--surface);border-radius:3px;flex:none;width:18px;height:12px}.kgn .kgn-legend{gap:var(--space-1);margin-top:var(--space-2);color:var(--ink-muted);grid-template-columns:minmax(0,1fr);display:grid}@media (prefers-reduced-motion:no-preference){.kgn-bar{transition:opacity .18s}}
