/* Editorial dashboard: generous whitespace, real covers, restrained brand accents. */
.community-dashboard { max-width: 1160px; background: transparent; box-shadow: none; color: #24212b; }
.community-welcome { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; align-items: center; padding-bottom: 1.5rem; border-bottom: 1px solid #e8e5ec; margin-bottom: 0; }
.community-eyebrow { display: block; color: #77717f; font-size: .65rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.community-welcome .community-eyebrow { grid-column: 1; }
.community-welcome h1 { font-size: 1.25rem; margin: 0; letter-spacing: -.04em; }
.community-welcome > a { grid-column: 2; grid-row: 1 / 3; font-size: .8rem; color: #5f34e0; text-decoration: none; }
.community-hero { padding: clamp(2.75rem, 6vw, 5rem) 0; }
.community-hero .community-eyebrow { display: flex; align-items: center; gap: .65rem; }
.community-dot { width: 7px; height: 7px; background: #784dfe; border-radius: 50%; }
.community-hero h2 { color: #24212b; font: 500 clamp(2.7rem, 6.4vw, 5.2rem)/1.06 "Poppins", sans-serif; letter-spacing: -.065em; margin: 1.4rem 0; }
.community-hero h2 em { color: #784dfe; font-family: Georgia, serif; font-weight: 400; letter-spacing: -.05em; }
.community-hero-copy > p { max-width: 520px; color: #77717f; font-size: .95rem; line-height: 1.85; margin: 1.5rem 0; }
.community-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: 1.75rem; }
.community-dashboard .btn-primary { border-radius: 999px; font-size: .8rem; padding: .85rem 1.35rem; box-shadow: none; }
.community-actions .btn-primary span { margin-left: 1rem; }
.community-catalog-link { color: #4c4658; font-size: .8rem; text-decoration: none; padding: .75rem 0; }
.community-catalog-link:hover { color: #784dfe; }
.community-shelf { display: grid; grid-template-columns: .9fr 2fr; gap: 2rem; padding: 2.5rem; border-radius: 6px; background: #f3f1ed; align-items: center; }
.community-shelf-intro h2 { font: 400 clamp(1.8rem, 3vw, 2.5rem)/1.14 Georgia, serif; letter-spacing: -.04em; margin: 1rem 0; color: #24212b; }
.community-shelf-intro p { font-size: .8rem; line-height: 1.8; color: #77717f; }
.community-shelf-intro > a { display: inline-block; color: #5f34e0; font-size: .75rem; text-decoration: none; margin-top: 1rem; padding: .5rem 0; }
.community-books { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; min-width: 0; }
.community-book { min-width: 0; text-decoration: none; color: inherit; }
.community-book-stage { height: 210px; display: flex; justify-content: center; align-items: flex-end; padding: 0 4px 14px; }
.community-book-stage img { display: block; width: auto; max-width: 100%; height: auto; max-height: 100%; object-fit: contain; box-shadow: 3px 6px 9px #30293822, 9px 12px 22px #30293812; }
.community-book h3 { font-family: "Lexend", sans-serif; font-size: .8rem; font-weight: 500; letter-spacing: -.02em; line-height: 1.5; margin: .7rem 0 .25rem; overflow-wrap: anywhere; }
.community-book p { font-size: .7rem; color: #77717f; margin: 0; }
.community-book:hover h3 { color: #784dfe; }
.community-book-placeholder { display: flex; flex-direction: column; justify-content: space-between; width: 130px; height: 190px; padding: 15px; background: #44365c; color: #fff; box-shadow: 3px 6px 9px #30293822; border-left: 4px solid #ffffff20; }
.community-book-placeholder span { font: 22px/1.15 Georgia, serif; overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.community-book-placeholder small { font-size: 7px; }
.community-reading { margin-top: 3.5rem; }
.community-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.community-section-heading h2 { color: #24212b; font-size: clamp(1.2rem, 2.5vw, 1.6rem); margin: .5rem 0 0; letter-spacing: -.045em; }
.community-section-heading > a { color: #5f34e0; font-size: .75rem; text-decoration: none; flex-shrink: 0; padding: .5rem 0; }
.community-reading-intro { font-size: .85rem; }
.community-dashboard .dashboard-hero-invite { background: #fff; border: 1px solid #e8e5ec; border-radius: 6px; padding: 2rem; }
.community-dashboard .dashboard-hero-invite h2 { color: #24212b; font-size: 1.3rem; margin-top: .5rem; }
.community-dashboard .dashboard-hero-invite p { max-width: 580px; margin: .75rem 0 1.25rem; font-size: .85rem; }
.community-dashboard .dashboard-hero-eyebrow { color: #77717f; font-size: .65rem; }
.community-dashboard .dashboard-hero-active { background: #fff; border: 1px solid #e8e5ec; border-left: 3px solid #784dfe; border-radius: 6px; padding: 2rem; }
.community-dashboard .campaign-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 1rem; margin-top: 1.25rem; }
.community-dashboard .campaign-row { background: #fff; border-color: #e8e5ec; border-radius: 6px; padding: 1.25rem; margin: 0; }
.community-dashboard .campaign-row-top { flex-wrap: wrap; }
.community-dashboard .campaign-row h2 { font-size: 1rem; }
.community-purpose { display: grid; grid-template-columns: auto 1.2fr 1fr; align-items: center; gap: 2rem; margin-top: 4rem; padding: 2.5rem 0 1rem; border-top: 1px solid #e8e5ec; }
.community-purpose-mark { font-size: 4rem; line-height: 1; color: #784dfe; }
.community-purpose h2 { font: 400 clamp(1.4rem, 2.5vw, 1.9rem)/1.3 Georgia, serif; color: #24212b; margin: .8rem 0 0; }
.community-purpose h2 em { color: #5f34e0; font-weight: 400; }
.community-purpose > p { font-size: .8rem; line-height: 1.9; margin: 0; color: #77717f; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .community-book-stage { transition: transform .25s ease; }
    .community-book:hover .community-book-stage { transform: translateY(-5px); }
}
@media (min-width: 1000px) {
    .community-hero-copy { position: relative; }
    .community-hero-copy::after { content: 'Leer.\A Sentir.\A Compartir.'; white-space: pre; position: absolute; right: 1rem; top: 3.5rem; font: italic 2rem/1.5 Georgia, serif; color: #b2a9be; border-left: 1px solid #ded7e8; padding-left: 2rem; }
}
@media (max-width: 800px) {
    .community-shelf { grid-template-columns: 1fr; padding: 1.5rem; }
    .community-shelf-intro h2 br, .community-shelf-intro p br { display: none; }
    .community-shelf-intro h2 { margin: .75rem 0; }
    .community-shelf-intro p { margin: 0; }
    .community-purpose { grid-template-columns: auto 1fr; gap: 1rem; }
    .community-purpose > p { grid-column: 2; }
}
@media (max-width: 540px) {
    .community-books { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem .75rem; }
    .community-book-stage { height: 145px; padding: 0 0 10px; }
    .community-book-placeholder { height: 130px; width: 90px; padding: 8px; }
    .community-book-placeholder span { font-size: 16px; }
    .community-book h3 { font-size: .7rem; }
    .community-book p { font-size: .65rem; }
    .community-section-heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .community-hero h2 { font-size: clamp(2.25rem, 9vw, 3rem); }
    .community-hero-copy > p { font-size: .85rem; }
    .community-shelf { padding: 1.25rem; }
    .community-reading { margin-top: 2.5rem; }
    .community-purpose { margin-top: 2.5rem; }
    .community-purpose-mark { font-size: 2.5rem; }
}

/* Inicio del club de lectores. */
body:has(.community-dashboard) { background: #fdfbfc; }
.page.community-dashboard { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; color: #171344; }
.community-dashboard > section:not(.community-hero), .community-dashboard > .house-invite { width: min(1160px, calc(100% - 4rem)); margin-left: auto; margin-right: auto; }
.community-dashboard .community-eyebrow { color: #817b9f; font-size: .65rem; letter-spacing: .2em; font-weight: 600; }
.community-dashboard .community-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 510px; display: flex; align-items: center; padding: 3.6rem max(2rem, calc((100% - 1160px) / 2)); background: #faf7f9; }
.community-dashboard .community-hero-copy { position: relative; z-index: 2; width: 57%; }
.community-dashboard .community-hero-copy::after { display: none; }
.community-dashboard .community-hero h1 { color: #171344; font: 600 clamp(2.7rem, 4.7vw, 4.5rem)/1.03 Georgia, serif; letter-spacing: -.055em; margin: 1.4rem 0 1.1rem; }
.community-dashboard .community-hero h1 em { color: #8051ff; font-weight: 400; }
.community-dashboard .community-hero-copy > p { color: #666184; font-size: .9rem; line-height: 1.65; margin: 1rem 0; max-width: 530px; }
.community-dashboard .community-actions { margin-top: 1.25rem; gap: .8rem; }
.community-dashboard .btn-primary { background: #8051ff; color: #fff; border: 1px solid #8051ff; }
.community-dashboard .community-catalog-link { border: 1px solid #ded2ff; border-radius: 999px; color: #8051ff; padding: .8rem 1.4rem; }
.community-hero-art { position: absolute; inset: 0 0 0 50%; z-index: 0; background: #d8c7e8 url('../img/dashboard-reading-corner-drawn.webp') center / cover no-repeat; border-radius: 0; }
.community-hero-art::before { content: ''; position: absolute; inset: -10% auto -10% -1px; width: 18%; background: #faf7f9; border-radius: 0 55% 60% 0 / 0 45% 60% 0; }
.community-hero-benefits, .community-purpose-benefits { display: flex; list-style: none; padding: 0; margin: 2.5rem 0 0; gap: 1.6rem; }
.community-hero-benefits li, .community-purpose-benefits li { display: flex; align-items: center; gap: .7rem; color: #5f587d; font-size: .75rem; line-height: 1.55; }
.community-hero-benefits svg, .community-purpose-benefits svg { width: 40px; height: 40px; flex-shrink: 0; color: #8051ff; }
.community-dashboard .discovery-recommendations { margin-top: 2rem; margin-bottom: 2.5rem; }
.community-dashboard .discovery-heading { gap: 1rem; margin-bottom: 1.5rem; }
.community-dashboard .discovery-heading h2, .community-dashboard .community-section-heading h2 { font: 600 clamp(1.5rem, 2.5vw, 2.1rem)/1.2 Georgia, serif; color: #171344; letter-spacing: -.04em; }
.community-dashboard .discovery-heading p { font-size: .8rem; }
.community-dashboard .discovery-heading > a { margin-left: auto; font-size: .75rem; color: #8051ff; }
.community-slider-controls { display: flex; gap: .6rem; }
.community-slider-controls button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #ded2ff; border-radius: 50%; color: #8051ff; background: #faf7ff; font: 1.3rem Georgia, serif; cursor: pointer; }
.community-slider-controls button:disabled { opacity: .4; cursor: default; }
.community-slider-controls button:focus-visible { outline: 2px solid #8051ff; outline-offset: 3px; }
@media (max-width: 760px) {
    .community-dashboard .community-slider-controls { display: none; }
}
.community-dashboard .discovery-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 7.5rem) / 6); grid-template-columns: none; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; padding: 0 0 .8rem; }
.community-dashboard .discovery-card { scroll-snap-align: start; }
.community-dashboard .discovery-card h3 { font-size: .8rem; font-weight: 600; line-height: 1.35; }
.community-dashboard .discovery-author { font-size: .68rem; margin-bottom: .2rem; }
.community-dashboard .discovery-cover { box-shadow: none; border-radius: 6px; }
.community-dashboard .community-shelf { background: linear-gradient(110deg, #f0eaff, #f4efff); border-radius: 9px; padding: 2rem; grid-template-columns: minmax(220px, .9fr) minmax(0, 1.7fr); gap: 2rem; }
.community-dashboard .community-shelf-intro h2 { font: 500 clamp(2.1rem, 3.8vw, 3.4rem)/1.05 Georgia, serif; color: #171344; margin: 1rem 0; }
.community-shelf-intro h2 em { font-weight: 400; color: #8051ff; }
.community-dashboard .community-shelf-intro > a { border-radius: 999px; background: #8051ff; color: #fff; padding: .75rem 1.1rem; margin-top: .5rem; }
.community-dashboard .community-books { gap: 1.3rem; }
.community-dashboard .community-book-stage { height: 175px; padding: 0; }
.community-dashboard .community-book-stage img { border-radius: 5px; box-shadow: none; }
.community-dashboard .community-book h3 { font-size: .72rem; }
.community-dashboard .community-reading { margin-top: 2.5rem; }
.community-dashboard .community-section-heading { margin-bottom: .7rem; }
.community-dashboard .community-reading-intro { color: #666184; margin: .6rem 0 1.25rem; font-size: .85rem; }
.community-dashboard .campaign-row { border-radius: 9px; padding: 1rem; gap: 1rem; }
.community-dashboard .campaign-row h2 { font-size: .8rem; color: #6035df; }
.community-dashboard .campaign-row .book-pages { font-size: .75rem; }
.community-dashboard .campaign-row .book-cover-sm { width: 62px; height: 104px; flex-shrink: 0; }
.community-dashboard .campaign-row .badge { font-size: .6rem; }
.community-dashboard .community-purpose { grid-template-columns: auto minmax(240px, 1fr) minmax(0, 1.5fr); gap: 1.3rem; margin-top: 2rem; padding: 2rem 0 2.5rem; border: 0; }
.community-dashboard .community-purpose h2 { font: 500 clamp(1.4rem, 2vw, 1.85rem)/1.3 Georgia, serif; color: #171344; }
.community-dashboard .community-purpose .community-eyebrow { font-size: .52rem; }
.community-purpose-benefits { margin: 0; justify-content: space-between; gap: 1rem; }
.community-purpose-benefits li { flex-direction: column; text-align: center; gap: .75rem; font-size: .72rem; }
body:has(.community-dashboard) .landing-publishers { background: linear-gradient(110deg, #f0eaff, #eee5ff); border: 0; }
body:has(.community-dashboard) .landing-publishers-copy h2 { color: #171344; font: 600 clamp(1.5rem, 2.5vw, 2rem)/1.15 Georgia, serif; letter-spacing: -.035em; }
@media (max-width: 1000px) {
    .community-hero-benefits { gap: .8rem; }
    .community-hero-benefits li { font-size: .65rem; }
    .community-hero-benefits svg { width: 30px; height: 30px; }
    .community-dashboard .discovery-grid { grid-auto-columns: calc((100% - 4.5rem) / 4); }
    .community-dashboard .community-purpose { grid-template-columns: auto 1fr; }
    .community-purpose-benefits { grid-column: 1 / -1; justify-content: space-around; margin-top: 1rem; }
}
@media (max-width: 760px) {
    .community-dashboard > section:not(.community-hero), .community-dashboard > .house-invite { width: calc(100% - 2rem); }
    .community-dashboard .community-hero { min-height: 0; padding: 2.5rem 1.25rem 0; flex-direction: column; align-items: stretch; }
    .community-dashboard .community-hero-copy { width: 100%; }
    .community-dashboard .community-hero h1 { font-size: clamp(2.5rem, 8.5vw, 3.6rem); }
    .community-hero-art { position: relative; inset: auto; height: 260px; margin: 2rem -1.25rem 0; background-position: center 55%; }
    .community-hero-art::before { inset: -1px 0 auto; width: 100%; height: 35px; border-radius: 0 0 50% 50%; }
    .community-hero-benefits { justify-content: space-between; margin-top: 1.5rem; }
    .community-dashboard .discovery-heading { flex-wrap: wrap; }
    .community-dashboard .discovery-heading > div:first-child { flex-basis: 100%; }
    .community-dashboard .discovery-heading > a { margin-left: 0; }
    .community-slider-controls { margin-left: auto; }
    .community-dashboard .discovery-grid { grid-auto-columns: calc((100% - 2rem) / 3); gap: 1rem; }
    .community-dashboard .community-shelf { grid-template-columns: 1fr; padding: 1.5rem; }
    .community-dashboard .community-shelf-intro h2 br { display: block; }
    .community-dashboard .community-books { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
    .community-dashboard .community-book-stage { height: 135px; }
}
@media (max-width: 440px) {
    .community-dashboard .discovery-grid { grid-auto-columns: calc((100% - 1rem) / 2); }
    .community-dashboard .community-books { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .community-dashboard .community-book-stage { height: 165px; }
    .community-hero-benefits li { flex-direction: column; align-items: flex-start; }
    .community-purpose-benefits { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}
body:has(.community-dashboard) .community-publishers-description { color: #666184; font-size: .8rem; margin: .7rem 0; }
.community-publishers-art { display: block; width: clamp(100px, 13vw, 180px); height: auto; object-fit: contain; flex-shrink: 0; }
@media (max-width: 860px) {
    body:has(.community-dashboard) .landing-publishers-inner { flex-wrap: wrap; }
    .community-publishers-art { width: 120px; margin: 0 auto; }
}
.community-dashboard .community-author { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; margin-top: 2.5rem; margin-bottom: 2.5rem; padding: 1.6rem 1.75rem; box-sizing: border-box; border: 1px solid #e9e2ef; border-radius: 12px; background: #faf7fc; }
.community-author-portrait { min-width: 0; }
.community-author-photo { display: grid; place-items: center; width: 88px; height: 88px; overflow: hidden; border-radius: 50%; background: #eee5f6; color: #806397; text-decoration: none; }
.community-author-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.community-author-initial { font: 400 2.4rem/1 Georgia, serif; }
.community-author-copy { min-width: 0; }
.community-author-copy .community-eyebrow { font-size: .65rem; letter-spacing: .13em; }
.community-author-copy h2 { margin: .3rem 0; color: #30233f; font: 400 1.6rem/1.2 Georgia, serif; letter-spacing: -.025em; overflow-wrap: anywhere; }
.community-author-copy .community-author-bio { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: .35rem 0 0; color: #776d82; font-size: .85rem; line-height: 1.6; max-width: 68ch; overflow-wrap: anywhere; }
.community-author-actions { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; padding-left: 1.25rem; border-left: 1px solid #e7dfee; }
.community-author-profile-link { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem 0; color: #714bb3; font-size: .85rem; font-weight: 500; text-decoration: none; }
.community-author-directory { padding: .4rem 0; color: #81748d; font-size: .75rem; text-decoration: none; }
.community-author-actions a:hover { color: #5f34a1; text-decoration: underline; }
.community-author a:focus-visible { outline: 2px solid #8051ff; outline-offset: 4px; }
@media (max-width: 700px) {
    .community-dashboard .community-author { grid-template-columns: 64px minmax(0, 1fr); gap: 1rem; padding: 1.2rem; margin-top: 2rem; margin-bottom: 2rem; }
    .community-author-photo { width: 64px; height: 64px; }
    .community-author-copy h2 { font-size: 1.35rem; }
    .community-author-actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; border-left: 0; border-top: 1px solid #e7dfee; padding: .5rem 0 0; }
}
body:has(.community-dashboard) .site-footer { margin-top: 0; }
.community-dashboard .dashboard-illustrated-title { display: flex; align-items: center; gap: .65rem; }
.dashboard-title-art { display: block; flex: 0 0 48px; width: 48px; height: 48px; object-fit: contain; }
@media (max-width: 600px) {
    .dashboard-title-art { flex-basis: 40px; width: 40px; height: 40px; }
    .community-dashboard .dashboard-illustrated-title { gap: .5rem; }
}

/* Rinc?n personal, inspirado en una libreta ilustrada. */
body:has(.reader-home) { background: #f8f5fc; }
.page.reader-home { max-width: 1160px; margin: 0 auto; padding: 1.5rem 1.5rem 0; box-sizing: border-box; background: #f8f5fc; }
.reader-home > section:not(.community-hero), .reader-home > .reader-stats { width: 100%; box-sizing: border-box; }
.reader-greeting { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 265px; border-radius: 24px; background: #ede3fa; }
.reader-greeting::before { content: ''; position: absolute; width: 210px; height: 95px; border-radius: 50%; background: #e6d2f1; opacity: .6; left: -25px; bottom: -55px; transform: rotate(12deg); z-index: -1; }
.reader-greeting-copy { width: 56%; padding: 2rem 2.5rem; box-sizing: border-box; z-index: 1; }
.reader-home .community-eyebrow { color: #9476b9; font-size: .63rem; letter-spacing: .17em; }
.reader-greeting h1 { font: 600 clamp(2.2rem, 4vw, 3.6rem)/1.12 Georgia, serif; letter-spacing: -.045em; color: #4b2854; margin: .75rem 0 .6rem; overflow-wrap: anywhere; }
.reader-greeting p { color: #817282; font-size: .85rem; line-height: 1.6; margin: 0; }
.reader-greeting-copy > a { display: inline-block; padding: .5rem 0; margin-top: .7rem; color: #8556ac; font-size: .78rem; text-decoration: none; }
.reader-greeting-art { position: absolute; right: 0; top: 0; width: 49%; height: 100%; object-fit: cover; object-position: center; mix-blend-mode: multiply; mask-image: linear-gradient(to right, transparent, #000 16%); }
.reader-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; margin: 1.1rem 0; }
.reader-stats > a { display: flex; align-items: center; min-width: 0; gap: .7rem; padding: 1.15rem 1rem; background: #faf7ff; border: 1px solid #e7dcf2; border-radius: 12px; box-shadow: 0 3px 10px #79539c09; color: #4d355b; text-decoration: none; }
.reader-stat-icon { color: #9970d5; font: 2.3rem/1 Georgia, serif; flex-shrink: 0; }
.reader-stat-icon svg { display: block; width: 29px; height: 29px; }
.reader-stats > a:first-child .reader-stat-icon, .reader-stats > a:last-child .reader-stat-icon { color: #9670c6; }
.reader-stats strong { display: block; font: 600 1.8rem/1.1 Georgia, serif; }
.reader-stats small { display: block; margin-top: .3rem; color: #8c8093; font-size: .65rem; line-height: 1.4; }
.reader-stat-arrow { margin-left: auto; font-size: 1.3rem; color: #b297ce; }
.reader-house { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; gap: 1.5rem; padding: 1.2rem 1.5rem; margin: 0 0 1.75rem; border: 1px solid var(--reader-border); border-radius: 15px; background: linear-gradient(110deg, var(--reader-soft), var(--reader-paper) 70%); box-shadow: 0 6px 26px color-mix(in srgb, var(--reader-aura) 14%, transparent), inset 0 1px 0 #ffffff; }
.reader-house { --reader-aura: #a281ce; --reader-light: #e3c5ff; --reader-ink: #5b3fb0; --reader-muted: #796592; --reader-soft: #eee3fa; --reader-paper: #faf7ff; --reader-border: #d8c5ef; --reader-track: #e3d8ef; }
.reader-house[data-house="ignia"] { --reader-aura: #d56549; --reader-light: #f5b653; --reader-ink: #8e1b2e; --reader-muted: #945b50; --reader-soft: #fbe1d7; --reader-paper: #fff8f1; --reader-border: #ecc0b1; --reader-track: #efd4c9; }
.reader-house[data-house="nerea"] { --reader-aura: #599bd1; --reader-light: #a5e0f3; --reader-ink: #1d3f73; --reader-muted: #526f8d; --reader-soft: #dcecf9; --reader-paper: #f4faff; --reader-border: #b9d3ec; --reader-track: #cfdfed; }
.reader-house[data-house="gaia"] { --reader-aura: #749765; --reader-light: #c8d9a5; --reader-ink: #2d5536; --reader-muted: #647858; --reader-soft: #e3edd9; --reader-paper: #f8fbf2; --reader-border: #c2d3af; --reader-track: #d4dfc7; }
.reader-house::before { content: ''; position: absolute; z-index: -1; inset: -100%; pointer-events: none; background: radial-gradient(ellipse at 30% 50%, color-mix(in srgb, var(--reader-aura) 40%, transparent), transparent 30%), radial-gradient(ellipse at 70% 45%, color-mix(in srgb, var(--reader-light) 45%, transparent), transparent 28%); animation: reader-house-light 9s ease-in-out infinite alternate; }
.reader-house::after { content: ''; position: absolute; pointer-events: none; top: -70%; bottom: -70%; left: -50%; width: 18%; background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--reader-light) 45%, white), transparent); transform: rotate(25deg); animation: reader-house-shine 8s ease-in-out infinite; }
.reader-house-emblem { position: relative; box-shadow: 0 0 24px color-mix(in srgb, var(--reader-aura) 40%, transparent), inset 0 0 20px #ffffff80; }
.reader-house-emblem::before, .reader-house-emblem::after { content: '✦'; position: absolute; color: var(--reader-aura); font: 400 18px Georgia, serif; text-shadow: 0 0 8px #fff, 0 0 14px var(--reader-light); animation: reader-house-spark 9s ease-in-out infinite; }
.reader-house-emblem::before { top: 5px; right: 4px; }
.reader-house-emblem::after { bottom: 8px; left: 6px; font-size: 12px; animation-delay: -4.5s; }
.reader-house-name h2 { text-shadow: 0 2px 12px color-mix(in srgb, var(--reader-aura) 35%, transparent); }
.reader-house-progress progress { box-shadow: inset 0 1px 3px #86629e16, 0 1px 0 #ffffff; }
.reader-house-progress progress::-webkit-progress-value { background-image: linear-gradient(105deg, var(--reader-aura) 15%, var(--reader-light) 40%, var(--reader-aura) 65%); background-size: 200% 100%; animation: reader-house-progress 5s ease-in-out infinite alternate; }
.reader-house-link { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .5rem; flex-shrink: 0; min-height: 44px; background: none; border: 0; }
.reader-house-link:hover { text-decoration: underline; text-underline-offset: 4px; }
@keyframes reader-house-light { to { transform: translateX(7%) scale(1.05); } }
@keyframes reader-house-shine { 0%, 65% { left: -50%; opacity: 0; } 72% { opacity: 1; } 100% { left: 130%; opacity: 0; } }
@keyframes reader-house-spark {
    0%, 100% { opacity: .7; transform: translateY(0); text-shadow: 0 0 6px var(--reader-light); }
    50% { opacity: .8; transform: translateY(-1.5px); text-shadow: 0 0 9px var(--reader-light); }
}
@keyframes reader-house-progress { to { background-position: 100% 50%; } }
@media (prefers-reduced-motion: reduce) {
    .reader-house::before, .reader-house::after, .reader-house-emblem::before, .reader-house-emblem::after { animation: none; }
    .reader-house::after { display: none; }
    .reader-house-progress progress::-webkit-progress-value { animation: none; }
}
.reader-house-emblem { display: grid; place-items: center; width: 105px; height: 95px; flex-shrink: 0; border-radius: 48% 52% 44% 56%; background: radial-gradient(ellipse, var(--reader-paper), var(--reader-soft)); color: var(--reader-ink); font-size: 3rem; }
.reader-house-emblem svg { width: 70px; height: 70px; }
.reader-house-name { flex: 1; min-width: 0; }
.reader-house-name h2 { margin: .4rem 0 .2rem; color: var(--reader-ink); font: 600 2rem/1.2 Georgia, serif; }
.reader-house-name p { font-size: .75rem; color: var(--reader-muted); margin: 0; }
.reader-house-progress { flex: 1.3; padding-left: 1.5rem; border-left: 1px solid var(--reader-border); min-width: 0; }
.reader-house-progress strong { color: var(--reader-ink); font: 600 1.3rem Georgia, serif; }
.reader-house-progress strong span { font: 400 .75rem Lexend, sans-serif; }
.reader-house-progress progress { display: block; appearance: none; border: 0; border-radius: 10px; overflow: hidden; background: var(--reader-track); width: 100%; height: 11px; margin: .6rem 0; }
.reader-house-progress progress::-webkit-progress-bar { background: var(--reader-track); }
.reader-house-progress progress::-webkit-progress-value { background: linear-gradient(90deg, var(--reader-aura), var(--reader-ink)); border-radius: 10px; }
.reader-house-progress progress::-moz-progress-bar { background: var(--reader-aura); }
.reader-house-progress small, .reader-house-progress p { color: var(--reader-muted); font-size: .65rem; line-height: 1.5; }
.reader-house-link { color: var(--reader-ink); padding: .5rem 0; font-size: .75rem; font-weight: 500; text-decoration: none; }
.reader-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.reader-section-heading h2 { font: 600 1.7rem Georgia, serif; color: #54315d; margin: 0; }
.reader-section-heading a { color: #9a79bc; font-size: .75rem; text-decoration: none; }
.reader-current-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.reader-current-book { display: flex; gap: 1rem; padding: 1.1rem; border: 1px solid #e5dbef; border-radius: 14px; background: #fdfaff; color: #563d61; text-decoration: none; }
.reader-current-book > img, .reader-cover-empty { width: 70px; height: 100px; object-fit: cover; border-radius: 4px; flex-shrink: 0; box-shadow: 3px 4px 8px #5a345322; }
.reader-cover-empty { display: grid; place-items: center; background: #e6d6ef; }
.reader-current-book h3 { margin: .4rem 0; font: 600 1.15rem Georgia, serif; }
.reader-current-book p { margin: 0; color: #938295; font-size: .75rem; }
.reader-current-book small { color: #a489bb; font-size: .65rem; }
.reader-current-action { display: block; margin-top: .75rem; color: #9063b0; font-size: .7rem; }
.reader-current-empty { display: flex; align-items: center; gap: 1.25rem; background: #f4eefb; border: 1px dashed #e4d6e9; padding: 1.25rem; border-radius: 14px; }
.reader-current-empty img { object-fit: contain; }
.reader-current-empty h3 { font: 400 1.25rem Georgia, serif; color: #6d507a; margin: 0 0 .5rem; }
.reader-current-empty p, .reader-current-empty a { font-size: .8rem; color: #94829e; }
.reader-home a:focus-visible { outline: 2px solid #a182cb; outline-offset: 4px; }
@media (hover: hover) { .reader-stats > a:hover, .reader-current-book:hover { border-color: #cdb4de; background: #fdf7ff; } }
@media (max-width: 700px) {
    .page.reader-home { padding: 1rem .85rem 0; }
    .reader-greeting { min-height: 200px; border-radius: 18px; }
    .reader-greeting-copy { width: 61%; padding: 1.3rem 1rem; }
    .reader-greeting h1 { font-size: clamp(1.8rem, 6vw, 2.5rem); }
    .reader-greeting p { font-size: .7rem; }
    .reader-greeting-art { width: 46%; object-position: 55% center; }
    .reader-greeting-copy > a { font-size: .67rem; }
    .reader-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .reader-stats > a { padding: .85rem; }
    .reader-stats strong { font-size: 1.5rem; }
    .reader-house { flex-wrap: wrap; gap: .85rem; padding: 1rem; }
    .reader-house-emblem { width: 70px; height: 70px; }
    .reader-house-emblem svg { width: 52px; height: 52px; }
    .reader-house-name h2 { font-size: 1.65rem; }
    .reader-house-progress { flex-basis: 100%; order: 4; border-left: 0; border-top: 1px solid var(--reader-border); padding: .8rem 0 0; }
    .reader-current-grid { grid-template-columns: minmax(0, 1fr); }
    .reader-section-heading h2 { font-size: 1.4rem; }
    .reader-current-empty img { width: 85px; height: 75px; }
}

.reader-home .reader-house .community-eyebrow { color: var(--reader-muted); }
.reader-home .reader-house a:focus-visible { outline-color: var(--reader-ink); }
