/* Product showcases. Their own namespace keeps legacy preview styles isolated. */
#tools .ts-product {
  --ts-accent: #c9b7eb;
  --ts-tint: #c9b7eb13;
  position: relative;
  isolation: isolate;
  overflow: clip;
  margin-top: 28px;
  border: 1px solid #c4ced031;
  border-radius: 18px;
  background: #252830;
  color: #f1ede6;
  box-shadow: 0 18px 38px #090e1724;
}
#tools .ts-product::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: linear-gradient(90deg,transparent,var(--ts-accent),transparent); opacity: .65; }
#tools .ts-product::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(125deg,var(--ts-tint),transparent 52%); }
.ts-svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.ts-icon { display: inline-block; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.ts-topline { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 38px; padding: 22px 0; border-bottom: 1px solid #d3d5e21a; }
.ts-ident { display: inline-flex; align-items: center; gap: 12px; color: var(--ts-accent); font: 10px/1.4 Consolas,"SFMono-Regular",monospace; letter-spacing: 1.6px; }
.ts-ident b { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #c9b7eb3d; border-radius: 7px; font: 15px/1 monospace; letter-spacing: 0; }
.ts-state { display: inline-flex; align-items: center; gap: 8px; color: #c7c9d1; font: 10px/1.4 Consolas,"SFMono-Regular",monospace; letter-spacing: .6px; }
.ts-state::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--ts-accent); }
.ts-product-main { display: grid; grid-template-columns: .72fr 1.28fr; align-items: center; gap: clamp(26px,4vw,60px); padding: 48px 38px 42px; min-width: 0; }
.ts-copy { min-width: 0; }
#tools .ts-copy h3 { font-size: clamp(42px,4.1vw,62px); line-height: 1.02; letter-spacing: -2.8px; font-weight: 660; margin: 0; }
.ts-copy h3 span { display: block; color: var(--ts-accent); }
.ts-copy > p { max-width: 340px; color: #c2c4ce; font-size: 14px; line-height: 1.85; margin-top: 23px; }
.ts-version { display: inline-flex; gap: 8px; align-items: center; color: #dcd5e6; font: 10px/1.5 Consolas,"SFMono-Regular",monospace; letter-spacing: .4px; margin-bottom: 18px; }
.ts-version::before { content: ""; width: 23px; height: 1px; background: var(--ts-accent); }
.ts-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 20px; margin-top: 27px; }
.ts-download { display: inline-flex; align-items: center; justify-content: space-between; gap: 27px; min-height: 49px; padding: 13px 17px; border: 1px solid #e8dcfa88; border-radius: 7px; background: #cbb9e5; color: #292331; font-size: 12px; font-weight: 650; box-shadow: 0 3px 0 #9a88b4; transition: background .2s,transform .3s,box-shadow .3s; }
.ts-download:hover { background: #e0d0f4; }
.ts-download .ts-icon { width: 18px; height: 18px; transition: transform .25s; }
.ts-guide { display: inline-flex; align-items: center; gap: 9px; color: #d3c7e5; font-size: 11px; padding: 6px 0; border-bottom: 1px solid #c9b7eb44; transition: border-color .2s,color .2s; }
.ts-guide:hover { color: #f4ebff; border-color: #c9b7eb; }
.ts-guide .ts-icon { width: 13px; height: 13px; }
#tools .ts-copy .download-count { margin-top: 18px; font-size: 10px; color: #b5b1bd; }
.ts-compat { margin-top: 24px; padding-top: 17px; border-top: 1px solid #d3d5e21a; display: flex; align-items: center; gap: 8px; color: #aeb5c2; font-size: 10px; }
.ts-compat .ts-icon { width: 15px; height: 15px; color: var(--ts-accent); }
.ts-preview { position: relative; margin: 0; min-width: 0; padding: 14px; background: #171b23; border: 1px solid #c3bfda39; border-radius: 12px; box-shadow: 0 16px 32px #0b0f1a4d,0 0 0 7px #c4bfd705; transition: border-color .3s,box-shadow .3s; }
.ts-preview::before { content: ""; position: absolute; inset: -7px 30px auto; height: 1px; background: #cbb9e54d; }
.ts-preview-chrome { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 2px 2px 13px; font: 9px/1.5 Consolas,"SFMono-Regular",monospace; letter-spacing: .6px; color: #afa6c3; }
.ts-preview-chrome > span:first-child { display: inline-flex; align-items: center; gap: 7px; }
.ts-preview-chrome .ts-icon { width: 13px; height: 13px; }
.ts-preview-link { display: block; position: relative; border: 1px solid #acb4cf1f; border-radius: 6px; overflow: hidden; background: #101219; }
.ts-preview-link img { display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: contain; }
.ts-preview-expand { position: absolute; right: 12px; bottom: 12px; display: grid; place-items: center; width: 33px; height: 33px; border: 1px solid #dfd8ec44; background: #282331e8; border-radius: 6px; color: #e8d9ff; transition: background .25s,transform .3s; }
.ts-preview-expand .ts-icon { width: 15px; height: 15px; }
.ts-preview-link:hover .ts-preview-expand { background: #524468; }
.ts-preview figcaption { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 13px 2px 0; color: #b9bdc9; font-size: 10px; }
.ts-preview figcaption > span:last-child { color: #918b9d; font: 9px/1.4 Consolas,"SFMono-Regular",monospace; }
.ts-features { display: grid; grid-template-columns: 1fr 1.1fr; border-top: 1px solid #d3d5e224; background: #191d2659; min-height: 116px; }
.ts-feature-tabs { display: flex; align-items: stretch; padding: 0 20px; border-right: 1px solid #d3d5e224; }
.ts-feature-tab { position: relative; flex: 1; display: flex; align-items: center; gap: 10px; padding: 26px 13px; text-align: left; background: transparent; color: #969aa7; font-size: 12px; transition: color .2s,background .2s; }
.ts-feature-tab > span { color: #92919e; font: 10px/1.2 Consolas,"SFMono-Regular",monospace; }
.ts-feature-tab::after { content: ""; position: absolute; bottom: 0; height: 2px; left: 13px; right: 13px; background: var(--ts-accent); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.ts-feature-tab[aria-selected="true"] { color: #eee7f8; background: linear-gradient(0deg,#c9b7eb0e,transparent 76%); }
.ts-feature-tab[aria-selected="true"] > span { color: var(--ts-accent); }
.ts-feature-tab[aria-selected="true"]::after { transform: scaleX(1); }
.ts-feature-tab:hover { color: #eee7f8; }
.ts-feature-panel { display: flex; flex-direction: column; justify-content: center; padding: 23px 30px; }
.ts-feature-panel strong { font-size: 13px; font-weight: 600; color: #e3dbea; }
.ts-feature-panel p { font-size: 12px; color: #adb3c1; line-height: 1.7; margin-top: 5px; max-width: 510px; }
#tools .ts-hub { --ts-accent: #a8d3c9; --ts-tint: #81bdad17; background: #232d31; }
.ts-hub .ts-topline { border-bottom-color: #bcdad923; }
.ts-hub .ts-ident img { width: 25px; height: 25px; border-radius: 6px; }
.ts-hub .ts-product-main { grid-template-columns: .7fr 1.3fr; padding-top: 39px; padding-bottom: 38px; }
#tools .ts-hub h3 { font-size: clamp(49px,4.5vw,69px); letter-spacing: -3.7px; }
.ts-hub .ts-copy > p { color: #bdc9cd; }
.ts-hub-tagline { color: #b5ddd3; font-size: 17px; line-height: 1.45; margin-top: 17px; letter-spacing: -.25px; }
.ts-hub-path { display: flex; align-items: center; gap: 8px; padding: 24px 0; color: #92bfb4; }
.ts-hub-path > span { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid #a2cebd36; border-radius: 8px; background: #a2cebd0a; }
.ts-hub-path > i { width: 22px; height: 1px; background: #a2cebd3b; position: relative; overflow: hidden; }
.ts-hub-path > i::after { content: ""; position: absolute; inset: 0; background: #c0e9df; transform: translateX(-100%); }
.ts-wip-note { display: flex; gap: 11px; align-items: flex-start; padding: 14px 15px; max-width: 325px; border: 1px solid #afc8b82b; border-left: 2px solid #afc8b8; background: #afc8b808; border-radius: 0 7px 7px 0; }
.ts-wip-note > .ts-icon { margin-top: 2px; width: 16px; height: 16px; color: #c3d5c8; }
.ts-wip-note strong { font-size: 11px; display: block; color: #d3e1d8; font-weight: 600; }
.ts-wip-note p { color: #a8bcb9; font-size: 10px; line-height: 1.6; margin-top: 3px; }
.ts-hub-window { min-width: 0; border: 1px solid #9cc9c242; border-radius: 12px; background: #171f26; overflow: hidden; box-shadow: 0 18px 34px #080d1745,0 0 0 6px #c8e9df04; }
.ts-window-chrome { display: flex; align-items: center; gap: 7px; padding: 14px 18px; color: #93a9ae; background: #26343b; border-bottom: 1px solid #c7dfdb16; font: 9px/1.5 Consolas,"SFMono-Regular",monospace; letter-spacing: .8px; }
.ts-window-chrome > i { height: 5px; width: 5px; border-radius: 50%; background: #78999b; }
.ts-window-chrome > i:nth-child(2) { opacity: .6; }.ts-window-chrome > i:nth-child(3) { opacity: .3; }
.ts-window-chrome > span { margin-left: auto; }
.ts-window-tabs { display: flex; gap: 5px; margin: 17px 19px 0; padding: 4px; background: #0f172069; border: 1px solid #b9d2db13; border-radius: 7px; }
.ts-window-tab { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 37px; padding: 8px; border-radius: 4px; color: #94a6b1; background: transparent; font-size: 10px; transition: background .2s,color .2s,box-shadow .2s; }
.ts-window-tab .ts-icon { width: 15px; height: 15px; }
.ts-window-tab[aria-selected="true"] { background: #344e54; box-shadow: 0 1px 2px #0004,inset 0 1px #ffffff16; color: #d2e7e1; }
.ts-window-tab:hover { color: #f0f6f3; }
.ts-window-panel { padding: 23px 23px 18px; min-height: 285px; }
.ts-sample-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.ts-sample-head h4 { margin: 0; font-size: 20px; color: #e1e9e6; font-weight: 600; letter-spacing: -.6px; }
.ts-sample-head p { font-size: 10px; color: #91a7ac; margin-top: 3px; }
.ts-sample-badge { padding: 4px 7px; border: 1px solid #a7c7c927; border-radius: 4px; font: 8px/1.4 Consolas,"SFMono-Regular",monospace; letter-spacing: .7px; color: #98b3b4; white-space: nowrap; }
.ts-library-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.ts-library-tile { min-width: 0; border: 1px solid #b8ccd020; border-radius: 7px; background: #202b34; overflow: hidden; }
.ts-tile-art { height: 96px; position: relative; display: grid; place-items: center; background: linear-gradient(145deg,#546e72,#2c424a); overflow: hidden; }
.ts-tile-art::before { content: ""; position: absolute; inset: 15px; border: 1px solid #d3e8e92b; transform: rotate(-12deg); }
.ts-tile-art::after { content: ""; position: absolute; width: 68px; height: 68px; border: 1px solid #d3e8e92b; transform: rotate(18deg); }
.ts-tile-art .ts-icon { width: 27px; height: 27px; color: #d6e7e4; stroke-width: 1.1; position: relative; z-index: 1; transition: transform .45s; }
.ts-library-tile:nth-child(2) .ts-tile-art { background: linear-gradient(145deg,#675f77,#383c53); }.ts-library-tile:nth-child(3) .ts-tile-art { background: linear-gradient(145deg,#756650,#4b4740); }
.ts-tile-info { padding: 11px 10px; }
.ts-tile-info strong { display: block; color: #d1dddf; font-size: 10px; font-weight: 550; }
.ts-tile-info small { display: block; font-size: 9px; color: #9bafb4; margin-top: 3px; }
.ts-sample-row { display: flex; align-items: center; gap: 12px; padding: 12px; margin-top: 9px; border: 1px solid #b8ccd020; background: #202b34; border-radius: 6px; }
.ts-sample-row > .ts-icon { width: 20px; height: 20px; color: #c0d7d5; margin-inline: 1px; }
.ts-sample-row > div { flex: 1; min-width: 0; }
.ts-sample-row strong { display: block; font-size: 11px; font-weight: 550; color: #d4dfe2; }
.ts-sample-row small { display: block; margin-top: 3px; color: #96aab3; font-size: 10px; }
.ts-row-status { color: #b6d6c9; background: #b5d4c311; border: 1px solid #b5d4c321; border-radius: 4px; padding: 4px 6px; font: 8px/1.4 Consolas,"SFMono-Regular",monospace; letter-spacing: .3px; }
.ts-sample-row:nth-of-type(3) .ts-row-status { background: transparent; color: #a4b5bf; }
.ts-address { display: flex; align-items: center; gap: 8px; padding: 9px 11px; margin-bottom: 13px; border: 1px solid #a9c4d21c; border-radius: 5px; background: #111920; color: #859fa9; font-size: 10px; }
.ts-address .ts-icon { width: 12px; height: 12px; }
.ts-download-sample { padding: 15px; background: #26353c; border: 1px solid #aacccd28; border-radius: 7px; }
.ts-download-sample-head { display: flex; align-items: center; gap: 10px; color: #c4dbda; font-size: 11px; }
.ts-download-sample-head > span { margin-left: auto; color: #9fc7bd; font: 10px/1.4 Consolas,"SFMono-Regular",monospace; }
.ts-sample-progress { height: 4px; margin-top: 16px; background: #9bc4c016; overflow: hidden; border-radius: 4px; }
.ts-sample-progress > i { display: block; width: 68%; height: 100%; background: #9ccabc; border-radius: inherit; transform-origin: left; }
.ts-download-sample > p { margin-top: 10px; color: #91adb2; font-size: 9px; }
.ts-window-foot { display: flex; justify-content: space-between; gap: 8px; padding: 12px 19px; border-top: 1px solid #b7d5d314; color: #819ca3; font-size: 9px; }
.ts-window-foot > span:first-child { display: flex; align-items: center; gap: 6px; }
.ts-window-foot .ts-icon { width: 12px; height: 12px; }
.ts-hub-bottom { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 18px 38px; border-top: 1px solid #bcdad923; color: #8ca9ad; font: 9px/1.5 Consolas,"SFMono-Regular",monospace; letter-spacing: .5px; background: #1721264d; }
.ts-hub-bottom > span:first-child { display: flex; align-items: center; gap: 8px; color: #b4c9c8; }
.ts-hub-bottom .ts-icon { width: 14px; height: 14px; }
.ts-product :is(button,a,[tabindex]):focus-visible { outline: 2px solid var(--ts-accent); outline-offset: 4px; }
.ts-feature-tab:focus-visible,.ts-window-tab:focus-visible { outline-offset: -4px; }
.motion-enabled .ts-product.ts-in-view .ts-hub-path > i::after { animation: ts-connection 3.6s ease-in-out infinite; }
.motion-enabled .ts-product.ts-in-view .ts-hub-path > i:nth-child(4)::after { animation-delay: .5s; }
.motion-enabled .ts-product .ts-feature-panel:not([hidden]),.motion-enabled .ts-product .ts-window-panel:not([hidden]) { animation: ts-panel-enter .4s cubic-bezier(.2,.75,.2,1) both; }
.motion-enabled .ts-download:hover { transform: translateY(-2px); box-shadow: 0 5px 0 #9a88b4,0 8px 20px #0c0d1b33; }
.motion-enabled .ts-download:hover .ts-icon { transform: translateY(2px); }
.motion-enabled .ts-preview-link:hover .ts-preview-expand { transform: translate(2px,-2px); }
.motion-enabled .ts-library-tile:hover .ts-tile-art .ts-icon { transform: translateY(-3px) rotate(-8deg); }
.motion-enabled .ts-product:hover .ts-preview { border-color: #c6b3e177; box-shadow: 0 19px 38px #0b0f1a5d,0 0 0 7px #c4bfd709; }
.motion-enabled .ts-product .ts-window-panel:not([hidden]) .ts-sample-progress > i { animation: ts-progress-enter .8s cubic-bezier(.2,.75,.2,1) both; }
.motion-suspended .ts-product *,.motion-suspended .ts-product *::before,.motion-suspended .ts-product *::after,.ts-product:not(.ts-in-view) .ts-hub-path > i::after { animation-play-state: paused!important; }
.motion-paused .ts-product *,.motion-paused .ts-product *::before,.motion-paused .ts-product *::after { animation: none!important; transition: none!important; }
@keyframes ts-panel-enter { from { opacity: .25; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes ts-progress-enter { from { transform: scaleX(.1); } to { transform: scaleX(1); } }
@keyframes ts-connection { 0%,12% { transform: translateX(-100%); } 50%,65% { transform: translateX(0); } 90%,100% { transform: translateX(100%); } }
@media (min-width: 1500px) { .ts-product-main { padding-block: 55px; }.ts-preview { padding: 17px; }.ts-window-panel { min-height: 297px; }.ts-tile-art { height: 108px; } }
@media (max-width: 1000px) {
 .ts-topline { margin-inline: 27px; }.ts-product-main,.ts-hub .ts-product-main { gap: 28px; padding: 35px 27px; grid-template-columns: .78fr 1.22fr; }
 #tools .ts-copy h3 { font-size: 44px; letter-spacing: -2px; }#tools .ts-hub h3 { font-size: 53px; }
 .ts-copy > p { font-size: 13px; }.ts-actions { gap: 15px; }.ts-download { gap: 16px; }.ts-feature-tabs { padding-inline: 9px; }.ts-feature-tab { padding-inline: 10px; gap: 6px; font-size: 11px; }.ts-feature-panel { padding-inline: 22px; }
 .ts-preview { padding: 10px; }.ts-preview-chrome { font-size: 8px; }.ts-preview figcaption { font-size: 9px; }.ts-preview figcaption > span:last-child { font-size: 8px; }
 .ts-window-panel { padding-inline: 16px; }.ts-window-tabs { margin-inline: 12px; }.ts-window-tab { font-size: 9px; gap: 6px; }.ts-library-grid { gap: 7px; }.ts-tile-art { height: 85px; }.ts-tile-info { padding-inline: 7px; }.ts-tile-info strong { font-size: 9px; }.ts-tile-info small { font-size: 8px; }
}
@media (max-width: 780px) {
 .ts-product-main,.ts-hub .ts-product-main { grid-template-columns: 1fr; gap: 30px; padding: 32px 26px; }.ts-copy { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }.ts-copy h3 { grid-column: 1; }.ts-copy .ts-version { grid-column: 1/-1; }.ts-copy > p { grid-column: 2; grid-row: 2; margin: 0; align-self: center; }.ts-actions { grid-column: 1/-1; }.ts-copy .download-count { grid-column: 1/-1; }.ts-compat { grid-column: 1/-1; margin-top: 17px; padding-top: 12px; }
 .ts-hub .ts-copy { display: block; }.ts-hub .ts-copy > p { max-width: 480px; margin-top: 16px; }.ts-hub-path { display: none; }.ts-wip-note { margin-top: 22px; max-width: none; }.ts-hub .ts-product-main { gap: 25px; }
 .ts-preview { padding: 14px; }.ts-preview-chrome { font-size: 9px; }.ts-preview figcaption { font-size: 10px; }.ts-features { grid-template-columns: 1fr; }.ts-feature-tabs { border-right: 0; border-bottom: 1px solid #d3d5e21a; padding-inline: 15px; }.ts-feature-tab { justify-content: center; padding-block: 21px; font-size: 12px; gap: 12px; }.ts-feature-panel { min-height: 106px; padding: 22px 27px; }
 .ts-window-tabs { margin-inline: 20px; }.ts-window-tab { font-size: 11px; }.ts-window-panel { padding-inline: 24px; min-height: 296px; }.ts-library-grid { gap: 12px; }.ts-tile-art { height: 110px; }.ts-tile-info { padding: 12px; }.ts-tile-info strong { font-size: 11px; }.ts-tile-info small { font-size: 10px; }.ts-hub-bottom { padding-inline: 27px; }
}
@media (max-width: 480px) {
 #tools .ts-product { border-radius: 12px; margin-top: 20px; }.ts-topline { margin-inline: 20px; padding-block: 17px; gap: 10px; }.ts-ident { font-size: 8px; letter-spacing: .8px; gap: 8px; }.ts-ident b { width: 24px; height: 24px; font-size: 12px; }.ts-state { font-size: 8px; letter-spacing: .1px; gap: 5px; }.ts-product-main,.ts-hub .ts-product-main { padding: 28px 20px 24px; gap: 28px; }
 .ts-copy { display: block; }#tools .ts-copy h3 { font-size: 47px; }#tools .ts-hub h3 { font-size: 57px; }.ts-copy > p { margin-top: 20px; font-size: 13px; }.ts-version { font-size: 9px; margin-bottom: 15px; }.ts-actions { gap: 16px; }.ts-download { font-size: 12px; }.ts-guide { font-size: 10px; }.ts-compat { font-size: 9px; }
 .ts-preview { padding: 9px; margin-inline: -8px; }.ts-preview-chrome { font-size: 7px; gap: 7px; padding-bottom: 9px; }.ts-preview-chrome .ts-icon { width: 11px; }.ts-preview figcaption { font-size: 9px; padding-top: 10px; }.ts-preview figcaption > span:last-child { font-size: 7px; }.ts-preview-expand { width: 26px; height: 26px; bottom: 7px; right: 7px; }.ts-feature-tabs { padding-inline: 9px; }.ts-feature-tab { padding-block: 19px; gap: 7px; font-size: 11px; }.ts-feature-panel { padding: 21px 20px; min-height: 123px; }.ts-feature-panel p { font-size: 11px; }.ts-feature-panel strong { font-size: 12px; }
 .ts-hub-window { margin-inline: -8px; }.ts-hub-tagline { font-size: 16px; }.ts-window-chrome { padding: 12px; font-size: 8px; }.ts-window-tabs { margin: 12px 10px 0; gap: 2px; }.ts-window-tab { gap: 5px; font-size: 9px; padding-inline: 5px; }.ts-window-tab .ts-icon { width: 12px; }.ts-window-panel { padding: 20px 13px 17px; min-height: 263px; }.ts-sample-head h4 { font-size: 19px; }.ts-sample-head p { font-size: 9px; }.ts-sample-badge { font-size: 7px; padding: 4px; }.ts-library-grid { gap: 7px; }.ts-tile-art { height: 88px; }.ts-tile-info { padding: 9px 7px; }.ts-tile-info strong { font-size: 9px; }.ts-tile-info small { font-size: 8px; }.ts-window-foot { padding-inline: 12px; font-size: 8px; }.ts-hub-bottom { padding: 15px 20px; font-size: 8px; gap: 8px; }.ts-sample-row { padding: 10px; gap: 8px; }.ts-sample-row strong { font-size: 10px; }.ts-sample-row small { font-size: 9px; }.ts-row-status { font-size: 7px; }
}
@media (prefers-reduced-motion: reduce) { .ts-product *,.ts-product *::before,.ts-product *::after { animation: none!important; transition: none!important; }.ts-product :is(.ts-download,.ts-preview-expand,.ts-tile-art .ts-icon) { transform: none!important; } }
