@import '_content/CadeBrownlee.Read/CadeBrownlee.Read.ubfur16m6r.bundle.scp.css';
@import '_content/CadeBrownlee.Shared.UI/CadeBrownlee.Shared.UI.yy841tebic.bundle.scp.css';

/* /Components/Layout/MainLayout.razor.rz.scp.css */
.site-main[b-gf7ckkjg66] {
    min-height: 60vh;
}

.site-footer[b-gf7ckkjg66] {
    margin-top: var(--space-8);
    padding: var(--space-6) var(--space-5);
    border-top: 1px solid var(--border);
    text-align: center;
}

.site-footer p[b-gf7ckkjg66] {
    margin: 0;
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    color: var(--faint);
}

#blazor-error-ui[b-gf7ckkjg66] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-gf7ckkjg66] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/PublicNav.razor.rz.scp.css */
.public-nav[b-0e751yl487] {
    border-bottom: 1px solid var(--border);
    background: var(--surface);
}

.public-nav-inner[b-0e751yl487] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-4) var(--space-5);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
}

.wordmark[b-0e751yl487] {
    font-family: var(--font-display);
    font-size: var(--text-xl);
    font-weight: 600;
    color: var(--ink);
    text-decoration: none;
    letter-spacing: 0.01em;
}

.public-nav-inner nav[b-0e751yl487] {
    display: flex;
    gap: var(--space-5);
}

.public-nav-inner nav a[b-0e751yl487] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    letter-spacing: 0.02em;
    color: var(--muted);
    text-decoration: none;
}

.public-nav-inner nav a:hover[b-0e751yl487],
.public-nav-inner nav a:focus-visible[b-0e751yl487] {
    color: var(--accent-strong);
}
/* /Components/Pages/BookPage.razor.rz.scp.css */
/* Book hero — an atmospheric strip of the book's own art above the cover block, in the same
   dark vignette register as the homepage hero (--sidebar), but quieter: no copy sits on top of
   it, so the gradient just keeps the edges calm without competing with the cover/title below. */
.book-hero[b-ed9jwt65c8] {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    height: clamp(9rem, 22vw, 18rem);
}

.book-hero[b-ed9jwt65c8]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(180deg,
            color-mix(in srgb, var(--sidebar) 35%, transparent) 0%,
            transparent 45%,
            color-mix(in srgb, var(--sidebar) 55%, transparent) 100%),
        var(--book-hero);
    background-size: cover;
    background-position: center;
}

.book-head[b-ed9jwt65c8] {
    border-bottom: 1px solid var(--border);
}

.book-head-inner[b-ed9jwt65c8] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-8) var(--space-5);
    display: flex;
    gap: var(--space-7);
    align-items: flex-start;
}

.book-cover-frame[b-ed9jwt65c8] {
    position: relative;
    flex-shrink: 0;
    width: clamp(8rem, 20vw, 12rem);
    aspect-ratio: 2 / 3;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border);
    background: var(--card);
}

.book-cover-frame img[b-ed9jwt65c8] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.book-cover-fallback[b-ed9jwt65c8] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: var(--space-4);
    text-align: center;
    font-family: var(--font-display);
    font-size: var(--text-lg);
    background: linear-gradient(160deg, var(--card) 0%, var(--paper) 55%, var(--border) 140%);
    border-left: 6px solid var(--accent);
}

.book-info[b-ed9jwt65c8] {
    max-width: var(--measure);
}

.book-genres:not(:empty)[b-ed9jwt65c8] {
    margin: 0 0 var(--space-3);
}

.book-title[b-ed9jwt65c8] {
    font-size: var(--text-3xl);
    margin: 0 0 var(--space-3);
    text-wrap: balance;
}

.book-tagline[b-ed9jwt65c8] {
    font-family: var(--font-display);
    font-style: italic;
    font-size: var(--text-lg);
    color: var(--muted);
    margin: 0 0 var(--space-5);
}

.book-synopsis[b-ed9jwt65c8] {
    color: var(--ink);
}

.book-synopsis[b-ed9jwt65c8]  p {
    margin: 0 0 var(--space-4);
}

.chapter-list-section[b-ed9jwt65c8] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-7) var(--space-5) var(--space-8);
}

.chapter-list-head[b-ed9jwt65c8] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
}

.chapter-list-head h2[b-ed9jwt65c8] {
    font-size: var(--text-2xl);
    margin: 0;
}

.sort-toggle[b-ed9jwt65c8] {
    display: flex;
    gap: var(--space-2);
    font-family: var(--font-ui);
    font-size: var(--text-sm);
}

.sort-toggle a[b-ed9jwt65c8] {
    color: var(--muted);
    text-decoration: none;
    padding: var(--space-1) var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.sort-toggle a.active[b-ed9jwt65c8] {
    color: var(--accent-contrast);
    background: var(--accent);
    border-color: var(--accent);
}

.sort-toggle a:hover[b-ed9jwt65c8],
.sort-toggle a:focus-visible[b-ed9jwt65c8] {
    border-color: var(--border-strong);
}

.chapter-list[b-ed9jwt65c8] {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--border);
}

.chapter-row[b-ed9jwt65c8] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: var(--space-4);
    row-gap: var(--space-1);
    padding: var(--space-4) 0;
    border-bottom: 1px solid var(--border);
    text-decoration: none;
    color: inherit;
    transition: color var(--transition);
}

.chapter-row:hover .chapter-row-title[b-ed9jwt65c8],
.chapter-row:focus-visible .chapter-row-title[b-ed9jwt65c8] {
    color: var(--accent-strong);
}

.chapter-row-label[b-ed9jwt65c8] {
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--accent);
    min-width: 5.5rem;
}

.chapter-row-title[b-ed9jwt65c8] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    color: var(--ink);
    flex: 1;
    transition: color var(--transition);
}

.chapter-row-date[b-ed9jwt65c8] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--muted);
}

@media (max-width: 640px) {
    .book-head-inner[b-ed9jwt65c8] {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .book-info[b-ed9jwt65c8] {
        max-width: none;
    }
}

@media (max-width: 480px) {
    .book-title[b-ed9jwt65c8] {
        font-size: var(--text-2xl);
    }
}
/* /Components/Pages/Books.razor.rz.scp.css */
.books-page[b-hzdyya9oux] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-8) var(--space-5);
}

.page-head[b-hzdyya9oux] {
    margin-bottom: var(--space-6);
}

.page-head .eyebrow[b-hzdyya9oux] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
    margin: 0 0 var(--space-2);
}

.page-head h1[b-hzdyya9oux] {
    font-size: var(--text-3xl);
    margin: 0;
}

@media (max-width: 480px) {
    .page-head h1[b-hzdyya9oux] {
        font-size: var(--text-2xl);
    }
}
/* /Components/Pages/ChapterPage.razor.rz.scp.css */
.chapter-page[b-hm6xeryrra] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-6) var(--space-5) var(--space-8);
}

.chapter-breadcrumb[b-hm6xeryrra] {
    margin-bottom: var(--space-6);
}

.chapter-breadcrumb a[b-hm6xeryrra] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--muted);
    text-decoration: none;
}

.chapter-breadcrumb a:hover[b-hm6xeryrra],
.chapter-breadcrumb a:focus-visible[b-hm6xeryrra] {
    color: var(--accent-strong);
}

.chapter-nav[b-hm6xeryrra] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-5);
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--border);
    max-width: var(--measure);
    margin-left: auto;
    margin-right: auto;
}

.chapter-nav-link[b-hm6xeryrra] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    text-decoration: none;
    max-width: 45%;
}

.chapter-nav-link.next[b-hm6xeryrra] {
    text-align: right;
    align-items: flex-end;
}

.chapter-nav-label[b-hm6xeryrra] {
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
}

.chapter-nav-title[b-hm6xeryrra] {
    font-family: var(--font-display);
    font-size: var(--text-base);
    color: var(--ink);
}

.chapter-nav-link:hover .chapter-nav-title[b-hm6xeryrra],
.chapter-nav-link:focus-visible .chapter-nav-title[b-hm6xeryrra] {
    color: var(--accent-strong);
}

.chapter-nav-spacer[b-hm6xeryrra] {
    flex: 1;
}

@media (max-width: 480px) {
    .chapter-nav[b-hm6xeryrra] {
        flex-direction: column;
        align-items: stretch;
        gap: var(--space-4);
    }

    .chapter-nav-link[b-hm6xeryrra],
    .chapter-nav-link.next[b-hm6xeryrra] {
        max-width: none;
        align-items: flex-start;
        text-align: left;
    }
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Hero — the thesis. A book laid open on a dark desk: the cover sits tilted beside the
   title, and the background is either the book's own hero art or an ember-glow gradient
   built entirely from tokens (an homage to the "Emberfall" line without a hardcoded color).
   The dark surface reuses --sidebar/--sidebar-ink/--sidebar-muted — the platform's one
   dark-surface palette, otherwise reserved for the admin chrome. */

.hero[b-tfzv493zak] {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.hero[b-tfzv493zak]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(165deg,
            color-mix(in srgb, var(--sidebar) 88%, transparent) 0%,
            color-mix(in srgb, var(--sidebar) 60%, transparent) 45%,
            color-mix(in srgb, var(--sidebar) 30%, transparent) 100%),
        var(--hero-image, none);
    background-size: cover;
    background-position: center;
}

.hero.no-image[b-tfzv493zak]::before {
    background-image:
        radial-gradient(120% 150% at 12% 10%, color-mix(in srgb, var(--accent) 55%, transparent) 0%, transparent 50%),
        linear-gradient(165deg, var(--sidebar) 0%, var(--accent-strong) 85%, var(--sidebar) 150%);
}

.hero-inner[b-tfzv493zak] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-8) var(--space-5);
    display: flex;
    align-items: center;
    gap: var(--space-7);
}

.hero-cover[b-tfzv493zak] {
    flex-shrink: 0;
    width: clamp(8rem, 18vw, 12rem);
    aspect-ratio: 2 / 3;
    object-fit: cover;
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    border: 1px solid color-mix(in srgb, var(--sidebar-ink) 25%, transparent);
    transform: rotate(-3deg);
}

.hero-copy[b-tfzv493zak] {
    max-width: 42rem;
}

.hero-eyebrow[b-tfzv493zak] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
    margin: 0 0 var(--space-3);
}

.hero-title[b-tfzv493zak] {
    font-size: var(--text-3xl);
    color: var(--sidebar-ink);
    margin: 0 0 var(--space-4);
    text-wrap: balance;
}

.hero-tagline[b-tfzv493zak] {
    font-family: var(--font-body);
    font-size: var(--text-lg);
    color: var(--sidebar-muted);
    margin: 0 0 var(--space-6);
    max-width: var(--measure);
}

.hero-genres[b-tfzv493zak] {
    margin: 0 0 var(--space-6);
}

.hero-actions[b-tfzv493zak] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
}

.hero-cta[b-tfzv493zak] {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: var(--space-3) var(--space-6);
    border-radius: var(--radius-md);
    background: var(--accent);
    color: var(--accent-contrast);
    text-decoration: none;
    border: 1px solid transparent;
    transition: background var(--transition), border-color var(--transition);
}

.hero-cta:hover[b-tfzv493zak],
.hero-cta:focus-visible[b-tfzv493zak] {
    background: var(--accent-strong);
}

.hero-cta.ghost[b-tfzv493zak] {
    background: transparent;
    border-color: color-mix(in srgb, var(--sidebar-ink) 40%, transparent);
    color: var(--sidebar-ink);
}

.hero-cta.ghost:hover[b-tfzv493zak],
.hero-cta.ghost:focus-visible[b-tfzv493zak] {
    border-color: var(--sidebar-ink);
    background: color-mix(in srgb, var(--sidebar-ink) 12%, transparent);
}

.hero-cta[hidden][b-tfzv493zak] {
    display: none;
}

/* ---- Recent releases ---------------------------------------------------- */

.releases[b-tfzv493zak],
.all-books[b-tfzv493zak] {
    max-width: 72rem;
    margin: 0 auto;
    padding: var(--space-8) var(--space-5) 0;
}

.section-head[b-tfzv493zak] {
    margin-bottom: var(--space-5);
}

.section-head .eyebrow[b-tfzv493zak] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
    margin: 0 0 var(--space-2);
}

.section-head h2[b-tfzv493zak] {
    font-size: var(--text-2xl);
    margin: 0;
}

.muted-note[b-tfzv493zak] {
    color: var(--muted);
}

.release-list[b-tfzv493zak] {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--border);
}

.release-list li[b-tfzv493zak] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: var(--space-4);
    row-gap: var(--space-1);
    padding: var(--space-4) 0;
    border-bottom: 1px solid var(--border);
}

.release-list time[b-tfzv493zak] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--muted);
    min-width: 7rem;
}

.release-chapter[b-tfzv493zak] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
}

.release-from[b-tfzv493zak] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--faint);
}

.release-book[b-tfzv493zak] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
}

.all-books[b-tfzv493zak] {
    padding-bottom: var(--space-8);
}

@media (max-width: 640px) {
    .hero-inner[b-tfzv493zak] {
        flex-direction: column;
        text-align: center;
        gap: var(--space-5);
    }

    .hero-copy[b-tfzv493zak] {
        max-width: none;
    }

    .hero-actions[b-tfzv493zak] {
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .hero-title[b-tfzv493zak] {
        font-size: var(--text-2xl);
    }

    .release-list time[b-tfzv493zak] {
        min-width: 100%;
    }
}
/* /Components/Shared/BookGridCard.razor.rz.scp.css */
.book-card[b-h0fz6xnktj] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    color: inherit;
    text-decoration: none;
}

.book-card:hover .book-title[b-h0fz6xnktj],
.book-card:focus-visible .book-title[b-h0fz6xnktj] {
    color: var(--accent-strong);
}

.book-cover[b-h0fz6xnktj] {
    position: relative;
    display: block;
    aspect-ratio: 2 / 3;
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    background: var(--card);
    border: 1px solid var(--border);
    transition: box-shadow var(--transition), transform var(--transition);
}

.book-card:hover .book-cover[b-h0fz6xnktj],
.book-card:focus-visible .book-cover[b-h0fz6xnktj] {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.book-cover img[b-h0fz6xnktj] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.book-cover-fallback[b-h0fz6xnktj] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-5);
    text-align: center;
    background: linear-gradient(160deg, var(--card) 0%, var(--paper) 55%, var(--border) 140%);
    border-left: 6px solid var(--accent);
}

.book-cover-fallback-title[b-h0fz6xnktj] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    line-height: var(--line-height-tight);
    color: var(--ink);
}

.book-info[b-h0fz6xnktj] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.book-title[b-h0fz6xnktj] {
    font-family: var(--font-display);
    font-size: var(--text-lg);
    line-height: var(--line-height-tight);
    color: var(--ink);
    transition: color var(--transition);
}

.book-meta[b-h0fz6xnktj] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--muted);
}
/* /Components/Shared/BooksGrid.razor.rz.scp.css */
.genre-filter[b-3lcvzpv5vh] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0 0 var(--space-6);
}

.genre-filter a[b-3lcvzpv5vh] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    color: var(--muted);
    text-decoration: none;
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: var(--space-1) var(--space-4);
    transition: color var(--transition), border-color var(--transition), background var(--transition);
}

.genre-filter a:hover[b-3lcvzpv5vh],
.genre-filter a:focus-visible[b-3lcvzpv5vh] {
    color: var(--accent-strong);
    border-color: var(--border-strong);
}

.genre-filter a.active[b-3lcvzpv5vh] {
    color: var(--accent-contrast);
    background: var(--accent);
    border-color: var(--accent);
}

.books-grid[b-3lcvzpv5vh] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: var(--space-6) var(--space-5);
}

@media (max-width: 640px) {
    .books-grid[b-3lcvzpv5vh] {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-5) var(--space-4);
    }
}
/* /Components/Shared/EmptyState.razor.rz.scp.css */
.empty-state[b-qma3wr987e] {
    max-width: 44ch;
    margin: var(--space-8) auto;
    padding: var(--space-6) var(--space-5);
    text-align: center;
}

.empty-eyebrow[b-qma3wr987e] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent);
    margin: 0 0 var(--space-3);
}

.empty-title[b-qma3wr987e] {
    font-size: var(--text-2xl);
    margin: 0 0 var(--space-3);
}

.empty-message[b-qma3wr987e] {
    color: var(--muted);
    margin: 0 0 var(--space-5);
}

.empty-link[b-qma3wr987e] {
    font-family: var(--font-ui);
    font-size: var(--text-sm);
    font-weight: 600;
}
/* /Components/Shared/GenreChips.razor.rz.scp.css */
/* Brass-tinted pills that read on both the light paper cards and the dark hero band. Only
   --accent and transparent are used, so the chip adapts to whatever surface it sits on. */
.genre-chips[b-as09gobd0t] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
}

.genre-chip[b-as09gobd0t] {
    display: inline-flex;
    align-items: center;
    padding: 0.18em 0.7em;
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
    border-radius: 999px;
    white-space: nowrap;
}
/* /Components/Shared/StatusRibbon.razor.rz.scp.css */
.status-ribbon[b-x2j3c0gr6a] {
    position: absolute;
    top: 0;
    right: var(--space-4);
    background: var(--ribbon-color, var(--accent));
    color: var(--accent-contrast);
    font-family: var(--font-ui);
    font-size: var(--text-xs);
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
    padding: var(--space-2) var(--space-3) var(--space-3);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 78%, 0 100%);
    box-shadow: var(--shadow-sm);
    white-space: nowrap;
}
