:root {
  --lp-max-width: 50rem;
  --lp-text-scale: 0.75;
}

.lp-max-w {
  max-width: var(--lp-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .lp-max-w {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .lp-max-w {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

.lp-grid-2 {
  display: grid;
  gap: 1rem;
}

@media (min-width: 768px) {
  .lp-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    align-items: center;
  }
}

@media (min-width: 1280px) {
  .lp-grid-2 {
    gap: 5rem;
  }
}

.lp-title {
  font-size: calc(2.25rem * var(--lp-text-scale));
  font-weight: 800;
  line-height: 1;
  color: #1f2937;
}

@media (min-width: 1024px) {
  .lp-title {
    font-size: calc(5rem * var(--lp-text-scale));
    line-height: 1;
  }
}

[data-md-color-scheme="slate"] .lp-title {
  color: #ffffff;
}

.lp-subtitle {
  font-size: calc(0.9rem * var(--lp-text-scale));
  color: #4b5563;
}

[data-md-color-scheme="slate"] .lp-subtitle {
  color: #9ca3af;
}

.lp-gradient-text {
  background: linear-gradient(to top right, #0ea5e9, #7c3aed 85%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 900;
}

/* Logo morphing organic animation */
@keyframes aura-morph {
  0% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  33% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; transform: translate(-45%, -55%) rotate(120deg) scale(1.1); }
  66% { border-radius: 50% 50% 50% 50% / 30% 70% 70% 30%; transform: translate(-55%, -45%) rotate(240deg) scale(0.9); }
  100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; transform: translate(-50%, -50%) rotate(360deg) scale(1); }
}

.lp-logo-aura {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 22rem;
  height: 18rem;
  max-width: 60vw;
  max-height: 60vw;
  background: linear-gradient(135deg, var(--md-primary-fg-color), #7c3aed);
  filter: blur(80px);
  opacity: 0.15;
  z-index: 0;
  animation: aura-morph 15s linear infinite;
  pointer-events: none;
}

[data-md-color-scheme="slate"] .lp-logo-aura {
  opacity: 0.25;
  filter: blur(60px);
}

/* Landing Page Grid Layouts */
.lp-grid-2 {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(2, 1fr);
}

@media screen and (max-width: 48rem) {
  .lp-grid-2 {
    grid-template-columns: 1fr;
  }
}

/* Tighten Get Started cards */
.lp-card {
  align-items: center;
  gap: 0.25rem;
}

.lp-card-icon, .lp-card-title, .lp-card-description {
  margin: 0 !important;
}

/* Documentation Tables - Minimalist border-bottom style */
.md-typeset table:not([class]) {
  border: none !important;
  border-collapse: collapse !important;
  box-shadow: none !important;
}

.md-typeset thead {
  border: none !important;
}

.md-typeset tr {
  border: none !important;
}

.md-typeset th {
  border: none !important;
  border-bottom: 2px solid var(--md-default-fg-color--lightest) !important;
  padding: 0.5rem 0.5rem 2px 0.5rem !important;
  background-color: transparent !important;
}

.md-typeset td {
  border: none !important;
  border-bottom: 1px solid var(--md-default-fg-color--lightest) !important;
  padding: 0.4rem 0.5rem 1px 0.5rem !important;
}

.md-typeset tr:last-child td {
  border-bottom: none !important;
}

.md-typeset h2 { font-weight: 600;}
.md-typeset h3 { font-weight: 600;}

.lp-hero-logo {
  transition: filter 0.2s ease-in-out;
  color: transparent;
}

/* Syntax Highlighting Overrides - Linking to your GitHub theme variables below */

.highlight .kt,
.highlight .nc {
  color: var(--md-code-hl-type-color) !important; /* Maps to your new green color */
}

.highlight .nf {
  color: var(--md-code-hl-function-color) !important; /* Maps to your purple/function color */
}

.lp-hero-logo:hover {
  filter: drop-shadow(0 10px 15px rgba(29, 78, 216, 0.2));
}

.lp-hero-tooltip {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.95);
  background-color: rgba(30, 41, 59, 0.95);
  backdrop-filter: blur(4px);
  color: #f8fafc;
  padding: 0.75rem 1.5rem;
  border-radius: 9999px;
  font-size: 1rem;
  font-weight: 600;
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease-in-out;
  pointer-events: none;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2), 0 4px 6px -2px rgba(0, 0, 0, 0.1);
  white-space: nowrap;
}

.lp-hero-logo:hover + .lp-hero-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) scale(1);
}

.lp-icon-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 3.5rem;
  height: 3.5rem;
  background-color: #f3f4f6;
  border: 2px solid #e5e7eb;
  border-radius: 0.375rem;
  color: #4b5563;
  transition: all 0.2s;
  text-decoration: none;
}

[data-md-color-scheme="slate"] .lp-icon-btn {
  background-color: #1e293b;
  border-color: #1e293b;
  color: #f3f4f6;
}

.lp-icon-btn:hover {
  background-color: #f9fafb;
  border-color: #d1d5db;
  color: #2563eb;
}

[data-md-color-scheme="slate"] .lp-icon-btn:hover {
  background-color: #1f2937;
  border-color: #334155;
  color: #3b82f6;
}

.lp-download-group {
  display: flex;
  align-items: stretch;
}

.lp-download-group .lp-get-started-btn,
.lp-download-group .lp-icon-btn {
  position: relative;
}

.lp-download-group .lp-get-started-btn:hover,
.lp-download-group .lp-icon-btn:hover {
  z-index: 1;
}

.lp-get-started-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
  text-align: center;
  background-color: #2563eb;
  border: 2px solid #2563eb;
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s;
  line-height: 1;
  font-size: 0.875rem;
}

.lp-get-started-btn:hover {
  border-color: #000;
}

[data-md-color-scheme="slate"] .lp-get-started-btn:hover {
  border-color: #3b82f6;
}

.lp-read-docs-btn {
  background: transparent;
  color: var(--md-default-fg-color) !important;
  border: 2px solid color-mix(in srgb, var(--md-primary-fg-color), transparent 20%);
  padding: 0.5rem 1rem;
  margin-top: 1rem;
  font-size: 0.85rem;
  transition: all 0.2s ease-in-out !important;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 0.75rem;
  text-align: center;
  border-radius: 0.375rem;
  font-weight: 500;
  text-decoration: none;
  line-height: 1;
}

.lp-read-docs-btn:hover {
  background: color-mix(in srgb, var(--md-primary-fg-color), transparent 90%);
  border-color: var(--md-primary-fg-color) !important;
  /* transform: translateY(-1px); */
}

#os-name {
  display: inline-block;
  min-width: 7ch;
  text-align: left;
}

.lp-code-wrapper {
  background-color: var(--md-code-bg-color);
  border-radius: 0.5rem;
  overflow: hidden;
  box-shadow: var(--md-shadow-z3);
  position: relative; /* Ensure absolute positioning works for the button */
}

.lp-code-header {
  padding: 0.5rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: color-mix(in srgb, var(--md-code-fg-color), transparent 95%);
  border-bottom: 1px solid color-mix(in srgb, var(--md-code-fg-color), transparent 90%);
}

.lp-code-dots {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}

.lp-code-select-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.lp-code-select {
  background: color-mix(in srgb, var(--md-code-fg-color), transparent 95%);
  color: var(--md-default-fg-color);
  border: 1px solid color-mix(in srgb, var(--md-code-fg-color), transparent 85%);
  border-radius: 0.25rem;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.2rem 1.5rem 0.2rem 0.5rem;
  cursor: pointer;
  appearance: none;
  transition: all 0.2s ease;
}

.lp-code-select:hover {
  background-color: color-mix(in srgb, var(--md-code-fg-color), transparent 90%);
  border-color: var(--md-primary-fg-color);
}

.lp-code-select-wrapper::after {
  content: "▾";
  position: absolute;
  right: 0.5rem;
  font-size: 0.6rem;
  pointer-events: none;
  color: var(--md-code-hl-comment-color);
}

.lp-tab-content {
  display: none;
  animation: fadeIn 0.3s ease;
}

.lp-tab-content.active {
  display: block;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.lp-code-dot {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
}

.lp-code-content {
  font-size: 0.85rem;
}

.lp-features-grid {
  display: grid;
  column-gap: 2rem;
  row-gap: 1.5rem;
}

@media (min-width: 768px) {
  .lp-features-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.lp-feature-item {
  display: flex;
  gap: 1.25rem;
  align-items: center;
  max-width: 28rem;
}

.lp-feature-item-inline {
  max-width: 28rem;
  display: flex;
  flex-direction: column;
}

.lp-feature-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 24px;
}

.lp-feature-item.lp-align-top {
  align-items: flex-start;
}

.lp-get-started-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 2rem;
}

@media (min-width: 640px) {
  .lp-get-started-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .lp-get-started-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.md-typeset .lp-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-align: center;
  border-radius: 0.5rem;
  padding: 1.5rem;
  text-decoration: none;
  transition: all 0.2s ease-in-out !important;
  border: 1px solid var(--md-default-fg-color--lightest);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.md-typeset .lp-card:hover {
  background-color: var(--md-default-fg-color--lightest);
  border-color: color-mix(in srgb, var(--md-primary-fg-color), transparent 60%);
  /* transform: translateY(-2px); */
  box-shadow: 0 6px 12px -2px rgba(0, 0, 0, 0.05);
}

.lp-card-icon {
  margin: 0 auto 0.25rem;
  color: var(--md-default-fg-color);
}

.lp-card-title {
  font-size: calc(1.125rem * var(--lp-text-scale));
  font-weight: 600;
  color: var(--md-default-fg-color);
  margin-top: 0;
  margin-bottom: 0;
}

.lp-card-description {
  color: var(--md-default-fg-color--light);
  font-size: calc(0.875rem * var(--lp-text-scale));
}

/* ================================================================
   MkDocs Material Overrides
   ================================================================ */

/* Syntax highlighting colors (GitHub theme) */
[data-md-color-scheme="slate"] {
  --md-code-hl-keyword-color: #ff7b72;
  --md-code-hl-string-color: #a5d6ff;
  --md-code-hl-number-color: #79c0ff;
  --md-code-hl-comment-color: #8b949e;
  --md-code-hl-name-color: #C5E478;
  --md-code-fg-color: #D39DD6;
  --md-code-hl-variable-color: #ffa657;
  --md-code-hl-function-color: #d2a8ff;
  --md-code-hl-type-color: #7ee787;
  --md-code-hl-constant-color: #79c0ff;
  --md-code-hl-operator-color: #ff7b72;
  --md-code-hl-punctuation-color: #c9d1d9;
}

[data-md-color-scheme="default"] {
  --md-default-bg-color: #fafafa;
  --md-code-bg-color: #e5e7eb;
  --md-code-hl-keyword-color: #cf222e;
  --md-code-hl-string-color: #0a3069;
  --md-code-hl-number-color: #0550ae;
  --md-code-hl-comment-color: #6e7781;
  --md-code-hl-name-color: #3B61B0;
  --md-code-fg-color: #8250df;
  --md-code-hl-variable-color: #953800;
  --md-code-hl-function-color: #8250df;
  --md-code-hl-type-color: #116329;
  --md-code-hl-constant-color: #0550ae;
  --md-code-hl-operator-color: #cf222e;
  --md-code-hl-punctuation-color: #24292f;
}

/* Material injects top margins on headings and paragraphs */
.lp-title { margin: 0 !important; }
.lp-subtitle { margin: 0 !important; }


/* Material overrides link colors */
.lp-get-started-btn:not(.lp-read-docs-btn) { color: #ffffff !important; }

/* Material resets border-radius and spacing on grouped button children */
.lp-download-group .lp-get-started-btn {
  border-radius: 0.375rem 0 0 0.375rem !important;
  margin: 0 !important;
}

.lp-download-group .lp-icon-btn {
  border-radius: 0 !important;
  margin: 0 0 0 -2px !important;
}

.lp-download-group .lp-icon-btn:last-child {
  border-radius: 0 0.375rem 0.375rem 0 !important;
}

/* Material injects its own code block background, margin, padding and positioning */
.lp-code-content .highlight,
.lp-code-content pre {
  background-color: transparent !important;
  margin: 0 !important;
  padding: 0 0 1rem 0 !important;
  position: relative !important; /* Anchor for the copy button */
}

.lp-code-content code {
  background-color: transparent !important;
}

/* Material's copy button component, stabilized to the top-right of the code area */
.lp-code-content .md-code__nav {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 10;
  background-color: transparent !important;
}

.lp-code-content .md-code__button {
  background-color: transparent;
  color: var(--md-default-fg-color--light);
  border: none;
  cursor: pointer;
}

.lp-code-content .md-code__button:hover {
  color: var(--md-default-fg-color);
}

/* General view of the documentation width */
.md-grid {
  max-width: 1680px; /* https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#content-area-width */
}

/* The markdown info note */
.admonition.note {
  /* width: 65%; */
  margin: 0 auto;
}

/* Just the general hue of the theme */
[data-md-color-scheme="slate"] { /* https://squidfunk.github.io/mkdocs-material/setup/changing-the-colors/#custom-color-schemes*/
  --md-hue: 230;
}

/* Custom Header Links */
.md-header__link {
  color: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.4rem 0.8rem;
  border-radius: 0.2rem;
  margin-left: 0.2rem;
  transition: background-color 0.2s, opacity 0.2s;
}

.md-header__link:hover {
  background-color: color-mix(in srgb, currentColor, transparent 85%);
}

/* Hide header link on mobile/tablet to avoid crowding */
@media screen and (max-width: 76.25em) {
  .md-header__link {
    display: none;
  }
}

/* Standard Theme Variable Overrides */
:root {
  /* Glassmorphism Header using variables */
  --md-header-bg-color: color-mix(in srgb, var(--md-primary-fg-color), transparent 10%);
  --md-header-bg-color--light: color-mix(in srgb, var(--md-primary-fg-color), transparent 10%);
}

[data-md-color-scheme="slate"] {
  --md-header-bg-color: color-mix(in srgb, var(--md-header-bg-color), transparent 15%);
}

.md-header {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  background-color: var(--md-header-bg-color);
}


/* Standard search visibility fix */
.md-search[data-md-state="active"] .md-search__output {
  display: block;
}

/* Search placeholder and icon color for light mode */
[data-md-color-scheme="default"] .md-search__input::placeholder {
  color: var(--md-default-fg-color);
  opacity: 1;
}

[data-md-color-scheme="default"] .md-search__icon {
  color: var(--md-default-fg-color);
}

@media screen and (max-width: 60rem) {
  /* Prevent backdrop-filter from clipping the search overlay on mobile */
  .md-header {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

/* Ensure visibility on semi-transparent background in Light Mode */
[data-md-color-scheme="default"] {
  --md-header-bg-color: color-mix(in srgb, var(--md-default-bg-color), transparent 15%);
  --md-header-fg-color: #1f2937; /* Dark text/icons for light mode */
}

[data-md-color-scheme="slate"] {
  --md-header-bg-color: color-mix(in srgb, var(--md-default-bg-color), transparent 15%);
}

[data-md-color-scheme="default"] .md-header {
  color: var(--md-header-fg-color);
}

[data-md-color-scheme="default"] .md-header__button,
[data-md-color-scheme="default"] .md-header__link {
  color: inherit !important;
}

[data-md-color-scheme="default"] .md-header__button.md-logo img,
[data-md-color-scheme="default"] .md-header__button.md-logo svg {
  filter: none !important;
}

.md-nav__button.md-logo img,
.md-nav__button.md-logo svg {
  filter: brightness(0) invert(1);
}

/* Documentation Utilities */
.grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media screen and (max-width: 48rem) {
  .grid-2 {
    grid-template-columns: 1fr;
  }
}

/* Disable mobile drawer overlay animation */
@media screen and (max-width: 76.2344em) {
  [data-md-toggle="drawer"]:checked ~ .md-overlay,
  .md-overlay {
    transition: none !important;
  }
}

/* Landing Page Feature Sections */
.lp-features-top {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.lp-feature-list {
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

.lp-feature-item {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

.lp-feature-content h3 a {
  color: inherit;
  text-decoration: none;
}

.lp-feature-content h3 a:hover {
  text-decoration: underline;
  color: var(--md-primary-fg-color);
}

.lp-feature-icon-circle {
  flex-shrink: 0;
  width: calc(4.5rem * var(--lp-text-scale));
  height: calc(4.5rem * var(--lp-text-scale));
  border: 1px solid color-mix(in srgb, var(--md-header-fg-color), transparent 85%);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-header-fg-color);
  background-color: #f3f4f6;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

[data-md-color-scheme="slate"] .lp-feature-icon-circle {
  background-color: #0f172a;
  color: #e5e7eb;
  border-color: rgba(255, 255, 255, 0.1);
}

.lp-feature-content {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.lp-feature-content h3 {
  margin: 0 !important;
  font-size: calc(1.1rem * var(--lp-text-scale)) !important;
  font-weight: 700 !important;
}

.lp-feature-content p {
  margin: 0 !important;
  font-size: calc(0.85rem * var(--lp-text-scale)) !important;
  line-height: 1.5 !important;
  color: var(--md-default-fg-color--light);
}

.lp-evolution-section h2 {
  font-size: calc(2.2rem * var(--lp-text-scale)) !important;
  line-height: 1.1 !important;
  margin-bottom: 1.5rem !important;
}

.lp-evolution-section p {
  font-size: calc(0.95rem * var(--lp-text-scale)) !important;
  line-height: 1.6 !important;
  color: var(--md-default-fg-color--light);
  margin-bottom: 1.5rem !important;
}

.lp-feature-grid-8 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2.5rem 4rem;
  margin-top: 1.5rem;
}

.lp-grid-feature {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}

.lp-grid-feature-icon {
  flex-shrink: 0;
  color: var(--md-default-fg-color);
}

.lp-grid-feature-icon svg {
  fill: currentColor;
  width: calc(54px * var(--lp-text-scale));
  height: calc(54px * var(--lp-text-scale));
}

@media screen and (max-width: 60rem) {
  .lp-features-top, .lp-feature-grid-8 {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
}

/* Remove footer meta (copyright, social links, etc.) */
.md-footer-meta {
  display: none;
}
