/* ─────────────────────────────────────────────
   Components — header, hero, shelves & spines,
   reading drawer, practice, footer.
   ───────────────────────────────────────────── */

/* ── Header ─────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--bg-shelf-deep);
  color: var(--text-on-shelf);
  border-bottom: 1px solid var(--rule-on-shelf);
}
.site-header .wrap {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
  padding-block: var(--space-3);
}
.brand {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}
.ca-logo {
  height: 44px;
  width: auto;
  background: var(--paper);
  padding: 5px 8px;
  border-radius: 4px;
  box-shadow: 0 0 0 1px var(--rule-on-shelf);
}
.nameplate {
  font-family: var(--font-display);
  font-size: var(--step-1);
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--accent-bright);
  text-decoration: none;
  white-space: nowrap;
}
.nameplate small {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--text-on-shelf-dim);
  margin-top: 2px;
}
.nameplate small::after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 6px;
  margin-left: 8px;
  vertical-align: middle;
  border-radius: 1px;
  background: linear-gradient(180deg,
    var(--tiranga-saffron) 0 33.4%,
    var(--tiranga-cream) 33.4% 66.7%,
    var(--tiranga-green) 66.7% 100%);
}
.site-nav {
  display: flex;
  gap: var(--space-4);
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.08em;
}
.site-nav a {
  text-decoration: none;
  color: var(--text-on-shelf);
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: border-color var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out);
}
.site-nav a:hover { color: var(--accent-bright); border-bottom-color: var(--accent); }

/* ── Hero ───────────────────────────────── */
.hero {
  padding-block: var(--space-7) var(--space-6);
  background:
    radial-gradient(1200px 500px at 20% -10%, rgba(201,162,39,0.10), transparent 60%),
    radial-gradient(900px 420px at 88% -8%, rgba(239,175,126,0.09), transparent 65%),
    radial-gradient(700px 380px at 96% 105%, rgba(157,195,162,0.07), transparent 60%),
    var(--bg-shelf);
}
.hero .eyebrow { display: block; margin-bottom: var(--space-4); }
.hero h1 {
  font-size: var(--step-4);
  font-weight: 620;
  max-width: 14ch;
  color: var(--accent-bright);
  text-wrap: balance;
}

/* Page-load choreography: the room lights up, then the foil catches it */
@keyframes rise {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
.hero .eyebrow    { animation: rise 650ms var(--ease-out) both 80ms; }
.hero h1          { animation: rise 700ms var(--ease-out) both 200ms; }
.hero .hero-copy  { animation: rise 700ms var(--ease-out) both 340ms; }
.hero .hero-meta  { animation: rise 700ms var(--ease-out) both 480ms; }

@supports (-webkit-background-clip: text) or (background-clip: text) {
  .hero h1 {
    background-image: linear-gradient(105deg,
      var(--accent-bright) 38%, #FFF3CF 47%,
      var(--gold-foil) 50%, #FFF3CF 53%,
      var(--accent-bright) 62%);
    background-size: 240% 100%;
    background-position: 0% 0;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--accent-bright);
    animation:
      rise 700ms var(--ease-out) both 200ms,
      foil-sweep 1500ms ease-in-out 1.1s 1 both;
  }
}
@keyframes foil-sweep {
  from { background-position: 200% 0; }
  to   { background-position: 0% 0; }
}
.hero .hero-copy {
  margin-top: var(--space-4);
  font-size: var(--step-1);
  line-height: 1.55;
  max-width: 56ch;
  color: var(--text-on-shelf);
}
.hero-meta {
  margin-top: var(--space-5);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}
.hero-cta {
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
  background: var(--accent);
  text-decoration: none;
  padding: 0.8em 1.4em;
  border-radius: 2px;
  transition: background var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);
}
.hero-cta:hover { background: var(--accent-bright); transform: translateY(-1px); }
.hero-tally {
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.14em;
  color: var(--text-on-shelf-dim);
}

/* ── Library ────────────────────────────── */
.library {
  padding-block: var(--space-6) var(--space-7);
}
.library-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}
.library-head h2 {
  font-size: var(--step-3);
  color: var(--accent-bright);
}
.library-head .eyebrow { display: block; margin-bottom: var(--space-2); }

.library-search {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  min-width: min(340px, 100%);
}
.library-search input {
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.04em;
  color: var(--text-on-shelf);
  background: var(--bg-shelf-deep);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 2px;
  padding: 0.85em 1em;
}
.library-search input::placeholder { color: var(--text-on-shelf-dim); }
.library-search input:focus-visible { outline-offset: 0; }
.search-count {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: var(--text-on-shelf-dim);
  min-height: 1.1em;
}

/* Library body: aisle guide + stacks */
.library-body { display: block; }
.aisle-guide { display: none; }

@media (min-width: 900px) {
  .library-body {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: var(--space-5);
    align-items: start;
  }
  .aisle-guide {
    display: flex;
    flex-direction: column;
    gap: 2px;
    position: sticky;
    top: 96px;
    padding-top: var(--space-2);
  }
  .ag-title {
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: var(--space-2);
  }
  .aisle-guide a {
    display: flex;
    align-items: baseline;
    gap: 0.6em;
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    line-height: 1.4;
    color: var(--text-on-shelf-dim);
    text-decoration: none;
    padding: 0.42em 0.7em;
    border-left: 2px solid var(--rule-on-shelf);
    transition: color var(--dur-quick) var(--ease-out), border-color var(--dur-quick) var(--ease-out),
      transform var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out),
      box-shadow var(--dur-quick) var(--ease-out);
  }
  .aisle-guide a:hover {
    /* the shelf card pulls out of the rail, like a book off the stack */
    color: var(--text-on-shelf);
    transform: translateX(12px) scale(1.04);
    background: rgba(0, 0, 0, 0.28);
    border-left-color: var(--accent);
    border-radius: 0 6px 6px 0;
    box-shadow: 6px 6px 14px rgba(0, 0, 0, 0.35);
  }
  .aisle-guide a.is-active {
    color: var(--accent-bright);
    border-left-color: var(--gold-foil);
  }
  .ag-num { color: var(--accent); }
  .ag-count { margin-left: auto; opacity: 0.65; }
}

/* Bookcase: sets of law flow row-wise, one book-width apart,
   wrapping onto the next shelf line like a real case */
.bookcase {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: var(--space-5);
  align-items: end;
}
@media (max-width: 900px) {
  .bookcase { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .bookcase { grid-template-columns: 1fr; }
}
.shelf {
  display: flex;
  flex-direction: column;
}
.shelf.is-empty { display: none; }
.shelf-tag {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-on-shelf-dim);
  margin-top: 10px;
  padding-left: var(--space-2);
}
.shelf-tag .tag-num { color: var(--accent); margin-right: 0.5em; }

.shelf-row {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  padding: 0 var(--space-2) 0 var(--space-2);
  width: max-content;
  max-width: 100%;
  overflow-x: auto;
  border-bottom: 8px solid var(--shelf-board);
  box-shadow: 0 14px 18px -12px rgba(0,0,0,0.55);
  scrollbar-width: thin;
  scrollbar-color: var(--rule-on-shelf) transparent;
}

/* Book spine */
.spine {
  --cloth: var(--ledger-green-soft);
  --foil: var(--accent-bright);
  position: relative;
  flex: 0 0 auto;
  width: var(--spine-w);
  height: var(--spine-h-mid);
  display: flex;
  flex-direction: column;
  align-items: center;
  border-radius: 3px 3px 0 0;
  background:
    linear-gradient(90deg,
      rgba(0,0,0,0.35) 0%,
      rgba(255,255,255,0.10) 9%,
      rgba(0,0,0,0.00) 22%,
      rgba(0,0,0,0.00) 78%,
      rgba(255,255,255,0.07) 92%,
      rgba(0,0,0,0.35) 100%),
    var(--cloth);
  box-shadow: inset 0 -6px 10px -6px rgba(0,0,0,0.5);
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.spine:hover, .spine:focus-visible {
  /* the book pulls out of the stack toward the reader */
  transform: translateY(22px) scale(1.06) rotateX(-7deg);
  z-index: 30;
  box-shadow: inset 0 -6px 10px -6px rgba(0,0,0,0.5),
    0 22px 30px -10px rgba(0,0,0,0.65),
    0 6px 12px rgba(0,0,0,0.35);
  filter: brightness(1.12);
}
.shelf-row { perspective: 700px; }
.spine:nth-child(3n)   { height: var(--spine-h-tall); }
.spine:nth-child(4n+1) { height: var(--spine-h-short); }
.spine:nth-child(5n)   { width: var(--spine-w-wide); }

.spine-band {
  width: 100%;
  height: 12px;
  margin-top: 12px;
  background: var(--foil);
  opacity: 0.85;
  box-shadow: 0 1px 0 rgba(0,0,0,0.35), 0 -1px 0 rgba(0,0,0,0.35);
}
.spine-title {
  flex: 1;
  display: flex;
  align-items: center;
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 560;
  font-weight: 560;
  letter-spacing: 0.05em;
  line-height: 1.1;
  color: var(--foil);
  text-shadow: 0 1px 1px rgba(0,0,0,0.5);
  padding-block: var(--space-2);
  max-height: 100%;
  overflow: hidden;
  text-align: center;
}
.spine-year {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.08em;
  color: var(--foil);
  opacity: 0.9;
  padding-bottom: 10px;
}
.spine.is-dim { opacity: 0.18; }
.spine.is-dim:hover { opacity: 0.6; }

/* One book per shelf leans against the row — `rotate` is a separate
   property, so it composes with both the settle and hover transforms */
.spine.is-leaning {
  rotate: -6deg;
  transform-origin: bottom left;
  margin-left: 4px;
}

/* Settling: books are placed on the board as each shelf scrolls into view */
.shelf:not(.is-settled) .spine { opacity: 0; }
.shelf.is-settled .spine {
  animation: settle 560ms var(--ease-out) backwards;
  animation-delay: calc(var(--i, 0) * 55ms);
}
@keyframes settle {
  0%   { transform: translateY(-26px); opacity: 0; }
  72%  { transform: translateY(2px);   opacity: 1; }
  100% { transform: none;              opacity: 1; }
}

/* ── Reading drawer ─────────────────────── */
.drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  background: rgba(7, 31, 24, 0.78);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dur-slow) var(--ease-out);
}
.drawer-overlay.is-open { opacity: 1; pointer-events: auto; }

/* ── The open book ──────────────────────── */
.book {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 70;
  align-items: center;
  justify-content: center;
  --pw: min(31rem, 45vw);
  --ph: min(660px, 80vh);
  perspective: 2600px;
}
.book.is-staged { display: flex; }

.drawer-close {
  position: fixed;
  top: 14px;
  right: 18px;
  z-index: 80;
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.1em;
  color: #E9E2CC;
  background: rgba(7, 31, 24, 0.8);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 999px;
  padding: 0.5em 1.1em;
}
.drawer-close:hover { color: var(--gold-foil-bright); border-color: var(--gold-foil); }

.spread {
  position: relative;
  width: calc(var(--pw) * 2);
  height: var(--ph);
  transform-style: preserve-3d;
  transform-origin: 50% 68%;
  transform: translateX(calc(var(--pw) / -2)) rotateX(5deg);
  transition: transform 950ms var(--ease-out);
  filter: drop-shadow(0 40px 58px rgba(0, 0, 0, 0.6));
}
.book.is-open .spread { transform: translateX(0) rotateX(5deg); }

.page {
  background-color: #FCF8EC;
  color: var(--text-on-desk);
  padding: clamp(1.6rem, 2.8vw, 2.6rem);
  padding-bottom: 2.4rem;
  overflow-y: auto;
  scrollbar-width: thin;
  font-size: var(--step-0);
  line-height: 1.62;
}
.page .eyebrow { display: block; margin-bottom: var(--space-3); color: var(--oxblood); }
.page h3 {
  font-size: var(--step-2);
  max-width: 18ch;
  text-wrap: balance;
}

/* The physical body of the volume: cover boards + spine ridge.
   Closed, the board is clipped to the cover's half; it unfolds with it. */
.board {
  position: absolute;
  inset: -14px -18px -30px -18px;
  z-index: 0;
  border-radius: 12px;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.28), rgba(0,0,0,0) 10% 90%, rgba(0,0,0,0.28)),
    var(--cloth, var(--ledger-green));
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,0.3),
    inset 0 0 0 2px rgba(228,206,143,0.18);
  clip-path: inset(0 0 0 50% round 12px);
  transition: clip-path 950ms var(--ease-out);
}
.book.is-open .board { clip-path: inset(0 0 0 0 round 10px); }
.board::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: 50%;
  width: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, rgba(0,0,0,0) , rgba(0,0,0,0.35) 50%, rgba(0,0,0,0));
}
/* The block of pages at the tail edge — the visible thickness of the volume */
.board::after {
  content: "";
  position: absolute;
  left: 20px; right: 20px; bottom: 7px;
  height: 16px;
  border-radius: 2px 2px 6px 6px;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.18), rgba(0,0,0,0) 6% 94%, rgba(0,0,0,0.18)),
    repeating-linear-gradient(0deg, #D8CDB1 0 1.2px, #F1E9D4 1.2px 2.6px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.35);
}

/* Fore-edge page stacks — read pages gather left, unread wait right.
   Clickable: grab the stack to turn. */
.stack {
  position: absolute;
  top: 10px;
  bottom: 12px;
  z-index: 1;
  width: var(--stack-w, 8px);
  background: repeating-linear-gradient(90deg, #EFE7D2 0 1.2px, #D9CFB4 1.2px 2.4px);
  opacity: 0;
  transition: opacity 400ms ease 500ms, width 500ms var(--ease-out);
  cursor: pointer;
  border: none;
  padding: 0;
}
.book.is-open .stack { opacity: 1; }
.stack-l { --stack-w: var(--stack-lw, 4px); left: calc(0px - var(--stack-w)); border-radius: 4px 0 0 4px; }
.stack-r { --stack-w: var(--stack-rw, 12px); right: calc(0px - var(--stack-w)); border-radius: 0 4px 4px 0; }
.stack:hover { filter: brightness(1.06); }

.page { position: relative; }
.page-l, .page-r { z-index: 1; }
.page-r {
  position: absolute;
  left: 50%;
  top: 0;
  width: 50%;
  height: 100%;
  border-radius: 0 6px 6px 0;
  background-image:
    linear-gradient(90deg, rgba(28,26,22,0.15), rgba(28,26,22,0) 9%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  box-shadow: 2px 0 0 #E9E1CB, 4px 0 0 #DFD5BB, 6px 0 0 #D2C7A9;
}
.page-l {
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  height: 100%;
  border-radius: 6px 0 0 6px;
  background-image:
    linear-gradient(270deg, rgba(28,26,22,0.15), rgba(28,26,22,0) 9%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  box-shadow: -2px 0 0 #E9E1CB, -4px 0 0 #DFD5BB, -6px 0 0 #D2C7A9;
}
/* Tiranga silk ribbon lying in the gutter of the right page */
.page-r { padding-left: max(2.2rem, clamp(1.6rem, 2.8vw, 2.6rem)); }
.page-r::before {
  content: "";
  position: absolute;
  top: 0;
  left: 6px;
  width: 12px;
  height: 60px;
  background: linear-gradient(90deg,
    var(--tiranga-saffron) 0 33.4%,
    var(--tiranga-cream) 33.4% 66.7%,
    var(--tiranga-green) 66.7% 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - 9px), 0 100%);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
}

/* The turning leaf: front = outgoing right page, back = incoming left page */
.leaf {
  position: absolute;
  left: 50%;
  top: 0;
  width: 50%;
  height: 100%;
  transform-origin: left center;
  transform-style: preserve-3d;
  transition: transform 700ms var(--ease-out);
  z-index: 3;
}
.leaf.is-turned { transform: rotateY(-180deg); }
.leaf-face {
  position: absolute;
  inset: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.leaf-back { transform: rotateY(180deg); }

/* Page furniture */
.page-band {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: var(--acc, var(--ledger-green));
  opacity: 0.75;
}
.page .label,
.page .eyebrow { color: var(--acc, var(--oxblood)); }
.page .pg-label { display: block; margin-bottom: var(--space-3); }
.bk-title {
  font-size: var(--step-3);
  max-width: 14ch;
  text-wrap: balance;
  margin-top: var(--space-2);
}
.bk-relevance {
  font-size: var(--step-1);
  line-height: 1.65;
  max-width: 30ch;
}
.bk-ornament {
  margin-top: var(--space-5);
  font-size: var(--step-2);
  color: var(--acc, var(--gold-foil));
  opacity: 0.7;
}
.bk-colophon {
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--rule-on-desk);
  font-size: var(--step--1);
  font-style: italic;
  color: var(--text-on-desk-dim);
}
.bk-notes {
  height: 72%;
  background: repeating-linear-gradient(180deg,
    transparent 0 1.7em, rgba(70,100,160,0.15) 1.7em calc(1.7em + 1px));
}

/* The Sections — every section number of the Act as a chip grid */
.sec-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.sec-chip {
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.02em;
  color: var(--acc, var(--oxblood));
  background: var(--paper-shade);
  border: 1px solid var(--rule-on-desk);
  border-radius: 2px;
  padding: 0.18em 0.5em;
}
.sec-note {
  margin-top: var(--space-3);
  font-size: var(--step--1);
  font-style: italic;
  color: var(--text-on-desk-dim);
}
button.sec-chip { cursor: default; }
.sec-chip.is-link {
  cursor: pointer;
  border-color: var(--acc, var(--oxblood));
  transition: background var(--dur-quick) var(--ease-out);
}
.sec-chip.is-link:hover { background: #F3EBD3; text-decoration: underline; }

/* Full-text pages — one section of the Act per page */
.sec-h {
  font-family: var(--font-display);
  font-size: var(--step-1);
  margin: 0.2em 0 0.7em;
  max-width: 26ch;
  text-wrap: balance;
}
.sec-text p {
  margin: 0 0 0.85em;
  font-size: var(--step--1);
  line-height: 1.62;
  max-width: none;
}
.sec-basis {
  margin-top: var(--space-3);
  padding-top: var(--space-2);
  border-top: 1px solid var(--rule-on-desk);
  font-size: 0.72rem;
  font-style: italic;
  color: var(--text-on-desk-dim);
}

/* Arrangement-of-Sections contents rows with dotted leaders */
.bk-toc {
  list-style: none;
  margin: 0;
  padding: 0;
}
.bk-toc li {
  display: flex;
  align-items: baseline;
  gap: 0.55em;
  padding: 0.42em 0;
  font-size: var(--step--1);
  line-height: 1.45;
}
.bk-toc .t-h { max-width: 72%; }
.bk-toc .t-dots {
  flex: 1;
  min-width: 12px;
  border-bottom: 1px dotted var(--rule-on-desk);
  transform: translateY(-3px);
}
.bk-toc .t-s {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.03em;
  color: var(--acc, var(--oxblood));
  white-space: nowrap;
}
.folio {
  position: absolute;
  bottom: 10px;
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.2em;
  color: var(--acc, var(--ink-soft));
  opacity: 0.8;
}
.page .drawer-sections code { color: var(--acc, var(--oxblood)); }

/* Page-turn controls */
.pg-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 80;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 2rem;
  line-height: 1;
  color: var(--gold-foil-bright);
  background: rgba(7, 31, 24, 0.55);
  border: 1px solid var(--rule-on-shelf);
  transition: background var(--dur-quick) var(--ease-out), color var(--dur-quick) var(--ease-out);
}
.pg-nav:hover:not(:disabled) { background: rgba(7, 31, 24, 0.85); color: #FFF3CF; }
.pg-nav:disabled { opacity: 0.25; cursor: default; }
.pg-prev { left: max(14px, calc(50% - var(--pw) - 74px)); }
.pg-next { right: max(14px, calc(50% - var(--pw) - 74px)); }
.pg-count {
  position: absolute;
  bottom: 18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 80;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.2em;
  white-space: nowrap;
  color: #E9E2CC;
  background: rgba(7, 31, 24, 0.8);
  padding: 0.45em 1.1em;
  border-radius: 999px;
  border: 1px solid var(--rule-on-shelf);
}
.bk-index {
  position: absolute;
  bottom: 58px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 80;
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-foil-bright);
  background: rgba(7, 31, 24, 0.8);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 999px;
  padding: 0.5em 1.2em;
  cursor: pointer;
}
.bk-index:hover { color: #FFF3CF; border-color: var(--gold-foil); }

.folio-all { display: none; }

.flip {
  position: absolute;
  left: 50%;
  top: 0;
  width: 50%;
  height: 100%;
  transform-origin: left center;
  transform-style: preserve-3d;
  transition: transform 950ms var(--ease-out);
  z-index: 2;
}
.book.is-open .flip { transform: rotateY(-180deg); }
.flip-face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.flip-cover {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: 0 6px 6px 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.34), rgba(255,255,255,0.08) 8%, rgba(0,0,0,0) 22%),
    var(--cloth, var(--ledger-green));
}
.flip-cover::before {
  content: "";
  position: absolute;
  inset: 14px;
  border: 1px solid var(--foil, var(--gold-foil));
  border-radius: 0 4px 4px 0;
  opacity: 0.55;
}
.cover-band {
  width: 68%;
  height: 14px;
  background: var(--foil, var(--gold-foil));
  opacity: 0.85;
}
.cover-title {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 620;
  color: var(--foil, var(--gold-foil-bright));
  text-align: center;
  max-width: 92%;
  text-wrap: balance;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.cover-year {
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.3em;
  color: var(--foil, var(--gold-foil-bright));
  opacity: 0.9;
}
.flip-back {
  transform: rotateY(180deg);
  border-radius: 6px 0 0 6px;
  background-image:
    linear-gradient(270deg, rgba(28,26,22,0.15), rgba(28,26,22,0) 9%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E");
  box-shadow: -2px 0 0 #E9E1CB, -4px 0 0 #DFD5BB, -6px 0 0 #D2C7A9;
}

/* A pulled book slides off the shelf toward the reader */
.spine.is-pulled {
  transform: translateY(18px) scale(1.05);
  box-shadow: 0 18px 26px -10px rgba(0, 0, 0, 0.7);
  z-index: 3;
}

/* Narrow panes & small laptops: a smaller physical book, not a fallback */
@media (max-width: 1000px) {
  .book {
    --pw: min(45vw, 24rem);
    --ph: min(560px, 78vh);
  }
  .page { padding: 1.1rem 1.25rem 2rem; font-size: var(--step--1); }
  .bk-title { font-size: var(--step-2); }
  .bk-relevance { font-size: var(--step-0); }
  .pg-nav { width: 40px; height: 40px; font-size: 1.5rem; }
  .pg-prev { left: 6px; }
  .pg-next { right: 6px; }
  .board { inset: -10px -13px -24px -13px; }
}

/* Truly small screens: the book becomes a full-screen folio of stacked pages */
@media (max-width: 620px) {
  .book.is-staged { display: block; position: fixed; inset: 0; overflow-y: auto; background: #FCF8EC; perspective: none; }
  .spread { display: block; width: auto; height: auto; transform: none !important; filter: none; }
  .page-l, .page-r, .leaf, .flip, .pg-nav, .pg-count, .board, .stack { display: none; }
  .folio-all { display: block; }
  .folio-all .page {
    position: relative;
    width: auto;
    height: auto;
    overflow: visible;
    border-bottom: 1px solid var(--rule-on-desk);
  }
  .folio-all .folio { position: static; display: block; margin-top: var(--space-3); }
  .drawer-close { color: var(--ink-soft); }
  .drawer-close:hover { color: var(--oxblood); }
}

/* ── Colour pass: rooms, tabs, quarters ── */
.catalogue { background-color: #FAF4E2; }
.almanac   { background-color: #F2F1E1; }
.practice  { background-color: #F6EFDE; }

.cat-letter:nth-child(3n+2) .letter-tab { background: #0F3550; }
.cat-letter:nth-child(3n)   .letter-tab { background: #5A2430; }

.month-card[data-q="1"] { --qc: var(--tiranga-green); }
.month-card[data-q="2"] { --qc: var(--tiranga-navy); }
.month-card[data-q="3"] { --qc: var(--tiranga-saffron); }
.month-card[data-q="4"] { --qc: #C08A8A; }
.drawer-cite {
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.06em;
  color: var(--text-on-desk-dim);
  margin-top: var(--space-2);
}
.drawer-authority {
  display: flex;
  gap: var(--space-2);
  align-items: baseline;
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--rule-on-desk);
  font-size: var(--step-0);
}
.drawer-authority .label,
.drawer-section .label {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--oxblood);
  white-space: nowrap;
}
.drawer-section { margin-top: var(--space-4); }
.drawer-section .label { display: block; margin-bottom: var(--space-2); }
.drawer-relevance {
  font-size: var(--step-1);
  line-height: 1.5;
}
.drawer-compliances {
  list-style: none;
  margin: 0;
  padding: 0;
}
.drawer-compliances li {
  position: relative;
  padding: 0.55em 0 0.55em 1.8em;
  border-bottom: 1px dotted var(--rule-on-desk);
}
.drawer-compliances li::before {
  content: "§";
  position: absolute;
  left: 0.2em;
  font-family: var(--font-mono);
  color: var(--oxblood);
}
.drawer-sections {
  list-style: none;
  margin: 0;
  padding: 0;
}
.drawer-sections li {
  padding: 0.5em 0;
  border-bottom: 1px dotted var(--rule-on-desk);
  font-size: var(--step-0);
}
.drawer-sections code {
  font-family: var(--font-mono);
  font-size: 0.78em;
  font-weight: 500;
  color: var(--oxblood);
  background: var(--paper-shade);
  padding: 0.1em 0.45em;
  border-radius: 2px;
  margin-right: 0.4em;
}
.drawer-forms {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}
.form-chip {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  color: var(--ink);
  background: var(--paper-shade);
  border: 1px solid rgba(201,162,39,0.55);
  border-radius: 2px;
  padding: 0.35em 0.7em;
}
.drawer-link {
  display: inline-block;
  margin-top: var(--space-4);
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.08em;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 2px solid var(--gold-foil);
  padding-bottom: 2px;
}
.drawer-link:hover { color: var(--oxblood); border-bottom-color: var(--oxblood); }

/* ── Headband — the silk band of a bound book,
      woven as a pastel tiranga with a chakra hairline ── */
.headband {
  height: 14px;
  border-top: 2px solid var(--gold-foil);
  border-bottom: 2px solid var(--gold-foil);
  background:
    linear-gradient(180deg,
      transparent calc(50% - 0.5px),
      var(--tiranga-navy) calc(50% - 0.5px) calc(50% + 0.5px),
      transparent calc(50% + 0.5px)),
    linear-gradient(180deg,
      var(--tiranga-saffron) 0 33.4%,
      var(--tiranga-cream) 33.4% 66.7%,
      var(--tiranga-green) 66.7% 100%);
}

/* ── Card catalogue ─────────────────────── */
.catalogue { padding-block: var(--space-6); }
.catalogue .eyebrow { display: block; margin-bottom: var(--space-2); }
.catalogue h2 { font-size: var(--step-3); max-width: 20ch; }
.catalogue-intro {
  margin-top: var(--space-3);
  font-size: var(--step-1);
  font-style: italic;
  color: var(--text-on-desk-dim);
}
.cat-letter {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: var(--space-4);
  align-items: start;
  margin-top: var(--space-5);
}
.letter-tab {
  font-family: var(--font-display);
  font-size: var(--step-2);
  font-weight: 620;
  color: var(--paper);
  background: var(--ledger-green);
  border-radius: 3px 3px 12px 3px;
  text-align: center;
  padding: 0.15em 0;
  box-shadow: 0 2px 5px rgba(0,0,0,0.25);
  position: sticky;
  top: 96px;
}
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: var(--space-3);
}
.index-card {
  position: relative;
  text-align: left;
  padding: 1.15em 1em 0.9em 2.6em;
  border-radius: 2px;
  color: var(--text-on-desk);
  background:
    /* red margin line */
    linear-gradient(90deg, transparent 1.9em, rgba(160,60,60,0.5) 1.9em calc(1.9em + 1px), transparent calc(1.9em + 1px)),
    /* ruled feint lines */
    repeating-linear-gradient(180deg, transparent 0 1.45em, rgba(70,100,160,0.16) 1.45em calc(1.45em + 1px)),
    #FCF8EC;
  box-shadow: 0 1px 3px rgba(28,26,22,0.18), 0 4px 10px -6px rgba(28,26,22,0.25);
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.index-card:nth-child(3n) { transform: rotate(0.35deg); }
.index-card:nth-child(4n+1) { transform: rotate(-0.3deg); }
.index-card:hover, .index-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 2px 4px rgba(28,26,22,0.2), 0 10px 18px -8px rgba(28,26,22,0.35);
}
.index-card .ic-title {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.45em;
}
.index-card .ic-meta {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.06em;
  line-height: 1.45em;
  color: var(--ink-soft);
  margin-top: 0.35em;
}
.index-card .ic-cat {
  position: absolute;
  top: 0.5em;
  right: 0.7em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--dot, var(--ink-soft));
  opacity: 0.85;
}

/* ── The Portal Wall: brass door-plates to official counters ── */
.portals { padding-block: var(--space-6); }
.portals .eyebrow { display: block; margin-bottom: var(--space-2); }
.portals h2 { font-size: var(--step-3); max-width: 20ch; }
.portals-intro {
  margin-top: var(--space-3);
  font-size: var(--step-1);
  font-style: italic;
  color: var(--text-on-desk-dim);
}
/* The paternoster: an endless lift of plates, one shaft up, one down */
.pater {
  position: relative;
  display: flex;
  gap: var(--space-3);
  height: min(46vh, 420px);
  max-width: 640px;
  margin-top: var(--space-4);
  padding: 6px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--gold-foil) 55%, transparent);
  border-radius: 8px;
  box-shadow: inset 0 0 0 4px color-mix(in srgb, var(--gold-foil) 14%, transparent);
}
.shaft { flex: 1; min-width: 0; overflow: hidden; }
.shaft-track {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  will-change: transform;
  animation: pater-ride 52s linear infinite;
}
.shaft-down .shaft-track { animation-direction: reverse; animation-duration: 64s; }
.pater:hover .shaft-track { animation-play-state: paused; }
@keyframes pater-ride {
  from { transform: translateY(0); }
  to   { transform: translateY(calc(-50% - var(--space-3) / 2)); }
}
.pater-fade {
  position: absolute;
  left: 0; right: 0;
  height: 46px;
  pointer-events: none;
}
.pater-fade-top { top: 0; background: linear-gradient(180deg, var(--paper), transparent); }
.pater-fade-bot { bottom: 0; background: linear-gradient(0deg, var(--paper), transparent); }
.pp-tag {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.58rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-on-desk-dim);
  margin-bottom: 0.25em;
}
@media (max-width: 620px) { .shaft-down { display: none; } }
@media (prefers-reduced-motion: reduce) { .shaft-track { animation: none; } }
.portal-plate {
  display: block;
  text-decoration: none;
  color: var(--text-on-desk);
  padding: 0.65em 0.9em 0.6em;
  border-radius: 5px;
  border: 1px solid color-mix(in srgb, var(--gold-foil) 50%, transparent);
  border-left: 4px solid var(--dot, var(--gold-foil));
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--gold-foil-bright) 22%, var(--paper)),
    color-mix(in srgb, var(--gold-foil) 14%, var(--paper)));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 2px 5px rgba(0,0,0,0.12);
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.portal-plate:hover, .portal-plate:focus-visible {
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 8px 14px -6px rgba(0,0,0,0.3);
}
.pp-label {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5em;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--step-0);
}
.pp-arrow { opacity: 0.55; font-size: 0.8em; }
.pp-domain {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.04em;
  color: var(--text-on-desk-dim);
  margin-top: 0.15em;
}
.pp-note {
  display: block;
  font-size: var(--step--1);
  color: var(--text-on-desk-dim);
  margin-top: 0.3em;
}

/* ── The OmniLedger Shelf ───────────────── */
.olshelf { padding-block: var(--space-6); }
.olshelf .eyebrow { display: block; margin-bottom: var(--space-2); }
.olshelf h2 { font-size: var(--step-3); color: var(--accent-bright); }
.ol-intro {
  margin-top: var(--space-3);
  font-size: var(--step-1);
  color: var(--text-on-shelf);
  max-width: 58ch;
}
.ol-card {
  margin-top: var(--space-5);
  max-width: 640px;
  background-color: #FCF8EC;
  color: var(--text-on-desk);
  border-radius: 6px;
  border-top: 5px solid var(--gold-foil);
  padding: clamp(1.2rem, 2.4vw, 2rem);
  box-shadow: 0 18px 34px -18px rgba(0, 0, 0, 0.6);
}
.ol-chip {
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--oxblood);
}
.ol-card h3 { font-size: var(--step-2); margin: 0.2em 0 0.5em; }
.ol-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  max-width: 640px;
  margin-top: var(--space-4);
}
.ol-ctrl { display: flex; align-items: center; gap: var(--space-2); }
.ol-count {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: var(--text-on-shelf-dim);
}
.ol-note {
  margin-top: var(--space-3);
  font-size: var(--step--1);
  font-style: italic;
  color: var(--text-on-shelf-dim);
  max-width: 60ch;
}

/* ── Compliance almanac ─────────────────── */
.almanac { padding-block: var(--space-6); }
.almanac .eyebrow { display: block; margin-bottom: var(--space-2); }
.almanac h2 { font-size: var(--step-3); max-width: 20ch; }
.almanac-intro {
  margin-top: var(--space-3);
  font-size: var(--step-1);
  font-style: italic;
  color: var(--text-on-desk-dim);
}

.next-due {
  display: inline-flex;
  align-items: baseline;
  gap: var(--space-2);
  margin-top: var(--space-3);
  padding: 0.55em 1em;
  background: var(--paper-shade);
  border-left: 4px solid var(--gold-foil);
  font-size: var(--step-0);
}
.next-due .label {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--oxblood);
  white-space: nowrap;
}
.next-due strong {
  font-family: var(--font-mono);
  font-weight: 500;
  font-size: var(--step--1);
  color: var(--oxblood);
}

.almanac-recurring {
  margin-top: var(--space-5);
  padding: var(--space-3) var(--space-4);
  background: var(--paper-shade);
  border-top: 4px solid;
  border-image: linear-gradient(90deg,
    var(--tiranga-saffron), var(--tiranga-cream) 50%, var(--tiranga-green)) 1;
}
.almanac-recurring .label {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--oxblood);
}
.almanac-recurring ul {
  list-style: none;
  margin: var(--space-2) 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
}
.almanac-recurring li {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  font-size: var(--step--1);
}

.almanac-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-5);
}
.month-card {
  border-top: 4px double var(--qc, var(--ink));
  padding-top: var(--space-3);
}
.month-card.is-current {
  position: relative;
  outline: 2px solid var(--gold-foil);
  outline-offset: 10px;
  border-radius: 1px;
}
/* Ribbon bookmark marking the open page of the year — pastel tiranga */
.month-card.is-current::after {
  content: "";
  position: absolute;
  top: -10px;
  right: 18px;
  width: 17px;
  height: 46px;
  background: linear-gradient(90deg,
    var(--tiranga-saffron) 0 33.4%,
    var(--tiranga-cream) 33.4% 66.7%,
    var(--tiranga-green) 66.7% 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - 9px), 0 100%);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3);
}
.month-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2);
}
.month-card h3 {
  font-size: var(--step-1);
}
.month-now {
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil));
  padding: 0.25em 0.7em;
  border-radius: 2px;
}
.month-card ul {
  list-style: none;
  margin: var(--space-2) 0 0;
  padding: 0;
}
.month-card li {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  padding-block: 0.45em;
  border-bottom: 1px dotted var(--rule-on-desk);
  font-size: var(--step--1);
  line-height: 1.45;
}
.due-day {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--oxblood);
  flex: 0 0 2em;
}
.tag-dot {
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  align-self: center;
  background: var(--dot, var(--ink-soft));
}
.month-note {
  margin-top: var(--space-2);
  font-size: var(--step--1);
  font-style: italic;
  color: var(--text-on-desk-dim);
}

/* ── Practice ───────────────────────────── */
.practice { padding-block: var(--space-6); }
.practice .eyebrow { display: block; margin-bottom: var(--space-2); }
.practice h2 { font-size: var(--step-3); max-width: 20ch; }
.practice-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--space-4);
  margin-top: var(--space-5);
}
.practice-item {
  --acc: var(--ink);
  border-top: 4px double var(--acc);
  padding-top: var(--space-3);
  padding-inline: var(--space-2);
  border-radius: 0 0 8px 8px;
  transition: transform var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out),
    box-shadow var(--dur-quick) var(--ease-out);
}
.practice-item:hover {
  /* the discipline card pulls up out of the row */
  transform: translateY(-10px) scale(1.02);
  background: #FCF8EC;
  box-shadow: 0 4px 0 -2px var(--acc) inset, 0 18px 30px -12px rgba(28, 26, 22, 0.28);
}
.practice-item h3 { color: var(--acc); }
.practice-item .shelf-ref { color: var(--acc); }
.practice-item h3 {
  font-size: var(--step-1);
}
.practice-item p {
  margin-top: var(--space-2);
  font-size: var(--step-0);
  color: var(--text-on-desk-dim);
}
.practice-item .shelf-ref {
  display: inline-block;
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--oxblood);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
}

/* ── Wax seal ───────────────────────────── */
.footer-lede {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
}
.seal {
  flex: 0 0 auto;
  width: 96px;
  height: 96px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border-radius: 50%;
  transform: rotate(-7deg);
  background:
    radial-gradient(circle at 32% 28%, #9A4040 0%, var(--oxblood) 45%, #571F1F 100%);
  box-shadow:
    inset 0 0 0 3px rgba(201,162,39,0.85),
    inset 0 0 0 7px rgba(201,162,39,0.25),
    inset 0 0 0 8px rgba(228,206,143,0.6),
    0 6px 14px -6px rgba(0,0,0,0.6);
}
.seal-mono {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 620;
  letter-spacing: 0.04em;
  color: var(--gold-foil-bright);
  text-shadow: 0 1px 2px rgba(0,0,0,0.55);
  line-height: 1;
}
.seal-sub {
  font-family: var(--font-mono);
  font-size: 0.5rem;
  letter-spacing: 0.22em;
  color: var(--gold-foil-bright);
  opacity: 0.85;
}

/* ── Footer ─────────────────────────────── */
.site-footer {
  background: var(--bg-shelf-deep);
  color: var(--text-on-shelf);
  padding-block: var(--space-6);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--space-5);
  align-items: start;
}
.site-footer h2 {
  font-size: var(--step-2);
  color: var(--accent-bright);
  max-width: 18ch;
}
.footer-contact {
  font-family: var(--font-mono);
  font-size: var(--step--1);
  letter-spacing: 0.06em;
  line-height: 2;
}
.footer-contact a { color: var(--accent-bright); text-decoration-color: var(--rule-on-shelf); }
.footer-disclaimer {
  margin-top: var(--space-5);
  padding-top: var(--space-3);
  border-top: 1px solid var(--rule-on-shelf);
  font-size: var(--step--1);
  font-style: italic;
  color: var(--text-on-shelf-dim);
  max-width: 72ch;
}

/* ── Responsive ─────────────────────────── */
@media (max-width: 720px) {
  .site-header .wrap { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
  .site-nav { gap: var(--space-3); flex-wrap: wrap; }
  .hero { padding-block: var(--space-6) var(--space-5); }
  .footer-grid { grid-template-columns: 1fr; }
  :root {
    --spine-h-tall: 126px;
    --spine-h-mid: 118px;
    --spine-h-short: 112px;
    --spine-w: 32px;
    --spine-w-wide: 36px;
  }
}

/* ─── The Carousel: a revolving 3D drum of every spine ─── */
.carousel { padding-block: var(--space-6); }
.car-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-4);
  flex-wrap: wrap;
  margin-bottom: var(--space-4);
}
.car-controls {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-family: var(--font-mono);
  color: var(--text-on-shelf-dim);
}
.car-btn {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  border: 1px solid var(--rule-on-shelf);
  background: rgba(0, 0, 0, 0.25);
  color: var(--accent-bright);
  font-size: 0.7rem;
  cursor: pointer;
  transition: background var(--dur-quick) var(--ease-out);
}
.car-btn:hover { background: rgba(0, 0, 0, 0.45); }
.car-speed-label { font-size: 0.72rem; letter-spacing: 0.08em; }
#car-speed, #ring-speed, #deck-speed { accent-color: var(--accent); width: 130px; }
#deck-speed { width: 110px; }
.car-stage {
  height: 400px;
  perspective: 1250px;
  perspective-origin: 50% 42%;
  overflow: hidden;
  display: grid;
  place-items: center;
}
.car-drum {
  position: relative;
  width: 58px;
  height: 244px;
  transform-style: preserve-3d;
  will-change: transform;
}
.car-drum.car-rolling {
  animation-name: car-roll;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@keyframes car-roll { from { transform: rotateX(0deg); } to { transform: rotateX(-360deg); } }
.car-spine {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 4px 8px;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.14), rgba(0,0,0,0.22) 12%, transparent 30%,
      transparent 72%, rgba(0,0,0,0.3)),
    var(--cloth, var(--ledger-green-soft));
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.45);
  backface-visibility: hidden;
  color: var(--foil, var(--accent-bright));
}
/* books lie flat (horizontal) on the wheel and roll north to south */
.car-spine {
  transform: rotateX(var(--ry, 0deg)) translateZ(var(--tz, 0px)) rotateZ(-90deg);
}
.car-spine:hover {
  /* the book pulls off the wheel toward the reader */
  filter: brightness(1.2);
  transform: rotateX(var(--ry, 0deg)) translateZ(var(--tz, 0px)) rotateZ(-90deg) translateZ(42px) scale(1.05);
  transition-duration: 200ms;
}
.car-title {
  flex: 1;
  writing-mode: vertical-rl;
  font-family: var(--font-display);
  font-size: 0.7rem;
  line-height: 1.15;
  letter-spacing: 0.02em;
  color: var(--foil, var(--accent-bright));
  overflow: hidden;
  margin-top: 6px;
  max-height: 176px;
}
.car-year {
  font-family: var(--font-mono);
  font-size: 0.58rem;
  color: var(--text-on-shelf-dim);
}
.car-hint {
  margin-top: var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--step--1);
  color: var(--text-on-shelf-dim);
  text-align: center;
}
@media (max-width: 760px) {
  .car-stage { height: 340px; perspective: 900px; }
}

/* ─── Aisle-guide book search ─── */
.ag-search { position: relative; margin: 0 0 var(--space-3); }
.ag-search input {
  width: 100%;
  padding: 0.45em 0.7em;
  border: 1px solid var(--rule-on-shelf);
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.25);
  color: var(--text-on-shelf);
  font-family: var(--font-mono);
  font-size: 0.78rem;
}
.ag-search input::placeholder { color: var(--text-on-shelf-dim); }
.ag-hits {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: -40px;
  z-index: 40;
  background: var(--paper);
  border: 1px solid var(--rule-on-desk);
  border-radius: 6px;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.4);
  overflow: hidden;
}
.ag-hits button {
  display: flex;
  align-items: center;
  gap: 0.5em;
  width: 100%;
  padding: 0.5em 0.7em;
  border: 0;
  background: none;
  color: var(--text-on-desk);
  font-family: var(--font-body);
  font-size: 0.82rem;
  text-align: left;
  cursor: pointer;
}
.ag-hits button { transition: transform var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out); }
.ag-hits button:hover {
  background: var(--paper-shade);
  transform: translateX(9px);
  box-shadow: -4px 0 0 var(--accent);
}
.ag-hits button small { margin-left: auto; color: var(--text-on-desk-dim); font-family: var(--font-mono); }
.agh-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--dot, var(--accent));
  flex: none;
}
.agh-none { margin: 0; padding: 0.6em 0.8em; font-size: 0.8rem; color: var(--text-on-desk-dim); }

/* ─── In-book navigator: jump dropdown + search in the open book ─── */
.bk-nav {
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 40;
  display: flex;
  gap: 8px;
  align-items: center;
}
.bk-nav select,
.bk-nav input {
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--text-on-shelf);
  background: var(--ledger-green-deep);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 999px;
  padding: 0.45em 0.9em;
}
.bk-nav select { max-width: 240px; }
.bk-nav input { width: 220px; }
.bk-nav input::placeholder { color: var(--text-on-shelf-dim); }
.bk-find-wrap { position: relative; }
.bk-hits {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  width: 340px;
  max-height: 320px;
  overflow-y: auto;
  background: var(--paper);
  border: 1px solid var(--rule-on-desk);
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
}
.bk-hits button {
  display: flex;
  gap: 0.6em;
  align-items: baseline;
  width: 100%;
  padding: 0.55em 0.8em;
  border: 0;
  border-bottom: 1px solid var(--rule-on-desk);
  background: none;
  color: var(--text-on-desk);
  font-family: var(--font-body);
  font-size: 0.8rem;
  text-align: left;
  cursor: pointer;
}
.bk-hits button:last-child { border-bottom: 0; }
.bk-hits button:hover { background: var(--paper-shade); }
.bk-hits code {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--oxblood);
  white-space: nowrap;
}
.bk-hits em { color: var(--text-on-desk-dim); font-style: normal; font-size: 0.72rem; }
@media (max-width: 760px) {
  .bk-nav { flex-direction: column; gap: 6px; top: 6px; }
  .bk-nav select, .bk-nav input { width: 64vw; max-width: none; }
  .bk-hits { right: auto; left: 50%; transform: translateX(-50%); width: 84vw; }
}

/* ─── Theme-pick dots (page colour options) ─── */
.theme-pick {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 0.35em 0.8em;
  border: 1px solid var(--rule-on-shelf);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.22);
}
.theme-pick::before {
  content: "colour";
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.1em;
  color: var(--text-on-shelf-dim);
  margin-right: 2px;
}
.tp-dot {
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.65);
  cursor: pointer;
  padding: 0;
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}
.tp-dot:hover { transform: scale(1.22); box-shadow: 0 4px 10px rgba(0,0,0,0.45); }
.tp-dot.is-on { border-color: var(--accent-bright); box-shadow: 0 0 0 2px rgba(0,0,0,0.25); }
.tp-navy   { background: linear-gradient(135deg, #122A5C 55%, #E8912D 55%); }
.tp-pastel { background: linear-gradient(135deg, #E9EEF8 55%, #EFAF7E 55%); }
.tp-green  { background: linear-gradient(135deg, #0E3B2E 55%, #C9A227 55%); }
.tp-pro    { background: linear-gradient(135deg, #1A2530 55%, #B08A46 55%); }
.tp-emerald{ background: linear-gradient(135deg, #0A4A38 55%, #2FD8A6 55%); }
.tp-baccara{ background: linear-gradient(135deg, #2A0A14 55%, #CC4E6A 55%); }

/* ─── The deck: the catalogue as a pack of shuffle cards ─── */
.deck-controls {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin: var(--space-4) 0 var(--space-3);
}
.deck-btn {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  padding: 0.55em 1.1em;
  border-radius: 999px;
  border: 1px solid var(--rule-on-desk);
  background: var(--paper-shade);
  color: var(--text-on-desk);
  cursor: pointer;
  transition: background var(--dur-quick) var(--ease-out), transform var(--dur-quick) var(--ease-out);
}
.deck-btn:hover { background: #E2D9C0; transform: translateY(-1px); }
.deck-count {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--text-on-desk-dim);
}
.deck-stage {
  position: relative;
  height: 430px;
  margin-top: var(--space-3);
}
.play-card {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(420px, 84vw);
  transform: translate(calc(-50% + var(--dx, 0px)), calc(-50% + var(--dy, 0px))) rotate(var(--rot, 0deg));
  transition: transform 480ms var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
  box-shadow: 0 6px 16px rgba(28, 26, 22, 0.25);
  cursor: pointer;
}
.play-card.is-top {
  box-shadow: 0 18px 42px rgba(28, 26, 22, 0.38);
}
.play-card:hover {
  /* any card in the pile pulls out along its own tilt */
  transform: translate(calc(-50% + var(--dx, 0px)), calc(-50% + var(--dy, 0px)))
    rotate(var(--rot, 0deg)) translateY(-26px) scale(1.04);
  transition-duration: 180ms;
  z-index: 60 !important;
  box-shadow: 0 26px 48px rgba(28, 26, 22, 0.4);
}
@media (max-width: 620px) { .deck-stage { height: 380px; } }

/* ─── The almanac as a year table: month buttons + detail panel ─── */
.cal-table {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}
.cal-month {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 0.7em 0.85em;
  border: 1px solid var(--rule-on-desk);
  border-top: 4px solid var(--q-rule, var(--rule-on-desk));
  border-radius: 8px;
  background: #FCF8EC;
  color: var(--text-on-desk);
  font-family: var(--font-display);
  cursor: pointer;
  text-align: left;
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.cal-month[data-q="1"] { --q-rule: var(--tiranga-green); }
.cal-month[data-q="2"] { --q-rule: var(--tiranga-navy); }
.cal-month[data-q="3"] { --q-rule: var(--tiranga-saffron); }
.cal-month[data-q="4"] { --q-rule: #D9A6A6; }
.cal-month:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(28,26,22,0.14); }
.cal-month.is-open {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  box-shadow: 0 8px 18px rgba(28,26,22,0.16);
}
.cal-month .cm-name { font-size: var(--step-0); }
.cal-month .cm-count {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-on-desk-dim);
}
.cal-month .month-now { position: static; margin-top: 2px; }
.cal-detail {
  margin-top: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--rule-on-desk);
  border-left: 5px solid var(--q-rule, var(--accent));
  border-radius: 8px;
  background: #FCF8EC;
}
.cal-detail[data-q="1"] { --q-rule: var(--tiranga-green); }
.cal-detail[data-q="2"] { --q-rule: var(--tiranga-navy); }
.cal-detail[data-q="3"] { --q-rule: var(--tiranga-saffron); }
.cal-detail[data-q="4"] { --q-rule: #D9A6A6; }
@media (max-width: 900px) { .cal-table { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 620px) { .cal-table { grid-template-columns: repeat(2, 1fr); } }

/* cal-table lives inside the legacy .almanac-grid container — flatten it */
.almanac-grid { display: block; column-count: auto; columns: auto; }
.cal-detail ul {
  list-style: none;
  margin: var(--space-2) 0 0;
  padding: 0;
}
.cal-detail li {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
  padding-block: 0.45em;
  border-bottom: 1px dotted var(--rule-on-desk);
  font-size: var(--step--1);
  line-height: 1.45;
}
.cal-detail li:last-child { border-bottom: 0; }
.cal-detail .month-head { display: flex; align-items: center; gap: var(--space-3); }
.cal-detail .month-head h3 { margin: 0; }
.cal-detail .month-now { position: static; }

/* the "any colour" card: a colour-wheel dot wrapping the native picker */
.tp-custom {
  position: relative;
  display: inline-block;
  background: conic-gradient(#E8912D, #E4CE8F, #1E7A43, #7E93B8, #122A5C, #7A2E2E, #E8912D);
  overflow: hidden;
}
.tp-custom input[type="color"] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  border: 0;
  padding: 0;
}

/* ─── Catalogue: search inside every book ─── */
.cat-search { position: relative; margin: var(--space-4) 0 0; }
.cat-search input {
  width: 100%;
  max-width: 620px;
  padding: 0.65em 1em;
  border: 1px solid var(--rule-on-desk);
  border-radius: 10px;
  background: #FCF8EC;
  color: var(--text-on-desk);
  font-family: var(--font-body);
  font-size: 0.95rem;
}
.cat-search-note {
  display: inline-block;
  margin-left: var(--space-3);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  color: var(--text-on-desk-dim);
}
.cat-results {
  position: absolute;
  z-index: 60;
  top: calc(100% + 6px);
  left: 0;
  width: min(680px, 92vw);
  max-height: 420px;
  overflow-y: auto;
  background: var(--paper);
  border: 1px solid var(--rule-on-desk);
  border-radius: 10px;
  box-shadow: 0 22px 48px rgba(28, 26, 22, 0.3);
}
.cat-results button {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  padding: 0.6em 0.9em;
  border: 0;
  border-bottom: 1px solid var(--rule-on-desk);
  background: none;
  text-align: left;
  cursor: pointer;
  color: var(--text-on-desk);
  font-family: var(--font-body);
  font-size: 0.85rem;
}
.cat-results button:hover { background: var(--paper-shade); }
.cat-results button:last-child { border-bottom: 0; }
.cr-act {
  display: flex;
  align-items: center;
  gap: 0.45em;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-on-desk-dim);
}
.cr-act .ic-cat { position: static; width: 8px; height: 8px; border-radius: 50%; background: var(--dot); }
.cr-sec code {
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--oxblood);
  margin-right: 0.4em;
}
.cr-snip {
  font-size: 0.78rem;
  color: var(--text-on-desk-dim);
  line-height: 1.4;
}
.cr-snip mark { background: #F3E3B5; color: inherit; padding: 0 1px; }

/* ─── Catalogue list view ─── */
.view-toggle { display: inline-flex; gap: 4px; margin-right: var(--space-2); }
.deck-btn.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
.cat-list {
  margin-top: var(--space-3);
  columns: 2;
  column-gap: var(--space-5);
}
.cl-tab {
  display: block;
  break-after: avoid;
  margin: var(--space-3) 0 var(--space-1);
}
.cl-row {
  display: flex;
  align-items: baseline;
  gap: 0.6em;
  width: 100%;
  padding: 0.45em 0.2em;
  border: 0;
  border-bottom: 1px dotted var(--rule-on-desk);
  background: none;
  text-align: left;
  cursor: pointer;
  color: var(--text-on-desk);
  break-inside: avoid;
}
.cl-row {
  transition: transform var(--dur-quick) var(--ease-out), background var(--dur-quick) var(--ease-out),
    box-shadow var(--dur-quick) var(--ease-out);
}
.cl-row:hover {
  /* the index card pulls out of the file */
  transform: translateX(12px);
  background: #FCF8EC;
  box-shadow: -4px 0 0 var(--accent), 0 6px 14px rgba(28, 26, 22, 0.16);
  border-radius: 0 6px 6px 0;
}
.cl-row:hover .cl-name { color: var(--oxblood); text-decoration: underline; }
.cl-row .ic-cat { position: static; flex: 0 0 9px; width: 9px; height: 9px; border-radius: 50%; background: var(--dot); }
.cl-name { font-family: var(--font-display); font-size: 0.95rem; }
.cl-meta { margin-left: auto; font-family: var(--font-mono); font-size: 0.66rem; color: var(--text-on-desk-dim); text-align: right; }
@media (max-width: 900px) { .cat-list { columns: 1; } }

/* ─── Live market roller ─── */
.ticker {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--ledger-green-deep);
  border-bottom: 1px solid var(--rule-on-shelf);
  font-family: var(--font-mono);
  font-size: 0.74rem;
  color: var(--text-on-shelf);
  overflow: hidden;
}
.ticker-live {
  flex: none;
  padding: 0.5em 0.9em;
  background: var(--accent);
  color: #16110a;
  font-weight: 500;
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  white-space: nowrap;
}
.ticker-clip { flex: 1; overflow: hidden; }
.ticker-track {
  display: inline-flex;
  align-items: center;
  gap: 1.1em;
  padding-left: 1.1em;
  white-space: nowrap;
  will-change: transform;
  animation: tk-roll 55s linear infinite;
}
.ticker:hover .ticker-track { animation-play-state: paused; }
@keyframes tk-roll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.tk-item { display: inline-flex; align-items: baseline; gap: 0.5em; }
.tk-label { color: var(--text-on-shelf-dim); letter-spacing: 0.05em; }
.tk-price { color: var(--text-on-shelf); }
.tk-item.is-up .tk-chg { color: #58C48A; }
.tk-item.is-down .tk-chg { color: #E8837B; }
:root[data-theme="pastel"] .tk-item.is-up .tk-chg { color: #1E7A43; }
:root[data-theme="pastel"] .tk-item.is-down .tk-chg { color: #B3392F; }
.tk-dot { color: var(--text-on-shelf-dim); opacity: 0.6; }
@media (prefers-reduced-motion: reduce) {
  .ticker-track { animation: none; }
}

/* ─── The Market Ring: revolving live chart cards ─── */
.marketring { padding-block: var(--space-6); }
.ring-stage {
  height: 265px;
  perspective: 1300px;
  perspective-origin: 50% 40%;
  overflow: hidden;
  display: grid;
  place-items: center;
}
.ring-drum {
  position: relative;
  width: 118px;
  height: 148px;
  transform-style: preserve-3d;
  will-change: transform;
}
.ring-card {
  position: absolute;
  inset: 0;
  transform: rotateY(var(--ry, 0deg)) translateZ(var(--tz, 0px));
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  padding: 8px 10px 8px;
  border-radius: 8px;
  border: 1px solid var(--rule-on-shelf);
  background:
    linear-gradient(160deg, rgba(255,255,255,0.07), transparent 45%),
    var(--ledger-green-soft);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.4);
  backface-visibility: hidden;
  font-family: var(--font-mono);
}
.ring-card .rg-label {
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  color: var(--text-on-shelf-dim);
}
.ring-card .rg-price {
  font-size: 0.8rem;
  color: var(--text-on-shelf);
}
.ring-card .rg-chg { font-size: 0.7rem; }
.ring-card.is-up .rg-chg { color: #58C48A; }
.ring-card.is-down .rg-chg { color: #E8837B; }
:root[data-theme="pastel"] .ring-card.is-up .rg-chg { color: #1E7A43; }
:root[data-theme="pastel"] .ring-card.is-down .rg-chg { color: #B3392F; }
.rg-spark {
  width: 100%;
  height: 26px;
  margin-top: auto;
}
.rg-spark.is-up { color: #58C48A; }
.rg-spark.is-down { color: #E8837B; }
:root[data-theme="pastel"] .rg-spark.is-up { color: #1E7A43; }
:root[data-theme="pastel"] .rg-spark.is-down { color: #B3392F; }
@media (max-width: 760px) {
  .ring-stage { height: 235px; perspective: 950px; }
}

/* Three rings, shoulder to shoulder: India · Crypto · Currencies */
.ring-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: var(--space-4);
}
/* extra breathing room before the Currencies ring */
.ring-row .ring-block:nth-child(3) { margin-left: 30px; }
@media (max-width: 900px) {
  .ring-row { grid-template-columns: 1fr; }
  .ring-row .ring-block:nth-child(3) { margin-left: 0; }
}
.ring-block { margin-top: 0; min-width: 0; }
.ring-chip {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
  background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil));
  border-radius: 2px;
  padding: 0.35em 0.9em;
  margin-bottom: var(--space-2);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}

.ring-wait {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--text-on-shelf-dim);
  white-space: nowrap;
}

/* ─── Full-graph modal (double-click any instrument) ─── */
.chart-modal { position: fixed; inset: 0; z-index: 120; }
.chart-back {
  position: absolute;
  inset: 0;
  background: rgba(5, 10, 25, 0.72);
}
.chart-box {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(820px, 94vw);
  background: var(--paper);
  color: var(--text-on-desk);
  border-radius: 12px;
  padding: var(--space-4);
  box-shadow: 0 40px 90px rgba(0, 0, 0, 0.55);
}
.chart-close {
  position: absolute;
  top: 12px;
  right: 14px;
  border: 1px solid var(--rule-on-desk);
  background: var(--paper-shade);
  border-radius: 999px;
  padding: 0.35em 0.9em;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  cursor: pointer;
}
.chart-head { display: flex; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-3); }
.chart-title { font-family: var(--font-display); font-size: var(--step-2); }
.chart-sub { font-family: var(--font-mono); font-size: 0.9rem; color: var(--text-on-desk-dim); }
.chart-sub .cu { color: #1E7A43; }
.chart-sub .cd { color: #B3392F; }
.chart-svg { width: 100%; height: auto; display: block; }
.chart-grid { stroke: rgba(28, 26, 22, 0.15); stroke-dasharray: 3 4; }
.chart-lab { font-family: var(--font-mono); font-size: 11px; fill: var(--ink-soft); }
.chart-wait {
  margin: 0;
  padding: var(--space-6) 0;
  text-align: center;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-on-desk-dim);
}
.chart-note {
  margin: var(--space-2) 0 0;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  color: var(--text-on-desk-dim);
}
.tk-item, .ring-card { cursor: pointer; user-select: none; }

/* chart style toggle: line / candles */
.chart-mode { margin-left: auto; display: inline-flex; gap: 4px; padding-right: 5.5rem; }
.chart-mode button {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  padding: 0.4em 0.9em;
  border-radius: 999px;
  border: 1px solid var(--rule-on-desk);
  background: var(--paper-shade);
  color: var(--text-on-desk);
  cursor: pointer;
}
.chart-mode button.is-on { background: var(--accent); border-color: var(--accent); color: #fff; }
@media (max-width: 620px) {
  .chart-head { flex-wrap: wrap; }
  .chart-mode { padding-right: 0; }
}

/* ─── The almanac as a fanned hand of month cards ─── */
.cal-fan {
  position: relative;
  height: 405px;
  margin-top: var(--space-3);
}
.cal-month.fan-card {
  position: absolute;
  left: 50%;
  bottom: 88px;
  width: 152px;
  height: 208px;
  margin-left: -76px;
  transform-origin: 50% 330%;
  transform: rotate(var(--ang));
  z-index: var(--z);
  border-radius: 10px;
  box-shadow: -7px 5px 16px rgba(28, 26, 22, 0.20);
  transition: transform 300ms var(--ease-out), box-shadow 300ms var(--ease-out);
}
.cal-month.fan-card:hover {
  /* the month card pulls up out of the hand */
  transform: rotate(var(--ang)) translateY(-34px) scale(1.06);
  z-index: 90;
  box-shadow: -10px 18px 34px rgba(28, 26, 22, 0.34);
}
.cal-month.fan-card.is-open {
  transform: rotate(var(--ang)) translateY(-56px) scale(1.01);
  z-index: 95;
  box-shadow: -10px 16px 32px rgba(28, 26, 22, 0.32);
}
@media (max-width: 900px) {
  .cal-fan { height: 360px; }
  .cal-month.fan-card { width: 122px; height: 176px; margin-left: -61px; transform-origin: 50% 300%; }
}
@media (max-width: 620px) {
  .cal-fan { height: 310px; }
  .cal-month.fan-card { width: 96px; height: 148px; margin-left: -48px; transform-origin: 50% 280%; padding: 0.5em 0.6em; }
  .cal-month.fan-card .cm-name { font-size: 0.82rem; }
}

/* the promoted month card straightens and soars over the fan before
   swinging down into the front slot */
.cal-month.fan-card.is-arc {
  transform: rotate(0deg) translateY(-150px) scale(1.05);
  z-index: 97;
  box-shadow: -6px 26px 44px rgba(28, 26, 22, 0.3);
}

/* the ring deals in steps: the drum eases one notch while the promoted
   card lifts up and over it */
.ring-drum { transition: transform 780ms var(--ease-out); }
.ring-card { transition: transform 720ms var(--ease-out), box-shadow 300ms var(--ease-out); }

/* the carousel deals in steps too: drum eases a notch, the promoted spine
   leaps over it */
.car-drum:not(.car-rolling) { transition: transform 760ms var(--ease-out); }
.car-spine { transition: transform 700ms var(--ease-out), filter 180ms; }

.ring-card:hover {
  /* the rate card pulls off the ring toward the reader */
  transform: rotateY(var(--ry, 0deg)) translateZ(var(--tz, 0px)) translateZ(48px) scale(1.06);
  transition-duration: 200ms;
  box-shadow: 0 22px 44px rgba(0, 0, 0, 0.5);
}

/* rotation is continuous again: drums must not ease between frames, and
   cards need only a quick transition for the hover pull-out */
.ring-drum, .car-drum { transition: none; }
.ring-card { transition: transform 240ms var(--ease-out), box-shadow 240ms var(--ease-out); }
.car-spine { transition: transform 220ms var(--ease-out), filter 180ms; }

/* ─── News roller: second tape under the market roller ─── */
.ticker-news { border-top: 1px solid rgba(0, 0, 0, 0.28); }
.ticker-news .ticker-live { background: var(--india-green); color: #F2ECD9; }
.news-track { animation-duration: 180s; }
.nw-item {
  display: inline-flex;
  align-items: baseline;
  gap: 0.55em;
  color: var(--text-on-shelf);
  text-decoration: none;
}
.nw-item:hover .nw-title { color: var(--accent-bright); text-decoration: underline; }
.nw-tag {
  font-size: 0.58rem;
  letter-spacing: 0.09em;
  padding: 0.12em 0.55em;
  border-radius: 999px;
  border: 1px solid currentColor;
  flex: none;
}
.nw-india   { color: #FFB666; }
.nw-world   { color: #9FB6DD; }
.nw-markets { color: #58C48A; }
.nw-tax     { color: #E8837B; }
:root[data-theme="pastel"] .nw-india   { color: #A85A12; }
:root[data-theme="pastel"] .nw-world   { color: #33518E; }
:root[data-theme="pastel"] .nw-markets { color: #1E7A43; }
:root[data-theme="pastel"] .nw-tax     { color: #B3392F; }

/* per-line chips and extra tags for the separate news rollers */
.ticker-news .chip-india { background: #F2ECD9; color: #16213D; }
.ticker-news .chip-tax   { background: var(--oxblood); color: #F2ECD9; }
.ticker-news .chip-world { background: #1C3A78; color: #F2ECD9; }
.nw-news { color: #FFB666; }
.nw-gst  { color: #7FD6A4; }
:root[data-theme="pastel"] .nw-news { color: #A85A12; }
:root[data-theme="pastel"] .nw-gst  { color: #17603A; }

/* slim per-tape speed sliders at the right edge of each roller */
.tape-speed {
  flex: none;
  width: 76px;
  margin: 0 0.7em;
  accent-color: var(--accent);
  align-self: center;
}

/* ─── Revolving stacks: each shelf is a slow-turning book-stand ─── */
.shelf.is-drum { perspective: 900px; }
.shelf.is-drum .shelf-row {
  display: block;
  position: relative;
  overflow: visible;  /* overflow clipping flattens preserve-3d and leaks backfaces */
  transform-style: preserve-3d;
  width: calc(var(--drum-r, 60px) * 2 + 90px);
  height: calc(var(--spine-h-tall) + 34px);
  margin-inline: auto;
  will-change: transform;
}
.shelf.is-drum .spine {
  position: absolute;
  left: 50%;
  bottom: 12px;
  margin-left: calc(var(--spine-w) / -2);
  transform: rotateY(var(--ry, 0deg)) translateZ(var(--tz, 60px));
  backface-visibility: hidden;
  animation: none;   /* the settle drop fights the 3D placement */
  rotate: none;      /* the leaning book stands straight on the drum */
  transition: transform 220ms var(--ease-out), filter 180ms;
}
.shelf.is-drum .spine:hover,
.shelf.is-drum .spine:focus-visible {
  /* pull the book off the revolving stand toward the reader */
  transform: rotateY(var(--ry, 0deg)) translateZ(var(--tz, 60px)) translateZ(36px) scale(1.06);
  filter: brightness(1.15);
}
.shelf.is-drum .spine.is-pulled {
  transform: rotateY(var(--ry, 0deg)) translateZ(var(--tz, 60px)) translateZ(70px) translateY(26px) scale(0.92);
  opacity: 0;
}

/* ─── The circling menu: nav links orbit a ring in the header ─── */
.site-nav.nav-orbit {
  position: relative;
  display: block;
  width: calc(var(--orbit-r, 120px) * 2 + 170px);
  height: 3.6em;
  perspective: 850px;
}
.site-nav.nav-orbit a {
  position: absolute;
  left: 50%;
  top: 50%;
  margin: 0;
  white-space: nowrap;
  transform: translate(-50%, -50%)
    rotateY(calc(var(--orbit-a, 0deg) + var(--ry, 0deg)))
    translateZ(var(--tz, 110px));
  backface-visibility: hidden;
}
.site-nav.nav-orbit a:hover { color: var(--accent-bright); }

/* wide menu ring + its speed slider */
.site-nav.nav-orbit { width: calc(var(--orbit-r, 220px) * 2 + 150px); }
.nav-speed {
  width: 64px;
  accent-color: var(--accent);
  align-self: center;
  margin-inline: 0.6em;
}

/* ─── Vertical market rails over the page edges ─── */
/* One compact double-decker rail: INDIA upstairs, CRYPTO below.
   It rides with the Market Ring only — hidden until that section shows. */
.vrail-duo {
  position: fixed;
  right: 10px;
  top: 50%;
  transform: translateY(-50%) translateX(14px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 450ms var(--ease-out), transform 450ms var(--ease-out);
  width: 102px;
  height: min(58vh, 460px);
  z-index: 30;
  display: flex;
  flex-direction: column;
  background: color-mix(in srgb, var(--ledger-green-deep) 84%, transparent);
  backdrop-filter: blur(5px);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 10px;
  overflow: hidden;
  font-family: var(--font-mono);
}
.vrail-duo.is-shown {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(-50%) translateX(0);
}
.vr-deck {
  flex: 1 1 50%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.vr-deck + .vr-deck { border-top: 1px solid var(--rule-on-shelf); }
.vrail-chip {
  flex: none;
  text-align: center;
  padding: 0.5em 0.3em;
  font-size: 0.6rem;
  letter-spacing: 0.09em;
  font-weight: 500;
}
.chip-vleft  { background: var(--accent); color: #16110a; }
.chip-vright { background: var(--india-green); color: #F2ECD9; }
.vrail-clip { flex: 1; overflow: hidden; }
.vrail-track {
  display: flex;
  flex-direction: column;
  will-change: transform;
  animation: vroll 46s linear infinite;
}
.vrail-duo:hover .vrail-track { animation-play-state: paused; }
@keyframes vroll {
  from { transform: translateY(0); }
  to   { transform: translateY(-50%); }
}
.vr-item {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 0.45em 0.65em;
  border-bottom: 1px dotted var(--rule-on-shelf);
  cursor: pointer;
}
.vr-item:hover { background: rgba(0, 0, 0, 0.25); }
.vr-label { font-size: 0.58rem; letter-spacing: 0.06em; color: var(--text-on-shelf-dim); }
.vr-price { font-size: 0.74rem; color: var(--text-on-shelf); }
.vr-chg { font-size: 0.62rem; }
.vr-item.is-up .vr-chg { color: #58C48A; }
.vr-item.is-down .vr-chg { color: #E8837B; }
:root[data-theme="pastel"] .vr-item.is-up .vr-chg { color: #1E7A43; }
:root[data-theme="pastel"] .vr-item.is-down .vr-chg { color: #B3392F; }
@media (max-width: 1200px) { .vrail-duo { display: none; } }
@media (prefers-reduced-motion: reduce) { .vrail-track { animation: none; } }

/* ─── The stacks parade: conveyor shelves, every book visible ─── */
.shelf-row.is-conveyor {
  display: block;
  overflow: hidden;
  max-width: 100%;
}
.row-track {
  display: flex;
  align-items: flex-end;
  gap: 7px;
  width: max-content;
  will-change: transform;
  animation: rowslide 28s linear infinite;
}
.shelf-row.is-conveyor:hover .row-track { animation-play-state: paused; }
@keyframes rowslide {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.stacks-speed-wrap { display: inline-flex; align-items: center; gap: 0.5em; margin-left: var(--space-3); }
#stacks-speed { width: 110px; accent-color: var(--accent); }

/* ─── The pack as a circular wheel of cards ─── */
.deck-stage.is-ring { height: 680px; }
.deck-stage.is-ring .play-card {
  width: 252px;
  /* orbit the circle but stay UPRIGHT: rotate out, then counter-rotate back
     so every card's name reads at every position on the wheel */
  transform: translate(-50%, -50%)
    rotate(calc(var(--wheel, 0deg) + var(--ca, 0deg)))
    translateY(-218px)
    rotate(calc(-1 * (var(--wheel, 0deg) + var(--ca, 0deg))));
  transition: box-shadow var(--dur-quick) var(--ease-out); /* the wheel moves every frame */
}
.deck-stage.is-ring .play-card:hover {
  transform: translate(-50%, -50%)
    rotate(calc(var(--wheel, 0deg) + var(--ca, 0deg)))
    translateY(-244px)
    rotate(calc(-1 * (var(--wheel, 0deg) + var(--ca, 0deg))))
    scale(1.07);
  z-index: 90;
  box-shadow: 0 22px 44px rgba(28, 26, 22, 0.4);
}
@media (max-width: 760px) {
  .deck-stage.is-ring { height: 540px; }
  .deck-stage.is-ring .play-card { width: 200px; transform: translate(-50%, -50%) rotate(calc(var(--wheel, 0deg) + var(--ca, 0deg))) translateY(-165px) rotate(calc(-1 * (var(--wheel, 0deg) + var(--ca, 0deg)))); }
  .deck-stage.is-ring .play-card:hover { transform: translate(-50%, -50%) rotate(calc(var(--wheel, 0deg) + var(--ca, 0deg))) translateY(-182px) rotate(calc(-1 * (var(--wheel, 0deg) + var(--ca, 0deg)))) scale(1.05); }
}

/* ─── The turning world on the dashboard strip ─── */
.globe-bar {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: 0.5em 1em;
  background: var(--ledger-green-deep);
  border-bottom: 1px solid var(--rule-on-shelf);
  font-family: var(--font-mono);
  color: var(--text-on-shelf);
}
#globe.globe-sphere {
  position: relative;
  width: 88px;
  height: 88px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid var(--globe-c, #FFB666);
  background: rgba(0, 0, 0, 0.35);
  --globe-c: #FFB666;
}
.globe-map {
  position: absolute;
  inset: 0;
  background-color: var(--globe-c, #12325E);
  background-image: url(data:image/png;base64,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);
  background-size: 176px 88px;
  background-repeat: repeat-x;
  will-change: background-position;
}
.globe-shade {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.16), transparent 42%),
    radial-gradient(circle at 50% 50%, transparent 52%, rgba(0, 0, 0, 0.6) 97%);
}
.globe-copy { display: flex; flex-direction: column; gap: 2px; }
.globe-title { font-size: 0.68rem; letter-spacing: 0.1em; color: var(--accent-bright); }
.globe-sub { font-size: 0.62rem; color: var(--text-on-shelf-dim); }
.globe-dots { display: inline-flex; gap: 7px; margin-left: auto; }
.g-dot {
  width: 1.1rem; height: 1.1rem; border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.5); cursor: pointer; padding: 0;
}
.g-dot.is-on { border-color: var(--accent-bright); }
#globe-speed { width: 90px; accent-color: var(--accent); }
@media (max-width: 700px) { .globe-sub { display: none; } }



/* ─── The OmniLedger android — walks the page, works its holo-ledger ─── */
.robot-widget {
  position: fixed;
  left: 60vw;
  bottom: 10px;
  z-index: 60;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  will-change: left;
}
@media (max-width: 700px) { .robot-widget { display: none; } }
.robot-bubble {
  max-width: 280px;
  background: var(--paper);
  color: var(--text-on-desk);
  border: 1px solid var(--rule-on-desk);
  border-radius: 12px 12px 12px 3px;
  padding: 0.7em 0.9em;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  line-height: 1.5;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.35);
  transition: opacity 350ms var(--ease-out), transform 350ms var(--ease-out);
}
.robot-widget.is-quiet .robot-bubble { opacity: 0; transform: translateY(6px); pointer-events: none; }
#robot-say { display: block; transition: opacity 300ms var(--ease-out); }
.robot-cta {
  display: inline-block;
  margin-top: 0.5em;
  padding: 0.35em 0.8em;
  border-radius: 999px;
  background: var(--accent);
  color: #16110a;
  text-decoration: none;
  font-weight: 500;
}
.robot-cta:hover { background: var(--accent-bright); }
.robot-svgwrap { display: block; }
.robot { width: 168px; height: 210px; filter: drop-shadow(0 12px 16px rgba(0,0,0,0.45)); }
.rb-all { animation: rb-bob 3.2s ease-in-out infinite; transform-origin: 60px 128px; }
.is-walking .rb-all { animation: rb-lean 0.62s ease-in-out infinite; }
.rb-shell { stroke: #56698F; stroke-width: 1.2; }
.rb-pod { fill: #56698F; }
.rb-joint { fill: #56698F; }
.rb-fin { fill: #7FE7FF; }
.rb-eye { fill: #7FE7FF; animation: rb-eyepulse 2.8s ease-in-out infinite; }
.rb-core { fill: var(--accent); animation: rb-corepulse 2s ease-in-out infinite; }
.rb-ol { font: 700 9px var(--font-mono); fill: #16110a; }
.rb-holo { fill: #58C48A; opacity: 0.85; animation: rb-holoflicker 1.8s steps(3) infinite; }
.rb-holotxt { font: 700 8px var(--font-mono); fill: #08331C; }
.rb-foot { fill: #56698F; }
.rb-bit { font: 700 9px var(--font-mono); fill: var(--accent-bright); opacity: 0; }
.rb-bit1 { animation: rb-float 2.6s linear infinite; }
.rb-bit2 { animation: rb-float 2.6s linear 0.9s infinite; }
.rb-bit3 { animation: rb-float 2.6s linear 1.7s infinite; }
.rb-armA { transform-origin: 28px 60px; transform-box: view-box; animation: rb-waveA 3s ease-in-out infinite; }
.rb-armB { transform-origin: 91px 60px; transform-box: view-box; animation: rb-typeB 0.55s ease-in-out infinite; }
.rb-legL, .rb-legR { transform-box: view-box; }
.rb-legL { transform-origin: 49px 98px; }
.rb-legR { transform-origin: 71px 98px; }
.is-walking .rb-legL { animation: rb-stepA 0.62s ease-in-out infinite; }
.is-walking .rb-legR { animation: rb-stepB 0.62s ease-in-out infinite; }
.is-walking .rb-armA { animation: rb-swingA 0.62s ease-in-out infinite; }
.robot-close {
  position: absolute;
  top: -6px;
  right: -4px;
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 50%;
  border: 1px solid var(--rule-on-shelf);
  background: var(--ledger-green-deep);
  color: var(--text-on-shelf-dim);
  cursor: pointer;
  font-size: 0.8rem;
  line-height: 1;
}
@keyframes rb-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes rb-lean { 0%,100% { transform: translateY(0) rotate(2.5deg); } 50% { transform: translateY(-3px) rotate(2.5deg); } }
@keyframes rb-eyepulse { 0%,100% { opacity: 1; } 50% { opacity: 0.55; } 92% { opacity: 1; } 95% { opacity: 0.1; } }
@keyframes rb-corepulse { 0%,100% { opacity: 1; } 50% { opacity: 0.6; } }
@keyframes rb-holoflicker { 0%,100% { opacity: 0.85; } 50% { opacity: 0.65; } }
@keyframes rb-waveA { 0%,100% { transform: rotate(4deg); } 50% { transform: rotate(-30deg); } }
@keyframes rb-typeB { 0%,100% { transform: rotate(0); } 50% { transform: rotate(7deg); } }
@keyframes rb-stepA { 0%,100% { transform: rotate(22deg); } 50% { transform: rotate(-22deg); } }
@keyframes rb-stepB { 0%,100% { transform: rotate(-22deg); } 50% { transform: rotate(22deg); } }
@keyframes rb-swingA { 0%,100% { transform: rotate(-16deg); } 50% { transform: rotate(16deg); } }
@keyframes rb-float {
  0% { opacity: 0; transform: translateY(0); }
  15% { opacity: 1; }
  80% { opacity: 0; transform: translateY(-26px); }
  100% { opacity: 0; transform: translateY(-26px); }
}
@media (prefers-reduced-motion: reduce) {
  .rb-all, .rb-armA, .rb-armB, .rb-eye, .rb-core, .rb-bit, .rb-holo, .rb-legL, .rb-legR { animation: none; }
}

/* advanced details: visor scanline, rotating core ring, shoulder LEDs, sound */
.rb-scan { fill: #7FE7FF; opacity: 0.25; animation: rb-scan 2.6s ease-in-out infinite; }
@keyframes rb-scan { 0%,100% { transform: translateX(0); } 50% { transform: translateX(26px); } }
.rb-ring {
  fill: none; stroke: var(--accent-bright); stroke-width: 1.4;
  stroke-dasharray: 5 4; opacity: 0.85;
  animation: rb-ringspin 6s linear infinite;
  transform-origin: 60px 73px; transform-box: view-box;
}
@keyframes rb-ringspin { to { transform: rotate(360deg); } }
.rb-led { fill: #7FE7FF; animation: rb-corepulse 1.4s ease-in-out infinite; }
.robot-sound {
  position: absolute;
  top: -6px;
  left: -4px;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  border: 1px solid var(--rule-on-shelf);
  background: var(--ledger-green-deep);
  color: var(--text-on-shelf);
  cursor: pointer;
  font-size: 0.75rem;
  line-height: 1;
}
@media (prefers-reduced-motion: reduce) { .rb-scan, .rb-ring, .rb-led { animation: none; } }

/* click-dance: the android's ledger dance */
.is-dancing .rb-all { animation: rb-dance 0.52s ease-in-out infinite; }
.is-dancing .rb-armA { animation: rb-danceArmA 0.52s ease-in-out infinite; }
.is-dancing .rb-armB { animation: rb-danceArmB 0.52s ease-in-out infinite; }
.is-dancing .rb-legL { animation: rb-kickL 0.52s ease-in-out infinite; }
.is-dancing .rb-legR { animation: rb-kickR 0.52s ease-in-out infinite; }
.is-dancing .rb-ring { animation-duration: 0.9s; }
.is-dancing .rb-core { animation-duration: 0.45s; }
@keyframes rb-dance {
  0%, 100% { transform: translateY(0) rotate(-8deg); }
  25%      { transform: translateY(-14px) rotate(0deg); }
  50%      { transform: translateY(0) rotate(8deg); }
  75%      { transform: translateY(-14px) rotate(0deg); }
}
@keyframes rb-danceArmA { 0%,100% { transform: rotate(-75deg); } 50% { transform: rotate(15deg); } }
@keyframes rb-danceArmB { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(-75deg); } }
@keyframes rb-kickL { 0%,100% { transform: rotate(30deg); } 50% { transform: rotate(-12deg); } }
@keyframes rb-kickR { 0%,100% { transform: rotate(-12deg); } 50% { transform: rotate(30deg); } }
@media (prefers-reduced-motion: reduce) {
  .is-dancing .rb-all, .is-dancing .rb-armA, .is-dancing .rb-armB,
  .is-dancing .rb-legL, .is-dancing .rb-legR { animation: none; }
}

/* copper-and-chrome finish, cranial turbine, cables */
.rb-armor { stroke: #4A1E12; stroke-width: 1.1; }
.rb-spec { fill: none; stroke: rgba(255, 230, 210, 0.55); stroke-width: 2; stroke-linecap: round; }
.rb-face { stroke: #2A3854; stroke-width: 1; }
.rb-jawvent { fill: #2A3854; }
.rb-turbine { transform-origin: 70px 27px; transform-box: view-box; animation: rb-ringspin 5s linear infinite; }
.rb-turb-ring { fill: none; stroke: #FFD98F; stroke-width: 2; stroke-dasharray: 2.4 2; }
.rb-turb-blue { fill: none; stroke: #7FE7FF; stroke-width: 1.4; stroke-dasharray: 1.6 1.8; }
.rb-cable { fill: none; stroke: #7FE7FF; stroke-width: 1.3; opacity: 0.8; }
.rb-seam { fill: none; stroke: #4A1E12; stroke-width: 0.8; opacity: 0.7; }
.rb-ventline { fill: none; stroke: #4A1E12; stroke-width: 1.6; opacity: 0.65; }
.is-dancing .rb-turbine { animation-duration: 1s; }
@media (prefers-reduced-motion: reduce) { .rb-turbine { animation: none; } }

/* professional finish + jet flight */
.rb-edge { stroke: #121826; stroke-width: 1; }
.rb-hlight { fill: none; stroke: rgba(230, 238, 252, 0.4); stroke-width: 1.8; stroke-linecap: round; }
.rb-glass { stroke: #2A3854; stroke-width: 1; }
.rb-accentline { fill: var(--accent); opacity: 0.85; }
.rb-jets { transform: scaleY(var(--thrust, 1)); transform-origin: 60px 132px; transform-box: view-box; }
.rb-flame { transform-box: fill-box; transform-origin: top center; animation: rb-flick 140ms ease-in-out infinite alternate; filter: url(#rbGlow); }
.rb-flame2 { animation-delay: 70ms; }
@keyframes rb-flick { from { transform: scaleY(0.82); } to { transform: scaleY(1.18); } }
.robot { height: 200px; }
@media (prefers-reduced-motion: reduce) { .rb-flame { animation: none; } }

/* ─── The Constitution — the supreme law on the high desk ───
   A ceremony band right under the hero: deep maroon leather ground
   (the original calligraphed edition's binding), one standing cover
   with a gold double frame and a slowly turning dharma-chakra. */
.coi {
  background:
    radial-gradient(120% 90% at 50% -20%, rgba(232, 195, 106, 0.12), transparent 55%),
    linear-gradient(180deg, #38141d, #5c2330 42%, #38141d);
  border-top: 1px solid rgba(232, 195, 106, 0.45);
  border-bottom: 1px solid rgba(232, 195, 106, 0.45);
  padding: var(--space-5) 0;
}
.coi-wrap {
  display: flex;
  align-items: center;
  gap: clamp(1.5rem, 5vw, 4.5rem);
  flex-wrap: wrap;
  justify-content: center;
}
.coi-book {
  position: relative;
  flex: 0 0 auto;
  width: 235px;
  height: 330px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  text-align: center;
  cursor: pointer;
  border-radius: 6px 12px 12px 6px;
  background:
    radial-gradient(140% 100% at 30% 0%, #6d2c3c, #4a1c28 60%, #38141d),
    #4a1c28;
  border: 1px solid rgba(232, 195, 106, 0.65);
  box-shadow:
    inset 0 0 0 6px #4a1c28,
    inset 0 0 0 7px rgba(232, 195, 106, 0.55),
    inset 12px 0 18px rgba(0, 0, 0, 0.35),
    0 18px 34px rgba(0, 0, 0, 0.45);
  transition: transform 260ms var(--ease-out), box-shadow 260ms var(--ease-out);
}
/* spine ridge on the left edge, like the shelf books */
.coi-book::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 9px;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(232, 195, 106, 0.4), transparent);
}
.coi-book:hover,
.coi-book:focus-visible {
  transform: translateY(-12px) scale(1.035);
  box-shadow:
    inset 0 0 0 6px #4a1c28,
    inset 0 0 0 7px rgba(232, 195, 106, 0.8),
    inset 12px 0 18px rgba(0, 0, 0, 0.35),
    0 30px 48px rgba(0, 0, 0, 0.55);
  outline: none;
}
.coi-chakra {
  font-size: 3.1rem;
  line-height: 1;
  color: #e8c36a;
  text-shadow: 0 0 18px rgba(232, 195, 106, 0.45);
  animation: coi-chakra-turn 46s linear infinite;
}
@keyframes coi-chakra-turn {
  to { transform: rotate(360deg); }
}
.coi-title {
  font-family: var(--font-display);
  font-size: 1.5rem;
  line-height: 1.22;
  letter-spacing: 0.04em;
  color: #f2dfae;
}
.coi-hindi {
  font-size: 0.95rem;
  color: rgba(242, 223, 174, 0.85);
}
.coi-year {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  color: rgba(232, 195, 106, 0.75);
}
.coi-copy {
  flex: 1 1 340px;
  max-width: 560px;
}
.coi-copy .eyebrow { color: #e8c36a; }
.coi-copy h2 {
  font-family: var(--font-display);
  font-size: var(--step-2);
  color: #f5ecd6;
  margin: 0.5rem 0 0.7rem;
}
.coi-copy p { color: rgba(245, 236, 214, 0.82); max-width: 52ch; }
.coi-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.6rem;
  margin: 1.1rem 0 1.3rem;
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: rgba(245, 236, 214, 0.75);
}
.coi-facts b {
  color: #e8c36a;
  font-size: 1.05rem;
  font-weight: 600;
  margin-right: 0.3rem;
}
.coi-open {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  padding: 0.65rem 1.2rem;
  color: #38141d;
  background: linear-gradient(180deg, #f0cf87, #dca94a);
  border: 1px solid rgba(56, 20, 29, 0.4);
  border-radius: 4px;
  cursor: pointer;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.coi-open:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 22px rgba(0, 0, 0, 0.45);
}
@media (max-width: 800px) {
  .coi-wrap { text-align: center; }
  .coi-copy p { margin-inline: auto; }
  .coi-facts { justify-content: center; }
}

/* ── Hero, compacted: same voice, less air ── */
.hero { padding-block: var(--space-5) var(--space-4); }
.hero h1 { font-size: var(--step-3); max-width: 18ch; }
.hero .hero-copy {
  margin-top: var(--space-3);
  font-size: var(--step-0);
  max-width: 62ch;
  line-height: 1.55;
}
.hero .eyebrow { margin-bottom: var(--space-3); }
.hero-meta { margin-top: var(--space-4); }


/* ── ICAI globe: the twin sphere with chapters lit ── */
.globe-icai {
  position: relative;
  width: 88px;
  height: 88px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid var(--globe-c, #FFB666);
  background: rgba(0, 0, 0, 0.35);
  --globe-c: #FFB666;
}
.globe-pins { position: absolute; inset: 0; will-change: transform; }
.g-pin {
  position: absolute;
  width: 5px; height: 5px;
  margin: -2.5px;
  border-radius: 50%;
  background: #FFD98A;
  box-shadow: 0 0 5px 1px rgba(255, 182, 102, 0.9);
}
.g-pin.hq {
  width: 8px; height: 8px;
  margin: -4px;
  background: #7FD6A4;
  box-shadow: 0 0 8px 2px rgba(127, 214, 164, 0.85);
}

/* ── Paternoster, four shafts wide ── */
.pater { max-width: 1160px; }
.pater .shaft:nth-child(1) .shaft-track { animation-duration: 52s; }
.pater .shaft:nth-child(2) .shaft-track { animation-duration: 64s; }
.pater .shaft:nth-child(3) .shaft-track { animation-duration: 57s; }
.pater .shaft:nth-child(4) .shaft-track { animation-duration: 70s; }
.pater .shaft:nth-child(5) .shaft-track { animation-duration: 61s; }
.pater .shaft:nth-child(6) .shaft-track { animation-duration: 74s; }
@media (max-width: 1000px) {
  .pater .shaft:nth-child(5), .pater .shaft:nth-child(6) { display: none; }
}
@media (max-width: 760px) {
  .pater .shaft:nth-child(3), .pater .shaft:nth-child(4) { display: none; }
}


/* ── Library view toggle: shelves ⁄ carousel in one room ── */
.lib-view { display: flex; gap: 8px; margin-top: var(--space-3); }
.lib-carousel { margin-top: var(--space-3); }
.lib-car-controls { display: flex; align-items: center; gap: var(--space-2); justify-content: flex-end; }


/* ── OmniLedger Shelf, softened — and unmistakably ours ── */
.ol-badge {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.5em;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
  background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil));
  border-radius: 999px;
  padding: 0.45em 1.1em;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
.ol-card {
  position: relative;
  border-top: none;
  border: 1px solid color-mix(in srgb, var(--gold-foil) 45%, transparent);
  border-radius: 16px;
  background: linear-gradient(165deg, #FFFDF6, #F7EFDC 85%);
  box-shadow:
    0 24px 44px -26px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  padding: clamp(1.5rem, 2.6vw, 2.3rem);
}
.ol-card h3 { letter-spacing: -0.01em; }
.ol-card .drawer-compliances li {
  padding: 0.7em 0 0.7em 1.9em;
  line-height: 1.55;
  border-bottom: 1px solid rgba(28, 26, 22, 0.08);
}
.ol-house {
  position: absolute;
  top: 1.1rem;
  right: 1.2rem;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-family: var(--font-display);
  font-weight: 620;
  font-size: 1rem;
  color: var(--gold-foil-bright);
  background: radial-gradient(circle at 32% 28%, #24406e, #122A5C 70%);
  box-shadow: inset 0 0 0 2px rgba(201, 162, 39, 0.6), 0 3px 8px rgba(0, 0, 0, 0.3);
}
.ol-demo { border-radius: 999px; }
.ol-note { line-height: 1.7; }
.ol-intro { line-height: 1.65; }


/* Portal Wall heading, quieter */
.portals h2 { font-size: var(--step-2); }
.portals-intro { font-size: var(--step-0); }


/* Exchange doors under the rings */
.ring-links {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.9em;
  margin-top: var(--space-4);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}
.ring-links a {
  color: var(--accent-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--rule-on-shelf);
  padding-bottom: 2px;
}
.ring-links a:hover { border-bottom-color: var(--gold-foil); }
.ring-links span { color: var(--text-on-shelf-dim); }


/* ── The line of the day ── */
.dayline { padding-block: var(--space-4) var(--space-5); }
.dayline .eyebrow { display: block; margin-bottom: var(--space-3); }
.dq {
  position: relative;
  margin: 0;
  padding-left: 1.2em;
  max-width: 46ch;
  font-family: var(--font-body);
  font-style: italic;
  font-size: var(--step-1);
  line-height: 1.55;
  color: var(--accent-bright);
}
.dq::before {
  content: "\201C";
  position: absolute;
  left: -0.08em;
  top: -0.28em;
  font-family: var(--font-display);
  font-size: 2.6em;
  color: var(--gold-foil);
  opacity: 0.55;
}
.dq-source {
  margin-top: var(--space-3);
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: var(--text-on-shelf-dim);
  cursor: pointer;
  border-bottom: 1px solid var(--rule-on-shelf);
  padding-bottom: 2px;
}
.dq-source:hover { color: var(--gold-foil-bright); border-bottom-color: var(--gold-foil); }


/* The moving line: soft crossfade between speakers */
.dq, .dq-source {
  transition: opacity 450ms var(--ease-out), transform 450ms var(--ease-out);
}
.dayline.is-swap .dq,
.dayline.is-swap .dq-source {
  opacity: 0;
  transform: translateY(8px);
}


/* ── The Firm's Shelf: engagement volumes on a slow train ── */
.firm { padding-block: var(--space-5) var(--space-4); overflow: hidden; }
.firm .eyebrow { display: block; margin-bottom: var(--space-2); }
.firm h2 { font-size: var(--step-2); color: var(--accent-bright); }
.firm-intro {
  margin-top: var(--space-2);
  max-width: 60ch;
  color: var(--text-on-shelf);
  line-height: 1.6;
}
.firm-train {
  margin-top: var(--space-4);
  overflow: hidden;
}
.firm-track {
  display: flex;
  gap: var(--space-3);
  width: max-content;
  padding-block: 6px;
  will-change: transform;
  animation: firm-ride 90s linear infinite;
}
.firm-train:hover .firm-track { animation-play-state: paused; }
@keyframes firm-ride {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-50% - var(--space-3) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
  .firm-track { animation: none; flex-wrap: wrap; width: auto; }
}
.firm-card {
  flex: 0 0 300px;
  display: flex;
  flex-direction: column;
  padding: 1.1rem 1.2rem 1rem;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--gold-foil) 40%, transparent);
  background: linear-gradient(165deg, #FFFDF6, #F6EEDA 88%);
  color: var(--text-on-desk);
  box-shadow: 0 16px 30px -20px rgba(0, 0, 0, 0.55);
}
.fc-no {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  color: var(--oxblood);
}
.firm-card h3 {
  font-size: var(--step-1);
  margin: 0.15em 0 0.4em;
}
.firm-card ul { list-style: none; margin: 0; padding: 0; flex: 1; }
.firm-card li {
  position: relative;
  padding: 0.32em 0 0.32em 1.25em;
  font-size: var(--step--1);
  line-height: 1.5;
  border-bottom: 1px solid rgba(28, 26, 22, 0.07);
}
.firm-card li::before {
  content: "§";
  position: absolute;
  left: 0.1em;
  font-family: var(--font-mono);
  color: var(--oxblood);
}
.fc-write {
  margin-top: 0.8em;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 2px solid var(--gold-foil);
  align-self: flex-start;
  padding-bottom: 2px;
}
.fc-write:hover { color: var(--oxblood); border-bottom-color: var(--oxblood); }
.firm-hint { margin-top: var(--space-3); text-align: center; }


/* ── "OUR OWN SOFTWARE" — the house seal, alive ── */
.ol-badge {
  position: relative;
  font-size: 0.74rem;
  padding: 0.55em 1.4em;
  transform: rotate(-2.5deg);
  color: #2A1D04;
  background: linear-gradient(110deg,
    var(--gold-foil) 0%, var(--gold-foil) 38%,
    #FFF3CF 47%, #FFE9AE 50%, #FFF3CF 53%,
    var(--gold-foil) 62%, var(--gold-foil) 100%);
  background-size: 230% 100%;
  animation:
    badge-shine 3.4s linear infinite,
    badge-breathe 2.6s ease-in-out infinite alternate;
  box-shadow:
    0 0 0 2px rgba(255, 233, 174, 0.35),
    0 0 18px 2px rgba(232, 145, 45, 0.45),
    0 2px 6px rgba(0, 0, 0, 0.4);
}
@keyframes badge-shine {
  from { background-position: 210% 0; }
  to   { background-position: -20% 0; }
}
@keyframes badge-breathe {
  from { box-shadow: 0 0 0 2px rgba(255,233,174,0.30), 0 0 12px 1px rgba(232,145,45,0.35), 0 2px 6px rgba(0,0,0,0.4); }
  to   { box-shadow: 0 0 0 2px rgba(255,233,174,0.55), 0 0 26px 5px rgba(232,145,45,0.65), 0 2px 6px rgba(0,0,0,0.4); }
}
@media (prefers-reduced-motion: reduce) { .ol-badge { animation: none; } }


/* ── The house stamp: struck like a certified copy ── */
.ol-stamp {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  vertical-align: middle;
  margin-left: 0.6em;
  padding: 0.5em 1.1em 0.55em;
  border: 3px double #FF7A6B;
  border-radius: 6px 9px 5px 8px;
  color: #FF7A6B;
  transform: rotate(-6deg) scale(2.1);
  opacity: 0;
  text-shadow: 0 0 1px rgba(255, 122, 107, 0.55);
  box-shadow: inset 0 0 10px rgba(255, 122, 107, 0.14);
}
.ol-stamp.is-struck {
  animation: stamp-strike 620ms cubic-bezier(0.34, 1.4, 0.64, 1) forwards;
}
@keyframes stamp-strike {
  0%   { transform: rotate(-6deg) scale(2.1); opacity: 0; }
  55%  { transform: rotate(-6deg) scale(0.92); opacity: 1; }
  75%  { transform: rotate(-6deg) scale(1.05); }
  100% { transform: rotate(-6deg) scale(1); opacity: 1; }
}
.st-main {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  line-height: 1;
}
.st-sub {
  font-family: var(--font-mono);
  font-size: 0.5rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0.85;
}
/* the ink never sits perfectly — a faint speckle */
.ol-stamp::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='90' height='90' filter='url(%23n)' opacity='0.16'/%3E%3C/svg%3E");
  mix-blend-mode: darken;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .ol-stamp { opacity: 1; transform: rotate(-6deg) scale(1); }
  .ol-stamp.is-struck { animation: none; }
}


/* per-ring doors, centred under each roller */
.ring-block .ring-links {
  justify-content: center;
  margin-top: var(--space-2);
}


/* ── The stamp, re-inked: vermilion pad, gold letters ── */
.ol-stamp {
  border: 3px double #FFD98A;
  color: #FFE9AE;
  background: linear-gradient(160deg, #D8452F, #A61B1B 78%);
  text-shadow: 0 1px 2px rgba(60, 8, 8, 0.6);
  box-shadow:
    0 0 0 2px rgba(216, 69, 47, 0.35),
    0 0 22px 4px rgba(232, 145, 45, 0.5),
    0 3px 10px rgba(0, 0, 0, 0.45);
}
.ol-stamp .st-sub { color: #FFD98A; opacity: 0.95; }
.ol-stamp.is-struck {
  animation:
    stamp-strike 620ms cubic-bezier(0.34, 1.4, 0.64, 1) forwards,
    stamp-glow 2.8s ease-in-out 800ms infinite alternate;
}
@keyframes stamp-glow {
  from { box-shadow: 0 0 0 2px rgba(216,69,47,0.30), 0 0 14px 2px rgba(232,145,45,0.40), 0 3px 10px rgba(0,0,0,0.45); }
  to   { box-shadow: 0 0 0 3px rgba(255,217,138,0.45), 0 0 30px 8px rgba(232,145,45,0.72), 0 3px 10px rgba(0,0,0,0.45); }
}
@media (prefers-reduced-motion: reduce) {
  .ol-stamp.is-struck { animation: none; }
}


/* ── The globe magnifier ── */
.globe-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; }
.globe-modal[hidden] { display: none; }
.gm-back { position: absolute; inset: 0; background: rgba(4, 10, 28, 0.82); }
.gm-box {
  position: relative;
  width: min(680px, 94vw);
  max-height: 88vh;
  overflow-y: auto;
  padding: clamp(1.4rem, 3vw, 2.4rem);
  border-radius: 14px;
  background: color-mix(in srgb, var(--ledger-green-deep) 92%, transparent);
  border: 1px solid var(--rule-on-shelf);
  color: var(--text-on-shelf);
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.8);
}
.gm-close { position: absolute; top: 14px; right: 16px; }
.gm-title {
  font-size: var(--step-2);
  color: var(--accent-bright);
  max-width: 22ch;
}
.gm-sphere-wrap { display: grid; place-items: center; margin-top: var(--space-4); }
.gm-sphere {
  position: relative;
  width: 264px;
  height: 264px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--globe-c, #FFB666);
  background: rgba(0, 0, 0, 0.35);
  flex: none;
}
.gm-map { position: absolute; inset: 0; background-size: 528px 264px !important; }
.gm-pins { position: absolute; inset: 0; will-change: transform; }
.gm-pins .g-pin { width: 8px; height: 8px; margin: -4px; }
.gm-pins .g-pin.hq { width: 13px; height: 13px; margin: -6.5px; }
.gm-body { margin-top: var(--space-4); }
.gm-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.gm-chip {
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.05em;
  padding: 0.4em 0.8em;
  border: 1px solid var(--rule-on-shelf);
  border-radius: 999px;
  color: var(--text-on-shelf);
}
.gm-chip.hq { border-color: #7FD6A4; color: #7FD6A4; }
.gm-clocks { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.gm-clock {
  display: flex;
  flex-direction: column;
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  color: var(--text-on-shelf-dim);
}
.gm-clock b { font-size: 1.15rem; color: var(--accent-bright); font-weight: 500; }
.gm-note {
  margin-top: var(--space-3);
  font-size: var(--step--1);
  font-style: italic;
  color: var(--text-on-shelf-dim);
  max-width: 56ch;
}


/* ── Magnifier controls & the held place ── */
.gm-ctrl {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
}
.gm-ctrl-hint {
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  color: var(--text-on-shelf-dim);
}
.gm-chip { cursor: pointer; background: none; }
.gm-chip:hover { border-color: var(--gold-foil); color: var(--accent-bright); }
.gm-chip.is-on {
  border-color: var(--gold-foil);
  color: var(--ink);
  background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil));
}
.gm-pins .g-pin.is-sel {
  width: 15px; height: 15px; margin: -7.5px;
  background: #FFF3CF;
  box-shadow: 0 0 0 3px rgba(255, 214, 138, 0.5), 0 0 16px 5px rgba(232, 145, 45, 0.9);
}
.gm-detail { margin-top: var(--space-3); }
.gm-sel-name {
  font-family: var(--font-display);
  font-size: var(--step-1);
  color: var(--accent-bright);
}
.gm-sel-time {
  display: flex;
  align-items: baseline;
  gap: 0.7em;
  margin-top: 0.3em;
  font-family: var(--font-mono);
}
.gm-sel-time b { font-size: 1.7rem; font-weight: 500; color: var(--gold-foil-bright); }
.gm-sel-time span { font-size: 0.66rem; letter-spacing: 0.1em; color: var(--text-on-shelf-dim); }
.gm-sel-addr {
  margin-top: 0.5em;
  font-size: var(--step--1);
  color: var(--text-on-shelf);
  max-width: 52ch;
  line-height: 1.55;
}


/* the country facing front, named under each globe */
.globe-now {
  display: block;
  margin-top: 3px;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  color: var(--gold-foil-bright, #FFB666);
  min-height: 1em;
}


/* the big glass names its front country too */
.gm-now {
  display: block;
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: var(--gold-foil-bright, #FFB666);
  text-align: center;
  min-height: 1.2em;
}


/* ── The country finder beside the globes ── */
.globe-find-wrap { position: relative; margin-left: var(--space-3); }
#globe-find {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  color: var(--text-on-shelf);
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 999px;
  padding: 0.55em 1em;
  width: 170px;
}
#globe-find::placeholder { color: var(--text-on-shelf-dim); }
.globe-hits {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 95;
  min-width: 240px;
  background: var(--ledger-green-deep);
  border: 1px solid var(--rule-on-shelf);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.5);
}
.globe-hits button {
  display: block;
  width: 100%;
  text-align: left;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--text-on-shelf);
  padding: 0.6em 1em;
  border-bottom: 1px dotted var(--rule-on-shelf);
  cursor: pointer;
}
.globe-hits button:hover { background: rgba(0, 0, 0, 0.3); color: var(--gold-foil-bright); }
@media (max-width: 900px) { .globe-find-wrap { display: none; } }


/* fixed caption columns — names change, nothing shifts */
.globe-copy {
  flex: 0 0 210px;
  min-width: 210px;
  max-width: 210px;
  overflow: hidden;
}
.globe-now, .globe-sub, .globe-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}


/* ── THE OFFICE globe & the dive ── */
.globe-office {
  position: relative;
  width: 88px;
  height: 88px;
  flex: none;
  border-radius: 50%;
  overflow: hidden;
  border: 1.5px solid var(--globe-c, #FFB666);
  background: rgba(0, 0, 0, 0.35);
  --globe-c: #FFB666;
}
.globe-office .g-pin.office-pin {
  width: 9px; height: 9px; margin: -4.5px;
  background: #FF7A6B;
  box-shadow: 0 0 0 3px rgba(255, 122, 107, 0.35), 0 0 12px 4px rgba(255, 122, 107, 0.8);
  animation: office-pulse 1.8s ease-in-out infinite;
}
@keyframes office-pulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(255,122,107,0.30), 0 0 8px 2px rgba(255,122,107,0.6); }
  50%      { box-shadow: 0 0 0 5px rgba(255,122,107,0.15), 0 0 18px 6px rgba(255,122,107,0.9); }
}
.office-modal[hidden] { display: none; }
.ov-stage {
  position: relative;
  width: 460px;
  height: 460px;
  max-width: 100%;
  margin: var(--space-4) auto 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--rule-on-shelf);
  background: #0a0e14;
}
.ov-tiles { position: absolute; left: 0; top: 0; width: 512px; height: 512px; transition: transform 400ms var(--ease-out); }
.ov-tiles img { position: absolute; width: 256px; height: 256px; }
.ov-pin {
  position: absolute;
  left: 50%; top: 50%;
  width: 14px; height: 14px;
  margin: -7px;
  border-radius: 50%;
  background: #FF7A6B;
  border: 2px solid #FFF3CF;
  box-shadow: 0 0 0 4px rgba(255, 122, 107, 0.35), 0 0 20px 6px rgba(255, 122, 107, 0.8);
  animation: office-pulse 1.8s ease-in-out infinite;
  pointer-events: none;
}
.ov-level {
  position: absolute;
  left: 10px; bottom: 10px;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.1em;
  color: #FFF3CF;
  background: rgba(4, 10, 20, 0.7);
  border-radius: 999px;
  padding: 0.35em 0.9em;
}
.ov-ctrl { display: flex; justify-content: center; gap: var(--space-2); margin-top: var(--space-3); }
.ov-maps { display: inline-block; margin-top: var(--space-2); }
@media (max-width: 900px) { .globe-office { display: none; } }


/* ── India-map miniature in the bar ── */
.globe-bar { flex-wrap: wrap; row-gap: 10px; }
.india-mini {
  position: relative;
  width: 88px;
  height: 88px;
  flex: none;
  border-radius: 14px;
  overflow: hidden;
  border: 1.5px solid var(--globe-c, #FFB666);
  background: #0a0e14;
}
.in-tiles { position: absolute; left: 0; top: 0; will-change: transform; }
.in-tiles img { position: absolute; }

/* ── The Market Ring: three slim bands, one below the other ── */
.ring-row { grid-template-columns: 1fr; gap: 8px; }
.ring-row .ring-block {
  position: relative;
  display: grid;
  grid-template-columns: 150px 1fr 190px;
  align-items: center;
  gap: 12px;
  margin: 0;
  min-height: 210px;
}
.ring-row .ring-block:nth-child(3) { margin-left: 0; }
.ring-row .ring-chip { margin-bottom: 0; justify-self: start; }
.ring-row .ring-stage { height: 210px; perspective: 900px; perspective-origin: 50% 45%; }
.ring-row .ring-drum { width: 132px; height: 184px; }        /* portrait tower, doubled */
.ring-row .ring-card {
  padding: 7px 4px 6px;
  border: none;
  border-radius: 0;
  gap: 2px;
  align-items: center;
  text-align: center;
  /* a stepped tower: narrow crown, broader shoulders, broadest base */
  clip-path: polygon(
    24% 0, 76% 0,          /* top tier — least broad */
    76% 34%, 90% 34%,      /* step out to the middle tier */
    90% 66%, 100% 66%,     /* step out to the base tier */
    100% 100%, 0 100%,     /* broadest base */
    0 66%, 10% 66%,
    10% 34%, 24% 34%
  );
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--acc, var(--ledger-green-soft)) 60%, #10361f) 0%,
    var(--ledger-green-soft) 60%);
}
.ring-row .ring-card .rg-label { font-size: 0.62rem; letter-spacing: 0.05em; }
.ring-row .ring-card .rg-price { font-size: 0.86rem; }
.ring-row .ring-card .rg-chg { font-size: 0.62rem; }
.ring-row .rg-spark { display: block; height: 34px; width: 96%; margin-top: auto; }
.ring-row .ring-links { margin-top: 0; justify-content: flex-start; }
@media (max-width: 900px) {
  .ring-row .ring-block { grid-template-columns: 110px 1fr; }
  .ring-row .ring-links { grid-column: 1 / -1; }
}


.india-mini .in-map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


/* ── The Firm's Shelf as a dealing deck ── */
.firm-deck-wrap { display: flex; flex-direction: column; align-items: center; }
.firm-deck {
  position: relative;
  width: min(420px, 92vw);
  height: 340px;
  margin-top: var(--space-4);
  perspective: 1200px;
}
.firm-deck .firm-card {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  padding: 1.4rem 1.5rem 1.2rem;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--gold-foil) 40%, transparent);
  border-top: 5px solid var(--dot, var(--gold-foil));
  background: linear-gradient(165deg, #FFFDF6, #F4ECD7 90%);
  color: var(--text-on-desk);
  box-shadow: 0 20px 40px -22px rgba(0, 0, 0, 0.7);
  transform-origin: 50% 100%;
  will-change: transform, opacity;
}
.firm-deck .is-deep { transform: translateY(18px) scale(0.94); opacity: 0.55; z-index: 1; }
.firm-deck .is-next { transform: translateY(9px) scale(0.97); opacity: 0.8; z-index: 2; }
.firm-deck .is-top  { transform: none; opacity: 1; z-index: 3; }
.firm-deck .dealing-out { animation: deal-out 620ms var(--ease-out) forwards; z-index: 4; }
.firm-deck .dealing-in  { animation: deal-in 500ms var(--ease-out) backwards; z-index: 4; }
@keyframes deal-out {
  to { transform: translateX(-46%) translateY(-24%) rotate(-13deg); opacity: 0; }
}
@keyframes deal-in {
  from { transform: translateX(-46%) translateY(-24%) rotate(-13deg); opacity: 0; }
}
.firm-deck .fc-no {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.18em;
  color: var(--oxblood);
}
.firm-deck .firm-card h3 { font-size: var(--step-2); margin: 0.15em 0 0.5em; color: var(--dot); }
.firm-deck .firm-card ul { list-style: none; margin: 0; padding: 0; flex: 1; }
.firm-deck .firm-card li {
  position: relative;
  padding: 0.4em 0 0.4em 1.3em;
  font-size: var(--step--1);
  line-height: 1.5;
  border-bottom: 1px solid rgba(28, 26, 22, 0.08);
}
.firm-deck .firm-card li::before {
  content: "§"; position: absolute; left: 0.15em; color: var(--oxblood); font-family: var(--font-mono);
}
.firm-controls {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-4);
}
.firm-count {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  color: var(--text-on-shelf-dim);
  margin: 0 var(--space-2);
}
@media (prefers-reduced-motion: reduce) {
  .firm-deck .dealing-out, .firm-deck .dealing-in { animation: none; }
}


/* ── Correspondence: a stylish contact card ── */
.contact-list { list-style: none; margin: var(--space-3) 0 0; padding: 0; }
.contact-list li {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: 0.7em 0;
  border-bottom: 1px solid var(--rule-on-shelf);
}
.contact-list li:last-child { border-bottom: none; }
.ct-ic {
  flex: none;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border-radius: 50%;
  font-size: 1rem;
  color: var(--gold-foil-bright);
  background: radial-gradient(circle at 32% 28%, #24406e, #122A5C 72%);
  box-shadow: inset 0 0 0 1.5px rgba(201,162,39,0.6);
}
.ct-body { display: flex; flex-direction: column; line-height: 1.35; }
.ct-label {
  font-family: var(--font-mono);
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-on-shelf-dim);
}
.contact-list a {
  font-family: var(--font-mono);
  font-size: var(--step-0);
  letter-spacing: 0.02em;
  color: var(--accent-bright);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-quick) var(--ease-out);
}
.contact-list a:hover { border-bottom-color: var(--gold-foil); }
.footer-tally {
  display: block;
  margin-top: var(--space-3);
  font-family: var(--font-mono);
  font-size: 0.66rem;
  letter-spacing: 0.12em;
  color: var(--text-on-shelf-dim);
}


/* ── The Gazette Desk ── */
.notices { padding-block: var(--space-6); }
.notices .eyebrow { display: block; margin-bottom: var(--space-2); }
.notices h2 { font-size: var(--step-3); }
.notices-intro { margin-top: var(--space-3); font-size: var(--step-1); font-style: italic; color: var(--text-on-desk-dim); max-width: 60ch; }
.notice-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.notice-card {
  display: flex;
  flex-direction: column;
  gap: 0.35em;
  text-decoration: none;
  color: var(--text-on-desk);
  padding: 0.9em 1em 0.8em;
  border-radius: 4px;
  border: 1px solid var(--rule-on-desk);
  border-left: 4px solid var(--dot, var(--gold-foil));
  background: linear-gradient(180deg, #FFFDF6, #F6EEDA 92%);
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.notice-card:hover { transform: translateY(-2px); box-shadow: 0 8px 16px -8px rgba(0,0,0,0.3); }
.nc-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.6em; }
.nc-cat { font-family: var(--font-mono); font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--dot, var(--oxblood)); }
.nc-date { font-family: var(--font-mono); font-size: 0.62rem; color: var(--text-on-desk-dim); white-space: nowrap; }
.nc-title { font-size: var(--step-0); line-height: 1.4; }
.nc-src { font-family: var(--font-mono); font-size: 0.58rem; letter-spacing: 0.08em; color: var(--text-on-desk-dim); }
.notice-empty { margin-top: var(--space-4); font-style: italic; color: var(--text-on-desk-dim); max-width: 60ch; }
.notice-empty code { font-family: var(--font-mono); font-size: 0.85em; color: var(--oxblood); }

/* ── The daily pop-up ── */
.gz-modal { position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; }
.gz-modal[hidden] { display: none; }
.gz-back { position: absolute; inset: 0; background: rgba(4, 10, 28, 0.8); }
.gz-box {
  position: relative;
  width: min(560px, 94vw);
  max-height: 86vh;
  overflow-y: auto;
  padding: clamp(1.4rem, 3vw, 2.2rem);
  border-radius: 14px;
  background: var(--bg-desk);
  color: var(--text-on-desk);
  border: 1px solid color-mix(in srgb, var(--gold-foil) 45%, transparent);
  border-top: 6px solid var(--gold-foil);
  box-shadow: 0 40px 80px -30px rgba(0,0,0,0.8);
}
.gz-box .eyebrow { display: block; color: var(--oxblood); }
.gz-box h3 { font-size: var(--step-2); margin: 0.2em 0 var(--space-3); }
.gz-close { color: var(--text-on-desk-dim); }
.gz-close:hover { color: var(--oxblood); }
.gz-items { display: flex; flex-direction: column; gap: var(--space-2); }
.gz-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); margin-top: var(--space-4); }
.gz-mute { font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.06em; color: var(--text-on-desk-dim); display: flex; align-items: center; gap: 0.5em; cursor: pointer; }


/* ── Gazette Desk: search + archives ── */
.notice-tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-4); }
#notice-find {
  flex: 1 1 340px;
  font-family: var(--font-mono); font-size: var(--step--1); letter-spacing: 0.02em;
  color: var(--text-on-desk);
  background: var(--paper-shade);
  border: 1px solid var(--rule-on-desk);
  border-radius: 999px; padding: 0.7em 1.1em;
}
.nt-go { white-space: nowrap; }
.nt-note { font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.06em; color: var(--text-on-desk-dim); flex-basis: 100%; }
.notice-archives { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 0.7em; margin-top: var(--space-3); }
.na-label { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-on-desk-dim); width: 100%; }
.na-link {
  font-family: var(--font-mono); font-size: 0.68rem; letter-spacing: 0.02em;
  text-decoration: none; color: var(--text-on-desk);
  padding: 0.4em 0.85em; border-radius: 999px;
  border: 1px solid var(--rule-on-desk);
  border-left: 3px solid var(--dot, var(--gold-foil));
  background: linear-gradient(180deg, #FFFDF6, #F4ECD7);
  transition: transform var(--dur-quick) var(--ease-out);
}
.na-link:hover { transform: translateY(-1px); color: var(--oxblood); }


/* ── Per-section research bar (case law / circulars / bare Act) ── */
.research-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5em;
  margin-top: var(--space-3);
  padding-top: var(--space-2);
  border-top: 1px dotted var(--rule-on-desk);
}
.rb-label {
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--acc, var(--oxblood));
  width: 100%;
}
.rb-saved-wrap { display: flex; flex-wrap: wrap; gap: 0.4em; width: 100%; }
.rb-saved {
  font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.02em;
  text-decoration: none; color: var(--ink);
  padding: 0.3em 0.7em; border-radius: 999px;
  background: var(--paper-shade);
  border: 1px solid var(--rule-on-desk);
  border-left: 3px solid var(--gold-foil);
}
.rb-saved.rb-case { border-left-color: #0F3550; }
.rb-saved.rb-circ { border-left-color: #3A2B4F; }
.rb-saved.rb-notif { border-left-color: #5A2430; }
.rb-saved:hover { color: var(--oxblood); }
.rb-btn {
  font-family: var(--font-mono); font-size: 0.64rem; letter-spacing: 0.04em;
  text-decoration: none; color: var(--ink);
  padding: 0.4em 0.85em; border-radius: 4px;
  background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil));
  box-shadow: 0 1px 2px rgba(0,0,0,0.25);
}
.rb-btn.rb-ghost {
  background: none;
  color: var(--acc, var(--oxblood));
  box-shadow: none;
  border: 1px solid var(--rule-on-desk);
}
.rb-btn:hover { filter: brightness(1.05); }


/* Indian ring live/closed status — floated so it never eats a grid column */
.ring-status {
  position: absolute;
  top: 8px;
  left: 150px;
  z-index: 2;
  font-family: var(--font-mono);
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  color: var(--text-on-shelf-dim);
  pointer-events: none;
}
.ring-status.is-live { color: #58C48A; }


/* Transparent market name washed across the base of each roller */
.ring-watermark {
  position: absolute;
  left: 150px;   /* span the roller column (chip 150 | ring 1fr | links 190) */
  right: 190px;
  bottom: 6px;
  z-index: 1;
  text-align: center;
  font-family: var(--font-display);
  font-weight: 620;
  font-size: clamp(1.4rem, 3.4vw, 2.6rem);
  letter-spacing: 0.06em;
  color: color-mix(in srgb, var(--accent-bright, #FFB666) 34%, transparent);
  text-shadow: 0 0 1px color-mix(in srgb, currentColor 60%, transparent);
  text-transform: uppercase;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
}
@media (max-width: 900px) {
  .ring-watermark { left: 110px; right: 8px; font-size: 1.3rem; }
}


/* ── Gazette: master Government of India link ── */
.gov-banner {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-top: var(--space-4);
  padding: 0.9em 1.2em;
  text-decoration: none;
  border-radius: 8px;
  color: var(--text-on-desk);
  background: linear-gradient(100deg,
    color-mix(in srgb, var(--gold-foil) 22%, var(--paper)),
    color-mix(in srgb, var(--gold-foil-bright) 12%, var(--paper)));
  border: 1px solid color-mix(in srgb, var(--gold-foil) 60%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
  transition: transform var(--dur-quick) var(--ease-out), box-shadow var(--dur-quick) var(--ease-out);
}
.gov-banner:hover { transform: translateY(-1px); box-shadow: 0 8px 16px -8px rgba(0,0,0,0.3); }
.gb-emblem {
  flex: none; width: 42px; height: 42px; display: grid; place-items: center;
  border-radius: 50%; font-size: 1.3rem; color: var(--gold-foil-bright);
  background: radial-gradient(circle at 32% 28%, #24406e, #122A5C 72%);
  box-shadow: inset 0 0 0 2px rgba(201,162,39,0.6);
}
.gb-body { display: flex; flex-direction: column; line-height: 1.35; }
.gb-title { font-family: var(--font-display); font-weight: 620; font-size: var(--step-1); }
.gb-sub { font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.04em; color: var(--text-on-desk-dim); }

/* ── Gazette: Government of India latest-updates ticker ── */
.gov-ticker {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-top: var(--space-3);
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--rule-on-desk);
  background: var(--ledger-green-deep);
}
.gt-badge {
  flex: none;
  display: grid; place-items: center;
  padding: 0 1em;
  font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.16em;
  color: var(--ink);
  background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil));
}
.gt-clip { flex: 1; overflow: hidden; position: relative; }
.gt-track {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  will-change: transform;
  animation: gt-roll linear infinite;
}
.gov-ticker:hover .gt-track { animation-play-state: paused; }
@keyframes gt-roll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.gt-item {
  display: inline-flex; align-items: center; gap: 0.5em;
  padding: 0.7em 1.4em;
  font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.01em;
  color: var(--text-on-shelf); text-decoration: none;
}
.gt-item:hover { color: var(--gold-foil-bright); }
.gt-dot { color: var(--gold-foil); font-size: 0.6em; }
@media (prefers-reduced-motion: reduce) { .gt-track { animation: none; } }


/* ── Footer, quieted: a ghosted seal, softer contact, calmer heading ── */
.footer-lede { gap: var(--space-3); align-items: center; }
.seal {
  width: 74px; height: 74px;
  gap: 1px;
  transform: rotate(-3deg);
  background: transparent;
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--gold-foil) 55%, transparent),
    inset 0 0 0 5px color-mix(in srgb, var(--gold-foil) 14%, transparent),
    inset 0 0 0 6px color-mix(in srgb, var(--gold-foil) 40%, transparent);
}
.seal-mono {
  font-size: 1.4rem;
  font-weight: 560;
  color: color-mix(in srgb, var(--gold-foil-bright) 80%, transparent);
  text-shadow: none;
}
.seal-sub { font-size: 0.46rem; letter-spacing: 0.24em; opacity: 0.6; }

.site-footer h2 {
  font-size: var(--step-1);
  font-weight: 500;
  color: color-mix(in srgb, var(--text-on-shelf) 92%, transparent);
  max-width: 20ch;
  line-height: 1.3;
}

/* contact — hairline circles, no heavy navy fill */
.ct-ic {
  width: 32px; height: 32px;
  font-size: 0.82rem;
  color: color-mix(in srgb, var(--gold-foil-bright) 78%, transparent);
  background: transparent;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gold-foil) 45%, transparent);
}
.contact-list li { padding: 0.6em 0; border-color: color-mix(in srgb, var(--rule-on-shelf) 70%, transparent); }
.contact-list a { font-size: var(--step--1); color: color-mix(in srgb, var(--accent-bright) 88%, transparent); }
.ct-label { color: color-mix(in srgb, var(--text-on-shelf-dim) 85%, transparent); }


/* ── The Hunt ── */
.hunt { padding-block: var(--space-6); }
.hunt .eyebrow { display: block; margin-bottom: var(--space-2); }
.hunt h2 { font-size: var(--step-3); }
.hunt-intro { margin-top: var(--space-3); font-size: var(--step-1); font-style: italic; color: var(--text-on-desk-dim); max-width: 60ch; }
.hunt-bar { display: flex; gap: var(--space-2); margin-top: var(--space-4); }
#hunt-find {
  flex: 1 1 auto;
  font-family: var(--font-mono); font-size: var(--step-0); letter-spacing: 0.01em;
  color: var(--text-on-desk);
  background: var(--paper-shade);
  border: 1px solid var(--rule-on-desk);
  border-radius: 999px; padding: 0.8em 1.2em;
}
.hunt-go { white-space: nowrap; }
.hunt-types { display: flex; flex-wrap: wrap; gap: 0.5em; margin-top: var(--space-3); }
.hunt-chip {
  font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.08em;
  color: var(--text-on-desk); cursor: pointer;
  padding: 0.4em 0.9em; border-radius: 999px;
  border: 1px solid var(--rule-on-desk); background: none;
}
.hunt-chip.is-on { color: var(--ink); background: linear-gradient(180deg, var(--gold-foil-bright), var(--gold-foil)); border-color: transparent; }
.hunt-sources, .hunt-results { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 0.7em; margin-top: var(--space-3); }
.hs-label { width: 100%; font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-on-desk-dim); }
.hunt-src {
  font-family: var(--font-mono); font-size: 0.68rem; text-decoration: none; color: var(--text-on-desk);
  padding: 0.45em 0.9em; border-radius: 999px;
  border: 1px solid var(--rule-on-desk); border-left: 3px solid var(--dot, var(--gold-foil));
  background: linear-gradient(180deg, #FFFDF6, #F4ECD7);
}
.hunt-src:hover { transform: translateY(-1px); color: var(--oxblood); }
.hunt-hit {
  display: block; width: 100%;
  font-family: var(--font-body); font-size: var(--step-0); text-decoration: none;
  color: var(--text-on-desk);
  padding: 0.6em 0.2em; border-bottom: 1px dotted var(--rule-on-desk);
}
.hunt-hit:hover { color: var(--oxblood); }
.hunt-empty { font-style: italic; color: var(--text-on-desk-dim); }


/* Hunt web results — title + source line */
.hunt-hit { padding: 0.55em 0.2em; }
.hunt-hit .hh-title { display: block; line-height: 1.4; }
.hunt-hit .hh-meta {
  display: block; margin-top: 2px;
  font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.03em;
  color: var(--text-on-desk-dim);
}


/* ── Slimmer top header line ── */
.site-header .wrap { padding-block: 0.35rem; align-items: center; }
.site-nav.nav-orbit { height: 2.5em; }
.ca-logo { height: 34px; }
.nameplate { font-size: var(--step-0); }
.nameplate small { font-size: 0.56rem; margin-top: 1px; }


/* ── Thin flat top nav (orbit retired) ── */
.site-header .wrap { align-items: center; gap: var(--space-4); }
.site-nav {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--space-3);
  font-size: 0.66rem;
  letter-spacing: 0.06em;
  overflow-x: auto;
  scrollbar-width: none;
  max-width: 100%;
}
.site-nav::-webkit-scrollbar { display: none; }
.site-nav a { white-space: nowrap; padding-bottom: 1px; }
.nav-speed { display: none; }


/* ── Nav as a slow horizontal marquee ── */
.site-nav.nav-marquee {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  margin-inline: var(--space-3);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.nav-marquee .nav-track {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  white-space: nowrap;
  will-change: transform;
  animation: nav-roll 55s linear infinite;
}
.site-nav.nav-marquee:hover .nav-track { animation-play-state: paused; }
@keyframes nav-roll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── The Directory — a searchable index of the whole site ───────────────── */
.directory { padding-block: var(--space-8, 4rem); }
.dir-head {
  display: flex; flex-wrap: wrap; gap: var(--space-4);
  align-items: flex-end; justify-content: space-between;
  margin-bottom: var(--space-6);
}
.dir-head > div { flex: 1 1 22rem; min-width: 0; }
.dir-lede {
  margin-top: 0.5rem; max-width: 46rem;
  color: var(--ink-soft, #6b6256); font-size: 0.92rem; line-height: 1.5;
}
.dir-search-wrap { flex: 0 1 22rem; display: flex; flex-direction: column; gap: 0.3rem; }
.dir-search {
  width: 100%; box-sizing: border-box;
  font-family: var(--font-mono); font-size: 0.85rem;
  padding: 0.7em 1em; border-radius: 10px;
  border: 1.5px solid color-mix(in srgb, var(--accent-bright, #E8912D) 45%, transparent);
  background: color-mix(in srgb, var(--paper, #fff) 88%, transparent);
  color: var(--ink, #24211c);
}
.dir-search:focus {
  outline: none;
  border-color: var(--accent-bright, #E8912D);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright, #E8912D) 20%, transparent);
}
.dir-search-note {
  font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: .04em;
  text-transform: uppercase; color: var(--accent-deep, #B4741E); min-height: 0.8rem;
}

.dir-cards { display: flex; flex-direction: column; gap: var(--space-6); }
.dir-group[hidden] { display: none; }
.dir-group-h {
  font-family: var(--font-mono); font-size: 0.68rem; font-weight: 600;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--accent-deep, #B4741E);
  margin: 0 0 0.9rem; padding-bottom: 0.4rem;
  border-bottom: 1px solid color-mix(in srgb, var(--ink, #24211c) 14%, transparent);
}
.dir-group-cards {
  display: grid; gap: 0.85rem;
  grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
}
.dir-card {
  display: flex; flex-direction: column; gap: 0.45rem;
  padding: 1rem 1.05rem; border-radius: 12px; text-decoration: none;
  background: color-mix(in srgb, var(--paper, #fff) 82%, transparent);
  border: 1px solid color-mix(in srgb, var(--ink, #24211c) 12%, transparent);
  border-left: 3px solid color-mix(in srgb, var(--accent-bright, #E8912D) 70%, transparent);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dir-card[hidden] { display: none; }
.dir-card:hover {
  transform: translateY(-3px);
  border-left-color: var(--accent-bright, #E8912D);
  box-shadow: 0 10px 26px -14px color-mix(in srgb, var(--ink, #24211c) 60%, transparent);
}
.dc-title {
  display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
  font-family: var(--font-serif, Georgia, serif); font-size: 1.02rem; font-weight: 600;
  color: var(--ink, #24211c); line-height: 1.2;
}
.dc-go { color: var(--accent-deep, #B4741E); transform: translateX(-3px); opacity: 0; transition: .18s ease; }
.dir-card:hover .dc-go { transform: translateX(0); opacity: 1; }
.dc-desc { font-size: 0.82rem; line-height: 1.45; color: var(--ink-soft, #6b6256); }
.dc-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.15rem; }
.dc-chip {
  font-family: var(--font-mono); font-size: 0.58rem; letter-spacing: .04em;
  text-transform: uppercase; padding: 0.24em 0.6em; border-radius: 999px;
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 16%, transparent);
  color: var(--accent-deep, #B4741E);
}

.dir-contents { margin-top: var(--space-8, 4rem); }
.dir-sub {
  font-family: var(--font-serif, Georgia, serif); font-size: 1.35rem;
  color: var(--ink, #24211c); margin: 0 0 0.3rem;
}
.dir-sub-note { font-size: 0.8rem; color: var(--ink-soft, #6b6256); margin: 0 0 1.4rem; max-width: 44rem; }
.dir-shelves { display: grid; gap: 1.4rem; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); }
.dir-shelf[hidden] { display: none; }
.dir-shelf-h {
  display: flex; align-items: baseline; gap: 0.55rem; margin-bottom: 0.7rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid color-mix(in srgb, var(--ink, #24211c) 12%, transparent);
}
.ds-dot { width: 0.7rem; height: 0.7rem; border-radius: 3px; background: var(--dot); flex: none; align-self: center; }
.ds-name {
  font-family: var(--font-serif, Georgia, serif); font-weight: 600; font-size: 1rem;
  color: var(--ink, #24211c); flex: 1 1 auto;
}
.ds-count {
  font-family: var(--font-mono); font-size: 0.6rem; letter-spacing: .05em;
  text-transform: uppercase; color: var(--ink-soft, #6b6256);
}
.dir-law-list { display: flex; flex-direction: column; gap: 0.3rem; }
.dir-law {
  display: flex; align-items: center; justify-content: space-between; gap: 0.6rem;
  text-align: left; cursor: pointer; width: 100%;
  font-family: inherit; font-size: 0.82rem; color: var(--ink, #24211c);
  padding: 0.5em 0.7em; border-radius: 8px;
  background: transparent; border: 1px solid transparent;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.dir-law[hidden] { display: none; }
.dir-law:hover {
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 12%, transparent);
  border-color: color-mix(in srgb, var(--accent-bright, #E8912D) 40%, transparent);
  transform: translateX(3px);
}
.dl-name { line-height: 1.3; }
.dl-badge {
  flex: none; font-family: var(--font-mono); font-size: 0.52rem; letter-spacing: .05em;
  text-transform: uppercase; padding: 0.2em 0.5em; border-radius: 999px;
  background: color-mix(in srgb, var(--india-green, #1E7A43) 20%, transparent);
  color: color-mix(in srgb, var(--india-green, #1E7A43) 88%, #000);
}
.dir-empty {
  margin-top: 1.4rem; font-family: var(--font-mono); font-size: 0.8rem;
  color: var(--ink-soft, #6b6256);
}
@media (max-width: 620px) {
  .dir-group-cards, .dir-shelves { grid-template-columns: 1fr; }
  .dir-search-wrap { flex-basis: 100%; }
}

/* ── News rollers docked top & bottom, taller, visible down the whole page ── */
.news-dock { position: fixed; left: 0; right: 0; z-index: 45; }
/* the brand + nav header rides ABOVE the top rollers; the top dock sits just below it */
.news-dock-top { top: var(--header-h, 0px); box-shadow: 0 8px 20px -14px rgba(0, 0, 0, 0.75); }
.news-dock-bottom { bottom: 0; box-shadow: 0 -8px 20px -14px rgba(0, 0, 0, 0.75); }
/* the sticky header sits just under the top dock; the page reserves room for both docks */
body { padding-top: calc(var(--header-h, 0px) + var(--dock-top-h, 0px)); padding-bottom: var(--dock-bottom-h, 0px); }
/* header fixed at the very top; content is reserved room for header + top dock */
.site-header { position: fixed; left: 0; right: 0; top: 0; z-index: 50; }

/* taller, more legible rollers */
.news-dock .ticker-news { min-height: 40px; font-size: 0.82rem; border-bottom: 1px solid rgba(0, 0, 0, 0.32); }
.news-dock-bottom .ticker-news { border-bottom: none; border-top: 1px solid rgba(0, 0, 0, 0.32); }
.news-dock .ticker-news .ticker-live { padding: 0.95em 1.05em; font-size: 0.72rem; }
.news-dock .ticker-news .nw-item { padding-block: 0.25em; }
.news-dock .ticker-news .nw-title { font-size: 0.82rem; }
.news-dock .ticker-news .nw-tag { font-size: 0.6rem; }
@media (max-width: 620px) {
  .news-dock .ticker-news { min-height: 34px; font-size: 0.74rem; }
  .news-dock .ticker-news .ticker-live { padding: 0.7em 0.8em; }
}

/* ── Directory: collapsible shelves ── */
.dir-shelf-h {
  width: 100%; cursor: pointer; text-align: left;
  appearance: none; -webkit-appearance: none; background: transparent; font: inherit;
  border: none; border-bottom: 1px solid color-mix(in srgb, var(--ink, #24211c) 12%, transparent);
  transition: color .15s ease;
}
.dir-shelf-h:hover .ds-name { color: var(--accent-deep, #B4741E); }
.ds-chev {
  color: var(--accent-deep, #B4741E); font-size: 0.7rem; flex: none;
  transition: transform .18s ease; align-self: center;
}
.dir-shelf.is-collapsed .ds-chev { transform: rotate(-90deg); }
.dir-shelf.is-collapsed .dir-law-list { display: none; }
.dir-fold-all {
  display: inline-block; margin-bottom: 1rem; cursor: pointer;
  font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: .06em; text-transform: uppercase;
  padding: 0.4em 0.9em; border-radius: 999px;
  background: transparent; color: var(--accent-deep, #B4741E);
  border: 1px solid color-mix(in srgb, var(--accent-bright, #E8912D) 45%, transparent);
  transition: background .15s ease, border-color .15s ease;
}
.dir-fold-all:hover {
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 14%, transparent);
  border-color: var(--accent-bright, #E8912D);
}

/* the recurring cycle marked inside a month's panel */
.due-monthly {
  font-family: var(--font-mono); font-size: 0.56rem; letter-spacing: .05em;
  text-transform: uppercase; padding: 0.1em 0.5em; margin-left: 0.4em;
  border-radius: 999px; vertical-align: middle;
  background: color-mix(in srgb, var(--ink, #24211c) 8%, transparent);
  color: var(--ink-soft, #6b6256);
}

/* ── "Directory" jump button in the header, beside the colour picker ── */
.dir-jump {
  flex: none; display: inline-flex; align-items: center; gap: 0.4em;
  padding: 0.4em 0.85em; border-radius: 999px; text-decoration: none;
  font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.05em;
  text-transform: uppercase; white-space: nowrap;
  color: var(--accent-bright, #FFB666);
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-bright, #E8912D) 55%, transparent);
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.dir-jump:hover {
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 26%, transparent);
  border-color: var(--accent-bright, #E8912D);
  transform: translateY(-1px);
}
.dir-jump .dj-ic { font-size: 0.85em; }
@media (max-width: 720px) { .dir-jump .dj-tx { display: none; } .dir-jump { padding: 0.4em 0.55em; } }

/* the fixed header + top rollers must not cover a section jumped to via anchor */
#directory { scroll-margin-top: calc(var(--header-h, 0px) + var(--dock-top-h, 0px) + 12px); }

/* ── The Hunt: AI answer card (Ask desk) ── */
.hunt-answer {
  display: block; margin-top: 0.4rem;
  padding: 1rem 1.15rem; border-radius: 12px;
  background: color-mix(in srgb, var(--paper, #fff) 88%, transparent);
  border: 1px solid color-mix(in srgb, var(--ink, #24211c) 12%, transparent);
  border-left: 3px solid var(--accent-bright, #E8912D);
}
.hunt-answer .hs-label { display: block; margin-bottom: 0.5rem; }
.ha-body { color: var(--ink, #24211c); font-size: 0.92rem; line-height: 1.6; }
.ha-body p { margin: 0 0 0.7em; }
.ha-body p:last-child { margin-bottom: 0; }
.ha-note {
  margin-top: 0.85rem; padding-top: 0.7rem;
  border-top: 1px dashed color-mix(in srgb, var(--ink, #24211c) 18%, transparent);
  font-family: var(--font-mono); font-size: 0.66rem; line-height: 1.5;
  color: var(--oxblood, #7a2230);
}
:root[data-theme="pastel"] .ha-note { color: #B3392F; }

/* ── The Hunt: Gemini-style chat thread ── */
.hunt-chat {
  display: flex; flex-direction: column; gap: 0.8rem;
  max-height: 60vh; overflow-y: auto; padding: 0.2rem 0.1rem 0.1rem;
}
.hc-turn { display: flex; flex-direction: column; gap: 0.25rem; max-width: 92%; }
.hc-who {
  font-family: var(--font-mono); font-size: 0.56rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--ink-soft, #6b6256);
}
.hc-user { align-self: flex-end; align-items: flex-end; }
.hc-user .hc-text {
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 20%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-bright, #E8912D) 40%, transparent);
  color: var(--ink, #24211c); border-radius: 12px 12px 3px 12px;
  padding: 0.55rem 0.85rem; font-size: 0.9rem; line-height: 1.5;
}
.hc-ai { align-self: flex-start; }
.hc-ai .hc-text {
  background: color-mix(in srgb, var(--paper, #fff) 90%, transparent);
  border: 1px solid color-mix(in srgb, var(--ink, #24211c) 12%, transparent);
  border-left: 3px solid var(--accent-bright, #E8912D);
  border-radius: 3px 12px 12px 12px; padding: 0.7rem 0.95rem;
}
.hc-typing { font-family: var(--font-mono); font-size: 0.8rem; color: var(--ink-soft, #6b6256); }
.hc-typing::after { content: ""; animation: hc-dots 1.2s steps(4, end) infinite; }
@keyframes hc-dots { 0% { content: ""; } 25% { content: "·"; } 50% { content: "··"; } 75% { content: "···"; } }
.hc-foot {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 0.6rem; margin-top: 0.2rem;
}
.hc-reset {
  cursor: pointer; font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: .05em;
  padding: 0.35em 0.8em; border-radius: 999px; white-space: nowrap;
  background: transparent; color: var(--accent-deep, #B4741E);
  border: 1px solid color-mix(in srgb, var(--accent-bright, #E8912D) 45%, transparent);
}
.hc-reset:hover { background: color-mix(in srgb, var(--accent-bright, #E8912D) 14%, transparent); }

/* markdown inside an AI answer — reads like Gemini's output */
.ha-body { color: var(--ink, #24211c); font-size: 0.9rem; line-height: 1.6; }
.ha-body > :first-child { margin-top: 0; }
.ha-body > :last-child { margin-bottom: 0; }
.ha-body p { margin: 0 0 0.6em; }
.ha-body h4, .ha-body h5, .ha-body h6 { margin: 0.9em 0 0.4em; font-family: var(--font-serif, Georgia, serif); line-height: 1.25; }
.ha-body h4 { font-size: 1.05rem; } .ha-body h5 { font-size: 0.96rem; } .ha-body h6 { font-size: 0.88rem; }
.ha-body ul, .ha-body ol { margin: 0.3em 0 0.7em; padding-left: 1.3em; }
.ha-body li { margin: 0.2em 0; }
.ha-body strong { font-weight: 600; }
.ha-body a { color: var(--oxblood, #7a2230); text-decoration: underline; }
.ha-body code { font-family: var(--font-mono); font-size: 0.85em; padding: 0.1em 0.35em; border-radius: 4px; background: color-mix(in srgb, var(--ink, #24211c) 8%, transparent); }
.ha-body pre.md-pre { margin: 0.5em 0 0.8em; padding: 0.7rem 0.9rem; border-radius: 8px; overflow-x: auto; background: color-mix(in srgb, var(--ink, #24211c) 88%, #000); }
.ha-body pre.md-pre code { background: none; padding: 0; color: #F2ECD9; font-size: 0.82em; }
.ha-body blockquote { margin: 0.5em 0; padding: 0.2em 0 0.2em 0.9em; border-left: 3px solid color-mix(in srgb, var(--accent-bright, #E8912D) 55%, transparent); color: var(--ink-soft, #6b6256); }
.ha-body table.md-table { border-collapse: collapse; margin: 0.5em 0 0.8em; font-size: 0.84rem; display: block; overflow-x: auto; }
.ha-body table.md-table th, .ha-body table.md-table td { border: 1px solid color-mix(in srgb, var(--ink, #24211c) 18%, transparent); padding: 0.35em 0.6em; text-align: left; }
.ha-body table.md-table th { background: color-mix(in srgb, var(--accent-bright, #E8912D) 14%, transparent); font-weight: 600; }
.ha-body hr { border: none; border-top: 1px solid color-mix(in srgb, var(--ink, #24211c) 16%, transparent); margin: 0.9em 0; }

/* ── The Hunt: in-page Gemini key setup ── */
.hc-keyrow { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.4rem 0 0.2rem; }
.hc-keyrow input {
  flex: 1 1 16rem; min-width: 0; box-sizing: border-box;
  font-family: var(--font-mono); font-size: 0.82rem; padding: 0.6em 0.8em;
  border-radius: 9px; color: var(--ink, #24211c);
  background: color-mix(in srgb, var(--paper, #fff) 92%, transparent);
  border: 1.5px solid color-mix(in srgb, var(--accent-bright, #E8912D) 45%, transparent);
}
.hc-keyrow input:focus { outline: none; border-color: var(--accent-bright, #E8912D);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright, #E8912D) 20%, transparent); }
.hc-key-save {
  flex: none; cursor: pointer; font-family: var(--font-mono); font-size: 0.72rem;
  letter-spacing: .04em; padding: 0.6em 1.1em; border-radius: 9px;
  color: #16110a; background: var(--accent-bright, #E8912D); border: none;
}
.hc-key-save:hover { filter: brightness(1.06); }
.hc-key-save:disabled { opacity: 0.6; cursor: default; }

/* ── Market Ring: SENSEX & NIFTY pinned constant above the Indian roller ── */
.ring-pinned {
  display: flex; gap: 0.6rem; justify-content: center; flex-wrap: wrap;
  margin-bottom: 0.6rem;
}
.ring-pin-card {
  flex: 1 1 auto; max-width: 15rem; min-width: 8.5rem; cursor: pointer;
  display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto;
  align-items: baseline; column-gap: 0.6rem; row-gap: 0.1rem;
  padding: 0.5rem 0.8rem; border-radius: 10px;
  background: color-mix(in srgb, var(--paper, #fff) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--gold-foil, #E8912D) 30%, transparent);
  border-left: 3px solid var(--gold-foil, #E8912D);
  position: relative; overflow: hidden;
}
.ring-pin-card .rp-label {
  grid-column: 1; grid-row: 1; font-family: var(--font-mono);
  font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text-on-shelf-dim, #b8b09c);
}
.ring-pin-card .rp-price {
  grid-column: 1; grid-row: 2; font-family: var(--font-serif, Georgia, serif);
  font-size: 1.15rem; font-weight: 600; color: var(--text-on-shelf, #f4eeda);
  line-height: 1.1;
}
.ring-pin-card .rp-chg {
  grid-column: 2; grid-row: 2; font-family: var(--font-mono); font-size: 0.8rem;
  align-self: end;
}
.ring-pin-card.is-up .rp-chg { color: #58C48A; }
.ring-pin-card.is-down .rp-chg { color: #E8837B; }
.ring-pin-card .rg-spark {
  grid-column: 1 / -1; grid-row: 3; width: 100%; height: 22px; margin-top: 0.2rem;
  color: #58C48A;
}
.ring-pin-card.is-down .rg-spark { color: #E8837B; }
:root[data-theme="pastel"] .ring-pin-card.is-up .rp-chg,
:root[data-theme="pastel"] .ring-pin-card.is-up .rg-spark { color: #1E7A43; }
:root[data-theme="pastel"] .ring-pin-card.is-down .rp-chg,
:root[data-theme="pastel"] .ring-pin-card.is-down .rg-spark { color: #B3392F; }

/* ── Card Catalogue: the card at the TOP of the wheel opens up ── */
.deck-stage.is-ring .play-card.is-front {
  transform: translate(-50%, -50%)
    rotate(calc(var(--wheel, 0deg) + var(--ca, 0deg)))
    translateY(-238px)
    rotate(calc(-1 * (var(--wheel, 0deg) + var(--ca, 0deg))))
    scale(1.18);
  z-index: 50;
  box-shadow: 0 26px 54px rgba(28, 26, 22, 0.45);
  border-color: var(--gold-foil, #E8912D);
  outline: 2px solid color-mix(in srgb, var(--gold-foil, #E8912D) 55%, transparent);
  outline-offset: 2px;
}
.deck-stage.is-ring .play-card.is-front .ic-title { color: var(--accent-deep, #B4741E); }
/* a hovered card still wins over the auto-featured one */
.deck-stage.is-ring .play-card.is-front:hover {
  transform: translate(-50%, -50%)
    rotate(calc(var(--wheel, 0deg) + var(--ca, 0deg)))
    translateY(-250px)
    rotate(calc(-1 * (var(--wheel, 0deg) + var(--ca, 0deg))))
    scale(1.22);
  z-index: 90;
}

/* the opened (top) card shows a rotating descriptive line */
.play-card .ic-desc { display: none; }
.deck-stage.is-ring .play-card.is-front .ic-desc {
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
  margin-top: 0.5rem; padding-top: 0.45rem;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  font-size: 0.72rem; line-height: 1.4; font-style: italic; opacity: 0.92;
}

/* ── Library: shelves (three columns) with the carousel running beside them ── */
.library-split { display: block; }
.library-split > .lib-carousel { margin-top: var(--space-5); }
/* The page's content column (max 1180px) can't fit a ~500px carousel beside the
   shelves without crushing the spines — so the shelves stay FULL-WIDTH with their
   roomy three columns, and the carousel sits full-width BELOW, set apart by a
   clear divider. Each is adequate and distinct. */
.library-split > .lib-carousel {
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 1px solid var(--rule-on-shelf);
}

/* ── Carousel: let the FULL book name show (no cut-off) ── */
.car-drum { width: 66px; }               /* a touch thicker → titles get more room */
.car-title {
  max-height: 216px;                      /* use nearly the whole spine length */
  line-height: 1.04;
  letter-spacing: 0;
  text-align: center;
  overflow: visible;                      /* never clip the name */
}

/* Shelf rows WRAP within their cell — a set wider than the column flows onto a
   second shelf line instead of squeezing/scrolling (the spines keep full size). */
.shelf-row {
  width: 100%;
  max-width: 100%;
  flex-wrap: wrap;
  row-gap: 10px;
  overflow: visible;
  justify-content: center;
  align-content: flex-end;
}

/* ── "pro" theme — calmer, more professional presentation ── */
/* still the perpetual shimmer/stamp/deal gimmicks */
:root[data-theme="pro"] .ol-badge,
:root[data-theme="pro"] .ol-stamp,
:root[data-theme="pro"] .ol-stamp::after { animation: none !important; }
:root[data-theme="pro"] .ol-stamp { transform: rotate(-3deg); color: var(--oxblood); }
/* the wax seal reads as a quiet monogram, not a stamp */
:root[data-theme="pro"] .seal { opacity: 0.5; }
/* the nav still rolls, but almost imperceptibly (professional = calm) */
:root[data-theme="pro"] .nav-marquee .nav-track { animation-duration: 240s; }
/* mute the tricolour silk headbands to a single hairline rule */
:root[data-theme="pro"] .headband {
  background: none !important;
  height: 1px;
  border-top: 1px solid var(--rule-on-shelf);
}
/* softer, flatter cards — less drop-shadow drama */
:root[data-theme="pro"] .dir-card,
:root[data-theme="pro"] .practice-item,
:root[data-theme="pro"] .firm-card { box-shadow: none; }
/* headings lose the gold foil-sweep; steady brass instead */
:root[data-theme="pro"] h1, :root[data-theme="pro"] h2 { -webkit-text-fill-color: currentColor; }

/* ── "OmniLedger" jump button in the header, beside the colour picker ── */
.ol-jump {
  flex: none; display: inline-flex; align-items: center; gap: 0.4em;
  padding: 0.4em 0.85em; border-radius: 999px; text-decoration: none;
  font-family: var(--font-mono); font-size: 0.66rem; letter-spacing: 0.05em;
  text-transform: uppercase; white-space: nowrap;
  color: var(--accent-bright, #FFB666);
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent-bright, #E8912D) 50%, transparent);
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.ol-jump:hover {
  background: color-mix(in srgb, var(--accent-bright, #E8912D) 24%, transparent);
  border-color: var(--accent-bright, #E8912D);
  transform: translateY(-1px);
}
.ol-jump .oj-mark { font-size: 0.9em; }
@media (max-width: 720px) { .ol-jump .oj-tx { display: none; } .ol-jump { padding: 0.4em 0.55em; } }

/* the fixed header must not cover the OmniLedger section when jumped to */
#omniledger { scroll-margin-top: calc(var(--header-h, 0px) + var(--dock-top-h, 0px) + 12px); }

/* ── The ICAI Desk ── */
.icai-intro { max-width: 60ch; color: var(--text-on-shelf-dim); margin: 0.4rem 0 1.2rem; line-height: 1.55; }
.icai-portal { margin-bottom: 1.4rem; }
.icai-live-wrap { margin-bottom: 1.6rem; }
.icai-live-label, .icai-links-label {
  display: block; font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--accent-bright); margin-bottom: 0.6rem;
}
.icai-live { display: flex; flex-direction: column; gap: 0.4rem; }
.icai-item {
  display: flex; align-items: baseline; justify-content: space-between; gap: 0.9rem;
  padding: 0.6em 0.85em; border-radius: 9px; text-decoration: none;
  background: color-mix(in srgb, var(--text-on-shelf) 6%, transparent);
  border-left: 3px solid color-mix(in srgb, var(--accent-bright) 55%, transparent);
  transition: background .15s ease, transform .15s ease;
}
.icai-item:hover { background: color-mix(in srgb, var(--accent-bright) 14%, transparent); transform: translateX(3px); }
.ii-title { color: var(--text-on-shelf); font-size: 0.9rem; line-height: 1.4; }
.ii-act {
  flex: none; font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--accent-bright); white-space: nowrap;
}
.icai-live-empty { font-family: var(--font-mono); font-size: 0.8rem; color: var(--text-on-shelf-dim); }
.icai-live-empty a { color: var(--accent-bright); }

.icai-links {
  display: grid; gap: 0.7rem;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
}
.icai-link {
  display: flex; flex-direction: column; gap: 0.2rem;
  padding: 0.75rem 0.95rem; border-radius: 10px; text-decoration: none;
  background: color-mix(in srgb, var(--text-on-shelf) 6%, transparent);
  border: 1px solid var(--rule-on-shelf);
  border-left: 3px solid var(--dot, var(--gold-foil));
  transition: transform .16s ease, background .16s ease, box-shadow .16s ease;
}
.icai-link:hover {
  transform: translateY(-2px);
  background: color-mix(in srgb, var(--accent-bright) 12%, transparent);
  box-shadow: 0 10px 24px -14px rgba(0,0,0,0.6);
}
.il-label { font-family: var(--font-display); font-size: 1rem; color: var(--text-on-shelf); font-weight: 600; }
.il-note { font-size: 0.78rem; color: var(--text-on-shelf-dim); line-height: 1.35; }

#icai { scroll-margin-top: calc(var(--header-h, 0px) + var(--dock-top-h, 0px) + 12px); }

/* ICAI live item: date · title · action */
.icai-item { display: grid; grid-template-columns: 5.4rem 1fr auto; align-items: baseline; gap: 0.4rem 0.9rem; }
.ii-date { font-family: var(--font-mono); font-size: 0.62rem; letter-spacing: .03em; color: var(--accent-bright); white-space: nowrap; }
@media (max-width: 620px) { .icai-item { grid-template-columns: 1fr auto; } .ii-date { grid-column: 1 / -1; order: -1; } }
.icai-updated { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--text-on-shelf-dim); }

/* Iridescent Emerald: headings on the dark emerald grounds shimmer green→mint→teal */
:root[data-theme="emerald"] .hero h1,
:root[data-theme="emerald"] .surface-shelf h2 {
  background: linear-gradient(100deg, #2FD8A6, #5FF0C2 45%, #22C1C3 80%, #2FD8A6);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* Rose Black Baccara: headings on the dark burgundy grounds glow rose→crimson→wine */
:root[data-theme="baccara"] .hero h1,
:root[data-theme="baccara"] .surface-shelf h2 {
  background: linear-gradient(100deg, #E87E97, #CC4E6A 45%, #8E2942 85%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ── Contact: enquiry form ── */
.footer-enquiry { margin: 1.6rem 0 0; max-width: 46rem; }
.footer-enquiry .eyebrow { display: block; margin-bottom: 0.6rem; }
.eq-row { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 0.6rem; }
.eq-in {
  flex: 1 1 12rem; min-width: 0; box-sizing: border-box;
  font-family: var(--font-body); font-size: 0.9rem; padding: 0.6em 0.8em;
  border-radius: 8px; color: var(--text-on-shelf);
  background: color-mix(in srgb, var(--text-on-shelf) 8%, transparent);
  border: 1px solid var(--rule-on-shelf);
}
.eq-in::placeholder { color: var(--text-on-shelf-dim); }
.eq-in:focus { outline: none; border-color: var(--accent-bright);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-bright) 20%, transparent); }
.eq-msg { width: 100%; resize: vertical; min-height: 3.4em; margin-bottom: 0.6rem; }
.eq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; } /* honeypot */
.eq-foot { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.eq-send {
  cursor: pointer; font-family: var(--font-mono); font-size: 0.72rem; letter-spacing: 0.05em;
  text-transform: uppercase; padding: 0.7em 1.3em; border-radius: 8px; border: none;
  color: #16110a; background: var(--accent-bright);
}
.eq-send:hover { filter: brightness(1.06); }
.eq-send:disabled { opacity: 0.6; cursor: default; }
.eq-status { font-size: 0.82rem; color: var(--text-on-shelf-dim); }

/* ── FlipSec demo-code request modal ── */
.demo-modal { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center;
  padding: 1.2rem; background: color-mix(in srgb, #000 58%, transparent);
  backdrop-filter: blur(2px); animation: dm-fade var(--dur-quick) var(--ease-out); }
.demo-modal[hidden] { display: none; }
@keyframes dm-fade { from { opacity: 0; } to { opacity: 1; } }
.demo-card {
  position: relative; width: min(28rem, 100%); box-sizing: border-box;
  background: var(--bg-desk); color: var(--text-on-desk);
  border: 1px solid var(--rule-on-desk); border-radius: 14px;
  padding: 1.6rem 1.5rem 1.4rem; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
  animation: dm-rise var(--dur-slow) var(--ease-out); }
@keyframes dm-rise { from { transform: translateY(12px); opacity: 0; } to { transform: none; opacity: 1; } }
.demo-card h3 { font-family: var(--font-display); font-size: var(--step-1);
  margin: 0 0 0.5rem; color: var(--text-on-desk); line-height: 1.15; }
.dm-sub { font-size: 0.9rem; color: var(--text-on-desk-dim); margin: 0 0 1.1rem; line-height: 1.5; }
.dm-sub strong { color: var(--text-on-desk); }
.demo-x { position: absolute; top: 0.55rem; right: 0.7rem; border: none; background: none;
  font-size: 1.5rem; line-height: 1; cursor: pointer; color: var(--text-on-desk-dim); padding: 0.2rem; }
.demo-x:hover { color: var(--text-on-desk); }
.dm-in {
  display: block; width: 100%; box-sizing: border-box; margin-bottom: 0.6rem;
  font-family: var(--font-body); font-size: 0.95rem; padding: 0.65em 0.85em;
  border-radius: 8px; color: var(--text-on-desk);
  background: color-mix(in srgb, var(--text-on-desk) 5%, transparent);
  border: 1px solid var(--rule-on-desk); }
.dm-in::placeholder { color: var(--text-on-desk-dim); }
.dm-in:focus { outline: none; border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent); }
.dm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; } /* honeypot */
.dm-send {
  width: 100%; cursor: pointer; font-family: var(--font-mono); font-size: 0.74rem;
  letter-spacing: 0.05em; text-transform: uppercase; padding: 0.8em 1.2em;
  border-radius: 8px; border: none; color: #fff; background: var(--accent);
  margin-top: 0.2rem; }
.dm-send:hover { filter: brightness(1.06); }
.dm-send:disabled { opacity: 0.65; cursor: default; }
.dm-status { display: block; min-height: 1.1em; margin-top: 0.7rem;
  font-size: 0.85rem; color: var(--text-on-desk-dim); text-align: center; }
.dm-foot { margin-top: 1rem; padding-top: 0.9rem; border-top: 1px solid var(--rule-on-desk);
  font-size: 0.82rem; color: var(--text-on-desk-dim); text-align: center; }
.dm-foot a { color: var(--accent); font-weight: 600; text-decoration: none; }
.dm-foot a:hover { text-decoration: underline; }
