:root {
  --mds-bg: #080808;
  --mds-bg-soft: #111111;
  --mds-bg-elev: rgba(18, 18, 18, 0.78);
  --mds-bg-panel: rgba(22, 22, 22, 0.9);
  --mds-surface-strong: rgba(245, 241, 232, 0.08);
  --mds-text: #f5f1e8;
  --mds-muted: rgba(245, 241, 232, 0.72);
  --mds-muted-soft: rgba(245, 241, 232, 0.5);
  --mds-accent: #f1ece2;
  --mds-accent-soft: rgba(241, 236, 226, 0.14);
  --mds-border: rgba(245, 241, 232, 0.12);
  --mds-border-strong: rgba(245, 241, 232, 0.22);
  --mds-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
  --mds-shadow-soft: 0 18px 40px rgba(0, 0, 0, 0.24);
  --mds-grid: rgba(245, 241, 232, 0.05);
  --mds-track: rgba(255, 255, 255, 0.12);
  --mds-button-bg: #f1ece2;
  --mds-button-text: #080808;
  --mds-network-canvas-opacity: 0.42;
  --mds-network-line: #f1ece2;
  --mds-network-point: #f5f1e8;
  --mds-network-line-opacity: 0.22;
  --mds-network-point-opacity: 0.38;
  --mds-network-line-width: 1;

  --mds-radius-xl: 34px;
  --mds-radius-lg: 24px;
  --mds-radius-md: 18px;
  --mds-max: 1240px;

  --mds-font-display: "Sora", sans-serif;
  --mds-font-body: "Manrope", sans-serif;

  --mds-space-1: 0.5rem;
  --mds-space-2: 1rem;
  --mds-space-3: 1.5rem;
  --mds-space-4: 2rem;
  --mds-space-6: 3rem;
  --mds-space-8: 4rem;
  --mds-space-12: 6rem;
  --mds-space-16: 8rem;

  --mds-text-xs: 0.75rem;
  --mds-text-sm: 0.875rem;
  --mds-text-base: 1rem;
  --mds-text-lg: 1.125rem;
  --mds-text-xl: 1.25rem;
  --mds-text-2xl: 1.5rem;
  --mds-text-3xl: 2rem;
  --mds-text-4xl: 2.75rem;
  --mds-text-5xl: 3.5rem;
}

:root[data-theme="light"] {
  --mds-bg: #f2efe8;
  --mds-bg-soft: #fbf8f1;
  --mds-bg-elev: rgba(255, 255, 255, 0.78);
  --mds-bg-panel: rgba(255, 255, 255, 0.9);
  --mds-surface-strong: rgba(16, 16, 16, 0.06);
  --mds-text: #111111;
  --mds-muted: rgba(17, 17, 17, 0.72);
  --mds-muted-soft: rgba(17, 17, 17, 0.5);
  --mds-accent: #111111;
  --mds-accent-soft: rgba(17, 17, 17, 0.08);
  --mds-border: rgba(17, 17, 17, 0.12);
  --mds-border-strong: rgba(17, 17, 17, 0.22);
  --mds-shadow: 0 28px 70px rgba(17, 17, 17, 0.12);
  --mds-shadow-soft: 0 20px 40px rgba(17, 17, 17, 0.08);
  --mds-grid: rgba(17, 17, 17, 0.06);
  --mds-track: rgba(17, 17, 17, 0.12);
  --mds-button-bg: #111111;
  --mds-button-text: #f2efe8;
  --mds-network-canvas-opacity: 0.56;
  --mds-network-line: #675f54;
  --mds-network-point: #393329;
  --mds-network-line-opacity: 0.3;
  --mds-network-point-opacity: 0.4;
  --mds-network-line-width: 1.05;
}

:where(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--mds-accent);
  outline-offset: 2px;
}

.mds-theme-image--dark {
  display: block !important;
}

.mds-theme-image--light {
  display: none !important;
}

:root[data-theme="light"] .mds-theme-image--dark {
  display: none !important;
}

:root[data-theme="light"] .mds-theme-image--light {
  display: block !important;
}

/* Compact, site-wide privacy controls. */
.mds-consent {
  position: fixed;
  z-index: 10000;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1rem, 3vw, 2rem);
  width: min(430px, calc(100vw - 2rem));
  box-sizing: border-box;
  padding: 1.25rem;
  border: 1px solid var(--mds-border-strong);
  border-radius: var(--mds-radius-md);
  background: var(--mds-bg-panel);
  box-shadow: var(--mds-shadow);
  color: var(--mds-text);
  font-family: var(--mds-font-body);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.mds-consent[hidden],
.mds-consent [hidden] {
  display: none !important;
}

.mds-consent__eyebrow {
  margin: 0 0 0.35rem !important;
  color: var(--mds-muted-soft) !important;
  font-size: var(--mds-text-xs) !important;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.mds-consent h2 {
  margin: 0;
  color: var(--mds-text);
  font-family: var(--mds-font-display);
  font-size: 1.1rem;
  line-height: 1.3;
}

.mds-consent__intro > p:last-child {
  margin: 0.55rem 0 0;
  color: var(--mds-muted);
  font-size: var(--mds-text-sm);
  line-height: 1.55;
}

.mds-consent a,
.mds-consent__link {
  color: var(--mds-text);
  text-decoration: underline;
  text-decoration-color: var(--mds-border-strong);
  text-underline-offset: 0.2em;
}

.mds-consent__choices {
  display: grid;
  gap: 0.55rem;
  margin-top: 1rem;
}

.mds-consent__privacy-link {
  width: fit-content;
  margin-top: 0.15rem;
  font-size: var(--mds-text-xs);
}

.mds-consent__choice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.8rem;
  align-items: center;
  padding: 0.8rem;
  border: 1px solid var(--mds-border);
  border-radius: 14px;
  background: var(--mds-surface-strong);
  cursor: pointer;
}

.mds-consent__choice > span:first-child {
  display: grid;
  gap: 0.18rem;
}

.mds-consent__choice strong {
  font-size: var(--mds-text-sm);
}

.mds-consent__choice small {
  color: var(--mds-muted);
  font-size: var(--mds-text-xs);
  line-height: 1.4;
}

.mds-consent__choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.mds-consent__switch {
  position: relative;
  width: 38px;
  height: 22px;
  border: 1px solid var(--mds-border-strong);
  border-radius: 999px;
  background: var(--mds-track);
  transition: background 160ms ease;
}

.mds-consent__switch::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--mds-text);
  transition: transform 160ms ease;
}

.mds-consent__choice input:checked + .mds-consent__switch {
  background: var(--mds-accent);
}

.mds-consent__choice input:checked + .mds-consent__switch::after {
  background: var(--mds-bg);
  transform: translateX(16px);
}

.mds-consent__choice input:focus-visible + .mds-consent__switch {
  outline: 2px solid var(--mds-accent);
  outline-offset: 3px;
}

.mds-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  margin-top: 1rem;
}

.mds-consent__button,
.mds-consent__link {
  min-height: 38px;
  padding: 0.55rem 0.8rem;
  border: 1px solid var(--mds-border-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--mds-text);
  font: 700 var(--mds-text-xs)/1 var(--mds-font-body);
  cursor: pointer;
}

.mds-consent__button--primary {
  border-color: var(--mds-button-bg);
  background: var(--mds-button-bg);
  color: var(--mds-button-text);
}

.mds-consent__link {
  min-height: auto;
  margin-left: auto;
  padding-inline: 0.25rem;
  border: 0;
  border-radius: 0;
}

@media (max-width: 520px) {
  .mds-consent {
    right: 0.75rem;
    bottom: 0.75rem;
    width: calc(100vw - 1.5rem);
    max-height: calc(100dvh - 1.5rem);
    overflow-y: auto;
  }

  .mds-consent__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .mds-consent__link {
    grid-column: 1 / -1;
    justify-self: center;
    margin-left: 0;
  }
}
