:root{--ink:#141a24;--ink-2:#46536a;--ink-3:#7a8698;--paper:#e7eaef;--surface:#ffffff;--rule:#cbd2dc;--signal:#3a2bd8;--signal-d:#2a1eb0;--ok:#0f766e;--display:'Archivo', 'Helvetica Neue', Arial, sans-serif;--body:'Instrument Sans', system-ui, -apple-system, sans-serif;--mono:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;--gut:clamp(1.25rem, 4vw, 3rem);--maxw:68rem}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1rem;line-height:1.6;font-feature-settings:'kern' 1;-webkit-font-smoothing:antialiased}.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}.eyebrow{font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0}.data{font-family:var(--mono);font-variant-numeric:tabular-nums}.topbar{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:20}.topbar__inner{display:flex;align-items:center;gap:1.5rem;min-height:4rem}.brand{font-family:var(--display);font-weight:700;font-size:1.0625rem;letter-spacing:-.02em;color:var(--ink);text-decoration:none;margin-right:auto}.navlink{font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--ink-2);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent}.navlink:hover{color:var(--ink)}.navlink[aria-current=page]{color:var(--ink);border-bottom-color:var(--signal)}.hero{padding-block:clamp(3rem,9vw,6rem)0}.hero__title{font-family:var(--display);font-weight:700;font-size:clamp(2.5rem,8vw,5rem);line-height:.98;letter-spacing:-.035em;margin:.75rem 0 1rem;max-width:22ch}.hero__lede{font-size:clamp(1.0625rem,2vw,1.1875rem);color:var(--ink-2);max-width:46ch;margin:0 0 2.5rem}.primary{background:var(--surface);border:1px solid var(--rule);border-radius:4px;overflow:hidden;box-shadow:0 1px 2px rgba(20,26,36,5%),0 12px 32px -12px rgba(20,26,36,.18)}.primary__body{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:clamp(1.25rem,3vw,2rem)}.primary__glyph{font-size:1.75rem;line-height:1;width:3.25rem;height:3.25rem;flex:none;display:grid;place-items:center;border:1px solid var(--rule);border-radius:4px;background:var(--paper)}.primary__text{flex:1 1 16rem;min-width:0}.primary__os{font-family:var(--display);font-weight:600;font-size:1.25rem;letter-spacing:-.015em;margin:.125rem 0 .375rem}.primary__file{font-family:var(--mono);font-size:.8125rem;color:var(--ink-2);margin:0;overflow-wrap:anywhere}.primary__file+.primary__file{margin-top:.25rem}.primary__actions{display:flex;flex-wrap:wrap;gap:.75rem}.btn{font-family:var(--body);font-weight:600;font-size:.9375rem;display:inline-flex;align-items:center;gap:.5rem;padding:.8125rem 1.5rem;border-radius:3px;border:1px solid transparent;text-decoration:none;cursor:pointer;transition:background-color .15s ease,transform .15s ease}.btn--primary{background:var(--signal);color:#fff}.btn--primary:hover{background:var(--signal-d)}.btn--primary:active{transform:translateY(1px)}.btn--ghost{background:0 0;color:var(--ink);border-color:var(--rule);padding:.5rem .875rem;font-size:.8125rem}.btn--ghost:hover{border-color:var(--ink-3)}:where(a,button,summary,[tabindex]):focus-visible{outline:2px solid var(--signal);outline-offset:2px}.fingerprint{background:var(--ink);color:var(--paper);border:0;width:100%;display:block;text-align:left;padding:.875rem clamp(1.25rem,3vw,2rem);cursor:pointer;font-family:var(--mono);transition:background-color .15s ease}.fingerprint:hover{background:#1d2634}.fingerprint__label{font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:#8996ab;display:flex;justify-content:space-between;gap:1rem}.fingerprint__hash{font-size:.75rem;letter-spacing:.06em;line-height:1.5;overflow-wrap:anywhere;margin-top:.375rem}.fingerprint[data-copied=true] .fingerprint__state{color:#5eead4}.detected{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;margin:.875rem 0 0;font-size:.8125rem;color:var(--ink-3)}.detected button{font:inherit;font-family:var(--mono);background:0 0;border:0;padding:0;color:var(--signal);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.section{padding-block:clamp(3rem,8vw,5.5rem)}.section--rule{border-top:1px solid var(--rule)}.section__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.75rem}.section__title{font-family:var(--display);font-weight:600;font-size:clamp(1.375rem,3vw,1.875rem);letter-spacing:-.025em;margin:0}.spec{width:100%;border-collapse:collapse}.spec th{font-family:var(--mono);font-size:.6875rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:0 0 .625rem;border-bottom:1px solid var(--rule)}.spec td{padding:.9375rem 0;border-bottom:1px solid var(--rule);vertical-align:baseline}.spec tbody tr:hover{background:rgba(255,255,255,.5)}.spec__os{font-weight:500}.spec__meta{font-family:var(--mono);font-size:.8125rem;color:var(--ink-2)}.spec td:last-child{text-align:right}.spec__dl{font-family:var(--mono);font-size:.8125rem;color:var(--signal);text-decoration:none;white-space:nowrap}.spec__dl:hover{text-decoration:underline}@media(max-width:40rem){.spec thead{display:none}.spec tr{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;padding-block:.875rem;border-bottom:1px solid var(--rule)}.spec td{border:0;padding:0}.spec td:nth-child(2){grid-column:1}.spec td:last-child{grid-column:2;grid-row:1/span 2;align-self:center}}.ledger{display:grid;gap:0}.ledger__entry{border-top:1px solid var(--rule);padding-block:clamp(1.5rem,4vw,2.25rem)}.ledger__entry:first-child{border-top:0}.ledger__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem 1.25rem;margin-bottom:1rem}.ledger__version{font-family:var(--display);font-weight:700;font-size:clamp(1.75rem,4vw,2.5rem);letter-spacing:-.03em;line-height:1;margin:0}.tag{font-family:var(--mono);font-size:.6875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .5rem;border-radius:2px;border:1px solid var(--rule);color:var(--ink-2)}.tag--current{background:var(--signal);border-color:var(--signal);color:#fff}.ledger__date{font-family:var(--mono);font-size:.8125rem;color:var(--ink-3);margin-left:auto}.assets{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}.assets a{display:inline-flex;align-items:baseline;gap:.5rem;font-family:var(--mono);font-size:.8125rem;text-decoration:none;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:3px;padding:.5rem .75rem}.assets a:hover{border-color:var(--signal);color:var(--signal)}.assets span{color:var(--ink-3)}.docs{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:clamp(2rem,5vw,4rem);padding-block:clamp(2.5rem,6vw,4rem);align-items:start}@media(max-width:52rem){.docs{grid-template-columns:1fr}}.docnav{position:sticky;top:5rem}.docnav ul{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.125rem}.docnav a{display:block;font-size:.9375rem;color:var(--ink-2);text-decoration:none;padding:.4375rem .75rem;border-left:2px solid var(--rule);border-radius:0 3px 3px 0}.docnav a:hover{color:var(--ink);background:rgba(255,255,255,.6)}.docnav a[aria-current=true]{color:var(--signal);border-left-color:var(--signal);background:var(--surface);font-weight:600}.prose{max-width:42rem}.prose>:first-child{margin-top:0}.prose h1{font-family:var(--display);font-weight:700;font-size:clamp(1.875rem,4.5vw,2.5rem);letter-spacing:-.03em;line-height:1.1;margin:0 0 1.25rem}.prose h2{font-family:var(--display);font-weight:600;font-size:1.375rem;letter-spacing:-.02em;margin:2.5rem 0 .875rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.prose h3{font-family:var(--display);font-weight:600;font-size:1.0625rem;margin:1.75rem 0 .5rem}.prose p,.prose li{color:var(--ink-2)}.prose li{margin-bottom:.375rem}.prose a{color:var(--signal);text-underline-offset:2px}.prose strong{color:var(--ink);font-weight:600}.prose code{font-family:var(--mono);font-size:.8125em;background:var(--surface);border:1px solid var(--rule);border-radius:2px;padding:.1em .35em;overflow-wrap:anywhere}.prose pre{background:var(--ink);color:#dbe2ec;border-radius:4px;padding:1rem 1.125rem;overflow-x:auto;font-size:.8125rem;line-height:1.65}.prose pre code{background:0 0;border:0;padding:0;color:inherit;font-size:1em}.prose blockquote{margin:1.5rem 0;padding:.875rem 1.125rem;background:var(--surface);border-left:3px solid var(--signal);border-radius:0 3px 3px 0}.prose blockquote p{margin:0;color:var(--ink)}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.5rem 0}.prose img{display:block;max-width:100%;height:auto;margin:1.5rem 0;border:1px solid var(--rule);border-radius:4px}.notice{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--signal);border-radius:0 4px 4px 0;padding:1.25rem 1.5rem}.notice p{margin:.375rem 0 0;color:var(--ink-2);font-size:.9375rem}.notice strong{font-family:var(--display);font-weight:600}.skeleton{background:linear-gradient(90deg,var(--rule) 25%,#dde2ea 50%,var(--rule) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:3px;color:transparent}@keyframes shimmer{to{background-position:-200% 0}}.foot{border-top:1px solid var(--rule);padding-block:2.5rem 3.5rem;font-family:var(--mono);font-size:.75rem;color:var(--ink-3)}.foot__inner{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between}.foot a{color:var(--ink-2);text-decoration:none}.foot a:hover{color:var(--signal)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip:focus{position:fixed;top:.5rem;left:.5rem;z-index:100;background:var(--ink);color:#fff;padding:.625rem 1rem;border-radius:3px;font-size:.875rem;text-decoration:none;width:auto;height:auto;clip-path:none}.brand{display:flex;flex-direction:column;line-height:1.15}.brand span{font-family:var(--mono);font-size:.6875rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.topnav{display:flex;flex-wrap:wrap;gap:1.25rem}.navlink[aria-current=true]{color:var(--ink);border-bottom-color:var(--signal)}.hero--home{padding-bottom:clamp(2rem,5vw,3rem)}.catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:4px;overflow:hidden}.card{background:var(--surface);padding:clamp(1.25rem,3vw,1.75rem);text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.5rem;transition:background-color .15s ease}.card:hover{background:#fbfcfd}.card__head{display:flex;align-items:baseline;gap:.75rem}.card__name{font-family:var(--display);font-weight:700;font-size:1.375rem;letter-spacing:-.025em;margin:0}.card__tagline{margin:0;color:var(--ink-2);font-size:.9375rem}.card__meta{font-family:var(--mono);font-size:.75rem;color:var(--ink-3);margin:0}.card__date{font-family:var(--mono);font-size:.75rem;color:var(--ink-3);margin:0}.card__go{font-family:var(--mono);font-size:.8125rem;color:var(--signal);margin-top:auto;padding-top:.75rem}.card:hover .card__go{text-decoration:underline}.picker .primary[hidden]{display:none}.switcher{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin:.875rem 0 0;font-size:.8125rem;color:var(--ink-3)}.switcher button{font-family:var(--mono);font-size:.75rem;background:var(--surface);border:1px solid var(--rule);border-radius:2px;padding:.3125rem .625rem;color:var(--ink-2);cursor:pointer}.switcher button:hover{border-color:var(--ink-3);color:var(--ink)}.switcher button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.reqs{display:grid;grid-template-columns:max-content 1fr;gap:.375rem 1.5rem;margin:1.75rem 0 0;font-size:.875rem}.reqs dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.reqs dd{margin:0;color:var(--ink-2)}.doclist{list-style:none;margin:0;padding:0}.doclist a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink)}.doclist li:first-child a{border-top:1px solid var(--rule)}.doclist a:hover{color:var(--signal)}.doclist__title{font-weight:500}.doclist__go{font-family:var(--mono);color:var(--ink-3)}.doclist a:hover .doclist__go{color:var(--signal)}.hero__title--sm{font-size:clamp(1.875rem,5vw,2.75rem);margin-top:.5rem}.ledger__notes{margin:1rem 0 0}.eyebrow a{color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}.eyebrow a:hover{color:var(--signal);border-bottom-color:var(--signal)}.callout{margin:1.5rem 0;padding:1rem 1.25rem;background:var(--surface);border-left:3px solid var(--signal);border-radius:0 3px 3px 0}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.prose table{width:100%;border-collapse:collapse;margin:1.5rem 0;font-size:.9375rem}.prose th{font-family:var(--mono);font-size:.6875rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:0 1rem .625rem 0;border-bottom:1px solid var(--rule)}.prose td{padding:.75rem 1rem .75rem 0;border-bottom:1px solid var(--rule);color:var(--ink-2);vertical-align:baseline}.prose td:last-child,.prose th:last-child{padding-right:0}.notes{margin:1.25rem 0 0}.notes summary{font-family:var(--mono);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);cursor:pointer;padding:.375rem 0;list-style:none}.notes summary::-webkit-details-marker{display:none}.notes summary::before{content:'+ ';font-weight:600}.notes[open] summary::before{content:'– '}.notes summary:hover{color:var(--ink)}.notes>.prose{margin-top:.5rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--rule);border-radius:3px}.prose--compact>:first-child{margin-top:0}.prose--compact>:last-child{margin-bottom:0}.prose--compact h3{font-family:var(--mono);font-size:.6875rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:1.25rem 0 .5rem}.prose--compact ul{margin:0;padding-left:1.125rem}.prose--compact li{font-size:.9375rem}