/* ==========================================================================
   .bellek — documentation membre
   Brand: #FFFFFF · #A7A7A7 · #2C2C2C · #0F0F0F  —  Inter Light→Bold
   DISCRETION · PRECISION · CONTROL
   Base: html 125% (Material) → 1rem = 20px
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");

:root,
[data-md-color-scheme="slate"] {
  --bb-white: #ffffff;
  --bb-grey: #a7a7a7;
  --bb-grey-2: #6f6f6f;
  --bb-ui: #2c2c2c;
  --bb-black: #0f0f0f;
  --bb-panel: #151515;
  --bb-panel-2: #1a1a1a;
  --bb-line: #2c2c2c;
  --bb-line-soft: #222222;
  --bb-ok: #34d399;
  --bb-ease: cubic-bezier(.22, 1, .36, 1);
  --bb-r: 10px;
  --bb-r-s: 6px;

  --md-default-bg-color: var(--bb-black);
  --md-default-fg-color: var(--bb-white);
  --md-default-fg-color--light: var(--bb-grey);
  --md-default-fg-color--lighter: var(--bb-grey-2);
  --md-default-fg-color--lightest: var(--bb-ui);
  --md-primary-fg-color: var(--bb-black);
  --md-primary-bg-color: var(--bb-white);
  --md-accent-fg-color: var(--bb-white);
  --md-accent-fg-color--transparent: rgba(255, 255, 255, .08);
  --md-typeset-a-color: var(--bb-white);
  --md-code-bg-color: #131313;
  --md-code-fg-color: #ececec;
  --md-code-hl-color: rgba(255, 255, 255, .08);
  --md-footer-bg-color: var(--bb-black);
  --md-footer-bg-color--dark: var(--bb-black);
  --md-typeset-table-color: var(--bb-line);
  --md-shadow-z1: none;
  --md-shadow-z2: none;
  --md-shadow-z3: none;
}

html { scroll-behavior: smooth; }

body {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  background: var(--bb-black);
  color: var(--bb-white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "cv11", "ss01", "tnum";
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #333; border-radius: 10px; border: 2px solid var(--bb-black); }
::-webkit-scrollbar-thumb:hover { background: #4a4a4a; }

/* --------------------------------------------------------------- header */
.md-header {
  background: rgba(15, 15, 15, .72) !important;
  backdrop-filter: blur(18px) saturate(1.1);
  -webkit-backdrop-filter: blur(18px) saturate(1.1);
  border-bottom: 1px solid var(--bb-line-soft);
  box-shadow: none !important;
  color: var(--bb-white);
}

.md-header__inner { padding: 0 .6rem; height: 2.6rem; }

.md-header__button.md-logo {
  padding: 0;
  margin: 0 .35rem 0 .2rem;
}

.bb-mark,
.md-header__button.md-logo img,
.md-header__button.md-logo svg {
  width: 1.55rem;
  height: 1.55rem;
  display: block;
  border-radius: .35rem;
}

.md-header__title {
  font-size: .8rem;
  line-height: 2.6rem;
  margin-left: 0;
}

/* keep the brand topic, never swap to page title */
.md-header__topic:nth-child(2) { display: none; }
.md-header__title--active .md-header__topic:first-child {
  opacity: 1;
  transform: none;
  pointer-events: auto;
}

.md-header__topic:first-child .md-ellipsis {
  font-weight: 700;
  letter-spacing: -.045em;
  color: var(--bb-white);
}

.md-header__topic:first-child .md-ellipsis::after {
  content: "BABATICKET  |  BABAVIP TOOL";
  display: inline-block;
  margin-left: .6rem;
  padding-left: .6rem;
  border-left: 1px solid var(--bb-ui);
  font-size: .42rem;
  font-weight: 500;
  letter-spacing: .24em;
  color: var(--bb-grey-2);
  vertical-align: middle;
  transform: translateY(-1px);
  white-space: pre;
}

@media (max-width: 59.9375em) {
  .md-header__topic:first-child .md-ellipsis::after { display: none; }
}

.md-header__option,
.md-header__button:not(.md-logo) { color: var(--bb-grey); }

.md-search__form {
  background: rgba(255, 255, 255, .04) !important;
  border: 1px solid var(--bb-line);
  border-radius: 8px !important;
  box-shadow: none !important;
  height: 1.7rem;
}

.md-search__input {
  font-size: .68rem;
  color: var(--bb-white);
}

.md-search__input::placeholder,
.md-search__input + .md-search__icon { color: var(--bb-grey-2); }

[data-md-toggle="search"]:checked ~ .md-header .md-search__form {
  background: var(--bb-panel) !important;
  border-color: var(--bb-grey-2);
}

.md-search__output {
  border: 1px solid var(--bb-line);
  border-top: 0;
  border-radius: 0 0 8px 8px;
  background: var(--bb-panel);
}

.md-search-result__meta { background: var(--bb-panel-2); color: var(--bb-grey); font-size: .6rem; }
.md-search-result__item { box-shadow: 0 -1px var(--bb-line-soft); }
.md-search-result .md-typeset h1 { font-size: .75rem; margin: 0; }
.md-search-result mark { background: transparent; color: var(--bb-white); text-decoration: underline; }

/* --------------------------------------------------------------- layout */
.md-grid { max-width: 78rem; }
.md-main__inner { margin-top: .9rem; }

.md-sidebar--primary { width: 12.6rem; }
.md-sidebar--secondary { display: none; }

.md-content { margin-left: 0; }
.md-content__inner {
  margin: 0 1.6rem 2.4rem 1.2rem;
  max-width: 54rem;
  padding-top: .2rem;
}

.md-content__inner::before { height: 0; }

@media (max-width: 76.1875em) {
  .md-content__inner { margin: 0 1rem 2rem; }
}

/* --------------------------------------------------------------- nav */
.md-sidebar__scrollwrap { scrollbar-gutter: stable; }
.md-nav { font-size: .66rem; }

.md-nav--primary > .md-nav__title { display: none; }

.md-nav__list { margin: 0; }
.md-nav__item { padding: 0 .35rem; }
.md-nav__item .md-nav__item { padding-right: 0; }

.md-nav__link {
  margin: .08rem 0;
  padding: .32rem .55rem;
  border-radius: 7px;
  color: var(--bb-grey);
  gap: .3rem;
  line-height: 1.3;
  position: relative;
  transition: background .14s var(--bb-ease), color .14s var(--bb-ease);
}

.md-nav__link:hover,
.md-nav__link:focus {
  background: rgba(255, 255, 255, .05);
  color: var(--bb-white) !important;
}

.md-nav__link--active,
.md-nav__item--active > .md-nav__link {
  color: var(--bb-white) !important;
  font-weight: 600;
  background: rgba(255, 255, 255, .08);
}

/* navigation.indexes: group label = container(div) > a + label(toggle) */
.md-nav__container {
  padding: 0 !important;
  margin: .08rem 0 !important;
  background: transparent !important;
  gap: 0;
}

.md-nav__container:hover { background: transparent !important; }
.md-nav__container > .md-nav__link { margin: 0; }
.md-nav__container > a.md-nav__link { flex: 1 1 auto; border-radius: 7px 0 0 7px; }
.md-nav__container > label.md-nav__link {
  flex: 0 0 auto;
  padding: .32rem .35rem .32rem .2rem;
  border-radius: 0 7px 7px 0;
}

.md-nav__item--active > .md-nav__container > .md-nav__link { background: rgba(255, 255, 255, .08); }
.md-nav__container > label.md-nav__link::before { display: none; }

a.md-nav__link--active::before {
  content: "";
  position: absolute;
  left: 0;
  top: .36rem;
  bottom: .36rem;
  width: 2px;
  background: var(--bb-white);
  border-radius: 2px;
}

.md-nav__item--nested > .md-nav__link { font-weight: 500; }
.md-nav__item--nested > .md-nav__link.md-nav__link--active { font-weight: 600; }

/* the 4 module families — small label before the first group */
.md-nav--primary > .md-nav__list > .md-nav__item--nested:nth-of-type(5) { margin-top: .75rem; position: relative; }
.md-nav--primary > .md-nav__list > .md-nav__item--nested:nth-of-type(5)::before {
  content: "Modules";
  display: block;
  padding: .3rem .55rem .25rem;
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--bb-grey-2);
}

.md-nav__icon { color: var(--bb-grey-2); }
.md-nav__item--nested > .md-nav__link .md-nav__icon::after { transform: rotate(0); }
.md-nav__toggle:checked ~ .md-nav__link .md-nav__icon::after { transform: rotate(90deg); }

/* nested list: indent + hairline */
.md-nav__item--nested > .md-nav {
  margin-left: .55rem;
  padding-left: .25rem;
  border-left: 1px solid var(--bb-line-soft);
}

.md-nav__item--nested > .md-nav > .md-nav__title { display: none; }
.md-nav__item--nested .md-nav__link { padding-left: .5rem; }
.md-nav__item--nested .md-nav__item { padding-left: 0; }

/* mobile drawer */
@media (max-width: 76.1875em) {
  .md-nav--primary .md-nav__title { background: var(--bb-black); color: var(--bb-white); }
  .md-nav--primary .md-nav__title .md-nav__button img,
  .md-nav--primary .md-nav__title .md-nav__button svg { width: 1.6rem; height: 1.6rem; }
  .md-nav--primary .md-nav__item { padding: 0; border-top: 1px solid var(--bb-line-soft); }
  .md-nav--primary .md-nav__link { border-radius: 0; margin: 0; padding: .6rem .8rem; }
  .md-nav--primary > .md-nav__title { display: flex; }
  .md-nav--primary > .md-nav__list > .md-nav__item--nested:nth-of-type(5)::before { display: none; }
  .md-nav__item--nested > .md-nav { margin-left: 0; padding-left: 0; border-left: 0; }
  .md-nav__link--active::before { display: none; }
}

/* --------------------------------------------------------------- type */
.md-typeset {
  font-size: .74rem;
  line-height: 1.55;
  color: #d9d9d9;
}

.md-typeset h1 {
  font-size: 1.35rem;
  font-weight: 650;
  letter-spacing: -.035em;
  line-height: 1.1;
  margin: 0 0 .35rem;
  color: var(--bb-white);
}

.md-typeset h2 {
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--bb-grey);
  margin: 1.45rem 0 .5rem;
  padding: 0 0 .35rem;
  border-bottom: 1px solid var(--bb-line-soft);
}

.md-typeset h2 code {
  text-transform: none;
  letter-spacing: 0;
  font-size: .62rem;
  color: var(--bb-white);
}

.md-typeset h3 {
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: -.015em;
  margin: 1rem 0 .4rem;
  color: var(--bb-white);
}

.md-typeset p { margin: 0 0 .65rem; }
.md-typeset li { margin-bottom: .18rem; }
.md-typeset ol, .md-typeset ul { margin-left: .9rem; }
.md-typeset ul li::marker { color: var(--bb-grey-2); }
.md-typeset ol li::marker { color: var(--bb-grey); font-weight: 600; font-variant-numeric: tabular-nums; }
.md-typeset strong { color: var(--bb-white); font-weight: 600; }
.md-typeset em { color: var(--bb-grey); font-style: normal; }
.md-typeset kbd { background: var(--bb-panel-2); border: 1px solid var(--bb-line); border-radius: 4px; box-shadow: none; color: var(--bb-white); font-size: .62rem; padding: .1em .4em; }

.md-typeset a {
  color: var(--bb-white);
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, .28);
  text-underline-offset: 2.5px;
  transition: text-decoration-color .14s var(--bb-ease);
}

.md-typeset a:hover { text-decoration-color: var(--bb-white); color: var(--bb-white); }

.md-typeset hr {
  border: 0;
  height: 1px;
  background: var(--bb-line-soft);
  margin: 1.2rem 0;
}

/* lead paragraph under h1 */
.md-typeset .bb-lead {
  font-size: .8rem;
  font-weight: 300;
  color: var(--bb-grey);
  letter-spacing: -.005em;
  margin: 0 0 1rem;
  max-width: 40rem;
}

/* --------------------------------------------------------------- tables */
.md-typeset__scrollwrap { margin: 0; overflow-x: auto; }
.md-typeset__table { display: block; width: 100%; padding: 0; margin: .5rem 0 .9rem; }
.md-typeset__table table:not([class]) { margin: 0; }

.md-typeset table:not([class]) {
  display: table;
  width: 100%;
  border: 1px solid var(--bb-line) !important;
  border-radius: var(--bb-r);
  overflow: hidden;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--bb-panel);
  font-size: .66rem;
  line-height: 1.4;
  margin: .5rem 0 .9rem;
}

.md-typeset table:not([class]) th {
  background: #121212;
  color: var(--bb-grey);
  font-weight: 600;
  font-size: .52rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--bb-line);
  padding: .45rem .7rem;
  text-align: left;
  min-width: 0;
}

.md-typeset table:not([class]) td {
  border-top: 1px solid var(--bb-line-soft);
  padding: .42rem .7rem;
  color: #d4d4d4;
  vertical-align: middle;
}

.md-typeset table:not([class]) tr:first-child td { border-top: 0; }
.md-typeset table:not([class]) tbody tr:hover td { background: rgba(255, 255, 255, .025); }

.md-typeset table:not([class]) td:first-child {
  font-family: "JetBrains Mono", monospace;
  font-size: .62rem;
  color: var(--bb-white);
  white-space: nowrap;
  width: 1%;
}

.md-typeset table:not([class]) td code {
  font-size: .6rem;
  background: #1e1e1e;
}

/* 3-column spec tables: Colonne | Rôle | Exemple */
.md-typeset table:not([class]) td:nth-child(3):last-child {
  width: 30%;
  color: var(--bb-grey);
}

.md-typeset table:not([class]) td:nth-child(3):last-child code {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-all;
}

@media (max-width: 44.9375em) {
  .md-typeset table:not([class]) td:first-child { white-space: normal; width: auto; }
  .md-typeset table:not([class]) td:nth-child(3):last-child { width: auto; }
}

/* required marker inside first cell */
.md-typeset .bb-req {
  display: inline-block;
  margin-left: .35rem;
  padding: .05em .35em;
  border-radius: 4px;
  border: 1px solid var(--bb-ui);
  font-family: "Inter", sans-serif;
  font-size: .46rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bb-white);
  vertical-align: 1px;
}

.md-typeset .bb-opt {
  display: inline-block;
  margin-left: .35rem;
  padding: .05em .35em;
  border-radius: 4px;
  border: 1px dashed var(--bb-ui);
  font-family: "Inter", sans-serif;
  font-size: .46rem;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bb-grey-2);
  vertical-align: 1px;
}

/* --------------------------------------------------------------- code */
.md-typeset code {
  font-family: "JetBrains Mono", monospace;
  font-size: .74em;
  background: #1c1c1c;
  border: 1px solid var(--bb-line-soft);
  border-radius: 4px;
  padding: .08em .35em;
  color: var(--bb-white);
  word-break: normal;
}

.md-typeset .highlight,
.md-typeset pre {
  border-radius: var(--bb-r) !important;
  border: 1px solid var(--bb-line);
  background: #111 !important;
  margin: .4rem 0 .9rem;
  position: relative;
}

.md-typeset .highlight > pre { margin: 0; border: 0; }

.md-typeset pre > code {
  border: 0;
  background: transparent;
  padding: .7rem .85rem;
  font-size: .62rem;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-all;
  overflow-wrap: anywhere;
  color: #e6e6e6;
}

/* CSV blocks: the first line is the header */
.md-typeset .language-csv pre > code { display: block; }
.md-typeset .language-csv pre > code .bb-h { color: var(--bb-grey); }

.md-typeset .highlight span.filename {
  background: #141414;
  border-bottom: 1px solid var(--bb-line);
  font-family: "Inter", sans-serif;
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--bb-grey);
  padding: .35rem .85rem;
  margin: 0;
  border-radius: var(--bb-r) var(--bb-r) 0 0;
}

.md-typeset .highlight span.filename + pre { margin-top: 0; }
.md-typeset .highlight span.filename + pre > code { border-radius: 0 0 var(--bb-r) var(--bb-r); }

.md-clipboard {
  color: var(--bb-grey-2);
  top: .4rem;
  right: .4rem;
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 5px;
  border: 1px solid transparent;
}

.md-clipboard:hover { color: var(--bb-white); border-color: var(--bb-line); background: var(--bb-panel); }
.md-clipboard::after { mask-size: .75rem; -webkit-mask-size: .75rem; }
.md-typeset .highlight span.filename ~ .md-clipboard { top: 1.55rem; }

/* --------------------------------------------------------------- tabs (modes) */
.md-typeset .tabbed-set {
  margin: .7rem 0 1.1rem;
  border: 1px solid var(--bb-line);
  border-radius: var(--bb-r);
  background: var(--bb-panel);
  overflow: hidden;
}

.md-typeset .tabbed-labels {
  display: flex;
  flex-wrap: wrap;
  padding: 0;
  background: #121212;
  border-bottom: 1px solid var(--bb-line);
  box-shadow: none;
}

.md-typeset .tabbed-labels::before { display: none; }

.md-typeset .tabbed-labels > label {
  margin: 0 !important;
  padding: .55rem .9rem !important;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--bb-grey);
  border-right: 1px solid var(--bb-line-soft);
  border-bottom: 2px solid transparent;
  transition: color .14s var(--bb-ease), background .14s var(--bb-ease);
}

.md-typeset .tabbed-labels > label::before {
  content: "MODE";
  display: inline-block;
  margin-right: .4rem;
  font-size: .44rem;
  letter-spacing: .14em;
  color: var(--bb-grey-2);
  vertical-align: 1px;
}

.md-typeset .tabbed-labels > label:hover { color: var(--bb-white); background: rgba(255, 255, 255, .03); }

.md-typeset .tabbed-set > input:checked + label,
.md-typeset .tabbed-labels > label[aria-selected="true"] {
  color: var(--bb-white) !important;
  border-bottom-color: var(--bb-white) !important;
  background: var(--bb-panel) !important;
}

.md-typeset .tabbed-content { padding: .9rem .95rem 1rem; }
.md-typeset .tabbed-content .tabbed-block > *:first-child { margin-top: 0; }
.md-typeset .tabbed-content .tabbed-block > *:last-child { margin-bottom: 0; }
.md-typeset .tabbed-content table:not([class]) { background: #111; }
.md-typeset .tabbed-content .highlight,
.md-typeset .tabbed-content pre { background: #0f0f0f !important; }

/* --------------------------------------------------------------- admonitions */
.md-typeset .admonition,
.md-typeset details {
  border: 1px solid var(--bb-line) !important;
  border-radius: var(--bb-r) !important;
  background: var(--bb-panel) !important;
  box-shadow: none !important;
  font-size: .66rem;
  margin: .7rem 0 .9rem;
  padding: 0 .8rem .1rem;
}

.md-typeset .admonition > :last-child { margin-bottom: .55rem; }

.md-typeset .admonition-title,
.md-typeset summary {
  background: transparent !important;
  border: 0 !important;
  font-weight: 600;
  font-size: .64rem;
  letter-spacing: -.005em;
  color: var(--bb-white);
  margin: 0 -.8rem .35rem;
  padding: .55rem .8rem .2rem 2rem !important;
}

.md-typeset .admonition-title::before,
.md-typeset summary::before {
  left: .8rem;
  top: .6rem;
  width: .75rem;
  height: .75rem;
  background-color: var(--bb-grey) !important;
}

.md-typeset .admonition.tip > .admonition-title::before,
.md-typeset .admonition.note > .admonition-title::before { background-color: var(--bb-ok) !important; }
.md-typeset .admonition.warning > .admonition-title::before { background-color: var(--bb-white) !important; }
.md-typeset .admonition.warning { border-color: #3a3a3a !important; }

/* --------------------------------------------------------------- badges */
.bb-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .18em .55em;
  border-radius: 5px;
  border: 1px solid var(--bb-ui);
  color: var(--bb-grey);
  background: #121212;
  vertical-align: middle;
  line-height: 1.6;
  white-space: nowrap;
}

.bb-badge::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.bb-badge.live { color: var(--bb-ok); border-color: rgba(52, 211, 153, .3); }
.bb-badge.beta { color: var(--bb-white); border-color: #4a4a4a; }
.bb-badge.stub { color: var(--bb-grey-2); border-style: dashed; }
.bb-badge.stub::before { background: transparent; border: 1px solid currentColor; }

/* --------------------------------------------------------------- module page chrome */
.bb-modhead {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  margin: 0 0 .7rem;
}

.bb-id {
  font-family: "JetBrains Mono", monospace;
  font-size: .6rem;
  color: var(--bb-white);
  padding: .22rem .5rem;
  border-radius: var(--bb-r-s);
  border: 1px solid var(--bb-line);
  background: var(--bb-panel);
}

.bb-id b { color: var(--bb-grey); font-weight: 400; }

/* key facts strip */
.bb-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
  border: 1px solid var(--bb-line);
  border-radius: var(--bb-r);
  background: var(--bb-panel);
  overflow: hidden;
  margin: 0 0 1rem;
}

.bb-fact {
  padding: .5rem .75rem;
  border-left: 1px solid var(--bb-line-soft);
  min-width: 0;
}

.bb-fact:first-child { border-left: 0; }

.bb-fact-k {
  display: block;
  font-size: .48rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--bb-grey-2);
  margin-bottom: .15rem;
}

.bb-fact-v {
  display: block;
  font-size: .66rem;
  font-weight: 500;
  color: var(--bb-white);
  letter-spacing: -.005em;
  overflow-wrap: anywhere;
}

.bb-fact-v code { font-size: .58rem; }

@media (max-width: 44.9375em) {
  .bb-facts { grid-template-columns: repeat(2, 1fr); }
  .bb-fact:nth-child(odd) { border-left: 0; }
  .bb-fact:nth-child(n+3) { border-top: 1px solid var(--bb-line-soft); }
}

/* flow strip: step → step → step */
.bb-flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .3rem .35rem;
  margin: 0 0 .8rem;
  font-size: .6rem;
  color: var(--bb-grey);
}

.bb-flow span {
  padding: .22rem .5rem;
  border-radius: var(--bb-r-s);
  border: 1px solid var(--bb-line);
  background: #121212;
  color: var(--bb-white);
  font-weight: 500;
  letter-spacing: -.005em;
}

.bb-flow span.out { color: var(--bb-ok); border-color: rgba(52, 211, 153, .3); }
.bb-flow i { font-style: normal; color: var(--bb-grey-2); font-size: .6rem; }

/* section label (small, uppercase) */
.bb-k {
  display: block;
  margin: .9rem 0 .35rem;
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--bb-grey-2);
}

.bb-k:first-child { margin-top: 0; }

/* --------------------------------------------------------------- module lists (navigation cards) */
.bb-modlist {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--bb-line);
  border-radius: var(--bb-r);
  background: var(--bb-panel);
  overflow: hidden;
  margin: .7rem 0 1.1rem;
}

.bb-modlist a {
  display: grid;
  grid-template-columns: 9rem 1fr auto;
  align-items: center;
  gap: .8rem;
  padding: .6rem .85rem;
  border-top: 1px solid var(--bb-line-soft);
  text-decoration: none !important;
  color: inherit !important;
  transition: background .14s var(--bb-ease);
}

.bb-modlist a:first-child { border-top: 0; }
.bb-modlist a:hover { background: rgba(255, 255, 255, .035); }

.bb-modlist .n {
  font-weight: 600;
  font-size: .7rem;
  letter-spacing: -.01em;
  color: var(--bb-white);
}

.bb-modlist .n small {
  display: block;
  font-family: "JetBrains Mono", monospace;
  font-weight: 400;
  font-size: .54rem;
  color: var(--bb-grey-2);
  margin-top: .1rem;
}

.bb-modlist .d { font-size: .64rem; color: var(--bb-grey); }
.bb-modlist .s { display: flex; gap: .3rem; align-items: center; }

@media (max-width: 44.9375em) {
  .bb-modlist a { grid-template-columns: 1fr auto; }
  .bb-modlist .d { grid-column: 1 / -1; }
}

/* --------------------------------------------------------------- home */
.md-typeset:has(.bb-hero) > h1:first-of-type { display: none; }

.md-content:has(.bb-hero) .md-content__inner {
  max-width: 60rem;
  margin-inline: auto;
}

.bb-hero {
  position: relative;
  margin: 0 0 .8rem;
  padding: 2.3rem 2rem 2rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, .09);
  background: linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .005) 60%), var(--bb-black);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07);
  overflow: hidden;
  isolation: isolate;
}

/* light beam — the moodboard's diagonal highlight */
.bb-hero::before {
  content: "";
  position: absolute;
  inset: -20% -10%;
  z-index: -1;
  background:
    linear-gradient(112deg, transparent 58.9%, rgba(255, 255, 255, .55) 59.15%, rgba(255, 255, 255, .55) 59.25%, transparent 59.5%),
    radial-gradient(42rem 18rem at 78% 15%, rgba(255, 255, 255, .07), transparent 60%);
  pointer-events: none;
}

/* faint horizon */
.bb-hero::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 38%;
  z-index: -1;
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .025));
  pointer-events: none;
}

.bb-hero-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
}

.bb-kicker {
  font-size: .5rem;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--bb-grey);
  margin: 0 0 .9rem;
}

.bb-wordmark {
  font-weight: 700;
  font-size: clamp(2.6rem, 6vw, 3.9rem);
  letter-spacing: -.06em;
  line-height: .9;
  color: var(--bb-white);
  margin: 0 0 .55rem;
}

.bb-tagline {
  font-size: .56rem;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--bb-grey);
  margin: 0 0 1.1rem;
  white-space: pre;
}

.bb-motto {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .6rem;
  margin: 0 0 1.2rem;
  font-size: .52rem;
  font-weight: 600;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--bb-grey-2);
}

.bb-motto span { color: var(--bb-white); }
.bb-motto i { font-style: normal; color: var(--bb-grey-2); }

.bb-cta { display: flex; flex-wrap: wrap; gap: .45rem; }

.bb-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .5rem .9rem;
  border-radius: 8px;
  border: 1px solid var(--bb-ui);
  background: rgba(255, 255, 255, .02);
  color: var(--bb-white) !important;
  text-decoration: none !important;
  font-weight: 600;
  font-size: .66rem;
  letter-spacing: -.005em;
  transition: background .16s var(--bb-ease), border-color .16s var(--bb-ease);
}

.bb-btn:hover { background: rgba(255, 255, 255, .07); border-color: var(--bb-grey-2); }
.bb-btn-primary { background: var(--bb-white); color: var(--bb-black) !important; border-color: var(--bb-white); }
.bb-btn-primary:hover { background: #e8e8e8; border-color: #e8e8e8; }

/* big .b mark on the right of the hero */
.bb-hero-mark {
  width: clamp(5.5rem, 12vw, 7.6rem);
  height: auto;
  display: block;
  filter: drop-shadow(0 18px 40px rgba(0, 0, 0, .6));
}

@media (max-width: 59.9375em) {
  .bb-hero { padding: 1.6rem 1.2rem 1.4rem; }
  .bb-hero-grid { grid-template-columns: 1fr; }
  .bb-hero-mark { display: none; }
}

/* parcours — 3 steps */
.bb-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--bb-line);
  border-radius: var(--bb-r);
  background: var(--bb-panel);
  overflow: hidden;
  margin: 0 0 .8rem;
}

.bb-step {
  display: block;
  padding: .9rem 1rem .95rem;
  border-left: 1px solid var(--bb-line-soft);
  text-decoration: none !important;
  color: inherit !important;
  transition: background .14s var(--bb-ease);
  position: relative;
}

.bb-step:first-child { border-left: 0; }
.bb-step:hover { background: rgba(255, 255, 255, .035); }

.bb-step-n {
  font-family: "JetBrains Mono", monospace;
  font-size: .54rem;
  color: var(--bb-grey-2);
  margin-bottom: .45rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.bb-step-n::after {
  content: "→";
  color: var(--bb-ui);
  transition: color .14s var(--bb-ease), transform .14s var(--bb-ease);
}

.bb-step:hover .bb-step-n::after { color: var(--bb-white); transform: translateX(2px); }

.bb-step h3 {
  margin: 0 0 .25rem !important;
  font-size: .82rem !important;
  font-weight: 600;
  letter-spacing: -.02em;
  color: var(--bb-white);
}

.bb-step p { margin: 0; font-size: .64rem; color: var(--bb-grey); line-height: 1.45; }

@media (max-width: 59.9375em) {
  .bb-steps { grid-template-columns: 1fr; }
  .bb-step { border-left: 0; border-top: 1px solid var(--bb-line-soft); }
  .bb-step:first-child { border-top: 0; }
}

/* families — 4 columns */
.bb-fam {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .5rem;
  margin: 0 0 .8rem;
}

.bb-fam a {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  padding: .75rem .85rem .8rem;
  border-radius: var(--bb-r);
  border: 1px solid var(--bb-line);
  background: var(--bb-panel);
  text-decoration: none !important;
  color: inherit !important;
  transition: border-color .14s var(--bb-ease), background .14s var(--bb-ease);
}

.bb-fam a:hover { border-color: var(--bb-grey-2); background: var(--bb-panel-2); }

.bb-fam .t {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .4rem;
  font-weight: 600;
  font-size: .72rem;
  letter-spacing: -.015em;
  color: var(--bb-white);
}

.bb-fam .m {
  font-family: "JetBrains Mono", monospace;
  font-size: .54rem;
  color: var(--bb-grey-2);
}

.bb-fam .l { font-size: .62rem; color: var(--bb-grey); line-height: 1.45; }

@media (max-width: 59.9375em) {
  .bb-fam { grid-template-columns: repeat(2, 1fr); }
}

/* rules strip */
.bb-rules {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--bb-line);
  border-radius: var(--bb-r);
  background: var(--bb-panel);
  overflow: hidden;
  margin: 0 0 .5rem;
}

.bb-rule {
  padding: .65rem .9rem;
  border-left: 1px solid var(--bb-line-soft);
  font-size: .64rem;
  color: var(--bb-grey);
  line-height: 1.45;
}

.bb-rule:first-child { border-left: 0; }
.bb-rule b { display: block; color: var(--bb-white); font-weight: 600; margin-bottom: .1rem; }
.bb-rule b::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--bb-ok); margin-right: .4rem; vertical-align: 2px; }

@media (max-width: 59.9375em) {
  .bb-rules { grid-template-columns: 1fr; }
  .bb-rule { border-left: 0; border-top: 1px solid var(--bb-line-soft); }
  .bb-rule:first-child { border-top: 0; }
}

/* in-page jump row (replaces the TOC column) */
.bb-jump {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin: 0 0 1rem;
}

.bb-jump a {
  font-size: .58rem;
  font-weight: 500;
  color: var(--bb-grey) !important;
  text-decoration: none !important;
  padding: .22rem .55rem;
  border-radius: var(--bb-r-s);
  border: 1px solid var(--bb-line);
  background: var(--bb-panel);
  transition: color .14s var(--bb-ease), border-color .14s var(--bb-ease);
}

.bb-jump a:hover { color: var(--bb-white) !important; border-color: var(--bb-grey-2); }

/* empty state (raffles) */
.bb-empty {
  margin: .4rem 0 1.2rem;
  padding: 2rem 1.6rem;
  border-radius: 14px;
  border: 1px dashed var(--bb-ui);
  background: var(--bb-panel);
  text-align: left;
}

.bb-empty .bb-wordmark { font-size: 2rem; margin-bottom: .35rem; }
.bb-empty p:last-child { margin: 0; }

/* --------------------------------------------------------------- footer */
.md-footer { border-top: 1px solid var(--bb-line-soft); background: var(--bb-black); }
.md-footer__inner { padding: .6rem .6rem; }
.md-footer__link { padding: .5rem 0; }
.md-footer__title { font-size: .66rem; }
.md-footer__direction { font-size: .5rem; letter-spacing: .12em; text-transform: uppercase; color: var(--bb-grey-2); }
.md-footer__button { color: var(--bb-grey); }
.md-footer-meta { background: var(--bb-black) !important; border-top: 1px solid var(--bb-line-soft); }
.md-footer-meta__inner { padding: .5rem .6rem; }
.md-copyright { color: var(--bb-grey-2); font-size: .54rem; letter-spacing: .04em; }

.md-top {
  border-radius: 8px;
  border: 1px solid var(--bb-line);
  background: var(--bb-panel) !important;
  color: var(--bb-white);
  font-size: .62rem;
}

/* print */
@media print {
  .bb-hero::before, .bb-hero::after { display: none; }
}
