/* Floating chapter buttons */
:root{
  --fab-size: 46px;              /* tweak 40–52px */
  --fab-gap: 6px;
  --fab-bg: #1ea0ff;             /* page-wide color; override per-page if needed */
  --fab-fg: #fff;
  --fab-shadow: 0 6px 20px rgba(0,0,0,.25);
  --fab-right: 12px;
  --fab-bottom: 12px;
}

.fab{
  position: fixed;
  right: var(--fab-right);
  width: var(--fab-size);
  height: var(--fab-size);
  border: 0;
  border-radius: 9999px;
  background: var(--fab-bg);
  color: var(--fab-fg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--fab-shadow);
  z-index: 2147483647;
  cursor: pointer;
  opacity: .9;
  transition: transform .15s ease, opacity .2s ease;
}

.fab:hover{ opacity:1; transform: translateY(-1px); }
.fab:active{ transform: translateY(0); }
.fab:focus{ outline:2px solid rgba(255,255,255,.9); outline-offset:2px; }
.fab[disabled]{ opacity:.35; pointer-events:none; cursor:default; }

.fab--down{ bottom: var(--fab-bottom); }
.fab--up{   bottom: calc(var(--fab-bottom) + var(--fab-size) + var(--fab-gap)); }
.fab--menu{ bottom: calc(var(--fab-bottom) + 2 * var(--fab-size) + 2 * var(--fab-gap)); }

@media (min-width:1024px){ :root{ --fab-size: 52px; } }
@media (prefers-reduced-motion: reduce){ .fab{ transition:none; } }