/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
html {
  -webkit-text-size-adjust: 100%;
  line-height: 1.15;
}

body {
  margin: 0;
}

h1 {
  margin: .67em 0;
  font-size: 2em;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

pre {
  font-family: monospace;
  font-size: 1em;
}

a {
  background-color: #0000;
}

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

b, strong {
  font-weight: bolder;
}

code, kbd, samp {
  font-family: monospace;
  font-size: 1em;
}

small {
  font-size: 80%;
}

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

sub {
  bottom: -.25em;
}

sup {
  top: -.5em;
}

img {
  border-style: none;
}

button, input, optgroup, select, textarea {
  margin: 0;
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
}

button, input {
  overflow: visible;
}

button, select {
  text-transform: none;
}

button, [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button;
}

button::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

[type="button"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

[type="reset"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

button:-moz-focusring {
  outline: 1px dotted buttontext;
}

[type="button"]:-moz-focusring {
  outline: 1px dotted buttontext;
}

[type="reset"]:-moz-focusring {
  outline: 1px dotted buttontext;
}

[type="submit"]:-moz-focusring {
  outline: 1px dotted buttontext;
}

fieldset {
  padding: .35em .75em .625em;
}

legend {
  box-sizing: border-box;
  color: inherit;
  white-space: normal;
  max-width: 100%;
  padding: 0;
  display: table;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

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

[type="number"]::-webkit-inner-spin-button {
  height: auto;
}

[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

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

details {
  display: block;
}

summary {
  display: list-item;
}

template, [hidden] {
  display: none;
}

:root {
  --animate-duration: 1s;
  --animate-delay: 1s;
  --animate-repeat: 1;
  --accent: #0074d9;
  --accent-soft: #0074d959;
  --surface-0: #0c1220;
  --surface-1: #121a2e;
  --surface-2: #152034;
  --surface-3: #1c3a67;
  --text: #eef4fb;
  --text-muted: #e8eef2ad;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 22px;
  --shadow-sm: 0 1px 2px #0000001f;
  --shadow-md: 0 8px 32px #00000047;
  --shadow-lg: 0 16px 48px #00000059;
  --header-h: 3.5rem;
  --content-max: 42rem;
  --font-sans: "DM Sans", system-ui, -apple-system, Segoe UI, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Consolas, monospace;
}

.animated {
  animation-duration: var(--animate-duration);
  animation-fill-mode: both;
}

.animated.infinite {
  animation-iteration-count: infinite;
}

.animated.repeat-1 {
  animation-iteration-count: var(--animate-repeat);
}

.animated.repeat-2 {
  animation-iteration-count: calc(var(--animate-repeat) * 2);
}

.animated.repeat-3 {
  animation-iteration-count: calc(var(--animate-repeat) * 3);
}

.animated.delay-1s {
  animation-delay: var(--animate-delay);
}

.animated.delay-2s {
  animation-delay: calc(var(--animate-delay) * 2);
}

.animated.delay-3s {
  animation-delay: calc(var(--animate-delay) * 3);
}

.animated.delay-4s {
  animation-delay: calc(var(--animate-delay) * 4);
}

.animated.delay-5s {
  animation-delay: calc(var(--animate-delay) * 5);
}

.animated.faster {
  animation-duration: calc(var(--animate-duration) / 2);
}

.animated.fast {
  animation-duration: calc(var(--animate-duration) * .8);
}

.animated.slow {
  animation-duration: calc(var(--animate-duration) * 2);
}

.animated.slower {
  animation-duration: calc(var(--animate-duration) * 3);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .animated {
    transition-duration: 1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
  }

  .animated[class*="Out"] {
    opacity: 0;
  }

  .scroll-up, #home-nav a, #home-social a {
    transition: none;
  }
}

@media print {
  .animated {
    transition-duration: 1ms;
    animation-duration: 1ms;
    animation-iteration-count: 1;
  }

  .animated[class*="Out"] {
    opacity: 0;
  }
}

@keyframes bounce {
  0%, 20%, 53%, to {
    animation-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translateZ(0);
  }

  40%, 43% {
    animation-timing-function: cubic-bezier(.755, .05, .855, .06);
    transform: translate3d(0, -30px, 0) scaleY(1.1);
  }

  70% {
    animation-timing-function: cubic-bezier(.755, .05, .855, .06);
    transform: translate3d(0, -15px, 0) scaleY(1.05);
  }

  80% {
    transition-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translateZ(0) scaleY(.95);
  }

  90% {
    transform: translate3d(0, -4px, 0) scaleY(1.02);
  }
}

.bounce {
  transform-origin: bottom;
  animation-name: bounce;
}

@keyframes bounceInRight {
  0% {
    opacity: 0;
    animation-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translate3d(3000px, 0, 0) scaleX(3);
  }

  60% {
    opacity: 1;
    animation-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translate3d(-25px, 0, 0) scaleX(1);
  }

  75% {
    animation-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translate3d(10px, 0, 0) scaleX(.98);
  }

  90% {
    animation-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translate3d(-5px, 0, 0) scaleX(.995);
  }

  to {
    animation-timing-function: cubic-bezier(.215, .61, .355, 1);
    transform: translateZ(0);
  }
}

.bounceInRight {
  animation-name: bounceInRight;
}

@keyframes bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, 0, 0) scaleX(.9);
  }

  to {
    opacity: 0;
    transform: translate3d(2000px, 0, 0) scaleX(2);
  }
}

.bounceOutRight {
  animation-name: bounceOutRight;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  animation-name: fadeIn;
}

@keyframes slideInUp {
  0% {
    visibility: visible;
    transform: translate3d(0, 100%, 0);
  }

  to {
    transform: translateZ(0);
  }
}

.slideInUp {
  animation-name: slideInUp;
}

@keyframes slideOutDown {
  0% {
    transform: translateZ(0);
  }

  to {
    visibility: hidden;
    transform: translate3d(0, 100%, 0);
  }
}

.slideOutDown {
  animation-name: slideOutDown;
}

@keyframes slideInDown {
  0% {
    transform: translate3d(0, -100%, 0);
  }

  to {
    transform: translateZ(0);
  }
}

.slideInDown {
  animation-name: slideInDown;
}

@keyframes slideOutUp {
  0% {
    transform: translateZ(0);
  }

  to {
    transform: translate3d(0, -100%, 0);
  }
}

.slideOutUp {
  animation-name: slideOutUp;
}

.scroll-up {
  z-index: 40;
  opacity: 0;
  bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  right: max(1rem, env(safe-area-inset-right, 0px));
  transition: opacity .35s, transform .35s;
  position: fixed;
}

.hide {
  opacity: 0;
  transform: translateY(20px);
}

.show {
  opacity: 1;
  transform: translateY(0);
}

.admonition {
  border-left: .25rem solid #448aff;
  border-radius: 0 8px 8px 0;
  margin: 1rem 0 1.5rem;
  position: relative;
  overflow: auto;
  box-shadow: 5px 5px 10px -5px #00000080;
}

.admonition .admonition-title {
  color: #448aff;
  background-color: #448aff1a;
  border-bottom: 1px solid #448aff1a;
  padding: .25rem .5rem;
}

.admonition .admonition-title .icon {
  color: #448aff;
  padding: 0 10px 0 0;
  font-size: .85rem;
  display: inline-block;
}

.admonition .admonition-content {
  padding: .25rem .5rem;
}

.admonition.note {
  border-left-color: #448aff;
}

.admonition.note .admonition-title, .admonition.note .icon {
  color: #448aff;
}

.admonition.info {
  border-left-color: #00b8d4;
}

.admonition.info .admonition-title, .admonition.info .icon {
  color: #00b8d4;
}

.admonition.tip {
  border-left-color: #00bfa5;
}

.admonition.tip .admonition-title, .admonition.tip .icon {
  color: #00bfa5;
}

.admonition.success {
  border-left-color: #00c853;
}

.admonition.success .admonition-title, .admonition.success .icon {
  color: #00c853;
}

.admonition.warning {
  border-left-color: #ff9100;
}

.admonition.warning .admonition-title, .admonition.warning .icon {
  color: #ff9100;
}

.admonition.failure {
  border-left-color: #ff5252;
}

.admonition.failure .admonition-title, .admonition.failure .icon {
  color: #ff5252;
}

.admonition.danger {
  border-left-color: #ff1744;
}

.admonition.danger .admonition-title, .admonition.danger .icon {
  color: #ff1744;
}

.admonition.bug {
  border-left-color: #f50057;
}

.admonition.bug .admonition-title, .admonition.bug .icon {
  color: #f50057;
}

.admonition.note {
  background-color: #448aff1a;
}

.admonition.note .admonition-title {
  background-color: #448aff1a;
  border-bottom-color: #448aff1a;
}

.admonition.info {
  background-color: #00b8d41a;
}

.admonition.info .admonition-title {
  background-color: #00b8d41a;
  border-bottom-color: #00b8d41a;
}

.admonition.tip {
  background-color: #00bfa51a;
}

.admonition.tip .admonition-title {
  background-color: #00bfa51a;
  border-bottom-color: #00bfa51a;
}

.admonition.success {
  background-color: #00c8531a;
}

.admonition.success .admonition-title {
  background-color: #00c8531a;
  border-bottom-color: #00c8531a;
}

.admonition.warning {
  background-color: #ff91001a;
}

.admonition.warning .admonition-title {
  background-color: #ff91001a;
  border-bottom-color: #ff91001a;
}

.admonition.failure {
  background-color: #ff52521a;
}

.admonition.failure .admonition-title {
  background-color: #ff52521a;
  border-bottom-color: #ff52521a;
}

.admonition.danger {
  background-color: #ff17441a;
}

.admonition.danger .admonition-title {
  background-color: #ff17441a;
  border-bottom-color: #ff17441a;
}

.admonition.bug {
  background-color: #f500571a;
}

.admonition.bug .admonition-title {
  background-color: #f500571a;
  border-bottom-color: #f500571a;
}

::selection {
  background: #0074d9;
}

::-webkit-scrollbar {
  background: var(--surface-2);
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-thumb {
  border: 2px solid var(--surface-2);
  background: #0074d959;
  border-radius: 999px;
}

::-webkit-scrollbar-thumb:hover {
  background: #0074d98c;
}

html {
  letter-spacing: .01em;
  scroll-behavior: smooth;
  background-color: var(--surface-1);
  --lightningcss-light: ;
  --lightningcss-dark: initial;
  color-scheme: dark;
  font-feature-settings: "cv02", "cv04", "cv11";
  background-image: radial-gradient(130% 80% at 15% -15%, #0074d947 0%, #0000 52%), radial-gradient(100% 60% at 85% 15%, #1a569e8c 0%, #0000 48%), linear-gradient(165deg, #1a569e 0%, #0f1c3a 45%, #0a1428 100%);
  background-attachment: fixed;
  line-height: 1.65;
}

body, button, input, select, textarea {
  color: var(--text);
  font-family: var(--font-sans);
}

body.is-home #spotlight {
  padding-top: calc(var(--header-h) + 2rem);
}

.site-main {
  box-sizing: border-box;
  max-width: calc(var(--content-max) + 3rem);
  padding: calc(var(--header-h) + 1.75rem) clamp(1.25rem, 4vw, 2rem) 4rem;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md),
		inset 0 1px 0 #ffffff0f;
  background: linear-gradient(165deg, #ffffff0d 0%, #0c12208c 100%);
  border: 1px solid #ffffff14;
  margin: 0 auto;
}

.site-main.thin {
  max-width: min(48rem, 100% - 2rem);
}

.site-main h1 {
  letter-spacing: -.03em;
  margin: 0 0 .35em;
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  font-weight: 600;
  line-height: 1.15;
}

pre, code, pre tt {
  font-family: var(--font-mono);
}

pre {
  letter-spacing: normal;
  white-space: pre;
  color: #e4eaf3;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-sm);
  background: #0f1628d9;
  border: 1px solid #ffffff14;
  padding: 1em 1.15em;
  font-size: .88em;
  line-height: 1.55;
  overflow-x: auto;
}

pre code, .highlight code, .highlight pre code {
  color: inherit;
  word-wrap: normal;
  font-size: inherit;
  letter-spacing: normal;
  background: none;
  border: none;
  border-radius: 0;
  margin: 0;
  padding: 0;
}

:not(pre) > code {
  color: #c8d4e4;
  word-wrap: break-word;
  letter-spacing: normal;
  background: #0074d91f;
  border: 1px solid #0074d92e;
  border-radius: 6px;
  margin: 0 .12em;
  padding: .15em .4em;
  font-size: .92em;
}

blockquote {
  border-left: 3px solid var(--accent);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  background: #0074d90f;
  margin: 1.25em 0;
  padding: .4em 0 .4em 1.15em;
  font-style: italic;
}

blockquote cite {
  font-style: normal;
  font-weight: bold;
}

blockquote cite:before {
  content: "—— ";
}

a {
  color: inherit;
  border: none;
  text-decoration: none;
  transition: color .2s, box-shadow .2s, opacity .2s;
}

a:hover {
  color: #fff;
  text-shadow: none;
}

a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

#share-links {
  z-index: 45;
  box-sizing: border-box;
  backdrop-filter: blur(12px);
  border-radius: var(--radius-md);
  top: calc(var(--header-h) + .5rem);
  box-shadow: var(--shadow-lg);
  background: #0f1628eb;
  border: 1px solid #0074d938;
  padding: .55em .65em;
  display: none;
  position: fixed;
  right: max(.75rem, 3vw);
}

#share-links ul {
  margin: 0;
  padding: 0;
  font-size: 1.2em;
  line-height: 2;
  list-style: none;
}

#share-links ul a {
  color: var(--accent);
}

#share-links ul a:hover, #share-links ul a:active, #share-links ul a:focus {
  color: #e8eef2;
}

@media (width <= 520px) {
  #share-links {
    right: max(.5rem, 2vw);
  }
}

hr {
  opacity: .2;
  background: none;
  border-style: dashed;
  border-width: 0 0 5px;
  width: 50%;
  margin: 1.8em auto;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
  width: 100%;
  max-width: 100%;
}

table th, table td {
  border: 1px solid;
  padding: 1.5%;
}

table th {
  vertical-align: bottom;
  font-weight: 700;
}

.section-inner {
  width: 93%;
  max-width: 1200px;
  margin: 0 auto;
}

.thin {
  max-width: 720px;
  margin: auto;
}

.feather {
  vertical-align: -.125em;
  width: 1em;
  height: 1em;
  display: inline-block;
}

.sub-menu {
  font-size: .7em;
}

.desktop-only, .desktop-only-ib {
  display: none;
}

.highlight {
  position: relative;
}

.highlight div, .highlight pre {
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-sm);
  overflow-x: auto;
}

.highlight-copy-btn {
  color: var(--text);
  opacity: .85;
  text-align: center;
  letter-spacing: .02em;
  cursor: pointer;
  background-color: #0074d959;
  border: 1px solid #0074d973;
  border-radius: 8px;
  min-width: 52px;
  padding: 2px 6px;
  font-size: .68em;
  font-weight: 500;
  line-height: 1.8;
  transition: background .2s, border-color .2s;
  position: absolute;
  bottom: 10px;
  right: 10px;
}

.highlight-copy-btn:hover {
  background-color: #0074d980;
  border-color: #0074d9a6;
}

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  overflow-wrap: normal;
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.screen-reader-text:focus {
  clip-path: none;
  color: #21759b;
  z-index: 100000;
  clip: auto;
  white-space: normal;
  background-color: #f1f1f1;
  border-radius: 3px;
  width: auto;
  height: auto;
  padding: 15px 23px 14px;
  font-size: .875rem;
  font-weight: bold;
  line-height: normal;
  text-decoration: none;
  display: block;
  top: 5px;
  left: 5px;
  box-shadow: 0 0 2px 2px #0009;
}

#site-header {
  z-index: 50;
  box-sizing: border-box;
  backdrop-filter: blur(16px) saturate(1.2);
  width: 100%;
  box-shadow: var(--shadow-sm);
  background: #0f1628b8;
  border-bottom: 1px solid #0074d92e;
  animation-duration: .28s;
  position: fixed;
  top: 0;
  left: 0;
}

.hdr-wrapper {
  min-height: var(--header-h);
  justify-content: space-between;
  align-items: center;
  padding: .35em 0;
  font-size: 1.02rem;
  display: flex;
}

.hdr-wrapper .site-branding {
  letter-spacing: -.02em;
  margin-right: .85em;
  font-size: 1.12em;
  font-weight: 600;
  display: inline-block;
}

.hdr-wrapper .site-branding a {
  color: var(--text);
}

.hdr-wrapper .site-nav {
  opacity: .95;
  flex-wrap: wrap;
  align-items: center;
  gap: .2rem;
  font-size: .92em;
  font-weight: 500;
  display: inline-flex;
}

.hdr-wrapper .site-nav a {
  color: var(--text-muted);
  border-radius: 999px;
  padding: .35em .65em;
  transition: color .2s, background .2s;
}

.hdr-wrapper .site-nav a:hover {
  color: var(--text);
  background: #0074d924;
}

.hdr-wrapper .site-nav .has-children {
  border-right: 2px solid var(--accent);
  padding-right: .5em;
}

.hdr-wrapper .site-nav .sub-menu > a {
  margin-left: 0;
}

.hdr-icons {
  font-size: 1.2em;
}

.hdr-social {
  margin-left: .6em;
  display: inline-block;
}

.hdr-social > a {
  color: var(--text-muted);
  border-radius: 10px;
  margin-left: .35em;
  padding: .35em;
  transition: color .2s, background .2s;
}

.hdr-social > a:hover {
  color: var(--text);
  background: #0074d91f;
}

.hdr-btn {
  cursor: pointer;
  color: var(--text);
  background: #ffffff0f;
  border: 1px solid #ffffff1a;
  border-radius: 10px;
  margin-left: .4em;
  padding: .4em;
  transition: background .2s, border-color .2s;
}

.hdr-btn:hover {
  background: #0074d926;
  border-color: #0074d959;
}

#menu-btn {
  cursor: pointer;
  margin-left: .6em;
  display: none;
}

#mobile-menu {
  z-index: 45;
  box-sizing: border-box;
  backdrop-filter: blur(14px);
  border-radius: var(--radius-md);
  top: calc(var(--header-h) + .6rem);
  box-shadow: var(--shadow-lg);
  background: #0f1628f0;
  border: 1px solid #0074d938;
  min-width: min(16rem, 100vw - 2rem);
  padding: .65em 1.1em;
  display: none;
  position: fixed;
  right: max(1rem, 4vw);
}

#mobile-menu li a {
  color: var(--text-muted);
  border-radius: 8px;
  padding: .35em .25em;
  display: block;
}

#mobile-menu li a:hover {
  color: var(--text);
  background: #0074d91f;
}

#mobile-menu ul {
  margin: 0;
  padding: 0;
  font-size: 1.2em;
  line-height: 2;
  list-style: none;
}

#site-footer {
  text-align: center;
  padding-bottom: env(safe-area-inset-bottom, 0);
  color: var(--text-muted);
  margin-top: 3rem;
  margin-bottom: clamp(2rem, 6vw, 4rem);
  font-size: .88em;
}

#site-footer p {
  margin: 0;
}

#site-footer a {
  color: var(--text);
  border-bottom: 1px solid #0074d959;
  transition: border-color .2s, color .2s;
}

#site-footer a:hover {
  border-bottom-color: var(--accent);
  color: #fff;
}

#spotlight {
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: min(100%, 72rem);
  max-width: 93%;
  min-height: 100vh;
  margin: auto;
  padding: 0 clamp(1rem, 4vw, 2rem);
  font-size: clamp(1.05rem, 2.2vw, 1.35rem);
  display: flex;
}

@supports (height: 100dvh) {
  #spotlight {
    min-height: 100dvh;
  }
}

#spotlight:not(.error-404) {
  padding-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

#spotlight.error-404 {
  flex-direction: row;
  line-height: normal;
}

p.img-404 {
  margin: 0;
}

p.img-404 svg {
  width: 180px;
  max-width: 100%;
  height: auto;
}

.banner-404 {
  margin-left: 2em;
}

.banner-404 h1 {
  margin: .5rem 0;
  font-size: 3em;
}

.banner-404 p {
  margin-top: 0;
}

.banner-404 .btn-404 {
  font-size: .8em;
}

.banner-404 .btn-404 a {
  border: 2px solid #e8eef2;
  border-radius: 5px;
  padding: 5px;
  transition-property: color, border-color;
  display: inline-block;
}

.banner-404 .btn-404 a:first-child {
  margin-right: 1em;
}

.banner-404 .btn-404 a:hover {
  border-color: #fff;
}

.banner-404 .btn-404 a svg {
  margin-right: .5em;
}

#home-center {
  border-radius: var(--radius-lg);
  width: min(100%, 36rem);
  box-shadow: var(--shadow-md),
		inset 0 1px 0 #ffffff0f;
  backdrop-filter: blur(14px);
  background: linear-gradient(160deg, #ffffff0f 0%, #0c12206b 100%);
  border: 1px solid #ffffff1a;
  flex-direction: column;
  flex-grow: 1;
  justify-content: center;
  padding: clamp(1.75rem, 4vw, 2.5rem) clamp(1.35rem, 3.5vw, 2rem);
  display: flex;
}

#home-title {
  text-align: center;
  letter-spacing: -.04em;
  background: linear-gradient(110deg, #fff 12%, #00b4ffeb 88%);
  color: #0000;
  -webkit-background-clip: text;
  background-clip: text;
  margin: 0 0 .35em;
  font-size: clamp(2rem, 5vw, 2.85rem);
  font-weight: 600;
  line-height: 1.08;
}

#home-subtitle {
  text-align: center;
  max-width: 26em;
  color: var(--text-muted);
  letter-spacing: 0;
  margin: 0 auto 1.75em;
  font-size: clamp(.9rem, 1.8vw, 1.05rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1.45;
}

#home-social {
  text-align: center;
  opacity: .95;
  margin-bottom: .35em;
  font-size: 1.2em;
}

#home-social a {
  color: var(--text-muted);
  border-radius: 12px;
  margin: 0 .22em;
  padding: .35em;
  transition: color .2s, background .2s, transform .2s;
}

#home-social a:hover {
  color: var(--text);
  background: #0074d91f;
  transform: translateY(-1px);
}

#home-nav {
  opacity: 1;
  grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
  gap: .45rem .55rem;
  width: 100%;
  margin-top: .25rem;
  display: grid;
}

#home-nav a {
  text-align: center;
  letter-spacing: .01em;
  color: var(--text);
  background: #0074d914;
  border: 1px solid #0074d933;
  border-radius: 999px;
  margin-top: 0;
  padding: .55em .65em;
  font-size: .82em;
  font-weight: 500;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
  display: block;
}

#home-nav a:hover {
  background: #0074d933;
  border-color: #0074d973;
  transform: translateY(-1px);
  box-shadow: 0 0 0 1px #0074d926;
}

#home-footer {
  text-align: center;
  color: var(--text-muted);
  margin-top: clamp(1.5rem, 4vw, 2.25rem);
  font-size: .72em;
  line-height: 1.5;
}

#home-footer p {
  margin-top: 0;
}

.posts-group {
  margin-bottom: 1.9em;
  line-height: normal;
  display: flex;
}

.posts-group .post-year {
  opacity: .6;
  margin-right: 1.8em;
  padding-top: 6px;
  font-size: 1.6em;
}

.posts-group .post-year:hover {
  cursor: pointer;
}

.posts-group .posts-list {
  flex-grow: 1;
  margin: 0;
  padding: 0;
  list-style: none;
}

.posts-group .post-item {
  border-bottom: 1px dashed #0074d9;
}

.posts-group .post-item a {
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0;
  display: flex;
}

.posts-group .post-day {
  opacity: .6;
  flex-shrink: 0;
  margin-left: 1em;
}

.posts-group .post-description {
  opacity: .6;
  flex-shrink: 0;
  font-size: x-small;
}

.pinned-posts-group {
  border-bottom: 2px solid #0074d9;
  margin-bottom: 1.9em;
  line-height: normal;
  display: flex;
}

.pinned-posts-group .pinned-posts-list {
  flex-grow: 1;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pinned-posts-group .pinned-post-item {
  justify-content: start;
  align-items: baseline;
  padding: 12px 0;
  display: flex;
}

.pinned-posts-group .pinned-post-item a {
  padding-left: 12px;
}

.bg-img {
  opacity: .03;
  z-index: -1;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  width: 100vw;
  height: 100vh;
  transition: opacity .5s;
  position: fixed;
  top: 0;
}

.show-bg-img {
  z-index: 100;
  opacity: 1;
  cursor: pointer;
}

.post-header {
  margin-top: 1.2em;
  line-height: normal;
}

.post-header .post-meta {
  letter-spacing: normal;
  opacity: .6;
  font-size: .9em;
}

.post-header h1 {
  margin-top: .1em;
}

hr.post-end {
  border-style: solid;
  border-bottom-width: 4px;
  width: 50%;
  margin-top: 1.6em;
  margin-bottom: .8em;
  margin-left: 0;
}

.content {
  text-align: start;
  color: #eef4fbf0;
  font-size: clamp(.98rem, 1.5vw, 1.06rem);
  line-height: 1.75;
}

.content p {
  margin: .75em 0 1em;
}

.content h2, .content h3, .content h4 {
  letter-spacing: -.02em;
  margin: 1.6em 0 .55em;
  font-weight: 600;
  line-height: 1.25;
}

.content h2 {
  font-size: 1.35em;
}

.content h3 {
  font-size: 1.15em;
}

.content a {
  word-wrap: break-word;
  color: #b4d7fff2;
  text-underline-offset: .18em;
  border: none;
  text-decoration: none;
  transition: color .2s, box-shadow .2s;
  box-shadow: inset 0 -1px #0074d98c;
}

.content a:hover {
  color: #fff;
  box-shadow: inset 0 -1.25em #0074d938;
}

.content figure {
  text-align: center;
  max-width: 100%;
  height: auto;
  margin: 0;
}

.content figure p {
  opacity: .6;
  font-size: .8em;
  font-style: italic;
}

.content figure.left {
  float: left;
  max-width: 50%;
  margin-right: 1.5em;
}

.content figure.right {
  float: right;
  max-width: 50%;
  margin-left: 1.5em;
}

.content figure.big {
  max-width: 100vw;
}

.content img {
  border-radius: var(--radius-sm);
  max-width: 100%;
  height: auto;
  margin: auto;
  display: block;
}

.content ul, .content ol {
  margin-left: 1.8em;
  padding: 0;
}

.content .cv-download-wrap {
  text-align: right;
  margin: 0 0 1rem;
}

.content a.cv-download-link {
  max-width: 100%;
  color: var(--text);
  letter-spacing: .01em;
  box-shadow: none;
  border: 1px solid #0074d947;
  border-left: 3px solid var(--accent);
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, #0074d91f 0%, #0c122073 100%);
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem 1rem;
  padding: .65em 1.1em .65em .9em;
  font-size: .95rem;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
  display: inline-flex;
}

.content a.cv-download-link:hover {
  color: #fff;
  border-color: #0074d973;
  transform: translateY(-1px);
  box-shadow: 0 4px 24px #0074d933;
}

.content a.cv-download-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.content .cv-download-icon {
  color: var(--accent);
  flex-shrink: 0;
  display: inline-flex;
}

.content .cv-download-icon svg {
  display: block;
}

.content .cv-download-text {
  flex: auto;
  min-width: 0;
}

.content .cv-download-meta {
  color: var(--text-muted);
  letter-spacing: .02em;
  font-size: .8em;
  font-weight: 400;
}

@media (width <= 480px) {
  .content .cv-download-wrap {
    text-align: right;
  }

  .content a.cv-download-link {
    flex-flow: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .5rem .75rem;
    max-width: 100%;
  }

  .content .cv-download-meta {
    text-align: right;
    flex-basis: 100%;
    padding-left: 0;
  }
}

.content a.anchor {
  float: left;
  box-shadow: none;
  opacity: .8;
  margin-left: -20px;
  padding-right: 6px;
}

.content a.anchor:hover {
  color: #0074d9;
  opacity: 1;
  background: none;
}

.content a.anchor svg {
  vertical-align: baseline;
  visibility: hidden;
  width: 14px;
  height: 14px;
  display: inline-block;
}

.content a.anchor:focus svg, .content h1:hover a.anchor svg, .content h2:hover a.anchor svg, .content h3:hover a.anchor svg, .content h4:hover a.anchor svg, .content h5:hover a.anchor svg, .content h6:hover a.anchor svg {
  visibility: visible;
}

.footnotes {
  font-size: .85em;
}

.footnotes a {
  box-shadow: none;
  text-decoration: underline;
  transition-property: color;
}

.footnotes a:hover {
  background: none;
}

.footnotes a.footnote-backref {
  text-decoration: none;
}

.footnotes ol {
  line-height: 1.8;
}

a.footnote-ref {
  box-shadow: none;
  background-color: #152034;
  border-radius: 2px;
  padding: 2px;
  text-decoration: none;
}

a.footnote-ref:hover {
  box-shadow: none;
  background-color: #0074d9;
  transition-property: background-color;
}

.post-info {
  opacity: .6;
  font-size: .8rem;
  line-height: normal;
}

.post-info p {
  margin: .8em 0;
}

.post-info a:hover {
  border-bottom: 1px solid #0074d9;
}

.post-info svg {
  margin-right: .8em;
}

.post-info .tag {
  margin-right: .5em;
}

.post-info .tag:before {
  content: "#";
}

.post-info .category {
  margin-right: .5em;
}

.post-info .category:before {
  content: "⊲";
}

#toc {
  display: none;
  position: fixed;
  top: 0;
  left: 50%;
}

.toc-title {
  margin-bottom: .5em;
  margin-left: 1em;
  font-size: .8em;
  font-weight: bold;
}

#TableOfContents {
  opacity: .6;
  font-size: .8em;
}

#TableOfContents ul {
  margin: 0;
  padding-left: 1em;
}

#TableOfContents > ul {
  list-style-type: none;
}

#TableOfContents > ul ul ul {
  font-size: .9em;
}

#TableOfContents a:hover {
  border-bottom: 1px solid #0074d9;
}

.post-nav {
  justify-content: space-between;
  margin-top: 1.5em;
  margin-bottom: 2.5em;
  font-size: 1.2em;
  display: flex;
}

.post-nav a {
  flex-grow: 1;
  flex-basis: 50%;
}

.post-nav .next-post {
  text-align: left;
  padding-right: 5px;
}

.post-nav .prev-post {
  text-align: right;
  padding-left: 5px;
}

.post-nav .post-nav-label {
  opacity: .8;
  text-transform: uppercase;
  font-size: .8em;
}

.related-posts {
  border: 3px dashed #fff3;
  border-radius: 5px;
  margin-top: 1.5em;
  padding: .8em;
  font-size: .8rem;
}

.related-posts h2 {
  margin: 0;
  line-height: normal;
}

.related-posts ul {
  margin-top: .5em;
  margin-bottom: 0;
}

@media (width >= 800px) {
  .site-main {
    margin-top: clamp(2rem, 4vw, 3rem);
  }

  hr.post-end {
    width: 40%;
  }
}

@media (width >= 960px) {
  .site-main {
    margin-top: clamp(2.5rem, 4.5vw, 3.5rem);
  }

  :root {
    --header-h: 3.75rem;
  }
}

@media (width >= 1300px) {
  .site-main {
    margin-top: clamp(3rem, 4vw, 4rem);
  }

  .desktop-only, #toc.show-toc {
    display: block;
  }

  .desktop-only-ib {
    display: inline-block;
  }

  figure.left {
    margin-left: -240px;
  }

  figure.left p {
    text-align: left;
  }

  figure.right {
    margin-right: -240px;
  }

  figure.right p {
    text-align: right;
  }

  figure.big {
    width: 1200px;
    margin-left: -240px;
  }

  hr.post-end {
    width: 30%;
  }

  #toc {
    max-width: 220px;
    margin-left: 370px;
    top: 13em;
  }
}

@media (width >= 1800px) {
  .site-main {
    margin-top: clamp(3rem, 3vw, 4.25rem);
  }

  .section-inner {
    max-width: 1600px;
  }

  .thin {
    max-width: 960px;
  }

  figure.left {
    max-width: 75%;
    margin-left: -320px;
  }

  figure.right {
    max-width: 75%;
    margin-right: -320px;
  }

  figure.big {
    width: 1600px;
    margin-left: -320px;
  }

  hr.post-end {
    width: 30%;
  }

  #toc {
    max-width: 300px;
    margin-left: 490px;
    top: 15em;
  }
}

@media (width <= 760px) {
  .hide-in-mobile, .site-nav.hide-in-mobile {
    display: none;
  }

  #menu-btn {
    display: inline-block;
  }

  .posts-group {
    display: block;
  }

  .posts-group .post-year {
    margin: -6px 0 4px;
  }

  #spotlight.error-404 {
    text-align: center;
    flex-direction: column;
  }

  #spotlight.error-404 .banner-404 {
    margin: 0;
  }
}

@media (width <= 520px) {
  .content figure.left, .content figure.right {
    float: unset;
    max-width: 100%;
    margin: 0;
  }

  hr.post-end {
    width: 60%;
  }

  #mobile-menu {
    right: max(.65rem, 3vw);
  }
}

.human {
  justify-content: flex-end;
  display: flex;
}
