:root{--font-sans: "Aptos", "SF Pro Text", "Segoe UI Variable", "Segoe UI", "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-serif: "Source Serif 4", "Iowan Old Style", "Palatino Linotype", ui-serif, Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", "Cascadia Mono", "IBM Plex Mono", ui-monospace, monospace;--ts-color-canvas: #f3f7ef;--ts-color-canvas-subtle: #e8efe1;--ts-color-surface: #ffffff;--ts-color-surface-muted: #e8efe1;--ts-color-surface-raised: #fafcf7;--ts-color-surface-overlay: rgba(255, 255, 255, .88);--ts-control-background: var(--ts-color-surface);--ts-color-text: #1f2a20;--ts-color-text-muted: #51604d;--ts-color-text-subtle: #51604d;--ts-color-text-inverse: #ffffff;--ts-color-link: #3a6f75;--ts-color-link-hover: #3f6f3f;--ts-color-border: #cdd8c6;--ts-color-border-muted: #cdd8c6;--ts-color-border-strong: #aebca6;--ts-color-focus: #3a6f75;--ts-color-accent: #4f7d4e;--ts-color-accent-hover: #3f6f3f;--ts-color-accent-strong: #2f5a35;--ts-color-accent-soft: #dcebd6;--ts-color-accent-text: #ffffff;--ts-color-info: #3a6f75;--ts-color-info-soft: color-mix(in srgb, #3a6f75 18%, #ffffff);--ts-color-info-text: #3a6f75;--ts-color-info-border: color-mix(in srgb, #3a6f75 42%, #cdd8c6);--ts-color-success: #287243;--ts-color-success-soft: color-mix(in srgb, #287243 18%, #ffffff);--ts-color-success-text: #287243;--ts-color-success-border: color-mix(in srgb, #287243 42%, #cdd8c6);--ts-color-warning: #8a6a1f;--ts-color-warning-soft: color-mix(in srgb, #8a6a1f 18%, #ffffff);--ts-color-warning-text: #8a6a1f;--ts-color-warning-border: color-mix(in srgb, #8a6a1f 42%, #cdd8c6);--ts-color-danger: #a23e35;--ts-color-danger-soft: color-mix(in srgb, #a23e35 16%, #ffffff);--ts-color-danger-text: #a23e35;--ts-color-danger-border: color-mix(in srgb, #a23e35 42%, #cdd8c6);--ts-color-shadow: 0 1px 2px rgba(31, 35, 40, .08);--ts-color-grid: rgba(80, 100, 74, .12);--ts-radius-sm: .375rem;--ts-radius-md: .5rem;--ts-radius-lg: .75rem;--ts-space-1: .25rem;--ts-space-2: .5rem;--ts-space-3: .75rem;--ts-space-4: 1rem;--ts-content-width: 76rem;--ts-reading-width: 78ch;--ts-shell-width: 1200px}.ts-skip-link{background:var(--ts-color-accent);border-radius:var(--ts-radius-md);color:var(--ts-color-accent-text);font-weight:750;left:var(--ts-space-3);padding:var(--ts-space-2) var(--ts-space-3);position:fixed;top:var(--ts-space-3);transform:translateY(-150%);z-index:100}.ts-skip-link:focus{transform:translateY(0)}.ts-app-shell{background:var(--ts-color-canvas);color:var(--ts-color-text);display:grid;grid-template-columns:17.875rem minmax(0,1fr);min-height:100vh}.ts-app-shell__rail{align-self:start;background:var(--ts-color-canvas-subtle);border-right:1px solid var(--ts-color-border);box-sizing:border-box;display:grid;gap:var(--ts-space-3);grid-template-rows:minmax(0,1fr) auto;height:100vh;overflow:hidden;padding:var(--ts-space-3);position:sticky;top:0}.ts-app-shell__rail-scroll{display:grid;align-content:start;gap:var(--ts-space-2);min-height:0;overflow:auto;padding-right:.15rem}.ts-shell-brand{align-items:center;color:var(--ts-color-text);display:flex;gap:var(--ts-space-2);min-width:0;max-width:100%;text-decoration:none}.ts-shell-brand:hover{text-decoration:none}.ts-shell-brand__mark{align-items:center;display:inline-flex;flex:0 0 auto;font-weight:800;height:3rem;justify-content:center;max-height:3rem;max-width:3rem;overflow:hidden;width:3rem}.ts-shell-brand__mark img{display:block;height:100%;max-height:100%;max-width:100%;object-fit:contain;width:100%}.ts-shell-brand__text{display:grid;gap:.1rem;min-width:0}.ts-shell-brand__name{font-size:.95rem;font-weight:750;line-height:1.15}.ts-shell-brand__tag{color:var(--ts-color-text-muted);font-size:.74rem;font-weight:500;line-height:1.25;max-width:13rem}.ts-top-bar{align-items:center;display:flex;gap:var(--ts-space-2);justify-content:space-between;min-width:0}.ts-top-bar__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ts-space-1);justify-content:flex-end;min-width:0}.ts-shell-utility-actions{align-items:center;display:inline-flex;gap:var(--ts-space-1)}.ts-app-shell__rail-context,.ts-app-shell__quick-actions{border-top:1px solid var(--ts-color-border);display:grid;gap:var(--ts-space-1);padding-top:var(--ts-space-2)}.ts-app-shell__quick-actions{background:var(--ts-color-canvas-subtle);padding-bottom:.1rem}.ts-app-shell__eyebrow{color:var(--ts-color-text-subtle);font-size:.75rem;font-weight:750;margin:0;text-transform:uppercase}.ts-app-shell__quick-list{display:grid;gap:var(--ts-space-2)}.ts-rail-nav{border-top:1px solid var(--ts-color-border);display:grid;gap:.08rem;margin-top:1.25rem;padding-top:var(--ts-space-1)}.ts-rail-nav__link,.ts-bottom-nav__link,.ts-public-shell__link,.ts-shell-tab{color:var(--ts-color-text-muted);text-decoration:none}.ts-rail-nav__link{border-radius:var(--ts-radius-md);box-sizing:border-box;display:flex;font-weight:650;justify-content:space-between;min-height:1.7rem;padding:.24rem .55rem}.ts-rail-nav__link[aria-current=page],.ts-rail-nav__link:hover{background:var(--ts-color-surface);color:var(--ts-color-text);text-decoration:none}.ts-app-shell__main{display:grid;gap:var(--ts-space-3);padding:var(--ts-space-3)}.ts-app-shell__mobile-top{display:none}.ts-app-shell__header{align-items:flex-start;display:flex;gap:var(--ts-space-3);justify-content:space-between}.ts-app-shell__title{display:grid;gap:var(--ts-space-1);min-width:0}.ts-app-shell__title h1{color:var(--ts-color-text);font-size:1.55rem;line-height:1.12;margin:0}.ts-app-shell__title p,.ts-project-header p{color:var(--ts-color-text-muted);line-height:1.5;margin:0}.ts-app-shell__header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ts-space-2);justify-content:flex-end}.ts-project-header{background:var(--ts-color-surface);border:1px solid var(--ts-color-border);border-radius:var(--ts-radius-lg);display:grid;gap:var(--ts-space-2);padding:var(--ts-space-3)}.ts-project-header__main{display:grid;gap:var(--ts-space-2)}.ts-project-header__badges,.ts-project-header__actions{display:flex;flex-wrap:wrap;gap:var(--ts-space-2)}.ts-project-header h2{color:var(--ts-color-text);font-size:1.15rem;line-height:1.15;margin:0}.ts-shell-tabs{align-items:stretch;display:flex;flex-wrap:wrap;gap:var(--ts-space-2)}.ts-shell-tab{align-items:center;background:var(--ts-color-surface-muted);border:1px solid var(--ts-color-border);border-radius:var(--ts-radius-md);box-sizing:border-box;display:inline-flex;flex:1 1 7rem;font-size:.875rem;font-weight:650;justify-content:center;line-height:1.2;min-height:2.5rem;padding:.55rem .75rem;text-align:center;white-space:nowrap}.ts-shell-tab[aria-current=page],.ts-shell-tab[aria-selected=true],.ts-shell-tab:hover{background:var(--ts-color-surface);border-color:var(--ts-color-border-strong);color:var(--ts-color-text);text-decoration:none}.ts-bottom-nav{background:var(--ts-color-surface-overlay);border-top:1px solid var(--ts-color-border);bottom:0;display:none;gap:var(--ts-space-1);grid-template-columns:repeat(auto-fit,minmax(0,1fr));left:0;padding:var(--ts-space-2);position:fixed;right:0;z-index:30}.ts-bottom-nav__link{border-radius:var(--ts-radius-md);display:grid;font-size:.75rem;font-weight:700;min-height:2.5rem;place-items:center;text-align:center}.ts-bottom-nav__link[aria-current=page],.ts-bottom-nav__link:hover{background:var(--ts-color-surface-muted);color:var(--ts-color-text);text-decoration:none}.ts-public-shell{background:var(--ts-color-canvas);color:var(--ts-color-text);margin:0 auto;max-width:var(--ts-shell-width);min-height:100vh;padding:var(--ts-space-3)}.ts-public-shell--content .ts-public-shell__main{margin-inline:auto;max-width:var(--ts-content-width);width:100%}.ts-public-shell__header{display:grid;gap:var(--ts-space-2);padding-bottom:var(--ts-space-3)}.ts-public-shell__nav{align-items:center;display:flex;flex-wrap:wrap;gap:var(--ts-space-1);justify-content:flex-end;min-width:0}.ts-public-shell__link{border:1px solid transparent;border-radius:999px;font-size:.94rem;font-weight:650;padding:.42rem .7rem}.ts-public-shell__link[aria-current=page],.ts-public-shell__summary--active,.ts-public-shell__link:hover{background:var(--ts-color-surface-raised);border-color:var(--ts-color-border);color:var(--ts-color-text);text-decoration:none}.ts-public-shell__nav-group{position:relative}.ts-public-shell__summary{align-items:center;cursor:pointer;display:inline-flex;gap:.35rem;list-style:none}.ts-public-shell__summary::-webkit-details-marker{display:none}.ts-public-shell__summary span{color:var(--ts-color-text-subtle);font-size:.75rem;transition:transform .16s ease}.ts-public-shell__nav-group[open] .ts-public-shell__summary span{transform:rotate(180deg)}.ts-public-shell__menu{background:var(--ts-color-surface-overlay);border:1px solid var(--ts-color-border-strong);border-radius:var(--ts-radius-md);box-shadow:var(--ts-color-shadow);display:grid;gap:.15rem;inset-block-start:calc(100% + .35rem);inset-inline-end:0;min-width:13rem;padding:var(--ts-space-1);position:absolute;z-index:40}.ts-public-shell__menu-link{border-radius:var(--ts-radius-sm);color:var(--ts-color-text-muted);font-size:.9rem;font-weight:600;padding:.5rem .65rem;text-decoration:none}.ts-public-shell__menu-link[aria-current=page],.ts-public-shell__menu-link:hover,.ts-public-shell__menu-link:focus-visible{background:var(--ts-color-surface-muted);color:var(--ts-color-text);text-decoration:none}.ts-public-shell__icon-link{align-items:center;border:1px solid transparent;border-radius:var(--ts-radius-md);color:var(--ts-color-text-muted);display:inline-flex;height:2.25rem;justify-content:center;text-decoration:none;width:2.25rem}.ts-public-shell__icon-link:hover,.ts-public-shell__icon-link:focus-visible{background:var(--ts-color-surface-raised);border-color:var(--ts-color-border);color:var(--ts-color-text);text-decoration:none}.ts-public-shell__icon-link svg{fill:currentColor;height:1.15rem;width:1.15rem}.ts-public-shell__icon-link--stroke svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.ts-public-shell__main{display:grid;gap:var(--ts-space-3);padding-top:clamp(1.25rem,3vw,2.25rem)}.ts-public-footer{border-top:2px solid var(--ts-color-border-strong);display:block;margin-top:4rem;padding-top:2rem;width:100%}.site-footer-cta+.ts-public-footer{margin-top:0}.ts-public-footer__inner{display:grid;gap:2rem;margin-inline:auto;max-width:var(--ts-content-width);padding-bottom:3.75rem;width:100%}.ts-public-footer__grid{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.ts-public-footer__column{align-content:start;display:grid;gap:.75rem;width:16rem}.ts-public-footer__title,.ts-public-footer__column-title{color:var(--ts-color-text);font-size:1.25rem;font-weight:750;line-height:1.2;margin:0}.ts-public-footer__heading{color:var(--ts-color-info-text);font-size:.82rem;font-weight:750;letter-spacing:.14em;line-height:1.2;margin:0;text-transform:uppercase}.ts-public-footer__copy,.ts-public-footer__links{color:var(--ts-color-text-muted);font-size:1rem;line-height:1.9;margin:0}.ts-public-footer__links{display:flex;flex-direction:column;gap:.35rem}.ts-public-footer__links a{color:var(--ts-color-text-muted);display:block;text-decoration:none}.ts-public-footer__links a:hover,.ts-public-footer__links a:focus-visible{color:var(--ts-color-text);text-decoration:underline}@media(min-width:48rem){.ts-project-header{align-items:center;grid-template-columns:minmax(0,1fr) auto}.ts-project-header .ts-shell-tabs{grid-column:1 / -1}}@media(max-width:61.25rem){.ts-app-shell{display:block;padding-bottom:4.5rem}.ts-app-shell__rail{display:none}.ts-app-shell__main{padding:var(--ts-space-2)}.ts-app-shell__mobile-top{background:var(--ts-color-surface-overlay);border-bottom:1px solid var(--ts-color-border);display:flex;margin:calc(var(--ts-space-2) * -1) calc(var(--ts-space-2) * -1) 0;padding:var(--ts-space-2);position:sticky;top:0;z-index:20}.ts-app-shell__header{flex-direction:column}.ts-app-shell__header-actions{justify-content:stretch;width:100%}.ts-app-shell__header-actions .ts-shell-utility-actions{display:none}.ts-bottom-nav{display:grid}}@media(max-width:40rem){.ts-public-shell{padding:var(--ts-space-2)}.ts-top-bar{align-items:center;flex-wrap:wrap}.ts-top-bar__actions{justify-content:flex-end}.ts-public-shell__nav{justify-content:flex-start}.ts-public-shell__menu{inset-inline:0 auto}}
