/* ============================================
   SHIVBODH TRUST 2.10 — श्रीशिवगीता AS A BOOK
   Cover that opens into the title page + contents (/books/shiv-gita/)
   and book-page reader for every adhyaya. Loaded only on these routes.
   ============================================ */
:root {
    --sg-paper: #fdf7ea;
    --sg-paper-2: #f5e8cb;
    --sg-edge: #dcc79c;
    --sg-ink: #2b1d10;
    --sg-red: #8b1a1a;
    --sg-gold: #b8860b;
    --sg-muted: #6b5a48;
    --sg-board: #5c1010;
    --sg-board-2: #8b1a1a;
    --sg-scale: 1;
}
[data-theme="dark"] {
    --sg-paper: #251b13;
    --sg-paper-2: #1d150e;
    --sg-edge: #3b2d1f;
    --sg-ink: #f2e7d5;
    --sg-red: #f0c75e;
    --sg-gold: #d4a017;
    --sg-muted: #c9b9a3;
    --sg-board: #2a0909;
    --sg-board-2: #4a1010;
}

/* ---------- Cover art (3D book; also rendered into the shelf cover) ---------- */
.sb-sg-cover-art {
    position: absolute;
    inset: 0;
    container-type: inline-size;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2.6cqw;
    padding: 14% 12%;
    border-radius: 3px 10px 10px 3px;
    background:
        radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .05) 1px, transparent 1.5px) 0 0 / 5px 5px,
        radial-gradient(ellipse at 30% 18%, #a83232 0%, #761616 42%, #3f0a0a 100%);
    box-shadow: inset 7px 0 12px -4px rgba(0, 0, 0, .55), inset -1px 0 0 rgba(255, 255, 255, .08);
    color: #f0c75e;
    font-family: 'Noto Serif Devanagari', var(--sb-font-heading);
    text-align: center;
    overflow: hidden;
}
.sb-sg-cover-frame {
    position: absolute;
    inset: 6% 7% 6% 9%;
    border: 1.5px solid rgba(240, 199, 94, .85);
    border-radius: 2px;
    pointer-events: none;
}
.sb-sg-cover-frame::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 1px solid rgba(240, 199, 94, .45);
}
.sb-sg-cover-frame::before {
    content: '';
    position: absolute;
    inset: -6px;
    background:
        radial-gradient(circle, #f0c75e 0 3px, transparent 3.6px) 0 0 / 12px 12px no-repeat,
        radial-gradient(circle, #f0c75e 0 3px, transparent 3.6px) 100% 0 / 12px 12px no-repeat,
        radial-gradient(circle, #f0c75e 0 3px, transparent 3.6px) 0 100% / 12px 12px no-repeat,
        radial-gradient(circle, #f0c75e 0 3px, transparent 3.6px) 100% 100% / 12px 12px no-repeat;
}
.sb-sg-cover-om,
.sb-sg-cover-title {
    background: linear-gradient(180deg, #fff1c2 0%, #f0c75e 45%, #b8860b 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    line-height: 1.35;
    /* Room for the ि / ी matras, which the text clip would otherwise cut. */
    padding: .2em .12em .06em;
}
.sb-sg-cover-om { font-size: 24cqw; font-weight: 700; filter: drop-shadow(0 2px 2px rgba(0, 0, 0, .45)); }
.sb-sg-cover-title { font-size: 13.5cqw; font-weight: 700; letter-spacing: .02em; filter: drop-shadow(0 2px 1px rgba(0, 0, 0, .5)); }
.sb-sg-cover-sub { font-size: 4.6cqw; color: #f5dfa8; line-height: 1.5; }
.sb-sg-cover-rule {
    position: relative;
    width: 46%;
    height: 1px;
    margin: 1.5cqw 0;
    background: linear-gradient(90deg, transparent, #f0c75e, transparent);
}
.sb-sg-cover-rule::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 2.6cqw;
    height: 2.6cqw;
    background: #f0c75e;
    transform: translate(-50%, -50%) rotate(45deg);
}
.sb-sg-cover-credit { display: flex; flex-direction: column; gap: .6cqw; font-size: 5.4cqw; font-weight: 600; color: #fbe7b0; }
.sb-sg-cover-credit small { font-size: 3.6cqw; font-weight: 500; letter-spacing: .08em; color: #e6c47a; }
.sb-sg-cover-press { margin-top: 2cqw; font-size: 3.8cqw; color: #e6c47a; letter-spacing: .04em; }

/* ---------- Page header tweaks ---------- */
.sb-sg-header .sb-sg-header-credit { margin-top: .6rem; color: var(--sb-gold-light); font-size: var(--sb-text-sm); font-weight: 600; letter-spacing: .02em; }
.sb-sg-header--chapter { padding-bottom: var(--sb-space-2xl); }
.sb-sg-h1-title { font-weight: 500; opacity: .85; }

/* Header stays dark maroon in both themes so the gold credit line reads. */
.sb-sg-header { background: linear-gradient(135deg, #1a1209, #5c1010); }
.sb-sg-header h1 { color: #fff; }
.sb-sg-header p { color: #d8cbb8; }
.sb-sg-header .sb-breadcrumb a, .sb-sg-header .sb-breadcrumb span { color: rgba(255, 255, 255, .72); }
.sb-sg-header .sb-breadcrumb span:last-child { color: var(--sb-gold-light); }

/* Warm reading-desk background behind the book. */
.sb-sg-stage-section,
.sb-sg-about,
.sb-sg-read { background: radial-gradient(ellipse at 50% 0%, #fff9ef 0%, #f7eddc 70%, #f1e3cc 100%); }
[data-theme="dark"] .sb-sg-stage-section,
[data-theme="dark"] .sb-sg-about,
[data-theme="dark"] .sb-sg-read { background: radial-gradient(ellipse at 50% 0%, #2a1d14 0%, #1a1209 75%); }

/* Astra styles every <button> (blue fill on hover/focus); reset ours. */
.sb-sg-stage .sb-sg-book3d,
.sb-sg-stage .sb-sg-book3d:hover,
.sb-sg-stage .sb-sg-book3d:focus,
.sb-sg-stage .sb-sg-book3d:active { padding: 0; border: 0; background: transparent; box-shadow: none; color: inherit; }
.sb-sg-stage .sb-sg-close,
.sb-sg-stage .sb-sg-close:focus { background: transparent; color: #f5dfa8; box-shadow: none; }
.sb-sg-stage .sb-sg-close:hover { background: rgba(240, 199, 94, .12); color: #fff1c2; }
.sb-sg-toolbar .sb-sg-size button,
.sb-sg-toolbar .sb-sg-size button:focus { display: inline-grid; place-items: center; padding: 0; line-height: 1; background: transparent; box-shadow: none; color: var(--sb-gray-700); }
.sb-sg-toolbar .sb-sg-size button:hover { background: rgba(212, 160, 23, .12); color: var(--sb-maroon); }
[data-theme="dark"] .sb-sg-toolbar .sb-sg-size button { color: #e8dccb; border-color: rgba(255, 255, 255, .18); }
.sb-sg-closed .sb-sg-open-btn { width: auto; min-width: 210px; }
.sb-sg-burger { position: relative; display: inline-block; width: 14px; height: 2px; margin: 0 .2rem 0 .1rem; border-radius: 2px; background: currentColor; box-shadow: 0 -5px 0 currentColor, 0 5px 0 currentColor; }

/* ---------- Stage: closed book that opens ---------- */
.sb-sg-stage-section { padding-top: var(--sb-space-2xl); overflow: hidden; }
.sb-sg-stage { position: relative; }
.sb-sg-closed {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sb-space-lg);
    padding: var(--sb-space-md) 0 var(--sb-space-lg);
}
html:not(.sb-sg-js) .sb-sg-closed,
html:not(.sb-sg-js) .sb-sg-close { display: none; }
.sb-sg-js .sb-sg-stage:not(.is-open) .sb-sg-open { display: none; }
.sb-sg-stage.is-open .sb-sg-closed { display: none; }

.sb-sg-book3d {
    --w: clamp(220px, 64vw, 340px);
    --d: clamp(22px, 6vw, 34px);
    position: relative;
    width: var(--w);
    aspect-ratio: 7 / 10;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    perspective: 1700px;
    -webkit-tap-highlight-color: transparent;
}
.sb-sg-book3d::after {
    content: '';
    position: absolute;
    left: 4%;
    right: -10%;
    bottom: -8%;
    height: 10%;
    background: radial-gradient(closest-side, rgba(40, 12, 4, .38), transparent);
    z-index: -1;
    transition: transform .7s ease;
}
.sb-sg-book3d:focus-visible { outline: 3px solid var(--sb-saffron); outline-offset: 10px; border-radius: 12px; }
.sb-sg-obj {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transform: rotateY(-26deg) rotateX(6deg);
    transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
.sb-sg-book3d:hover .sb-sg-obj,
.sb-sg-book3d:focus-visible .sb-sg-obj { transform: rotateY(-12deg) rotateX(3deg) translateY(-8px); }
.sb-sg-lid {
    position: absolute;
    inset: 0;
    transform-style: preserve-3d;
    transform-origin: left center;
    transform: translateZ(calc(var(--d) / 2));
    transition: transform 1.15s cubic-bezier(.4, .05, .2, 1) .2s;
}
.sb-sg-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: 3px 10px 10px 3px; }
.sb-sg-face--back {
    transform: rotateY(180deg);
    border-radius: 10px 3px 3px 10px;
    background:
        radial-gradient(circle, rgba(240, 199, 94, .28) 0 1.6px, transparent 2.2px) 0 0 / 16px 16px,
        linear-gradient(90deg, #4a0c0c, #6e1414);
    box-shadow: inset 0 0 0 10px #f5e8cb, inset 0 0 0 11px rgba(184, 134, 11, .5);
}
.sb-sg-inner {
    position: absolute;
    inset: 3px 6px 3px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    border-radius: 2px 7px 7px 2px;
    transform: translateZ(calc(var(--d) / 2 - 2px));
    background: linear-gradient(90deg, rgba(92, 40, 10, .18), transparent 12%), var(--sg-paper);
    color: var(--sg-red);
    font-family: 'Noto Serif Devanagari', var(--sb-font-heading);
    font-size: .95rem;
}
.sb-sg-inner b { font-size: 1.8rem; }
.sb-sg-edge {
    position: absolute;
    top: 3px;
    bottom: 3px;
    left: calc(100% - var(--d) / 2 - 5px);
    width: var(--d);
    transform: rotateY(90deg);
    background: repeating-linear-gradient(90deg, #faf1dc 0 2px, #dcc79c 2px 3px);
}
.sb-sg-spine {
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(var(--d) / -2);
    width: var(--d);
    transform: rotateY(-90deg);
    background: linear-gradient(90deg, #3f0a0a, #761616 45%, #3f0a0a);
}
.sb-sg-obj::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 3px 10px 10px 3px;
    transform: translateZ(calc(var(--d) / -2));
    background: #3f0a0a;
}

/* Opening: book turns to face the reader, then the cover swings open. */
.sb-sg-stage.is-opening .sb-sg-obj { transform: rotateY(0) rotateX(0) translateX(18%); }
.sb-sg-stage.is-opening .sb-sg-lid { transform: translateZ(calc(var(--d) / 2)) rotateY(-168deg); }
.sb-sg-stage.is-opening .sb-sg-open-btn,
.sb-sg-stage.is-opening .sb-sg-hint { opacity: 0; transition: opacity .3s ease; }
.sb-sg-hint { margin: 0; color: var(--sb-gray-500); font-size: var(--sb-text-sm); text-align: center; }

/* ---------- Open book: title page + contents ---------- */
.sb-sg-open {
    max-width: 1120px;
    margin: 0 auto;
    padding: 14px;
    border-radius: 16px;
    background:
        radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .05) 1px, transparent 1.5px) 0 0 / 5px 5px,
        linear-gradient(135deg, var(--sg-board-2), var(--sg-board));
    box-shadow: 0 30px 60px -20px rgba(50, 12, 4, .55);
    outline: none;
}
.sb-sg-stage.is-open .sb-sg-open { animation: sgUnfold .7s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes sgUnfold {
    from { opacity: 0; transform: perspective(1600px) rotateX(8deg) scale(.94); }
    to { opacity: 1; transform: none; }
}
.sb-sg-spread {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: 6px;
    box-shadow:
        -3px 3px 0 -1px var(--sg-paper-2), -3px 3px 0 0 var(--sg-edge),
        3px 3px 0 -1px var(--sg-paper-2), 3px 3px 0 0 var(--sg-edge),
        -6px 6px 0 -1px var(--sg-paper-2), -6px 6px 0 0 var(--sg-edge),
        6px 6px 0 -1px var(--sg-paper-2), 6px 6px 0 0 var(--sg-edge);
}
.sb-sg-spread::before {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    z-index: 1;
    width: 70px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, rgba(92, 40, 10, .1) 40%, rgba(92, 40, 10, .26) 50%, rgba(92, 40, 10, .1) 60%, transparent);
    pointer-events: none;
}
.sb-sg-page {
    position: relative;
    padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.25rem, 4vw, 3.25rem) 3.5rem;
    color: var(--sg-ink);
    font-family: 'Noto Serif Devanagari', var(--sb-font-heading);
    background: radial-gradient(ellipse at 50% 40%, var(--sg-paper) 55%, var(--sg-paper-2) 100%);
}
.sb-sg-page--title {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .9rem;
    border-radius: 6px 0 0 6px;
    text-align: center;
}
.sb-sg-page--toc { border-radius: 0 6px 6px 0; }
.sb-sg-mangal { margin: 0; color: var(--sg-red); font-size: 1rem; letter-spacing: .06em; }
.sb-sg-title { margin: .25rem 0 0; color: var(--sg-red); font-size: clamp(2.3rem, 5vw, 3.5rem); line-height: 1.2; }
.sb-sg-subtitle { margin: 0; color: var(--sg-muted); font-size: 1.1rem; }
.sb-sg-orn { display: block; width: 150px; height: 16px; margin: .5rem auto; color: var(--sg-gold); }
.sb-sg-orn svg { display: block; width: 100%; height: 100%; }
.sb-sg-stats { margin: 0; color: var(--sg-muted); font-family: var(--sb-font-primary); font-size: var(--sb-text-sm); }
.sb-sg-credits { display: grid; gap: .9rem; margin: .75rem 0 .5rem; }
.sb-sg-credits dt { color: var(--sg-gold); font-family: var(--sb-font-primary); font-size: .8rem; font-weight: 700; letter-spacing: .1em; }
.sb-sg-credits dd { margin: .1rem 0 0; color: var(--sg-red); font-size: 1.3rem; font-weight: 700; }
.sb-sg-start { margin-top: .5rem; }
.sb-sg-folio {
    position: absolute;
    left: 50%;
    bottom: 1.1rem;
    transform: translateX(-50%);
    color: var(--sg-muted);
    font-family: 'Noto Serif Devanagari', serif;
    font-size: .9rem;
}
.sb-sg-toc-title { position: relative; margin: 0 0 1.25rem; padding-bottom: .75rem; color: var(--sg-red); font-size: 1.7rem; text-align: center; }
.sb-sg-toc-title::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 90px;
    height: 1px;
    transform: translateX(-50%);
    background: linear-gradient(90deg, transparent, var(--sg-gold), transparent);
}
.sb-sg-index { margin: 0; padding: 0; list-style: none; counter-reset: none; }
.sb-sg-index li + li { border-top: 1px dotted rgba(184, 134, 11, .45); }
.sb-sg-index a {
    display: grid;
    grid-template-columns: 2rem 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: .55rem .4rem;
    border-radius: 8px;
    color: inherit;
    text-decoration: none;
    transition: background .2s ease;
}
.sb-sg-index a:hover,
.sb-sg-index a:focus-visible { background: rgba(212, 160, 23, .14); }
.sb-sg-index-n {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(139, 26, 26, .35);
    border-radius: 50%;
    color: var(--sg-red);
    font-size: .85rem;
    font-weight: 700;
}
.sb-sg-index-body { display: flex; flex-direction: column; min-width: 0; }
.sb-sg-index-body strong { color: var(--sg-red); font-size: 1rem; font-weight: 600; line-height: 1.45; }
.sb-sg-index-body span { color: var(--sg-muted); font-family: var(--sb-font-primary); font-size: .8rem; line-height: 1.45; }
.sb-sg-index-v { color: var(--sg-gold); font-family: var(--sb-font-primary); font-size: .75rem; font-weight: 600; white-space: nowrap; }
.sb-sg-close {
    display: block;
    margin: 14px auto 0;
    padding: .45rem 1.1rem;
    border: 1px solid rgba(240, 199, 94, .55);
    border-radius: 999px;
    background: transparent;
    color: #f5dfa8;
    font: 600 var(--sb-text-sm) var(--sb-font-primary);
    cursor: pointer;
}
.sb-sg-close:hover { background: rgba(240, 199, 94, .12); }
.sb-sg-about { padding-top: var(--sb-space-2xl); }
.sb-sg-shelf-link { margin-top: var(--sb-space-lg); text-align: center; }

/* ---------- Chapter: a page of the book ---------- */
.sb-sg-read { padding-top: var(--sb-space-xl); }
.sb-sg-read-wrap { max-width: 880px; }
.sb-sg-toolbar {
    position: sticky;
    top: calc(var(--sb-header-height) + 10px);
    z-index: 60;
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: var(--sb-space-lg);
    padding: .4rem .5rem;
    border: 1px solid var(--sb-gray-200);
    border-radius: 999px;
    background: rgba(255, 248, 240, .94);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: var(--sb-shadow-md);
}
[data-theme="dark"] .sb-sg-toolbar { background: rgba(30, 21, 18, .94); border-color: rgba(255, 255, 255, .1); }
.sb-sg-menu { position: relative; }
.sb-sg-menu summary {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .95rem;
    border-radius: 999px;
    background: var(--sb-maroon);
    color: var(--sb-gold-light);
    font-weight: 600;
    font-size: var(--sb-text-sm);
    list-style: none;
    cursor: pointer;
    white-space: nowrap;
}
.sb-sg-menu summary::-webkit-details-marker { display: none; }
.sb-sg-menu ol {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    width: min(92vw, 430px);
    max-height: min(65vh, 560px);
    margin: 0;
    padding: .5rem;
    overflow: auto;
    list-style: none;
    border: 1px solid var(--sg-edge);
    border-radius: 14px;
    background: var(--sg-paper);
    box-shadow: var(--sb-shadow-xl);
}
.sb-sg-menu a {
    display: grid;
    grid-template-columns: 1.9rem 1fr;
    gap: .6rem;
    align-items: center;
    padding: .45rem .5rem;
    border-radius: 9px;
    color: var(--sg-ink);
    text-decoration: none;
}
.sb-sg-menu a:hover { background: rgba(212, 160, 23, .14); }
.sb-sg-menu a[aria-current="page"] { background: rgba(139, 26, 26, .1); }
.sb-sg-menu b { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--sb-maroon); color: var(--sb-gold-light); font-size: .8rem; }
.sb-sg-menu span { display: flex; flex-direction: column; font-family: 'Noto Serif Devanagari', serif; color: var(--sg-red); line-height: 1.4; }
.sb-sg-menu small { color: var(--sg-muted); font-family: var(--sb-font-primary); font-size: .76rem; }
.sb-sg-progress { flex: 1; height: 4px; border-radius: 999px; background: var(--sb-gray-200); overflow: hidden; }
.sb-sg-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--sb-maroon), var(--sb-saffron)); }
.sb-sg-size { display: inline-flex; gap: .3rem; }
.sb-sg-size button {
    width: 38px;
    height: 34px;
    border: 1px solid var(--sb-gray-200);
    border-radius: 999px;
    background: transparent;
    color: var(--sb-gray-700);
    font: 700 .85rem var(--sb-font-primary);
    cursor: pointer;
}
.sb-sg-size button:hover { border-color: var(--sb-gold); color: var(--sb-maroon); }

.sb-sg-book-page {
    position: relative;
    padding: 10px 12px 14px 20px;
    border-radius: 16px;
    background:
        radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .05) 1px, transparent 1.5px) 0 0 / 5px 5px,
        linear-gradient(135deg, var(--sg-board-2), var(--sg-board));
    box-shadow: 0 30px 60px -24px rgba(50, 12, 4, .55);
    perspective: 2200px;
}
.sb-sg-leaf {
    position: relative;
    padding: clamp(1.4rem, 4.5vw, 3.25rem) clamp(1.1rem, 5vw, 4rem) 1.5rem;
    border-radius: 4px 8px 8px 4px;
    background:
        linear-gradient(90deg, rgba(92, 40, 10, .2), rgba(92, 40, 10, 0) 6%),
        radial-gradient(ellipse at 50% 30%, var(--sg-paper) 60%, var(--sg-paper-2) 100%);
    box-shadow:
        2px 2px 0 -.5px var(--sg-paper-2), 2px 2px 0 0 var(--sg-edge),
        4px 4px 0 -.5px var(--sg-paper-2), 4px 4px 0 0 var(--sg-edge),
        6px 6px 0 -.5px var(--sg-paper-2), 6px 6px 0 0 var(--sg-edge);
    color: var(--sg-ink);
    font-family: 'Noto Serif Devanagari', var(--sb-font-heading);
    text-align: center;
    transform-origin: left center;
    will-change: transform;
}
.sb-sg-leaf::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(30, 10, 0, .28));
    opacity: 0;
    pointer-events: none;
    transition: opacity .5s ease;
}
.sb-sg-runhead {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid rgba(184, 134, 11, .35);
    color: var(--sg-gold);
    font-size: .85rem;
    letter-spacing: .05em;
}
.sb-sg-leaf .sb-sg-mangal { font-size: .95rem; }
.sb-sg-leaf-title { margin: .4rem 0 0; color: var(--sg-red); font-size: clamp(1.6rem, 4vw, 2.25rem); line-height: 1.3; }
.sb-sg-leaf-sub { margin: .3rem 0 0; color: var(--sg-gold); font-size: 1.1rem; font-weight: 600; }
.sb-sg-leaf .sb-sg-orn { margin: 1rem auto 1.75rem; }
.sb-sg-text { font-size: calc(1.22rem * var(--sg-scale)); }
.sb-sg-leaf .sb-gita-shloka {
    margin: 0 0 1.25em;
    color: var(--sg-ink);
    font-size: 1em;
    line-height: 2.05;
}
.sb-sg-leaf .sb-gita-shloka:target { background: rgba(212, 160, 23, .18); border-radius: 10px; }
.sb-sg-leaf .sb-gita-speaker {
    display: table;
    margin: 1.6em auto .7em;
    padding: .1em 1.1em;
    border-top: 1px solid rgba(184, 134, 11, .55);
    border-bottom: 1px solid rgba(184, 134, 11, .55);
    color: var(--sg-red);
    font-size: .9em;
    font-weight: 700;
}
.sb-sg-leaf .sb-gita-colophon {
    margin: 2rem 0 0;
    padding-top: 1.1rem;
    border-top: 3px double rgba(184, 134, 11, .5);
    color: var(--sg-muted);
    font-size: calc(.95rem * var(--sg-scale));
    line-height: 1.9;
}
.sb-sg-leaf-foot { display: flex; flex-direction: column; align-items: center; gap: .35rem; margin-top: 2rem; }
.sb-sg-credit-line { color: var(--sg-muted); font-family: var(--sb-font-primary); font-size: .78rem; }
.sb-sg-leaf-foot .sb-sg-folio { position: static; transform: none; color: var(--sg-red); font-weight: 600; }
.sb-sg-leaf-foot .sb-sg-folio::before { content: '— '; }
.sb-sg-leaf-foot .sb-sg-folio::after { content: ' —'; }

/* Page turn (js/shivgita.js adds these before following a pager link). */
.sb-sg-leaf.is-turn-next { animation: sgTurnNext .5s cubic-bezier(.5, 0, .75, .4) forwards; }
.sb-sg-leaf.is-turn-prev { transform-origin: right center; animation: sgTurnPrev .5s cubic-bezier(.5, 0, .75, .4) forwards; }
.sb-sg-leaf.is-turn-next::after,
.sb-sg-leaf.is-turn-prev::after { opacity: 1; }
.sb-sg-leaf.is-enter-next { animation: sgEnterNext .45s ease-out; }
.sb-sg-leaf.is-enter-prev { animation: sgEnterPrev .45s ease-out; }
@keyframes sgTurnNext { to { transform: rotateY(-80deg); opacity: .35; } }
@keyframes sgTurnPrev { to { transform: rotateY(80deg); opacity: .35; } }
@keyframes sgEnterNext { from { transform: translateX(22px) rotateY(-6deg); opacity: .3; } }
@keyframes sgEnterPrev { from { transform: translateX(-22px) rotateY(6deg); opacity: .3; } }

.sb-sg-pager { margin-top: var(--sb-space-xl); }
.sb-sg-pager a {
    position: relative;
    background: radial-gradient(ellipse at 50% 40%, var(--sg-paper) 60%, var(--sg-paper-2) 100%);
    border-color: var(--sg-edge);
    overflow: hidden;
}
.sb-sg-pager a::after {
    content: '';
    position: absolute;
    top: 0;
    width: 22px;
    height: 22px;
    background: linear-gradient(225deg, var(--sb-offwhite) 50%, var(--sg-edge) 50%);
    box-shadow: -2px 2px 4px rgba(60, 20, 5, .15);
}
.sb-sg-pager .sb-gita-pager-next::after { right: 0; }
.sb-sg-pager .sb-gita-pager-prev::after { left: 0; transform: scaleX(-1); }
.sb-sg-pager strong { font-family: 'Noto Serif Devanagari', serif; color: var(--sg-red); }

[data-theme="dark"] .sb-sg-pager a { background: var(--sg-paper); border-color: var(--sg-edge); color: var(--sg-ink); }
[data-theme="dark"] .sb-sg-pager a::after { background: linear-gradient(225deg, var(--sb-white) 50%, var(--sg-edge) 50%); }
[data-theme="dark"] .sb-sg-leaf .sb-gita-shloka { color: var(--sg-ink); }
[data-theme="dark"] .sb-sg-page,
[data-theme="dark"] .sb-sg-leaf { box-shadow: none; }
[data-theme="dark"] .sb-sg-spread { box-shadow: 0 0 0 1px var(--sg-edge); }
[data-theme="dark"] .sb-sg-spread::before { background: linear-gradient(90deg, transparent, rgba(0, 0, 0, .25) 50%, transparent); }

/* ---------- Tablet and mobile ---------- */
@media (max-width: 900px) {
    .sb-sg-spread { grid-template-columns: 1fr; gap: 12px; box-shadow: none; }
    .sb-sg-spread::before { display: none; }
    .sb-sg-page {
        border-radius: 6px;
        box-shadow:
            3px 3px 0 -1px var(--sg-paper-2), 3px 3px 0 0 var(--sg-edge),
            6px 6px 0 -1px var(--sg-paper-2), 6px 6px 0 0 var(--sg-edge);
    }
    .sb-sg-page--title { padding-top: 2.25rem; }
    .sb-sg-stage.is-opening .sb-sg-obj { transform: rotateY(0) rotateX(0); }
}
@media (max-width: 768px) {
    .sb-sg-toolbar { top: calc(var(--sb-header-height-mobile) + 8px); }
}
@media (max-width: 600px) {
    .sb-sg-open { padding: 8px; border-radius: 12px; }
    .sb-sg-page { padding: 1.75rem 1rem 3.25rem; }
    .sb-sg-index a { grid-template-columns: 1.75rem 1fr; gap: .6rem; }
    .sb-sg-index-n { width: 1.75rem; height: 1.75rem; }
    .sb-sg-index-v { grid-column: 2; justify-self: start; margin-top: -.2rem; }
    .sb-sg-book-page { padding: 6px 8px 10px 12px; border-radius: 12px; }
    .sb-sg-leaf { padding: 1.25rem .9rem 1.25rem 1.1rem; }
    .sb-sg-text { font-size: calc(1.08rem * var(--sg-scale)); }
    .sb-sg-leaf .sb-gita-shloka { line-height: 1.95; }
    .sb-sg-runhead { margin-bottom: 1rem; font-size: .78rem; }
    .sb-sg-toolbar { gap: .5rem; padding: .35rem .4rem; }
    .sb-sg-menu summary { padding: .45rem .8rem; }
    .sb-sg-h1-title { display: block; font-size: .7em; }
}

@media (prefers-reduced-motion: reduce) {
    .sb-sg-obj, .sb-sg-lid { transition: none; }
    .sb-sg-stage.is-open .sb-sg-open,
    .sb-sg-leaf.is-turn-next, .sb-sg-leaf.is-turn-prev,
    .sb-sg-leaf.is-enter-next, .sb-sg-leaf.is-enter-prev { animation: none; }
}

@media print {
    .sb-sg-toolbar, .sb-sg-pager, .sb-sg-closed, .sb-sg-close { display: none !important; }
    .sb-sg-js .sb-sg-stage .sb-sg-open { display: block !important; }
    .sb-sg-open, .sb-sg-book-page { padding: 0; background: none; box-shadow: none; }
    .sb-sg-leaf, .sb-sg-page { box-shadow: none; background: #fff; color: #000; }
}
