/* the page is the whole document here, not a component inside a framework */ * { box-sizing: border-box; } html, body { margin: 0; padding: 0; } body { background: #ffffff; color: #111111; font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; } .tts-page { max-width: 1080px; margin: 0 auto; padding: 26px 24px 30px; } @media (max-width: 600px) { .tts-page { padding: 18px 14px 22px; } } .tts-chart { --tts-series: #ff9d00; --tts-wash: rgba(255, 157, 0, 0.14); --tts-brand: #ffd21e; --tts-ink: #111111; --tts-ink-2: #5b5952; --tts-muted: #8c8a82; --tts-grid: #ece9e1; --tts-axis: #cfccc2; --tts-hairline: rgba(17, 17, 17, 0.10); --tts-surface: #ffffff; --tts-shadow: rgba(17, 17, 17, 0.18); font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif; color: var(--tts-ink); } .dark .tts-chart { --tts-series: #ff9d00; --tts-wash: rgba(255, 157, 0, 0.16); --tts-ink: #ffffff; --tts-ink-2: #c3c2b7; --tts-muted: #8c8a82; --tts-grid: #2c2c2a; --tts-axis: #3a3a37; --tts-hairline: rgba(255, 255, 255, 0.11); --tts-surface: #232321; --tts-shadow: rgba(0, 0, 0, 0.6); } .tts-chart h1 { margin-bottom: 4px; } .tts-eyebrow { display: flex; align-items: center; gap: 9px; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tts-muted); } .tts-mark { width: 11px; height: 11px; border-radius: 3px; flex: none; background: var(--tts-brand); border: 1px solid var(--tts-hairline); } .tts-chart h1 { font-size: 23px; font-weight: 600; letter-spacing: -0.012em; margin: 0; color: var(--tts-ink); } .tts-totals { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; font-size: 16px; color: var(--tts-ink-2); margin-bottom: 20px; } .tts-asof { font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 14px; color: var(--tts-muted); } .tts-totals strong { font-size: 20px; font-weight: 600; color: var(--tts-ink); font-variant-numeric: tabular-nums; } .tts-sep { color: var(--tts-axis); } .tts-plot { overflow-x: auto; } .tts-svg { display: block; width: 100%; min-width: 420px; height: auto; } .tts-bar { transition: opacity 90ms linear; } .tts-svg:hover .tts-bar { opacity: 0.45; } /* Hover slots: one per month, drawn above the columns. The highlight path is a copy of the column so the hovered one stays at full strength while the rest dim; the tooltip is real SVG revealed by :hover, because gr.HTML strips scripts and a JS tooltip would never run. */ .tts-slot { cursor: pointer; outline: none; } .tts-bar-hi, .tts-cross, .tts-tip { opacity: 0; pointer-events: none; } .tts-slot:hover .tts-bar-hi, .tts-slot:is(:focus-visible,.is-pinned) .tts-bar-hi { opacity: 1; } .tts-slot:hover .tts-cross, .tts-slot:is(:focus-visible,.is-pinned) .tts-cross { opacity: 1; } .tts-slot:hover .tts-tip, .tts-slot:is(:focus-visible,.is-pinned) .tts-tip { opacity: 1; } /* Click (or tab) to a month and its box stays put so the model links inside are reachable; while one is pinned, passing the cursor over other months must not swap the box out from under the pointer. */ .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-slot:hover .tts-tip { opacity: 0; } .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-slot:is(:focus-visible,.is-pinned) .tts-tip { opacity: 1; } .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-slot:hover .tts-bar-hi, .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-slot:hover .tts-cross { opacity: 0; } .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-slot:is(:focus-visible,.is-pinned) .tts-bar-hi, .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-slot:is(:focus-visible,.is-pinned) .tts-cross { opacity: 1; } .tts-svg:has(.tts-slot:is(:focus-visible,.is-pinned)) .tts-bar { opacity: 0.45; } .tts-tip-eyebrow { fill: var(--tts-muted); font-size: 8.5px; letter-spacing: 0.1em; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; } .tts-tip-link text { fill: var(--tts-ink); font-size: 11.5px; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; } .tts-tip-link:hover text { fill: var(--tts-series); } .tts-cross { stroke: var(--tts-axis); stroke-width: 1; } .tts-tip-box { fill: var(--tts-surface); stroke: var(--tts-hairline); stroke-width: 1; filter: drop-shadow(0 2px 6px var(--tts-shadow)); } .tts-tip-swatch { fill: var(--tts-series); } .tts-tip-title { fill: var(--tts-ink); font-size: 21px; font-weight: 600; } .tts-tip-label { fill: var(--tts-ink-2); font-size: 19px; } .tts-tip-value { fill: var(--tts-ink); font-size: 19px; font-weight: 500; text-anchor: end; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-variant-numeric: tabular-nums; } .tts-tip-rule { stroke: var(--tts-hairline); stroke-width: 1; } .tts-tip-note { fill: var(--tts-ink-2); font-size: 18px; } @media (prefers-reduced-motion: reduce) { .tts-bar-hi, .tts-cross, .tts-tip { transition: none; } } .tts-tick { fill: var(--tts-muted); font-size: 22px; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-variant-numeric: tabular-nums; } .tts-anno { fill: var(--tts-ink-2); font-size: 11.5px; } .tts-anno-sub { fill: var(--tts-muted); font-size: 11px; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; } .tts-foot { font-size: 12.5px; color: var(--tts-muted); margin: 12px 0 0; max-width: 80ch; } /* Release pins: a hairline dropped at the release date, numbered at the top. The key below resolves the numbers — several releases land within weeks of each other, so names on the plot would collide. */ .tts-rel-stem { stroke: var(--tts-axis); stroke-width: 1; opacity: 0.55; } .tts-rel-pin { fill: var(--tts-surface); stroke: var(--tts-axis); stroke-width: 1; } .tts-rel-num { fill: var(--tts-ink-2); font-size: 9.5px; text-anchor: middle; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; } /* ---- release stream --------------------------------------------------- */ /* Each logo is absolutely placed at its release date as a percentage of the 1040-unit viewBox, so it tracks the chart at any width. Logos overlap where releases cluster; the surface ring keeps them separable, and hover raises the one under the cursor above its neighbours. */ .tts-stream { position: relative; height: 52px; margin: 22px 0 0; min-width: 420px; } .tts-rel { position: absolute; left: var(--x); top: 6px; transform: translateX(-50%); width: 32px; height: 32px; text-decoration: none; transition: left 240ms cubic-bezier(.2,.8,.3,1); } .tts-rel::before { content: ""; position: absolute; left: 50%; width: 1px; top: -22px; height: 22px; background: var(--tts-axis); opacity: 0.3; transition: background-color 160ms linear, opacity 160ms linear; } .tts-av { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; display: block; background: var(--tts-grid); border: 2px solid var(--tts-surface); box-shadow: 0 0 0 1px var(--tts-hairline); transition: transform 180ms cubic-bezier(.2,.8,.3,1), border-color 180ms linear; transform-origin: center bottom; } .tts-rel:hover { z-index: 20; } .tts-rel:hover .tts-av, .tts-rel:focus-visible .tts-av { transform: translateY(-5px) scale(1.5); border-color: var(--tts-series); } .tts-rel:hover::before { background: var(--tts-series); opacity: 1; } /* hover card, floated above the logo over the chart's lower band */ .tts-card { position: absolute; bottom: calc(100% + 16px); left: 50%; transform: translateX(-50%) translateY(4px); display: flex; flex-direction: column; gap: 1px; min-width: 200px; padding: 11px 13px; background: var(--tts-surface); border: 1px solid var(--tts-hairline); border-radius: 6px; box-shadow: 0 4px 16px var(--tts-shadow); opacity: 0; pointer-events: none; transition: opacity 140ms linear, transform 180ms cubic-bezier(.2,.8,.3,1); } .tts-card-start .tts-card { left: 0; transform: translateX(0) translateY(4px); } .tts-card-end .tts-card { left: auto; right: 0; transform: translateX(0) translateY(4px); } .tts-rel:hover .tts-card, .tts-rel:focus-visible .tts-card { opacity: 1; transform: translateX(-50%) translateY(0); } .tts-card-start:hover .tts-card, .tts-card-end:hover .tts-card { transform: translateX(0) translateY(0); } .tts-card-name { font-size: 16px; font-weight: 600; color: var(--tts-ink); } .tts-card-id { font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 13px; color: var(--tts-ink-2); overflow-wrap: anywhere; } .tts-card-meta { display: flex; justify-content: space-between; gap: 12px; margin-top: 4px; padding-top: 5px; border-top: 1px solid var(--tts-hairline); font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 12.5px; color: var(--tts-muted); white-space: nowrap; } .tts-stream-cap { margin: 6px 0 0; padding-left: var(--x0, 5.385%); font-size: 14px; color: var(--tts-muted); } .tts-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } @media (prefers-reduced-motion: reduce) { .tts-av, .tts-card { transition: none; } } .tts-sub { margin-top: 30px; border-top: 1px solid var(--tts-hairline); padding-top: 18px; } .tts-sub h2 { font-size: 14px; font-weight: 600; margin: 0 0 4px; color: var(--tts-ink); } .tts-sub > p { margin: 0 0 10px; font-size: 12.5px; color: var(--tts-ink-2); max-width: 84ch; } .tts-svg-sub { min-width: 640px; } .tts-bar-sub { opacity: 0.85; } .tts-bar-sub:hover { opacity: 1; } .tts-key { margin-top: 22px; border-top: 1px solid var(--tts-hairline); padding-top: 16px; } .tts-key h2 { font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tts-muted); margin: 0 0 14px; font-weight: 500; } .tts-key ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 11px 28px; } .tts-key li { display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: 9px; row-gap: 1px; font-size: 12.5px; align-items: start; } .tts-key-num { grid-row: span 2; width: 17px; height: 17px; border-radius: 50%; margin-top: 1px; border: 1px solid var(--tts-axis); color: var(--tts-muted); display: inline-flex; align-items: center; justify-content: center; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 9.5px; } .tts-key-head { display: flex; align-items: baseline; gap: 8px; min-width: 0; } .tts-key-date { font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; font-size: 11px; color: var(--tts-muted); white-space: nowrap; } .tts-key-label { font-weight: 600; color: var(--tts-ink); overflow-wrap: anywhere; } .tts-key-sub { display: flex; align-items: baseline; gap: 8px; min-width: 0; flex-wrap: wrap; } .tts-key-id { color: var(--tts-ink-2); font-size: 11px; text-decoration: none; overflow-wrap: anywhere; border-bottom: 1px solid transparent; font-family: "IBM Plex Mono", ui-monospace, Menlo, monospace; } .tts-key-id:hover { border-bottom-color: var(--tts-series); color: var(--tts-ink); } .tts-key-stat { color: var(--tts-muted); font-size: 11px; white-space: nowrap; font-variant-numeric: tabular-nums; } .tts-key-foot { font-size: 11.5px; color: var(--tts-muted); margin: 16px 0 0; max-width: 92ch; } @media (max-width: 1040px) { .tts-key ol { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 780px) { .tts-key ol { grid-template-columns: 1fr; } } @media (prefers-reduced-motion: reduce) { .tts-bar { transition: none; } } .tts-plot:has(.tts-slot-202302:hover) .tts-rel-202302,.tts-plot:has(.tts-slot-202302.is-pinned) .tts-rel-202302{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202302:hover) .tts-rel-202302 .tts-av,.tts-plot:has(.tts-slot-202302.is-pinned) .tts-rel-202302 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202302:hover) .tts-rel-202302::before,.tts-plot:has(.tts-slot-202302.is-pinned) .tts-rel-202302::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202302:hover) .tts-slot-202302 .tts-bar-hi,.tts-plot:has(.tts-rel-202302:hover) .tts-slot-202302 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202305:hover) .tts-rel-202305,.tts-plot:has(.tts-slot-202305.is-pinned) .tts-rel-202305{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202305:hover) .tts-rel-202305 .tts-av,.tts-plot:has(.tts-slot-202305.is-pinned) .tts-rel-202305 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202305:hover) .tts-rel-202305::before,.tts-plot:has(.tts-slot-202305.is-pinned) .tts-rel-202305::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202305:hover) .tts-slot-202305 .tts-bar-hi,.tts-plot:has(.tts-rel-202305:hover) .tts-slot-202305 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202306:hover) .tts-rel-202306,.tts-plot:has(.tts-slot-202306.is-pinned) .tts-rel-202306{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202306:hover) .tts-rel-202306 .tts-av,.tts-plot:has(.tts-slot-202306.is-pinned) .tts-rel-202306 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202306:hover) .tts-rel-202306::before,.tts-plot:has(.tts-slot-202306.is-pinned) .tts-rel-202306::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202306:hover) .tts-slot-202306 .tts-bar-hi,.tts-plot:has(.tts-rel-202306:hover) .tts-slot-202306 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202308:hover) .tts-rel-202308,.tts-plot:has(.tts-slot-202308.is-pinned) .tts-rel-202308{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202308:hover) .tts-rel-202308 .tts-av,.tts-plot:has(.tts-slot-202308.is-pinned) .tts-rel-202308 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202308:hover) .tts-rel-202308::before,.tts-plot:has(.tts-slot-202308.is-pinned) .tts-rel-202308::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202308:hover) .tts-slot-202308 .tts-bar-hi,.tts-plot:has(.tts-rel-202308:hover) .tts-slot-202308 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202310:hover) .tts-rel-202310,.tts-plot:has(.tts-slot-202310.is-pinned) .tts-rel-202310{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202310:hover) .tts-rel-202310 .tts-av,.tts-plot:has(.tts-slot-202310.is-pinned) .tts-rel-202310 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202310:hover) .tts-rel-202310::before,.tts-plot:has(.tts-slot-202310.is-pinned) .tts-rel-202310::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202310:hover) .tts-slot-202310 .tts-bar-hi,.tts-plot:has(.tts-rel-202310:hover) .tts-slot-202310 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202312:hover) .tts-rel-202312,.tts-plot:has(.tts-slot-202312.is-pinned) .tts-rel-202312{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202312:hover) .tts-rel-202312 .tts-av,.tts-plot:has(.tts-slot-202312.is-pinned) .tts-rel-202312 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202312:hover) .tts-rel-202312::before,.tts-plot:has(.tts-slot-202312.is-pinned) .tts-rel-202312::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202312:hover) .tts-slot-202312 .tts-bar-hi,.tts-plot:has(.tts-rel-202312:hover) .tts-slot-202312 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202401:hover) .tts-rel-202401,.tts-plot:has(.tts-slot-202401.is-pinned) .tts-rel-202401{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202401:hover) .tts-rel-202401 .tts-av,.tts-plot:has(.tts-slot-202401.is-pinned) .tts-rel-202401 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202401:hover) .tts-rel-202401::before,.tts-plot:has(.tts-slot-202401.is-pinned) .tts-rel-202401::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202401:hover) .tts-slot-202401 .tts-bar-hi,.tts-plot:has(.tts-rel-202401:hover) .tts-slot-202401 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202404:hover) .tts-rel-202404,.tts-plot:has(.tts-slot-202404.is-pinned) .tts-rel-202404{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202404:hover) .tts-rel-202404 .tts-av,.tts-plot:has(.tts-slot-202404.is-pinned) .tts-rel-202404 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202404:hover) .tts-rel-202404::before,.tts-plot:has(.tts-slot-202404.is-pinned) .tts-rel-202404::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202404:hover) .tts-slot-202404 .tts-bar-hi,.tts-plot:has(.tts-rel-202404:hover) .tts-slot-202404 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202406:hover) .tts-rel-202406,.tts-plot:has(.tts-slot-202406.is-pinned) .tts-rel-202406{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202406:hover) .tts-rel-202406 .tts-av,.tts-plot:has(.tts-slot-202406.is-pinned) .tts-rel-202406 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202406:hover) .tts-rel-202406::before,.tts-plot:has(.tts-slot-202406.is-pinned) .tts-rel-202406::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202406:hover) .tts-slot-202406 .tts-bar-hi,.tts-plot:has(.tts-rel-202406:hover) .tts-slot-202406 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202407:hover) .tts-rel-202407,.tts-plot:has(.tts-slot-202407.is-pinned) .tts-rel-202407{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202407:hover) .tts-rel-202407 .tts-av,.tts-plot:has(.tts-slot-202407.is-pinned) .tts-rel-202407 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202407:hover) .tts-rel-202407::before,.tts-plot:has(.tts-slot-202407.is-pinned) .tts-rel-202407::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202407:hover) .tts-slot-202407 .tts-bar-hi,.tts-plot:has(.tts-rel-202407:hover) .tts-slot-202407 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202408:hover) .tts-rel-202408,.tts-plot:has(.tts-slot-202408.is-pinned) .tts-rel-202408{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202408:hover) .tts-rel-202408 .tts-av,.tts-plot:has(.tts-slot-202408.is-pinned) .tts-rel-202408 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202408:hover) .tts-rel-202408::before,.tts-plot:has(.tts-slot-202408.is-pinned) .tts-rel-202408::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202408:hover) .tts-slot-202408 .tts-bar-hi,.tts-plot:has(.tts-rel-202408:hover) .tts-slot-202408 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202409:hover) .tts-rel-202409,.tts-plot:has(.tts-slot-202409.is-pinned) .tts-rel-202409{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202409:hover) .tts-rel-202409 .tts-av,.tts-plot:has(.tts-slot-202409.is-pinned) .tts-rel-202409 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202409:hover) .tts-rel-202409::before,.tts-plot:has(.tts-slot-202409.is-pinned) .tts-rel-202409::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202409:hover) .tts-slot-202409 .tts-bar-hi,.tts-plot:has(.tts-rel-202409:hover) .tts-slot-202409 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202410:hover) .tts-rel-202410,.tts-plot:has(.tts-slot-202410.is-pinned) .tts-rel-202410{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202410:hover) .tts-rel-202410 .tts-av,.tts-plot:has(.tts-slot-202410.is-pinned) .tts-rel-202410 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202410:hover) .tts-rel-202410::before,.tts-plot:has(.tts-slot-202410.is-pinned) .tts-rel-202410::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202410:hover) .tts-slot-202410 .tts-bar-hi,.tts-plot:has(.tts-rel-202410:hover) .tts-slot-202410 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202411:hover) .tts-rel-202411,.tts-plot:has(.tts-slot-202411.is-pinned) .tts-rel-202411{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202411:hover) .tts-rel-202411 .tts-av,.tts-plot:has(.tts-slot-202411.is-pinned) .tts-rel-202411 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202411:hover) .tts-rel-202411::before,.tts-plot:has(.tts-slot-202411.is-pinned) .tts-rel-202411::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202411:hover) .tts-slot-202411 .tts-bar-hi,.tts-plot:has(.tts-rel-202411:hover) .tts-slot-202411 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202501:hover) .tts-rel-202501,.tts-plot:has(.tts-slot-202501.is-pinned) .tts-rel-202501{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202501:hover) .tts-rel-202501 .tts-av,.tts-plot:has(.tts-slot-202501.is-pinned) .tts-rel-202501 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202501:hover) .tts-rel-202501::before,.tts-plot:has(.tts-slot-202501.is-pinned) .tts-rel-202501::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202501:hover) .tts-slot-202501 .tts-bar-hi,.tts-plot:has(.tts-rel-202501:hover) .tts-slot-202501 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202502:hover) .tts-rel-202502,.tts-plot:has(.tts-slot-202502.is-pinned) .tts-rel-202502{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202502:hover) .tts-rel-202502 .tts-av,.tts-plot:has(.tts-slot-202502.is-pinned) .tts-rel-202502 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202502:hover) .tts-rel-202502::before,.tts-plot:has(.tts-slot-202502.is-pinned) .tts-rel-202502::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202502:hover) .tts-slot-202502 .tts-bar-hi,.tts-plot:has(.tts-rel-202502:hover) .tts-slot-202502 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202503:hover) .tts-rel-202503,.tts-plot:has(.tts-slot-202503.is-pinned) .tts-rel-202503{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202503:hover) .tts-rel-202503 .tts-av,.tts-plot:has(.tts-slot-202503.is-pinned) .tts-rel-202503 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202503:hover) .tts-rel-202503::before,.tts-plot:has(.tts-slot-202503.is-pinned) .tts-rel-202503::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202503:hover) .tts-slot-202503 .tts-bar-hi,.tts-plot:has(.tts-rel-202503:hover) .tts-slot-202503 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202506:hover) .tts-rel-202506,.tts-plot:has(.tts-slot-202506.is-pinned) .tts-rel-202506{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202506:hover) .tts-rel-202506 .tts-av,.tts-plot:has(.tts-slot-202506.is-pinned) .tts-rel-202506 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202506:hover) .tts-rel-202506::before,.tts-plot:has(.tts-slot-202506.is-pinned) .tts-rel-202506::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202506:hover) .tts-slot-202506 .tts-bar-hi,.tts-plot:has(.tts-rel-202506:hover) .tts-slot-202506 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202508:hover) .tts-rel-202508,.tts-plot:has(.tts-slot-202508.is-pinned) .tts-rel-202508{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202508:hover) .tts-rel-202508 .tts-av,.tts-plot:has(.tts-slot-202508.is-pinned) .tts-rel-202508 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202508:hover) .tts-rel-202508::before,.tts-plot:has(.tts-slot-202508.is-pinned) .tts-rel-202508::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202508:hover) .tts-slot-202508 .tts-bar-hi,.tts-plot:has(.tts-rel-202508:hover) .tts-slot-202508 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202511:hover) .tts-rel-202511,.tts-plot:has(.tts-slot-202511.is-pinned) .tts-rel-202511{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202511:hover) .tts-rel-202511 .tts-av,.tts-plot:has(.tts-slot-202511.is-pinned) .tts-rel-202511 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202511:hover) .tts-rel-202511::before,.tts-plot:has(.tts-slot-202511.is-pinned) .tts-rel-202511::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202511:hover) .tts-slot-202511 .tts-bar-hi,.tts-plot:has(.tts-rel-202511:hover) .tts-slot-202511 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202512:hover) .tts-rel-202512,.tts-plot:has(.tts-slot-202512.is-pinned) .tts-rel-202512{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202512:hover) .tts-rel-202512 .tts-av,.tts-plot:has(.tts-slot-202512.is-pinned) .tts-rel-202512 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202512:hover) .tts-rel-202512::before,.tts-plot:has(.tts-slot-202512.is-pinned) .tts-rel-202512::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202512:hover) .tts-slot-202512 .tts-bar-hi,.tts-plot:has(.tts-rel-202512:hover) .tts-slot-202512 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202601:hover) .tts-rel-202601,.tts-plot:has(.tts-slot-202601.is-pinned) .tts-rel-202601{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202601:hover) .tts-rel-202601 .tts-av,.tts-plot:has(.tts-slot-202601.is-pinned) .tts-rel-202601 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202601:hover) .tts-rel-202601::before,.tts-plot:has(.tts-slot-202601.is-pinned) .tts-rel-202601::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202601:hover) .tts-slot-202601 .tts-bar-hi,.tts-plot:has(.tts-rel-202601:hover) .tts-slot-202601 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202602:hover) .tts-rel-202602,.tts-plot:has(.tts-slot-202602.is-pinned) .tts-rel-202602{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202602:hover) .tts-rel-202602 .tts-av,.tts-plot:has(.tts-slot-202602.is-pinned) .tts-rel-202602 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202602:hover) .tts-rel-202602::before,.tts-plot:has(.tts-slot-202602.is-pinned) .tts-rel-202602::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202602:hover) .tts-slot-202602 .tts-bar-hi,.tts-plot:has(.tts-rel-202602:hover) .tts-slot-202602 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202603:hover) .tts-rel-202603,.tts-plot:has(.tts-slot-202603.is-pinned) .tts-rel-202603{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202603:hover) .tts-rel-202603 .tts-av,.tts-plot:has(.tts-slot-202603.is-pinned) .tts-rel-202603 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202603:hover) .tts-rel-202603::before,.tts-plot:has(.tts-slot-202603.is-pinned) .tts-rel-202603::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202603:hover) .tts-slot-202603 .tts-bar-hi,.tts-plot:has(.tts-rel-202603:hover) .tts-slot-202603 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202604:hover) .tts-rel-202604,.tts-plot:has(.tts-slot-202604.is-pinned) .tts-rel-202604{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202604:hover) .tts-rel-202604 .tts-av,.tts-plot:has(.tts-slot-202604.is-pinned) .tts-rel-202604 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202604:hover) .tts-rel-202604::before,.tts-plot:has(.tts-slot-202604.is-pinned) .tts-rel-202604::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202604:hover) .tts-slot-202604 .tts-bar-hi,.tts-plot:has(.tts-rel-202604:hover) .tts-slot-202604 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202605:hover) .tts-rel-202605,.tts-plot:has(.tts-slot-202605.is-pinned) .tts-rel-202605{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202605:hover) .tts-rel-202605 .tts-av,.tts-plot:has(.tts-slot-202605.is-pinned) .tts-rel-202605 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202605:hover) .tts-rel-202605::before,.tts-plot:has(.tts-slot-202605.is-pinned) .tts-rel-202605::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202605:hover) .tts-slot-202605 .tts-bar-hi,.tts-plot:has(.tts-rel-202605:hover) .tts-slot-202605 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202606:hover) .tts-rel-202606,.tts-plot:has(.tts-slot-202606.is-pinned) .tts-rel-202606{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202606:hover) .tts-rel-202606 .tts-av,.tts-plot:has(.tts-slot-202606.is-pinned) .tts-rel-202606 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202606:hover) .tts-rel-202606::before,.tts-plot:has(.tts-slot-202606.is-pinned) .tts-rel-202606::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202606:hover) .tts-slot-202606 .tts-bar-hi,.tts-plot:has(.tts-rel-202606:hover) .tts-slot-202606 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202607:hover) .tts-rel-202607,.tts-plot:has(.tts-slot-202607.is-pinned) .tts-rel-202607{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202607:hover) .tts-rel-202607 .tts-av,.tts-plot:has(.tts-slot-202607.is-pinned) .tts-rel-202607 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202607:hover) .tts-rel-202607::before,.tts-plot:has(.tts-slot-202607.is-pinned) .tts-rel-202607::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202607:hover) .tts-slot-202607 .tts-bar-hi,.tts-plot:has(.tts-rel-202607:hover) .tts-slot-202607 .tts-cross{opacity:1} .tts-plot:has(.tts-slot-202609:hover) .tts-rel-202609,.tts-plot:has(.tts-slot-202609.is-pinned) .tts-rel-202609{z-index:5;left:calc(var(--xc) + var(--off))} .tts-plot:has(.tts-slot-202609:hover) .tts-rel-202609 .tts-av,.tts-plot:has(.tts-slot-202609.is-pinned) .tts-rel-202609 .tts-av{transform:translateY(-5px) scale(1.5);border-color:var(--tts-series)} .tts-plot:has(.tts-slot-202609:hover) .tts-rel-202609::before,.tts-plot:has(.tts-slot-202609.is-pinned) .tts-rel-202609::before{background:var(--tts-series);opacity:1} .tts-plot:has(.tts-rel-202609:hover) .tts-slot-202609 .tts-bar-hi,.tts-plot:has(.tts-rel-202609:hover) .tts-slot-202609 .tts-cross{opacity:1}