.markdown-body {
  --base-size-16: 1rem;
  --base-size-24: 1.5rem;
  --base-size-4: 0.25rem;
  --base-size-40: 2.5rem;
  --base-size-8: 0.5rem;
  --base-text-weight-medium: 500;
  --base-text-weight-normal: 400;
  --base-text-weight-semibold: 600;
  --fontStack-monospace: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  --fontStack-sansSerif: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
  --fgColor-accent: Highlight;
}
@media (prefers-color-scheme: dark) {
  .markdown-body, [data-theme="dark"] {
    /*dark */
    color-scheme: dark;
    --fgColor-accent: #4493f8;
    --bgColor-attention-muted: #bb800926;
    --bgColor-default: #0d1117;
    --bgColor-muted: #151b23;
    --bgColor-neutral-muted: #656c7633;
    --borderColor-accent-emphasis: #1f6feb;
    --borderColor-attention-emphasis: #9e6a03;
    --borderColor-danger-emphasis: #da3633;
    --borderColor-default: #3d444d;
    --borderColor-done-emphasis: #8957e5;
    --borderColor-success-emphasis: #238636;
    --color-prettylights-syntax-brackethighlighter-angle: #9198a1;
    --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;
    --color-prettylights-syntax-carriage-return-bg: #b62324;
    --color-prettylights-syntax-carriage-return-text: #f0f6fc;
    --color-prettylights-syntax-comment: #9198a1;
    --color-prettylights-syntax-constant: #79c0ff;
    --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;
    --color-prettylights-syntax-entity: #d2a8ff;
    --color-prettylights-syntax-entity-tag: #7ee787;
    --color-prettylights-syntax-keyword: #ff7b72;
    --color-prettylights-syntax-markup-bold: #f0f6fc;
    --color-prettylights-syntax-markup-changed-bg: #5a1e02;
    --color-prettylights-syntax-markup-changed-text: #ffdfb6;
    --color-prettylights-syntax-markup-deleted-bg: #67060c;
    --color-prettylights-syntax-markup-deleted-text: #ffdcd7;
    --color-prettylights-syntax-markup-heading: #1f6feb;
    --color-prettylights-syntax-markup-ignored-bg: #1158c7;
    --color-prettylights-syntax-markup-ignored-text: #f0f6fc;
    --color-prettylights-syntax-markup-inserted-bg: #033a16;
    --color-prettylights-syntax-markup-inserted-text: #aff5b4;
    --color-prettylights-syntax-markup-italic: #f0f6fc;
    --color-prettylights-syntax-markup-list: #f2cc60;
    --color-prettylights-syntax-meta-diff-range: #d2a8ff;
    --color-prettylights-syntax-storage-modifier-import: #f0f6fc;
    --color-prettylights-syntax-string: #a5d6ff;
    --color-prettylights-syntax-string-regexp: #7ee787;
    --color-prettylights-syntax-sublimelinter-gutter-mark: #3d444d;
    --color-prettylights-syntax-variable: #ffa657;
    --fgColor-attention: #d29922;
    --fgColor-danger: #f85149;
    --fgColor-default: #f0f6fc;
    --fgColor-done: #ab7df8;
    --fgColor-muted: #9198a1;
    --fgColor-success: #3fb950;
    --borderColor-muted: #3d444db3;
    --color-prettylights-syntax-invalid-illegal-bg: var(--bgColor-danger-muted);
    --color-prettylights-syntax-invalid-illegal-text: var(--fgColor-danger);
    --focus-outlineColor: var(--borderColor-accent-emphasis);
    --borderColor-neutral-muted: var(--borderColor-muted);
  }
}
@media (prefers-color-scheme: light) {
  .markdown-body, [data-theme="light"] {
    /*light */
    color-scheme: light;
    --fgColor-danger: #d1242f;
    --bgColor-attention-muted: #fff8c5;
    --bgColor-muted: #f6f8fa;
    --bgColor-neutral-muted: #818b981f;
    --borderColor-accent-emphasis: #0969da;
    --borderColor-attention-emphasis: #9a6700;
    --borderColor-danger-emphasis: #cf222e;
    --borderColor-default: #d1d9e0;
    --borderColor-done-emphasis: #8250df;
    --borderColor-success-emphasis: #1a7f37;
    --color-prettylights-syntax-brackethighlighter-angle: #59636e;
    --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;
    --color-prettylights-syntax-carriage-return-bg: #cf222e;
    --color-prettylights-syntax-carriage-return-text: #f6f8fa;
    --color-prettylights-syntax-comment: #59636e;
    --color-prettylights-syntax-constant: #0550ae;
    --color-prettylights-syntax-constant-other-reference-link: #0a3069;
    --color-prettylights-syntax-entity: #6639ba;
    --color-prettylights-syntax-entity-tag: #0550ae;
    --color-prettylights-syntax-invalid-illegal-text: var(--fgColor-danger);
    --color-prettylights-syntax-keyword: #cf222e;
    --color-prettylights-syntax-markup-changed-bg: #ffd8b5;
    --color-prettylights-syntax-markup-changed-text: #953800;
    --color-prettylights-syntax-markup-deleted-bg: #ffebe9;
    --color-prettylights-syntax-markup-deleted-text: #82071e;
    --color-prettylights-syntax-markup-heading: #0550ae;
    --color-prettylights-syntax-markup-ignored-bg: #0550ae;
    --color-prettylights-syntax-markup-ignored-text: #d1d9e0;
    --color-prettylights-syntax-markup-inserted-bg: #dafbe1;
    --color-prettylights-syntax-markup-inserted-text: #116329;
    --color-prettylights-syntax-markup-list: #3b2300;
    --color-prettylights-syntax-meta-diff-range: #8250df;
    --color-prettylights-syntax-string: #0a3069;
    --color-prettylights-syntax-string-regexp: #116329;
    --color-prettylights-syntax-sublimelinter-gutter-mark: #818b98;
    --color-prettylights-syntax-variable: #953800;
    --fgColor-accent: #0969da;
    --fgColor-attention: #9a6700;
    --fgColor-done: #8250df;
    --fgColor-muted: #59636e;
    --fgColor-success: #1a7f37;
    --bgColor-default: #ffffff;
    --borderColor-muted: #d1d9e0b3;
    --color-prettylights-syntax-invalid-illegal-bg: var(--bgColor-danger-muted);
    --color-prettylights-syntax-markup-bold: #1f2328;
    --color-prettylights-syntax-markup-italic: #1f2328;
    --color-prettylights-syntax-storage-modifier-import: #1f2328;
    --fgColor-default: #1f2328;
    --focus-outlineColor: var(--borderColor-accent-emphasis);
    --borderColor-neutral-muted: var(--borderColor-muted);
  }
}

.markdown-body {
  /** CSS default easing. Use for hover state changes and micro-interactions. */
  /** Accelerating motion. Use for elements exiting the viewport (moving off-screen). */
  /** Smooth acceleration and deceleration. Use for elements moving or morphing within the viewport. */
  /** Decelerating motion. Use for elements entering the viewport or appearing on screen. */
  /** Constant motion with no acceleration. Use for continuous animations like progress bars or loaders. */
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  margin: 0;
  font-weight: var(--base-text-weight-normal, 400);
  color: var(--fgColor-default);
  background-color: var(--bgColor-default);
  font-family: var(--fontStack-sansSerif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji");
  font-size: 16px;
  line-height: 1.5;
  word-wrap: break-word;
}

.markdown-body a {
  text-decoration: underline;
  text-underline-offset: .2rem;
}

.markdown-body .octicon {
  display: inline-block;
  fill: currentColor;
  vertical-align: text-bottom;
}

.markdown-body h1:hover .anchor .octicon-link:before,
.markdown-body h2:hover .anchor .octicon-link:before,
.markdown-body h3:hover .anchor .octicon-link:before,
.markdown-body h4:hover .anchor .octicon-link:before,
.markdown-body h5:hover .anchor .octicon-link:before,
.markdown-body h6:hover .anchor .octicon-link:before {
  width: 16px;
  height: 16px;
  content: ' ';
  display: inline-block;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
  mask-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' version='1.1' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg>");
}

.markdown-body details,
.markdown-body figcaption,
.markdown-body figure {
  display: block;
}

.markdown-body summary {
  display: list-item;
}

.markdown-body [hidden] {
  display: none !important;
}

.markdown-body a {
  background-color: rgba(0,0,0,0);
  color: var(--fgColor-accent);
  text-decoration: none;
}

.markdown-body abbr[title] {
  border-bottom: none;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

.markdown-body b,
.markdown-body strong {
  font-weight: var(--base-text-weight-semibold, 600);
}

.markdown-body dfn {
  font-style: italic;
}

.markdown-body h1 {
  margin: .67em 0;
  font-weight: var(--base-text-weight-semibold, 600);
  padding-bottom: .3em;
  font-size: 2em;
  border-bottom: 1px solid var(--borderColor-muted);
}

.markdown-body mark {
  background-color: var(--bgColor-attention-muted);
  color: var(--fgColor-default);
}

.markdown-body small {
  font-size: 90%;
}

.markdown-body sub,
.markdown-body sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

.markdown-body sub {
  bottom: -0.25em;
}

.markdown-body sup {
  top: -0.5em;
}

.markdown-body img {
  border-style: none;
  max-width: 100%;
  box-sizing: content-box;
}

.markdown-body code,
.markdown-body kbd,
.markdown-body pre,
.markdown-body samp {
  font-family: monospace;
  font-size: 1em;
}

.markdown-body figure {
  margin: 1em var(--base-size-40);
}

.markdown-body hr {
  box-sizing: content-box;
  overflow: hidden;
  background: rgba(0,0,0,0);
  border-bottom: 1px solid var(--borderColor-muted);
  height: .25em;
  padding: 0;
  margin: var(--base-size-24) 0;
  background-color: var(--borderColor-default);
  border: 0;
}

.markdown-body input {
  font: inherit;
  margin: 0;
  overflow: visible;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

.markdown-body [type=button],
.markdown-body [type=reset],
.markdown-body [type=submit] {
  -webkit-appearance: button;
  appearance: button;
}

.markdown-body [type=checkbox],
.markdown-body [type=radio] {
  box-sizing: border-box;
  padding: 0;
}

.markdown-body [type=number]::-webkit-inner-spin-button,
.markdown-body [type=number]::-webkit-outer-spin-button {
  height: auto;
}

.markdown-body [type=search]::-webkit-search-cancel-button,
.markdown-body [type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
  appearance: none;
}

.markdown-body ::-webkit-input-placeholder {
  color: inherit;
  opacity: .54;
}

.markdown-body ::-webkit-file-upload-button {
  -webkit-appearance: button;
  appearance: button;
  font: inherit;
}

.markdown-body a:hover {
  text-decoration: underline;
}

.markdown-body ::placeholder {
  color: var(--fgColor-muted);
  opacity: 1;
}

.markdown-body hr::before {
  display: table;
  content: "";
}

.markdown-body hr::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body table {
  border-spacing: 0;
  border-collapse: collapse;
  display: block;
  width: max-content;
  max-width: 100%;
  overflow: auto;
  font-variant: tabular-nums;
}

.markdown-body td,
.markdown-body th {
  padding: 0;
}

.markdown-body details summary {
  cursor: pointer;
}

.markdown-body a:focus,
.markdown-body [role=button]:focus,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=checkbox]:focus {
  outline: 2px solid var(--focus-outlineColor);
  outline-offset: -2px;
  box-shadow: none;
}

.markdown-body a:focus:not(:focus-visible),
.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body input[type=radio]:focus:not(:focus-visible),
.markdown-body input[type=checkbox]:focus:not(:focus-visible) {
  outline: solid 1px rgba(0,0,0,0);
}

.markdown-body a:focus-visible,
.markdown-body [role=button]:focus-visible,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus-visible {
  outline: 2px solid var(--focus-outlineColor);
  outline-offset: -2px;
  box-shadow: none;
}

.markdown-body a:not([class]):focus,
.markdown-body a:not([class]):focus-visible,
.markdown-body input[type=radio]:focus,
.markdown-body input[type=radio]:focus-visible,
.markdown-body input[type=checkbox]:focus,
.markdown-body input[type=checkbox]:focus-visible {
  outline-offset: 0;
}

.markdown-body kbd {
  display: inline-block;
  padding: var(--base-size-4);
  font: 11px var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);
  line-height: 10px;
  color: var(--fgColor-default);
  vertical-align: middle;
  background-color: var(--bgColor-muted);
  border: solid 1px var(--borderColor-neutral-muted);
  border-bottom-color: var(--borderColor-neutral-muted);
  border-radius: 6px;
  box-shadow: inset 0 -1px 0 var(--borderColor-neutral-muted);
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
  margin-top: var(--base-size-24);
  margin-bottom: var(--base-size-16);
  font-weight: var(--base-text-weight-semibold, 600);
  line-height: 1.25;
}

.markdown-body h2 {
  font-weight: var(--base-text-weight-semibold, 600);
  padding-bottom: .3em;
  font-size: 1.5em;
  border-bottom: 1px solid var(--borderColor-muted);
}

.markdown-body h3 {
  font-weight: var(--base-text-weight-semibold, 600);
  font-size: 1.25em;
}

.markdown-body h4 {
  font-weight: var(--base-text-weight-semibold, 600);
  font-size: 1em;
}

.markdown-body h5 {
  font-weight: var(--base-text-weight-semibold, 600);
  font-size: .875em;
}

.markdown-body h6 {
  font-weight: var(--base-text-weight-semibold, 600);
  font-size: .85em;
  color: var(--fgColor-muted);
}

.markdown-body p {
  margin-top: 0;
  margin-bottom: 10px;
}

.markdown-body blockquote {
  margin: 0;
  padding: 0 1em;
  color: var(--fgColor-muted);
  border-left: .25em solid var(--borderColor-default);
}

.markdown-body ul,
.markdown-body ol {
  margin-top: 0;
  margin-bottom: 0;
  padding-left: 2em;
}

.markdown-body ol ol,
.markdown-body ul ol {
  list-style-type: lower-roman;
}

.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
  list-style-type: lower-alpha;
}

.markdown-body dd {
  margin-left: 0;
}

.markdown-body tt,
.markdown-body code,
.markdown-body samp {
  font-family: var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);
  font-size: 12px;
}

.markdown-body pre {
  margin-top: 0;
  margin-bottom: 0;
  font-family: var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace);
  font-size: 12px;
  word-wrap: normal;
}

.markdown-body .octicon {
  display: inline-block;
  overflow: visible !important;
  vertical-align: text-bottom;
  fill: currentColor;
}

.markdown-body input::-webkit-outer-spin-button,
.markdown-body input::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
}

.markdown-body .mr-2 {
  margin-right: var(--base-size-8, 8px) !important;
}

.markdown-body::before {
  display: table;
  content: "";
}

.markdown-body::after {
  display: table;
  clear: both;
  content: "";
}

.markdown-body>*:first-child {
  margin-top: 0 !important;
}

.markdown-body>*:last-child {
  margin-bottom: 0 !important;
}

.markdown-body a:not([href]) {
  color: inherit;
  text-decoration: none;
}

.markdown-body .absent {
  color: var(--fgColor-danger);
}

.markdown-body .anchor {
  float: left;
  padding-right: var(--base-size-4);
  margin-left: -20px;
  line-height: 1;
}

.markdown-body .anchor:focus {
  outline: none;
}

.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre,
.markdown-body details {
  margin-top: 0;
  margin-bottom: var(--base-size-16);
}

.markdown-body blockquote>:first-child {
  margin-top: 0;
}

.markdown-body blockquote>:last-child {
  margin-bottom: 0;
}

.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
  color: var(--fgColor-default);
  vertical-align: middle;
  visibility: hidden;
}

.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
  text-decoration: none;
}

.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
  visibility: visible;
}

.markdown-body h1 tt,
.markdown-body h1 code,
.markdown-body h2 tt,
.markdown-body h2 code,
.markdown-body h3 tt,
.markdown-body h3 code,
.markdown-body h4 tt,
.markdown-body h4 code,
.markdown-body h5 tt,
.markdown-body h5 code,
.markdown-body h6 tt,
.markdown-body h6 code {
  padding: 0 .2em;
  font-size: inherit;
}

.markdown-body summary h1,
.markdown-body summary h2,
.markdown-body summary h3,
.markdown-body summary h4,
.markdown-body summary h5,
.markdown-body summary h6 {
  display: inline-block;
}

.markdown-body summary h1 .anchor,
.markdown-body summary h2 .anchor,
.markdown-body summary h3 .anchor,
.markdown-body summary h4 .anchor,
.markdown-body summary h5 .anchor,
.markdown-body summary h6 .anchor {
  margin-left: -40px;
}

.markdown-body summary h1,
.markdown-body summary h2 {
  padding-bottom: 0;
  border-bottom: 0;
}

.markdown-body ul.no-list,
.markdown-body ol.no-list {
  padding: 0;
  list-style-type: none;
}

.markdown-body ol[type="a s"] {
  list-style-type: lower-alpha;
}

.markdown-body ol[type="A s"] {
  list-style-type: upper-alpha;
}

.markdown-body ol[type="i s"] {
  list-style-type: lower-roman;
}

.markdown-body ol[type="I s"] {
  list-style-type: upper-roman;
}

.markdown-body ol[type="1"] {
  list-style-type: decimal;
}

.markdown-body div>ol:not([type]) {
  list-style-type: decimal;
}

.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
  margin-top: 0;
  margin-bottom: 0;
}

.markdown-body li>p {
  margin-top: var(--base-size-16);
}

.markdown-body li+li {
  margin-top: .25em;
}

.markdown-body dl {
  padding: 0;
}

.markdown-body dl dt {
  padding: 0;
  margin-top: var(--base-size-16);
  font-size: 1em;
  font-style: italic;
  font-weight: var(--base-text-weight-semibold, 600);
}

.markdown-body dl dd {
  padding: 0 var(--base-size-16);
  margin-bottom: var(--base-size-16);
}

.markdown-body table th {
  font-weight: var(--base-text-weight-semibold, 600);
}

.markdown-body table th,
.markdown-body table td {
  padding: 6px 13px;
  border: 1px solid var(--borderColor-default);
}

.markdown-body table td>:last-child {
  margin-bottom: 0;
}

.markdown-body table tr {
  background-color: var(--bgColor-default);
  border-top: 1px solid var(--borderColor-muted);
}

.markdown-body table tr:nth-child(2n) {
  background-color: var(--bgColor-muted);
}

.markdown-body table img {
  background-color: rgba(0,0,0,0);
}

.markdown-body img[align=right] {
  padding-left: 20px;
}

.markdown-body img[align=left] {
  padding-right: 20px;
}

.markdown-body .emoji {
  max-width: none;
  vertical-align: text-top;
  background-color: rgba(0,0,0,0);
}

.markdown-body span.frame {
  display: block;
  overflow: hidden;
}

.markdown-body span.frame>span {
  display: block;
  float: left;
  width: auto;
  padding: 7px;
  margin: 13px 0 0;
  overflow: hidden;
  border: 1px solid var(--borderColor-default);
}

.markdown-body span.frame span img {
  display: block;
  float: left;
}

.markdown-body span.frame span span {
  display: block;
  padding: 5px 0 0;
  clear: both;
  color: var(--fgColor-default);
}

.markdown-body span.align-center {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-center>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: center;
}

.markdown-body span.align-center span img {
  margin: 0 auto;
  text-align: center;
}

.markdown-body span.align-right {
  display: block;
  overflow: hidden;
  clear: both;
}

.markdown-body span.align-right>span {
  display: block;
  margin: 13px 0 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body span.align-right span img {
  margin: 0;
  text-align: right;
}

.markdown-body span.float-left {
  display: block;
  float: left;
  margin-right: 13px;
  overflow: hidden;
}

.markdown-body span.float-left span {
  margin: 13px 0 0;
}

.markdown-body span.float-right {
  display: block;
  float: right;
  margin-left: 13px;
  overflow: hidden;
}

.markdown-body span.float-right>span {
  display: block;
  margin: 13px auto 0;
  overflow: hidden;
  text-align: right;
}

.markdown-body code,
.markdown-body tt {
  padding: .2em .4em;
  margin: 0;
  font-size: 85%;
  white-space: break-spaces;
  background-color: var(--bgColor-neutral-muted);
  border-radius: 6px;
}

.markdown-body code br,
.markdown-body tt br {
  display: none;
}

.markdown-body del code {
  text-decoration: inherit;
}

.markdown-body samp {
  font-size: 85%;
}

.markdown-body pre code {
  font-size: 100%;
}

.markdown-body pre>code {
  padding: 0;
  margin: 0;
  word-break: normal;
  white-space: pre;
  background: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .highlight {
  margin-bottom: var(--base-size-16);
}

.markdown-body .highlight pre {
  margin-bottom: 0;
  word-break: normal;
}

.markdown-body .highlight pre,
.markdown-body pre {
  padding: var(--base-size-16);
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  color: var(--fgColor-default);
  background-color: var(--bgColor-muted);
  border-radius: 6px;
}

.markdown-body pre code,
.markdown-body pre tt {
  display: inline;
  padding: 0;
  margin: 0;
  overflow: visible;
  line-height: inherit;
  word-wrap: normal;
  background-color: rgba(0,0,0,0);
  border: 0;
}

.markdown-body .csv-data td,
.markdown-body .csv-data th {
  padding: 5px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1;
  text-align: left;
  white-space: nowrap;
}

.markdown-body .csv-data .blob-num {
  padding: 10px var(--base-size-8) 9px;
  text-align: right;
  background: var(--bgColor-default);
  border: 0;
}

.markdown-body .csv-data tr {
  border-top: 0;
}

.markdown-body .csv-data th {
  font-weight: var(--base-text-weight-semibold, 600);
  background: var(--bgColor-muted);
  border-top: 0;
}

.markdown-body [data-footnote-ref]::before {
  content: "[";
}

.markdown-body [data-footnote-ref]::after {
  content: "]";
}

.markdown-body .footnotes {
  font-size: 12px;
  color: var(--fgColor-muted);
  border-top: 1px solid var(--borderColor-default);
}

.markdown-body .footnotes ol {
  padding-left: var(--base-size-16);
}

.markdown-body .footnotes ol ul {
  display: inline-block;
  padding-left: var(--base-size-16);
  margin-top: var(--base-size-16);
}

.markdown-body .footnotes li {
  position: relative;
}

.markdown-body .footnotes li:target::before {
  position: absolute;
  top: calc(var(--base-size-8)*-1);
  right: calc(var(--base-size-8)*-1);
  bottom: calc(var(--base-size-8)*-1);
  left: calc(var(--base-size-24)*-1);
  pointer-events: none;
  content: "";
  border: 2px solid var(--borderColor-accent-emphasis);
  border-radius: 6px;
}

.markdown-body .footnotes li:target {
  color: var(--fgColor-default);
}

.markdown-body .footnotes .data-footnote-backref g-emoji {
  font-family: monospace;
}

.markdown-body .pl-c {
  color: var(--color-prettylights-syntax-comment);
}

.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
  color: var(--color-prettylights-syntax-constant);
}

.markdown-body .pl-e,
.markdown-body .pl-en {
  color: var(--color-prettylights-syntax-entity);
}

.markdown-body .pl-smi,
.markdown-body .pl-s .pl-s1 {
  color: var(--color-prettylights-syntax-storage-modifier-import);
}

.markdown-body .pl-ent {
  color: var(--color-prettylights-syntax-entity-tag);
}

.markdown-body .pl-k {
  color: var(--color-prettylights-syntax-keyword);
}

.markdown-body .pl-s,
.markdown-body .pl-pds,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sre,
.markdown-body .pl-sr .pl-sra {
  color: var(--color-prettylights-syntax-string);
}

.markdown-body .pl-v,
.markdown-body .pl-smw {
  color: var(--color-prettylights-syntax-variable);
}

.markdown-body .pl-bu {
  color: var(--color-prettylights-syntax-brackethighlighter-unmatched);
}

.markdown-body .pl-ii {
  color: var(--color-prettylights-syntax-invalid-illegal-text);
  background-color: var(--color-prettylights-syntax-invalid-illegal-bg);
}

.markdown-body .pl-c2 {
  color: var(--color-prettylights-syntax-carriage-return-text);
  background-color: var(--color-prettylights-syntax-carriage-return-bg);
}

.markdown-body .pl-sr .pl-cce {
  font-weight: bold;
  color: var(--color-prettylights-syntax-string-regexp);
}

.markdown-body .pl-ml {
  color: var(--color-prettylights-syntax-markup-list);
}

.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
  font-weight: bold;
  color: var(--color-prettylights-syntax-markup-heading);
}

.markdown-body .pl-mi {
  font-style: italic;
  color: var(--color-prettylights-syntax-markup-italic);
}

.markdown-body .pl-mb {
  font-weight: bold;
  color: var(--color-prettylights-syntax-markup-bold);
}

.markdown-body .pl-md {
  color: var(--color-prettylights-syntax-markup-deleted-text);
  background-color: var(--color-prettylights-syntax-markup-deleted-bg);
}

.markdown-body .pl-mi1 {
  color: var(--color-prettylights-syntax-markup-inserted-text);
  background-color: var(--color-prettylights-syntax-markup-inserted-bg);
}

.markdown-body .pl-mc {
  color: var(--color-prettylights-syntax-markup-changed-text);
  background-color: var(--color-prettylights-syntax-markup-changed-bg);
}

.markdown-body .pl-mi2 {
  color: var(--color-prettylights-syntax-markup-ignored-text);
  background-color: var(--color-prettylights-syntax-markup-ignored-bg);
}

.markdown-body .pl-mdr {
  font-weight: bold;
  color: var(--color-prettylights-syntax-meta-diff-range);
}

.markdown-body .pl-ba {
  color: var(--color-prettylights-syntax-brackethighlighter-angle);
}

.markdown-body .pl-sg {
  color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);
}

.markdown-body .pl-corl {
  text-decoration: underline;
  color: var(--color-prettylights-syntax-constant-other-reference-link);
}

.markdown-body [role=button]:focus:not(:focus-visible),
.markdown-body [role=tabpanel][tabindex="0"]:focus:not(:focus-visible),
.markdown-body button:focus:not(:focus-visible),
.markdown-body summary:focus:not(:focus-visible),
.markdown-body a:focus:not(:focus-visible) {
  outline: none;
  box-shadow: none;
}

.markdown-body [tabindex="0"]:focus:not(:focus-visible),
.markdown-body details-dialog:focus:not(:focus-visible) {
  outline: none;
}

.markdown-body g-emoji {
  display: inline-block;
  min-width: 1ch;
  font-family: "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  font-size: 1em;
  font-style: normal !important;
  font-weight: var(--base-text-weight-normal, 400);
  line-height: 1;
  vertical-align: -0.075em;
}

.markdown-body g-emoji img {
  width: 1em;
  height: 1em;
}

.markdown-body a:has(>p,>div,>pre,>blockquote) {
  display: block;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):not(:has(.snippet-clipboard-content,>pre)) {
  width: fit-content;
}

.markdown-body a:has(>p,>div,>pre,>blockquote):has(.snippet-clipboard-content,>pre):focus-visible {
  outline: 2px solid var(--focus-outlineColor);
  outline-offset: 2px;
}

.markdown-body .task-list-item {
  list-style-type: none;
}

.markdown-body .task-list-item label {
  font-weight: var(--base-text-weight-normal, 400);
}

.markdown-body .task-list-item.enabled label {
  cursor: pointer;
}

.markdown-body .task-list-item+.task-list-item {
  margin-top: var(--base-size-4);
}

.markdown-body .task-list-item .handle {
  display: none;
}

.markdown-body .task-list-item-checkbox {
  margin: 0 .2em .25em -1.4em;
  vertical-align: middle;
}

.markdown-body ul:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body ol:dir(rtl) .task-list-item-checkbox {
  margin: 0 -1.6em .25em .2em;
}

.markdown-body .contains-task-list:hover .task-list-item-convert-container,
.markdown-body .contains-task-list:focus-within .task-list-item-convert-container {
  display: block;
  width: auto;
  height: 24px;
  overflow: visible;
  clip-path: none;
}

.markdown-body ::-webkit-calendar-picker-indicator {
  filter: invert(50%);
}

.markdown-body .markdown-alert {
  padding: var(--base-size-8) var(--base-size-16);
  margin-bottom: var(--base-size-16);
  color: inherit;
  border-left: .25em solid var(--borderColor-default);
}

.markdown-body .markdown-alert>:first-child {
  margin-top: 0;
}

.markdown-body .markdown-alert>:last-child {
  margin-bottom: 0;
}

.markdown-body .markdown-alert .markdown-alert-title {
  display: flex;
  font-weight: var(--base-text-weight-medium, 500);
  align-items: center;
  line-height: 1;
}

.markdown-body .markdown-alert.markdown-alert-note {
  border-left-color: var(--borderColor-accent-emphasis);
}

.markdown-body .markdown-alert.markdown-alert-note .markdown-alert-title {
  color: var(--fgColor-accent);
}

.markdown-body .markdown-alert.markdown-alert-important {
  border-left-color: var(--borderColor-done-emphasis);
}

.markdown-body .markdown-alert.markdown-alert-important .markdown-alert-title {
  color: var(--fgColor-done);
}

.markdown-body .markdown-alert.markdown-alert-warning {
  border-left-color: var(--borderColor-attention-emphasis);
}

.markdown-body .markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: var(--fgColor-attention);
}

.markdown-body .markdown-alert.markdown-alert-tip {
  border-left-color: var(--borderColor-success-emphasis);
}

.markdown-body .markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: var(--fgColor-success);
}

.markdown-body .markdown-alert.markdown-alert-caution {
  border-left-color: var(--borderColor-danger-emphasis);
}

.markdown-body .markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: var(--fgColor-danger);
}

.markdown-body>*:first-child>.heading-element:first-child {
  margin-top: 0 !important;
}

.markdown-body .highlight pre:has(+.zeroclipboard-container) {
  min-height: 52px;
}


.markdown-alert {
  padding: 0.5rem 1rem;
  margin-bottom: 16px;
  color: inherit;
  border-left: .25em solid #888;
}

.markdown-alert>:first-child {
  margin-top: 0
}

.markdown-alert>:last-child {
  margin-bottom: 0
}

.markdown-alert .markdown-alert-title {
  display: flex;
  font-weight: 500;
  align-items: center;
  line-height: 1
}

.markdown-alert .markdown-alert-title .octicon {
  margin-right: 0.5rem;
  display: inline-block;
  overflow: visible !important;
  vertical-align: text-bottom;
  fill: currentColor;
}

.markdown-alert.markdown-alert-note {
  border-left-color: var(--color-note);
}

.markdown-alert.markdown-alert-note .markdown-alert-title {
  color: var(--color-note);
}

.markdown-alert.markdown-alert-important {
  border-left-color: var(--color-important);
}

.markdown-alert.markdown-alert-important .markdown-alert-title {
  color: var(--color-important);
}

.markdown-alert.markdown-alert-warning {
  border-left-color: var(--color-warning);
}

.markdown-alert.markdown-alert-warning .markdown-alert-title {
  color: var(--color-warning);
}

.markdown-alert.markdown-alert-tip {
  border-left-color: var(--color-tip);
}

.markdown-alert.markdown-alert-tip .markdown-alert-title {
  color: var(--color-tip);
}

.markdown-alert.markdown-alert-caution {
  border-left-color: var(--color-caution);
}

.markdown-alert.markdown-alert-caution .markdown-alert-title {
  color: var(--color-caution);
}

:root {
  --color-note: #0969da;
  --color-tip: #1a7f37;
  --color-warning: #9a6700;
  --color-severe: #bc4c00;
  --color-caution: #d1242f;
  --color-important: #8250df;
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-note: #2f81f7;
    --color-tip: #3fb950;
    --color-warning: #d29922;
    --color-severe: #db6d28;
    --color-caution: #f85149;
    --color-important: #a371f7;
  }
}

/* ===== RUN · 润 — Apple-style theme =====
   Spec: emilkowalski/skills (MIT) — apple-design, emil-design-eng, animate, ui-cheatsheet.
   Type: system SF / PingFang SC, size-specific tracking and leading, rem-based so it scales with the user's text size.
   Material: translucent nav and menu (blur + saturate), solid tiles, no light-on-light glass stacking.
   Motion: press feedback only (scale .97–.98, 160ms strong ease-out), hover gated to fine pointers,
   one staggered hero entrance on the home page, transform/opacity only, reduced motion/transparency/contrast aware. */

:root{
  color-scheme: light dark;
  --font-text: "SF Pro SC", "SF Pro Text", "SF Pro Icons", -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Noto Sans CJK SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-display: "SF Pro SC", "SF Pro Display", "SF Pro Icons", -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Noto Sans CJK SC", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;

  --bg: #ffffff;
  --bg-alt: #f5f5f7;
  --tile: #f5f5f7;
  --tile-on-alt: #ffffff;
  --tile-hover: #ececf0;
  --text: #1d1d1f;
  --text-2: #6e6e73;
  --text-3: #86868b;
  --hairline: rgba(0,0,0,.1);
  --hairline-2: rgba(0,0,0,.06);
  --link: #0066cc;
  --btn: #0071e3;
  --btn-hover: #0077ed;
  --btn-text: #ffffff;
  --nav-bg: rgba(255,255,255,.72);
  --menu-bg: #fff;
  --tile-shadow: 0 4px 24px rgba(0,0,0,.08);
  --green: #248a3d; --blue: #0066cc; --purple: #8944ab; --teal: #0c7c84; --orange: #b64400; --red: #d70015; --grey: #6e6e73;

  --r-tile: 1.125rem;   /* 18px */
  --r-sm: .75rem;
  --r-pill: 980px;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --dur-press: 160ms;
  --dur-ui: 200ms;
  --nav-h: 3rem;
  --measure: 42rem;     /* ~ 40 CJK characters per line */
  --page: 61.25rem;     /* 980px — apple.com content width */
  --page-wide: 75rem;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg: #000000;
    --bg-alt: #101012;
    --tile: #1d1d1f;
    --tile-on-alt: #1d1d1f;
    --tile-hover: #262628;
    --text: #f5f5f7;
    --text-2: #a1a1a6;
    --text-3: #86868b;
    --hairline: rgba(255,255,255,.16);
    --hairline-2: rgba(255,255,255,.08);
    --link: #2997ff;
    --btn: #0071e3;
    --btn-hover: #147ce5;
    --nav-bg: rgba(22,22,23,.72);
    --menu-bg: #161617;
    --tile-shadow: 0 4px 24px rgba(0,0,0,.5);
    --green: #30d158; --blue: #2997ff; --purple: #bf5af2; --teal: #40c8e0; --orange: #ff9f0a; --red: #ff453a; --grey: #a1a1a6;
  }
}

/* ---------- base ---------- */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top: calc(var(--nav-h) + 1.25rem); }
body{ margin:0; background:var(--bg); color:var(--text); font-family:var(--font-text);
  font-size:1.0625rem; line-height:1.47; letter-spacing:0;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; font-optical-sizing:auto;
  transition: background-color 300ms ease, color 300ms ease; }
.skip{ position:absolute; left:-999px; top:.5rem; z-index:100; padding:.5rem 1rem; border-radius:var(--r-pill); background:var(--btn); color:#fff; }
.skip:focus{ left:1rem; }
:focus-visible{ outline:2px solid var(--btn); outline-offset:2px; border-radius:4px; }

/* ---------- global nav: translucent material, content scrolls under it ---------- */
.gnav{ position:sticky; top:0; z-index:50; height:var(--nav-h); background:var(--nav-bg);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px); }
/* scroll edge effect: the hairline only appears once content is actually under the bar */
@supports (animation-timeline: scroll()){
  .gnav{ animation: nav-edge linear both; animation-timeline: scroll(root); animation-range: 0 3rem; }
  @keyframes nav-edge{ from{ box-shadow: 0 1px 0 transparent; } to{ box-shadow: 0 1px 0 var(--hairline); } }
}
@supports not (animation-timeline: scroll()){ .gnav{ box-shadow: 0 1px 0 var(--hairline-2); } }
.gnav-in{ max-width:var(--page); height:100%; margin:0 auto; padding:0 1.375rem; box-sizing:border-box;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.brand{ flex-shrink:0; display:inline-flex; align-items:center; gap:.5rem; color:var(--text); text-decoration:none;
  font-family:var(--font-display); font-size:1.0625rem; font-weight:600; letter-spacing:-0.01em;
  transition: transform var(--dur-press) var(--ease-out); }
.brand:active{ transform:scale(.97); }
.brand-mark{ display:block; width:1.5rem; height:1.5rem; flex-shrink:0; border-radius:.34rem;
  box-shadow: 0 1px 2px rgb(0 60 140 / .18); }
.brand-word{ display:inline-flex; align-items:baseline; line-height:1; }
.brand-dot{ margin:0 .2em; color:var(--text-3); }
.gnav-links{ display:flex; gap:.25rem; margin:0; padding:0; list-style:none; }
.gnav-links a, .menu-panel a{ color:var(--text); text-decoration:none; }
.gnav-links a{ display:block; padding:.375rem .75rem; border-radius:var(--r-pill); font-size:.75rem; letter-spacing:.01em;
  opacity:.8; transition: opacity var(--dur-ui) ease, transform var(--dur-press) var(--ease-out); }
.gnav-links a[aria-current]{ opacity:1; font-weight:600; }
.gnav-links a:active{ transform:scale(.97); }
@media (hover:hover) and (pointer:fine){ .gnav-links a:hover{ opacity:1; } }

.menu{ display:none; position:static; }
.menu summary{ list-style:none; cursor:pointer; width:2.75rem; height:2.75rem; margin-right:-.75rem;
  display:grid; place-items:center; border-radius:var(--r-pill); transition: transform var(--dur-press) var(--ease-out); }
.menu summary::-webkit-details-marker{ display:none; }
.menu summary:active{ transform:scale(.94); }
.burger, .burger::before{ display:block; width:1.0625rem; height:1.5px; background:var(--text); border-radius:1px; content:"";
  transition: transform var(--dur-ui) var(--ease-out); }
.burger{ position:relative; transform:translateY(-3px); }
.burger::before{ position:absolute; top:6px; }
.menu[open] .burger{ transform:translateY(0) rotate(45deg); }
.menu[open] .burger::before{ transform:translateY(-6px) rotate(-90deg); }
.menu-panel{ position:absolute; left:0; right:0; top:var(--nav-h); height:calc(100vh - var(--nav-h)); height:calc(100dvh - var(--nav-h)); box-sizing:border-box; overflow:auto; padding:.5rem 2rem 2.5rem;
  background:var(--menu-bg); /* opaque: a nested backdrop-filter under the blurred nav cannot sample the page */
  box-shadow: 0 24px 48px rgba(0,0,0,.12); transform-origin: top center;
  transition: opacity 240ms var(--ease-out), transform 240ms var(--ease-out); }
@starting-style{ .menu[open] .menu-panel{ opacity:0; transform:translateY(-.5rem); } }
.menu-panel ul{ margin:0; padding:0; list-style:none; }
.menu-panel a{ display:block; padding:.5rem 0; font-family:var(--font-display); font-size:1.75rem; font-weight:600;
  line-height:1.14; letter-spacing:-0.015em; transition: transform var(--dur-press) var(--ease-out); transform-origin:left center; }
.menu-panel a:active{ transform:scale(.97); }
.menu-panel a[aria-current]{ color:var(--text-2); }

@media (prefers-reduced-transparency: reduce){
  .gnav, .menu-panel{ background:var(--bg); -webkit-backdrop-filter:none; backdrop-filter:none; }
}
@media (prefers-contrast: more){
  .gnav, .menu-panel{ background:var(--bg); -webkit-backdrop-filter:none; backdrop-filter:none; box-shadow: 0 1px 0 var(--text); animation:none; }
  :root{ --hairline: currentColor; --text-2: var(--text); }
}

/* ---------- markdown body: typography system ---------- */
.markdown-body{
  --fgColor-default: var(--text); --fgColor-muted: var(--text-2); --fgColor-accent: var(--link);
  --bgColor-default: var(--bg); --bgColor-muted: var(--tile); --borderColor-default: var(--hairline); --borderColor-muted: var(--hairline-2);
  --fontStack-sansSerif: var(--font-text);
  font-family:var(--font-text); font-size:1.0625rem; line-height:1.76; letter-spacing:0; color:var(--text); background:transparent;
  word-break: normal; overflow-wrap: anywhere;
}
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5{
  font-family:var(--font-display); color:var(--text); border:0; padding:0; }
.markdown-body h1{ font-size:clamp(2.5rem, 1.6rem + 3vw, 3.5rem); line-height:1.07; letter-spacing:-0.02em; font-weight:700; margin:0 0 .5em; }
.markdown-body h2{ font-size:clamp(1.75rem, 1.4rem + 1.2vw, 2rem); line-height:1.125; letter-spacing:-0.012em; font-weight:700; margin:3.5rem 0 1.25rem; }
.markdown-body h3{ font-size:1.5rem; line-height:1.17; letter-spacing:-0.006em; font-weight:600; margin:2.25rem 0 .875rem; }
.markdown-body h4{ font-size:1.1875rem; line-height:1.21; letter-spacing:0; font-weight:600; margin:1.75rem 0 .625rem; }
.markdown-body .header-anchor{ color:inherit; text-decoration:none; }
.markdown-body .h-ico{ margin-right:.35em; font-size:.82em; vertical-align:.04em; }
.markdown-body p, .markdown-body ul, .markdown-body ol, .markdown-body blockquote, .markdown-body details{ margin:0 0 1.1em; }
.markdown-body a{ color:var(--link); text-decoration:none; }
@media (hover:hover) and (pointer:fine){ .markdown-body a:hover{ text-decoration:underline; text-underline-offset:.18em; } }
.markdown-body strong, .markdown-body b{ font-weight:600; }
.markdown-body sub{ font-size:.75rem; line-height:1.5; letter-spacing:.01em; color:var(--text-2); vertical-align:baseline; }
.markdown-body hr{ height:0; border:0; margin:3.5rem 0; background:none; border-top:1px solid var(--hairline-2); }
.markdown-body img{ background:transparent; max-width:100%; height:auto; }
.markdown-body p[align="center"] img{ border-radius:var(--r-tile); }
.markdown-body ul, .markdown-body ol{ padding-left:1.4em; }
.markdown-body li + li{ margin-top:.3em; }
.markdown-body blockquote{ color:var(--text); border:0; padding:0 0 0 1.25rem; position:relative; font-size:1.1875rem; line-height:1.58; font-weight:600; letter-spacing:-0.003em; }
.markdown-body blockquote::before{ content:""; position:absolute; left:0; top:.2em; bottom:.2em; width:3px; border-radius:3px; background:var(--hairline); }
.markdown-body code{ font-family:"SF Mono", ui-monospace, Menlo, monospace; font-size:.85em; padding:.15em .4em; border-radius:6px; background:var(--tile); }
.markdown-body pre{ background:var(--tile); border-radius:var(--r-tile); padding:1.25rem 1.5rem; font-size:.8125rem; line-height:1.6; }
.markdown-body pre code{ background:none; padding:0; }
.markdown-body li.task{ list-style:none; position:relative; }
.markdown-body ul:has(> li.task){ padding-left:1.9rem; }
.markdown-body .tick{ font-size:0; position:absolute; left:-1.75rem; top:.42rem; width:1.05rem; height:1.05rem; border-radius:50%;
  box-shadow: inset 0 0 0 1.5px var(--text-3); }
.markdown-body details{ border-radius:var(--r-tile); background:var(--tile); padding:0 1.5rem; }
.markdown-body details > summary{ cursor:pointer; padding:1.1rem 0; list-style:none; font-weight:600; }
.markdown-body details > summary::-webkit-details-marker{ display:none; }
.markdown-body details > summary::after{ content:"+"; float:right; font-weight:400; font-size:1.4em; line-height:1; color:var(--text-2);
  transition: transform var(--dur-ui) var(--ease-out); }
.markdown-body details[open] > summary::after{ transform:rotate(45deg); }
.markdown-body details[open]{ padding-bottom:1rem; }

/* badges (were shields.io images) */
.badge{ display:inline-flex; align-items:baseline; gap:.4em; margin:.15rem .1rem; padding:.25rem .7rem; border-radius:var(--r-pill);
  background:var(--tile); font-size:.75rem; line-height:1.35; letter-spacing:.01em; white-space:nowrap; vertical-align:middle; }
.badge-l{ color:var(--text-2); }
.badge-v{ font-weight:600; color:var(--tone, var(--text)); }
.badge[data-tone="green"]{ --tone:var(--green); } .badge[data-tone="blue"]{ --tone:var(--blue); }
.badge[data-tone="purple"]{ --tone:var(--purple); } .badge[data-tone="teal"]{ --tone:var(--teal); }
.badge[data-tone="orange"]{ --tone:var(--orange); } .badge[data-tone="red"]{ --tone:var(--red); }
.badge[data-tone="grey"]{ --tone:var(--text); }
a .badge{ color:var(--link); }

/* alerts: tinted panels, no stripe */
.markdown-body .markdown-alert{ border:0; border-radius:var(--r-tile); padding:1.125rem 1.375rem; margin:1.75rem 0; background:var(--tile);
  font-size:1rem; line-height:1.7; }
.markdown-body .markdown-alert .markdown-alert-title{ font-weight:600; font-size:.875rem; letter-spacing:.01em; margin-bottom:.35rem; }
.markdown-body .markdown-alert > :last-child{ margin-bottom:0; }
.markdown-body .markdown-alert-caution{ background:color-mix(in srgb, var(--red) 8%, var(--bg)); }
.markdown-body .markdown-alert-warning{ background:color-mix(in srgb, var(--orange) 9%, var(--bg)); }
.markdown-body .markdown-alert-tip{ background:color-mix(in srgb, var(--green) 8%, var(--bg)); }
.markdown-body .markdown-alert-note, .markdown-body .markdown-alert-important{ background:color-mix(in srgb, var(--blue) 7%, var(--bg)); }

/* data tables: hairline rows, quiet caption-style header, tabular numbers, edge-to-edge scroll */
.markdown-body .table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; margin:1.75rem 0; overscroll-behavior-x:contain; }
.markdown-body .table-wrap table{ display:table; width:100%; margin:0; border-collapse:collapse; font-size:.9375rem; line-height:1.55;
  font-variant-numeric: tabular-nums; }
.markdown-body .table-wrap tr{ background:transparent !important; border:0; }
.markdown-body .table-wrap th, .markdown-body .table-wrap td{ border:0; border-bottom:1px solid var(--hairline-2); padding:.875rem 1rem .875rem 0; vertical-align:top; }
.markdown-body .table-wrap th:last-child, .markdown-body .table-wrap td:last-child{ padding-right:0; }
.markdown-body .table-wrap thead th{ font-size:.75rem; font-weight:600; letter-spacing:.02em; color:var(--text-2); white-space:nowrap;
  border-bottom:1px solid var(--hairline); padding-top:0; text-align:left; }
.markdown-body .table-wrap thead th[style*="center"]{ text-align:center; }
.markdown-body .table-wrap td:first-child{ font-weight:600; }

/* layout tables -> tiles */
.markdown-body table.cards{ display:block; width:100%; border:0; margin:1.75rem 0; overflow:visible; }
.markdown-body table.cards tbody{ display:grid; grid-template-columns:repeat(auto-fill, minmax(13rem, 1fr)); gap:1rem; }
.markdown-body table.cards tbody:has(td[valign="top"] h3){ grid-template-columns:repeat(auto-fill, minmax(17rem, 1fr)); gap:1.25rem; }
.markdown-body table.cards tbody:has(td[align="center"]:not([valign])){ grid-template-columns:repeat(auto-fill, minmax(8.5rem, 1fr)); gap:.75rem; }
.markdown-body table.cards tr{ display:contents; background:none; border:0; }
.markdown-body table.cards td, .markdown-body table.cards th{ display:block; width:auto !important; border:0; margin:0; position:relative;
  background:var(--tile); border-radius:var(--r-tile); padding:1.375rem 1.5rem; line-height:1.6; font-size:.9375rem; }
.markdown-body table.cards td:empty{ display:none; }
.markdown-body table.cards td > :first-child{ margin-top:0; }
.markdown-body table.cards td > :last-child{ margin-bottom:0; }
.markdown-body table.cards td p{ margin:.35em 0; }
.markdown-body table.cards td ul{ margin:.6em 0 0; padding-left:1.2em; }
.markdown-body table.cards td sub{ display:inline-block; margin-top:.25rem; }
.markdown-body table.cards td h3{ margin:0 0 .75rem; font-size:2.5rem; line-height:1; }
.markdown-body table.cards td h3 .h-ico{ margin:0; font-size:1em; }
.markdown-body table.cards td a b, .markdown-body table.cards td strong a{ font-family:var(--font-display); font-size:1.1875rem; line-height:1.3; letter-spacing:-0.005em; color:var(--text); font-weight:600; }
.markdown-body table.cards .flag{ display:block; font-size:2.5rem; line-height:1.15; margin-bottom:.35rem; }
.markdown-body table.cards td[align="center"]:not([valign]){ padding:1.25rem .75rem 1.1rem; }
/* tiles with exactly one link: the whole tile is the target */
.markdown-body table.cards td.tile-link{ cursor:pointer;
  transition: transform var(--dur-press) var(--ease-out), background-color var(--dur-ui) ease, box-shadow var(--dur-ui) ease; }
.markdown-body table.cards td.tile-link a::after{ content:""; position:absolute; inset:0; border-radius:inherit; }
.markdown-body table.cards td.tile-link:active{ transform:scale(.98); }
.markdown-body table.cards td.tile-link a:hover{ text-decoration:none; }
@media (hover:hover) and (pointer:fine){
  .markdown-body table.cards td.tile-link:hover{ background:var(--tile-hover); box-shadow:var(--tile-shadow); }
}
/* spec grids (label + value, no links): Apple "tech specs" — hairlines, no fill */
.markdown-body table.cards.specs tbody{ grid-template-columns:repeat(auto-fill, minmax(11rem, 1fr)); gap:0 1.5rem; }
.markdown-body table.cards td.spec{ background:none; border-radius:0; padding:1rem 0 1.1rem; border-top:1px solid var(--hairline-2); }
.markdown-body table.cards td.spec sub{ display:block; margin:0 0 .3rem; }
.markdown-body table.cards td.spec b{ font-family:var(--font-display); font-size:1.1875rem; line-height:1.25; letter-spacing:-0.01em; font-weight:600; }

/* flowcharts (were Mermaid) */
.markdown-body .flow{ display:grid; grid-template-columns:repeat(auto-fill, minmax(9rem, 1fr)); gap:.625rem .75rem; margin:1.25rem 0 1.5rem; padding:0; list-style:none; }
.markdown-body .flow li{ margin:0; position:relative; display:flex; }
.markdown-body .flow li span{ flex:1; background:var(--tile); border-radius:var(--r-sm); padding:.75rem .9rem; font-size:.875rem; line-height:1.45; font-weight:500; }
.markdown-body .flow li + li::before{ content:""; position:absolute; left:-.5rem; top:50%; width:.34rem; height:.34rem; margin-top:-.17rem;
  border-top:1.5px solid var(--text-3); border-right:1.5px solid var(--text-3); transform:rotate(45deg); }
.markdown-body .flow-tree{ margin:1.5rem 0; }
.markdown-body .flow-root{ display:inline-block; font-family:var(--font-display); font-size:1.3125rem; font-weight:600; letter-spacing:-0.01em; margin:0 0 1rem; }
.markdown-body .flow-tree ol{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(14rem, 1fr)); gap:1rem; }
.markdown-body .flow-tree li{ margin:0; background:var(--tile); border-radius:var(--r-tile); padding:1.25rem 1.375rem; display:flex; flex-direction:column; gap:.5rem; }
.markdown-body .flow-q{ font-size:.875rem; color:var(--text-2); line-height:1.45; }
.markdown-body .flow-a{ font-family:var(--font-display); font-size:1.0625rem; font-weight:600; line-height:1.4; }

/* ---------- home: section bands ---------- */
.home .markdown-body{ max-width:none; }
.band{ padding:clamp(4rem, 9vw, 7rem) 0; }
.band:nth-child(even){ background:var(--bg-alt); }
.band:nth-child(even) table.cards td:not(.spec), .band:nth-child(even) .markdown-alert, .band:nth-child(even) .flow li span,
.band:nth-child(even) .flow-tree li, .band:nth-child(even) details, .band:nth-child(even) .badge{ background:var(--tile-on-alt); }
.band-in{ max-width:var(--page); margin:0 auto; padding:0 1.375rem; }
.band-in > h2{ text-align:center; font-size:clamp(2.25rem, 1.5rem + 3vw, 3.5rem); line-height:1.07; letter-spacing:-0.02em; margin:0 auto 2.75rem; text-wrap:balance; }
.band-in > h2 .h-ico{ display:block; margin:0 0 .9rem; font-size:2.75rem; line-height:1; }
.band-in > .markdown-alert{ max-width:var(--measure); margin-left:auto; margin-right:auto; }
.band-in > p:has(> sub:only-child), .band-in > p[align="center"]{ text-align:center; }
.band-in > details{ max-width:var(--measure); margin:0 auto; }

/* hero */
.band-hero{ padding:clamp(4.5rem, 12vw, 8.5rem) 0 clamp(3.5rem, 7vw, 5rem); text-align:center; }
.hero h1{ font-size:clamp(3.5rem, 1.5rem + 9vw, 6rem); line-height:1.04; letter-spacing:-0.025em; font-weight:700; margin:0 0 .2em; }
.hero h1 .header-anchor{ pointer-events:none; }
.hero h3{ font-size:clamp(1.75rem, 1.2rem + 2.2vw, 2.5rem); line-height:1.1; letter-spacing:-0.015em; font-weight:600; margin:0 0 .75rem; color:var(--text); }
.hero > p{ margin:0 auto; }
.hero > p:nth-of-type(1){ font-size:clamp(1.0625rem, 1rem + .4vw, 1.3125rem); line-height:1.4; color:var(--text-2); letter-spacing:.01em; }
.hero > p:has(.stat){ display:grid; grid-template-columns:repeat(4, 1fr); margin:3rem auto 2.5rem; max-width:46rem; }
.stat{ display:flex; flex-direction:column; align-items:center; gap:.3rem; padding:0 1rem; }
.stat + .stat{ border-left:1px solid var(--hairline); }
.stat-v{ font-family:var(--font-display); font-size:clamp(2.5rem, 1.8rem + 2.5vw, 3.5rem); line-height:1; font-weight:700; letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums; }
.stat-l{ font-size:.875rem; color:var(--text-2); }
.hero > p:has(.badge){ margin:0 auto 2.5rem; }
.hero > p:has(> strong > a){ font-size:0; display:flex; flex-wrap:wrap; justify-content:center; gap:.75rem 1.75rem; align-items:center; }
.hero > p > strong > a{ font-size:1.0625rem; font-weight:400; }
.hero > p > strong:first-child > a{ display:inline-block; padding:.75rem 1.5rem; border-radius:var(--r-pill); background:var(--btn); color:var(--btn-text);
  transition: background-color var(--dur-ui) ease, transform var(--dur-press) var(--ease-out); }
.hero > p > strong:first-child > a:active{ transform:scale(.97); }
.hero > p > strong:not(:first-child) > a::after{ content:" ›"; }
@media (hover:hover) and (pointer:fine){
  .hero > p > strong:first-child > a:hover{ background:var(--btn-hover); text-decoration:none; }
}
.band-hero .markdown-alert{ text-align:left; margin-top:4rem; }

/* hero entrance: rare, first-visit moment -> one short staggered rise (30–80ms steps), never blocks input */
@keyframes rise{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.hero > *{ animation: rise 600ms var(--ease-out) both; }
.hero > :nth-child(2){ animation-delay:60ms; } .hero > :nth-child(3){ animation-delay:120ms; }
.hero > :nth-child(4){ animation-delay:180ms; } .hero > :nth-child(5){ animation-delay:240ms; } .hero > :nth-child(n+6){ animation-delay:300ms; }

/* ---------- docs layout: sidebar TOC + reading column ---------- */
.doc{ max-width:var(--page-wide); margin:0 auto; padding:0 1.375rem; box-sizing:border-box; }
.doc.has-toc{ display:grid; grid-template-columns: 14rem minmax(0, 1fr); gap:4rem; }
.doc-main{ min-width:0; max-width:52rem; padding:1.25rem 0 6rem; }
.toc{ position:sticky; top:var(--nav-h); align-self:start; max-height:calc(100vh - var(--nav-h)); overflow:auto; padding:2.75rem 0 2rem;
  scrollbar-width:none; }
.toc-title{ margin:0 0 .75rem; font-size:.75rem; font-weight:600; letter-spacing:.02em; color:var(--text-2); }
.toc-list{ list-style:none; margin:0; padding:0; border-left:1px solid var(--hairline-2); }
.toc-list a{ display:block; margin-left:-1px; padding:.35rem 0 .35rem 1rem; border-left:2px solid transparent; font-size:.8125rem; line-height:1.4;
  color:var(--text-2); text-decoration:none; transition: color var(--dur-ui) ease, border-color var(--dur-ui) ease; }
.toc-list a[aria-current]{ color:var(--text); font-weight:600; border-left-color:var(--text); }
@media (hover:hover) and (pointer:fine){ .toc-list a:hover{ color:var(--text); } }
.toc-m{ display:none; }
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; font-size:.75rem; color:var(--text-2); margin:1.25rem 0 2.5rem; }
.crumbs a{ color:var(--text-2); text-decoration:none; }
.crumbs .sep{ color:var(--text-3); }
.crumbs [aria-current]{ color:var(--text); }
@media (hover:hover) and (pointer:fine){ .crumbs a:hover{ color:var(--link); } }
.page-doc .markdown-body > p, .page-doc .markdown-body > ul, .page-doc .markdown-body > ol, .page-doc .markdown-body > blockquote,
.page-doc .markdown-body > .markdown-alert{ max-width:var(--measure); }

/* page header */
.page-head{ text-align:left; margin:0 0 2.5rem; }
.page-head h1{ margin-bottom:.9rem; }
.page-head h1 .h-ico{ font-size:.9em; }
.page-head > p{ margin:0 0 1rem; }
.page-head > p:has(.badge){ margin-left:-.1rem; }
.page-head > p:has(> strong:only-child){ font-family:var(--font-display); font-size:clamp(1.1875rem, 1rem + .7vw, 1.5rem); line-height:1.33; letter-spacing:-0.01em; }
.page-head > p:has(> strong:only-child) strong{ font-weight:600; }
.page-head > p:has(> a:nth-of-type(2)){ font-size:0; display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem; }
.page-head > p:has(> a:nth-of-type(2)) > a{ font-size:.8125rem; line-height:1.3; padding:.5rem .95rem; border-radius:var(--r-pill);
  box-shadow: inset 0 0 0 1px var(--hairline); color:var(--text); transition: transform var(--dur-press) var(--ease-out), background-color var(--dur-ui) ease; }
.page-head > p:has(> a:nth-of-type(2)) > a:active{ transform:scale(.97); }
@media (hover:hover) and (pointer:fine){ .page-head > p:has(> a:nth-of-type(2)) > a:hover{ background:var(--tile); text-decoration:none; } }

/* ---------- 404 ---------- */
.nf{ max-width:var(--page); margin:0 auto; padding:clamp(6rem, 18vh, 11rem) 1.375rem clamp(6rem, 20vh, 12rem); text-align:center; }
.nf-eyebrow{ margin:0 0 .75rem; font-size:1.0625rem; font-weight:600; color:var(--text-2); letter-spacing:.02em; font-variant-numeric:tabular-nums; }
.nf-title{ margin:0 0 1rem; font-family:var(--font-display); font-size:clamp(2.5rem, 1.5rem + 4vw, 4rem); line-height:1.06; letter-spacing:-0.02em; font-weight:700; }
.nf-lede{ margin:0 auto 2.25rem; font-size:1.3125rem; line-height:1.4; color:var(--text-2); }
.nf-actions{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:1rem 1.75rem; margin:0; }
.btn{ display:inline-block; padding:.75rem 1.5rem; border-radius:var(--r-pill); background:var(--btn); color:var(--btn-text); text-decoration:none;
  transition: background-color var(--dur-ui) ease, transform var(--dur-press) var(--ease-out); }
.btn:active{ transform:scale(.97); }
.more{ color:var(--link); text-decoration:none; }
.more::after{ content:" ›"; }
@media (hover:hover) and (pointer:fine){ .btn:hover{ background:var(--btn-hover); } .more:hover{ text-decoration:underline; } }

/* ---------- footer ---------- */
.foot{ background:var(--bg-alt); color:var(--text-2); font-size:.75rem; line-height:1.6; letter-spacing:.01em; }
.page-home .foot{ border-top:1px solid var(--hairline-2); }
.foot-in{ max-width:var(--page); margin:0 auto; padding:1.25rem 1.375rem 2.5rem; box-sizing:border-box; }
.foot-dir{ display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; padding:.5rem 0 1rem; margin-bottom:.75rem; border-bottom:1px solid var(--hairline); }
.foot a{ color:var(--text); text-decoration:none; }
.foot-dir a{ color:var(--text-2); }
.foot p{ margin:.5rem 0; max-width:var(--measure); }
@media (hover:hover) and (pointer:fine){ .foot a:hover{ text-decoration:underline; } }

/* ---------- breakpoints (apple.com uses 1068 / 734) ---------- */
@media (max-width: 1068px){
  .doc.has-toc{ grid-template-columns: 12rem minmax(0, 1fr); gap:2.5rem; }
}
@media (max-width: 860px){
  .doc.has-toc{ display:block; }
  .toc{ display:none; }
  .toc-m{ display:block; margin:0 0 2rem; border-radius:var(--r-sm); background:var(--tile); }
  .toc-m summary{ list-style:none; cursor:pointer; padding:.85rem 1.1rem; font-size:.875rem; font-weight:600; }
  .toc-m summary::-webkit-details-marker{ display:none; }
  .toc-m summary::after{ content:"›"; float:right; color:var(--text-2); transition: transform var(--dur-ui) var(--ease-out); }
  .toc-m[open] summary::after{ transform:rotate(90deg); }
  .toc-m .toc-list{ border:0; padding:0 0 .6rem; }
  .toc-m .toc-list a{ border:0; padding:.45rem 1.1rem; font-size:.875rem; }
}
@media (max-width: 734px){
  :root{ --nav-h: 3rem; }
  .gnav nav[aria-label="主导航"]{ display:none; }
  .menu{ display:block; }
  .band-in, .doc, .gnav-in, .foot-in{ padding-left:1rem; padding-right:1rem; }
  .markdown-body{ font-size:1rem; line-height:1.75; }
  .markdown-body h2{ margin-top:3rem; }
  .markdown-body h3{ font-size:1.3125rem; }
  .crumbs{ margin:1rem 0 1.75rem; }
  .stat{ padding:.75rem .5rem; }
  .stat:nth-child(odd){ border-left:0; }
  .hero > p:has(.stat){ display:grid; grid-template-columns:1fr 1fr; gap:.5rem 0; margin:2.25rem auto 2rem; }
  .markdown-body table.cards tbody, .markdown-body table.cards tbody:has(td[valign="top"] h3){ grid-template-columns:1fr; gap:.75rem; }
  .markdown-body table.cards tbody:has(td[valign="top"] a b){ grid-template-columns:1fr 1fr; }
  .markdown-body table.cards tbody:has(td[align="center"]:not([valign])){ grid-template-columns:repeat(3, 1fr); gap:.5rem; }
  .markdown-body table.cards.specs tbody{ grid-template-columns:1fr 1fr; gap:0 1rem; }
  .markdown-body table.cards td{ padding:1.125rem 1.125rem; border-radius:1rem; font-size:.875rem; }
  .markdown-body table.cards td a b, .markdown-body table.cards td strong a{ font-size:1.0625rem; }
  .markdown-body table.cards .flag{ font-size:2rem; }
  .markdown-body table.cards td.spec b{ font-size:1.125rem; }
  .markdown-body .table-wrap{ margin-left:-1rem; margin-right:-1rem; padding:0 1rem; }
  .markdown-body .table-wrap table{ font-size:.875rem; min-width:34rem; }
  .band-in > h2 .h-ico{ font-size:2.25rem; }
}

/* ---------- reduced motion: no movement; keep gentle opacity/colour feedback ---------- */
@media (prefers-reduced-motion: reduce){
  @keyframes fade{ from{ opacity:0; } to{ opacity:1; } }
  .hero > *{ animation: fade 200ms ease both; animation-delay:0ms !important; }
  .brand:active, .gnav-links a:active, .menu summary:active, .menu-panel a:active, .markdown-body table.cards td.tile-link:active,
  .hero > p > strong:first-child > a:active, .page-head > p > a:active, .btn:active{ transform:none; }
  .menu-panel{ transition: opacity 200ms ease; }
  @starting-style{ .menu[open] .menu-panel{ transform:none; } }
  .burger, .burger::before, .markdown-body details > summary::after, .toc-m summary::after{ transition:none; }
  html{ scroll-behavior:auto; }
}

/* short pages (404): footer sits at the bottom of the viewport */
body.page-404{ min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }
body.page-404 .nf{ flex:1; width:100%; box-sizing:border-box; }

/* key-facts card on country pages (generated from data/programmes.csv + data/country_profiles.json) */
.markdown-body .facts{ margin:2rem 0 2.5rem; padding:1.25rem 1.5rem 1.125rem; border-radius:var(--r-tile); background:var(--tile); text-align:left; }
.markdown-body .facts p{ margin:0; font-size:.9375rem; line-height:1.65; color:var(--text); }
.markdown-body .facts .facts-title{ margin-bottom:.375rem; font-size:.75rem; font-weight:600; letter-spacing:.02em; color:var(--text-2); }
.markdown-body .facts .facts-meta{ margin-top:.625rem; font-size:.75rem; line-height:1.5; color:var(--text-2); }
.markdown-body .facts .facts-meta a{ color:var(--text-2); text-decoration:underline; text-decoration-color:var(--hairline); text-underline-offset:.15em; }
