
body[data-ts-page]{margin:0;background:#0A0A0C;color:#F6F5F1;font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
body[data-ts-page]::before{content:none}
body[data-ts-page] *{-webkit-tap-highlight-color:transparent}
.tsp-root{position:relative;min-height:100vh;min-height:100dvh;background:#0A0A0C;color:#F6F5F1;font-family:var(--font-sans)}
.tsp-root :focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}
.tsp-topbar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px 24px 0}
.tsp-logo-link{display:flex;align-items:center;gap:12px;border-radius:6px;color:inherit;text-decoration:none}
.tsp-logo-link .ts-logo__mark{overflow:visible}
.tsp-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.tsp-legal-glow{pointer-events:none;position:absolute;left:0;right:0;top:0;height:520px;background:radial-gradient(ellipse 70% 100% at 50% 0%,rgb(27 47 156 / 0.22),transparent 70%)}
.tsp-legal{position:relative;z-index:10;box-sizing:border-box;width:100%;max-width:1040px;margin:0 auto;padding:32px 16px 112px}
.tsp-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 16px;font-size:14px;line-height:20px;color:var(--muted-foreground);text-decoration:none}
.tsp-back:hover{color:var(--foreground)}
.tsp-back svg{flex:none}
.tsp-legal-head{margin:0 0 24px}
.tsp-eyebrow{margin:0;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-foreground)}
.tsp-legal-title{margin:4px 0 0;font-family:var(--font-sans);font-size:1.6rem;line-height:1.25;font-weight:600;letter-spacing:-.025em;color:#F6F5F1;text-wrap:balance}
.tsp-version{display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:4px;margin:8px 0 0;font-size:12px;line-height:16px;color:var(--muted-foreground)}
.tsp-version b{font-weight:600;color:var(--foreground);font-variant-numeric:tabular-nums}
.tsp-banner{display:flex;flex-direction:column;gap:12px;margin:20px 0 0;padding:16px;border:1px solid rgba(245,166,35,.35);border-radius:var(--radius);background:rgba(245,166,35,.07)}
.tsp-banner-body{display:flex;flex:1 1 0%;min-width:0;align-items:flex-start;gap:12px}
.tsp-banner-body svg{flex:none;margin-top:2px;color:var(--amber-500)}
.tsp-banner-body p{margin:0;font-size:14px;line-height:20px;color:#E4E5EA;text-wrap:pretty}
.tsp-outline-btn{display:inline-flex;flex:none;align-self:flex-start;align-items:center;justify-content:center;box-sizing:border-box;height:36px;padding:0 16px;border:1px solid var(--input);border-radius:var(--radius-md);background:transparent;font-size:14px;line-height:20px;font-weight:500;color:#F6F5F1;text-decoration:none}
.tsp-outline-btn:hover{background:var(--surface-hover)}
.tsp-legal-nav{margin:0 0 32px}
.tsp-toc{border:1px solid var(--border);border-radius:var(--radius-xl);background:rgba(255,255,255,.03)}
.tsp-toc>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;box-sizing:border-box;height:48px;padding:0 16px;border-radius:var(--radius-xl);list-style:none;cursor:pointer;font-size:14px;line-height:20px;font-weight:600;color:var(--foreground)}
.tsp-toc>summary::-webkit-details-marker{display:none}
.tsp-toc-count{display:flex;align-items:center;gap:8px;font-size:12px;line-height:16px;font-weight:400;color:var(--muted-foreground)}
.tsp-toc[open] .tsp-toc-chev{transform:rotate(180deg)}
.tsp-toc ol{display:grid;gap:2px;margin:0;padding:8px;border-top:1px solid var(--border);list-style:none}
.tsp-toc a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 10px;border-radius:var(--radius);font-size:14px;line-height:20px;color:#E4E5EA;text-decoration:none}
.tsp-toc a:hover{background:var(--surface-hover)}
.tsp-toc a>span:first-child{flex:none;width:20px;font-size:12px;line-height:16px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.tsp-toc a>span:last-child{text-wrap:pretty}
.tsp-side{display:none}
.tsp-side-label{margin:0 0 8px;padding:0 10px;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted-foreground)}
.tsp-side ol{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.tsp-side a{display:flex;align-items:flex-start;gap:10px;padding:6px 10px;border-radius:var(--radius-md);font-size:14px;line-height:20px;color:#B4B8C0;text-decoration:none}
.tsp-side a:hover{background:var(--surface-hover)}
.tsp-side a[aria-current]{color:#FFFFFF;background:rgba(255,255,255,.06);font-weight:600}
.tsp-side a>span:first-child{flex:none;width:16px;font-size:12px;line-height:20px;font-weight:400;color:#8E929B;font-variant-numeric:tabular-nums}
.tsp-side a>span:last-child{text-wrap:pretty}
.tsp-side a.tsp-side-prev{display:flex;margin:12px 0 0;color:#8E929B}
.tsp-article{min-width:0;max-width:68ch;font-size:13.6px;line-height:1.65}
.tsp-section{margin:0 0 40px;scroll-margin-top:24px}
.tsp-section h2{display:flex;align-items:baseline;gap:12px;margin:0 0 12px;font-family:var(--font-sans);font-size:1rem;line-height:1.375;font-weight:600;letter-spacing:-.025em;color:#F6F5F1}
.tsp-section h2>span:first-child{font-size:.8rem;font-weight:500;color:#8E929B;font-variant-numeric:tabular-nums}
.tsp-section h2>span:last-child{text-wrap:balance}
.tsp-section p{margin:0 0 16px;color:#D9DCE2;text-wrap:pretty}
.tsp-versions{margin:56px 0 0;padding:32px 0 0;border-top:1px solid var(--border);scroll-margin-top:24px}
.tsp-versions h2{margin:0 0 16px;font-family:var(--font-sans);font-size:1rem;line-height:inherit;font-weight:600;letter-spacing:-.025em;color:#F6F5F1}
.tsp-versions ul{display:grid;gap:8px;margin:0;padding:0;list-style:none;font-size:12px}
.tsp-versions a{display:flex;flex-wrap:wrap;align-items:center;column-gap:16px;row-gap:2px;box-sizing:border-box;min-height:48px;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius);color:#F6F5F1;text-decoration:none}
.tsp-versions a:hover{background:var(--surface-hover)}
.tsp-versions a[aria-current]{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.18)}
.tsp-ver-name{font-weight:600;font-variant-numeric:tabular-nums}
.tsp-ver-range{flex:1 1 0%;font-size:14px;line-height:20px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.tsp-ver-tag{font-size:14px;line-height:20px;font-weight:500;color:var(--accent-text)}
.tsp-ver-tag[data-current]{color:#5FC9A9}
@media (min-width:640px){
  .tsp-legal{padding-left:24px;padding-right:24px}
  .tsp-legal-head{margin-bottom:40px}
  .tsp-legal-title{font-size:2.4rem}
  .tsp-version{font-size:14px;line-height:20px}
  .tsp-banner{flex-direction:row;align-items:center}
  .tsp-banner .tsp-outline-btn{margin-left:auto;align-self:auto}
  .tsp-article{font-size:17px}
  .tsp-section h2{font-size:1.25rem}
  .tsp-section h2>span:first-child{font-size:1rem;line-height:1.5rem}
  .tsp-versions h2{font-size:1.25rem}
  .tsp-versions ul{font-size:15px}
}
@media (min-width:1024px){
  .tsp-legal-grid{display:grid;grid-template-columns:220px minmax(0,1fr);column-gap:48px}
  .tsp-legal-nav{margin:0}
  .tsp-toc{display:none}
  .tsp-side{display:block;position:sticky;top:24px}
}

.tsp-sys{display:flex;flex-direction:column}
.tsp-sys-glow{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 100%,rgb(27 47 156 / 0.5),transparent 70%)}
.tsp-sys-main{position:relative;z-index:10;display:flex;flex:1 1 0%;flex-direction:column;align-items:center;justify-content:center;padding:24px 24px 96px;text-align:center}
.tsp-buddy{position:relative;width:120px;height:120px}
.tsp-buddy-anchor{position:absolute;left:50%;top:100%;width:0;height:0}
.tsp-buddy-still{position:absolute;left:calc(50% - 67.6px);top:calc(100% - 104px);width:135.2px;height:135.2px;pointer-events:none}
.tsp-buddy-anchor:not(:empty)~.tsp-buddy-still{visibility:hidden}
.tsp-code{margin:20px 0 0;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8E929B;font-variant-numeric:tabular-nums}
.tsp-sys-title{max-width:22ch;margin:8px 0 0;font-family:var(--font-sans);font-size:1.75rem;line-height:1.25;font-weight:600;letter-spacing:-.025em;color:#F6F5F1;text-wrap:balance}
.tsp-sys-text{max-width:44ch;margin:14px 0 0;font-size:1rem;line-height:1.625;color:#C9CCD3;text-wrap:pretty}
.tsp-actions{display:flex;flex-direction:column;gap:10px;box-sizing:border-box;width:100%;max-width:340px;margin:32px 0 0}
.tsp-actions form{display:flex;flex-direction:column;margin:0}
.tsp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box;height:48px;margin:0;padding:0 24px;border:0;border-radius:18px;font-family:inherit;font-size:.9375rem;line-height:1;font-weight:600;text-decoration:none;cursor:pointer}
.tsp-btn-primary{background:var(--primary);color:#FFFFFF}
.tsp-btn-primary:hover{background:color-mix(in oklab,var(--primary) 90%,transparent)}
.tsp-btn-secondary{background:rgb(255 255 255 / 0.06);box-shadow:inset 0 0 0 1px rgb(255 255 255 / 0.14);color:#F6F5F1}
.tsp-btn-secondary:hover{background:rgb(255 255 255 / 0.12)}
.tsp-note{margin:16px 0 0;font-size:14px;line-height:20px;color:#8E929B}
.tsp-dialog{box-sizing:border-box;width:100%;max-width:28rem;padding:24px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--card);box-shadow:0 24px 60px rgb(0 0 0 / 0.6);text-align:left}
.tsp-dialog-title{margin:0;font-family:var(--font-sans);font-size:1.125rem;line-height:1.75rem;font-weight:600;letter-spacing:normal;color:var(--foreground)}
.tsp-dialog-list{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none;font-size:14px;line-height:20px;color:var(--foreground)}
.tsp-dialog-list li{display:flex;align-items:flex-start;gap:10px}
.tsp-dialog-list svg{flex:none;margin-top:2px;color:var(--destructive)}
.tsp-dialog-list span{text-wrap:pretty}
.tsp-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:24px 0 0}
.tsp-dbtn{display:inline-flex;align-items:center;box-sizing:border-box;height:36px;margin:0;padding:0 16px;border-radius:var(--radius-md);font-family:inherit;font-size:14px;line-height:20px;font-weight:500;text-decoration:none;cursor:pointer}
.tsp-dbtn-outline{border:1px solid var(--input);background:transparent;color:var(--foreground)}
.tsp-dbtn-outline:hover{background:var(--surface-hover)}
.tsp-dbtn-destructive{border:0;background:var(--destructive);color:var(--destructive-foreground)}
.tsp-dbtn-destructive:hover{background:color-mix(in oklab,var(--destructive) 90%,transparent)}
.tsp-dbtn:disabled{cursor:default}
.tsp-dialog-error{margin:16px 0 0;font-size:14px;line-height:20px;color:var(--text-danger);text-wrap:pretty}
@media (min-width:640px){
  .tsp-sys-title{font-size:2.125rem}
  .tsp-actions{flex-direction:row;justify-content:center;width:auto;max-width:none}
}
@media (min-width:701px){
  .tsp-buddy{width:150px;height:150px}
  .tsp-buddy-still{left:calc(50% - 85.8px);top:calc(100% - 132px);width:171.6px;height:171.6px}
}
.tsp-door-fn{margin:22px 0 0;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8E929B}
.tsp-door-name{margin:4px 0 0;font-size:1.125rem;line-height:1.5;font-weight:600;color:#F6F5F1}
.tsp-door-name-alone{margin-top:22px}
.tsp-door-title{max-width:22ch;margin:18px 0 0;font-family:var(--font-sans);font-size:1.625rem;line-height:1.25;font-weight:600;letter-spacing:-.025em;color:#F6F5F1;text-wrap:balance}
.tsp-door-text{max-width:42ch;margin:12px 0 0;font-size:1rem;line-height:1.625;color:#C9CCD3;text-wrap:pretty}
.tsp-door[data-ts-door-sheet="beta"] .tsp-door-text{display:none}
@media (min-width:640px){.tsp-door-title{font-size:2rem}}

.tsp-footer{pointer-events:none;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-top-bar);display:flex;justify-content:center;padding:0 12px max(4px,env(safe-area-inset-bottom))}
.tsp-footer-box{pointer-events:auto;position:relative;isolation:isolate;display:flex;align-items:center;gap:2px;box-sizing:border-box;height:30px;padding:0 3px;border:1px solid rgb(255 255 255 / 0.14);border-radius:9px;box-shadow:inset 0 1px 0 rgb(255 255 255 / 0.10)}
.tsp-footer-glass{position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:rgb(24 26 34 / 0.55);-webkit-backdrop-filter:blur(28px) saturate(1.6);backdrop-filter:blur(28px) saturate(1.6)}
.tsp-footer-btn{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:7px;font-size:12px;line-height:16px;color:#C9CCD3;text-decoration:none}
.tsp-footer-btn:hover{background:rgba(255,255,255,.08);color:#FFFFFF}
.tsp-footer-sep{width:1px;height:14px;margin:0 2px;background:rgba(255,255,255,.14)}
