body.dowty-marketing-library-page {
    margin: 0;
    background: #f6f1e7;
}

/* The room frames the collection; the interactive books remain real page content. */
body.dowty-marketing-library-page.dowty-library-room {
    background-color: #14251c;
    background-image: linear-gradient(#071b1217, #071b122b), url('../images/library-room-v1.webp');
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}
.dowty-library-room .dowty-library {
    max-width: 1120px;
    padding-top: clamp(2rem, 5vh, 4rem);
    padding-bottom: clamp(2rem, 5vh, 4rem);
}
.dowty-library-room .dowty-library__hero {
    box-shadow: inset 0 0 0 7px #c9ab7010, 0 -8px 26px #020e0a45;
}
.dowty-library-room .dowty-library__bookcase {
    box-shadow: inset 0 0 0 4px #d0a47718, 0 22px 42px #020e0aa6;
}
.dowty-library-room .dowty-library > .dowty-library__hint {
    padding: .7rem 1rem;
    border: 1px solid #c9ab7045;
    border-radius: .5rem;
    background: #102f25f2;
    color: #f1dfb9;
    box-shadow: 0 4px 12px #020e0a30;
}
@media (max-width: 700px) {
    body.dowty-marketing-library-page.dowty-library-room {
        background-image: linear-gradient(180deg, #14251c00 55%, #14251c 100%), url('../images/library-room-v1.webp');
        background-size: auto 780px;
        background-position: center top;
        background-attachment: scroll;
    }
    .dowty-library-room .dowty-library { padding-top: 1.5rem; padding-bottom: 1.5rem; }
}
@media print {
    body.dowty-marketing-library-page.dowty-library-room { background: #fff; }
}

.dowty-library {
    --ink: #132b44;
    --brass: #775119;
    --line: #ded1ba;
    box-sizing: border-box;
    max-width: 1240px;
    min-height: 70vh;
    margin-inline: auto;
    padding: clamp(1rem, 4vw, 3rem);
    color: var(--ink);
    font: 1rem/1.55 system-ui, -apple-system, "Segoe UI", sans-serif;
}

.dowty-library *, .dowty-library *::before, .dowty-library *::after { box-sizing: inherit; }
.dowty-library [hidden], .dowty-library-admin [hidden] { display: none !important; }
.dowty-library a { color: inherit; }
.dowty-library :is(a, button, [tabindex]):focus-visible { outline: 3px solid #936018; outline-offset: 4px; }

.dowty-library__hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    overflow: hidden;
    padding: clamp(1.5rem, 4vw, 3rem);
    border: 1px solid #47604d;
    border-radius: 1.4rem 1.4rem 0 0;
    background: radial-gradient(ellipse at top right, #35544170, transparent 70%), repeating-linear-gradient(90deg, transparent 0 119px, #e0c28b09 120px 121px), #102f25;
    color: #fff8eb;
    box-shadow: inset 0 0 0 7px #c9ab7010;
}
.dowty-library__welcome { position: relative; z-index: 1; }
.dowty-library__hero-art { flex: 0 0 auto; width: clamp(100px, 16vw, 170px); height: auto; filter: drop-shadow(0 10px 14px #061b18aa); }
.dowty-library__topics { display: flex; flex-wrap: wrap; gap: .7rem; padding-top: .7rem; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #e5d4af; }
.dowty-library__topics span { padding: 4px 8px; border: 1px solid #cfb57935; border-radius: 3px; background: #ffffff04; }
.dowty-library__hero h1,
.dowty-library__reading h1,
.dowty-library__empty h1 {
    margin: .15em 0 .2em;
    color: inherit;
    font: 500 clamp(2rem, 5.5vw, 4rem)/1.05 Georgia, serif;
    overflow-wrap: anywhere;
}
.dowty-library__hero p { margin: .55rem 0 0; }
.dowty-library__eyebrow {
    margin: 0;
    color: var(--brass);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.dowty-library__hero .dowty-library__eyebrow { color: #ecd29c; }
.dowty-library__bookcase {
    --shelf-height: 342px;
    --book-height: 232px;
    position: relative;
    padding: 0 18px 24px;
    border: 1px solid #4e3021;
    border-top: 6px solid #ac8054;
    border-radius: 0 0 1rem 1rem;
    background: repeating-linear-gradient(92deg, #ffffff04 0 2px, transparent 3px 11px), linear-gradient(90deg, #65442d, #40281e 2%, #7c5636 3%, #533724 97%, #352117 98%, #765134);
    box-shadow: inset 0 0 0 4px #d0a47718, 0 18px 38px #35211526;
}
.dowty-library__case-label { display: flex; justify-content: space-between; gap: 1rem; padding: 15px 8px; color: #e7cba0; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }
.dowty-library__case-label span:first-child { font-weight: 800; }
.dowty-library__shelves {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: var(--shelf-height);
    align-items: stretch;
    gap: 0 clamp(.8rem, 2vw, 1.4rem);
    margin: 0;
    padding: 0 18px;
    list-style: none;
    border: 1px solid #261a13;
    border-radius: 3px;
    background: repeating-linear-gradient(to bottom, #140d08a0 0, transparent 45px, transparent calc(var(--shelf-height) - 25px), #21150e70 calc(var(--shelf-height) - 24px), #d2a978 calc(var(--shelf-height) - 19px), #8f603b calc(var(--shelf-height) - 15px), #6d452b calc(var(--shelf-height) - 4px), #2d1b13 calc(var(--shelf-height) - 3px), #1b100b var(--shelf-height)), repeating-linear-gradient(89deg, #ffffff03 0 2px, transparent 2px 9px), linear-gradient(90deg, #39261c, #493025 45%, #39261d);
    box-shadow: inset 8px 0 16px #130c0870, inset -8px 0 16px #130c0870;
}
.dowty-library__shelves li {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    min-width: 0;
    padding-bottom: 28px;
}
.dowty-library a.dowty-library__book {
    position: relative;
    display: grid;
    grid-template-rows: var(--book-height) minmax(44px, auto);
    align-items: end;
    gap: 12px;
    width: 100%;
    max-width: 190px;
    padding: 0;
    color: #f9efd9;
    text-decoration: none;
    transition: transform .18s ease;
}
.dowty-library__book:hover, .dowty-library__book:focus-visible { transform: translateY(-.25rem); }
.dowty-library__book:focus-visible { outline-color: #f6d899; }
.dowty-library__cover {
    position: relative;
    display: block;
    width: 100%;
    height: var(--book-height);
    min-height: 0;
    filter: drop-shadow(8px 9px 5px #100906a0);
}
.dowty-library__cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; transform: perspective(800px) rotateY(-6deg); transform-origin: center bottom; }
.dowty-library__live-badge { position: absolute; z-index: 1; top: 0; left: 50%; transform: translate(-50%, -65%); white-space: nowrap; padding: 4px 10px; border: 1px solid #dac28a; border-radius: 3px; background: #173e2d; color: #f5dfad; font-size: .63rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 3px 5px #0005; }
.dowty-library__label {
    align-self: start;
    justify-self: stretch;
    position: relative;
    display: grid;
    align-items: center;
    min-height: 44px;
    padding: .35rem .8rem;
    border: 1px solid #ead19b;
    border-radius: .25rem;
    background: linear-gradient(140deg, #ead5a0, #c6a36d 55%, #e5c68f);
    box-shadow: inset 0 0 0 2px #3e291323, 0 3px 5px #110b0760;
    color: #302319;
    font-size: .76rem;
    font-weight: 750;
    line-height: 1.25;
    text-align: center;
    overflow-wrap: anywhere;
}
.dowty-library__label::before, .dowty-library__label::after { content: ''; position: absolute; top: 50%; width: 3px; height: 3px; margin-top: -1px; border-radius: 50%; background: #72512b; box-shadow: 0 1px 0 #fff6; }
.dowty-library__label::before { left: 5px; }.dowty-library__label::after { right: 5px; }
.dowty-library__empty {
    margin: 0;
    padding: clamp(1rem, 4vw, 2.5rem);
    border: 1px solid var(--line);
    border-radius: .7rem;
    background: #fffaf0;
}
.dowty-library__hero + .dowty-library__empty { border-radius: 0 0 .7rem .7rem; }
a.dowty-library__back { display: inline-flex; align-items: center; gap: 14px; max-width: 100%; min-height: 76px; margin-block-end: 1.1rem; padding: 9px 18px 9px 10px; border: 1px solid #a58a53; border-radius: 12px; background: linear-gradient(120deg, #193e30, #0d291f); color: #fff2d4; box-shadow: 0 5px 12px #16332424, inset 0 0 0 3px #d4b6780c; font-family: system-ui, sans-serif; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
a.dowty-library__back:hover { color: #fff9e8; transform: translateY(-2px); box-shadow: 0 8px 18px #16332435; }
a.dowty-library__back:focus-visible { outline: 3px solid #9b702d; outline-offset: 4px; }
.dowty-library__back-art { display: grid; place-items: center; flex: none; width: 56px; height: 56px; border-radius: 8px; background: #ffffff08; }
.dowty-library__back-art img { display: block; width: 56px; height: 56px; }
.dowty-library__back-copy { display: grid; gap: 3px; text-align: left; }
.dowty-library__back-copy strong { color: inherit; font-size: 15px; line-height: 1.25; }
.dowty-library__back-copy small { color: #ddc898; font-size: 11px; line-height: 1.3; }
.dowty-library__back-arrow { display: grid; place-items: center; width: 28px; height: 28px; margin-left: 8px; border: 1px solid #d4b67855; border-radius: 50%; color: #e1c48a; font-size: 18px; }
.tools a.dowty-library__back { min-height: 50px; margin: 0; padding: 4px 10px 4px 4px; gap: 8px; }
.tools .dowty-library__back-art, .tools .dowty-library__back-art img { width: 40px; height: 40px; }
.tools .dowty-library__back-copy strong { font-size: 13px; }.tools .dowty-library__back-copy small { font-size: 10px; }
.tools .dowty-library__back-arrow { margin-left: 0; }
.tools a.dowty-library__back span { flex: none; }
@media (min-width: 701px) and (max-width: 1000px) { .dowty-library__shelves { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) {
    .dowty-library__hero { gap: .6rem; }.dowty-library__hero-art { width: 95px; }
    .dowty-library__bookcase { --shelf-height: 312px; --book-height: 205px; padding-inline: 10px; }
    .dowty-library__shelves { padding-inline: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
    .dowty-library__case-label { font-size: .58rem; letter-spacing: .08em; }
}
@media (max-width: 420px) { .dowty-library__hero-art { width: 70px; }.dowty-library__hero h1 { font-size: 2rem; }.dowty-library__bookcase { --shelf-height: 290px; --book-height: 178px; }.dowty-library__label { font-size: .69rem; } }
@media (prefers-reduced-motion: reduce) { .dowty-library__book, a.dowty-library__back { transition: none; }.dowty-library__book:hover, a.dowty-library__back:hover { transform: none; } }
.dowty-library__reading {
    padding: clamp(.9rem, 3vw, 2rem);
    border: 1px solid var(--line);
    border-radius: 1rem;
    background: #fffaf0;
}
.dowty-library__reading-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1.5rem;
}
.dowty-library__reading h1 { font-size: clamp(1.65rem, 4vw, 2.85rem); }
.dowty-library__actions, .dowty-library__controls { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.dowty-library__actions a, .dowty-library__actions button, .dowty-library__controls button, .dowty-library__email-send button {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 44px;
    padding: .5rem .9rem;
    border: 1px solid #c8b795;
    border-radius: .45rem;
    background: #fffdf8;
    color: var(--ink);
    font: 700 .9rem/1.3 system-ui, sans-serif;
    text-decoration: none;
    cursor: pointer;
}
.dowty-library__actions a:hover, .dowty-library__actions button:hover, .dowty-library__controls button:enabled:hover { background: #f3e7d1; }
.dowty-library__actions a.dowty-library__primary, .dowty-library__email-send button { color: #fff; background: #153352; border-color: #153352; }
.dowty-library__actions a.dowty-library__primary:hover, .dowty-library__email-send button:hover { background: #254966; }
.dowty-library__hint { margin: .6rem 0; font-size: .85rem; color: #5d513e; }
.dowty-library__email {
    margin-block: 1rem;
    padding: .75rem 1rem;
    border: 1px solid var(--line);
    border-radius: .55rem;
    background: #fffdf8;
    scroll-margin-top: calc(var(--mls-global-height, 76px) + 1rem);
}
.dowty-library__email summary { font-weight: 700; cursor: pointer; }
.dowty-library__email-preview { margin-block: .75rem; }
.dowty-library__email-preview { max-width: 640px; }
.dowty-library__email-design { margin-block: 1rem; }
.dowty-library__email-design fieldset {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
    gap: .8rem;
    min-width: 0;
    margin: 0;
    padding: 1rem;
    border: 1px solid #bfa987;
    border-radius: .45rem;
}
.dowty-library__email-design legend { padding-inline: .4rem; font-weight: 700; }
.dowty-library__email-design label { display: grid; gap: .4rem; min-width: 0; font-size: .9rem; font-weight: 600; }
.dowty-library__email-design select {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: .5rem;
    border: 1px solid #bfa987;
    border-radius: 5px;
    background: #fff;
    color: #132b44;
    font: 16px/1.3 system-ui, sans-serif;
}
.dowty-library__email-design button {
    align-self: end;
    min-height: 44px;
    padding: .5rem .8rem;
    border: 1px solid #153352;
    border-radius: .45rem;
    background: #153352;
    color: #fff;
    font: 700 .9rem/1.3 system-ui, sans-serif;
    cursor: pointer;
}
.dowty-library__turn-hint { text-align: center; }
.dowty-library__controls { justify-content: center; margin-block: 1rem; }
.dowty-library__controls p { min-width: 7rem; margin: 0; text-align: center; font-size: .9rem; }
.dowty-library__controls button:disabled { opacity: .55; cursor: default; }
.dowty-library__spread {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    width: 100%;
    margin-inline: auto;
    perspective: 1500px;
    perspective-origin: center top;
    scroll-margin-top: calc(var(--mls-global-height, 76px) + var(--mls-global-admin-top, 0px) + 1rem);
}
.dowty-library__spread.is-single { width: min(100%, 680px); grid-template-columns: minmax(0, 1fr); }
.dowty-library__slot { display: block; min-width: 0; padding: 0; border: 0; background: transparent; }
button.dowty-library__slot { cursor: pointer; }
.dowty-library__slot img, .dowty-library__face img {
    display: block;
    width: 100%;
    height: auto;
    box-shadow: 0 6px 18px #25293528;
}
.dowty-library__leaf {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    transform-style: preserve-3d;
    z-index: 2;
    pointer-events: none;
}
.dowty-library__leaf.is-forward { right: 0; transform-origin: left; }
.dowty-library__leaf.is-backward { left: 0; transform-origin: right; }
.dowty-library__leaf.is-mobile { left: 0; width: 100%; }
.dowty-library__face { position: absolute; inset: 0; backface-visibility: hidden; }
.dowty-library__face.is-front { transform: translateZ(.5px); }
.dowty-library__face.is-back { transform: rotateY(180deg) translateZ(.5px); }

.dowty-library__email-send {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .7rem;
    max-width: 660px;
    margin: 1rem 0;
}
.dowty-library__email-send label:not(.dowty-library__email-trap) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    flex: 1 1 240px;
    gap: .35rem;
    min-width: 0;
    color: #132b44;
    font-size: .9rem;
    font-weight: 600;
}
.dowty-library__email-send input[type="email"] {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    padding: .6rem .7rem;
    border: 1px solid #bfa987;
    border-radius: 5px;
    background: #fff;
    color: #132b44;
    font: inherit;
    font-size: 16px;
}
.dowty-library__email-send button { max-width: 100%; }
.dowty-library__email-send .dowty-library__hint { flex-basis: 100%; margin: 0; }
.dowty-library__email-trap {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.dowty-library__email-result {
    max-width: 660px;
    padding: .7rem;
    border-left: 3px solid #b99c65;
    color: #132b44;
    background: #fff;
}

.dowty-library-admin img[data-cover-preview] { display: block; width: auto; max-height: 220px; max-width: 100%; border: 1px solid #b7bdc4; }
.dowty-library-admin__items { max-width: 850px; }
.dowty-library-admin__items li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .7rem;
    background: #fff;
    border: 1px solid #dcdcde;
    overflow-wrap: anywhere;
}
.dowty-library-admin__items form { display: inline-block; margin: .15rem; }

@media (max-width: 700px) {
    .dowty-library__controls p { min-width: 5.2rem; }
    .dowty-library__controls button { padding-inline: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .dowty-library a.dowty-library__book { transition: none; }
}
