/* Local, unmodified OFL fonts; source commits and licenses in site/fonts/. */
@font-face {
  font-family: "Instrument Sans";
  src: url("assets/fonts/instrument-sans.woff2") format("woff2");
  font-style: normal;
  font-weight: 400 700;
  font-stretch: 75% 100%;
  font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("assets/fonts/ibm-plex-mono.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root{font-family:"Instrument Sans",Arial,sans-serif;color:#252522;background:#f4f3ef;font-synthesis:none;line-height:1.5;--paper:#f4f3ef;--ink:#252522;--muted:#62625b;--line:#d1d0c8;--accent:#b63720;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.wrap{width:calc(100% - 112px);max-width:1264px;margin-inline:auto}.header{height:104px;display:flex;align-items:center;border-bottom:1px solid var(--ink);gap:50px}.brand{display:inline-flex;align-items:baseline;gap:5px;text-decoration:none;font-size:23px;font-weight:800;letter-spacing:-1.1px;white-space:nowrap}.brand>span:first-child{font-weight:400;letter-spacing:-1px}.brand-dot{color:var(--accent);font-size:32px;line-height:0}.header nav{display:flex;gap:32px;margin-left:auto;font-size:13px}.header nav a,.header-source{text-decoration:none}.header nav a:hover,.header-source:hover{color:var(--accent)}.header-source{font:12px "IBM Plex Mono",ui-monospace,monospace;border-left:1px solid var(--line);padding-left:32px}.hero{display:grid;grid-template-columns:1fr 300px;gap:80px;align-items:end;padding-block:86px 64px}.label{font:10px "IBM Plex Mono",ui-monospace,monospace;letter-spacing:1px;margin:0 0 26px;color:var(--muted)}h1{font-size:clamp(70px,8.3vw,120px);font-weight:500;letter-spacing:-7px;line-height:.98;margin:0 0 26px}h2{font-size:38px;line-height:1.1;letter-spacing:-1.8px;font-weight:500;margin:0 0 24px}h3{margin:0;font-size:19px;letter-spacing:-.5px;font-weight:550}.hero-copy{font-size:28px;line-height:1.32;letter-spacing:-.7px;margin:0 0 33px}.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;padding:14px 19px;text-decoration:none;font-size:13px;background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.button:hover{background:var(--accent);border-color:var(--accent)}.text-link{font-size:12px;text-decoration:none;border-bottom:1px solid var(--line);padding-block:5px}.text-link:hover{border-color:var(--ink)}.release-note{border-top:3px solid var(--accent);padding-top:20px}.release-tag{font:10px "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.4px;color:var(--accent)}.release-note>p{font-size:14px;line-height:1.65;margin:18px 0 24px}.release-note dl{margin:0}.release-note dl>div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0;font-size:11px}.release-note dt{color:var(--muted)}.release-note dd{margin:0}.quiet{color:var(--muted);font-size:10px!important;margin:16px 0 0!important}.product figure{margin:0}.screenshot-open{padding:0;border:1px solid var(--line);background:#fff;display:block;width:100%;line-height:0;cursor:zoom-in}.screenshot-open img{width:100%;height:auto;display:block}figcaption{display:flex;justify-content:space-between;gap:20px;padding-block:14px;font:10px "IBM Plex Mono",ui-monospace,monospace;color:var(--muted)}.section{display:grid;grid-template-columns:320px 1fr;gap:92px;border-top:1px solid var(--line);padding-block:76px}.install{margin-top:64px}.section-intro>p:not(.label){font-size:14px;line-height:1.7;color:var(--muted);max-width:300px}.section-intro .small{font-size:11px!important;margin-top:26px}.small{font-size:11px;line-height:1.7;color:var(--muted)}.small a:hover{color:var(--ink)}code,pre{font-family:"IBM Plex Mono",ui-monospace,monospace}.download-row{display:grid;grid-template-columns:1fr auto;gap:18px 24px;border-top:1px solid var(--ink);padding-block:22px 30px}.download-row:first-child{border-top:0;padding-top:0}.download-row p{font-size:12px;color:var(--muted);margin:5px 0 6px}.format{font:10px "IBM Plex Mono",ui-monospace,monospace;color:var(--muted)}.download-link{align-self:start;text-decoration:none;font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:5px;display:flex;gap:22px}.download-link:hover{color:var(--accent);border-color:var(--accent)}.command{grid-column:1/-1;background:#e9e8e1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px}.command pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;font-size:11px;line-height:1.8}.command button{border:0;border-left:1px solid #c4c3b9;background:transparent;font-size:10px;color:#55554e;padding:2px 0 2px 13px;flex-shrink:0}.command button:hover{color:var(--accent)}.download-footnote{display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);margin:0 0 24px}.download-footnote>a{color:var(--ink)}.source-install{border-top:1px solid var(--line);padding-top:18px;font-size:12px}.source-install summary{cursor:pointer;font-weight:600}.source-install>p{color:var(--muted)}.source-install>a{display:inline-block;margin-top:14px}.support-table{width:100%;border-collapse:collapse;font-size:12px}.support-table th{text-align:left;font:10px "IBM Plex Mono",ui-monospace,monospace;color:var(--muted);padding-bottom:18px;font-weight:400}.support-table th:last-child{text-align:right}.support-table td{padding-block:19px;border-top:1px solid var(--line)}.support-table td:first-child{padding-right:16px;max-width:250px}.support-table td:last-child{text-align:right}.status{font-size:10px;white-space:nowrap;color:var(--muted)}.status.verified{color:#2a623d}.evidence-note{margin-top:23px;max-width:600px}.tabs{display:flex;gap:30px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{padding:0 0 11px;background:transparent;border:0;border-bottom:2px solid transparent;font-size:12px;color:var(--muted)}.tabs button[aria-selected=true]{color:var(--ink);border-color:var(--ink)}.workspace-content .small{margin-top:14px}.steps{list-style:none;padding:0;margin:0 0 24px}.steps li{display:flex;gap:26px;border-top:1px solid var(--line);padding-block:18px}.steps li:first-child{padding-top:0;border:0}.steps li>span{font:10px "IBM Plex Mono",ui-monospace,monospace;color:var(--accent);padding-top:5px}.steps strong{font-weight:550;font-size:16px}.steps p{font-size:12px;line-height:1.7;color:var(--muted);margin:7px 0 0;max-width:520px}.faq-list details{border-bottom:1px solid var(--line);padding:20px 0}.faq-list details:first-child{padding-top:0}.faq-list summary{cursor:pointer;font-size:14px;list-style:none;padding-right:32px;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:'+';position:absolute;right:0;top:-3px;font-size:20px;font-weight:400;color:var(--muted)}.faq-list details[open] summary::after{content:'−'}.faq-list p{font-size:12px;color:var(--muted);line-height:1.8;max-width:600px;margin-bottom:0}.footer{border-top:1px solid var(--ink);display:flex;justify-content:space-between;gap:40px;padding-block:32px 44px}.footer .brand{font-size:17px}.footer .brand-dot{font-size:24px}.footer p{font-size:10px;color:var(--muted);line-height:1.8;margin:12px 0 0}.footer-links{display:flex;gap:24px;align-items:flex-start;padding-top:5px;font-size:11px}.footer-links a{text-decoration:none}.footer-links a:hover{text-decoration:underline}.footer .disclosure{margin:0;text-align:right;padding-top:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;z-index:10;top:-60px;left:20px;background:var(--ink);color:white;padding:10px}.skip:focus{top:10px}dialog{background:var(--paper);border:1px solid var(--ink);padding:38px 12px 12px;max-width:min(1300px,96vw);max-height:95vh}dialog::backdrop{background:#171714d9}dialog img{display:block;max-height:85vh;width:auto;max-width:100%}#close-image{position:absolute;right:8px;top:0;background:transparent;border:0;color:var(--ink);font-size:26px;width:32px;height:32px}[hidden]{display:none!important}
@media(min-width:1600px){.hero{padding-top:100px}}@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero{grid-template-columns:1fr 250px;gap:44px}h1{font-size:90px;letter-spacing:-5px}.section{grid-template-columns:270px 1fr;gap:45px}.footer{gap:24px}.footer-links{gap:16px}.disclosure{max-width:200px}}
@media(max-width:800px){.header{height:85px;gap:24px}.header nav{gap:20px}.header-source{padding-left:22px}.hero{grid-template-columns:1fr 210px;gap:28px;padding-block:60px 45px}h1{font-size:65px;letter-spacing:-4px}.hero-copy{font-size:23px}.hero-actions{gap:15px}.hero-actions .text-link{font-size:11px}.section{grid-template-columns:210px 1fr;gap:32px;padding-block:55px}h2{font-size:31px}.section-intro>p:not(.label){font-size:12px}.support-table{font-size:11px}.support-table td{padding-block:17px}.status{font-size:9px;white-space:normal}.footer{flex-wrap:wrap}.footer .disclosure{max-width:none;text-align:left}.download-footnote{display:block}.download-footnote>span{display:block;margin-top:9px}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.header{height:76px;gap:20px}.brand{font-size:20px}.header nav{display:none}.header-source{margin-left:auto;border:0;padding:0;font-size:11px}.hero{display:block;padding-block:45px 34px}.label{font-size:9px;margin-bottom:23px}h1{font-size:clamp(56px,14.1vw,80px);letter-spacing:-3.7px;white-space:nowrap;margin-bottom:20px}.hero-copy{font-size:23px;margin-bottom:26px}.hero-actions{gap:22px}.button{padding:12px 15px;font-size:12px;gap:22px}.release-note{margin-top:36px;padding-top:16px;border-top-width:2px}.release-note>p{font-size:12px;max-width:360px;margin:12px 0 18px}.release-note dl{display:flex;flex-wrap:wrap;gap:6px 24px}.release-note dl>div{display:block;border:0;padding:0;font-size:10px}.release-note dd{margin-top:4px}.release-note .quiet{margin-top:17px!important;font-size:9px!important}figcaption{display:block;font-size:9px;line-height:1.8;padding-block:10px}figcaption span{display:block}.section{display:block;padding-block:42px}.install{margin-top:28px}h2{font-size:34px;margin-bottom:18px}.section-intro{margin-bottom:30px}.section-intro>p:not(.label){font-size:13px;max-width:390px}.section-intro .small{font-size:10px!important;margin-top:16px}.download-row{gap:16px 14px;padding-block:20px 23px}.download-row h3{font-size:18px}.download-row p{font-size:11px;max-width:230px}.download-link{font-size:11px;gap:16px}.command{padding:12px;font-size:10px;gap:8px}.command pre{font-size:10px}.command button{font-size:9px;padding-left:10px}.support-table{font-size:11px}.support-table td:first-child{padding-right:18px}.status{font-size:10px}.small{font-size:10px}.steps li{gap:20px}.steps p{font-size:12px}.footer{display:block;padding-block:27px 34px}.footer-links{margin-block:24px;gap:24px;flex-wrap:wrap}.footer .disclosure{font-size:9px}.faq-list summary{font-size:13px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}

/* Typography keeps the original composition, with a consistent optical rhythm. */
:root { font-kerning: normal; }
.brand { font-weight: 700; letter-spacing: -.055em; }
.brand > span:first-child { font-weight: 450; letter-spacing: -.045em; }
h1 { font-weight: 520; letter-spacing: -.062em; }
h2 { font-weight: 500; letter-spacing: -.045em; text-wrap: balance; }
h3 { font-weight: 550; letter-spacing: -.025em; }
.hero-copy { font-weight: 400; letter-spacing: -.028em; }
.header nav { font-size: 14px; }
.section-intro > p:not(.label) { font-size: 15px; line-height: 1.75; }
.command pre { font-size: 11.5px; }
.support-table { font-size: 13px; }
.faq-list p { font-size: 13px; }
.label, .release-tag { font-size: 10px; letter-spacing: .045em; }

/* Small interactions; layout dimensions stay stable throughout the motion. */
.header nav a { position: relative; padding-block: 6px; }
.header nav a::after {
  content: "";
  position: absolute;
  height: 1px;
  inset: auto 0 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease;
}
.header nav a:hover::after,
.header nav a:focus-visible::after,
.header nav a[aria-current="location"]::after { transform: scaleX(1); }
.header nav a[aria-current="location"] { color: var(--accent); }
.button, .download-link, .text-link, .command button, .tabs button {
  transition: color 180ms ease, background-color 180ms ease, border-color 180ms ease;
}
.button > span, .download-link > span { display: inline-block; transition: transform 220ms ease; }
.button:hover > span, .button:focus-visible > span { transform: translateY(3px); }
.download-link:hover > span, .download-link:focus-visible > span { transform: translate(2px, -2px); }
.screenshot-open { overflow: hidden; transition: border-color 240ms ease; }
.screenshot-open img { transition: transform 650ms cubic-bezier(.22,1,.36,1); }
.screenshot-open:hover, .screenshot-open:focus-visible { border-color: #77776e; }
.screenshot-open:hover img { transform: scale(1.008); }
.command button { min-width: 35px; }
.command button:hover { color: var(--accent); }
.faq-list summary::after { transition: color 180ms ease; }
.faq-list summary:hover::after { color: var(--accent); }

@keyframes arrive {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes panel-arrive {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: no-preference) {
  .motion-enabled .header { animation: arrive 600ms cubic-bezier(.22,1,.36,1) both; }
  .motion-enabled .hero-main > .label { animation: arrive 700ms 60ms cubic-bezier(.22,1,.36,1) both; }
  .motion-enabled h1 { animation: arrive 800ms 120ms cubic-bezier(.22,1,.36,1) both; }
  .motion-enabled .hero-copy { animation: arrive 800ms 200ms cubic-bezier(.22,1,.36,1) both; }
  .motion-enabled .hero-actions { animation: arrive 750ms 280ms cubic-bezier(.22,1,.36,1) both; }
  .motion-enabled .release-note { animation: arrive 800ms 310ms cubic-bezier(.22,1,.36,1) both; }
  .motion-enabled .product { animation: arrive 850ms 360ms cubic-bezier(.22,1,.36,1) both; }
  .workspace-content [role="tabpanel"]:not([hidden]) { animation: panel-arrive 260ms ease both; }
  .faq-list details[open] p { animation: panel-arrive 220ms ease both; }
}
@media (max-width: 800px) {
  .header nav { font-size: 13px; }
  .section-intro > p:not(.label) { font-size: 14px; }
  .support-table { font-size: 12px; }
}
@media (max-width: 640px) {
  h1 { font-size: clamp(52px, 13.6vw, 80px); letter-spacing: -.06em; }
  .hero-copy { font-size: 23px; }
  .label, .release-tag { font-size: 9px; }
  .section-intro > p:not(.label) { font-size: 14px; }
  .command pre { font-size: 10.5px; }
  .support-table { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  :root { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
