:root {
  /* Colors: Brand */
  --vp-c-brand-1: theme('colors.swarm.500');
  --vp-c-brand-2: theme('colors.swarm.600');
  --vp-c-brand-3: theme('colors.swarm.800');
  --vp-c-brand-soft: theme('colors.swarm.400');

  /* Colors: Button */
  --vp-button-brand-bg: var(--vp-c-brand-1);
  --vp-button-brand-border: var(--vp-c-brand-soft);
  --vp-button-brand-text: rgba(42, 40, 47);
  --vp-button-brand-hover-border: var(--vp-c-brand-soft);
  --vp-button-brand-hover-text: rgba(42, 40, 47);
  --vp-button-brand-hover-bg: var(--vp-c-brand-soft);
  --vp-button-brand-active-border: var(--vp-c-brand-soft);
  --vp-button-brand-active-text: rgba(42, 40, 47);
  --vp-button-brand-active-bg: var(--vp-button-brand-bg);
  --vp-button-alt-bg: #484848;
  --vp-button-alt-text: #f0eeee;
  --vp-button-alt-hover-bg: #484848;
  --vp-button-alt-hover-text: #f0eeee;

  --vp-c-bg-elv: rgba(255, 255, 255, 0.7);
  --vp-c-bg-mark: rgb(232, 232, 232);

  /* Colors: Halloween Theme */
  --halloween-50: #fff7ed;
  --halloween-100: #ffedd5;
  --halloween-200: #fed7aa;
  --halloween-300: #fdba74;
  --halloween-400: #fb923c;
  --halloween-500: #FF6A00;
  --halloween-600: #ea580c;
  --halloween-700: #c2410c;
  --halloween-800: #9a3412;
  --halloween-900: #7c2d12;
  --halloween-950: #431407;

  /* Colors: Custom Block */
  /** Info */
  --vp-custom-block-info-bg: theme('colors.swarm.100');
  --vp-custom-block-info-border: theme('colors.swarm.800');
  --vp-custom-block-info-text: theme('colors.swarm.800');
  --vp-custom-block-info-text-deep: theme('colors.swarm.900');
  /** Tip */
  --vp-custom-block-tip-bg: theme('colors.meadow.100');
  --vp-custom-block-tip-border: theme('colors.meadow.800');
  --vp-custom-block-tip-text: theme('colors.meadow.800');
  --vp-custom-block-tip-text-deep: theme('colors.meadow.900');
  /** Warning */
  --vp-custom-block-warning-bg: theme('colors.merlin.100');
  --vp-custom-block-warning-border: theme('colors.merlin.800');
  --vp-custom-block-warning-text: theme('colors.merlin.800');
  --vp-custom-block-warning-text-deep: theme('colors.merlin.900');
  /** Danger */
  --vp-custom-block-danger-bg: theme('colors.carnation.100');
  --vp-custom-block-danger-border: theme('colors.carnation.800');
  --vp-custom-block-danger-text: theme('colors.carnation.800');
  --vp-custom-block-danger-text-deep: theme('colors.carnation.900');
  /** Halloween */
  --vp-custom-block-halloween-bg: var(--halloween-100);
  --vp-custom-block-halloween-border: var(--halloween-800);
  --vp-custom-block-halloween-text: var(--halloween-800);
  --vp-custom-block-halloween-text-deep: var(--halloween-900);
}

/* Apply Halloween theme by default (for light mode)*/
:root {
  --vp-c-bg: #fef3e8 !important;
  --vp-c-bg-alt: #fef0e7 !important;
  --vp-c-bg-elv: rgba(254, 240, 231, 0.8) !important;
  --vp-c-bg-soft: #fef0e7 !important;
  --vp-button-alt-bg: #a855f7 !important;
  --vp-button-alt-text: #fff !important;
  --vp-button-alt-hover-bg: #9333ea !important;
  --vp-button-alt-hover-text: #fff !important;
  --vp-button-brand-bg: #FF6A00 !important;
  --vp-button-brand-border: #FF6A00 !important;
  --vp-button-brand-text: #fff !important;
  --vp-button-brand-hover-bg: #ea580c !important;
  --vp-button-brand-hover-border: #ea580c !important;
  --vp-button-brand-hover-text: #fff !important;
}

body {
  background-color: #fef3e8 !important;
}

.VPApp, .Layout, .VPContent, .VPHome, .VPHero, #app {
  background-color: #fef3e8 !important;
}

/* Apply Halloween theme by default - (for dark mode) */
.dark {
  --vp-c-bg: rgb(15, 15, 15) !important;
  --vp-c-bg-alt: rgb(12, 12, 12) !important;
  --vp-c-bg-elv: rgba(12, 12, 12, 0.8) !important;
  --vp-c-bg-soft: rgb(12, 12, 12) !important;
  --vp-button-alt-bg: #8b5cf6 !important;
  --vp-button-alt-text: #e9d5ff !important;
  --vp-button-alt-hover-bg: #a855f7 !important;
  --vp-button-alt-hover-text: #fff !important;
  --vp-button-brand-bg: #FF6A00 !important;
  --vp-button-brand-border: #FF6A00 !important;
  --vp-button-brand-text: #fff !important;
  --vp-button-brand-hover-bg: #ea580c !important;
  --vp-button-brand-hover-border: #ea580c !important;
  --vp-button-brand-hover-text: #fff !important;
}

.dark body {
  background-color: rgb(15, 15, 15) !important;
}

.dark .VPApp, .dark .Layout, .dark .VPContent, .dark .VPHome, .dark .VPHero, .dark #app {
  background-color: rgb(15, 15, 15) !important;
}

.dark {
  /* Colors: Brand */
  --vp-c-brand-1: theme('colors.swarm.400');
  --vp-c-brand-2: theme('colors.swarm.500');
  --vp-c-brand-3: theme('colors.swarm.700');
  --vp-c-brand-soft: theme('colors.swarm.300');

  /* Colors: Background */
  --vp-c-bg: rgb(26, 26, 26);
  --vp-c-bg-alt: rgb(23, 23, 23);
  --vp-c-bg-elv: rgba(23, 23, 23, 0.8);

  /* Colors: Custom Block */
  /** Info */
  --vp-custom-block-info-bg: theme('colors.swarm.950');
  --vp-custom-block-info-border: theme('colors.swarm.800');
  --vp-custom-block-info-text: theme('colors.swarm.200');
  --vp-custom-block-info-text-deep: theme('colors.swarm.200');
  /** Tip */
  --vp-custom-block-tip-bg: theme('colors.meadow.950');
  --vp-custom-block-tip-border: theme('colors.meadow.800');
  --vp-custom-block-tip-text: theme('colors.meadow.200');
  --vp-custom-block-tip-text-deep: theme('colors.meadow.200');
  /** Warning */
  --vp-custom-block-warning-bg: theme('colors.merlin.950');
  --vp-custom-block-warning-border: theme('colors.merlin.800');
  --vp-custom-block-warning-text: theme('colors.merlin.200');
  --vp-custom-block-warning-text-deep: theme('colors.merlin.200');
  /** Danger */
  --vp-custom-block-danger-bg: theme('colors.carnation.950');
  --vp-custom-block-danger-border: theme('colors.carnation.800');
  --vp-custom-block-danger-text: theme('colors.carnation.200');
  --vp-custom-block-danger-text-deep: theme('colors.carnation.200');
  /** Halloween */
  --vp-custom-block-halloween-bg: var(--halloween-950);
  --vp-custom-block-halloween-border: var(--halloween-800);
  --vp-custom-block-halloween-text: var(--halloween-200);
  --vp-custom-block-halloween-text-deep: var(--halloween-200);
}

/* Halloween theme overrides */
/* Halloween theme overrides - (for light mode) */
html[data-halloween-theme]:not(.dark) {
  --vp-c-bg: #fef3e8 !important;
  --vp-c-bg-alt: #fef0e7 !important;
  --vp-c-bg-elv: rgba(254, 240, 231, 0.8) !important;
  --vp-c-bg-soft: #fef0e7 !important;
  --vp-button-alt-bg: #a855f7 !important;
  --vp-button-alt-text: #fff !important;
  --vp-button-alt-hover-bg: #9333ea !important;
  --vp-button-alt-hover-text: #fff !important;
  --vp-button-brand-bg: #FF6A00 !important;
  --vp-button-brand-border: #FF6A00 !important;
  --vp-button-brand-text: #fff !important;
  --vp-button-brand-hover-bg: #ea580c !important;
  --vp-button-brand-hover-border: #ea580c !important;
  --vp-button-brand-hover-text: #fff !important;
  
  background-color: #fef3e8 !important;
}

html[data-halloween-theme]:not(.dark) body {
  background-color: #fef3e8 !important;
}

html[data-halloween-theme]:not(.dark) .VPApp,
html[data-halloween-theme]:not(.dark) .Layout,
html[data-halloween-theme]:not(.dark) .VPContent,
html[data-halloween-theme]:not(.dark) .VPHome,
html[data-halloween-theme]:not(.dark) .VPHero,
html[data-halloween-theme]:not(.dark) #app {
  background-color: #fef3e8 !important;
}

/* Halloween theme overrides - (for dark mode) */
html[data-halloween-theme].dark {
  --vp-c-bg: rgb(15, 15, 15) !important;
  --vp-c-bg-alt: rgb(12, 12, 12) !important;
  --vp-c-bg-elv: rgba(12, 12, 12, 0.8) !important;
  --vp-c-bg-soft: rgb(12, 12, 12) !important;
  --vp-button-alt-bg: #8b5cf6 !important;
  --vp-button-alt-text: #e9d5ff !important;
  --vp-button-alt-hover-bg: #a855f7 !important;
  --vp-button-alt-hover-text: #fff !important;
  --vp-button-brand-bg: #FF6A00 !important;
  --vp-button-brand-border: #FF6A00 !important;
  --vp-button-brand-text: #fff !important;
  --vp-button-brand-hover-bg: #ea580c !important;
  --vp-button-brand-hover-border: #ea580c !important;
  --vp-button-brand-hover-text: #fff !important;
  
  background-color: rgb(15, 15, 15) !important;
}

html[data-halloween-theme].dark body {
  background-color: rgb(15, 15, 15) !important;
}

html[data-halloween-theme].dark .VPApp,
html[data-halloween-theme].dark .Layout,
html[data-halloween-theme].dark .VPContent,
html[data-halloween-theme].dark .VPHome,
html[data-halloween-theme].dark .VPHero,
html[data-halloween-theme].dark #app {
  background-color: rgb(15, 15, 15) !important;
}

.vp-doc a {
  color: var(--vp-c-brand-1);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-style: solid;
  text-decoration-color: transparent;
  -webkit-text-decoration-color: transparent;
  transition: text-decoration-color 0.25s;

  &:hover {
    color: var(--vp-c-brand-1);
    text-decoration-color: var(--vp-c-brand-1);
    -webkit-text-decoration-color: var(--vp-c-brand-1);
  }
}

.vp-doc .custom-block a {
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-style: solid;
}

::selection {
  background-color: #5586a6;

  .dark & {
    background-color: #0f2c47;
  }
}

.VPFooter a {
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-underline-offset: 5px;
  transition: 0.3s;

  &:hover {
    color: var(--vp-c-text-1);
    text-decoration-line: underline;
    text-decoration-style: dashed;
    text-underline-offset: 5px;
  }
}

/* Custom scrollbar */
.VPSidebar::-webkit-scrollbar {
  block-size: 4px;
  border-end-end-radius: 14px;
  border-start-end-radius: 14px;
  inline-size: 4px;
}

/**
 * Component: Home
*/
:root {
  --vp-home-hero-name-color: transparent;
  --vp-home-hero-name-background: -webkit-linear-gradient(
    120deg,
    #ff8c3a 30%,
    #FF6A00
  );

  --vp-home-hero-image-background-image: linear-gradient(
    -45deg,
    #ff8c3a 50%,
    #ea580c 50%
  );
  --vp-home-hero-image-filter: blur(44px);
}

@media (min-width: 640px) {
  :root {
    --vp-home-hero-image-filter: blur(56px);
  }
}

@media (min-width: 960px) {
  :root {
    --vp-home-hero-image-filter: blur(68px);
  }
}

.base64 {
  min-width: 100%;
  width: 0px;
  white-space: pre-wrap;
}

/* Make clicks pass-through */
#nprogress {
  pointer-events: none;

  & .bar {
    background: var(--vp-c-brand-1);
    position: fixed;
    z-index: 1031;
    top: 0;
    left: 0;
    width: 100%;
    height: 2px;
  }

  /* Fancy blur effect */
  & .peg {
    display: block;
    position: absolute;
    right: 0px;
    width: 100px;
    height: 100%;
    box-shadow:
      0 0 10px var(--vp-c-brand-1),
      0 0 5px var(--vp-c-brand-1);
    opacity: 1;

    -webkit-transform: rotate(3deg) translate(0px, -4px);
    -ms-transform: rotate(3deg) translate(0px, -4px);
    transform: rotate(3deg) translate(0px, -4px);
  }

  & .spinner {
    display: block;
    position: fixed;
    z-index: 1031;
    top: 15px;
    right: 15px;
  }

  & .spinner-icon {
    width: 18px;
    height: 18px;
    box-sizing: border-box;

    border: solid 2px transparent;
    border-top-color: var(--vp-c-brand);
    border-left-color: var(--vp-c-brand);
    border-radius: 50%;

    -webkit-animation: nprogress-spinner 400ms linear infinite;
    animation: nprogress-spinner 400ms linear infinite;
  }
}
.nprogress-custom-parent {
  overflow: hidden;
  position: relative;
}

.nprogress-custom-parent #nprogress .spinner,
.nprogress-custom-parent #nprogress .bar {
  position: absolute;
}

@-webkit-keyframes nprogress-spinner {
  0% {
    -webkit-transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes nprogress-spinner {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

#VPContent strong > a {
  font-weight: bold;
}

.info.custom-block a {
  color: var(--vp-custom-block-info-text);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.25s;
}

.info.custom-block a:hover {
  opacity: 0.7;
  color: var(--vp-custom-block-info-text-deep);
}

.note.custom-block a {
  color: var(--vp-custom-block-info-text);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.25s;
}

.note.custom-block a:hover {
  opacity: 0.7;
  color: var(--vp-custom-block-note-text-deep);
}

.tip.custom-block a {
  color: var(--vp-custom-block-tip-text);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.25s;
}

.tip.custom-block a:hover {
  opacity: 0.7;
  color: var(--vp-custom-block-tip-text-deep);
}

.warning.custom-block a {
  color: var(--vp-custom-block-warning-text);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.25s;
}

.warning.custom-block a:hover {
  opacity: 0.7;
  color: var(--vp-custom-block-warning-text-deep);
}

.danger.custom-block a {
  color: var(--vp-custom-block-danger-text);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.25s;
}

.danger.custom-block a:hover {
  opacity: 0.7;
  color: var(--vp-custom-block-danger-text-deep);
}

.halloween.custom-block a {
  color: var(--vp-custom-block-halloween-text);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
  transition: opacity 0.25s;
}

.halloween.custom-block a:hover {
  opacity: 0.7;
  color: var(--vp-custom-block-halloween-text-deep);
}

.info.custom-block {
  --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
}

.note.custom-block {
  --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWluZm8iPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+');
}

.tip.custom-block {
  --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWxpZ2h0YnVsYiI+PHBhdGggZD0iTTE1IDE0Yy4yLTEgLjctMS43IDEuNS0yLjUgMS0uOSAxLjUtMi4yIDEuNS0zLjVBNiA2IDAgMCAwIDYgOGMwIDEgLjIgMi4yIDEuNSAzLjUuNy43IDEuMyAxLjUgMS41IDIuNSIvPjxwYXRoIGQ9Ik05IDE4aDYiLz48cGF0aCBkPSJNMTAgMjJoNCIvPjwvc3ZnPg==');
}

.warning.custom-block {
  --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLWFsZXJ0LXRyaWFuZ2xlIj48cGF0aCBkPSJtMjEuNzMgMTgtOC0xNGEyIDIgMCAwIDAtMy40OCAwbC04IDE0QTIgMiAwIDAgMCA0IDIxaDE2YTIgMiAwIDAgMCAxLjczLTNaIi8+PHBhdGggZD0iTTEyIDl2NCIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz48L3N2Zz4=');
}

.danger.custom-block {
  --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXNrdWxsIj48Y2lyY2xlIGN4PSI5IiBjeT0iMTIiIHI9IjEiLz48Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxIi8+PHBhdGggZD0iTTggMjB2Mmg4di0yIi8+PHBhdGggZD0ibTEyLjUgMTctLjUtMS0uNSAxaDF6Ii8+PHBhdGggZD0iTTE2IDIwYTIgMiAwIDAgMCAxLjU2LTMuMjUgOCA4IDAgMSAwLTExLjEyIDBBMiAyIDAgMCAwIDggMjAiLz48L3N2Zz4=');
}

.halloween.custom-block {
  --icon: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyYzMgMCA1IDIgNSA1djZjMCA0LTMgNy04IDdoLTJjLTUtMS04LTMtOC03VjdjMC0zIDItNSA1LTVoOHoiLz48Y2lyY2xlIGN4PSI5IiBjeT0iOSIgcj0iMSIvPjxjaXJjbGUgY3g9IjE1IiBjeT0iOSIgcj0iMSIvPjxwYXRoIGQ9Im0xMCAxNCAyIDJoMGwyLTIiLz48L3N2Zz4=');
}

.custom-block-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.custom-block-title::before {
  content: '';
  width: 16px;
  height: 16px;
  -webkit-mask: var(--icon) no-repeat;
  mask: var(--icon) no-repeat;
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  background-color: currentColor;
  color: inherit;
}
