.tech-report{--tr-rule:var(--color-border);--tr-rule-strong:#94a3b8;--tr-row-alt:#f8fafc;--tr-th:#eef2f6;--tr-bar:var(--color-primary);--tr-self:#fdf0e4;--tr-up:var(--color-success-text);--tr-down:var(--color-accent-text);--tr-chart-grey:rgba(100,116,139,0.12);--tr-chart-grey-edge:rgba(100,116,139,0.55);--tr-chart-amber:var(--color-accent-band,rgba(244,162,97,0.14))}[data-theme="dark"] .tech-report{--tr-rule-strong:#475569;--tr-row-alt:#131c2d;--tr-th:#1a2438;--tr-self:#33261a;--tr-chart-grey:rgba(148,163,184,0.10);--tr-chart-grey-edge:rgba(148,163,184,0.45)}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .tech-report{--tr-rule-strong:#475569;--tr-row-alt:#131c2d;--tr-th:#1a2438;--tr-self:#33261a;--tr-chart-grey:rgba(148,163,184,0.10);--tr-chart-grey-edge:rgba(148,163,184,0.45)}}.tr-rail{display:none}@media (min-width:1100px){.tr-layout{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:1.75rem;align-items:start}.tr-rail{display:block;position:sticky;top:1rem;padding-top:4.5rem;font-size:0.86rem}.tr-rail__title{margin:0 0 0.4rem;font-size:0.72rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--color-text-muted)}.tr-rail__list{list-style:none;margin:0;padding:0 0 0 0.6rem;border-left:2px solid var(--tr-rule);display:grid;gap:0.35rem}.tr-rail__list a{text-decoration:none;color:var(--color-text)}.tr-rail__list a:hover,.tr-rail__list a:focus-visible{color:var(--color-primary);text-decoration:underline}}.tr-main{min-width:0}.tr-h{scroll-margin-top:0.75rem}.tech-report-preview{margin:0 0 0.75rem;padding:0.4rem 0.7rem;border:1px dashed var(--color-accent);color:var(--color-text-muted)}.tr-head{display:flex;gap:1rem;align-items:flex-start;margin:0.75rem 0 1rem}.tr-head__logo{flex:none;width:56px;height:56px;border-radius:10px}.tr-head__text{min-width:0}.tr-head__title{margin:0;font-size:clamp(1.6rem,1.2rem + 1.6vw,2.2rem);line-height:1.15;text-wrap:balance}.tr-head__flag{margin-left:0.4rem;vertical-align:middle}.tr-head__lede{margin:0.35rem 0 0;color:var(--color-text-muted)}.tr-kpis{margin:0 0 1.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));gap:1px;background:var(--tr-rule);border:1px solid var(--tr-rule);border-radius:6px;overflow:hidden}.tr-kpi{background:var(--color-bg-card);padding:0.9rem 1.1rem 1rem;display:grid;align-content:start;gap:0.15rem}.tr-kpi dt{font-size:0.8rem;color:var(--color-text-muted)}.tr-kpi dd{margin:0}.tr-kpi__value{font-family:var(--font-heading);font-size:clamp(1.7rem,1.3rem + 1.2vw,2.3rem);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--color-text)}.tr-kpi__sub{font-size:0.8rem;color:var(--color-text-muted)}.tr-kpi__sub .tr-up,.tr-kpi__sub .tr-down{font-weight:700}.tr-facts-wrap{margin-bottom:1.25rem;padding:0.35rem 0.6rem;background:var(--color-bg-card);border:1px solid var(--tr-rule);border-radius:4px}.tr-facts tr:last-child th,.tr-facts tr:last-child td{border-bottom:0}.tr-facts{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.tr-facts th,.tr-facts td{padding:0.35rem 0.6rem;border-bottom:1px solid var(--tr-rule);text-align:left;vertical-align:top}.tr-facts th{width:11rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.tr-inline-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0.15rem 1.1rem}.tr-lenses strong{color:var(--color-text)}.tr-num{font-variant-numeric:tabular-nums;font-weight:700}.tr-sec{margin-top:2.75rem}.tr-h{margin:0 0 0.6rem;font-size:1.2rem;line-height:1.3;color:var(--color-text);text-wrap:balance}.tr-body{background:var(--color-bg-card);border:1px solid var(--tr-rule);padding:1.1rem 1.2rem 1.2rem;border-radius:6px}.tr-body > :last-child{margin-bottom:0}.tr-fn{font-size:0.72em;line-height:0;margin-left:0.1em}.tr-fn a{text-decoration:none}.tr-findings{margin:0;padding-left:1.6rem;display:grid;gap:0.55rem}.tr-findings li::marker{font-weight:700;color:var(--color-text-muted)}.tr-offer{margin:1rem 0 0;padding:0.55rem 1rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:0.25rem 1rem}.tr-offer .tech-watch-cta__tag{margin:0;flex:none}.tr-offer .tech-watch-cta__link{margin:0;flex:none;margin-left:auto}.tr-offer__text{margin:0;flex:1 1 24rem;font-size:0.9rem;line-height:1.5;color:var(--color-text-muted)}.tr-offer__lead{color:var(--color-text);font-weight:700}.tr-offer .tr-num{color:var(--color-text)}.tr-table-wrap{overflow-x:auto;min-width:0}.tr-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:0.94rem}.tr-table caption{text-align:left;font-weight:700;padding:0 0 0.4rem}.tr-cap-note{display:block;font-weight:400;font-size:0.85rem;color:var(--color-text-muted)}.tr-table th,.tr-table td{padding:0.3rem 0.5rem;border-bottom:1px solid var(--tr-rule);text-align:left;vertical-align:middle}.tr-table thead th{border-bottom:1px solid var(--tr-rule-strong);font-size:0.78rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap}.tr-table tbody tr:nth-child(even) td{background:var(--tr-row-alt)}.tr-table .tr-n{text-align:right;white-space:nowrap}.tr-table .tr-mono{font-family:var(--font-mono);font-size:0.9em}.tr-table tr.tr-self td{background:var(--tr-self);font-weight:700}.tr-table tr.tr-gap td{color:var(--color-text-muted);padding-block:0.1rem}.tr-barcol{width:32%;min-width:4rem}.tr-bar{display:block;width:100%;height:0.6rem}.tr-bar rect{fill:var(--tr-bar)}.tr-tool{display:inline-flex;align-items:center;gap:0.35rem}.tr-logo{flex:none;width:16px;height:16px;border-radius:3px}.tr-move{width:2.5rem;font-size:0.8rem;white-space:nowrap}.tr-good{color:var(--tr-up);font-weight:700}.tr-up{color:var(--tr-up)}.tr-down{color:var(--tr-down)}.tr-nowrap{white-space:nowrap}.tr-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:1.4rem 1.6rem}.tr-grid2 > *{min-width:0}.tr-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.4rem 1.4rem}.tr-grid3 > *{min-width:0}.tr-grid3 .tr-barcol{width:26%;min-width:2.5rem}.tr-grid3 > .tr-table-wrap{container-type:inline-size}@container (max-width:340px){.tr-sites{display:none}.tr-table{font-size:0.88rem}.tr-table th,.tr-table td{padding-inline:0.35rem}.tr-barcol{width:20%}}.tr-green{margin-top:1.4rem;max-width:32rem}.tr-caption{margin:0.55rem 0 0;font-size:0.86rem;color:var(--color-text-muted)}.tr-caption--top{margin:0 0 0.7rem}.tr-chart{margin-top:0.25rem}.tr-chart svg{display:block;width:100%;height:auto;overflow:visible}.tr-chart text{font-family:var(--font-body);font-size:12px;fill:var(--color-text-muted);font-variant-numeric:tabular-nums}.tr-chart .tr-chart__tag{fill:var(--color-primary);font-weight:700}.tr-chart__taglink:hover .tr-chart__tag,.tr-chart__taglink:focus-visible .tr-chart__tag{text-decoration:underline}.tr-chart__taglink:focus-visible{outline:2px solid var(--color-primary)}.tr-chart__grid{stroke:var(--tr-rule);stroke-width:1}.tr-chart__axis{stroke:var(--color-text-muted);stroke-width:1}.tr-chart__grey{fill:var(--tr-chart-grey)}.tr-chart__grey-edge{stroke:var(--tr-chart-grey-edge);stroke-width:1}.tr-chart__amber{fill:var(--tr-chart-amber)}.tr-chart__amber-edge{fill:var(--color-accent);opacity:0.8}.tr-chart__amber-line{stroke:var(--color-accent);stroke-width:1;opacity:0.8}.tr-chart__mark{stroke:var(--color-text-muted);stroke-width:1.5;stroke-dasharray:4 3;opacity:0.7}.tr-chart__history{fill:none;stroke:var(--color-text-muted);stroke-width:1.5;opacity:0.6;stroke-linejoin:round}.tr-chart__divider{stroke:var(--color-text-muted);stroke-width:1;stroke-dasharray:3 3;opacity:0.6}.tr-chart__line{fill:none;stroke:var(--tr-bar);stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}.tr-chart__halo{fill:var(--color-bg)}.tr-chart__dot{fill:var(--tr-bar)}.tr-stack{display:grid;gap:0.85rem}.tr-stack .tech-stack__row{align-items:flex-start;gap:0.5rem 1rem}.tr-stack .tech-stack__label{flex-basis:9.5rem;padding-top:0.35rem;line-height:1.35}.tr-stack .tech-stack__items{gap:0.5rem 0.45rem}.tr-stack .tech-stack__note{margin:0}.tr-site{display:flex;gap:0.7rem;align-items:center;text-decoration:none;min-width:0}.tr-strip{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.9rem}@media (min-width:900px){.tr-strip:not(.tr-strip--3){grid-template-columns:repeat(6,minmax(0,1fr))}}.tr-strip__card{display:grid;gap:0.15rem;text-decoration:none;min-width:0}.tr-strip__card img{width:100%;height:auto;aspect-ratio:16 / 10;object-fit:cover;object-position:top;border:1px solid var(--tr-rule);border-radius:3px;background:var(--color-bg-card)}.tr-strip--3 .tr-strip__card img{aspect-ratio:16 / 7}.tr-strip__name{font-weight:600;font-size:0.86rem;text-underline-offset:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr-strip__card:hover .tr-strip__name,.tr-strip__card:focus-visible .tr-strip__name{text-decoration:underline}.tr-strip__host{font-size:0.75rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tr-site__text{display:grid;min-width:0}.tr-site__name{font-weight:600;text-underline-offset:2px;overflow-wrap:anywhere}.tr-site:hover .tr-site__name,.tr-site:focus-visible .tr-site__name{text-decoration:underline}.tr-site__host{font-size:0.8rem;color:var(--color-text-muted);overflow-wrap:anywhere}.tr-site__flag{width:14px;height:10px;margin-right:0.25rem;vertical-align:-1px}.tr-chip{width:16px;height:16px;margin:0 0.2rem 0.2rem 0;vertical-align:middle;border-radius:3px}.tr-launches td{padding-block:0.4rem}.tr-notes{margin:0;padding-left:1.6rem;display:grid;gap:0.45rem;font-size:0.9rem}.tr-notes li::marker{font-weight:700}.tr-notes li:target{background:var(--tr-self);outline:4px solid var(--tr-self)}.tr-prose p{margin:0 0 0.6rem}@media (max-width:760px){.tr-hide-md{display:none}}@media (max-width:560px){.tr-hide-sm{display:none}.tr-facts th{width:auto;white-space:normal}.tr-body{padding:0.7rem 0.6rem 0.8rem}.tr-kpi{padding:0.7rem 0.75rem 0.8rem}.tr-sec{margin-top:2rem}.tr-barcol{width:22%}.tr-table thead th,.tr-table thead th.tr-n{white-space:normal;letter-spacing:0.02em}.tr-chart{overflow-x:auto;direction:rtl}.tr-chart svg{direction:ltr;min-width:600px}.tr-chart text{font-size:16px}}