/* =========================================================================
   provably — custom theme
   Void canvas (#0a0a0f) + gold accent (#D4AF37)
   Fibonacci motion (89/144/233/377ms) + glass morphism
   ========================================================================= */

/* -------------------------------------------------------------------------
   Fonts
   ------------------------------------------------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500;600&display=swap");

/* -------------------------------------------------------------------------
   Design tokens
   ------------------------------------------------------------------------- */
:root {
  /* Gold palette */
  --gold:          #D4AF37;
  --gold-bright:   #E5C158;
  --gold-dim:      rgba(212, 175, 55, 0.55);
  --gold-faint:    rgba(212, 175, 55, 0.25);
  --gold-ghost:    rgba(212, 175, 55, 0.10);
  --gold-glow-sm:  0 0 12px rgba(212, 175, 55, 0.18);
  --gold-glow-md:  0 0 24px rgba(212, 175, 55, 0.20), 0 0 48px rgba(212, 175, 55, 0.08);
  --gold-glow-lg:  0 0 40px rgba(212, 175, 55, 0.22), 0 0 80px rgba(212, 175, 55, 0.10);

  /* Violet accent (for theorem admonitions) */
  --violet:        #8b5cf6;
  --violet-dim:    rgba(139, 92, 246, 0.55);
  --violet-ghost:  rgba(139, 92, 246, 0.10);

  /* Void canvas */
  --void:          #0a0a0f;
  --void-lift:     #0e0e16;
  --void-rise:     #131320;

  /* Text tiers */
  --text-full:     #e8e8ed;
  --text-dim:      rgba(232, 232, 237, 0.65);
  --text-whisper:  rgba(232, 232, 237, 0.38);

  /* Fibonacci durations */
  --t-89:   89ms;
  --t-144: 144ms;
  --t-233: 233ms;
  --t-377: 377ms;
  --t-610: 610ms;

  /* Easing */
  --ease-spring:   cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-smooth:   cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out:      cubic-bezier(0, 0, 0.2, 1);

  /* Borders */
  --border-gold-subtle:  1px solid rgba(212, 175, 55, 0.08);
  --border-gold-soft:    1px solid rgba(212, 175, 55, 0.15);
  --border-gold-medium:  1px solid rgba(212, 175, 55, 0.28);
  --border-gold-focus:   2px solid rgba(212, 175, 55, 0.70);
}

/* -------------------------------------------------------------------------
   Dark theme — void canvas
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] {
  --md-default-bg-color:            #0a0a0f;
  --md-default-fg-color:            #e8e8ed;
  --md-default-fg-color--light:     #b0b0bd;
  --md-default-fg-color--lighter:   #72728a;
  --md-default-fg-color--lightest:  #38384a;

  --md-primary-fg-color:            #D4AF37;
  --md-primary-fg-color--light:     #e8cc6a;
  --md-primary-fg-color--dark:      #a88a28;
  --md-primary-bg-color:            #0a0a0f;

  --md-accent-fg-color:             #D4AF37;
  --md-accent-fg-color--transparent: rgba(212, 175, 55, 0.10);
  --md-accent-bg-color:             #0a0a0f;

  --md-code-bg-color:               #0e0e16;
  --md-code-fg-color:               #e0e0e8;
  --md-code-hl-color:               rgba(212, 175, 55, 0.13);

  --md-typeset-a-color:             #D4AF37;

  --md-footer-bg-color:             #06060b;
  --md-footer-bg-color--dark:       #040408;
  --md-footer-fg-color:             #72728a;
  --md-footer-fg-color--light:      #4a4a60;

  --md-shadow-z1: 0 0 0 1px rgba(212, 175, 55, 0.06), 0 4px 20px rgba(0, 0, 0, 0.65);
  --md-shadow-z2: 0 0 0 1px rgba(212, 175, 55, 0.09), 0 8px 36px rgba(0, 0, 0, 0.75);
  --md-shadow-z3: 0 0 0 1px rgba(212, 175, 55, 0.12), 0 16px 56px rgba(0, 0, 0, 0.85);
}

/* -------------------------------------------------------------------------
   Light theme — warm parchment
   ------------------------------------------------------------------------- */
[data-md-color-scheme="default"] {
  --md-primary-fg-color:            #6B4C9A;
  --md-primary-fg-color--light:     #8a6db8;
  --md-primary-fg-color--dark:      #4e3572;
  --md-primary-bg-color:            #ffffff;

  --md-accent-fg-color:             #C4991F;
  --md-accent-fg-color--transparent: rgba(196, 153, 31, 0.10);

  --md-typeset-a-color:             #6B4C9A;
  --md-code-hl-color:               rgba(107, 76, 154, 0.10);

  --gold:          #C4991F;
  --gold-bright:   #D4AF37;
  --gold-dim:      rgba(196, 153, 31, 0.55);
  --gold-faint:    rgba(196, 153, 31, 0.22);
  --gold-ghost:    rgba(196, 153, 31, 0.08);
}

/* -------------------------------------------------------------------------
   Global
   ------------------------------------------------------------------------- */
body,
.md-typeset {
  font-family: "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Text selection */
::selection {
  background: rgba(212, 175, 55, 0.22);
  color: inherit;
}

[data-md-color-scheme="default"] ::selection {
  background: rgba(107, 76, 154, 0.22);
}

/* -------------------------------------------------------------------------
   Scrollbar — thin, gold-tinted
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] ::-webkit-scrollbar {
  width: 5px;
  height: 5px;
}

[data-md-color-scheme="slate"] ::-webkit-scrollbar-track {
  background: #0a0a0f;
}

[data-md-color-scheme="slate"] ::-webkit-scrollbar-thumb {
  background: rgba(212, 175, 55, 0.18);
  border-radius: 3px;
  transition: background var(--t-144) var(--ease-out);
}

[data-md-color-scheme="slate"] ::-webkit-scrollbar-thumb:hover {
  background: rgba(212, 175, 55, 0.38);
}

/* -------------------------------------------------------------------------
   Focus indicators — gold outline for keyboard nav (WCAG AA)
   ------------------------------------------------------------------------- */
:focus-visible {
  outline: var(--border-gold-focus);
  outline-offset: 3px;
  border-radius: 4px;
}

[data-md-color-scheme="default"] :focus-visible {
  outline-color: rgba(107, 76, 154, 0.70);
}

/* -------------------------------------------------------------------------
   Typography
   ------------------------------------------------------------------------- */
.md-typeset code,
.md-typeset pre,
.md-typeset kbd {
  font-family: "JetBrains Mono", "Fira Code", "SF Mono", monospace;
  font-size: 0.875em;
  line-height: 1.65;
  font-feature-settings: "calt" 1, "liga" 1;
}

/* Headings */
.md-typeset h1 {
  color: var(--gold);
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
}

[data-md-color-scheme="default"] .md-typeset h1 {
  color: #6B4C9A;
}

.md-typeset h2 {
  font-weight: 600;
  letter-spacing: -0.02em;
  border-bottom: var(--border-gold-subtle);
  padding-bottom: 0.35em;
  margin-bottom: 1.1em;
}

[data-md-color-scheme="default"] .md-typeset h2 {
  border-bottom-color: rgba(107, 76, 154, 0.15);
}

.md-typeset h3 {
  font-weight: 600;
  letter-spacing: -0.01em;
}

.md-typeset h4,
.md-typeset h5,
.md-typeset h6 {
  font-weight: 600;
  letter-spacing: -0.005em;
}

/* Body paragraph rhythm */
.md-typeset p {
  line-height: 1.75;
}

/* -------------------------------------------------------------------------
   Links
   ------------------------------------------------------------------------- */
.md-typeset a {
  color: var(--gold);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color var(--t-89) var(--ease-out),
              text-shadow var(--t-144) var(--ease-out);
}

.md-typeset a:hover {
  color: var(--gold-bright);
  text-shadow: 0 0 20px rgba(212, 175, 55, 0.25);
}

[data-md-color-scheme="default"] .md-typeset a {
  color: #6B4C9A;
}

[data-md-color-scheme="default"] .md-typeset a:hover {
  color: #8a6db8;
  text-shadow: none;
}

/* -------------------------------------------------------------------------
   Header — glass morphism
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-header {
  background: rgba(10, 10, 15, 0.88);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: var(--border-gold-subtle);
  box-shadow: none;
}

[data-md-color-scheme="slate"] .md-header[data-md-state="shadow"] {
  box-shadow: 0 1px 0 rgba(212, 175, 55, 0.06), 0 4px 24px rgba(0, 0, 0, 0.5);
}

/* -------------------------------------------------------------------------
   Navigation
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-nav {
  background: transparent;
}

[data-md-color-scheme="slate"] .md-nav__link {
  transition: color var(--t-89) var(--ease-out);
  border-radius: 4px;
}

[data-md-color-scheme="slate"] .md-nav__link:hover {
  color: var(--gold-bright);
}

/* Active nav item — gold left border treatment */
.md-nav__link--active,
.md-nav__link:is([aria-current]) {
  color: var(--gold) !important;
  font-weight: 600;
}

[data-md-color-scheme="slate"] .md-nav__item--active > .md-nav__link {
  color: var(--gold) !important;
}

[data-md-color-scheme="default"] .md-nav__link--active,
[data-md-color-scheme="default"] .md-nav__link:is([aria-current]) {
  color: #6B4C9A !important;
}

/* Sidebar active item highlight */
[data-md-color-scheme="slate"] .md-nav--secondary .md-nav__link--active {
  border-left: 2px solid var(--gold);
  padding-left: calc(0.6rem - 2px);
  background: var(--gold-ghost);
  border-radius: 0 4px 4px 0;
}

/* -------------------------------------------------------------------------
   Search
   ------------------------------------------------------------------------- */
.md-search__input {
  border-radius: 8px;
}

[data-md-color-scheme="slate"] .md-search__input {
  background: rgba(212, 175, 55, 0.05);
  border: var(--border-gold-subtle);
  transition: border-color var(--t-144) var(--ease-out),
              box-shadow var(--t-144) var(--ease-out);
}

[data-md-color-scheme="slate"] .md-search__input:focus {
  border-color: rgba(212, 175, 55, 0.32);
  box-shadow: 0 0 0 4px rgba(212, 175, 55, 0.07);
}

[data-md-color-scheme="slate"] .md-search__output {
  background: #0e0e16;
  border: var(--border-gold-subtle);
  border-radius: 8px;
  backdrop-filter: blur(20px);
}

/* -------------------------------------------------------------------------
   Code blocks — glass card, elevated
   ------------------------------------------------------------------------- */
.md-typeset pre {
  border: var(--border-gold-soft);
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  transition: border-color var(--t-144) var(--ease-out),
              box-shadow var(--t-233) var(--ease-smooth);
}

.md-typeset pre:hover {
  border-color: rgba(212, 175, 55, 0.25);
  box-shadow: 0 4px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(212, 175, 55, 0.08);
}

[data-md-color-scheme="slate"] .md-typeset pre {
  background: #0e0e16;
}

[data-md-color-scheme="slate"] .md-typeset pre > code {
  background: transparent;
}

/* Code block top bar — copy button zone */
[data-md-color-scheme="slate"] .md-typeset .highlight {
  border-radius: 10px;
  overflow: hidden;
}

/* Language label */
[data-md-color-scheme="slate"] .md-typeset .highlight .filename {
  background: rgba(212, 175, 55, 0.08);
  border-bottom: var(--border-gold-subtle);
  color: var(--text-dim);
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78em;
  letter-spacing: 0.04em;
}

/* Inline code */
[data-md-color-scheme="slate"] .md-typeset code:not(.highlight code) {
  background: rgba(212, 175, 55, 0.08);
  border: 1px solid rgba(212, 175, 55, 0.14);
  border-radius: 5px;
  padding: 0.12em 0.38em;
  color: #e8cc6a;
  transition: background var(--t-89) var(--ease-out),
              border-color var(--t-89) var(--ease-out);
}

[data-md-color-scheme="slate"] .md-typeset code:not(.highlight code):hover {
  background: rgba(212, 175, 55, 0.14);
  border-color: rgba(212, 175, 55, 0.24);
}

/* Copy button */
[data-md-color-scheme="slate"] .md-typeset .md-clipboard {
  color: var(--text-whisper);
  transition: color var(--t-89) var(--ease-out),
              opacity var(--t-89) var(--ease-out);
}

[data-md-color-scheme="slate"] .md-typeset .md-clipboard:hover {
  color: var(--gold-bright);
}

/* -------------------------------------------------------------------------
   Tables — alternating rows, gold headers
   ------------------------------------------------------------------------- */
.md-typeset table:not([class]) {
  border: var(--border-gold-soft);
  border-radius: 10px;
  overflow: hidden;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

.md-typeset table:not([class]) th {
  background: rgba(212, 175, 55, 0.09);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gold);
  border-bottom: var(--border-gold-soft);
  padding: 0.75em 1em;
}

[data-md-color-scheme="default"] .md-typeset table:not([class]) th {
  background: rgba(107, 76, 154, 0.07);
  color: #6B4C9A;
  border-bottom-color: rgba(107, 76, 154, 0.18);
}

/* Alternating rows */
[data-md-color-scheme="slate"] .md-typeset table:not([class]) tbody tr:nth-child(even) {
  background: rgba(255, 255, 255, 0.018);
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) tbody tr {
  transition: background var(--t-89) var(--ease-out);
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) tbody tr:hover {
  background: rgba(212, 175, 55, 0.05);
}

[data-md-color-scheme="slate"] .md-typeset table:not([class]) td {
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  padding: 0.65em 1em;
}

/* Remove last-row border */
[data-md-color-scheme="slate"] .md-typeset table:not([class]) tbody tr:last-child td {
  border-bottom: none;
}

/* -------------------------------------------------------------------------
   Admonitions — glass morphism, themed
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-typeset .admonition,
[data-md-color-scheme="slate"] .md-typeset details {
  border-radius: 8px;
  border-left-width: 3px;
  background: rgba(14, 14, 22, 0.80);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.35);
  transition: box-shadow var(--t-233) var(--ease-smooth);
}

[data-md-color-scheme="slate"] .md-typeset .admonition:hover,
[data-md-color-scheme="slate"] .md-typeset details:hover {
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
}

/* Example (gold) */
.md-typeset .admonition.example,
.md-typeset details.example {
  border-color: var(--gold);
}

.md-typeset .admonition.example > .admonition-title,
.md-typeset details.example > summary {
  background: rgba(212, 175, 55, 0.09);
  color: var(--gold);
  font-weight: 600;
}

.md-typeset .admonition.example > .admonition-title::before,
.md-typeset details.example > summary::before {
  color: var(--gold);
}

/* -------------------------------------------------------------------------
   Custom admonition icons
   ------------------------------------------------------------------------- */
:root {
  --md-admonition-icon--proof: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>');
  --md-admonition-icon--theorem: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"/></svg>');
}

/* Proof (gold) */
.md-typeset .admonition.proof,
.md-typeset details.proof {
  border-color: var(--gold);
}

.md-typeset .admonition.proof > .admonition-title,
.md-typeset details.proof > summary {
  background: rgba(212, 175, 55, 0.10);
  color: var(--gold);
  font-weight: 600;
}

.md-typeset .admonition.proof > .admonition-title::before,
.md-typeset details.proof > summary::before {
  background-color: var(--gold);
  -webkit-mask-image: var(--md-admonition-icon--proof);
  mask-image: var(--md-admonition-icon--proof);
}

/* Theorem (violet) */
.md-typeset .admonition.theorem,
.md-typeset details.theorem {
  border-color: var(--violet);
}

.md-typeset .admonition.theorem > .admonition-title,
.md-typeset details.theorem > summary {
  background: rgba(139, 92, 246, 0.10);
  color: #a78bfa;
  font-weight: 600;
}

.md-typeset .admonition.theorem > .admonition-title::before,
.md-typeset details.theorem > summary::before {
  background-color: var(--violet);
  -webkit-mask-image: var(--md-admonition-icon--theorem);
  mask-image: var(--md-admonition-icon--theorem);
}

/* -------------------------------------------------------------------------
   Proof status badges
   ------------------------------------------------------------------------- */
.proof-qed {
  display: inline-block;
  color: var(--gold);
  font-weight: 600;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82em;
  letter-spacing: 0.03em;
  padding: 0.18em 0.65em;
  border: 1px solid rgba(212, 175, 55, 0.38);
  border-radius: 5px;
  background: rgba(212, 175, 55, 0.09);
  transition: box-shadow var(--t-233) var(--ease-smooth),
              background var(--t-144) var(--ease-out);
}

.proof-qed:hover {
  background: rgba(212, 175, 55, 0.15);
  box-shadow: var(--gold-glow-md);
}

/* Ambient glow — always-on for verified badges */
.proof-qed--glow {
  box-shadow: var(--gold-glow-sm);
  animation: badge-breathe 4s ease-in-out infinite;
}

@keyframes badge-breathe {
  0%, 100% { box-shadow: 0 0 8px rgba(212, 175, 55, 0.15); }
  50%       { box-shadow: 0 0 16px rgba(212, 175, 55, 0.28); }
}

.proof-disproved {
  display: inline-block;
  color: #ef4444;
  font-weight: 600;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82em;
  padding: 0.18em 0.65em;
  border: 1px solid rgba(239, 68, 68, 0.38);
  border-radius: 5px;
  background: rgba(239, 68, 68, 0.09);
}

.proof-unknown {
  display: inline-block;
  color: #a78bfa;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82em;
  padding: 0.18em 0.65em;
  border: 1px solid rgba(167, 139, 250, 0.32);
  border-radius: 5px;
  background: rgba(167, 139, 250, 0.08);
}

.proof-skipped {
  display: inline-block;
  color: #72728a;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82em;
  padding: 0.18em 0.65em;
  border: 1px solid rgba(114, 114, 138, 0.28);
  border-radius: 5px;
  background: rgba(114, 114, 138, 0.07);
}

/* -------------------------------------------------------------------------
   Hero section — landing page
   ------------------------------------------------------------------------- */
.hero-example {
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.06) 0%,
    rgba(139, 92, 246, 0.03) 60%,
    rgba(212, 175, 55, 0.02) 100%
  );
  border: var(--border-gold-soft);
  border-radius: 12px;
  padding: 1.75rem 1.75rem 1.5rem;
  margin: 2.5rem 0;
  position: relative;
  overflow: hidden;
  transition: border-color var(--t-233) var(--ease-smooth),
              background var(--t-233) var(--ease-smooth),
              box-shadow var(--t-377) var(--ease-smooth);
}

/* Decorative corner glow */
.hero-example::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 40%;
  height: 2px;
  background: linear-gradient(90deg, var(--gold-dim), transparent);
  border-radius: 0 0 2px 0;
}

.hero-example:hover {
  border-color: rgba(212, 175, 55, 0.32);
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5), var(--gold-glow-sm);
  background: linear-gradient(
    135deg,
    rgba(212, 175, 55, 0.09) 0%,
    rgba(139, 92, 246, 0.05) 60%,
    rgba(212, 175, 55, 0.04) 100%
  );
}

[data-md-color-scheme="default"] .hero-example {
  background: linear-gradient(
    135deg,
    rgba(107, 76, 154, 0.05) 0%,
    rgba(212, 175, 55, 0.03) 100%
  );
  border-color: rgba(107, 76, 154, 0.18);
}

/* -------------------------------------------------------------------------
   Proof pipeline flow diagram
   ------------------------------------------------------------------------- */
.proof-flow {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin: 1.75rem 0;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.76em;
  letter-spacing: 0.01em;
}

.proof-flow-step {
  background: rgba(212, 175, 55, 0.07);
  border: 1px solid rgba(212, 175, 55, 0.18);
  border-radius: 6px;
  padding: 0.45em 0.9em;
  color: var(--text-dim);
  white-space: nowrap;
  transition: background var(--t-144) var(--ease-out),
              border-color var(--t-144) var(--ease-out),
              color var(--t-89) var(--ease-out);
}

.proof-flow-step:hover {
  background: rgba(212, 175, 55, 0.13);
  border-color: rgba(212, 175, 55, 0.30);
  color: var(--text-full);
}

.proof-flow-arrow {
  color: var(--gold-dim);
  font-size: 1em;
  user-select: none;
  flex-shrink: 0;
}

.proof-flow-step--final {
  background: rgba(212, 175, 55, 0.13);
  border-color: rgba(212, 175, 55, 0.40);
  color: var(--gold);
  font-weight: 600;
  box-shadow: var(--gold-glow-sm);
  animation: badge-breathe 4s ease-in-out infinite;
}

[data-md-color-scheme="default"] .proof-flow-step {
  background: rgba(107, 76, 154, 0.06);
  border-color: rgba(107, 76, 154, 0.18);
  color: #333;
}

[data-md-color-scheme="default"] .proof-flow-step--final {
  background: rgba(107, 76, 154, 0.12);
  border-color: rgba(107, 76, 154, 0.38);
  color: #6B4C9A;
  box-shadow: none;
  animation: none;
}

/* -------------------------------------------------------------------------
   Feature grid — landing page
   ------------------------------------------------------------------------- */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
  gap: 1.25rem;
  margin: 2rem 0;
}

.feature-card {
  background: rgba(212, 175, 55, 0.03);
  border: var(--border-gold-soft);
  border-radius: 10px;
  padding: 1.5rem;
  position: relative;
  overflow: hidden;
  transition: border-color var(--t-144) var(--ease-out),
              background var(--t-144) var(--ease-out),
              transform var(--t-233) var(--ease-spring),
              box-shadow var(--t-233) var(--ease-smooth);
}

/* Top-edge accent line */
.feature-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 1.5rem;
  right: 1.5rem;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold-faint), transparent);
  transition: opacity var(--t-144) var(--ease-out);
  opacity: 0;
}

.feature-card:hover {
  border-color: rgba(212, 175, 55, 0.28);
  background: rgba(212, 175, 55, 0.06);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(212, 175, 55, 0.06);
}

.feature-card:hover::before {
  opacity: 1;
}

.feature-card h3 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  color: var(--gold);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

.feature-card p {
  font-size: 0.9em;
  line-height: 1.7;
  color: var(--text-dim);
  margin: 0 0 0.75rem;
}

.feature-card pre {
  font-size: 0.78em;
  overflow-x: auto;
  margin: 0.5rem 0 0;
}

.feature-card .highlight {
  overflow-x: auto;
}

.feature-card code {
  font-size: 0.85em;
}

[data-md-color-scheme="default"] .feature-card {
  background: rgba(107, 76, 154, 0.03);
  border-color: rgba(107, 76, 154, 0.12);
}

[data-md-color-scheme="default"] .feature-card:hover {
  border-color: rgba(107, 76, 154, 0.28);
  background: rgba(107, 76, 154, 0.06);
}

[data-md-color-scheme="default"] .feature-card h3 {
  color: #6B4C9A;
}

/* -------------------------------------------------------------------------
   Hero stats / badge row
   ------------------------------------------------------------------------- */
.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 1.75rem 0 2rem;
  align-items: center;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.78em;
  font-weight: 500;
  padding: 0.35em 0.8em;
  border-radius: 100px;
  border: 1px solid rgba(212, 175, 55, 0.28);
  background: rgba(212, 175, 55, 0.07);
  color: var(--gold-bright);
  letter-spacing: 0.02em;
  transition: background var(--t-144) var(--ease-out),
              box-shadow var(--t-233) var(--ease-smooth);
  white-space: nowrap;
}

.hero-badge:hover {
  background: rgba(212, 175, 55, 0.13);
  box-shadow: var(--gold-glow-sm);
}

.hero-badge--self-proving {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: var(--gold-glow-sm);
  animation: badge-breathe 4s ease-in-out infinite;
}

.hero-badge svg,
.hero-badge .badge-icon {
  width: 0.9em;
  height: 0.9em;
  opacity: 0.85;
}

/* CTA button */
.cta-button {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.95em;
  padding: 0.65em 1.5em;
  border-radius: 8px;
  background: var(--gold);
  color: #0a0a0f;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background var(--t-89) var(--ease-out),
              box-shadow var(--t-144) var(--ease-out),
              transform var(--t-233) var(--ease-spring);
  letter-spacing: -0.01em;
}

.cta-button:hover {
  background: var(--gold-bright);
  box-shadow: var(--gold-glow-md);
  transform: translateY(-1px);
  color: #0a0a0f;
  text-shadow: none;
}

.cta-button--outline {
  background: transparent;
  color: var(--gold);
  border: var(--border-gold-medium);
}

.cta-button--outline:hover {
  background: var(--gold-ghost);
  color: var(--gold-bright);
}

/* -------------------------------------------------------------------------
   Proof pipeline — visual architecture diagram
   ------------------------------------------------------------------------- */
.pipeline-diagram {
  margin: 2rem 0;
  padding: 1.5rem;
  background: rgba(212, 175, 55, 0.03);
  border: var(--border-gold-subtle);
  border-radius: 10px;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82em;
  overflow-x: auto;
}

.pipeline-diagram pre {
  margin: 0;
  border: none;
  background: transparent;
  color: var(--text-dim);
  padding: 0;
  border-radius: 0;
}

.pipeline-diagram pre:hover {
  border: none;
  box-shadow: none;
}

/* -------------------------------------------------------------------------
   Proof table — self-proof page
   ------------------------------------------------------------------------- */
.proof-table {
  width: 100%;
  margin: 1.5rem 0;
}

.proof-table td:last-child {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.82em;
}

/* -------------------------------------------------------------------------
   Tabs
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-typeset .tabbed-labels > label {
  color: var(--text-whisper);
  border-bottom: 2px solid transparent;
  transition: color var(--t-89) var(--ease-out),
              border-color var(--t-144) var(--ease-out);
}

[data-md-color-scheme="slate"] .md-typeset .tabbed-labels > label:hover {
  color: var(--gold);
}

[data-md-color-scheme="slate"] .md-typeset .tabbed-labels > label:has(+ input:checked) {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

/* -------------------------------------------------------------------------
   Footer — minimal
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-footer {
  border-top: var(--border-gold-subtle);
  background: #06060b;
}

[data-md-color-scheme="slate"] .md-footer-meta {
  background: #040408;
}

/* -------------------------------------------------------------------------
   Announcement bar
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-announce {
  background: rgba(212, 175, 55, 0.08);
  border-bottom: var(--border-gold-soft);
  color: var(--gold);
  font-size: 0.85rem;
  text-align: center;
}

[data-md-color-scheme="slate"] .md-announce a {
  color: var(--gold-bright);
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* -------------------------------------------------------------------------
   mkdocstrings API docs
   ------------------------------------------------------------------------- */
.doc-heading {
  border-bottom: var(--border-gold-soft) !important;
}

[data-md-color-scheme="slate"] .doc-label {
  background: rgba(212, 175, 55, 0.10);
  border: 1px solid rgba(212, 175, 55, 0.22);
  color: var(--gold);
  border-radius: 5px;
  transition: background var(--t-89) var(--ease-out);
}

[data-md-color-scheme="slate"] .doc-label:hover {
  background: rgba(212, 175, 55, 0.16);
}

/* -------------------------------------------------------------------------
   Content area — max width for readability
   ------------------------------------------------------------------------- */
.md-content__inner {
  max-width: 860px;
}

/* -------------------------------------------------------------------------
   Background depth — multi-layer void
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-main {
  background:
    radial-gradient(ellipse 60% 40% at 70% 10%, rgba(212, 175, 55, 0.025) 0%, transparent 60%),
    radial-gradient(ellipse 50% 30% at 10% 80%, rgba(139, 92, 246, 0.020) 0%, transparent 55%),
    #0a0a0f;
}

/* -------------------------------------------------------------------------
   Page transitions — subtle fade-in
   ------------------------------------------------------------------------- */
.md-content {
  animation: content-in var(--t-233) var(--ease-smooth);
}

@keyframes content-in {
  from { opacity: 0.6; transform: translateY(6px); }
  to   { opacity: 1;   transform: translateY(0); }
}

/* -------------------------------------------------------------------------
   Keyboard shortcuts (kbd)
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-typeset kbd {
  background: rgba(212, 175, 55, 0.07);
  border: 1px solid rgba(212, 175, 55, 0.22);
  border-bottom-width: 2px;
  color: var(--gold-bright);
  border-radius: 5px;
  padding: 0.1em 0.4em;
  font-size: 0.8em;
}

/* -------------------------------------------------------------------------
   Horizontal rule — gold accent
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-typeset hr {
  border: none;
  border-top: var(--border-gold-subtle);
  margin: 2.5em 0;
}

/* -------------------------------------------------------------------------
   Blockquote — gold left bar
   ------------------------------------------------------------------------- */
[data-md-color-scheme="slate"] .md-typeset blockquote {
  border-left: 3px solid var(--gold-dim);
  background: rgba(212, 175, 55, 0.04);
  border-radius: 0 6px 6px 0;
  padding: 0.75rem 1.25rem;
  color: var(--text-dim);
}

/* -------------------------------------------------------------------------
   Responsive refinements
   ------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .feature-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .proof-flow {
    font-size: 0.72em;
    gap: 0.3rem;
  }

  .hero-example {
    padding: 1.25rem;
    margin: 1.5rem 0;
  }

  .hero-badges {
    gap: 0.5rem;
  }

  .cta-button {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 480px) {
  .proof-flow-step {
    padding: 0.35em 0.6em;
  }
}

/* -------------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0ms !important;
    transition-duration: 0ms !important;
  }

  .proof-qed--glow,
  .hero-badge--self-proving,
  .proof-flow-step--final {
    animation: none !important;
    box-shadow: 0 0 6px rgba(212, 175, 55, 0.18) !important;
  }
}

/* -------------------------------------------------------------------------
   High contrast
   ------------------------------------------------------------------------- */
@media (prefers-contrast: high) {
  [data-md-color-scheme="slate"] {
    --md-default-fg-color: #ffffff;
    --md-default-fg-color--light: #e0e0e0;
  }

  .feature-card,
  .hero-example {
    border-width: 2px;
  }
}
