/* ============================================================
   BookLab — site look (2026-10-16)
   Same rhythm as the home / Apps pages: blue hero with gold particles
   (fx.js), then full-width white / light-grey / navy bands.
   Hooks are added by _build/booklab_bands.py:
     .hero on the hero section · .bl-band + .bl-w | .bl-l | .bl-n on bands
     .bl-lt on light bands (dark text, cream cards)
   ============================================================ */

/* page canvas: site navy instead of near-black */
.bl-lux{background:#04163e!important}
.bl-lux>.bl-stars{display:none}

/* ---- hero: the site's blue hero (gradient, gold grid & glow from style.css .hero) + particles ---- */
.bl-lux .bl-hero-stage.hero{padding:clamp(40px,6vw,64px) 16px clamp(40px,5vw,56px);text-align:center}
.bl-lux .hero>*:not(.fx-stars){position:relative;z-index:1}
.bl-lux .hero .fx-stars{z-index:0}

/* ---- full-width bands ---- */
.bl-band{position:relative;isolation:isolate}
/* a band never slides or fades as a whole (its background would flash); the content inside still reveals */
.bl-lux .bl-band.bl-reveal{opacity:1!important;transform:none!important;transition:none!important}
.bl-band::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;pointer-events:none}
.bl-w::before{background:#ffffff}
.bl-l::before{background:#f2f5fa}
.bl-n::before{background:radial-gradient(900px 420px at 88% 0%,rgba(228,157,5,.10),transparent 60%),linear-gradient(170deg,#071f52 0%,#04163e 55%,#020d24 100%)}
.bl-n::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;pointer-events:none;opacity:.6;
  background-image:linear-gradient(rgba(228,157,5,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(228,157,5,.04) 1px,transparent 1px);background-size:60px 60px}

.bl-lux .bl-band,.bl-lux .bl-hero-stage.hero{margin-top:0!important;margin-bottom:0!important}
.bl-lux .bl-cat.bl-band{margin-top:0;padding:64px 0}
.bl-lux .lu-band.bl-band,.bl-lux .bl-stats-band.bl-band,.bl-lux .bl-cta-band.bl-band{padding-top:60px;padding-bottom:60px}
.bl-lux section.bl-cats{padding-bottom:0}
.bl-lux section.bl-cats.bl-band{padding-top:40px!important}
@media (max-width:640px){.bl-lux .bl-cat.bl-band{padding:48px 0}}

/* ---- light bands: readable dark text, cream cards (BookLab's own book-card colours) ---- */
:is(.bl-lux,.fl-lux) .bl-lt{color:#26304a}
:is(.bl-lux,.fl-lux) .bl-lt h2{color:#04163e}
:is(.bl-lux,.fl-lux) .bl-lt .bl-catname,:is(.bl-lux,.fl-lux) .bl-lt .bl-statn{background:linear-gradient(90deg,#7a5200,#9a6b00,#7a5200)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
:is(.bl-lux,.fl-lux) .bl-lt .bl-orn .dia{color:#b8860b}
:is(.bl-lux,.fl-lux) .bl-lt .bl-menu-h{color:#8a5d00}
:is(.bl-lux,.fl-lux) .bl-lt .bl-flagnote,.bl-cats>.container>.bl-flagnote{color:#4a5670}
:is(.bl-lux,.fl-lux) .bl-lt .bl-flagnote b,.bl-cats>.container>.bl-flagnote b{color:#8a5d00}
:is(.bl-lux,.fl-lux) .bl-lt .bl-frame{box-shadow:0 22px 50px rgba(10,30,70,.22),0 0 40px rgba(230,180,34,.12)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-person-bio{color:#26304a}
:is(.bl-lux,.fl-lux) .bl-lt .bl-person-bio .dates{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .bl-pchip{color:#8a5d00;background:#fff7e6;border-color:rgba(201,162,74,.5)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-soon{color:#55617a;background:#fff;border-color:rgba(201,162,74,.45)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-soon .bl-soon-orn{color:#b8860b}
:is(.bl-lux,.fl-lux) .bl-lt .bl-book{box-shadow:0 12px 30px rgba(10,30,70,.12)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-book:hover{box-shadow:0 26px 56px rgba(10,30,70,.18),0 0 36px rgba(230,180,34,.2)}
/* round master tiles */
:is(.bl-lux,.fl-lux) .bl-lt .bl-card-in{background:linear-gradient(180deg,#fffdf7,#f6ecd6)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-card-portrait{box-shadow:0 6px 16px rgba(10,30,70,.18),0 0 0 4px rgba(246,217,138,.35)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-card-name{color:#0a1c40}
:is(.bl-lux,.fl-lux) .bl-lt .bl-card-dates{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .bl-card-go{color:#7a5200;opacity:1}
:is(.bl-lux,.fl-lux) .bl-lt .bl-card.soon .bl-card-go{color:#565f75}
:is(.bl-lux,.fl-lux) .bl-lt .bl-card:hover,:is(.bl-lux,.fl-lux) .bl-lt .bl-card:focus-visible{box-shadow:0 18px 40px rgba(10,30,70,.18),0 0 30px rgba(230,180,34,.25)}
/* wide master cards (country pages) */
:is(.bl-lux,.fl-lux) .bl-lt .bl-mcard,:is(.bl-lux,.fl-lux) .bl-lt .bl-mcard.flag{background:linear-gradient(170deg,#fffdf7,#f5ead2);box-shadow:0 12px 30px rgba(10,30,70,.10)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mcard.flag{background:radial-gradient(200px 120px at 100% 0,rgba(230,180,34,.20),transparent 70%),linear-gradient(170deg,#fffdf7,#f3e5c4)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mcard:hover{box-shadow:0 22px 46px rgba(10,30,70,.16),0 0 34px rgba(230,180,34,.2)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mname{color:#0a1c40}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mnative{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mdates{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mbio{color:#3a445e}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mbio i{color:#26304a}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mworks-lbl{color:#8a5d00;opacity:1}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mwlist{color:#3a445e}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mface{box-shadow:0 3px 12px rgba(10,30,70,.25)}
/* stats */
:is(.bl-lux,.fl-lux) .bl-lt #bl-stats-h{color:#04163e!important}
:is(.bl-lux,.fl-lux) .bl-lt .bl-star-legend{color:#55617a}
:is(.bl-lux,.fl-lux) .bl-lt .bl-star-legend [aria-hidden]{color:#d99a00!important}
:is(.bl-lux,.fl-lux) .bl-lt .bl-statcard{background:#fff;border-color:rgba(201,162,74,.45);box-shadow:0 10px 26px rgba(10,30,70,.07)}
:is(.bl-lux,.fl-lux) .bl-lt .bl-statl{color:#55617a}
/* country tiles keep their dark-gem look; soften the shadow on light */
:is(.bl-lux,.fl-lux) .bl-lt .bl-country{box-shadow:0 14px 30px rgba(10,30,70,.22)}

/* ===== Fāl-e Hafez ===== */
.fl-lux{background:#04163e!important;padding-bottom:0!important}
.fl-lux>.fl-stars{display:none}
.fl-lux .fl-hero.hero{padding:34px 16px clamp(40px,5vw,56px)}
.fl-lux .hero>*:not(.fx-stars){position:relative;z-index:1}
.fl-lux .fl-ritual.bl-band,.fl-lux .fl-trad.bl-band,.fl-lux .bl-cta-band.bl-band{margin:0 auto!important;padding-top:56px;padding-bottom:56px}
.fl-lux .fl-omenb{display:flow-root;padding:0 0 48px}
.fl-lux .fl-omenb>.fl-omen{margin-top:0}
.fl-lux .fl-omenb .fl-back{color:#8a5d00;border-color:rgba(201,162,74,.6);background:#fff}
:is(.bl-lux,.fl-lux) .bl-lt.fl-ritual h2{background:linear-gradient(90deg,#7a5200,#9a6b00,#7a5200)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
:is(.bl-lux,.fl-lux) .bl-lt.fl-ritual p{color:#3a445e}
:is(.bl-lux,.fl-lux) .bl-lt.fl-trad h2{color:#04163e}
:is(.bl-lux,.fl-lux) .bl-lt.fl-trad p{color:#26304a}
:is(.bl-lux,.fl-lux) .bl-lt.fl-trad p b{color:#8a5d00}
:is(.bl-lux,.fl-lux) .bl-lt.fl-trad p i{color:#26304a}
:is(.bl-lux,.fl-lux) .bl-lt .fl-src{color:#6b7792}

/* ===== All masters (poets) ===== */
.bl-lux .pd-head.hero{padding:44px 16px 44px}
.bl-lux .pd-body.bl-band{padding-top:36px;padding-bottom:64px}
:is(.bl-lux,.fl-lux) .bl-lt .pd-slab{color:#55617a}
:is(.bl-lux,.fl-lux) .bl-lt .pd-sortbtn{color:#8a5d00;background:#fff;border-color:rgba(201,162,74,.55)}
:is(.bl-lux,.fl-lux) .bl-lt .pd-in{background:linear-gradient(180deg,#fffdf7,#f6ecd6)}
:is(.bl-lux,.fl-lux) .bl-lt .pd-name{color:#0a1c40}
:is(.bl-lux,.fl-lux) .bl-lt .pd-en{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .pd-v{color:#55617a}
:is(.bl-lux,.fl-lux) .bl-lt .pd-bio{color:#4a5670}
:is(.bl-lux,.fl-lux) .bl-lt .pd-mono{color:#8a5d00;text-shadow:none}
:is(.bl-lux,.fl-lux) .bl-lt .pd-empty{color:#55617a}

/* ===== reader: blue particle hero over the poet header; the reading desk stays on navy ===== */
.bl-lux .rd-head.hero{padding:40px 16px 40px}

/* ===== interactive tools keep their dark stage, on the site's blue instead of near-black ===== */
.gb-wrap,.tl-wrap,.dna-wrap{background:
  linear-gradient(rgba(228,157,5,.035) 1px,transparent 1px) 0 0/60px 60px,
  linear-gradient(90deg,rgba(228,157,5,.035) 1px,transparent 1px) 0 0/60px 60px,
  radial-gradient(1100px 620px at 85% -8%,rgba(228,157,5,.14),transparent 60%),
  linear-gradient(160deg,#04163e 0%,#071f52 45%,#020d24 100%)!important}
html body:has(.erarail),html body:has(canvas#sky){background:linear-gradient(170deg,#071f52 0%,#04163e 40%,#020d24 100%) fixed}

/* ===== contrast fixes from the 2026-10-16 audit ===== */
/* landing: the full-width Literary Universe panel sits on navy, no empty white strip around it */
.bl-lux .lu-band.lu-full.bl-band{padding-top:0;padding-bottom:0}
/* ghost buttons whose pale-gold colour is set inline on the element */
:is(.bl-lux,.fl-lux) .bl-lt a.bl-read-btn[style*="transparent"]{color:#7a5200!important;border-color:rgba(154,107,0,.55)!important;background:#fff!important}
:is(.bl-lux,.fl-lux) .bl-lt a.bl-read-btn[style*="transparent"]:hover,:is(.bl-lux,.fl-lux) .bl-lt a.bl-read-btn[style*="transparent"]:focus{background:linear-gradient(135deg,#f6d98a,#e6b422)!important;color:#0a1c40!important}
:is(.bl-lux,.fl-lux) .bl-lt .bl-cta-explore{color:#7a5200;border-color:rgba(154,107,0,.55);background:#fff}
/* signature works under each Persian master (Iran page) */
:is(.bl-lux,.fl-lux) .bl-lt .bl-person-works .bl-mworks-lbl{color:#7a5200;opacity:1}
:is(.bl-lux,.fl-lux) .bl-lt .bl-person-works .bl-mwlist{color:#3a445e}
/* all-masters cards: genre line, counter, star */
:is(.bl-lux,.fl-lux) .bl-lt .pd-tal{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .pd-count{color:#6b4a00}
:is(.bl-lux,.fl-lux) .bl-lt .pd-star{color:#d99a00}
:is(.bl-lux,.fl-lux) .bl-lt .bl-mseal{color:#7a5200}
:is(.bl-lux,.fl-lux) .bl-lt .bl-pill{color:#7a5200;border-color:rgba(154,107,0,.5);background:#fff}
:is(.bl-lux,.fl-lux) .bl-lt .bl-soon .bl-soon-orn{color:#9a6b00}
