/* ==========================================================
   READER 2

   Clean Reader implementation.

   Structural hierarchy:

   Reader 2
       pageContainer
           page
               running header
               chapter header
               chapter content

   DESIGN MODEL:

   --tb-reader2-page-width is the master dimension.

   Current preferred baseline:
       725px

   WIDTH MODES:
       Wide    800px — open reading mode
       Narrow  725px — open reading mode
       Page    725px — white pseudo-page mode

   Reader 2 user typography is controlled independently by:

       data-tb-reader2-font-step="-2"
       data-tb-reader2-font-step="-1"
       data-tb-reader2-font-step="0"
       data-tb-reader2-font-step="1"
       data-tb-reader2-font-step="2"

   The default step 0 preserves the current typography.
   ========================================================== */


/* ==========================================================
   READER ROOT
   ========================================================== */

.tb-reader2 {
    box-sizing: border-box;

    width: 100%;

    margin: 0;
    padding: 0;

    border: 0;

    background: transparent;
}

.tb-reader2[hidden] {
    display: none !important;
}


/* ==========================================================
   READER 2 USER TYPE SCALE
   ========================================================== */

.tb-reader2 {
    --tb-reader2-page-width: 725px;

    --tb-reader2-title-font-family:
            var(
                    --tb-reader2-admin-title-font-family,
                    "Libre Caslon Display",
                    Georgia,
                    serif
            );

    --tb-reader2-body-adjust: 0px;
    --tb-reader2-title-adjust: 0px;
    --tb-reader2-admin-title-adjust:
            var(--tb-reader2-admin-title-adjust-value, 0px);
    --tb-reader2-running-adjust: 0px;

    --tb-reader2-news-intro-adjust: 0px;
    --tb-reader2-news-head-adjust: 0px;
    --tb-reader2-news-body-adjust: 0px;
}

.tb-reader2[data-tb-reader2-font-step="-2"] {
    --tb-reader2-body-adjust: -2px;
    --tb-reader2-title-adjust: -3px;
    --tb-reader2-running-adjust: -1px;

    --tb-reader2-news-intro-adjust: -2px;
    --tb-reader2-news-head-adjust: -2px;
    --tb-reader2-news-body-adjust: -2px;
}

.tb-reader2[data-tb-reader2-font-step="-1"] {
    --tb-reader2-body-adjust: -1px;
    --tb-reader2-title-adjust: -1.5px;
    --tb-reader2-running-adjust: -0.5px;

    --tb-reader2-news-intro-adjust: -1px;
    --tb-reader2-news-head-adjust: -1px;
    --tb-reader2-news-body-adjust: -1px;
}

.tb-reader2[data-tb-reader2-font-step="0"] {
    --tb-reader2-body-adjust: 0px;
    --tb-reader2-title-adjust: 0px;
    --tb-reader2-running-adjust: 0px;

    --tb-reader2-news-intro-adjust: 0px;
    --tb-reader2-news-head-adjust: 0px;
    --tb-reader2-news-body-adjust: 0px;
}

.tb-reader2[data-tb-reader2-font-step="1"] {
    --tb-reader2-body-adjust: 1px;
    --tb-reader2-title-adjust: 1.5px;
    --tb-reader2-running-adjust: 0.5px;

    --tb-reader2-news-intro-adjust: 1px;
    --tb-reader2-news-head-adjust: 1px;
    --tb-reader2-news-body-adjust: 1px;
}

.tb-reader2[data-tb-reader2-font-step="2"] {
    --tb-reader2-body-adjust: 2px;
    --tb-reader2-title-adjust: 3px;
    --tb-reader2-running-adjust: 1px;

    --tb-reader2-news-intro-adjust: 2px;
    --tb-reader2-news-head-adjust: 2px;
    --tb-reader2-news-body-adjust: 2px;
}


/* ==========================================================
   PAGE CONTAINER
   ========================================================== */

.tb-reader2__pageContainer {
    box-sizing: border-box;

    display: flex;
    justify-content: center;
    align-items: flex-start;

    width: 100%;

    margin: 0;

    padding:
            3rem
            3rem
            6rem;

    background: transparent;

    transition:
            background-color 540ms ease;
}


/* ==========================================================
   READER 2 — LAMP BACKDROP TRANSITION
   ========================================================== */

html[data-tb-reader-version="reader2"]
body::before {
    position: fixed;
    z-index: 40;
    inset: 0;

    content: "";

    pointer-events: none;

    opacity: 0;

    background-color:
            var(--fr-readingLamp-outer-bg, transparent);

    background-image:
            radial-gradient(
                    ellipse 30rem 38rem at calc(50% + 405px) 54rem,
                    rgb(255 255 255 / 16%) 0,
                    rgb(255 255 255 / 7%) 30%,
                    transparent 72%
            );

    transition: none;
}

html[data-tb-reader-version="reader2"]
body.fr-readingLamp-active::before {
    opacity: 1;

    transition:
            opacity 360ms ease,
            background-color 500ms ease;
}


/* ==========================================================
   READING SURFACE
   ========================================================== */

.tb-reader2__page {
    --tb-reader2-width-delta:
            calc(var(--tb-reader2-page-width) - 725px);


    /* ------------------------------------------------------
       INTERNAL READING MARGINS
       ------------------------------------------------------ */

    --tb-reader2-page-padding-x:
            clamp(
                    40px,
                    calc(
                            44px +
                            (var(--tb-reader2-width-delta) / 18)
                    ),
                    48px
            );


    /* ------------------------------------------------------
       VERTICAL READING MARGINS
       ------------------------------------------------------ */

    --tb-reader2-page-padding-top:
            clamp(
                    32px,
                    calc(
                            34px +
                            (var(--tb-reader2-width-delta) / 30)
                    ),
                    37px
            );

    --tb-reader2-page-padding-bottom:
            clamp(
                    46px,
                    calc(
                            50px +
                            (var(--tb-reader2-width-delta) / 20)
                    ),
                    54px
            );


    /* ------------------------------------------------------
       BODY TYPE
       ------------------------------------------------------ */

    --tb-reader2-body-base-size:
            clamp(
                    17.5px,
                    calc(
                            18px +
                            (var(--tb-reader2-width-delta) / 150)
                    ),
                    18.5px
            );

    --tb-reader2-body-size:
            calc(
                    var(--tb-reader2-body-base-size) +
                    var(--tb-reader2-body-adjust)
            );

    --tb-reader2-body-line-height:
            1.54;


    /* ------------------------------------------------------
       CHAPTER TITLE
       ------------------------------------------------------ */

    --tb-reader2-title-base-size:
            clamp(
                    52px,
                    calc(
                            54px +
                            (var(--tb-reader2-width-delta) / 30)
                    ),
                    56px
            );

    --tb-reader2-title-size:
            calc(
                    var(--tb-reader2-title-base-size) +
                    var(--tb-reader2-title-adjust) +
                    var(--tb-reader2-admin-title-adjust)
            );


    /* ------------------------------------------------------
       RUNNING HEADER
       ------------------------------------------------------ */

    --tb-reader2-running-base-size:
            clamp(
                    13.5px,
                    calc(
                            14px +
                            (var(--tb-reader2-width-delta) / 150)
                    ),
                    14.5px
            );

    --tb-reader2-running-size:
            calc(
                    var(--tb-reader2-running-base-size) +
                    var(--tb-reader2-running-adjust)
            );


    /* ------------------------------------------------------
       CHAPTER HEADER SPACING
       ------------------------------------------------------ */

    --tb-reader2-title-space-top:
            clamp(
                    52px,
                    calc(
                            58px +
                            (var(--tb-reader2-width-delta) / 14)
                    ),
                    64px
            );

    --tb-reader2-title-space-bottom:
            clamp(
                    43px,
                    calc(
                            48px +
                            (var(--tb-reader2-width-delta) / 15)
                    ),
                    53px
            );


    box-sizing: border-box;

    flex:
            0
            0
            var(--tb-reader2-page-width);

    width:
            var(--tb-reader2-page-width);

    max-width: 100%;

    margin: 0;

    padding:
            var(--tb-reader2-page-padding-top)
            var(--tb-reader2-page-padding-x)
            var(--tb-reader2-page-padding-bottom);

    border: 1px solid transparent;

    background: transparent;

    box-shadow:
            0 3px 14px rgb(0 0 0 / 0%);

    color: #24211d;

    transition:
            width 540ms ease,
            flex-basis 540ms ease,
            padding-left 540ms ease,
            padding-right 540ms ease,
            padding-top 540ms ease,
            padding-bottom 540ms ease,
            background-color 3000ms ease,
            border-color 540ms ease,
            box-shadow 540ms ease;
}


html.fr-books-directChapterLoading .tb-reader2__page {
    transition: none;
}


/* ==========================================================
   READING LAMP — KEEP ENTRY AT ORIGINAL SPEED
   ========================================================== */

html[data-tb-reader-version="reader2"]
body.fr-readingLamp-active
.tb-reader2__page {
    transition:
            width 360ms ease,
            flex-basis 360ms ease,
            padding-left 360ms ease,
            padding-right 360ms ease,
            padding-top 360ms ease,
            padding-bottom 360ms ease,
            background-color 360ms ease,
            border-color 360ms ease,
            box-shadow 360ms ease;
}

html[data-tb-reader-version="reader2"]
body.fr-readingLamp-active
.tb-reader2__pageContainer {
    transition:
            background-color 360ms ease;
}


/* ==========================================================
   PAGE MODE — PSEUDO PAGE
   ========================================================== */

.tb-reader2[data-tb-reader2-width="page"]
.tb-reader2__page {
    border-color: #d7d2cb;

    background-color: #ffffff;

    box-shadow:
            0 3px 14px rgb(0 0 0 / 8%);
}


/* ==========================================================
   REDUCED MOTION
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .tb-reader2__page,
    .tb-reader2__pageContainer,
    html[data-tb-reader-version="reader2"]
    body::before,
    html[data-tb-reader-version="reader2"]
    body.fr-readingLamp-active::before {
        transition: none;
    }

}


/* ==========================================================
   RUNNING HEADER
   ========================================================== */

.tb-reader2__runningHeader {
    display: flex;
    align-items: baseline;
    justify-content: space-between;

    gap: 2rem;

    width: 100%;

    margin: 0;
    padding: 0;

    color: #66615b;

    font-family:
            "Iowan Old Style",
            "Palatino Linotype",
            Palatino,
            Georgia,
            serif;

    font-size:
            var(--tb-reader2-running-size);

    font-weight: 400;
    line-height: 1.2;
}

.tb-reader2__bookTitle {
    flex: 1 1 auto;

    min-width: 0;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tb-reader2__pageNumber {
    flex: 0 0 auto;

    white-space: nowrap;
}


/* ==========================================================
   CHAPTER HEADER
   ========================================================== */

.tb-reader2__chapterHeader {
    margin: 0;

    padding:
            var(--tb-reader2-title-space-top)
            0
            var(--tb-reader2-title-space-bottom);
}

.tb-reader2__chapterTitle {
    margin: 0;
    padding: 0;

    color: #24211d;

    font-family:
            var(--tb-reader2-title-font-family) !important;

    font-size:
            var(--tb-reader2-title-size);

    font-weight: 600;
    line-height: 1.15;

    letter-spacing: 0;

    text-align: center;
}


/* ==========================================================
   CONTENT
   ========================================================== */

.tb-reader2__content {
    margin: 0;
    padding: 0;

    color: #24211d;

    font-family:
            "Iowan Old Style",
            "Palatino Linotype",
            Palatino,
            Georgia,
            serif;

    font-size:
            var(--tb-reader2-body-size);

    font-weight: 400;

    line-height:
            var(--tb-reader2-body-line-height);

    text-align: justify;

    hyphens: auto;
    -webkit-hyphens: auto;
}


/* ==========================================================
   PARAGRAPHS
   ========================================================== */

.tb-reader2__content p {
    margin: 0;

    hyphens: auto;
    -webkit-hyphens: auto;

    overflow-wrap: normal;
}

.tb-reader2__content p + p {
    text-indent: 1.45em;
}


/* ==========================================================
   NEWSPAPER CONTENT — READER 1 SPECIFICATIONS
   ========================================================== */

.tb-reader2
.tb-reader2__content.fr-newspaper {
    color: #24211d;
}


/* ----------------------------------------------------------
   NEWSINTRO
   ---------------------------------------------------------- */

.tb-reader2
.tb-reader2__content.fr-newspaper
p.fr-news-intro {
    margin-top: 0 !important;
    margin-right: 3.5em !important;
    margin-bottom: 1.5em !important;
    margin-left: 2rem !important;

    color: inherit;

    font-family:
            "Iowan Old Style",
            "Palatino Linotype",
            Palatino,
            Georgia,
            serif !important;

    font-size:
            calc(
                    18px +
                    var(--tb-reader2-news-intro-adjust)
            ) !important;

    font-weight: 400;
    line-height: 1.56 !important;

    text-align: center !important;
    text-indent: 0 !important;

    hyphens: none !important;
    -webkit-hyphens: none !important;
}

.tb-reader2
.tb-reader2__content.fr-newspaper
p.fr-news-intro:last-of-type {
    margin-bottom: 0 !important;
}


/* ----------------------------------------------------------
   NEWSHEAD
   ---------------------------------------------------------- */

.tb-reader2
.tb-reader2__content.fr-newspaper
.fr-news-head {
    margin-top: 2.5em !important;
    margin-right: 0 !important;
    margin-bottom: 0.75em !important;
    margin-left: 0 !important;

    padding: 0;

    color: #24211d;

    font-family:
            "IBM Plex Sans Condensed",
            Arial,
            Helvetica,
            sans-serif !important;

    font-size:
            calc(
                    20px +
                    var(--tb-reader2-news-head-adjust)
            ) !important;

    font-weight: 700 !important;
    line-height: 1.56 !important;

    text-align: center !important;
    text-indent: 0 !important;

    hyphens: none !important;
    -webkit-hyphens: none !important;
}

.tb-reader2
.tb-reader2__content.fr-newspaper
.fr-news-head
* {
    font-family: inherit !important;
    font-size: inherit;
    font-weight: inherit;
}


/* ----------------------------------------------------------
   NEWS BODY
   ---------------------------------------------------------- */

.tb-reader2
.tb-reader2__content.fr-newspaper
.fr-news-body {
    color: #24211d;

    font-family:
            "IBM Plex Sans Condensed",
            Arial,
            Helvetica,
            sans-serif !important;

    font-size:
            calc(
                    16.8px +
                    var(--tb-reader2-news-body-adjust)
            ) !important;

    font-weight: 400 !important;
    font-style: normal;

    line-height: 1.5 !important;

    text-align: justify !important;

    hyphens: auto !important;
    -webkit-hyphens: auto !important;
}

.tb-reader2
.tb-reader2__content.fr-newspaper
.fr-news-body
* {
    font-family: inherit !important;
}

.tb-reader2
.tb-reader2__content.fr-newspaper
p.fr-news-body {
    margin-top: 0 !important;
    margin-right: 3.5em !important;
    margin-bottom: 0 !important;
    margin-left: 2rem !important;

    text-indent: 1.4em !important;
}


/* ----------------------------------------------------------
   AIR AFTER NEWSPAPER COPY
   ---------------------------------------------------------- */

.tb-reader2
.tb-reader2__content.fr-newspaper
.fr-news-body
+
:not(.fr-news-body) {
    margin-top: 2em !important;
}


/* ----------------------------------------------------------
   SUBHEAD AFTER NEWS COPY
   ---------------------------------------------------------- */

.tb-reader2
.tb-reader2__content.fr-newspaper
.fr-news-body
+
h3 {
    padding-top: 3rem !important;
}


/* ----------------------------------------------------------
   H3 INSIDE NEWSPAPER MATERIAL
   ---------------------------------------------------------- */

.tb-reader2
.tb-reader2__content.fr-newspaper
h3 {
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: 700 !important;

    text-align: center !important;
    text-indent: 0 !important;
}


/* ==========================================================
   STORY INTRO
   ========================================================== */

.tb-reader2
.tb-reader2__content
.fr-storyIntro,

.tb-reader2
.tb-reader2__content
[data-story-intro] {
    margin:
            0
            0
            1.55em;

    font-family:
            "Iowan Old Style",
            "Palatino Linotype",
            Palatino,
            Georgia,
            serif;

    font-size: 1em;
    font-weight: 400;
    font-style: italic;
    line-height: 1.48;

    text-align: left;
    text-indent: 0;
}


/* ==========================================================
   HEADINGS INSIDE CHAPTER CONTENT
   ========================================================== */

.tb-reader2__content h2,
.tb-reader2__content h3,
.tb-reader2__content h4,
.tb-reader2__content h5,
.tb-reader2__content h6 {
    margin:
            2.4em
            0
            0.8em;

    padding: 0;

    color: inherit;

    font-family: inherit;
    font-weight: 600;
    line-height: 1.2;

    text-align: left;

    break-after: avoid;
}

.tb-reader2__content h2 {
    font-size: 1.45em;
}

.tb-reader2__content h3 {
    font-size: 1.25em;
}

.tb-reader2__content h4,
.tb-reader2__content h5,
.tb-reader2__content h6 {
    font-size: 1em;
}

.tb-reader2__content h2 + p,
.tb-reader2__content h3 + p,
.tb-reader2__content h4 + p,
.tb-reader2__content h5 + p,
.tb-reader2__content h6 + p {
    text-indent: 0;
}


/* ==========================================================
   LISTS
   ========================================================== */

.tb-reader2__content ul,
.tb-reader2__content ol {
    margin:
            1.15em
            0
            1.15em
            1.8em;

    padding: 0;

    text-align: left;
}

.tb-reader2__content li {
    margin: 0.35em 0;
}

.tb-reader2__content li > p {
    margin: 0;
    text-indent: 0;
}


/* ==========================================================
   BLOCKQUOTES
   ========================================================== */

.tb-reader2__content blockquote {
    margin:
            1.8em
            1.6em;

    padding:
            0
            0
            0
            1.25em;

    border-left: 1px solid #bbb3aa;

    color: #4f4a44;

    font-style: italic;

    text-align: left;
}

.tb-reader2__content blockquote p {
    text-indent: 0;
}

.tb-reader2__content blockquote p + p {
    margin-top: 0.8em;
}


/* ==========================================================
   LINKS
   ========================================================== */

.tb-reader2__content a {
    color: inherit;

    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.12em;
}

.tb-reader2__content a:hover {
    text-decoration-thickness: 2px;
}


/* ==========================================================
   ROTATOR QUOTE MARKERS
   ========================================================== */

.tb-reader2__content a[href$="#rotator-quote"],
.tb-reader2__content a[href$="#rotator-quote"]:hover,
.tb-reader2__content a[href$="#rotator-quote"]:focus,
.tb-reader2__content a[href$="#rotator-quote"]:active {
    color: inherit;

    text-decoration: none;

    cursor: text;
}


/* ==========================================================
   DIVIDERS
   ========================================================== */

.tb-reader2__content hr {
    width: 34%;

    margin:
            3.2em
            auto;

    border: 0;
    border-top: 1px solid #bdb6ae;
}


/* ==========================================================
   PREFORMATTED / CODE
   ========================================================== */

.tb-reader2__content pre {
    box-sizing: border-box;

    max-width: 100%;

    margin:
            1.5em
            0;

    padding: 1.2em;

    overflow-x: auto;

    background: #f5f3f0;

    font-family:
            ui-monospace,
            SFMono-Regular,
            Menlo,
            Monaco,
            Consolas,
            monospace;

    font-size: 0.78em;
    line-height: 1.45;

    text-align: left;

    hyphens: none;
}

.tb-reader2__content code {
    font-family:
            ui-monospace,
            SFMono-Regular,
            Menlo,
            Monaco,
            Consolas,
            monospace;
}


/* ==========================================================
   IMAGES / FIGURES
   ========================================================== */

.tb-reader2__content figure {
    max-width: 100%;

    margin:
            2.6rem
            0;
}

.tb-reader2__content img {
    display: block;

    max-width: 100%;
    height: auto;

    margin-inline: auto;
}

.tb-reader2__content figcaption {
    margin-top: 0.8rem;

    color: #716b64;

    font-size: 0.82em;
    line-height: 1.35;

    text-align: center;
}


/* ==========================================================
   GHOST EMBEDS / CARDS
   ========================================================== */

.tb-reader2__content > * {
    max-width: 100%;
}

.tb-reader2__content iframe,
.tb-reader2__content video {
    max-width: 100%;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 760px) {

    .tb-reader2__pageContainer {
        padding:
                1.5rem
                1rem
                4rem;
    }

    .tb-reader2__page {
        flex-basis: auto;

        width: 100%;

        margin: 0;

        padding:
                3rem
                2.5rem
                4rem;
    }

    .tb-reader2__chapterHeader {
        padding:
                4.8rem
                0
                4rem;
    }

    .tb-reader2__content blockquote {
        margin-right: 0.8em;
        margin-left: 0.8em;
    }

}
