/* ============================================================================
   Нестор — летопись знаний об ИИ.  Custom theme for MkDocs Material.
   Concept: Old-Rus chronicle × circuitry. Ink on parchment, illuminated gold.
   Display: Lora (serif) · Body: Golos Text · Code: JetBrains Mono.
   ========================================================================== */

@import url("external/fonts.googleapis.com/css2.b8d850a9.css");

:root {
  --nx-ink:        #1B2A3A;   /* deep navy — logo outline */
  --nx-ink-soft:   #5A6675;
  --nx-parchment:  #F3EEE3;
  --nx-parchment2: #ECE4D4;
  --nx-card:       #FBF8F1;
  --nx-gold:       #BE8F3A;   /* chronicle gold */
  --nx-gold-deep:  #8A6A2E;
  --nx-gold-bright:#D6AB4C;
  --nx-cyan:       #1E9FD8;   /* AI signal — the quill's circuit */
  --nx-azure-deep: #12688F;   /* readable link on parchment */
  --nx-cyan-bright:#5CC6EE;
  --nx-line:       #DCD2BE;

  --md-text-font-family: "Golos Text", -apple-system, "Segoe UI", Roboto, sans-serif;
  --md-code-font-family: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
}
/* Signature: the quill-becomes-circuit — gold flowing into AI cyan */
:root { --nx-thread: linear-gradient(90deg, var(--nx-gold) 0%, var(--nx-cyan) 100%); }

/* ---- Light scheme: parchment scriptorium ------------------------------- */
[data-md-color-scheme="default"] {
  --md-default-bg-color:        var(--nx-parchment);
  --md-default-fg-color:        var(--nx-ink);
  --md-default-fg-color--light: var(--nx-ink-soft);
  --md-default-fg-color--lighter:#8b96a0;
  --md-primary-fg-color:        var(--nx-parchment2);
  --md-primary-bg-color:        var(--nx-ink);
  --md-primary-bg-color--light: var(--nx-ink-soft);
  --md-accent-fg-color:         var(--nx-cyan);
  --md-typeset-a-color:         var(--nx-azure-deep);
  --md-typeset-mark-color:      rgba(30,159,216,.22);
  --md-code-bg-color:           #eee6d5;
  --md-code-fg-color:           #3f4b57;
  --md-footer-bg-color:         var(--nx-ink);
  --md-footer-bg-color--dark:   #16212e;
}

/* ---- Dark scheme: night scriptorium ------------------------------------ */
[data-md-color-scheme="slate"] {
  --md-hue: 212;
  --md-default-bg-color:        #0F1826;   /* night scriptorium — logo navy */
  --md-default-fg-color:        #E8E1D2;
  --md-default-fg-color--light: #aeb6bf;
  --md-primary-fg-color:        #16212E;
  --md-primary-bg-color:        #E8E1D2;
  --md-accent-fg-color:         var(--nx-cyan-bright);
  --md-typeset-a-color:         var(--nx-cyan-bright);
  --md-code-bg-color:           #16212e;
  --md-code-fg-color:           #cdd6df;
  --nx-card:       #16212e;
  --nx-line:       #26333f;
  --nx-parchment2: #16212E;
  --nx-ink-soft:   #9aa3ac;
}

/* ---- Base typography ---------------------------------------------------- */
.md-typeset { font-size: .8rem; line-height: 1.72; }
.md-grid { max-width: 60rem; }

.md-typeset h1,
.md-typeset h2,
.md-typeset h3,
.md-header__title,
.nx-title {
  font-family: "Lora", Georgia, serif;
  font-weight: 600;
  letter-spacing: -.005em;
}
.md-typeset h1 {
  font-size: 1.95rem;
  line-height: 1.18;
  color: var(--md-default-fg-color);
  margin-bottom: .35em;
}
/* short illuminated rule beneath the page title */
.md-typeset h1::after {
  content: "";
  display: block;
  width: 3.4rem;
  height: 2px;
  margin-top: .55rem;
  background: var(--nx-thread);   /* gold → cyan: quill becomes circuit */
  border-radius: 2px;
}
.md-typeset h2 {
  font-size: 1.35rem;
  margin-top: 2.2em;
  padding-bottom: .3rem;
  border-bottom: 1px solid var(--nx-line);
}
.md-typeset h3 { font-size: 1.06rem; color: var(--md-default-fg-color); }

.md-typeset a { text-underline-offset: .18em; }
.md-typeset a:hover { color: var(--md-accent-fg-color); }

/* ---- Header / tabs: quiet parchment bar, gold active -------------------- */
.md-header { box-shadow: 0 1px 0 var(--nx-line); }
.md-header--shadow { box-shadow: 0 2px 14px rgba(38,48,59,.10); }
.md-header__title { font-size: 1.02rem; }
.md-tabs { border-bottom: 1px solid var(--nx-line); }
.md-tabs__link { font-family: "Golos Text", sans-serif; font-weight: 500; opacity: .78; }
.md-tabs__link--active,
.md-tabs__link:hover { opacity: 1; }
.md-tabs__item--active .md-tabs__link {
  position: relative;
}
.md-tabs__item--active .md-tabs__link::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
  background: var(--nx-thread);
  border-radius: 2px;
}
.md-header__button.md-logo img { border-radius: 6px; height: 1.7rem; width: auto; }

/* ---- Search: rounded, parchment ---------------------------------------- */
.md-search__form { border-radius: 999px; }
[data-md-color-scheme="default"] .md-search__input { background: rgba(38,48,59,.06); }
[data-md-color-scheme="default"] .md-search__input::placeholder { color: var(--nx-ink-soft); }

/* ---- Nav (sidebar) ------------------------------------------------------ */
.md-nav { font-size: .72rem; }
.md-nav__title { font-family: "Lora", serif; }
.md-nav__link--active,
.md-nav__item .md-nav__link--active { color: var(--md-accent-fg-color); font-weight: 600; }

/* ---- Code ---------------------------------------------------------------- */
.md-typeset code { border-radius: 4px; font-size: .84em; }
.md-typeset pre > code { border-radius: 8px; }
.md-typeset .highlight { border: 1px solid var(--nx-line); border-radius: 9px; }

/* ============================================================================
   Homepage: illuminated colophon + chronicle entry cards
   ========================================================================== */
/* Landing (sidebars hidden): let the masthead + cards use the full width */
.md-grid:has(.nx-masthead) { max-width: 72rem; }
.md-content:has(.nx-masthead) .md-content__inner { margin: 0 .8rem; }
.md-content:has(.nx-masthead) .md-content__inner::before { display: none; }

.nx-masthead {
  text-align: center;
  padding: 1rem 1rem 0.2rem;
  margin: 0 0 1.4rem;
}
/* the masthead wordmark IS the page h1 — no rule beneath it, tight spacing */
.md-typeset h1.nx-wordmark { margin: .5rem 0 .1rem; }
.md-typeset h1.nx-wordmark::after { display: none; }
.nx-masthead img.nx-seal {
  width: 200px; height: auto;
  object-fit: contain;
  filter: drop-shadow(0 8px 22px rgba(27,42,58,.16));
}
[data-md-color-scheme="slate"] .nx-masthead img.nx-seal {
  border-radius: 16px;
  background: #f1ead9;
  padding: 10px 14px;
  filter: drop-shadow(0 8px 26px rgba(0,0,0,.4));
}
.nx-masthead .nx-wordmark {
  font-family: "Lora", serif;
  font-weight: 700;
  font-size: 2.5rem;
  letter-spacing: .01em;
  margin: .5rem 0 .1rem;
  line-height: 1;
}
.nx-masthead .nx-tagline {
  font-family: "Golos Text", sans-serif;
  color: var(--nx-ink-soft);
  font-size: .84rem;
  letter-spacing: .02em;
  margin: 0;
}
[data-md-color-scheme="slate"] .nx-masthead .nx-tagline { color: #b9b2a3; }
/* dotted gold halo arc — echo of the seal */
.nx-arc {
  width: 210px; height: 20px; margin: 1rem auto 0;
  background-image: radial-gradient(circle, var(--nx-gold) 1.4px, transparent 1.6px);
  background-size: 13px 13px;
  background-position: center;
  background-repeat: repeat-x;
  -webkit-mask-image: radial-gradient(120px 40px at 50% -14px, #000 55%, transparent 62%);
          mask-image: radial-gradient(120px 40px at 50% -14px, #000 55%, transparent 62%);
  opacity: .8;
}
.nx-eyebrow {
  font-family: "JetBrains Mono", monospace;
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nx-gold-deep);
  text-align: center;
  margin: .4rem 0 1.1rem;
}
[data-md-color-scheme="slate"] .nx-eyebrow { color: var(--nx-gold-bright); }

/* Chronicle entry cards — self-contained grid of clickable <a> cards */
.md-typeset .nx-entries {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: .85rem;
  margin: .4rem 0 1rem;
}
.md-typeset a.nx-card {
  display: block;
  border: 1px solid var(--nx-line);
  border-radius: 12px;
  background: var(--nx-card);
  padding: .95rem 1.05rem 1rem;
  position: relative;
  overflow: hidden;
  color: inherit;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.md-typeset a.nx-card::before {
  content: "✦";
  color: var(--nx-gold);
  position: absolute; top: .7rem; right: .85rem;
  font-size: .78rem; opacity: .5;
}
.md-typeset a.nx-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(38,48,59,.13);
  border-color: var(--nx-gold);
}
.md-typeset a.nx-card .nx-entry-title {
  display: block;
  font-family: "Lora", serif;
  font-weight: 600;
  font-size: 1.02rem;
  line-height: 1.32;
  color: var(--md-default-fg-color);
  padding-right: 1.1rem;
}
.md-typeset a.nx-card:hover .nx-entry-title { color: var(--nx-gold-deep); }
[data-md-color-scheme="slate"] .md-typeset a.nx-card:hover .nx-entry-title { color: var(--nx-gold-bright); }
.md-typeset a.nx-card .nx-meta {
  display: block;
  margin-top: .55rem;
  font-family: "JetBrains Mono", monospace;
  font-size: .64rem;
  letter-spacing: .03em;
  color: var(--nx-ink-soft);
}
.md-typeset a.nx-card .nx-branch { color: var(--nx-gold-deep); }
[data-md-color-scheme="slate"] .md-typeset a.nx-card .nx-meta { color: #9aa3ac; }
[data-md-color-scheme="slate"] .md-typeset a.nx-card .nx-branch { color: var(--nx-gold-bright); }

/* ---- Footer ------------------------------------------------------------- */
.md-footer-meta { font-family: "Golos Text", sans-serif; }

/* ---- Quality floor ------------------------------------------------------ */
:where(a, button, .md-nav__link, .md-tabs__link):focus-visible {
  outline: 2px solid var(--nx-gold);
  outline-offset: 2px;
  border-radius: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .md-typeset .grid.cards.nx-entries > ul > li { transition: none; }
}
@media screen and (max-width: 44.9375em) {
  .nx-masthead .nx-wordmark { font-size: 2rem; }
  .nx-masthead img.nx-seal { width: 116px; height: 116px; }
}
